416e09
Name:           netcf
416e09
Version:        0.2.3
e1da54
Release:        8%{?dist}%{?extra_release}
416e09
Summary:        Cross-platform network configuration library
416e09
416e09
Group:          System Environment/Libraries
416e09
License:        LGPLv2+
416e09
URL:            https://fedorahosted.org/netcf/
416e09
Source0:        https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.gz
416e09
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
416e09
e1da54
# Patches
e1da54
Patch1: netcf-wait-for-IFF_UP-and-IFF_RUNNING-after-calling-ifup.patch
e1da54
Patch2: netcf-remove-extraneous-quotes-from-BONDING_OPTS.patch
e1da54
Patch3: netcf-eliminate-use-of-uninitialized-data-when-getting-mac.patch
e1da54
Patch4: netcf-support-systemd-based-netcf-transaction.patch
e1da54
Patch5: netcf-fix-autogen-build-error.patch
e1da54
Patch6: netcf-transform-STP-value-from-yes-no-to-on-off-in-redhat-.patch
e1da54
Patch7: netcf-Require-bridge-utils-for-netcf-libs-in-the-specfile.patch
e1da54
e1da54
# Default to skipping autoreconf.  Distros can change just this one
e1da54
# line (or provide a command-line override) if they backport any
e1da54
# patches that touch configure.ac or Makefile.am.
e1da54
# THIS HAS BEEN ENABLED FOR RHEL7.0 because Patch4 modifies configure.ac
e1da54
# and src/Makefile.am.
e1da54
%{!?enable_autotools:%define enable_autotools 1}
e1da54
e1da54
# Fedora 20 / RHEL-7 are where netcf first uses systemd. Although earlier
e1da54
# Fedora has systemd, netcf still used sysvinit there.
e1da54
%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7
e1da54
    %define with_systemd 1
e1da54
%else
e1da54
    %define with_systemd 0
e1da54
%endif
e1da54
e1da54
%if %{with_systemd}
e1da54
BuildRequires: systemd-units
e1da54
Requires(post): systemd-units
e1da54
Requires(post): systemd-sysv
e1da54
Requires(preun): systemd-units
e1da54
Requires(postun): systemd-units
e1da54
%endif
e1da54
%if 0%{?enable_autotools}
e1da54
BuildRequires: autoconf
e1da54
BuildRequires: automake
e1da54
BuildRequires: gettext-devel
e1da54
BuildRequires: libtool
e1da54
BuildRequires: /usr/bin/pod2man
e1da54
%endif
e1da54
416e09
BuildRequires:  readline-devel augeas-devel >= 0.5.2
416e09
BuildRequires:  libxml2-devel libxslt-devel
416e09
416e09
# force the --with-libnl1 option on F17/RHEL6 and earlier
416e09
%if (0%{?fedora} && 0%{?fedora} < 18) || (0%{?rhel} && 0%{?rhel} < 7)
416e09
%define with_libnl1 1
416e09
%else
416e09
%define with_libnl1 0
416e09
%endif
416e09
416e09
# require libnl3 on F18/RHEL7 and later
416e09
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
416e09
BuildRequires:  libnl3-devel
416e09
%else
416e09
BuildRequires:  libnl-devel
416e09
%endif
416e09
416e09
Requires:       %{name}-libs = %{version}-%{release}
416e09
416e09
Provides: bundled(gnulib)
416e09
416e09
%description
416e09
Netcf is a library used to modify the network configuration of a
416e09
system. Network configurations are expressed in a platform-independent
416e09
XML format, which netcf translates into changes to the system's
416e09
'native' network configuration files.
416e09
416e09
%package        devel
416e09
Summary:        Development files for %{name}
416e09
Group:          Development/Libraries
416e09
Requires:       %{name}-libs = %{version}-%{release}
416e09
Requires:       pkgconfig
416e09
416e09
%description    devel
416e09
The %{name}-devel package contains libraries and header files for
416e09
developing applications that use %{name}.
416e09
416e09
%package        libs
416e09
Summary:        Libraries for %{name}
416e09
Group:          System Environment/Libraries
416e09
e1da54
# bridge-utils is needed because /sbin/ifup calls brctl
e1da54
# if you create a bridge device
e1da54
Requires:       bridge-utils
e1da54
416e09
%description    libs
416e09
The libraries for %{name}.
416e09
416e09
%prep
416e09
%setup -q
416e09
e1da54
%patch1 -p1
e1da54
%patch2 -p1
e1da54
%patch3 -p1
e1da54
%patch4 -p1
e1da54
%patch5 -p1
e1da54
%patch6 -p1
e1da54
%patch7 -p1
e1da54
416e09
%build
416e09
%if %{with_libnl1}
416e09
%define _with_libnl1 --with-libnl1
416e09
%endif
e1da54
%if %{with_systemd}
e1da54
    %define sysinit --with-sysinit=systemd
