Browse Source

netcf package update

Signed-off-by: basebuilder_pel7ppc64bebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64bebuilder0 6 years ago
parent
commit
ecc3f3337c
  1. 29
      SOURCES/netcf-Fix-a-typo-in-interface.rng.patch
  2. 86
      SOURCES/netcf-call-aug_load-at-most-once-per-second.patch
  3. 53
      SOURCES/netcf-make-start-mode-blah-optional.patch
  4. 114
      SOURCES/netcf-optimize-aug_match-query-for-all-ifcfg-files-related.patch
  5. 106
      SOURCES/netcf-redhat-support-vlan-devices-named-as-vlan-TAG.patch
  6. 394
      SPECS/netcf.spec

29
SOURCES/netcf-Fix-a-typo-in-interface.rng.patch

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
From b8e97b8b97ba6147f663fbfdce1ddb585bd95c8e Mon Sep 17 00:00:00 2001
From: Yalan Zhang <yalzhang@redhat.com>
Date: Wed, 29 Mar 2017 17:08:03 +0800
Subject: [PATCH] Fix a typo in interface.rng

There is a typo introduced by netcf-make-start-mode-blah-optional.patch,
it is described in https://bugzilla.redhat.com/show_bug.cgi?id=1436906
Message-Id: <1490778483-13695-1-git-send-email-yalzhang@redhat.com>

(cherry picked from commit 6836187a2ebe1382eb47d66ddf99fb664349a7b0)
---
data/xml/interface.rng | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/data/xml/interface.rng b/data/xml/interface.rng
index 2221e0b..f3e31c6 100644
--- a/data/xml/interface.rng
+++ b/data/xml/interface.rng
@@ -290,7 +290,7 @@
</choice>
</attribute>
</element>
- </optional
+ </optional>
</define>

<!--
--
1.8.3.1

86
SOURCES/netcf-call-aug_load-at-most-once-per-second.patch

@ -0,0 +1,86 @@ @@ -0,0 +1,86 @@
From 513224ceee718af980b6bc01a3e5f3f0e6452307 Mon Sep 17 00:00:00 2001
From: Laine Stump <laine@laine.org>
Date: Mon, 28 Sep 2015 17:11:11 -0400
Subject: [PATCH 1/2] call aug_load() at most once per second

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1268382

Previously, netcf would call aug_load() at the start of each public
API call, and rely on augeas quickly determining if the files needed
to be reread based on checking the mtime of all files. With a large
number of files (i.e. several hundred ifcfg files) just checking the
mtime of all files ends up taking quite a long time; enough to turn a
simple "virsh iface-list" of 300 bridges + 300 vlans into a 22 second
ordeal.

With this patch applied, netcf will only call aug_load() at most once
every second, resulting in runtime for virsh iface-list going down to
< 1 second.

The trade-off is that the results of a netcf API call could be up to 1
second out of date (but only due to changes in the config external to
netcf). Since ifcfg files change very infrequently, this is likely
acceptable.

(cherry picked from commit 9b5f4eb57af28a604cd7ac8b2c1be9e49f0b517d)
---
src/dutil_linux.c | 8 +++++++-
src/dutil_linux.h | 1 +
2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/dutil_linux.c b/src/dutil_linux.c
index 0850593..24f4d95 100644
--- a/src/dutil_linux.c
+++ b/src/dutil_linux.c
@@ -32,6 +32,7 @@
#include <unistd.h>
#include <ctype.h>
#include <errno.h>
+#include <time.h>

