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