e1da54
%else
e1da54
    %define sysinit --with-sysinit=initscripts
e1da54
%endif
e1da54
e1da54
%if 0%{?enable_autotools}
e1da54
 autoreconf -if
e1da54
%endif
416e09
416e09
%configure --disable-static \
e1da54
           %{?_with_libnl1} \
e1da54
           %{sysinit}
416e09
make %{?_smp_mflags}
416e09
416e09
%install
416e09
rm -rf $RPM_BUILD_ROOT
e1da54
make install DESTDIR=$RPM_BUILD_ROOT SYSTEMD_UNIT_DIR=%{_unitdir} \
e1da54
     INSTALL="%{__install} -p"
416e09
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
416e09
416e09
%clean
416e09
rm -rf $RPM_BUILD_ROOT
416e09
e1da54
%preun libs
416e09
e1da54
%if %{with_systemd}
e1da54
    %systemd_preun netcf-transaction.service
e1da54
%else
e1da54
if [ $1 = 0 ]; then
e1da54
    /sbin/chkconfig --del netcf-transaction
e1da54
fi
e1da54
%endif
e1da54
e1da54
%post libs
e1da54
e1da54
/sbin/ldconfig
e1da54
%if %{with_systemd}
e1da54
    %systemd_post netcf-transaction.service
e1da54
    /bin/systemctl --no-reload enable netcf-transaction.service >/dev/null 2>&1 || :
e1da54
%else
e1da54
/sbin/chkconfig --add netcf-transaction
e1da54
%endif
e1da54
e1da54
%postun libs
e1da54
e1da54
/sbin/ldconfig
e1da54
%if %{with_systemd}
e1da54
    %systemd_postun netcf-transaction.service
