Name: netcf Version: 0.2.8 Release: 12%{?dist}%{?extra_release} Summary: Cross-platform network configuration library Group: System Environment/Libraries License: LGPLv2+ URL: https://fedorahosted.org/netcf/ Source0: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.gz # Patches # One patch per line, in this format: # Patch001: file1.patch # Patch002: file2.patch # ... # # The patches will automatically be put into the build source tree # during the %prep stage (using git, which is now required for an rpm # build) # Patch001: netcf-call-aug_load-at-most-once-per-second.patch Patch002: netcf-optimize-aug_match-query-for-all-ifcfg-files-related.patch Patch003: netcf-linux-include-bond-element-for-bonds-with-no-slaves.patch Patch004: netcf-Properly-classify-bond-devices-with-no-slaves.patch Patch005: netcf-Fix-memory-leak-in-aug_match_mac.patch Patch006: netcf-remove-unused-variable-in-aug_match_mac.patch Patch007: netcf-Make-the-empty-body-of-for-loops-more-obvious.patch Patch008: netcf-slience-a-false-Coverity-report.patch # Default to skipping autoreconf. Distros can change just this one # line (or provide a command-line override) if they backport any # patches that touch configure.ac or Makefile.am. %{!?enable_autotools:%define enable_autotools 0} # git is used to build a source tree with patches applied (see the # %prep section) BuildRequires: git # Fedora 20 / RHEL-7 are where netcf first uses systemd. Although earlier # Fedora has systemd, netcf still used sysvinit there. %if 0%{?fedora} >= 20 || 0%{?rhel} >= 7 %define with_systemd 1 %else %define with_systemd 0 %endif %if %{with_systemd} BuildRequires: systemd Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %endif %if 0%{?enable_autotools} BuildRequires: autoconf BuildRequires: automake BuildRequires: gettext-devel BuildRequires: libtool BuildRequires: /usr/bin/pod2man %endif BuildRequires: readline-devel augeas-devel >= 0.5.2 BuildRequires: libxml2-devel libxslt-devel # force the --with-libnl1 option on F17/RHEL6 and earlier %if (0%{?fedora} && 0%{?fedora} < 18) || (0%{?rhel} && 0%{?rhel} < 7) %define with_libnl1 1 %else %define with_libnl1 0 %endif # require libnl3 on F18/RHEL7 and later %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 BuildRequires: libnl3-devel %else BuildRequires: libnl-devel %endif Requires: %{name}-libs = %{version}-%{release} Provides: bundled(gnulib) %description Netcf is a library used to modify the network configuration of a system. Network configurations are expressed in a platform-independent XML format, which netcf translates into changes to the system's 'native' network configuration files. %package devel Summary: Development files for %{name} Group: Development/Libraries Requires: %{name}-libs = %{version}-%{release} Requires: pkgconfig %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package libs Summary: Libraries for %{name} Group: System Environment/Libraries %description libs The libraries for %{name}. %prep %setup -q # Patches have to be stored in a temporary file because RPM has # a limit on the length of the result of any macro expansion; # if the string is longer, it's silently cropped %{lua: tmp = os.tmpname(); f = io.open(tmp, "w+"); count = 0; for i, p in ipairs(patches) do f:write(p.."\n"); count = count + 1; end; f:close(); print("PATCHCOUNT="..count.."\n") print("PATCHLIST="..tmp.."\n") } git init -q git config user.name rpm-build git config user.email rpm-build git config gc.auto 0 git add . git commit -q -a --author 'rpm-build ' \ -m '%{name}-%{version} base' COUNT=$(grep '\.patch$' $PATCHLIST | wc -l) if [ $COUNT -ne $PATCHCOUNT ]; then echo "Found $COUNT patches in $PATCHLIST, expected $PATCHCOUNT" exit 1 fi if [ $COUNT -gt 0 ]; then xargs git am <$PATCHLIST || exit 1 fi echo "Applied $COUNT patches" rm -f $PATCHLIST %build %if %{with_libnl1} %define _with_libnl1 --with-libnl1 %endif %if %{with_systemd} %define sysinit --with-sysinit=systemd %else %define sysinit --with-sysinit=initscripts %endif %if 0%{?enable_autotools} autoreconf -if %endif %configure --disable-static \ %{?_with_libnl1} \ %{sysinit} make %{?_smp_mflags} %install make install DESTDIR=$RPM_BUILD_ROOT SYSTEMD_UNIT_DIR=%{_unitdir} \ INSTALL="%{__install} -p" find $RPM_BUILD_ROOT -name '*.la' -delete %preun libs %if %{with_systemd} %systemd_preun netcf-transaction.service %else if [ $1 = 0 ]; then /sbin/chkconfig --del netcf-transaction fi %endif %post libs /sbin/ldconfig %if %{with_systemd} %systemd_post netcf-transaction.service /bin/systemctl --no-reload enable netcf-transaction.service >/dev/null 2>&1 || : %else /sbin/chkconfig --add netcf-transaction %endif %postun libs /sbin/ldconfig %if %{with_systemd} %systemd_postun netcf-transaction.service %endif %files %{_bindir}/ncftool %{_mandir}/man1/ncftool.1* %files libs %{_datadir}/netcf %{_libdir}/*.so.* %if %{with_systemd} %{_unitdir}/netcf-transaction.service %else %{_sysconfdir}/rc.d/init.d/netcf-transaction %endif %attr(0755, root, root) %{_libexecdir}/netcf-transaction.sh %doc AUTHORS COPYING NEWS %files devel %doc %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/netcf.pc %changelog * Fri Aug 09 2019 Laine Stump - 0.2.8-12 - Resolves: rhbz#1602628 * Fri Jun 28 2019 Danilo de Paula - 0.2.8-11 - Rebuild all virt packages to fix RHEL's upgrade path - Resolves: rhbz#1695587 (Ensure modular RPM upgrade path) * Mon Jul 30 2018 Eric Garver - 0.2.8-10 - Remove artificial dependency on bridge-utils. rhbz #1605333 * Thu Feb 08 2018 Fedora Release Engineering - 0.2.8-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Thu Aug 03 2017 Fedora Release Engineering - 0.2.8-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 0.2.8-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Feb 10 2017 Fedora Release Engineering - 0.2.8-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Thu Jan 12 2017 Igor Gnatenko - 0.2.8-5 - Rebuild for readline 7.x * Thu Feb 04 2016 Fedora Release Engineering - 0.2.8-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Wed Oct 14 2015 Laine Stump - Improve performance with large number of interfaces (Bug 1268384, Bug 1271341) - recognize bond devices with no slaves * Wed Jun 17 2015 Fedora Release Engineering - 0.2.8-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Wed Apr 08 2015 Laine Stump - 0.2.8-1 - rebase to netcf-0.2.8 - Fix build on systems with newer libnl3 that doesn't #include * Mon Apr 06 2015 Laine Stump - 0.2.7-1 - rebase to netcf-0.2.7 - resolve CVE-2014-8119 - support multiple IPv4 addresses in interface config (redhat driver) - allow static IPv4 config simultaneous with DHCPv4 (redhat driver) - recognize IPADDR0/NETMASK0/PREFIX0 - remove extra quotes from IPV6ADDR_SECONDARIES (redhat+suse drivers) - miscellaneous systemd service fixes - use git to apply patches in rpm specfile - revert the 0.2.6-2 specfile patch mentioned below (now fixed properly) * Thu Jan 8 2015 Zbigniew Jędrzejewski-Szmek - 0.2.6-2 - do not write to the console (#1135744) * Fri Aug 22 2014 Laine Stump - 0.2.6-1 - allow interleaved elements in interface XML schema - allow element in vlan and bond interfaces * Wed Aug 20 2014 Laine Stump - 0.2.5-1 - report link state/speed in interface status - change DHCPv6 to DHCPV6C in ifcfg files - max vlan id is 4095, not 4096 * Sun Aug 17 2014 Fedora Release Engineering - 0.2.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Sat Jun 07 2014 Fedora Release Engineering - 0.2.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Wed May 14 2014 Laine Stump - 0.2.4-1 - wait for IFF_UP and IFF_RUNNING after calling ifup - don't require IFF_RUNNING for bridge devices - avoid memory leak in debian when listing interfaces - avoid use of uninitialized data when getting mac address (fixes https://bugzilla.redhat.com/show_bug.cgi?id=1046594 ) - limit interface names to IFNAMSIZ-1 characters in length - support systemd for netcf-transaction * Sat May 03 2014 Cole Robinson - 0.2.3-7 - Fix reading bridge stp value (bz #1031053) * Thu Apr 24 2014 Tomáš Mráz - 0.2.3-6 - Rebuild for new libgcrypt * Sat Aug 03 2013 Fedora Release Engineering - 0.2.3-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Thu Feb 14 2013 Fedora Release Engineering - 0.2.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Sun Jan 20 2013 Richard W.M. Jones - 0.2.3-3 - Rebuild for libnl soname breakage (RHBZ#901569). * Fri Jan 18 2013 Daniel P. Berrange - 0.2.3-2 - Rebuild for libnl3 soname change * Fri Dec 21 2012 Laine Stump - 0.2.3-1 - Rebase to netcf-0.2.3 - eliminate calls to nl_cache_mngt_provide(), to avoid non-threadsafe code in libnl (and because it isn't needed anyway) (This non-threadsafe code could lead to a segfault) - portability fixes for FreeBSD - fix bug when a config file has two config parameters with identical names - add HACKING document - always bail immediately if get_augeas fails (doing otherwise could lead to a segfault) * Sat Aug 25 2012 Laine Stump - 0.2.2-1 - Rebase to netcf-0.2.2 - specfile: require libnl3-devel for rpm builds on Fedora 18+ and RHEL7+. Likewise, force libnl1 for F17- and RHEL6.x-, even if libnl3-devel is installed. * Fri Aug 10 2012 Laine Stump - 0.2.1-1 - Rebase to netcf-0.2.1 - update gnulib to fix broken build on systems with nwer glibc (which no longer provides gets()). - add ncftool manpage - interfaces are only "active" if both UP and RUNNING. - add "bundled(gnulib)" to specfile to indicate that we use a local copy of gnulib sources (used by Fedora/RHEL when determining the scope of security bugs). - Fix ipcalc_netmask, which was trimming off the last digit in character representations of full-length netmasks (all 4 octets having 3 chars each) - other minor bugfixes * Fri Jul 20 2012 Fedora Release Engineering - 0.1.9-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Fri Jan 13 2012 Fedora Release Engineering - 0.1.9-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Tue Jul 26 2011 Laine Stump - 0.1.9-1 - Rebase to netcf-0.1.9 - always add element to bridge, even if there is no physdev present - don't log error if interface isn't found in kernel during status report - allow building with C++ - update gnulib * Tue Jun 21 2011 Laine Stump - 0.1.8-1 - Rebase to netcf-0.1.8 - new transactional change APIs: ncf_change_(begin|commit|rollback) - add stdout/stderr to error text when an external program fails - make error reporting of failed execs more exact/correct - Remove unnecessary "Requires" of libxml2 and augeas from pkgconfig file to pulling in extra packages when building an application that uses netcf. * Tue Feb 08 2011 Fedora Release Engineering - 0.1.7-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Mon Sep 27 2010 Laine Stump - 0.1.7-1 - New version * Tue Apr 20 2010 Laine Stump - 0.1.6-1 - New version - Remove patch n0001-src-dutil.c-add-missing-includes-for-stat.patch, included upstream * Mon Feb 15 2010 David Lutterkort - 0.1.5-2 - patch1: add missing includes for stat in dutil.c * Mon Nov 30 2009 David Lutterkort - 0.1.5-1 - New version * Thu Nov 5 2009 David Lutterkort - 0.1.4-1 - New version * Tue Oct 27 2009 David Lutterkort - 0.1.3-1 - New version * Fri Sep 25 2009 David Lutterkort - 0.1.2-1 - New Version * Wed Sep 16 2009 David Lutterkort - 0.1.1-1 - Remove patch netcf-0.1.0-fix-initialization-of-libxslt.patch, included upstream * Tue Sep 15 2009 Mark McLoughlin - 0.1.0-3 - Fix libvirtd segfault caused by libxslt init issue (#523382) * Sat Jul 25 2009 Fedora Release Engineering - 0.1.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Mon Jul 13 2009 David Lutterkort - 0.1.0-1 - BR on augeas-0.5.2 - Drop explicit requires for augeas-libs * Wed Apr 15 2009 David Lutterkort - 0.0.2-1 - Updates acording to Fedora review * Fri Feb 27 2009 David Lutterkort - 0.0.1-1 - Initial specfile