3 %bcond_without ldap # without support for ldap storage
4 %bcond_without static_libs # don't build static library
11 %define pverdot %{nil}
12 %define pverdir %{nil}
16 %define vvendor PLD/Linux
18 Summary(es.UTF-8): Servidor DHCP
19 Summary(pl.UTF-8): Serwer DHCP
20 Summary(pt_BR.UTF-8): Servidor DHCP (Protocolo de configuração dinâmica de hosts)
22 Version: %{ver}%{pverdot}
26 Group: Networking/Daemons
27 Source0: ftp://ftp.isc.org/isc/dhcp/%{ver}%{pverdir}/%{name}-%{ver}%{pverdir}.tar.gz
28 # Source0-md5: 2afdaf8498dc1edaf3012efdd589b3e1
30 Source2: %{name}6.init
31 Source3: %{name}-relay.init
32 Source4: %{name}.sysconfig
33 Source5: %{name}-relay.sysconfig
34 Source10: %{name}.schema
35 Source11: %{name}-README.ldap
36 Source12: draft-ietf-dhc-ldap-schema-01.txt
37 Source13: %{name}d-conf-to-ldap
38 Patch0: %{name}-release-by-ifup.patch
39 Patch1: %{name}-3.0.3-x-option.patch
40 Patch2: %{name}-paths.patch
41 Patch3: %{name}-timeouts.patch
42 Patch4: %{name}-options.patch
43 Patch5: %{name}-errwarn-message.patch
44 Patch6: %{name}-memory.patch
45 Patch7: %{name}-unicast-bootp.patch
46 Patch8: %{name}-default-requested-options.patch
47 Patch9: %{name}-manpages.patch
48 Patch10: %{name}-extravars.patch
49 URL: http://www.isc.org/sw/dhcp/
50 BuildRequires: autoconf
51 BuildRequires: automake
54 BuildRequires: libatomic-devel
56 BuildRequires: libtool
57 %{?with_ldap:BuildRequires: openldap-devel}
58 %{?with_ldap:BuildRequires: openssl-devel}
59 BuildRequires: rpmbuild(macros) >= 1.304
60 Requires(post): coreutils
61 Requires(post,preun): /sbin/chkconfig
62 Requires: rc-scripts >= 0.2.0
64 Obsoletes: dhcpv6-server
65 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67 %define _sbindir /sbin
68 %define schemadir /usr/share/openldap/schema
71 DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
72 individual devices on an IP network to get their own network
73 configuration information (IP address, subnetmask, broadcast address,
74 etc.) from a DHCP server. The overall purpose of DHCP is to make it
75 easier to administer a large network.
77 %description -l es.UTF-8
78 DHCP permite que hosts en una red TCP/IP soliciten y tengan sus
79 direcciones IP alocadas dinámicamente, permite también descubrir
80 información sobre la red en que están conectados. BOOTP provee una
81 funcionalidad similar, con ciertas restricciones. Este servidor
84 %description -l pl.UTF-8
85 Serwer DHCP (Dynamic Host Configuration Protocol).
87 DHCP to protokół pozwalający urządzeniom pracującym w sieci IP na
88 pobieranie ich konfiguracji IP (adresu, maski podsieci, adresu
89 rozgłoszeniowego itp.) z serwera DHCP. Ułatwia on administrowanie
92 %description -l pt_BR.UTF-8
93 DHCP permite que hosts numa rede TCP/IP requisitem e tenham seus
94 endereços IP alocados dinamicamente, permite também descobrir
95 informações sobre a rede em que estão conectados. BOOTP provê uma
96 funcionalidade similar, com certas restrições. Este servidor também
97 atende aquelas requisições. Esta versão é ainda considerada um
100 %package -n openldap-schema-dhcp
101 Summary: LDAP Schema for DHCP Server
102 Summary(pl.UTF-8): Schemat LDAP dla serwera DHCP
103 Group: Networking/Daemons
104 Requires(post,postun): sed >= 4.0
105 Requires: openldap-servers
108 %description -n openldap-schema-dhcp
109 This package contains LDAPv3 schema for use with the DHCP Server.
111 %description -n openldap-schema-dhcp -l pl.UTF-8
112 Ten pakiet zawiera schemat LDAPv3 do używania z serwerem DHCP.
116 Summary(pl.UTF-8): Klient DHCP
117 Group: Networking/Daemons
121 Suggests: avahi-autoipd
122 Provides: dhclient = %{epoch}:%{version}-%{release}
124 Obsoletes: dhcpv6-client
125 Obsoletes: libdhcp4client
126 Obsoletes: libdhcp4client-devel
127 Obsoletes: libdhcp4client-static
130 Dynamic Host Configuration Protocol Client.
132 %description client -l pl.UTF-8
133 Klient DHCP (Dynamic Host Configuration Protocol).
136 Summary: DHCP Client common dirs
137 Summary(pl.UTF-8): Katalogi klienta DHCP
138 Group: Networking/Daemons
140 %description client-dirs
141 Directories for scripts for dhcp-client.
143 %description client-dirs -l pl.UTF-8
144 Katalog przeznaczony na skrypty dla klienta dhcp.
147 Summary: DHCP Relay Agent
148 Summary(pl.UTF-8): Agent przekazywania informacji DHCP
149 Group: Networking/Daemons
150 Requires(post): coreutils
151 Requires(post,preun): /sbin/chkconfig
152 Requires: rc-scripts >= 0.2.0
153 Obsoletes: dhcpv6-relay
156 Dhcp relay is a relay agent for DHCP packets. It is used on a subnet
157 with DHCP clients to "relay" their requests to a subnet that has a
158 DHCP server on it. Because DHCP packets can be broadcast, they will
159 not be routed off of the local subnet. The DHCP relay takes care of
162 %description relay -l pl.UTF-8
163 Agent przekazywania DHCP (Dynamic Host Configuration Protocol) między
164 podsieciami. Ponieważ komunikaty DHCP mogą być przekazywane w formie
165 rozgłoszeniowej, bez tego agenta nie zostaną przerutowane do innej
169 Summary: DHCP development includes and libs
170 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki dla oprogramowania DHCP
171 Group: Development/Libraries
174 Includes OMAPI and dhcptl libraries.
176 OMAPI is an programming layer designed for controlling remote
177 applications, and for querying them for their state. It is currently
178 used by the ISC DHCP server.
180 The dhcpctl set of functions provide an API that can be used to
181 communicate with and manipulate a running ISC DHCP server.
183 %description devel -l pl.UTF-8
184 Zawiera biblioteki OMAPI oraz dhcpctl.
186 OMAPI to warstwa programowa stworzona do kontroli zdalnych aplikacji i
187 odpytywania o ich stan. Aktualnie jest używana przez serwer ISC DHCP.
189 dhcpctl to zbiór funkcji tworzących API, które może być używane do
190 komunikacji z działającym serwerem ISC DHCP i jego kontroli.
193 %setup -q -n %{name}-%{ver}%{pverdir}
195 # This patch is required for dhcdbd to function
196 # CHECK ME: adds -x (formerly -y):
197 #The -x argument enables extended option information to be created in the
198 #-s dhclient-script environment, which would allow applications running
199 #in that environment to handle options they do not know about in advance -
200 #this is a Red Hat extension to support dhcdbd and NetworkManager.
201 # however, fedora doesn't have this patch anymore, so can drop?
213 # Copy in documentation and example scripts for LDAP patch to dhcpd
214 cp -a %{SOURCE11} README.ldap
215 cp -a %{SOURCE12} doc
216 cp -a %{SOURCE13} contrib
218 # Replace @PRODUCTNAME@
219 %{__sed} -i -e 's|@PRODUCTNAME@|%{vvendor}|g' common/dhcp-options.5
220 %{__sed} -i -e 's|@PRODUCTNAME@|%{vvendor}|g' configure.ac
222 # Update paths in all man pages
223 for page in client/dhclient.conf.5 client/dhclient.leases.5 client/dhclient-script.8 client/dhclient.8; do
224 %{__sed} -i -e 's|CLIENTBINDIR|/sbin|g' \
225 -e 's|RUNDIR|%{_localstatedir}/run|g' \
226 -e 's|DBDIR|%{_localstatedir}/db/dhclient|g' \
227 -e 's|ETCDIR|%{_sysconfdir}|g' $page
230 for page in server/dhcpd.conf.5 server/dhcpd.leases.5 server/dhcpd.8; do
231 %{__sed} -i -e 's|CLIENTBINDIR|/sbin|g' \
232 -e 's|RUNDIR|%{_localstatedir}/run|g' \
233 -e 's|DBDIR|%{_localstatedir}/db/dhcpd|g' \
234 -e 's|ETCDIR|%{_sysconfdir}|g' $page
243 CFLAGS="%{rpmcflags} -fPIC -D_GNU_SOURCE=1"
248 %{!?with_static_libs:--disable-static} \
250 --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases \
251 --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
252 --with-srv-pid-file=/var/run/dhcpd.pid \
253 --with-cli-pid-file=/var/run/dhclient.pid \
254 --with-relay-pid-file=/var/run/dhcrelay.pid \
255 --with%{!?with_ldap:out}-ldap
259 rm -rf $RPM_BUILD_ROOT
260 install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig,dhclient-enter-hooks.d,dhclient-exit-hooks.d},%{_pkgconfigdir},/var/lib/{dhcpd,dhclient}}
263 DESTDIR=$RPM_BUILD_ROOT
265 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/dhcpd
266 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/dhcpd6
267 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/dhcp-relay
268 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/dhcpd
269 install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/dhcp-relay
271 install client/scripts/linux $RPM_BUILD_ROOT/sbin/dhclient-script
273 install server/dhcpd.conf.example $RPM_BUILD_ROOT%{_sysconfdir}/dhcpd.conf
274 install doc/examples/dhcpd-dhcpv6.conf $RPM_BUILD_ROOT%{_sysconfdir}/dhcpd6.conf
277 install -d $RPM_BUILD_ROOT%{schemadir}
278 install %{SOURCE10} $RPM_BUILD_ROOT%{schemadir}
281 :> $RPM_BUILD_ROOT%{_sysconfdir}/dhclient.conf
283 touch $RPM_BUILD_ROOT/var/lib/dhcpd/dhcpd.leases
284 touch $RPM_BUILD_ROOT/var/lib/dhclient/dhclient.leases
286 touch $RPM_BUILD_ROOT/var/lib/dhcpd/dhcpd6.leases
287 touch $RPM_BUILD_ROOT/var/lib/dhclient/dhclient6.leases
289 %if %{with static_libs}
290 # HACK: strip doesn't like .a inside .a
291 install -d stripworkdir
293 for a in $RPM_BUILD_ROOT%{_libdir}/*.a; do
294 archives=$(ar t $a | grep '\.a$' || :)
295 [ "$archives" ] || continue
297 # hope we don't have to recurse here
298 for ar in $archives; do
310 rm -rf $RPM_BUILD_ROOT
313 touch /var/lib/dhcpd/dhcpd.leases
314 touch /var/lib/dhcpd/dhcpd6.leases
315 /sbin/chkconfig --add dhcpd
316 %service dhcpd restart "dhcpd daemon"
317 /sbin/chkconfig --add dhcpd6
318 %service dhcpd6 restart "dhcpd IPv6 daemon"
321 if [ "$1" = "0" ];then
323 /sbin/chkconfig --del dhcpd
325 /sbin/chkconfig --del dhcpd6
328 %triggerpostun -- dhcp < 3.0
329 if ! grep -q ddns-update-style /etc/dhcpd.conf; then
330 %{__sed} -i -e '1iddns-update-style none;' /etc/dhcpd.conf
333 %post -n openldap-schema-dhcp
334 %openldap_schema_register %{schemadir}/dhcp.schema -d core
335 %service -q ldap restart
337 %postun -n openldap-schema-dhcp
338 if [ "$1" = "0" ]; then
339 %openldap_schema_unregister %{schemadir}/dhcp.schema
340 %service -q ldap restart
344 /sbin/chkconfig --add dhcp-relay
345 if [ -f /var/lock/subsys/dhcrelay ]; then
346 mv -f /var/lock/subsys/{dhcrelay,dhcp-relay}
348 %service dhcp-relay restart "dhcrelay daemon"
351 if [ "$1" = "0" ];then
352 %service dhcp-relay stop
353 /sbin/chkconfig --del dhcp-relay
356 %triggerun client -- %{name}-client < 4:4.0.2-2
357 if [ -f /etc/dhclient-enter-hooks ] ; then
358 mv /etc/dhclient-enter-hooks /etc/dhclient-enter-hooks.d/
360 if [ -f /etc/dhclient-exit-hooks ] ; then
361 mv /etc/dhclient-exit-hooks /etc/dhclient-exit-hooks.d/
365 %defattr(644,root,root,755)
366 %doc doc/* README RELNOTES server/dhcpd.conf.example LICENSE
367 %doc contrib/ms2isc %{?with_ldap:contrib/dhcpd-conf-to-ldap README.ldap}
368 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/dhcpd
369 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dhcpd.conf
370 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dhcpd6.conf
371 %attr(755,root,root) %{_bindir}/omshell
372 %attr(755,root,root) %{_sbindir}/dhcpd
373 %attr(754,root,root) /etc/rc.d/init.d/dhcpd
374 %attr(754,root,root) /etc/rc.d/init.d/dhcpd6
375 %attr(750,root,root) %dir /var/lib/dhcpd
376 %ghost /var/lib/dhcpd/dhcpd.leases
377 %ghost /var/lib/dhcpd/dhcpd6.leases
378 %{_mandir}/man1/omshell.1*
379 %{_mandir}/man5/dhcp-eval.5*
380 %{_mandir}/man5/dhcp-options.5*
381 %{_mandir}/man5/dhcpd.conf.5*
382 %{_mandir}/man5/dhcpd.leases.5*
383 %{_mandir}/man8/dhcpd.8*
386 %defattr(644,root,root,755)
387 %doc contrib/sethostname.sh client/dhclient.conf.example
388 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dhclient.conf
389 %attr(755,root,root) /sbin/dhclient
390 %attr(755,root,root) /sbin/dhclient-script
391 %{_mandir}/man5/dhclient.conf.5*
392 %{_mandir}/man5/dhclient.leases.5*
393 %{_mandir}/man8/dhclient.8*
394 %{_mandir}/man8/dhclient-script.8*
395 %dir %attr(750,root,root) /var/lib/dhclient
396 %ghost /var/lib/dhclient/dhclient.leases
397 %ghost /var/lib/dhclient/dhclient6.leases
400 %defattr(644,root,root,755)
401 %dir %{_sysconfdir}/dhclient-enter-hooks.d
402 %dir %{_sysconfdir}/dhclient-exit-hooks.d
405 %defattr(644,root,root,755)
406 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/dhcp-relay
407 %attr(755,root,root) %{_sbindir}/dhcrelay
408 %attr(754,root,root) /etc/rc.d/init.d/dhcp-relay
409 %{_mandir}/man8/dhcrelay.8*
412 %defattr(644,root,root,755)
414 %{_libdir}/libdhcpctl.a
415 %{_libdir}/libomapi.a
416 %{_includedir}/dhcpctl
417 %{_includedir}/omapip
418 %{_mandir}/man3/dhcpctl.3*
419 %{_mandir}/man3/omapi.3*
422 %files -n openldap-schema-dhcp
423 %defattr(644,root,root,755)
424 %{schemadir}/dhcp.schema