diff --git a/.gitignore b/.gitignore index 9506fd9..eea3882 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/netcf-0.2.6.tar.gz +SOURCES/netcf-0.2.8.tar.gz diff --git a/.netcf.metadata b/.netcf.metadata index 2ba5475..4bdc534 100644 --- a/.netcf.metadata +++ b/.netcf.metadata @@ -1 +1 @@ -6a82d86efe821a64ac157837ba895a54edef7105 SOURCES/netcf-0.2.6.tar.gz +98f0780c4bee429fbbfb3ced1629944cc5c6f2b6 SOURCES/netcf-0.2.8.tar.gz diff --git a/SOURCES/netcf-Better-messages-on-failure-reading-sys-class-net-dev.patch b/SOURCES/netcf-Better-messages-on-failure-reading-sys-class-net-dev.patch deleted file mode 100644 index ab3451f..0000000 --- a/SOURCES/netcf-Better-messages-on-failure-reading-sys-class-net-dev.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 2e2fabd1acc704b938f7a0df1b091efd68d58072 Mon Sep 17 00:00:00 2001 -From: Laine Stump -Date: Mon, 26 Jan 2015 16:22:35 -0500 -Subject: [PATCH 1/2] Better messages on failure reading - /sys/class/net/$dev/(operstate|speed) - -add_link_info() sets an error message when it fails to read -/sys/class/net/$dev/operstate, but unfortunately frees the path string -just prior to setting the error message, so the error string has -"(null)" instead (thanks to glibc's asprintf noticing the null -pointer). - -Additionally, the macro used to create the log message, -ERR_THROW_STRERROR() already turns errno into a string in the locally -defined errbuf, but we aren't including it in the format string, so it -doesn't get printed. - -This patch makes sure the path isn't freed until it is really no -longer needed, and adds errbuf to the log message. - -This will hopefully help to find the root cause of - - https://bugzilla.redhat.com/show_bug.cgi?id=1185850 - -(cherry picked from commit 60772fefee8eb6ef5d34ba8f0bc36d4ea7a6fc01) ---- - src/dutil_linux.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/src/dutil_linux.c b/src/dutil_linux.c -index d2bbef4..52a7299 100644 ---- a/src/dutil_linux.c -+++ b/src/dutil_linux.c -@@ -1,7 +1,7 @@ - /* - * dutil_linux.c: Linux utility functions for driver backends. - * -- * Copyright (C) 2009-2012, 2014 Red Hat Inc. -+ * Copyright (C) 2009-2012, 2014-2015 Red Hat Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -1040,14 +1040,15 @@ static void add_link_info(struct netcf *ncf, - xasprintf(&path, "/sys/class/net/%s/operstate", ifname); - ERR_NOMEM(!path, ncf); - state = read_file(path, &length); -- FREE(path); -- ERR_THROW_STRERROR(!state, ncf, EFILE, "Failed to read %s", path); -+ ERR_THROW_STRERROR(!state, ncf, EFILE, "Failed to read %s : %s", -+ path, errbuf); - if ((nl = strchr(state, '\n'))) - *nl = 0; - prop = xmlSetProp(link_node, BAD_CAST "state", BAD_CAST state); - ERR_NOMEM(!prop, ncf); - - if (!strcmp(state, "up")) { -+ FREE(path); - xasprintf(&path, "/sys/class/net/%s/speed", ifname); - ERR_NOMEM(path == NULL, ncf); - speed = read_file(path, &length); -@@ -1059,7 +1060,8 @@ static void add_link_info(struct netcf *ncf, - speed = strdup("0"); - ERR_NOMEM(!speed, ncf); - } -- ERR_THROW_STRERROR(!speed, ncf, EFILE, "Failed to read %s", path); -+ ERR_THROW_STRERROR(!speed, ncf, EFILE, "Failed to read %s : %s", -+ path, errbuf); - if ((nl = strchr(speed, '\n'))) - *nl = 0; - } else { --- -1.8.3.1 - diff --git a/SOURCES/netcf-Don-t-return-error-if-sys-class-net-dev-operstate-is.patch b/SOURCES/netcf-Don-t-return-error-if-sys-class-net-dev-operstate-is.patch deleted file mode 100644 index ca4824c..0000000 --- a/SOURCES/netcf-Don-t-return-error-if-sys-class-net-dev-operstate-is.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 64fcd67471ead7a0205f853a32eece6de4d7436b Mon Sep 17 00:00:00 2001 -From: Laine Stump -Date: Tue, 27 Jan 2015 11:46:10 -0500 -Subject: [PATCH 2/2] Don't return error if /sys/class/net/$dev/operstate isn't - found - -This can happen for alias "interfaces", e.g: "eth0:1" (which aren't -really an interface, but are a deprecated method of adding multiple IP -addresses to a single interface). Since only the base interface -("eth0") is really a device, only it has an entry in /sys/class/net. - -It's not important that such interfaces have truly meaningful -information in their element (as we don't really have any truly -meaningful state, and haven't historically provided other status for -alias interfaces (e.g. IP address). What *is* important is that we -don't return an error, as this breaks applications that rely on being -able to get back a successful (if empty) status for any interface -listed. - -This resolves the regression with virt-manager described here: - - https://bugzilla.redhat.com/show_bug.cgi?id=1185850 - -(cherry picked from commit 4d5d84bdec17dbb267b5e038fa649af9d730bda9) ---- - src/dutil_linux.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/src/dutil_linux.c b/src/dutil_linux.c -index 52a7299..a8788b6 100644 ---- a/src/dutil_linux.c -+++ b/src/dutil_linux.c -@@ -1040,8 +1040,15 @@ static void add_link_info(struct netcf *ncf, - xasprintf(&path, "/sys/class/net/%s/operstate", ifname); - ERR_NOMEM(!path, ncf); - state = read_file(path, &length); -- ERR_THROW_STRERROR(!state, ncf, EFILE, "Failed to read %s : %s", -- path, errbuf); -+ if (!state) { -+ /* missing operstate is *not* an error. It could be due to an -+ * alias interface, which has no entry in /sys/class/net at -+ * all, for example. This is similar to the situation where we -+ * can't find an ifindex in add_ethernet_info(). -+ */ -+ state = strdup(""); -+ ERR_NOMEM(!state, ncf); -+ } - if ((nl = strchr(state, '\n'))) - *nl = 0; - prop = xmlSetProp(link_node, BAD_CAST "state", BAD_CAST state); --- -1.8.3.1 - diff --git a/SOURCES/netcf-Recognize-IPADDR0-PREFIX0-NETMASK0-GATEWAY0-in-redha.patch b/SOURCES/netcf-Recognize-IPADDR0-PREFIX0-NETMASK0-GATEWAY0-in-redha.patch deleted file mode 100644 index 0b9e2ad..0000000 --- a/SOURCES/netcf-Recognize-IPADDR0-PREFIX0-NETMASK0-GATEWAY0-in-redha.patch +++ /dev/null @@ -1,237 +0,0 @@ -From 0015f8e8615458deac78cc3172b74c2983dbaaab Mon Sep 17 00:00:00 2001 -From: Laine Stump -Date: Thu, 30 Oct 2014 11:45:23 -0400 -Subject: [PATCH 2/2] Recognize IPADDR0/PREFIX0/NETMASK0/GATEWAY0 in redhat and - suse backends - -(another case of explanation taking longer than the patch...) - -This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1147650 - -The redhat and suse backends for netcf convert from a raw xml-ized -representation of ifcfg file contents (produced by augeas) to the - xml element known by libvirt using two xsl stylesheets: - - data/xml/redhat-put.xsl - data/xml/suse-put.xsl - -(I am personally interested in redhat-put.xsl, but am making the patch -described below to suse-put.xsl as well since the files are nearly -identical). - -Examples of the "raw" xml can be seen in -tests/redhat/schema/*.xml. Basically each ifcfg setting is in an -element called "node", e.g: - - - - -The issue is that while the netcf stylesheets were written to use -IPADDR/PREFIX/NETMASK/GATEWAY, in certain versions of NetworkManager -(e.g. the version that is in RHEL7, but *not* the version that is in -Fedora 20) NetworkManager uses IPADDR0, PREFIX0, and GATEWAY0 to store -the interface IPv4 info, rather than IPADDR, PREFIX, and GATEWAY (In -those cases, it will still recognize IPADDR/PREFIX/GATEWAY, but when -it saves anything, it uses IPADDR0/PREFIX0/GATEWAY0). Initscripts, on -the other hand, recognizes IPADDR0 and PREFIX0, but doesn't understand -GATEWAY0, it only sees GATEWAY. - -The problem with the above comes when we do a dumpxml of an interface -created by NM (or anaconda, the Fedora installer, which also uses -IPADDR0), or worse yet when libvirt's virsh utility puts a bridge on -an ethernet by getting the current XML, modifying it, then writing -back the new config - since netcf doesn't see IPADDR0, the -element is empty in the original retrieved xml, and thus when the new -bridge interface is defined, it has no IP address info. - -The solution to this is to improve the *-put.xsl to recognize either -the old form *or* the ${var}0 form when converting into -XML. For maximum compatibility, the conversion back into ifcfg format -is left the same, as all versions of initscripts and NetworkManager -that I've tried continue to recognize them. - -Beyond what is done here, both NM and initscripts recognize IPADDRn -where "n" can be any number up to 255, and since we support multiple -IPv6 addresses in netcf, I would like to support multiple IPv4 -addresses as well. That is left for a future patch, as my XSL skills -simply are not up to that task (patches welcome!) - -(cherry picked from commit c0e7734cb3c616c102cfff4ce1aeee023e85659a) ---- - data/xml/redhat-put.xsl | 61 +++++++++++++++++++++++++++++++++++++------------ - data/xml/suse-put.xsl | 61 +++++++++++++++++++++++++++++++++++++------------ - 2 files changed, 94 insertions(+), 28 deletions(-) - -diff --git a/data/xml/redhat-put.xsl b/data/xml/redhat-put.xsl -index 579da12..ed800d6 100644 ---- a/data/xml/redhat-put.xsl -+++ b/data/xml/redhat-put.xsl -@@ -183,7 +183,8 @@ - - -+ select="count(node[@label = 'IPADDR']) + -+ count(node[@label = 'IPADDR0']) > 0"/> - - - -@@ -196,25 +197,57 @@ - - - -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - -diff --git a/data/xml/suse-put.xsl b/data/xml/suse-put.xsl -index f3903a2..7dd739a 100644 ---- a/data/xml/suse-put.xsl -+++ b/data/xml/suse-put.xsl -@@ -176,7 +176,8 @@ - - -+ select="count(node[@label = 'IPADDR']) + -+ count(node[@label = 'IPADDR0']) > 0"/> - - - -@@ -189,25 +190,57 @@ - - - -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - --- -1.8.3.1 - diff --git a/SOURCES/netcf-Report-file-path-and-reason-when-aug_save-fails.patch b/SOURCES/netcf-Report-file-path-and-reason-when-aug_save-fails.patch deleted file mode 100644 index 11c6e4d..0000000 --- a/SOURCES/netcf-Report-file-path-and-reason-when-aug_save-fails.patch +++ /dev/null @@ -1,272 +0,0 @@ -From 797bbe64030eb9146ae43fe0a14383bfc9c44a21 Mon Sep 17 00:00:00 2001 -From: Dominic Cleal -Date: Fri, 5 Sep 2014 09:21:18 +0100 -Subject: [PATCH 1/2] Report file path and reason when aug_save fails - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1138196 - -When aug_save fails, the /augeas metadata tree is now searched to find -a possible reason for the failure and an error is raised containing -the file path, Augeas error code (pointing to the action that failed) -and the message if supplied (from strerror). - -A failure to unlink a file now results in a message such as: - - error: unspecified error - error: aug_save failed on /etc/sysconfig/network-scripts/ifcfg-em1: - unlink_orig (Permission denied) - -Multiple failures aren't reported in detail, but will be printed if debug is -enabled. - -(cherry picked from commit 2c14cc1bccbe0282fcc3f99305afcbc309970c5f) ---- - AUTHORS | 1 + - src/drv_debian.c | 21 ++++----------------- - src/drv_redhat.c | 21 ++++----------------- - src/drv_suse.c | 21 ++++----------------- - src/dutil_linux.c | 41 +++++++++++++++++++++++++++++++++++++++++ - src/dutil_linux.h | 3 +++ - 6 files changed, 57 insertions(+), 51 deletions(-) - -diff --git a/AUTHORS b/AUTHORS -index c388e87..f2aeb40 100644 ---- a/AUTHORS -+++ b/AUTHORS -@@ -24,3 +24,4 @@ Contributions by: - Martin Wilck - Jincheng Miao - Jianwei Hu -+ Dominic Cleal -\ No newline at end of file -diff --git a/src/drv_debian.c b/src/drv_debian.c -index 440b233..59f0976 100644 ---- a/src/drv_debian.c -+++ b/src/drv_debian.c -@@ -912,10 +912,6 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - struct netcf_if *result = NULL; - xmlDocPtr ncf_xml = NULL, aug_xml = NULL; - char *name = NULL; -- int r; -- struct augeas *aug = get_augeas(ncf); -- -- ERR_BAIL(ncf); - - ncf_xml = parse_xml(ncf, xml_str); - ERR_BAIL(ncf); -@@ -941,12 +937,8 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - bond_setup(ncf, name, true); - ERR_BAIL(ncf); - -- r = aug_save(aug); -- if (r < 0 && NCF_DEBUG(ncf)) { -- fprintf(stderr, "Errors from aug_save:\n"); -- aug_print(aug, stderr, "/augeas//error"); -- } -- ERR_THROW(r < 0, ncf, EOTHER, "aug_save failed"); -+ aug_save_assert(ncf); -+ ERR_BAIL(ncf); - - result = make_netcf_if(ncf, name); - ERR_BAIL(ncf); -@@ -961,12 +953,7 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - } - - int drv_undefine(struct netcf_if *nif) { -- struct augeas *aug = NULL; - struct netcf *ncf = nif->ncf; -- int r; -- -- aug = get_augeas(ncf); -- ERR_BAIL(ncf); - - bond_setup(ncf, nif->name, false); - ERR_BAIL(ncf); -@@ -974,8 +961,8 @@ int drv_undefine(struct netcf_if *nif) { - rm_interface(ncf, nif->name); - ERR_BAIL(ncf); - -- r = aug_save(aug); -- ERR_COND_BAIL(r < 0, ncf, EOTHER); -+ aug_save_assert(ncf); -+ ERR_BAIL(ncf); - - return 0; - error: -diff --git a/src/drv_redhat.c b/src/drv_redhat.c -index 898601d..d8a2cb1 100644 ---- a/src/drv_redhat.c -+++ b/src/drv_redhat.c -@@ -865,10 +865,6 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - xmlDocPtr ncf_xml = NULL, aug_xml = NULL; - char *name = NULL; - struct netcf_if *result = NULL; -- int r; -- struct augeas *aug = get_augeas(ncf); -- -- ERR_BAIL(ncf); - - ncf_xml = parse_xml(ncf, xml_str); - ERR_BAIL(ncf); -@@ -894,12 +890,8 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - bond_setup(ncf, name, true); - ERR_BAIL(ncf); - -- r = aug_save(aug); -- if (r < 0 && NCF_DEBUG(ncf)) { -- fprintf(stderr, "Errors from aug_save:\n"); -- aug_print(aug, stderr, "/augeas//error"); -- } -- ERR_THROW(r < 0, ncf, EOTHER, "aug_save failed"); -+ aug_save_assert(ncf); -+ ERR_BAIL(ncf); - - result = make_netcf_if(ncf, name); - ERR_BAIL(ncf); -@@ -914,12 +906,7 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - } - - int drv_undefine(struct netcf_if *nif) { -- struct augeas *aug = NULL; - struct netcf *ncf = nif->ncf; -- int r; -- -- aug = get_augeas(ncf); -- ERR_BAIL(ncf); - - bond_setup(ncf, nif->name, false); - ERR_BAIL(ncf); -@@ -927,8 +914,8 @@ int drv_undefine(struct netcf_if *nif) { - rm_interface(ncf, nif->name); - ERR_BAIL(ncf); - -- r = aug_save(aug); -- ERR_COND_BAIL(r < 0, ncf, EOTHER); -+ aug_save_assert(ncf); -+ ERR_BAIL(ncf); - - return 0; - error: -diff --git a/src/drv_suse.c b/src/drv_suse.c -index b677c88..2c127e0 100644 ---- a/src/drv_suse.c -+++ b/src/drv_suse.c -@@ -1007,10 +1007,6 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - xmlDocPtr ncf_xml = NULL, aug_xml = NULL; - char *name = NULL; - struct netcf_if *result = NULL; -- int r; -- struct augeas *aug = get_augeas(ncf); -- -- ERR_BAIL(ncf); - - ncf_xml = parse_xml(ncf, xml_str); - ERR_BAIL(ncf); -@@ -1036,12 +1032,8 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - bond_setup(ncf, name, true); - ERR_BAIL(ncf); - -- r = aug_save(aug); -- if (r < 0 && NCF_DEBUG(ncf)) { -- fprintf(stderr, "Errors from aug_save:\n"); -- aug_print(aug, stderr, "/augeas//error"); -- } -- ERR_THROW(r < 0, ncf, EOTHER, "aug_save failed"); -+ aug_save_assert(ncf); -+ ERR_BAIL(ncf); - - result = make_netcf_if(ncf, name); - ERR_BAIL(ncf); -@@ -1056,12 +1048,7 @@ struct netcf_if *drv_define(struct netcf *ncf, const char *xml_str) { - } - - int drv_undefine(struct netcf_if *nif) { -- struct augeas *aug = NULL; - struct netcf *ncf = nif->ncf; -- int r; -- -- aug = get_augeas(ncf); -- ERR_BAIL(ncf); - - bond_setup(ncf, nif->name, false); - ERR_BAIL(ncf); -@@ -1069,8 +1056,8 @@ int drv_undefine(struct netcf_if *nif) { - rm_interface(ncf, nif->name); - ERR_BAIL(ncf); - -- r = aug_save(aug); -- ERR_COND_BAIL(r < 0, ncf, EOTHER); -+ aug_save_assert(ncf); -+ ERR_BAIL(ncf); - - return 0; - error: -diff --git a/src/dutil_linux.c b/src/dutil_linux.c -index d2bbef4..71160ee 100644 ---- a/src/dutil_linux.c -+++ b/src/dutil_linux.c -@@ -215,6 +215,47 @@ struct augeas *get_augeas(struct netcf *ncf) { - return NULL; - } - -+int aug_save_assert(struct netcf *ncf) -+{ -+ int r = -1; -+ const char *err, *errmsg, *path = "unknown"; -+ struct augeas *aug = get_augeas(ncf); -+ -+ ERR_BAIL(ncf); -+ -+ r = aug_save(aug); -+ if (r >= 0) -+ goto done; -+ -+ if (NCF_DEBUG(ncf)) { -+ fprintf(stderr, "Errors from aug_save:\n"); -+ aug_print(aug, stderr, "/augeas//error"); -+ } -+ -+ if (aug_get(aug, "/augeas//error", &err) == 1) { -+ if (aug_get(aug, "/augeas//error/../path", &path) == 1) { -+ /* strip /files prefix */ -+ if (path != NULL && *path != '\0') -+ path = strchrnul(path + 1, '/'); -+ } -+ if (aug_get(aug, "/augeas//error/message", &errmsg) == 1) { -+ report_error(ncf, NETCF_EOTHER, "aug_save failed on %s: %s (%s)", -+ path, err, errmsg); -+ } else { -+ report_error(ncf, NETCF_EOTHER, "aug_save failed on %s: %s", -+ path, err); -+ } -+ } else if (aug_match(aug, "/augeas//error", NULL) > 1) { -+ report_error(ncf, NETCF_EOTHER, "aug_save failed: multiple failures"); -+ } else { -+ report_error(ncf, NETCF_EOTHER, "aug_save failed: unknown failure"); -+ } -+ -+ error: -+ done: -+ return r; -+} -+ - ATTRIBUTE_FORMAT(printf, 4, 5) - int defnode(struct netcf *ncf, const char *name, const char *value, - const char *format, ...) { -diff --git a/src/dutil_linux.h b/src/dutil_linux.h -index 64fe64f..f63cc5a 100644 ---- a/src/dutil_linux.h -+++ b/src/dutil_linux.h -@@ -69,6 +69,9 @@ int remove_augeas_xfm_table(struct netcf *ncf, - /* Get or create the augeas instance from NCF */ - struct augeas *get_augeas(struct netcf *ncf); - -+/* Save changes in augeas and raise error with message on failure */ -+int aug_save_assert(struct netcf *ncf); -+ - /* Define a node inside the augeas tree */ - ATTRIBUTE_FORMAT(printf, 4, 5) - int defnode(struct netcf *ncf, const char *name, const char *value, --- -1.8.3.1 - diff --git a/SPECS/netcf.spec b/SPECS/netcf.spec index 52a728d..b64ecdd 100644 --- a/SPECS/netcf.spec +++ b/SPECS/netcf.spec @@ -1,6 +1,6 @@ Name: netcf -Version: 0.2.6 -Release: 3%{?dist}%{?extra_release} +Version: 0.2.8 +Release: 1%{?dist}%{?extra_release} Summary: Cross-platform network configuration library Group: System Environment/Libraries @@ -10,11 +10,15 @@ Source0: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # Patches -Patch1: netcf-Report-file-path-and-reason-when-aug_save-fails.patch -Patch2: netcf-Recognize-IPADDR0-PREFIX0-NETMASK0-GATEWAY0-in-redha.patch -Patch3: netcf-Better-messages-on-failure-reading-sys-class-net-dev.patch -Patch4: netcf-Don-t-return-error-if-sys-class-net-dev-operstate-is.patch - +# 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) +# # Default to skipping autoreconf. Distros can change just this one # line (or provide a command-line override) if they backport any @@ -34,11 +38,10 @@ BuildRequires: git %endif %if %{with_systemd} -BuildRequires: systemd-units -Requires(post): systemd-units -Requires(post): systemd-sysv -Requires(preun): systemd-units -Requires(postun): systemd-units +BuildRequires: systemd +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd %endif %if 0%{?enable_autotools} BuildRequires: autoconf @@ -156,13 +159,9 @@ rm -f $PATCHLIST make %{?_smp_mflags} %install -rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT SYSTEMD_UNIT_DIR=%{_unitdir} \ INSTALL="%{__install} -p" -find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' - -%clean -rm -rf $RPM_BUILD_ROOT +find $RPM_BUILD_ROOT -name '*.la' -delete %preun libs @@ -192,12 +191,10 @@ fi %endif %files -%defattr(-,root,root,-) %{_bindir}/ncftool %{_mandir}/man1/ncftool.1* %files libs -%defattr(-,root,root,-) %{_datadir}/netcf %{_libdir}/*.so.* %if %{with_systemd} @@ -209,13 +206,26 @@ fi %doc AUTHORS COPYING NEWS %files devel -%defattr(-,root,root,-) %doc %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/netcf.pc %changelog +* Wed May 20 2015 Laine Stump - 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 0.2.6-3 - resolves rhbz#1185850 - don't treat failure to read /sys/class/net/$def/operstate as an error