]> git.ipfire.org Git - thirdparty/lldpd.git/blob - redhat/lldpd.spec
redhat: ensure /etc/sysconfig/lldpd is correctly populated
[thirdparty/lldpd.git] / redhat / lldpd.spec
1 # This .spec file is targeted for SuSE OBS. It relies on macro that
2 # are not available on regular distributions. If you use directly
3 # rpmbuild, be sure to use something like `--define 'rhel_version
4 # 700'`.
5
6 # Conditional build options, disable with "--without xxx"
7 %bcond_without xml
8 %bcond_without cdp
9 %bcond_without edp
10 %bcond_without sonmp
11 %bcond_without fdp
12 %bcond_without lldpmed
13 %bcond_without dot1
14 %bcond_without dot3
15 %bcond_without custom
16 %bcond_without snmp
17
18 # On RHEL <= 6, compile with oldies
19 # For SuSE, SLE11 with a recent SP comes with 3.0. SLE12 comes with 3.12.
20 %if (0%{?rhel_version} > 0 && 0%{?rhel_version} < 700) || (0%{?centos_version} > 0 && 0%{?centos_version} < 700)
21 %bcond_without oldies
22 %else
23 %bcond_with oldies
24 %endif
25
26 # On RHEL < 7, disable systemd
27 # On SuSE < 12, disable systemd
28 %if (0%{?rhel_version} > 0 && 0%{?rhel_version} < 700) || (0%{?centos_version} > 0 && 0%{?centos_version} < 700) || (0%{?suse_version} > 0 && 0%{?suse_version} < 1210)
29 %bcond_with systemd
30 %else
31 %bcond_without systemd
32 %endif
33
34 # On RHEL < 7, use embedded libevent
35 %if (0%{?rhel_version} > 0) || (0%{?centos_version} > 0 && 0%{?centos_version} < 700) || (0%{?suse_version} > 0 && 0%{?suse_version} < 1200)
36 %bcond_with system_libevent
37 %else
38 %bcond_without system_libevent
39 %endif
40
41 %define lldpd_user _lldpd
42 %define lldpd_group _lldpd
43 %define lldpd_chroot /var/run/lldpd
44
45 Summary: Implementation of IEEE 802.1ab (LLDP)
46 Name: lldpd
47 Version: 0.9.6
48 Release: 1%{?dist}
49 License: MIT
50 Group: System/Management
51 URL: http://vincentbernat.github.com/lldpd/
52 Source0: http://media.luffy.cx/files/lldpd/%{name}-%{version}.tar.gz
53 Source1: lldpd.init%{?suse_version:.suse}
54 Source2: lldpd.sysconfig
55
56 BuildRequires: pkgconfig
57 %if %{with system_libevent}
58 BuildRequires: libevent-devel
59 %endif
60 BuildRequires: readline-devel
61 %if %{with snmp}
62 BuildRequires: net-snmp-devel
63 BuildRequires: openssl-devel
64 %{!?suse_version:BuildRequires: lm_sensors-devel}
65 %endif
66 %if %{with xml}
67 BuildRequires: libxml2-devel
68 %endif
69 %if %{with systemd}
70 %if 0%{?suse_version}
71 BuildRequires: systemd-rpm-macros
72 %{?systemd_requires}
73 %else
74 Requires(post): systemd
75 Requires(preun): systemd
76 Requires(postun): systemd
77 BuildRequires: systemd-units
78 %endif
79 %endif
80 %if 0%{?suse_version}
81 PreReq: %fillup_prereq %insserv_prereq pwdutils
82 %else
83 Requires(pre): /usr/sbin/groupadd /usr/sbin/useradd
84 Requires(post): chkconfig
85 Requires(preun): chkconfig
86 Requires(preun): initscripts
87 Requires(postun): initscripts
88 %endif
89
90 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
91
92 %description
93 This implementation provides LLDP sending and reception, supports VLAN
94 and includes an SNMP subagent that can interface to an SNMP agent
95 through AgentX protocol.
96
97 LLDP is an industry standard protocol designed to supplant proprietary
98 Link-Layer protocols such as Extreme EDP (Extreme Discovery Protocol)
99 and CDP (Cisco Discovery Protocol). The goal of LLDP is to provide an
100 inter-vendor compatible mechanism to deliver Link-Layer notifications
101 to adjacent network devices.
102
103 This daemon is also able to deal with CDP, FDP, SONMP and EDP
104 protocol. It also handles LLDP-MED extension.
105
106 %package devel
107 Summary: Implementation of IEEE 802.1ab - Tools and header files for developers
108 Group: Development/Libraries/C
109 BuildRequires: pkgconfig
110 Requires: lldpd = %{version}-%{release}
111
112 %description devel
113 This package is required to develop alternate clients for lldpd.
114
115 LLDP is an industry standard protocol designed to supplant proprietary
116 Link-Layer protocols such as Extreme EDP (Extreme Discovery Protocol)
117 and CDP (Cisco Discovery Protocol). The goal of LLDP is to provide an
118 inter-vendor compatible mechanism to deliver Link-Layer notifications
119 to adjacent network devices.
120
121 %prep
122 %setup -q
123 %build
124 %configure \
125 %if %{with snmp}
126 --with-snmp \
127 %endif
128 %if %{with xml}
129 --with-xml \
130 %endif
131 %if %{with cdp}
132 --enable-cdp \
133 %else
134 --disable-cdp \
135 %endif
136 %if %{with edp}
137 --enable-edp \
138 %else
139 --disable-edp \
140 %endif
141 %if %{with sonmp}
142 --enable-sonmp \
143 %else
144 --disable-sonmp \
145 %endif
146 %if %{with fdp}
147 --enable-fdp \
148 %else
149 --disable-fdp \
150 %endif
151 %if %{with lldpmed}
152 --enable-lldpmed \
153 %else
154 --disable-lldpmed \
155 %endif
156 %if %{with dot1}
157 --enable-dot1 \
158 %else
159 --disable-dot1 \
160 %endif
161 %if %{with dot3}
162 --enable-dot3 \
163 %else
164 --disable-dot3 \
165 %endif
166 %if %{with custom}
167 --enable-custom \
168 %else
169 --disable-custom \
170 %endif
171 %if %{with oldies}
172 --enable-oldies \
173 %else
174 --disable-oldies \
175 %endif
176 --with-privsep-user=%lldpd_user \
177 --with-privsep-group=%lldpd_group \
178 --with-privsep-chroot=%lldpd_chroot \
179 %if %{without systemd}
180 --with-systemdsystemunitdir=no \
181 %else
182 --with-systemdsystemunitdir=%{_unitdir} \
183 %endif
184 --with-sysusersdir=no \
185 --prefix=%{_usr} \
186 --localstatedir=%{_localstatedir} \
187 --sysconfdir=%{_sysconfdir} \
188 --libdir=%{_libdir} \
189 --docdir=%{_docdir}/lldpd \
190 --enable-pie
191
192 [ -f %{_includedir}/net-snmp/agent/struct.h ] || touch src/struct.h
193 make %{?_smp_mflags}
194
195 %install
196 make install DESTDIR=$RPM_BUILD_ROOT
197 %if %{without systemd}
198 install -d $RPM_BUILD_ROOT/%{_initrddir}
199 install -m755 %{SOURCE1} $RPM_BUILD_ROOT/%{_initrddir}/lldpd
200 %endif
201 %if 0%{?suse_version}
202 mkdir -p ${RPM_BUILD_ROOT}/var/adm/fillup-templates
203 install -m700 %{SOURCE2} ${RPM_BUILD_ROOT}/var/adm/fillup-templates/sysconfig.lldpd
204 %else
205 install -d $RPM_BUILD_ROOT/etc/sysconfig
206 install -m644 %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/lldpd
207 %endif
208
209 %pre
210 # Create lldpd user/group
211 if getent group %lldpd_group >/dev/null 2>&1 ; then : ; else \
212 %{_sbindir}/groupadd -r %lldpd_group > /dev/null 2>&1 || exit 1 ; fi
213 if getent passwd %lldpd_user >/dev/null 2>&1 ; then : ; else \
214 %{_sbindir}/useradd -g %lldpd_group -M -r -s /sbin/nologin \
215 -c "LLDP daemon" -d %lldpd_chroot %lldpd_user 2> /dev/null \
216 || exit 1 ; fi
217 %if 0%{?suse_version} >= 1210 && %{with systemd}
218 %service_add_pre lldpd.service
219 %endif
220
221 %if 0%{?suse_version}
222 # Service management for SuSE
223
224 %if 0%{?suse_version} >= 1210 && %{with systemd}
225 %post
226 %service_add_post lldpd.service
227 %{fillup_only}
228 %preun
229 %service_del_preun lldpd.service
230 %postun
231 %service_del_postun lldpd.service
232 %else
233 %post
234 /sbin/ldconfig
235 %{fillup_and_insserv lldpd}
236 %postun
237 /sbin/ldconfig
238 %restart_on_update lldpd
239 %insserv_cleanup
240 %preun
241 %stop_on_removal lldpd
242 %endif
243
244 %else
245 %if %{without systemd}
246 # Service management for Redhat/CentOS without systemd
247
248 %post
249 /sbin/ldconfig
250 /sbin/chkconfig --add lldpd
251 %postun
252 /sbin/ldconfig
253 if [ "$1" -ge "1" ]; then
254 /sbin/service lldpd condrestart >/dev/null 2>&1 || :
255 fi
256 %preun
257 if [ "$1" = "0" ]; then
258 /sbin/service lldpd stop > /dev/null 2>&1
259 /sbin/chkconfig --del lldpd
260 fi
261
262 %else
263 # Service management for Redhat/CentOS with systemd
264
265 %post
266 /sbin/ldconfig
267 %systemd_post lldpd.service
268
269 %preun
270 %systemd_preun lldpd.service
271
272 %postun
273 %systemd_postun_with_restart lldpd.service
274 /sbin/ldconfig
275
276 %endif
277 %endif
278
279 %clean
280 rm -rf $RPM_BUILD_ROOT
281
282 %files
283 %defattr(-,root,root,-)
284 %dir %{_docdir}/lldpd
285 %doc %{_docdir}/lldpd/NEWS
286 %doc %{_docdir}/lldpd/LICENSE
287 %doc %{_docdir}/lldpd/ChangeLog
288 %doc %{_docdir}/lldpd/README.md
289 %doc %{_docdir}/lldpd/CONTRIBUTE.md
290 %{_sbindir}/lldpd
291 %{_sbindir}/lldpctl
292 %{_sbindir}/lldpcli
293 %{_libdir}/liblldpctl.so.*
294 %{_datadir}/zsh
295 %{_datadir}/bash-completion
296 %doc %{_mandir}/man8/lldp*
297 %config %{_sysconfdir}/lldpd.d
298 %if %{without systemd}
299 %config %attr(755,root,root) %{_initrddir}/lldpd
300 %else
301 %{_unitdir}/lldpd.service
302 %endif
303 %if 0%{?suse_version}
304 %attr(644,root,root) %{_var}/adm/fillup-templates/sysconfig.lldpd
305 %else
306 %config(noreplace) %{_sysconfdir}/sysconfig/lldpd
307 %endif
308
309 %files devel
310 %defattr(-,root,root)
311 %{_libdir}/liblldpctl.so
312 %{_libdir}/liblldpctl.a
313 %{_libdir}/liblldpctl.la
314 %{_libdir}/pkgconfig/lldpctl.pc
315 %{_includedir}/lldpctl.h
316 %{_includedir}/lldp-const.h
317
318 %changelog
319 * Sat Jan 21 2017 Vincent Bernat <bernat@luffy.cx> - 0.9.6-1
320 - New upstream version.
321
322 * Fri Sep 30 2016 Vincent Bernat <bernat@luffy.cx> - 0.9.5-1
323 - New upstream version.
324
325 * Fri Jun 17 2016 Vincent Bernat <bernat@luffy.cx> - 0.9.4-1
326 - New upstream version.
327
328 * Sat May 21 2016 Vincent Bernat <bernat@luffy.cx> - 0.9.3-1
329 - New upstream version.
330
331 * Sat Mar 19 2016 Vincent Bernat <bernat@luffy.cx> - 0.9.2-1
332 - New upstream version.
333
334 * Sat Feb 20 2016 Vincent Bernat <bernat@luffy.cx> - 0.9.1-1
335 - New upstream version.
336
337 * Fri Jan 01 2016 Vincent Bernat <bernat@luffy.cx> - 0.9.0-1
338 - New upstream version.
339 - Do not rely on libnl3.
340
341 * Sun Dec 27 2015 Vincent Bernat <bernat@luffy.cx> - 0.8.0-1
342 - New upstream version.
343 - Use system libnl3 when possible.
344 - Use system libevent when possible.
345
346 * Wed Sep 09 2015 Vincent Bernat <bernat@luffy.cx> - 0.7.17-1
347 - New upstream version.
348
349 * Fri Aug 07 2015 Vincent Bernat <bernat@luffy.cx> - 0.7.16-1
350 - New upstream version.
351
352 * Wed May 20 2015 Vincent Bernat <bernat@luffy.cx> - 0.7.15-1
353 - New upstream version.
354
355 * Sat Apr 04 2015 Vincent Bernat <bernat@luffy.cx> - 0.7.14-1
356 - New upstream version.
357
358 * Tue Dec 30 2014 Vincent Bernat <bernat@luffy.cx> - 0.7.13-1
359 - New upstream version.
360
361 * Sat Nov 22 2014 Vincent Bernat <bernat@luffy.cx> - 0.7.12-1
362 - New upstream version.
363 - Completion for bash and zsh.
364
365 * Wed Oct 08 2014 Vincent Bernat <bernat@luffy.cx> - 0.7.11-1
366 - New upstream version.
367 - Completion for bash and zsh.
368
369 * Mon Jul 21 2014 Vincent Bernat <bernat@luffy.cx> - 0.7.10-1
370 - New upstream version.
371
372 * Wed May 28 2014 Vincent Bernat <bernat@luffy.cx> - 0.7.9-1
373 - New upstream version.
374
375 * Sun Apr 13 2014 Vincent Bernat <bernat@luffy.cx> - 0.7.8-1
376 - New upstream version.
377
378 * Sun Nov 10 2013 Vincent Bernat <bernat@luffy.cx> - 0.7.7-1
379 - New upstream version.
380
381 * Fri Jul 12 2013 Vincent Bernat <bernat@luffy.cx> - 0.7.6-1
382 - New upstream version.
383
384 * Sat Jun 22 2013 Vincent Bernat <bernat@luffy.cx> - 0.7.5-1
385 - New upstream version.
386
387 * Sun May 12 2013 Vincent Bernat <bernat@luffy.cx> - 0.7.3-1
388 - New upstream version.
389
390 * Fri Apr 19 2013 Vincent Bernat <bernat@luffy.cx> - 0.7.2-1
391 - New upstream version.
392
393 * Sat Jan 12 2013 Vincent Bernat <bernat@luffy.cx> - 0.7.1-1
394 - New upstream version.
395
396 * Sun Jan 06 2013 Vincent Bernat <bernat@luffy.cx> - 0.7.0-1
397 - New upstream version.
398 - Requires readline-devel.
399 - Ships lldpcli.
400
401 * Thu Sep 27 2012 Vincent Bernat <bernat@luffy.cx> - 0.6.1-1
402 - New upstream version
403 - Do not require libevent, use embedded copy.
404 - Provide a -devel package.
405
406 * Fri Jun 11 2010 Vincent Bernat <bernat@luffy.cx> - 0.5.1-1
407 - New upstream version
408 - Define bcond_without and with macros if not defined to be compatible
409 with RHEL
410 - Requires useradd and groupadd
411 - Adapt to make it work with SuSE
412 - Provide an init script targetted at SuSE
413 - Build require lm_sensors-devel on RHEL
414
415 * Fri Mar 12 2010 Vincent Bernat <bernat@luffy.cx> - 0.5.0-1
416 - New upstream version
417 - Add XML support
418
419 * Tue May 19 2009 Vincent Bernat <bernat@luffy.cx> - 0.4.0-1
420 - Add variables
421 - Enable SNMP support
422 - Add _lldpd user creation
423 - Add initscript
424 - New upstream version
425
426 * Mon May 18 2009 Dean Hamstead <dean.hamstead@optusnet.com.au> - 0.3.3-1
427 - Initial attempt