fix typo
[profile/ivi/dhcp.git] / packaging / dhcp.spec
1 # vendor string (e.g., Tizen, EL)
2 %global vvendor Tizen
3
4 # Where dhcp configuration files are stored
5 %global dhcpconfdir %{_sysconfdir}/dhcp
6
7 # Patch version 
8 #%global patchver P2
9 # Pre-Release version
10 #%%global prever rc1
11
12 #%%global VERSION %{version}%{prever}
13 #%%global VERSION %{version}
14 #%global VERSION %{version}-%{patchver}
15
16 Summary:  Dynamic host configuration protocol software
17 Name:     dhcp
18 Version:  4.2.3
19 Release:  1
20 License:  ISC
21 Group:    System Environment/Daemons
22 URL:      http://isc.org/products/DHCP/
23 Source0:  %dhcp-%{version}.tar.gz
24 Source1:  dhclient-script
25 Source2:  README.dhclient.d
26 Source3:  11-dhclient
27 Source4:  56dhclient
28 Source5:  dhcpd.service
29 Source6:  dhcpd6.service
30 Source7:  dhcrelay.service
31
32 Patch0:   dhcp-4.2.0-errwarn-message.patch
33 Patch1:   dhcp-4.2.3-options.patch
34 Patch2:   dhcp-4.2.0-release-by-ifup.patch
35 Patch3:   dhcp-4.2.0-dhclient-decline-backoff.patch
36 Patch4:   dhcp-4.2.0-unicast-bootp.patch
37 Patch6:   dhcp-4.2.2-dhclient-usage.patch
38 Patch7:   dhcp-4.2.0-default-requested-options.patch
39 Patch8:   dhcp-4.2.2-xen-checksum.patch
40 Patch10:  dhcp-4.2.1-manpages.patch
41 Patch11:  dhcp-4.2.0-paths.patch
42 Patch12:  dhcp-4.2.2-CLOEXEC.patch
43 Patch13:  dhcp-4.2.0-inherit-leases.patch
44 Patch14:  dhcp-4.2.0-garbage-chars.patch
45 Patch15:  dhcp-4.2.0-missing-ipv6-not-fatal.patch
46 Patch17:  dhcp-4.2.0-add_timeout_when_NULL.patch
47 Patch18:  dhcp-4.2.1-64_bit_lease_parse.patch
48 Patch19:  dhcp-4.2.2-capability.patch
49 Patch20:  dhcp-4.2.0-logpid.patch
50 Patch21:  dhcp-4.2.0-UseMulticast.patch
51 Patch22:  dhcp-4.2.1-sendDecline.patch
52 Patch23:  dhcp-4.2.1-retransmission.patch
53 Patch25:  dhcp-4.2.3-rfc3442-classless-static-routes.patch
54 Patch27:  dhcp-4.2.0-honor-expired.patch
55 Patch28:  dhcp-4.2.0-noprefixavail.patch
56 Patch29:  dhcp-4.2.2-remove-bind.patch
57 Patch30:  dhcp-4.2.2-sharedlib.patch
58 Patch31:  dhcp-4.2.0-PPP.patch
59 Patch32:  dhcp-4.2.3-paranoia.patch
60 Patch33:  dhcp-4.2.2-lpf-ib.patch
61 Patch34:  dhcp-4.2.2-improved-xid.patch
62 Patch35:  dhcp-4.2.2-gpxe-cid.patch
63 Patch36:  dhcp-4.2.2-systemtap.patch
64 Patch37:  dhcp-4.2.3-dhclient-decline-onetry.patch
65 Patch38:  dhcp-4.2.3-P2-log_perror.patch
66 Patch39:  dhcp-4.2.3-P2-getifaddrs.patch
67 Patch40:  dhcp-4.2.3-P2-send_release.patch
68 Patch41:  dhcp-4.2.3-P2-rfc5970-dhcpv6-options-for-network-boot.patch
69
70 BuildRequires: autoconf
71 BuildRequires: automake
72 BuildRequires: groff
73 BuildRequires: libtool
74 #BuildRequires: openldap-devel
75 #BuildRequires: libcap-ng-devel
76 #BuildRequires: bind-lite-devel
77
78 Requires: %{name}-common = %{version}-%{release}
79 Requires: %{name}-libs%{?_isa} = %{version}-%{release}
80 #Requires(pre): shadow
81 Requires(post): coreutils
82 Requires(post): systemd
83 Requires(preun): systemd
84 Requires(postun): systemd
85
86 # In _docdir we ship some perl scripts and module from contrib subdirectory.
87 # Because nothing under _docdir is allowed to "require" anything,
88 # prevent _docdir from being scanned. (#674058)
89 %filter_requires_in %{_docdir}
90 %filter_setup
91
92 %description
93 DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
94 individual devices on an IP network to get their own network
95 configuration information (IP address, subnetmask, broadcast address,
96 etc.) from a DHCP server. The overall purpose of DHCP is to make it
97 easier to administer a large network.
98
99 To use DHCP on your network, install a DHCP service (or relay agent),
100 and on clients run a DHCP client daemon.  The dhcp package provides
101 the ISC DHCP service and relay agent.
102
103 %package -n dhclient
104 Summary: Provides the ISC DHCP client daemon and dhclient-script
105 Group: System Environment/Base
106 Requires: initscripts
107 Requires: %{name}-common = %{version}-%{release}
108 Requires: %{name}-libs%{?_isa} = %{version}-%{release}
109 Requires(post): coreutils
110 Requires(post): grep
111
112 %description -n dhclient
113 DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
114 individual devices on an IP network to get their own network
115 configuration information (IP address, subnetmask, broadcast address,
116 etc.) from a DHCP server. The overall purpose of DHCP is to make it
117 easier to administer a large network.
118
119 To use DHCP on your network, install a DHCP service (or relay agent),
120 and on clients run a DHCP client daemon.  The dhclient package
121 provides the ISC DHCP client daemon.
122
123 %package common
124 Summary: Common files used by ISC dhcp client and server
125 Group: System Environment/Base
126 Requires: %{name}-libs%{?_isa} = %{version}-%{release}
127
128 %description common
129 DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
130 individual devices on an IP network to get their own network
131 configuration information (IP address, subnetmask, broadcast address,
132 etc.) from a DHCP server. The overall purpose of DHCP is to make it
133 easier to administer a large network.
134
135 This package provides common files used by dhcp and dhclient package.
136
137 %package libs
138 Summary: Shared libraries used by ISC dhcp client and server
139 Group: System Environment/Base
140
141 %description libs
142 This package contains shared libraries used by ISC dhcp client and server
143
144
145 %package devel
146 Summary: Development headers and libraries for interfacing to the DHCP server
147 Group: Development/Libraries
148 Requires: %{name}-libs%{?_isa} = %{version}-%{release}
149
150 %description devel
151 Header files and API documentation for using the ISC DHCP libraries.  The
152 libdhcpctl and libomapi static libraries are also included in this package.
153
154 %prep
155 %setup -q -n dhcp-%{version}
156
157 # Remove bundled BIND source
158 #rm bind/bind.tar.gz
159
160 # Fire away bundled BIND source.
161 #%patch29 -p1 -b .remove-bind %{?_rawbuild}
162
163 # Replace the standard ISC warning message about requesting help with an
164 # explanation that this is a patched build of ISC DHCP and bugs should be
165 # reported through bugzilla.redhat.com
166 %patch0 -p1 -b .errwarn
167
168 # Add more dhclient options (-I, -B, -H, -F, -timeout, -V, and -R)
169 %patch1 -p1 -b .options
170
171 # Handle releasing interfaces requested by /sbin/ifup
172 # pid file is assumed to be /var/run/dhclient-$interface.pid
173 %patch2 -p1 -b .ifup
174
175 # If we receive a DHCP offer in dhclient and it's DECLINEd in dhclient-script,
176 # backoff for an amount of time before trying again
177 %patch3 -p1 -b .backoff
178
179 # Support unicast BOOTP for IBM pSeries systems (and maybe others)
180 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #19146])
181 %patch4 -p1 -b .unicast
182
183 # Update the usage screen for dhclient(8) indicating new options
184 # Use printf() rather than log_info() to display the information
185 # Also, return EXIT_FAILURE when the usage() screen is displayed (stop parsing)
186 %patch6 -p1 -b .usage
187
188 # Add NIS domain, NIS servers, NTP servers, interface-mtu and domain-search
189 # to the list of default requested DHCP options
190 %patch7 -p1 -b .requested
191
192 # Handle Xen partial UDP checksums
193 %patch8 -p1 -b .xen
194
195 # Patch man page contents
196 %patch10 -p1 -b .man
197
198 # Change paths to conform to our standards
199 %patch11 -p1 -b .paths
200
201 # Make sure all open file descriptors are closed-on-exec for SELinux (#446632)
202 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #19148])
203 %patch12 -p1 -b .cloexec
204
205 # If we have an active lease, do not down the interface (#453982)
206 %patch13 -p1 -b .inherit
207
208 # Fix 'garbage in format string' error (#450042)
209 %patch14 -p1 -b .garbage
210
211 # If the ipv6 kernel module is missing, do not segfault
212 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #19367])
213 %patch15 -p1 -b .noipv6
214
215 # Handle cases in add_timeout() where the function is called with a NULL
216 # value for the 'when' parameter
217 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #19867])
218 %patch17 -p1 -b .dracut
219
220 # Ensure 64-bit platforms parse lease file dates & times correctly (#448615, #628258)
221 # (Partly submitted to dhcp-bugs@isc.org - [ISC-Bugs #22033])
222 %patch18 -p1 -b .64-bit_lease_parse
223
224 # Drop unnecessary capabilities in
225 # dhclient (#517649, #546765), dhcpd/dhcrelay (#699713)
226 %patch19 -p1 -b .capability
227
228 # dhclient logs its pid to make troubleshooting NM managed systems
229 # with multiple dhclients running easier (#546792)
230 %patch20 -p1 -b .logpid
231
232 # Discard unicast Request/Renew/Release/Decline message
233 # (unless we set unicast option) and respond with Reply
234 # with UseMulticast Status Code option (#573090)
235 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21235])
236 %patch21 -p1 -b .UseMulticast
237
238 # If any of the bound addresses are found to be in use on the link,
239 # the dhcpv6 client sends a Decline message to the server
240 # as described in section 18.1.7 of RFC-3315 (#559147)
241 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21237])
242 %patch22 -p1 -b .sendDecline
243
244 # In client initiated message exchanges stop retransmission
245 # upon reaching the MRD rather than at some point after it (#559153)
246 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21238])
247 %patch23 -p1 -b .retransmission
248
249 # RFC 3442 - Classless Static Route Option for DHCPv4 (#516325)
250 %patch25 -p1 -b .rfc3442
251
252 # check whether there is any unexpired address in previous lease
253 # prior to confirming (INIT-REBOOT) the lease (#585418)
254 # (Submitted to dhcp-suggest@isc.org - [ISC-Bugs #22675])
255 %patch27 -p1 -b .honor-expired
256
257 # 1) When server has empty pool of addresses/prefixes it must send Advertise with
258 #    NoAddrsAvail/NoPrefixAvail status in response to clients Solicit.
259 #    Without this patch server having empty pool of addresses/prefixes was ignoring
260 #    client's' Solicit when client was also sending address in IA_NA or prefix in IA_PD as a preference.
261 # 2) When client sends prefix in IA_PD as a preference and server doesn't have
262 #    this prefix in any pool the server should offer other free prefix.
263 #    Without this patch server ignored client's Solicit in which the client was sending
264 #    prefix in IA_PD (as a preference) and this prefix was not in any of server's pools.
265 #   (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #22676])
266 %patch28 -p1 -b .noprefixavail
267
268 #Build dhcp's libraries as shared libs instead of static libs.
269 #%patch30 -p1 -b .sharedlib
270
271 # DHCPv6 over PPP support (#626514)
272 %patch31 -p1 -b .PPP
273
274 # Write PID file BEFORE changing of the effective user/group ID.
275 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #25806])
276 %patch32 -p1 -b .paranoia
277
278 # IPoIB support (#660681)
279 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24249])
280 %patch33 -p1 -b .lpf-ib
281 %patch34 -p1 -b .improved-xid
282 %patch35 -p1 -b .gpxe-cid
283
284 # http://sourceware.org/systemtap/wiki/SystemTap
285 %patch36 -p1 -b .systemtap
286
287 # Send DHCPDECLINE and exit(2) when duplicate address was detected and
288 # dhclient had been started with '-1' (#756759).
289 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #26735])
290 %patch37 -p1 -b .decline-onetry
291
292 # Don't send log messages to the standard error descriptor by default (#790387)
293 # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28049])
294 %patch38 -p1 -b .log_perror
295
296 # Use getifaddrs() to scan for interfaces on Linux (#449946)
297 %patch39 -p1 -b .getifaddrs
298
299 # Don't use fallback_interface when releasing lease (#800561)
300 %patch40 -p1 -b .send_release
301
302 # RFC5970 - DHCPv6 Options for Network Boot (#798735)
303 %patch41 -p1 -b .rfc5970
304
305 # Copy in the dhclient script
306 %{__install} -p -m 0755 %{SOURCE1} client/scripts/linux
307 %{__install} -p -m 0644 %{SOURCE2} .
308
309 pushd contrib
310 %{__chmod} -x 3.0b1-lease-convert dhclient-tz-exithook.sh ldap/dhcpd-conf-to-ldap
311 %{__chmod} -x sethostname.sh solaris.init
312 %{__rm} -f dhcp.spec
313
314 # We want UNIX-style line endings
315 %{__sed} -i -e 's/\r//' ms2isc/readme.txt
316 %{__sed} -i -e 's/\r//' ms2isc/Registry.pm
317 %{__sed} -i -e 's/\r//' ms2isc/ms2isc.pl
318 popd
319
320 # Replace @PRODUCTNAME@
321 %{__sed} -i -e 's|@PRODUCTNAME@|%{vvendor}|g' common/dhcp-options.5
322 %{__sed} -i -e 's|@PRODUCTNAME@|%{vvendor}|g' configure.ac
323
324 # Update paths in all man pages
325 for page in client/dhclient.conf.5 client/dhclient.leases.5 \
326             client/dhclient-script.8 client/dhclient.8 ; do
327     %{__sed} -i -e 's|CLIENTBINDIR|/sbin|g' \
328                 -e 's|RUNDIR|%{_localstatedir}/run|g' \
329                 -e 's|DBDIR|%{_localstatedir}/lib/dhclient|g' \
330                 -e 's|ETCDIR|%{dhcpconfdir}|g' $page
331 done
332
333 for page in server/dhcpd.conf.5 server/dhcpd.leases.5 server/dhcpd.8 ; do
334     %{__sed} -i -e 's|CLIENTBINDIR|/sbin|g' \
335                 -e 's|RUNDIR|%{_localstatedir}/run|g' \
336                 -e 's|DBDIR|%{_localstatedir}/lib/dhcpd|g' \
337                 -e 's|ETCDIR|%{dhcpconfdir}|g' $page
338 done
339
340 %build
341 #libtoolize --copy --force
342 autoreconf --verbose --force --install
343
344 CFLAGS="%{optflags} -fno-strict-aliasing" \
345 %configure \
346     --with-srv-lease-file=%{_localstatedir}/lib/dhcpd/dhcpd.leases \
347     --with-srv6-lease-file=%{_localstatedir}/lib/dhcpd/dhcpd6.leases \
348     --with-cli-lease-file=%{_localstatedir}/lib/dhclient/dhclient.leases \
349     --with-cli6-lease-file=%{_localstatedir}/lib/dhclient/dhclient6.leases \
350     --with-srv-pid-file=%{_localstatedir}/run/dhcpd.pid \
351     --with-srv6-pid-file=%{_localstatedir}/run/dhcpd6.pid \
352     --with-cli-pid-file=%{_localstatedir}/run/dhclient.pid \
353     --with-cli6-pid-file=%{_localstatedir}/run/dhclient6.pid \
354     --with-relay-pid-file=%{_localstatedir}/run/dhcrelay.pid \
355     --disable-static \
356     --enable-paranoia --enable-early-chroot
357 #    --with-ldap \
358 #   --with-ldapcrypto \
359 #    --with-libbind=%{_includedir} --with-libbind-libs=%{_libdir} \
360 %{__make} %{?_smp_mflags}
361
362 %install
363 %{__make} install DESTDIR=%{buildroot}
364
365 # Remove files we don't want
366 %{__rm} -f %{buildroot}%{_sysconfdir}/dhclient.conf
367 %{__rm} -f %{buildroot}%{_sysconfdir}/dhcpd.conf
368
369 # Install correct dhclient-script
370 %{__mkdir} -p %{buildroot}/sbin
371 %{__mv} %{buildroot}%{_sbindir}/dhclient %{buildroot}/sbin/dhclient
372 %{__install} -p -m 0755 client/scripts/linux %{buildroot}/sbin/dhclient-script
373
374 # Install systemd unit files
375 mkdir -p %{buildroot}%{_unitdir}
376 install -m 644 %{SOURCE5} %{buildroot}%{_unitdir}
377 install -m 644 %{SOURCE6} %{buildroot}%{_unitdir}
378 install -m 644 %{SOURCE7} %{buildroot}%{_unitdir}
379
380 # Start empty lease databases
381 %{__mkdir} -p %{buildroot}%{_localstatedir}/lib/dhcpd/
382 touch %{buildroot}%{_localstatedir}/lib/dhcpd/dhcpd.leases
383 touch %{buildroot}%{_localstatedir}/lib/dhcpd/dhcpd6.leases
384 %{__mkdir} -p %{buildroot}%{_localstatedir}/lib/dhclient/
385
386 # Create default sysconfig files for dhcpd and dhcrelay
387 %{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig
388
389 %{__cat} << EOF > %{buildroot}%{_sysconfdir}/sysconfig/dhcrelay
390 # Command line options here
391 #Example: DHCRELAYARGS="-4 -i eth0 192.168.0.1"
392 #Example: DHCRELAYARGS="-6 -l eth1 -u eth0"
393 DHCRELAYARGS=""
394 # Note: We don't use INTERFACES and DHCPSERVERS anymore (they were DHCPv4 only)
395 EOF
396
397 %{__cat} <<EOF > %{buildroot}%{_sysconfdir}/sysconfig/dhcpd
398 # Command line options here
399 DHCPDARGS=""
400 EOF
401
402 %{__cat} <<EOF > %{buildroot}%{_sysconfdir}/sysconfig/dhcpd6
403 # Command line options here
404 DHCPDARGS=""
405 EOF
406
407 # Copy sample conf files into position (called by doc macro)
408 %{__cp} -p client/dhclient.conf dhclient.conf.sample
409 %{__cp} -p server/dhcpd.conf dhcpd.conf.sample
410 %{__cp} -p doc/examples/dhclient-dhcpv6.conf dhclient6.conf.sample
411 %{__cp} -p doc/examples/dhcpd-dhcpv6.conf dhcpd6.conf.sample
412
413 # Install default (empty) dhcpd.conf:
414 %{__mkdir} -p %{buildroot}%{dhcpconfdir}
415 %{__cat} << EOF > %{buildroot}%{dhcpconfdir}/dhcpd.conf
416 #
417 # DHCP Server Configuration file.
418 #   see /usr/share/doc/dhcp*/dhcpd.conf.sample
419 #   see dhcpd.conf(5) man page
420 #
421 EOF
422
423 # Install default (empty) dhcpd6.conf:
424 %{__cat} << EOF > %{buildroot}%{dhcpconfdir}/dhcpd6.conf
425 #
426 # DHCPv6 Server Configuration file.
427 #   see /usr/share/doc/dhcp*/dhcpd6.conf.sample
428 #   see dhcpd.conf(5) man page
429 #
430 EOF
431
432 # Install dhcp.schema for LDAP configuration
433 %{__mkdir} -p %{buildroot}%{_sysconfdir}/openldap/schema
434 %{__install} -p -m 0644 -D contrib/ldap/dhcp.schema \
435     %{buildroot}%{_sysconfdir}/openldap/schema
436
437 # Install empty directory for dhclient.d scripts
438 %{__mkdir} -p %{buildroot}%{dhcpconfdir}/dhclient.d
439
440 # Install NetworkManager dispatcher script
441 %{__mkdir} -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
442 %{__install} -p -m 0755 %{SOURCE3} %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
443
444 # Install pm-utils script to handle suspend/resume and dhclient leases
445 %{__mkdir} -p %{buildroot}%{_libdir}/pm-utils/sleep.d
446 %{__install} -p -m 0755 %{SOURCE4} %{buildroot}%{_libdir}/pm-utils/sleep.d
447
448 # Don't package libtool *.la files
449 find ${RPM_BUILD_ROOT}/%{_libdir} -name '*.la' -exec '/bin/rm' '-f' '{}' ';';
450
451 %pre
452 # /usr/share/doc/setup/uidgid
453 %global gid_uid 177
454 getent group dhcpd >/dev/null || groupadd --force --gid %{gid_uid} --system dhcpd
455 if ! getent passwd dhcpd >/dev/null ; then
456     if ! getent passwd %{gid_uid} >/dev/null ; then
457       useradd --system --uid %{gid_uid} --gid dhcpd --home / --shell /sbin/nologin --comment "DHCP server" dhcpd
458     else
459       useradd --system --gid dhcpd --home / --shell /sbin/nologin --comment "DHCP server" dhcpd
460     fi
461 fi
462 exit 0
463
464 %post
465 sampleconf="#
466 # DHCP Server Configuration file.
467 #   see /usr/share/doc/dhcp*/dhcpd.conf.sample
468 #   see 'man 5 dhcpd.conf'
469 #"
470
471 contents="$(/bin/cat %{dhcpconfdir}/dhcpd.conf)"
472 prevconf="%{_sysconfdir}/dhcpd.conf"
473
474 if [ ! -z "${prevconf}" ]; then
475     if [ ! -f %{dhcpconfdir}/dhcpd.conf -o "${sampleconf}" = "${contents}" ]; then
476         /bin/cp -a ${prevconf} %{dhcpconfdir}/dhcpd.conf >/dev/null 2>&1
477         /bin/mv ${prevconf} ${prevconf}.rpmsave >/dev/null 2>&1
478         if [ -x /sbin/restorecon ]; then
479             /sbin/restorecon %{dhcpconfdir}/dhcpd.conf >/dev/null 2>&1
480         fi
481     fi
482 fi
483
484 # Initial installation 
485 if [ $1 -eq 1 ] ; then 
486     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
487 fi
488
489 # Update
490 if [ $1 -gt 1 ] ; then
491   chown -R dhcpd:dhcpd %{_localstatedir}/lib/dhcpd/
492 fi
493
494
495 %post -n dhclient
496 /bin/ls -1 %{_sysconfdir}/dhclient* >/dev/null 2>&1
497 if [ $? = 0 ]; then
498     /bin/ls -1 %{_sysconfdir}/dhclient* | \
499     /bin/grep -v "\.rpmsave$" 2>/dev/null | \
500     while read etcfile ; do
501         cf="$(/bin/basename ${etcfile})"
502         if [ -f ${etcfile} ] && [ ! -r %{dhcpconfdir}/${cf} ]; then
503             /bin/cp -a ${etcfile} %{dhcpconfdir}/${cf} >/dev/null 2>&1
504             if [ -x /sbin/restorecon ]; then
505                 /sbin/restorecon %{dhcpconfdir}/${cf} >/dev/null 2>&1
506             fi
507         fi
508     done || :
509 fi || :
510
511
512 %preun
513 # Package removal, not upgrade
514 if [ $1 -eq 0 ] ; then
515     /bin/systemctl --no-reload disable dhcpd.service > /dev/null 2>&1 || :
516     /bin/systemctl --no-reload disable dhcpd6.service > /dev/null 2>&1 || :
517     /bin/systemctl --no-reload disable dhcrelay.service > /dev/null 2>&1 || :
518     /bin/systemctl stop dhcpd.service > /dev/null 2>&1 || :
519     /bin/systemctl stop dhcpd6.service > /dev/null 2>&1 || :
520     /bin/systemctl stop dhcrelay.service > /dev/null 2>&1 || :
521 fi
522
523
524 %postun
525 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
526 # Package upgrade, not uninstall
527 if [ $1 -ge 1 ]; then
528     /bin/systemctl try-restart dhcpd.service >/dev/null 2>&1 || :
529     /bin/systemctl try-restart dhcpd6.service >/dev/null 2>&1 || :
530     /bin/systemctl try-restart dhcrelay.service >/dev/null 2>&1 || :
531 fi
532
533
534 %post libs -p /sbin/ldconfig
535
536 %postun libs -p /sbin/ldconfig
537
538
539 %files
540 %doc dhcpd.conf.sample dhcpd6.conf.sample
541 %doc contrib/*
542 %attr(0750,root,root) %dir %{dhcpconfdir}
543 %attr(0755,dhcpd,dhcpd) %dir %{_localstatedir}/lib/dhcpd
544 %attr(0644,dhcpd,dhcpd) %verify(not size md5 mtime) %config(noreplace) %{_localstatedir}/lib/dhcpd/dhcpd.leases
545 %attr(0644,dhcpd,dhcpd) %verify(not size md5 mtime) %config(noreplace) %{_localstatedir}/lib/dhcpd/dhcpd6.leases
546 %config(noreplace) %{_sysconfdir}/sysconfig/dhcpd
547 %config(noreplace) %{_sysconfdir}/sysconfig/dhcpd6
548 %config(noreplace) %{_sysconfdir}/sysconfig/dhcrelay
549 %config(noreplace) %{dhcpconfdir}/dhcpd.conf
550 %config(noreplace) %{dhcpconfdir}/dhcpd6.conf
551 %config(noreplace) %{_sysconfdir}/openldap/schema/dhcp.schema
552 %dir %{_sysconfdir}/NetworkManager
553 %dir %{_sysconfdir}/NetworkManager/dispatcher.d
554 #%attr(0644,root,root)   /%{_unitdir}/dhcpd.service
555 #%attr(0644,root,root)   /%{_unitdir}/dhcpd6.service
556 #%attr(0644,root,root)   /%{_unitdir}/dhcrelay.service
557 %{_sbindir}/dhcpd
558 %{_sbindir}/dhcrelay
559 %{_bindir}/omshell
560 %attr(0644,root,root) %{_mandir}/man1/omshell.1.gz
561 %attr(0644,root,root) %{_mandir}/man5/dhcpd.conf.5.gz
562 %attr(0644,root,root) %{_mandir}/man5/dhcpd.leases.5.gz
563 %attr(0644,root,root) %{_mandir}/man8/dhcpd.8.gz
564 %attr(0644,root,root) %{_mandir}/man8/dhcrelay.8.gz
565
566 %files -n dhclient
567 %doc dhclient.conf.sample dhclient6.conf.sample README.dhclient.d
568 %attr(0750,root,root) %dir %{dhcpconfdir}
569 %dir %{dhcpconfdir}/dhclient.d
570 %dir %{_localstatedir}/lib/dhclient
571 %dir %{_sysconfdir}/NetworkManager
572 %dir %{_sysconfdir}/NetworkManager/dispatcher.d
573 %{_sysconfdir}/NetworkManager/dispatcher.d/11-dhclient
574 /sbin/dhclient
575 /sbin/dhclient-script
576 %attr(0755,root,root) %{_libdir}/pm-utils/sleep.d/56dhclient
577 %attr(0644,root,root) %{_mandir}/man5/dhclient.conf.5.gz
578 %attr(0644,root,root) %{_mandir}/man5/dhclient.leases.5.gz
579 %attr(0644,root,root) %{_mandir}/man8/dhclient.8.gz
580 %attr(0644,root,root) %{_mandir}/man8/dhclient-script.8.gz
581
582 %files common
583 %doc LICENSE README RELNOTES doc/References.txt
584 %attr(0644,root,root) %{_mandir}/man5/dhcp-options.5.gz
585 %attr(0644,root,root) %{_mandir}/man5/dhcp-eval.5.gz
586
587 %files libs
588 #%{_libdir}/libdhcpctl.so.*
589 #%{_libdir}/libomapi.so.*
590 #%{_libdir}/libdst.so.*
591
592 %files devel
593 %doc doc/IANA-arp-parameters doc/api+protocol
594 %{_includedir}/dhcpctl
595 %{_includedir}/isc-dhcp
596 %{_includedir}/omapip
597 #%{_libdir}/libdhcpctl.so
598 #%{_libdir}/libomapi.so
599 #%{_libdir}/libdst.so
600 %{_libdir}/libdhcpctl.a
601 %{_libdir}/libomapi.a
602 %{_libdir}/libdst.a
603 %attr(0644,root,root) %{_mandir}/man3/dhcpctl.3.gz
604 %attr(0644,root,root) %{_mandir}/man3/omapi.3.gz