#include <dirent.h>
#include <sys/wait.h>
@@ -151,6 +152,7 @@ int remove_augeas_xfm_table(struct netcf *ncf,
*/
augeas *get_augeas(struct netcf *ncf) {
int r;
+ time_t current_time;

if (ncf->driver->augeas == NULL) {
augeas *aug;
@@ -186,9 +188,12 @@ augeas *get_augeas(struct netcf *ncf) {
}
ncf->driver->copy_augeas_xfm = 0;
ncf->driver->load_augeas = 1;
+ ncf->driver->load_augeas_time = 0;
}

- if (ncf->driver->load_augeas) {
+ current_time = time(NULL);
+ if (ncf->driver->load_augeas &&
+ ncf->driver->load_augeas_time != current_time) {
augeas *aug = ncf->driver->augeas;

r = aug_load(aug);
@@ -207,6 +212,7 @@ augeas *get_augeas(struct netcf *ncf) {
}
ERR_THROW(r > 0, ncf, EOTHER, "errors in loading some config files");
ncf->driver->load_augeas = 0;
+ ncf->driver->load_augeas_time = current_time;
}
return ncf->driver->augeas;
error:
diff --git a/src/dutil_linux.h b/src/dutil_linux.h
index a06a15c..75ac631 100644
--- a/src/dutil_linux.h
+++ b/src/dutil_linux.h
@@ -41,6 +41,7 @@ struct driver {
struct nl_sock *nl_sock;
struct nl_cache *link_cache;
struct nl_cache *addr_cache;
+ time_t load_augeas_time;
unsigned int load_augeas : 1;
unsigned int copy_augeas_xfm : 1;
unsigned int augeas_xfm_num_tables;
--
1.8.3.1

53
SOURCES/netcf-make-start-mode-blah-optional.patch

@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
From f62aa22beca8e8ce70e8fdbbe46a89ceedc8818d Mon Sep 17 00:00:00 2001
From: Laine Stump <laine@laine.org>
Date: Mon, 27 Mar 2017 00:49:09 -0400
Subject: [PATCH 2/2] make <start mode='blah'/> optional

There's no reason to require it when defining an interface (the config
option it corresponds to is optional), and it isn't even output in the
status of an interface.

Resolves: https://bugzilla.redhat.com/1436300

(cherry picked from commit 1b76d1d0a027f933f79cb250fc461488ab7ccfe4)
---
data/xml/interface.rng | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/data/xml/interface.rng b/data/xml/interface.rng
index 8d70e8b..2221e0b 100644
--- a/data/xml/interface.rng
+++ b/data/xml/interface.rng
@@ -278,17 +278,19 @@
</define>

<define name="startmode">
- <element name="start">
- <attribute name="mode">
- <choice>
- <value>onboot</value>
- <value>none</value>
- <value>hotplug</value>
- <!-- Jim Fehlig lists the following that SuSe supports:
- manual, ifplug, nfsroot -->
- </choice>
- </attribute>
- </element>
+ <optional>
+ <element name="start">
+ <attribute name="mode">
+ <choice>
+ <value>onboot</value>
+ <value>none</value>
+ <value>hotplug</value>
+ <!-- Jim Fehlig lists the following that SuSe supports:
+ manual, ifplug, nfsroot -->
+ </choice>
+ </attribute>
+ </element>
+ </optional
</define>

<!--
--
1.8.3.1

114
SOURCES/netcf-optimize-aug_match-query-for-all-ifcfg-files-related.patch

@ -0,0 +1,114 @@ @@ -0,0 +1,114 @@
From 0be286b3062fc2ff8718cbbc914eb596506d9fac Mon Sep 17 00:00:00 2001
From: Laine Stump <laine@laine.org>
Date: Wed, 7 Oct 2015 13:49:45 -0400
Subject: [PATCH 2/2] optimize aug_match() query for all ifcfg files related to
an interface

This resolves:

https://bugzilla.redhat.com/show_bug.cgi?id=1269613

The original augeas search term used by netcf to find, for example, all the
ifcfg files associated with device "br1" was:

"/files/etc/sysconfig/network-scripts/*[ "
"DEVICE = 'br1' or BRIDGE = 'br1' or MASTER = 'br1' or MASTER = "
"../*[BRIDGE = 'br1']/DEVICE ]/DEVICE"

This is *extremely* inefficient - on a test host with 514 host
bridges, each with an attached vlan interface, a dumpxml of all
toplevel interfaces took 6m40s (*after* installing an augeas that
included augeas upstream commits a659f09a, 41e989ca, and 23d5e480
which were all pushed after the augeas-1.4.0 release).

In these two messages:

https://www.redhat.com/archives/augeas-devel/2015-October/msg00003.html
https://www.redhat.com/archives/augeas-devel/2015-October/msg00004.html

David Lutterkort suggested changing the search term to:

"(/files/etc/sysconfig/network-scripts/*[(DEVICE|BRIDGE|MASTER) = 'br1']"
"|/files/etc/sysconfig/network-scripts/*[MASTER]"
"[MASTER = ../*[BRIDGE = 'br1']/DEVICE ])/DEVICE

That's what this patch does. Testing shows that it is functionally
equivalent, and reduces the dumpxml time in the previously described
test from 6m40s down to 17 seconds.

(cherry picked from commit 396e4e0698d9fb542f2eb8b32790a069e1c0df61)
---
src/drv_redhat.c | 44 ++++++++++++++++++++++++++++++++++----------
1 file changed, 34 insertions(+), 10 deletions(-)

diff --git a/src/drv_redhat.c b/src/drv_redhat.c
index 4935f98..092ef5c 100644
--- a/src/drv_redhat.c
+++ b/src/drv_redhat.c
@@ -88,6 +88,38 @@ static const struct augeas_xfm_table augeas_xfm_common =
{ .size = ARRAY_CARDINALITY(augeas_xfm_common_pv),
.pv = augeas_xfm_common_pv };

+/* aug_all_related_ifcfgs() - return the count of (and optionally a list
+ * of, if matches != NULL) the paths for all ifcfg files that are
+ * related to the interface "name".
+ */
+static
+int aug_all_related_ifcfgs(struct netcf *ncf, char ***matches, const char *name) {
+ int nmatches;
+
+ /* this includes the ifcfg files for:
+ *
+ * 1) the named interface itself (DEVICE=$name)
+ *
+ * 2) any interface naming $name as a bridge it is attached to
+ * (BRIDGE=$name)
+ *
+ * 3) any interface naming $name as the master of a bond it is
+ * enslaved to (MASTER=$name)
+ *
+ * 4) any interface with a MASTER, where the device named as
+ * MASTER contains a BRIDGE=$name *and* DEVICE=$itself (thus
+ * catching ethernet devices that are enslaved to a bond that
+ * is attached to a bridge).
+ */
+ nmatches = aug_fmt_match(ncf, matches,
+ "(%s[(DEVICE|BRIDGE|MASTER) = '%s']"
+ "|%s[MASTER][MASTER = ../*[BRIDGE = '%s']/DEVICE "
+ "])/DEVICE",
+ ifcfg_path, name, ifcfg_path, name);
+ return nmatches;
+
+}
+
/* Entries in a ifcfg file that tell us that the interface
* is not a toplevel interface
*/
@@ -108,12 +140,7 @@ static int is_slave(struct netcf *ncf, const char *intf) {
static bool has_ifcfg_file(struct netcf *ncf, const char *name) {
int nmatches;

- nmatches = aug_fmt_match(ncf, NULL,
- "%s[ DEVICE = '%s'"
- " or BRIDGE = '%s'"
- " or MASTER = '%s'"
- " or MASTER = ../*[BRIDGE = '%s']/DEVICE ]/DEVICE",
- ifcfg_path, name, name, name, name);
+ nmatches = aug_all_related_ifcfgs(ncf, NULL, name);
return nmatches > 0;
}

@@ -588,10 +615,7 @@ static xmlDocPtr aug_get_xml_for_nif(struct netcf_if *nif) {
int ndevs = 0, nint = 0;

ncf = nif->ncf;
- ndevs = aug_fmt_match(ncf, &devs,
- "%s[ DEVICE = '%s' or BRIDGE = '%s' or MASTER = '%s'"
- " or MASTER = ../*[BRIDGE = '%s']/DEVICE ]/DEVICE",
- ifcfg_path, nif->name, nif->name, nif->name, nif->name);
+ ndevs = aug_all_related_ifcfgs(ncf, &devs, nif->name);
ERR_BAIL(ncf);

nint = uniq_ifcfg_paths(ncf, ndevs, devs, &intf);
--
1.8.3.1

106
SOURCES/netcf-redhat-support-vlan-devices-named-as-vlan-TAG.patch

@ -0,0 +1,106 @@ @@ -0,0 +1,106 @@
From 1a98ab3a0d95e0e7699de547e2c327c62197db8f Mon Sep 17 00:00:00 2001
From: Leno Hou <lenohou@gmail.com>
Date: Thu, 8 Dec 2016 21:04:15 +0800
Subject: [PATCH 1/2] redhat: support vlan devices named as "vlan${TAG}"

Since at least the version of initscripts that is in current
RHEL6/CentOS6 (9.03.53) initscripts supports two different naming
styles for vlan interfaces:

$PHYSDEV.$TAG, e.g. "eth0.52"
vlan$TAG, e.g. "vlan52"

In the former case, both the physical device and the vlan tag are
embedded in the vlan device name; in the latter case, only the vlan
tag is embedded in the name, and initscripts (or NetworkManager) looks
for the attribute PHYSDEV in the ifcfg file, and uses that as the
physical device.

netcf was originally written back in the days of RHEL5, and interfaces
named "vlanXXX" weren't supported yet, so until now netcf has only
recognized the old "eth0.42" style.

This patch fixes that omission - existing vlan interfaces named
"vlanXYZ" are now properly recognized, and new ones can be created.

(NB: It is still odd that the digits at the end of the interface name
must match the vlan tag, but there's unfortunately nothing that can be
done about that, since there is no explicit variable in the ifcfg file
that can be used to set the vlan tag.)

Resolves: https://bugzilla.redhat.com/1286890

(cherry picked from commit 0f6596c3e2f914fd36a771421151f409924f65e2)

Signed-off-by: Leno Hou <lenohou@gmail.com>
---
data/xml/redhat-get.xsl | 21 ++++++++++++++++-----
data/xml/redhat-put.xsl | 21 ++++++++++++++++-----
2 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/data/xml/redhat-get.xsl b/data/xml/redhat-get.xsl
index ec56f01..a0bf180 100644
--- a/data/xml/redhat-get.xsl
+++ b/data/xml/redhat-get.xsl
@@ -46,11 +46,22 @@
</xsl:template>

<xsl:template name="vlan-interface-common">
- <xsl:variable name="iface" select="pathcomponent:escape(concat(vlan/interface/@name, '.', vlan/@tag))"/>
-
- <xsl:attribute name="path">/files/etc/sysconfig/network-scripts/ifcfg-<xsl:value-of select="$iface"/></xsl:attribute>
- <node label="DEVICE" value="{$iface}"/>
- <node label="VLAN" value="yes"/>
+ <xsl:variable name="vlan-name" select="@name"/>
+ <xsl:choose>
+ <xsl:when test="contains($vlan-name, '.')">
+ <xsl:variable name="iface" select="pathcomponent:escape(concat(vlan/interface/@name, '.', vlan/@tag))"/>
+ <xsl:attribute name="path">/files/etc/sysconfig/network-scripts/ifcfg-<xsl:value-of select="$iface"/></xsl:attribute>
+ <node label="DEVICE" value="{$iface}"/>
+ <node label="VLAN" value="yes"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="iface" select="/interface/@name"/>
+ <xsl:attribute name="path">/files/etc/sysconfig/network-scripts/ifcfg-<xsl:value-of select="$iface"/></xsl:attribute>
+ <node label="DEVICE" value="{$iface}"/>
+ <node label="PHYSDEV" value="{vlan/interface/@name}"/>
+ <node label="VLAN" value="yes"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:template>

<xsl:template name='bare-vlan-interface'>
diff --git a/data/xml/redhat-put.xsl b/data/xml/redhat-put.xsl
index ed56c66..2997621 100644
--- a/data/xml/redhat-put.xsl
+++ b/data/xml/redhat-put.xsl
@@ -56,11 +56,22 @@

<xsl:template name="vlan-device">
<xsl:variable name="name" select="node[@label = 'DEVICE']/@value"/>
- <xsl:variable name="device" select="substring-before($name, '.')"/>
- <xsl:variable name="tag" select="substring-after($name, '.')"/>
- <vlan tag="{$tag}">
- <interface name="{$device}"/>
- </vlan>
+ <xsl:choose>
+ <xsl:when test="contains($name, '.')">
+ <xsl:variable name="device" select="substring-before($name, '.')"/>
+ <xsl:variable name="tag" select="substring-after($name, '.')"/>
+ <vlan tag="{$tag}">
+ <interface name="{$device}"/>
+ </vlan>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="device" select="node[@label = 'PHYSDEV']/@value"/>
+ <xsl:variable name="tag" select="translate($name, translate($name, '0123456789', ''), '')"/>
+ <vlan tag="{$tag}">
+ <interface name="{$device}"/>
+ </vlan>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:template>

<!--
--
1.8.3.1

394
SPECS/netcf.spec

@ -0,0 +1,394 @@ @@ -0,0 +1,394 @@
Name: netcf
Version: 0.2.8
Release: 4%{?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
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

# 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-redhat-support-vlan-devices-named-as-vlan-TAG.patch
Patch004: netcf-make-start-mode-blah-optional.patch
Patch005: netcf-Fix-a-typo-in-interface.rng.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

# bridge-utils is needed because /sbin/ifup calls brctl
# if you create a bridge device
Requires: bridge-utils

%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 <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
* Wed Mar 29 2017 Laine Stump <laine@redhat.com> - 0.2.8-4
- resolve rhbz#1437021

* Tue Mar 28 2017 Laine Stump <laine@redhat.com> - 0.2.8-3
- resolve rhbz#1286890
- resolve rhbz#1436300

* Fri Jul 01 2016 Laine Stump <laine@redhat.com> - 0.2.8-2
- resolve rhbz#1268382
- resolve rhbz#1269613

* Wed May 20 2015 Laine Stump <laine@redhat.com> - 0.2.8-1
- Rebase to netcf-0.2.8
- resolve rhbz#1165965 - CVE-2014-8119
- resolve rhbz#1159000
- support multiple IPv4 addresses in interface config (redhat driver)
- resolve rhbz#1113983
- allow static IPv4 config simultaneous with DHCPv4 (redhat driver)
- resolve rhbz#1170941
- remove extra quotes from IPV6ADDR_SECONDARIES (redhat+suse drivers)
- resolve rhbz#1090011
- limit names of new interfaces to IFNAMSIZ characters
- resolve rhbz#761246
- properly parse ifcfg files with comments past column 1

* Tue Jan 27 2015 - Laine Stump <laine@redhat.com> 0.2.6-3
- resolves rhbz#1185850
- don't treat failure to read /sys/class/net/$def/operstate as an error

* Thu Nov 13 2014 - Laine Stump <laine@redhat.com> 0.2.6-2
- resolves rhbz#1138196
- report file path and reason when aug_save fails
- resolves rhbz#1147650
- recognize IPADDR0/PREFIX0/NETMASK0/GATEWAY0
- use git to apply patches to source tree

* Fri Aug 22 2014 Laine Stump <laine@redhat.com> - 0.2.6-1
- resolves rhbz#1115176
- rebase to upstream 0.2.6
- allow interleaved elements in interface XML schema
- allow <link> element in vlan and bond interfaces
- report link state/speed in interface status
- change DHCPv6 to DHCPV6C in ifcfg files
- max vlan id is 4095, not 4096

* Tue Feb 11 2014 Laine Stump <laine@redhat.com> - 0.2.3-8
- resolves rhbz 1060076
- Transform STP value from yes/no to on/off
- resolves rhbz 1060317
- Require bridge-utils for netcf-libs in the specfile

* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 0.2.3-7
- Mass rebuild 2014-01-24

* Wed Jan 22 2014 Laine Stump <laine@redhat.com> - 0.2.3-6
- resolves rhbz#961184
- wait for IFF_UP and IFF_RUNNING after calling ifup
- resolves rhbz#1020204
- remove extraneous quotes from BONDING_OPTS
- resolves rhbz#1044681
- eliminate use of uninitialized data when getting mac
- resolves rhbz#1046594
- support systemd based netcf transaction

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 0.2.3-5
- Mass rebuild 2013-12-27

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Sun Jan 20 2013 Richard W.M. Jones <rjones@redhat.com> - 0.2.3-3
- Rebuild for libnl soname breakage (RHBZ#901569).

* Fri Jan 18 2013 Daniel P. Berrange <berrange@redhat.com> - 0.2.3-2
- Rebuild for libnl3 soname change

* Fri Dec 21 2012 Laine Stump <laine@redhat.com> - 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 <laine@redhat.com> - 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 <laine@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 0.1.9-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Tue Jul 26 2011 Laine Stump <laine@redhat.com> - 0.1.9-1
- Rebase to netcf-0.1.9
- always add <bridge> 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 <laine@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 0.1.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Mon Sep 27 2010 Laine Stump <laine@redhat.com> - 0.1.7-1
- New version

* Tue Apr 20 2010 Laine Stump <laine@redhat.com> - 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 <lutter@redhat.com> - 0.1.5-2
- patch1: add missing includes for stat in dutil.c

* Mon Nov 30 2009 David Lutterkort <lutter@redhat.com> - 0.1.5-1
- New version

* Thu Nov 5 2009 David Lutterkort <lutter@redhat.com> - 0.1.4-1
- New version

* Tue Oct 27 2009 David Lutterkort <lutter@redhat.com> - 0.1.3-1
- New version

* Fri Sep 25 2009 David Lutterkort <lutter@redhat.com> - 0.1.2-1
- New Version

* Wed Sep 16 2009 David Lutterkort <lutter@redhat.com> - 0.1.1-1
- Remove patch netcf-0.1.0-fix-initialization-of-libxslt.patch,
included upstream

* Tue Sep 15 2009 Mark McLoughlin <markmc@redhat.com> - 0.1.0-3
- Fix libvirtd segfault caused by libxslt init issue (#523382)

* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Mon Jul 13 2009 David Lutterkort <lutter@redhat.com> - 0.1.0-1
- BR on augeas-0.5.2
- Drop explicit requires for augeas-libs

* Wed Apr 15 2009 David Lutterkort <lutter@redhat.com> - 0.0.2-1
- Updates acording to Fedora review

* Fri Feb 27 2009 David Lutterkort <lutter@redhat.com> - 0.0.1-1
- Initial specfile
Loading…
Cancel
Save