]> git.pld-linux.org Git - packages/dhcp.git/blame_incremental - dhcp.spec
- force -4 and pidfile (dhcpd6 uses same binary and defaults to -6)
[packages/dhcp.git] / dhcp.spec
... / ...
CommitLineData
1#
2# Conditional build:
3%bcond_without ldap # without support for ldap storage
4%bcond_without static_libs # don't build static library
5
6# vendor string
7%define vvendor PLD/Linux
8#
9Summary: DHCP Server
10Summary(es.UTF-8): Servidor DHCP
11Summary(pl.UTF-8): Serwer DHCP
12Summary(pt_BR.UTF-8): Servidor DHCP (Protocolo de configuração dinâmica de hosts)
13Name: dhcp
14# 4.1.0a1 is on DEVEL
15Version: 4.0.1p1
16Release: 1
17Epoch: 4
18License: MIT
19Group: Networking/Daemons
20Source0: ftp://ftp.isc.org/isc/dhcp/%{name}-%{version}.tar.gz
21# Source0-md5: 42bac85e1513e177c6bb2bf64d448dbe
22Source1: %{name}.init
23Source2: %{name}6.init
24Source3: %{name}-relay.init
25Source4: %{name}.sysconfig
26Source5: %{name}-relay.sysconfig
27Source6: %{name}-libdhcp4client.pc
28Source7: %{name}-dhcp4client.h
29Source8: %{name}-libdhcp4client.make
30Source9: %{name}-libdhcp_control.h
31Source10: %{name}.schema
32Source11: %{name}-README.ldap
33Source12: draft-ietf-dhc-ldap-schema-01.txt
34Source13: dhcpd-conf-to-ldap
35Source14: dhcp-dhclient-script
36Patch0: %{name}-release-by-ifup.patch
37# from fedora 9-dev
38Patch1: %{name}-ldap.patch
39Patch2: %{name}-3.0.3-x-option.patch
40Patch3: %{name}-paths.patch
41Patch4: %{name}-arg-concat.patch
42Patch5: %{name}-timeouts.patch
43Patch6: %{name}-options.patch
44Patch7: %{name}-libdhcp4client.patch
45Patch8: %{name}-prototypes.patch
46Patch9: %{name}-errwarn-message.patch
47Patch10: %{name}-memory.patch
48Patch11: %{name}-dhclient-decline-backoff.patch
49Patch12: %{name}-unicast-bootp.patch
50Patch13: %{name}-fast-timeout.patch
51Patch14: %{name}-failover-ports.patch
52Patch15: %{name}-dhclient-usage.patch
53Patch16: %{name}-default-requested-options.patch
54Patch17: %{name}-xen-checksum.patch
55Patch18: %{name}-dhclient-anycast.patch
56Patch19: %{name}-manpages.patch
57Patch20: %{name}-NetworkManager-crash.patch
58Patch21: %{name}-no-ipv6.patch
59URL: http://www.isc.org/sw/dhcp/
60BuildRequires: autoconf
61BuildRequires: automake
62BuildRequires: groff
63BuildRequires: libtool
64%{?with_ldap:BuildRequires: openldap-devel}
65%{?with_ldap:BuildRequires: openssl-devel}
66BuildRequires: rpmbuild(macros) >= 1.304
67Requires(post): coreutils
68Requires(post,preun): /sbin/chkconfig
69Requires: rc-scripts >= 0.2.0
70Provides: dhcpd
71BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72
73%define _sbindir /sbin
74%define schemadir /usr/share/openldap/schema
75
76%description
77DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
78individual devices on an IP network to get their own network
79configuration information (IP address, subnetmask, broadcast address,
80etc.) from a DHCP server. The overall purpose of DHCP is to make it
81easier to administer a large network.
82
83%description -l es.UTF-8
84DHCP permite que hosts en una red TCP/IP soliciten y tengan sus
85direcciones IP alocadas dinámicamente, permite también descubrir
86información sobre la red en que están conectados. BOOTP provee una
87funcionalidad similar, con ciertas restricciones. Este servidor
88también las atiende.
89
90%description -l pl.UTF-8
91Serwer DHCP (Dynamic Host Configuration Protocol).
92
93DHCP to protokół pozwalający urządzeniom pracującym w sieci IP na
94pobieranie ich konfiguracji IP (adresu, maski podsieci, adresu
95rozgłoszeniowego itp.) z serwera DHCP. Ułatwia on administrowanie
96dużymi sieciami IP.
97
98%description -l pt_BR.UTF-8
99DHCP permite que hosts numa rede TCP/IP requisitem e tenham seus
100endereços IP alocados dinamicamente, permite também descobrir
101informações sobre a rede em que estão conectados. BOOTP provê uma
102funcionalidade similar, com certas restrições. Este servidor também
103atende aquelas requisições. Esta versão é ainda considerada um
104software BETA.
105
106%package -n openldap-schema-dhcp
107Summary: LDAP Schema for DHCP Server
108Summary(pl.UTF-8): Schemat LDAP dla serwera DHCP
109Group: Networking/Daemons
110Requires(post,postun): sed >= 4.0
111Requires: openldap-servers
112
113%description -n openldap-schema-dhcp
114This package contains LDAPv3 schema for use with the DHCP Server.
115
116%description -n openldap-schema-dhcp -l pl.UTF-8
117Ten pakiet zawiera schemat LDAPv3 do używania z serwerem DHCP.
118
119%package client
120Summary: DHCP Client
121Summary(pl.UTF-8): Klient DHCP
122Group: Networking/Daemons
123Requires: coreutils
124Requires: iproute2
125Requires: net-tools
126Obsoletes: dhclient
127
128%description client
129Dynamic Host Configuration Protocol Client.
130
131%description client -l pl.UTF-8
132Klient DHCP (Dynamic Host Configuration Protocol).
133
134%package relay
135Summary: DHCP Relay Agent
136Summary(pl.UTF-8): Agent przekazywania informacji DHCP
137Group: Networking/Daemons
138Requires(post): coreutils
139Requires(post,preun): /sbin/chkconfig
140Requires: rc-scripts >= 0.2.0
141
142%description relay
143Dhcp relay is a relay agent for DHCP packets. It is used on a subnet
144with DHCP clients to "relay" their requests to a subnet that has a
145DHCP server on it. Because DHCP packets can be broadcast, they will
146not be routed off of the local subnet. The DHCP relay takes care of
147this for the client.
148
149%description relay -l pl.UTF-8
150Agent przekazywania DHCP (Dynamic Host Configuration Protocol) między
151podsieciami. Ponieważ komunikaty DHCP mogą być przekazywane w formie
152rozgłoszeniowej, bez tego agenta nie zostaną przerutowane do innej
153podsieci.
154
155%package devel
156Summary: DHCP development includes and libs
157Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki dla oprogramowania DHCP
158Group: Development/Libraries
159
160%description devel
161Includes OMAPI and dhcptl libraries.
162
163OMAPI is an programming layer designed for controlling remote
164applications, and for querying them for their state. It is currently
165used by the ISC DHCP server.
166
167The dhcpctl set of functions provide an API that can be used to
168communicate with and manipulate a running ISC DHCP server.
169
170%description devel -l pl.UTF-8
171Zawiera biblioteki OMAPI oraz dhcpctl.
172
173OMAPI to warstwa programowa stworzona do kontroli zdalnych aplikacji i
174odpytywania o ich stan. Aktualnie jest używana przez serwer ISC DHCP.
175
176dhcpctl to zbiór funkcji tworzących API, które może być używane do
177komunikacji z działającym serwerem ISC DHCP i jego kontroli.
178
179%package -n libdhcp4client
180Summary: The DHCP client in a library for invocation by other programs
181Summary(pl.UTF-8): Klient DHCP w postaci biblioteki do wykorzystania w innych programach
182Group: Development/Libraries
183
184%description -n libdhcp4client
185Provides the client for the DHCP protocol.
186
187%description -n libdhcp4client -l pl.UTF-8
188Ten pakiet zawiera klienta protokołu DHCP.
189
190%package -n libdhcp4client-devel
191Summary: Header files for development with the DHCP client library
192Summary(pl.UTF-8): Pliki nagłówkowe do programowania z użyciem biblioteki klienckiej DHCP
193License: GPL v2+
194Group: Development/Libraries
195Requires: libdhcp4client = %{epoch}:%{version}-%{release}
196
197%description -n libdhcp4client-devel
198Header files for development with the DHCP client library.
199
200%description -n libdhcp4client-devel -l pl.UTF-8
201Pliki nagłówkowe do programowania z użyciem biblioteki klienckiej
202DHCP.
203
204%package -n libdhcp4client-static
205Summary: Static DHCP client library
206Summary(pl.UTF-8): Statyczna biblioteka kliencka DHCP
207Group: Development/Libraries
208Requires: libdhcp4client-devel = %{epoch}:%{version}-%{release}
209
210%description -n libdhcp4client-static
211Static DHCP client library.
212
213%description -n libdhcp4client-static -l pl.UTF-8
214Statyczna biblioteka kliencka DHCP.
215
216%prep
217%setup -q
218%patch0 -p1
219%{?with_ldap:%patch1 -p1}
220# This patch is required for dhcdbd to function
221# CHECK ME: adds -x (formerly -y):
222#The -x argument enables extended option information to be created in the
223#-s dhclient-script environment, which would allow applications running
224#in that environment to handle options they do not know about in advance -
225#this is a Red Hat extension to support dhcdbd and NetworkManager.
226# however, fedora doesn't have this patch anymore, so can drop?
227#%%patch2 -p1
228%patch3 -p1
229%patch4 -p1
230%patch5 -p1
231%patch6 -p1
232%patch7 -p1
233%patch8 -p1
234%patch9 -p1
235%patch10 -p1
236%patch11 -p1
237%patch12 -p1
238%patch13 -p1
239%patch14 -p1
240%patch15 -p1
241%patch16 -p1
242%patch17 -p1
243%patch18 -p1
244%patch19 -p1
245%patch20 -p1
246%patch21 -p1
247
248# Copy in documentation and example scripts for LDAP patch to dhcpd
249cp -a %{SOURCE11} README.ldap
250cp -a %{SOURCE12} doc
251cp -a %{SOURCE13} contrib
252
253# Copy in the libdhcp4client headers and Makefile.dist
254install -d libdhcp4client
255cp %{SOURCE7} libdhcp4client/dhcp4client.h
256cp %{SOURCE8} libdhcp4client/Makefile.dist
257
258# Copy in libdhcp_control.h to the isc-dhcp includes directory
259cp %{SOURCE9} includes/isc-dhcp/libdhcp_control.h
260
261# Replace @PRODUCTNAME@
262%{__sed} -i -e 's|@PRODUCTNAME@|%{vvendor}|g' common/dhcp-options.5
263%{__sed} -i -e 's|@PRODUCTNAME@|%{vvendor}|g' configure.ac
264
265# Update paths in all man pages
266for page in client/dhclient.conf.5 client/dhclient.leases.5 client/dhclient-script.8 client/dhclient.8; do
267 %{__sed} -i -e 's|CLIENTBINDIR|/sbin|g' \
268 -e 's|RUNDIR|%{_localstatedir}/run|g' \
269 -e 's|DBDIR|%{_localstatedir}/db/dhclient|g' \
270 -e 's|ETCDIR|%{_sysconfdir}|g' $page
271done
272
273for page in server/dhcpd.conf.5 server/dhcpd.leases.5 server/dhcpd.8; do
274 %{__sed} -i -e 's|CLIENTBINDIR|/sbin|g' \
275 -e 's|RUNDIR|%{_localstatedir}/run|g' \
276 -e 's|DBDIR|%{_localstatedir}/db/dhcpd|g' \
277 -e 's|ETCDIR|%{_sysconfdir}|g' $page
278done
279
280sed 's/@DHCP_VERSION@/'%{version}'/' < %{SOURCE6} > libdhcp4client.pc
281
282%build
283%{__libtoolize}
284%{__aclocal}
285%{__autoconf}
286%{__autoheader}
287%{__automake}
288CFLAGS="%{rpmcflags} -fPIC -D_GNU_SOURCE=1"
289%configure \
290 %{!?with_static_libs:--disable-static} \
291 --enable-dhcpv6 \
292 --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases \
293 --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
294 --with-srv-pid-file=/var/run/dhcpd.pid \
295 --with-cli-pid-file=/var/run/dhclient.pid \
296 --with-relay-pid-file=/var/run/dhcrelay.pid
297%{__make}
298
299%install
300rm -rf $RPM_BUILD_ROOT
301install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig},%{_pkgconfigdir},/var/lib/{dhcpd,dhclient}}
302
303%{__make} install \
304 DESTDIR=$RPM_BUILD_ROOT
305
306install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/dhcpd
307install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/dhcpd6
308install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/dhcp-relay
309install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/dhcpd
310install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/dhcp-relay
311install %{SOURCE14} $RPM_BUILD_ROOT/sbin/dhclient-script
312
313install server/dhcpd.conf $RPM_BUILD_ROOT%{_sysconfdir}
314
315%if %{with ldap}
316install -d $RPM_BUILD_ROOT%{schemadir}
317install %{SOURCE10} $RPM_BUILD_ROOT%{schemadir}
318%endif
319
320# Install headers for libdhcp4client-devel
321install -d $RPM_BUILD_ROOT%{_includedir}/dhcp4client
322install libdhcp4client/dhcp4client.h $RPM_BUILD_ROOT%{_includedir}/dhcp4client/dhcp4client.h
323install -d $RPM_BUILD_ROOT%{_includedir}/dhcp4client/minires
324for hdr in cdefs.h ctrace.h dhcp.h dhcp6.h dhcpd.h dhctoken.h failover.h \
325 heap.h inet.h minires/minires.h minires/res_update.h \
326 minires/resolv.h osdep.h site.h statement.h tree.h; do
327 install -p -m 0644 includes/${hdr} $RPM_BUILD_ROOT%{_includedir}/dhcp4client/${hdr}
328done
329
330:> $RPM_BUILD_ROOT%{_sysconfdir}/dhclient.conf
331
332touch $RPM_BUILD_ROOT/var/lib/dhcpd/dhcpd.leases
333touch $RPM_BUILD_ROOT/var/lib/dhclient/dhclient.leases
334
335touch $RPM_BUILD_ROOT/var/lib/dhcpd/dhcpd6.leases
336touch $RPM_BUILD_ROOT/var/lib/dhclient/dhclient6.leases
337
338# Install pkg-config file
339install libdhcp4client.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/libdhcp4client.pc
340cp -a includes/isc-dhcp/libdhcp_control.h $RPM_BUILD_ROOT%{_includedir}/isc-dhcp
341
342%if %{with static_libs}
343# HACK: strip doesn't like .a inside .a
344install -d stripworkdir
345cd stripworkdir
346for a in $RPM_BUILD_ROOT%{_libdir}/*.a; do
347 archives=$(ar t $a | grep '\.a$' || :)
348 [ "$archives" ] || continue
349
350 # hope we don't have to recurse here
351 for ar in $archives; do
352 rm -f *.o *.a
353 ar x $a $ar
354 ar x $ar
355 ar d $a $ar
356 ar cr $a *.o
357 done
358done
359cd -
360%endif
361
362%clean
363rm -rf $RPM_BUILD_ROOT
364
365%post
366touch /var/lib/dhcpd/dhcpd.leases
367touch /var/lib/dhcpd/dhcpd6.leases
368/sbin/chkconfig --add dhcpd
369%service dhcpd restart "dhcpd daemon"
370/sbin/chkconfig --add dhcpd6
371%service dhcpd6 restart "dhcpd IPv6 daemon"
372
373%preun
374if [ "$1" = "0" ];then
375 %service dhcpd stop
376 /sbin/chkconfig --del dhcpd
377 %service dhcpd6 stop
378 /sbin/chkconfig --del dhcpd6
379fi
380
381%triggerpostun -- dhcp < 3.0
382if ! grep -q ddns-update-style /etc/dhcpd.conf; then
383 %{__sed} -i -e '1iddns-update-style none;' /etc/dhcpd.conf
384fi
385
386%post -n openldap-schema-dhcp
387%openldap_schema_register %{schemadir}/dhcp.schema -d core
388%service -q ldap restart
389
390%postun -n openldap-schema-dhcp
391if [ "$1" = "0" ]; then
392 %openldap_schema_unregister %{schemadir}/dhcp.schema
393 %service -q ldap restart
394fi
395
396%post relay
397/sbin/chkconfig --add dhcp-relay
398if [ -f /var/lock/subsys/dhcrelay ]; then
399 mv -f /var/lock/subsys/{dhcrelay,dhcp-relay}
400fi
401%service dhcp-relay restart "dhcrelay daemon"
402
403%preun relay
404if [ "$1" = "0" ];then
405 %service dhcp-relay stop
406 /sbin/chkconfig --del dhcp-relay
407fi
408
409%post -n libdhcp4client -p /sbin/ldconfig
410%postun -n libdhcp4client -p /sbin/ldconfig
411
412%files
413%defattr(644,root,root,755)
414%doc doc/* README RELNOTES server/dhcpd.conf LICENSE contrib/ms2isc
415%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/dhcpd
416%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dhcpd.conf
417%attr(755,root,root) %{_bindir}/omshell
418%attr(755,root,root) %{_sbindir}/dhcpd
419%attr(754,root,root) /etc/rc.d/init.d/dhcpd
420%attr(754,root,root) /etc/rc.d/init.d/dhcpd6
421%attr(750,root,root) %dir /var/lib/dhcpd
422%ghost /var/lib/dhcpd/dhcpd.leases
423%ghost /var/lib/dhcpd/dhcpd6.leases
424%{_mandir}/man1/omshell.1*
425%{_mandir}/man5/dhcp-eval.5*
426%{_mandir}/man5/dhcp-options.5*
427%{_mandir}/man5/dhcpd.conf.5*
428%{_mandir}/man5/dhcpd.leases.5*
429%{_mandir}/man8/dhcpd.8*
430
431%files client
432%defattr(644,root,root,755)
433%doc contrib/sethostname.sh client/dhclient.conf
434%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dhclient.conf
435%attr(755,root,root) /sbin/dhclient
436%attr(755,root,root) /sbin/dhclient-script
437%{_mandir}/man5/dhclient.conf.5*
438%{_mandir}/man5/dhclient.leases.5*
439%{_mandir}/man8/dhclient.8*
440%{_mandir}/man8/dhclient-script.8*
441%dir %attr(750,root,root) /var/lib/dhclient
442%ghost /var/lib/dhclient/dhclient.leases
443%ghost /var/lib/dhclient/dhclient6.leases
444
445%files relay
446%defattr(644,root,root,755)
447%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/dhcp-relay
448%attr(755,root,root) %{_sbindir}/dhcrelay
449%attr(754,root,root) /etc/rc.d/init.d/dhcp-relay
450%{_mandir}/man8/dhcrelay.8*
451
452%files devel
453%defattr(644,root,root,755)
454%{_libdir}/libdhcpctl.a
455%{_libdir}/libdst.a
456%{_libdir}/libomapi.a
457%{_includedir}/dhcpctl
458%{_includedir}/isc-dhcp
459%{_includedir}/omapip
460%{_mandir}/man3/dhcpctl.3*
461%{_mandir}/man3/omapi.3*
462
463%files -n libdhcp4client
464%defattr(644,root,root,755)
465%attr(755,root,root) %{_libdir}/libdhcp4client-*.so.*
466
467%files -n libdhcp4client-devel
468%defattr(644,root,root,755)
469%attr(755,root,root) %{_libdir}/libdhcp4client.so
470%{_includedir}/dhcp4client
471%{_pkgconfigdir}/libdhcp4client.pc
472%{_libdir}/libdhcp4client.la
473
474%if %{with static_libs}
475%files -n libdhcp4client-static
476%defattr(644,root,root,755)
477%{_libdir}/libdhcp4client.a
478%endif
479
480%if %{with ldap}
481%files -n openldap-schema-dhcp
482%defattr(644,root,root,755)
483%{schemadir}/dhcp.schema
484%endif
This page took 0.048545 seconds and 4 git commands to generate.