]> git.ipfire.org Git - thirdparty/lldpd.git/blame_incremental - redhat/lldpd.spec
redhat: ensure /etc/sysconfig/lldpd is correctly populated
[thirdparty/lldpd.git] / redhat / lldpd.spec
... / ...
CommitLineData
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
45Summary: Implementation of IEEE 802.1ab (LLDP)
46Name: lldpd
47Version: 0.9.6
48Release: 1%{?dist}
49License: MIT
50Group: System/Management
51URL: http://vincentbernat.github.com/lldpd/
52Source0: http://media.luffy.cx/files/lldpd/%{name}-%{version}.tar.gz
53Source1: lldpd.init%{?suse_version:.suse}
54Source2: lldpd.sysconfig
55
56BuildRequires: pkgconfig
57%if %{with system_libevent}
58BuildRequires: libevent-devel
59%endif
60BuildRequires: readline-devel
61%if %{with snmp}
62BuildRequires: net-snmp-devel
63BuildRequires: openssl-devel
64%{!?suse_version:BuildRequires: lm_sensors-devel}
65%endif
66%if %{with xml}
67BuildRequires: libxml2-devel
68%endif
69%if %{with systemd}
70%if 0%{?suse_version}
71BuildRequires: systemd-rpm-macros
72%{?systemd_requires}
73%else
74Requires(post): systemd
75Requires(preun): systemd
76Requires(postun): systemd
77BuildRequires: systemd-units
78%endif
79%endif
80%if 0%{?suse_version}
81PreReq: %fillup_prereq %insserv_prereq pwdutils
82%else
83Requires(pre): /usr/sbin/groupadd /usr/sbin/useradd
84Requires(post): chkconfig
85Requires(preun): chkconfig
86Requires(preun): initscripts
87Requires(postun): initscripts
88%endif
89
90BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
91
92%description
93This implementation provides LLDP sending and reception, supports VLAN
94and includes an SNMP subagent that can interface to an SNMP agent
95through AgentX protocol.
96
97LLDP is an industry standard protocol designed to supplant proprietary
98Link-Layer protocols such as Extreme EDP (Extreme Discovery Protocol)
99and CDP (Cisco Discovery Protocol). The goal of LLDP is to provide an
100inter-vendor compatible mechanism to deliver Link-Layer notifications
101to adjacent network devices.
102
103This daemon is also able to deal with CDP, FDP, SONMP and EDP
104protocol. It also handles LLDP-MED extension.
105
106%package devel
107Summary: Implementation of IEEE 802.1ab - Tools and header files for developers
108Group: Development/Libraries/C
109BuildRequires: pkgconfig
110Requires: lldpd = %{version}-%{release}
111
112%description devel
113This package is required to develop alternate clients for lldpd.
114
115LLDP is an industry standard protocol designed to supplant proprietary
116Link-Layer protocols such as Extreme EDP (Extreme Discovery Protocol)
117and CDP (Cisco Discovery Protocol). The goal of LLDP is to provide an
118inter-vendor compatible mechanism to deliver Link-Layer notifications
119to 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
193make %{?_smp_mflags}
194
195%install
196make install DESTDIR=$RPM_BUILD_ROOT
197%if %{without systemd}
198install -d $RPM_BUILD_ROOT/%{_initrddir}
199install -m755 %{SOURCE1} $RPM_BUILD_ROOT/%{_initrddir}/lldpd
200%endif
201%if 0%{?suse_version}
202mkdir -p ${RPM_BUILD_ROOT}/var/adm/fillup-templates
203install -m700 %{SOURCE2} ${RPM_BUILD_ROOT}/var/adm/fillup-templates/sysconfig.lldpd
204%else
205install -d $RPM_BUILD_ROOT/etc/sysconfig
206install -m644 %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/lldpd
207%endif
208
209%pre
210# Create lldpd user/group
211if getent group %lldpd_group >/dev/null 2>&1 ; then : ; else \
212 %{_sbindir}/groupadd -r %lldpd_group > /dev/null 2>&1 || exit 1 ; fi
213if 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
253if [ "$1" -ge "1" ]; then
254 /sbin/service lldpd condrestart >/dev/null 2>&1 || :
255fi
256%preun
257if [ "$1" = "0" ]; then
258 /sbin/service lldpd stop > /dev/null 2>&1
259 /sbin/chkconfig --del lldpd
260fi
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
280rm -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