]> git.pld-linux.org Git - packages/nfs-utils.git/blame - nfs-utils.spec
- added post/preun scripts for new services
[packages/nfs-utils.git] / nfs-utils.spec
CommitLineData
4af864e6
ER
1# TODO
2# - should unmount /proc/fs/nfsd at package uninstall (or in service nfs stop)
5b70fba4
JB
3#
4# Conditional build:
5%bcond_without nfs4 # without NFSv4 support
0048f570 6%bcond_without mount # don't build mount.nfs program
5b70fba4 7#
cb62e4f3 8Summary: Kernel NFS server
ada059e5
ER
9Summary(pl.UTF-8): Działający na poziomie jądra serwer NFS
10Summary(pt_BR.UTF-8): Os utilitários para o cliente e servidor NFS do Linux
11Summary(ru.UTF-8): Утилиты для NFS и демоны поддержки для NFS-сервера ядра
12Summary(uk.UTF-8): Утиліти для NFS та демони підтримки для NFS-сервера ядра
cb62e4f3 13Name: nfs-utils
6cd720e4 14Version: 1.0.12
0048f570 15Release: 5.2
0011b22d 16License: GPL
cb62e4f3 17Group: Networking/Daemons
32bc26ba 18Source0: http://dl.sourceforge.net/nfs/%{name}-%{version}.tar.gz
6cd720e4 19# Source0-md5: acf3656cec3872deb597aa7ac13f3c3a
ae271a1d 20Source1: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
9a665736 21# Source1-md5: ae7db9c61c5ad04f83bb99e5caed73da
1bc6345f
JR
22Source2: nfs.init
23Source3: nfslock.init
0a95b58e 24Source4: rquotad.init
0048f570
JR
25Source5: nfsfs.init
26Source6: rpcidmapd.init
27Source7: rpcgssd.init
28Source8: rpcsvcgssd.init
29Source9: nfs.sysconfig
30Source10: nfslock.sysconfig
31Source11: rquotad.sysconfig
32Source12: nfsfs.sysconfig
42ec9fb3
JB
33Patch0: %{name}-eepro-support.patch
34Patch1: %{name}-install.patch
6cd720e4
JB
35Patch2: %{name}-heimdal.patch
36Patch3: %{name}-heimdal-internals.patch
bffa77d2 37# http://www.citi.umich.edu/projects/nfsv4/linux/nfs-utils-patches/
6cd720e4
JB
38#Patch4: %{name}-1.0.11-CITI_NFS4_ALL-1.dif
39Patch4: %{name}-CITI_NFS4.patch
910b2b3f 40Patch5: %{name}-mountd-leak.patch
0048f570
JR
41Patch6: %{name}-statdpath.patch
42Patch7: %{name}-mount-fake.patch
43Patch8: %{name}-mountd.patch
44Patch9: %{name}-privports.patch
45Patch10: %{name}-mount-man-nfs.patch
46Patch11: %{name}-mount-fsc.patch
e406194a 47URL: http://nfs.sourceforge.net/
385bb326 48BuildRequires: autoconf >= 2.59
4f5693d9 49BuildRequires: automake
6b12a6b6 50BuildRequires: cpp
910b2b3f 51BuildRequires: e2fsprogs-devel >= 1.39-5
ea4a6f67 52%if %{with nfs4}
0756e5e2 53BuildRequires: heimdal-devel >= 0.7
51dfb953 54BuildRequires: libevent-devel >= 1.2
2485b7d8 55BuildRequires: libnfsidmap-devel
12e14f6e 56BuildRequires: librpcsecgss-devel >= 0.11-3
ea4a6f67 57%endif
f45e2dff 58BuildRequires: libtool
4ae359cd 59BuildRequires: libwrap-devel
385bb326 60BuildRequires: pkgconfig
4f5693d9 61BuildRequires: sed >= 4.0
8a834723 62Requires(post): fileutils
c5c607cb
ER
63Requires(post): sed >= 4.0
64Requires(post,preun): /sbin/chkconfig
65Requires: %{name}-common = %{version}-%{release}
1bc6345f 66Requires: portmap >= 4.0
c5c607cb
ER
67Requires: rc-scripts >= 0.4.0
68Requires: setup >= 2.4.6-7
1bc6345f 69Provides: nfsdaemon
8a834723
JB
70Obsoletes: knfsd
71Obsoletes: nfs-server
c5c607cb 72Obsoletes: nfsdaemon
8a834723 73Conflicts: kernel < 2.2.5
1bc6345f 74ExcludeArch: armv4l
d48d450b 75BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
1bc6345f
JR
76
77%description
0011b22d 78This is the *new* kernel NFS server and related tools. It provides a
79much higher level of performance than the traditional Linux user-land
80NFS server.
1bc6345f 81
d44bd88d
JR
82%description -l pl.UTF-8
83To jest *nowy* działający na poziomie jądra serwer NFS oraz związane z
84nim narzędzia. Serwer ten dostarcza znacznie większą wydajność niż
85tradycyjny, działający na poziomie użytkownika serwer NFS.
1bc6345f 86
d44bd88d
JR
87%description -l pt_BR.UTF-8
88O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
f8d9e6d5 89do Linux.
d48d450b 90
d44bd88d
JR
91%description -l ru.UTF-8
92Пакет nfs-utils предоставляет демона для NFS-сервера, включенного в
93ядро, и сопутствующие утилиты, которые обеспечивают намного большую
94производительность, чем традиционные Linux NFS-сервера, используемые
95большинством пользователей.
011b72fa 96
d44bd88d
JR
97%description -l uk.UTF-8
98Пакет nfs-utils надає демона для NFS-сервера, вбудованого в ядро, та
99супутні утиліти, які забезпечують набагато більшу продуктивність, ніж
100традиційні Linux NFS-сервери, які використовує більшість користувачів.
011b72fa 101
1bc6345f 102%package clients
a4d8ac59 103Summary: Clients for connecting to a remote NFS server
ada059e5 104Summary(pl.UTF-8): Klienci do łączenia się ze zdalnym serwerem NFS
1bc6345f 105Group: Networking
8a834723 106Requires(post,preun): /sbin/chkconfig
365015e3 107Requires: %{name}-common = %{version}-%{release}
c5c607cb
ER
108Requires: psmisc
109Requires: rc-scripts
a4d8ac59 110Provides: nfs-server-clients
c5c607cb 111Provides: nfsclient
523e5742 112Obsoletes: knfsd-clients
c5c607cb
ER
113Obsoletes: nfs-server-clients
114Obsoletes: nfsclient
1bc6345f
JR
115
116%description clients
117The nfs-server-clients package contains the showmount program.
118Showmount queries the mount daemon on a remote host for information
0011b22d 119about the NFS (Network File System) server on the remote host. For
1bc6345f 120example, showmount can display the clients which are mounted on that
0011b22d 121host. This package is not needed to mount NFS volumes.
1bc6345f 122
d44bd88d
JR
123%description clients -l pl.UTF-8
124Pakiet zawiera program showmount służący do odpytywania serwera NFS.
0fb1eec5 125Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
d44bd88d 126hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
26aacf7e 127zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
d44bd88d 128zamountowania zasobów NFS.
1bc6345f
JR
129
130%package lock
a4d8ac59 131Summary: Programs for NFS file locking
ada059e5 132Summary(pl.UTF-8): Programy do obsługi blokowania plików poprzez NFS (lock)
d8de81c5 133Group: Networking
8a834723
JB
134Requires(post,preun): /sbin/chkconfig
135#Requires: kernel >= 2.2.5
1bc6345f 136Requires: portmap >= 4.0
c5c607cb 137Requires: rc-scripts
0048f570
JR
138Provides: group(rpcstatd)
139Provides: user(rpcstatd)
1bc6345f 140Provides: nfslockd
8a834723 141Obsoletes: knfsd-lock
c5c607cb 142Obsoletes: nfslockd
1bc6345f
JR
143
144%description lock
145The nfs-lock pacage contains programs which support the NFS file lock.
146Install nfs-lock if you want to use file lock over NFS.
147
d44bd88d
JR
148%description lock -l pl.UTF-8
149Ten pakiet zawiera programy umożliwiające wykonywanie blokowania
150plików (file locking) poprzez NFS.
1bc6345f 151
0a95b58e 152%package rquotad
a4d8ac59 153Summary: Remote quota server
ada059e5 154Summary(pl.UTF-8): Zdalny serwer quota
0a95b58e 155Group: Networking/Daemons
8a834723 156Requires(post,preun): /sbin/chkconfig
c5c607cb 157Requires: rc-scripts
d6e31c7e 158Obsoletes: quota-rquotad
0a95b58e
JR
159
160%description rquotad
0011b22d 161rquotad is an rpc(3N) server which returns quotas for a user of a
162local file system which is mounted by a remote machine over the NFS.
163The results are used by quota(1) to display user quotas for remote
164file systems.
0a95b58e 165
d44bd88d
JR
166%description rquotad -l pl.UTF-8
167rquotad jest serverem rpc(3N), który zwraca quoty użytkownika
168lokalnego systemu plików, który jest zamountowany przez zdalną maszynę
169poprzez NFS. Rezultaty są używane przez quota(1), aby wyświetlić quotę
170dla zdalnego systemu plików.
0a95b58e 171
365015e3
AM
172%package common
173Summary: Common programs for NFS
ada059e5 174Summary(pl.UTF-8): Wspólne programy do obsługi NFS
365015e3
AM
175Group: Networking
176
177%description common
178Common programs for NFS.
179
d44bd88d
JR
180%description common -l pl.UTF-8
181Wspólne programy do obsługi NFS.
365015e3 182
1bc6345f 183%prep
26aacf7e 184%setup -q -a1
1bc6345f 185%patch0 -p1
f4ada66b 186%patch1 -p1
9f09fbf9 187%patch2 -p1
5007ef82 188%patch3 -p1
6cd720e4
JB
189# temporary hack
190rm -f utils/mountd/fsloc.[ch]
26aacf7e 191%patch4 -p1
910b2b3f 192%patch5 -p1
0048f570
JR
193%patch6 -p1
194%patch7 -p1
195%patch8 -p1
196%patch9 -p1
197%patch10 -p1
198%patch11 -p1
538d5113 199
1bc6345f 200%build
ea4a6f67 201%if "%{_lib}" == "lib64"
4f5693d9 202sed -i -e 's#/lib/#/%{_lib}/#g' aclocal/kerberos5.m4
ea4a6f67 203%endif
4f5693d9
JR
204sed -i -e 's#libroken.a#libroken.so#g' aclocal/kerberos5.m4
205%{__aclocal} -I aclocal
d49dfc0b 206%{__autoconf}
4f5693d9 207%{__automake}
1bc6345f 208%configure \
ea4a6f67 209%if %{with nfs4}
ea4a6f67
AM
210 --enable-gss \
211 --with-krb5=%{_prefix} \
4f5693d9 212 --enable-nfsv4 \
ea4a6f67 213%else
5b70fba4
JB
214 --disable-gss \
215 --disable-nfsv4 \
216%endif
0048f570 217 %{?with_mount:--enable-mount} \
1bc6345f 218 --enable-nfsv3 \
538d5113 219 --enable-secure-statd \
f45e2dff 220 --with-statedir=/var/lib/nfs \
221 --with-tcp-wrappers
4f5693d9 222
cee80e09 223%{__make} all
1bc6345f
JR
224
225%install
226rm -rf $RPM_BUILD_ROOT
4f596608 227install -d $RPM_BUILD_ROOT{/sbin,%{_sbindir},%{_mandir}/man{5,8}} \
4f5693d9 228 $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig} \
0048f570 229 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery,statd}
1bc6345f 230
e4300aca 231%{__make} install \
4f5693d9 232 DESTDIR=$RPM_BUILD_ROOT
1bc6345f 233
0048f570
JR
234%if %{with mount}
235mv $RPM_BUILD_ROOT%{_sbindir}/{mount,umount}.* $RPM_BUILD_ROOT/sbin
236%endif
237
238mv $RPM_BUILD_ROOT%{_sbindir}/rpcdebug $RPM_BUILD_ROOT/sbin
4f5693d9
JR
239install utils/idmapd/idmapd.conf $RPM_BUILD_ROOT%{_sysconfdir}/
240
1bc6345f
JR
241install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
242install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
0a95b58e 243install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/rquotad
0048f570
JR
244install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
245install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
246install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
247install %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
248install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
249install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
250install %{SOURCE11} $RPM_BUILD_ROOT/etc/sysconfig/rquotad
251install %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
1bc6345f 252
d48d450b 253> $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
254> $RPM_BUILD_ROOT%{_sysconfdir}/exports
1bc6345f 255
4f5693d9 256rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,rquotad,statd,lockd,svcgssd,gssd,idmapd}.8
6986d116 257rm -f $RPM_BUILD_ROOT%{_mandir}/man5/rpc.idmapd.conf.5
df47c00a 258echo ".so lockd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.lockd.8
1bc6345f
JR
259echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
260echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
261echo ".so rquotad.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.rquotad.8
262echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
6986d116 263%if %{with nfs4}
4f5693d9
JR
264echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
265echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
266echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
4ae359cd 267echo ".so idmapd.conf.5" > $RPM_BUILD_ROOT%{_mandir}/man5/rpc.idmapd.conf.5
6986d116 268%endif
1bc6345f 269
9df625b5 270touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
1bc6345f 271
959e2a35
AM
272ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
273
11fad0cc
ER
274rm -rf html
275cp -a nfs html
1bc6345f
JR
276
277%clean
278rm -rf $RPM_BUILD_ROOT
279
280%post
f511a355 281/sbin/chkconfig --add nfs
c5c607cb 282%service nfs restart "NFS daemon"
809898a3
JR
283%if %{with nfs4}
284/sbin/chkconfig --add svcgssd
285%service svcgssd restart "RPC svcgssd daemon"
286%endif
1bc6345f
JR
287
288%preun
f511a355 289if [ "$1" = "0" ]; then
c5c607cb 290 %service nfs stop
f511a355 291 /sbin/chkconfig --del nfs
809898a3
JR
292%if %{with nfs4}
293 %service svcgssd stop
294 /sbin/chkconfig --del svcgssd
295%endif
f511a355 296fi
1bc6345f 297
e661c6c4 298%post clients
f511a355 299/sbin/chkconfig --add nfsfs
c5c607cb 300%service nfsfs restart
809898a3
JR
301%if %{with nfs4}
302/sbin/chkconfig --add gssd
303%service svcgssd restart "RPC gssd daemon"
304%endif
e661c6c4
JR
305
306%preun clients
f511a355 307if [ "$1" = "0" ]; then
c5c607cb 308 %service nfsfs stop
f511a355 309 /sbin/chkconfig --del nfsfs
809898a3
JR
310%if %{with nfs4}
311 %service gssd stop
312 /sbin/chkconfig --del gssd
313%endif
f511a355 314fi
e661c6c4 315
0048f570
JR
316%pre lock
317%groupadd -g 191 rpcstatd
318%useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
319
1bc6345f 320%post lock
f511a355 321/sbin/chkconfig --add nfslock
c5c607cb 322%service nfslock restart "nfslock daemon"
1bc6345f
JR
323
324%preun lock
f511a355 325if [ "$1" = "0" ]; then
c5c607cb 326 %service nfslock stop
f511a355 327 /sbin/chkconfig --del nfslock
328fi
1bc6345f 329
0048f570
JR
330%postun lock
331if [ "$1" = "0" ]; then
332 %userremove rpcstatd
333 %groupremove rpcstatd
334fi
335
809898a3
JR
336%if %{with nfs4}
337%post common
338/sbin/chkconfig --add idmapd
339%service svcgssd restart "RPC idmapd daemon"
340
341%preun common
342if [ "$1" = "0" ]; then
343 %service idmapd stop
344 /sbin/chkconfig --del idmapd
345fi
346%endif
347
ee8f79a4 348%post rquotad
f511a355 349/sbin/chkconfig --add rquotad
c5c607cb 350%service rquotad restart "NFS quota daemon"
ee8f79a4
JR
351
352%preun rquotad
f511a355 353if [ "$1" = "0" ]; then
c5c607cb 354 %service rquotad stop
f511a355 355 /sbin/chkconfig --del rquotad
356fi
ee8f79a4 357
0048f570
JR
358%triggerpostun -- %{name} <= 1.0.12-5
359/sbin/chkconfig nfs reset
360
361%triggerpostun lock -- %{name}-lock <= 1.0.12-5
362/sbin/chkconfig nfslock reset
363
11fad0cc
ER
364%triggerpostun clients -- %{name}-clients < 1.0.10-1.2
365if [ -f /etc/sysconfig/nfsclient.rpmsave ]; then
366 mv -f /etc/sysconfig/nfsfs{,.rpmnew}
367 mv -f /etc/sysconfig/nfsclient.rpmsave /etc/sysconfig/nfsfs
368fi
0048f570 369/sbin/chkconfig nfsfs reset
11fad0cc 370
1bc6345f
JR
371%files
372%defattr(644,root,root,755)
4f5693d9 373%doc ChangeLog README html
1bc6345f 374%attr(755,root,root) /sbin/rpcdebug
959e2a35 375%attr(755,root,root) /sbin/fsck.nfs
1bc6345f
JR
376%attr(755,root,root) %{_sbindir}/exportfs
377%attr(755,root,root) %{_sbindir}/rpc.mountd
378%attr(755,root,root) %{_sbindir}/rpc.nfsd
379%attr(755,root,root) %{_sbindir}/nfsstat
1bc6345f
JR
380
381%attr(754,root,root) /etc/rc.d/init.d/nfs
382
5b70fba4
JB
383%attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
384%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
385%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
386%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
387%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
1bc6345f 388
8b926d92
AG
389%{_mandir}/man5/exports.5*
390%{_mandir}/man7/nfsd.7*
1bc6345f
JR
391%{_mandir}/man8/exportfs.8*
392%{_mandir}/man8/mountd.8*
393%{_mandir}/man8/nfsd.8*
394%{_mandir}/man8/nfsstat.8*
395%{_mandir}/man8/rpc.mountd.8*
396%{_mandir}/man8/rpc.nfsd.8*
0048f570 397%{_mandir}/man8/rpcdebug.8*
ea4a6f67 398%if %{with nfs4}
0048f570 399%attr(754,root,root) /etc/rc.d/init.d/svcgssd
ea4a6f67
AM
400%attr(755,root,root) %{_sbindir}/rpc.svcgssd
401%{_mandir}/man8/*svcgss*
402%endif
403
1bc6345f
JR
404%files lock
405%defattr(644,root,root,755)
0048f570 406%attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
1bc6345f
JR
407%attr(755,root,root) %{_sbindir}/rpc.lockd
408%attr(755,root,root) %{_sbindir}/rpc.statd
409%attr(754,root,root) /etc/rc.d/init.d/nfslock
5b70fba4 410%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
df47c00a 411%{_mandir}/man8/rpc.lockd.8*
412%{_mandir}/man8/lockd.8*
1bc6345f
JR
413%{_mandir}/man8/rpc.statd.8*
414%{_mandir}/man8/statd.8*
5b70fba4 415%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/state
1bc6345f
JR
416
417%files clients
418%defattr(644,root,root,755)
e661c6c4 419%attr(754,root,root) /etc/rc.d/init.d/nfsfs
11fad0cc 420%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
1bc6345f
JR
421%attr(755,root,root) %{_sbindir}/showmount
422%{_mandir}/man8/showmount.8*
0048f570
JR
423%if %{with mount}
424%attr(4755,root,root) /sbin/mount.nfs
425%attr(4755,root,root) /sbin/mount.nfs4
426%attr(4755,root,root) /sbin/umount.nfs
427%attr(4755,root,root) /sbin/umount.nfs4
428%{_mandir}/man8/*mount.nfs.8*
429%endif
ea4a6f67 430%if %{with nfs4}
0048f570 431%attr(754,root,root) /etc/rc.d/init.d/gssd
27439ad6 432%attr(755,root,root) %{_sbindir}/rpc.gssd
ea4a6f67
AM
433%{_mandir}/man8/rpc.gssd*
434%{_mandir}/man8/gssd*
435%endif
436
365015e3
AM
437%files common
438%defattr(644,root,root,755)
8d72ec18
AM
439%attr(755,root,root) %dir %{_var}/lib/nfs
440%attr(755,root,root) %dir %{_var}/lib/nfs/rpc_pipefs
37308b8e 441%attr(755,root,root) %dir %{_var}/lib/nfs/v4recovery
0048f570 442%{_mandir}/man5/nfs*
8d72ec18 443%if %{with nfs4}
0048f570 444%attr(754,root,root) /etc/rc.d/init.d/idmapd
27439ad6
JR
445%attr(755,root,root) %{_sbindir}/gss_*
446%attr(755,root,root) %{_sbindir}/rpc.idmapd
365015e3
AM
447%attr(660,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/idmapd.conf
448%{_mandir}/man[58]/*idmap*
449%endif
0048f570
JR
450
451#%files rquotad
452#%defattr(644,root,root,755)
453#%attr(755,root,root) %{_sbindir}/rpc.rquotad
454#%attr(754,root,root) /etc/rc.d/init.d/rquotad
455#%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rquotad
456#%%{_mandir}/man8/rpc.rquotad.8*
This page took 0.115408 seconds and 4 git commands to generate.