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