e1da54
%endif
416e09
416e09
%files
416e09
%defattr(-,root,root,-)
416e09
%{_bindir}/ncftool
416e09
%{_mandir}/man1/ncftool.1*
416e09
416e09
%files libs
416e09
%defattr(-,root,root,-)
416e09
%{_datadir}/netcf
416e09
%{_libdir}/*.so.*
e1da54
%if %{with_systemd}
e1da54
%{_unitdir}/netcf-transaction.service
e1da54
%else
416e09
%{_sysconfdir}/rc.d/init.d/netcf-transaction
e1da54
%endif
e1da54
%attr(0755, root, root) %{_libexecdir}/netcf-transaction.sh
416e09
%doc AUTHORS COPYING NEWS
416e09
416e09
%files devel
416e09
%defattr(-,root,root,-)
416e09
%doc
416e09
%{_includedir}/*
416e09
%{_libdir}/*.so
416e09
%{_libdir}/pkgconfig/netcf.pc
416e09
416e09
%changelog
e1da54
* Tue Feb 11 2014 Laine Stump <laine@redhat.com> - 0.2.3-8
e1da54
- resolves rhbz 1060076
e1da54
- Transform STP value from yes/no to on/off
e1da54
- resolves rhbz 1060317
e1da54
- Require bridge-utils for netcf-libs in the specfile
e1da54
e1da54
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 0.2.3-7
e1da54
- Mass rebuild 2014-01-24
e1da54
e1da54
* Wed Jan 22 2014 Laine Stump <laine@redhat.com> - 0.2.3-6
e1da54
- resolves rhbz#961184
e1da54
- wait for IFF_UP and IFF_RUNNING after calling ifup
e1da54
- resolves rhbz#1020204
e1da54
- remove extraneous quotes from BONDING_OPTS
e1da54
- resolves rhbz#1044681
e1da54
- eliminate use of uninitialized data when getting mac
e1da54
- resolves rhbz#1046594
e1da54
- support systemd based netcf transaction
e1da54
e1da54
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 0.2.3-5
e1da54
- Mass rebuild 2013-12-27
e1da54
416e09
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.3-4
416e09
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
416e09
416e09
* Sun Jan 20 2013 Richard W.M. Jones <rjones@redhat.com> - 0.2.3-3
416e09
- Rebuild for libnl soname breakage (RHBZ#901569).
416e09
416e09
* Fri Jan 18 2013 Daniel P. Berrange <berrange@redhat.com> - 0.2.3-2
416e09
- Rebuild for libnl3 soname change
416e09
416e09
* Fri Dec 21 2012 Laine Stump <laine@redhat.com> - 0.2.3-1
416e09
- Rebase to netcf-0.2.3
416e09
- eliminate calls to nl_cache_mngt_provide(), to avoid
416e09
  non-threadsafe code in libnl (and because it isn't needed
416e09
  anyway) (This non-threadsafe code could lead to a segfault)
416e09
- portability fixes for FreeBSD
416e09
- fix bug when a config file has two config parameters with
416e09
  identical names
416e09
- add HACKING document
416e09
- always bail immediately if get_augeas fails (doing otherwise
416e09
  could lead to a segfault)
416e09
416e09
* Sat Aug 25 2012 Laine Stump <laine@redhat.com> - 0.2.2-1
416e09
- Rebase to netcf-0.2.2
416e09
- specfile: require libnl3-devel for rpm builds on Fedora 18+ and
416e09
  RHEL7+. Likewise, force libnl1 for F17- and RHEL6.x-, even if
416e09
  libnl3-devel is installed.
416e09
416e09
* Fri Aug 10 2012 Laine Stump <laine@redhat.com> - 0.2.1-1
416e09
- Rebase to netcf-0.2.1
416e09
- update gnulib to fix broken build on systems with nwer glibc (which no
416e09
  longer provides gets()).
416e09
- add ncftool manpage
416e09
- interfaces are only "active" if both UP and RUNNING.
416e09
- add "bundled(gnulib)" to specfile to indicate that we use a local
416e09
  copy of gnulib sources (used by Fedora/RHEL when determining the scope
416e09
  of security bugs).
416e09
- Fix ipcalc_netmask, which was trimming off the last digit in
416e09
  character representations of full-length netmasks (all 4 octets
416e09
  having 3 chars each)
416e09
- other minor bugfixes
416e09
416e09
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.9-3
416e09
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
416e09
416e09
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.9-2
416e09
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
416e09
416e09
* Tue Jul 26 2011 Laine Stump <laine@redhat.com> - 0.1.9-1
416e09
- Rebase to netcf-0.1.9
416e09
- always add <bridge> element to bridge, even if there is no physdev present
416e09
- don't log error if interface isn't found in kernel during status report
416e09
- allow building with C++
416e09
- update gnulib
416e09
416e09
* Tue Jun 21 2011 Laine Stump <laine@redhat.com> - 0.1.8-1
416e09
- Rebase to netcf-0.1.8
416e09
- new transactional change APIs: ncf_change_(begin|commit|rollback)
416e09
- add stdout/stderr to error text when an external program fails
416e09
- make error reporting of failed execs more exact/correct
416e09
- Remove unnecessary "Requires" of libxml2 and augeas from pkgconfig file
416e09
  to pulling in extra packages when building an application that uses netcf.
416e09
416e09
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.7-2
416e09
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
416e09
416e09
* Mon Sep 27 2010 Laine Stump <laine@redhat.com> - 0.1.7-1
416e09
- New version
416e09
416e09
* Tue Apr 20 2010 Laine Stump <laine@redhat.com> - 0.1.6-1
416e09
- New version
416e09
- Remove patch n0001-src-dutil.c-add-missing-includes-for-stat.patch,
416e09
  included upstream
416e09
416e09
* Mon Feb 15 2010 David Lutterkort <lutter@redhat.com> - 0.1.5-2
416e09
- patch1: add missing includes for stat in dutil.c
416e09
416e09
* Mon Nov 30 2009 David Lutterkort <lutter@redhat.com> - 0.1.5-1
416e09
- New version
416e09
416e09
* Thu Nov  5 2009 David Lutterkort <lutter@redhat.com> - 0.1.4-1
416e09
- New version
416e09
416e09
* Tue Oct 27 2009 David Lutterkort <lutter@redhat.com> - 0.1.3-1
416e09
- New version
416e09
416e09
* Fri Sep 25 2009 David Lutterkort <lutter@redhat.com> - 0.1.2-1
416e09
- New Version
416e09
416e09
* Wed Sep 16 2009 David Lutterkort <lutter@redhat.com> - 0.1.1-1
416e09
- Remove patch netcf-0.1.0-fix-initialization-of-libxslt.patch,
416e09
  included upstream
416e09
416e09
* Tue Sep 15 2009 Mark McLoughlin <markmc@redhat.com> - 0.1.0-3
416e09
- Fix libvirtd segfault caused by libxslt init issue (#523382)
416e09
416e09
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.0-2
416e09
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
416e09
416e09
* Mon Jul 13 2009 David Lutterkort <lutter@redhat.com> - 0.1.0-1
416e09
- BR on augeas-0.5.2
416e09
- Drop explicit requires for augeas-libs
416e09
416e09
* Wed Apr 15 2009 David Lutterkort <lutter@redhat.com> - 0.0.2-1
416e09
- Updates acording to Fedora review
416e09
416e09
* Fri Feb 27 2009 David Lutterkort <lutter@redhat.com> - 0.0.1-1
416e09
- Initial specfile