source: spec/trunk/SPECS/dhcp.spec@ 357

Last change on this file since 357 was 289, checked in by Yuri Dario, 14 years ago

spec: dhcp, added dhconf.cmd, use spawn instead of fork.

File size: 8.8 KB
Line 
1# Where dhcp configuration files are stored
2%global dhcpconfdir %{_sysconfdir}/dhcp
3
4# Base version number from ISC
5%global basever 3.1
6%global basedir %{basever}-ESV-R3
7
8# LDAP patch version
9%global ldappatchver %{basever}-2
10
11Summary: Dynamic host configuration protocol software
12Name: dhcp
13Version: %{basever}
14Release: 2%{?dist}
15License: ISC
16Group: System Environment/Daemons
17URL: http://isc.org/products/DHCP/
18
19Source0: ftp://ftp.isc.org/isc/%{name}/%{name}-%{basedir}.tar.gz
20Source1: dhcp-os2.h
21Source2: dhconf.cmd
22
23Patch0: dhcp-os2.patch
24
25BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
26#BuildRequires: autoconf
27#BuildRequires: automake
28#BuildRequires: groff
29#BuildRequires: libtool
30#BuildRequires: openldap-devel
31#BuildRequires: libcap-ng-devel
32
33#Obsoletes: dhcpv6 <= 1.2.0-4
34
35%description
36DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
37individual devices on an IP network to get their own network
38configuration information (IP address, subnetmask, broadcast address,
39etc.) from a DHCP server. The overall purpose of DHCP is to make it
40easier to administer a large network. The dhcp package includes the
41ISC DHCP service and relay agent.
42
43To use DHCP on your network, install a DHCP service (or relay agent),
44and on clients run a DHCP client daemon. The dhcp package provides
45the ISC DHCP service and relay agent.
46
47%package -n dhclient
48Summary: Provides the dhclient ISC DHCP client daemon and dhclient-script
49Group: System Environment/Base
50#Requires: initscripts >= 6.75
51#Requires(post): coreutils
52#Requires(post): grep
53
54%description -n dhclient
55DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
56individual devices on an IP network to get their own network
57configuration information (IP address, subnetmask, broadcast address,
58etc.) from a DHCP server. The overall purpose of DHCP is to make it
59easier to administer a large network.
60
61To use DHCP on your network, install a DHCP service (or relay agent),
62and on clients run a DHCP client daemon. The dhclient package
63provides the ISC DHCP client daemon.
64
65%package devel
66Summary: Development headers and libraries for interfacing to the DHCP server
67Group: Development/Libraries
68Requires: %{name} = %{epoch}:%{version}-%{release}
69
70%description devel
71Header files and API documentation for using the ISC DHCP libraries. The
72libdhcpctl and libomapi static libraries are also included in this package.
73
74%prep
75%setup -q -n %{name}-%{basedir}
76cp %{SOURCE1} includes/cf/os2.h
77
78# Add in LDAP support
79#%{__patch} -p1 < ldap-for-dhcp-%{ldappatchver}/%{name}-%{basever}-ldap.patch
80
81%patch0 -p1 -b .os2~
82
83# Update paths in all man pages
84for page in client/dhclient.conf.5 client/dhclient.leases.5 \
85 client/dhclient-script.8 client/dhclient.8 ; do
86 %{__sed} -i -e 's|CLIENTBINDIR|/sbin|g' \
87 -e 's|RUNDIR|%{_localstatedir}/run|g' \
88 -e 's|DBDIR|%{_localstatedir}/lib/dhclient|g' \
89 -e 's|ETCDIR|%{dhcpconfdir}|g' $page
90done
91
92for page in server/dhcpd.conf.5 server/dhcpd.leases.5 server/dhcpd.8 ; do
93 %{__sed} -i -e 's|CLIENTBINDIR|/sbin|g' \
94 -e 's|RUNDIR|%{_localstatedir}/run|g' \
95 -e 's|DBDIR|%{_localstatedir}/lib/dhcpd|g' \
96 -e 's|ETCDIR|%{dhcpconfdir}|g' $page
97done
98
99#aclocal
100#libtoolize --copy --force
101#autoconf
102#autoheader
103#automake --foreign --add-missing --copy
104
105%build
106export CONFIG_SHELL="/@unixroot/usr/bin/sh.exe"
107export LDFLAGS="-Zomf"
108CFLAGS="%{optflags} -D_GNU_SOURCE" \
109./configure
110%{__make} %{?_smp_mflags}
111
112%install
113%{__rm} -rf %{buildroot}
114%{__make} install DESTDIR=%{buildroot}
115
116# Remove files we don't want
117%{__rm} -f %{buildroot}%{_sysconfdir}/dhclient.conf
118%{__rm} -f %{buildroot}%{_sysconfdir}/dhcpd.conf
119
120# Install correct dhclient-script
121#%{__mkdir} -p %{buildroot}/sbin
122#%{__mv} %{buildroot}%{_sbindir}/dhclient %{buildroot}/sbin/dhclient
123#%{__install} -p -m 0755 client/scripts/linux %{buildroot}/sbin/dhclient-script
124%{__install} -p -m 0755 %{SOURCE2} %{buildroot}%{_sbindir}/dhconf.cmd
125
126# Install init scripts
127#%{__mkdir} -p %{buildroot}%{_initrddir}
128#%{__install} -p -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/dhcpd
129#%{__install} -p -m 0755 %{SOURCE8} %{buildroot}%{_initrddir}/dhcpd6
130#%{__install} -p -m 0755 %{SOURCE3} %{buildroot}%{_initrddir}/dhcrelay
131
132# Start empty lease databases
133%{__mkdir} -p %{buildroot}%{_localstatedir}/lib/
134touch %{buildroot}%{_localstatedir}/lib/dhcpd.leases
135#touch %{buildroot}%{_localstatedir}/lib/dhcpd/dhcpd6.leases
136%{__mkdir} -p %{buildroot}%{_localstatedir}/lib/
137
138# Create default sysconfig files for dhcpd and dhcrelay
139%{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig
140
141%{__cat} << EOF > %{buildroot}%{_sysconfdir}/sysconfig/dhcrelay
142# Command line options here
143INTERFACES=""
144DHCPSERVERS=""
145EOF
146
147%{__cat} <<EOF > %{buildroot}%{_sysconfdir}/sysconfig/dhcpd
148# Command line options here
149DHCPDARGS=
150EOF
151
152#%{__cat} <<EOF > %{buildroot}%{_sysconfdir}/sysconfig/dhcpd6
153# Command line options here
154#DHCPDARGS=
155#EOF
156
157# Copy sample conf files into position (called by doc macro)
158%{__cp} -p client/dhclient.conf dhclient.conf.sample
159%{__cp} -p server/dhcpd.conf dhcpd.conf.sample
160#%{__cp} -p doc/examples/dhclient-dhcpv6.conf dhclient6.conf.sample
161#%{__cp} -p doc/examples/dhcpd-dhcpv6.conf dhcpd6.conf.sample
162
163# Install default (empty) dhcpd.conf:
164%{__mkdir} -p %{buildroot}%{dhcpconfdir}
165%{__cat} << EOF > %{buildroot}%{dhcpconfdir}/dhcpd.conf
166#
167# DHCP Server Configuration file.
168# see /usr/share/doc/dhcp*/dhcpd.conf.sample
169# see 'man 5 dhcpd.conf'
170#
171EOF
172
173# Install default (empty) dhcpd6.conf:
174#%{__cat} << EOF > %{buildroot}%{dhcpconfdir}/dhcpd6.conf
175#
176# DHCP for IPv6 Server Configuration file.
177# see /usr/share/doc/dhcp*/dhcpd6.conf.sample
178# see 'man 5 dhcpd.conf'
179# run 'service dhcpd6 start' or 'dhcpd -6 -cf /etc/dhcp/dhcpd6.conf'
180#
181#EOF
182
183# Install dhcp.schema for LDAP configuration
184#%{__mkdir} -p %{buildroot}%{_sysconfdir}/openldap/schema
185#%{__install} -p -m 0644 -D ldap-for-dhcp-%{ldappatchver}/dhcp.schema \
186# %{buildroot}%{_sysconfdir}/openldap/schema
187
188# Install empty directory for dhclient.d scripts
189#%{__mkdir} -p %{buildroot}%{dhcpconfdir}/dhclient.d
190
191# Install NetworkManager dispatcher script
192#%{__mkdir} -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
193#%{__install} -p -m 0755 %{SOURCE6} %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
194
195# Install pm-utils script to handle suspend/resume and dhclient leases
196#%{__mkdir} -p %{buildroot}%{_libdir}/pm-utils/sleep.d
197#%{__install} -p -m 0755 %{SOURCE7} %{buildroot}%{_libdir}/pm-utils/sleep.d
198
199%clean
200%{__rm} -rf %{buildroot}
201
202
203%files
204%defattr(-,root,root,-)
205%doc LICENSE README
206#ldap-for-dhcp-%{ldappatchver}/README.ldap
207%doc RELNOTES dhcpd.conf.sample doc/IANA-arp-parameters doc/api+protocol
208# dhcpd6.conf.sample
209%doc doc/*.txt
210# __fedora_contrib/*
211#ldap-for-dhcp-%{ldappatchver}/*.txt
212%dir %{_localstatedir}/lib
213%attr(0750,root,root) %dir %{dhcpconfdir}
214%verify(not size md5 mtime) %config(noreplace) %{_localstatedir}/lib/dhcpd.leases
215#%verify(not size md5 mtime) %config(noreplace) %{_localstatedir}/lib/dhcpd/dhcpd6.leases
216%config(noreplace) %{_sysconfdir}/sysconfig/dhcpd
217#%config(noreplace) %{_sysconfdir}/sysconfig/dhcpd6
218%config(noreplace) %{_sysconfdir}/sysconfig/dhcrelay
219%config(noreplace) %{dhcpconfdir}/dhcpd.conf
220#%config(noreplace) %{dhcpconfdir}/dhcpd6.conf
221#%config(noreplace) %{_sysconfdir}/openldap/schema/dhcp.schema
222#%dir %{_sysconfdir}/NetworkManager
223#%dir %{_sysconfdir}/NetworkManager/dispatcher.d
224#%{_sysconfdir}/NetworkManager/dispatcher.d/10-dhclient
225#%{_initrddir}/dhcpd
226#%{_initrddir}/dhcpd6
227#%{_initrddir}/dhcrelay
228%{_bindir}/omshell.exe
229%{_sbindir}/dhcpd.exe
230%{_sbindir}/dhcrelay.exe
231%attr(0644,root,root) %{_mandir}/man1/omshell.1
232%attr(0644,root,root) %{_mandir}/man5/dhcpd.conf.5
233%attr(0644,root,root) %{_mandir}/man5/dhcpd.leases.5
234%attr(0644,root,root) %{_mandir}/man8/dhcpd.8
235%attr(0644,root,root) %{_mandir}/man8/dhcrelay.8
236%attr(0644,root,root) %{_mandir}/man5/dhcp-options.5
237%attr(0644,root,root) %{_mandir}/man5/dhcp-eval.5
238
239%files -n dhclient
240%defattr(-,root,root,-)
241%doc dhclient.conf.sample
242# README.dhclient.d
243# dhclient6.conf.sample
244%attr(0750,root,root) %dir %{dhcpconfdir}
245#%dir %{dhcpconfdir}/dhclient.d
246%dir %{_localstatedir}/lib
247%{_sbindir}/dhclient.exe
248%{_sbindir}/dhconf.cmd
249#%attr(0755,root,root) %{_libdir}/pm-utils/sleep.d/56dhclient
250%attr(0644,root,root) %{_mandir}/man5/dhclient.conf.5
251%attr(0644,root,root) %{_mandir}/man5/dhclient.leases.5
252%attr(0644,root,root) %{_mandir}/man8/dhclient.8
253%attr(0644,root,root) %{_mandir}/man8/dhclient-script.8
254%attr(0644,root,root) %{_mandir}/man5/dhcp-options.5
255%attr(0644,root,root) %{_mandir}/man5/dhcp-eval.5
256
257%files devel
258%defattr(-,root,root,-)
259%{_includedir}/*
260%{_libdir}/*.a
261%attr(0644,root,root) %{_mandir}/man3/dhcpctl.3
262%attr(0644,root,root) %{_mandir}/man3/omapi.3
263
264%changelog
265* Mon Jan 30 2012 yd
266- added dhconf.cmd.
267- use spawn instead of fork().
268
269* Tue Jan 24 2012 yd
270- initial unixroot build.
Note: See TracBrowser for help on using the repository browser.