[packages/linux-igd] - up to 1.0 - restored and updated install patch - added includes patch (missing libc includes) - ad
qboosh
qboosh at pld-linux.org
Tue Dec 19 18:26:25 CET 2017
commit 4c9d87ecbf7d3251cb883371ac73080fc784fc96
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Tue Dec 19 18:27:47 2017 +0100
- up to 1.0
- restored and updated install patch
- added includes patch (missing libc includes)
- added iptables patch (recent iptables compatibility)
linux-igd-includes.patch | 26 +++++++++++
linux-igd-install.patch | 28 ++++++++++++
linux-igd-iptables.patch | 111 +++++++++++++++++++++++++++++++++++++++++++++++
linux-igd.spec | 26 ++++++++---
4 files changed, 184 insertions(+), 7 deletions(-)
---
diff --git a/linux-igd.spec b/linux-igd.spec
index 78c3bc1..61b0952 100644
--- a/linux-igd.spec
+++ b/linux-igd.spec
@@ -1,15 +1,22 @@
-# TODO: %service?
+# TODO: %%service?
+#
+# Conditional build:
+%bcond_without iptables # iptables/netfilter manipulation support
+
Summary: The Linux UPnP Internet Gateway Device
Summary(pl.UTF-8): Linuksowa implementacja UPnP Internet Gateway Device
Name: linux-igd
-Version: 0.95
+Version: 1.0
Release: 1
-License: GPL
+License: GPL v2
Group: Daemons
-Source0: http://dl.sourceforge.net/linux-igd/linuxigd-%{version}.tar.gz
-# Source0-md5: 0f203a2db5e3fb01496b73e417dbd9a6
-URL: http://linux-igd.sourceforge.net/
+Source0: http://downloads.sourceforge.net/linux-igd/linuxigd-%{version}.tar.gz
+# Source0-md5: 929f5c4878c91d534613b7c7070215d9
Patch0: %{name}-install.patch
+Patch1: %{name}-includes.patch
+Patch2: %{name}-iptables.patch
+URL: http://linux-igd.sourceforge.net/
+%{?with_iptables:BuildRequires: iptables-devel >= 1.6}
BuildRequires: libupnp-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -28,10 +35,14 @@ Messenger, pracować poprawnie zza linuksowego firewalla z NAT-em.
%prep
%setup -q -n linuxigd-%{version}
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
%{__make} \
- OPT="%{rpmcflags}"
+ CC="%{__cc}" \
+ CFLAGS="%{rpmcflags} -Wall" \
+ %{?with_iptables:HAVE_LIBIPTC=1}
%install
rm -rf $RPM_BUILD_ROOT
@@ -51,6 +62,7 @@ fi
%files
%defattr(644,root,root,755)
+%doc CHANGES INSTALL TODO doc/config_options
%dir %{_sysconfdir}/linuxigd
%{_sysconfdir}/linuxigd/*.xml
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/upnpd.conf
diff --git a/linux-igd-includes.patch b/linux-igd-includes.patch
new file mode 100644
index 0000000..7469e8a
--- /dev/null
+++ b/linux-igd-includes.patch
@@ -0,0 +1,26 @@
+--- linuxigd-1.0/gatedevice.c.orig 2007-02-08 00:07:27.000000000 +0100
++++ linuxigd-1.0/gatedevice.c 2017-12-19 17:06:46.347903126 +0100
+@@ -1,4 +1,5 @@
+ #include <syslog.h>
++#include <stdio.h>
+ #include <stdlib.h>
+ #include <upnp/ixml.h>
+ #include <string.h>
+--- linuxigd-1.0/main.c.orig 2006-07-25 22:45:13.000000000 +0200
++++ linuxigd-1.0/main.c 2017-12-19 17:06:11.061236862 +0100
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <syslog.h>
+ #include <signal.h>
+--- linuxigd-1.0/pmlist.c.orig 2006-10-01 17:58:32.000000000 +0200
++++ linuxigd-1.0/pmlist.c 2017-12-19 17:07:26.461235998 +0100
+@@ -1,4 +1,6 @@
++#include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <sys/wait.h>
+ #include <unistd.h>
+ #include <upnp/upnp.h>
diff --git a/linux-igd-install.patch b/linux-igd-install.patch
new file mode 100644
index 0000000..1465d66
--- /dev/null
+++ b/linux-igd-install.patch
@@ -0,0 +1,28 @@
+--- linuxigd-0.95/Makefile 2006-05-23 23:16:36.000000000 +0100
++++ linuxigd-0.95-patch/Makefile 2006-08-14 13:37:42.000000000 +0100
+@@ -33,11 +33,17 @@
+ rm -f *.o upnpd
+
+ install: upnpd
+- install -d /etc/linuxigd
+- install etc/gatedesc.xml /etc/linuxigd
+- install etc/gateconnSCPD.xml /etc/linuxigd
+- install etc/gateicfgSCPD.xml /etc/linuxigd
+- install etc/dummy.xml /etc/linuxigd
+- install upnpd $(PREFIX)/sbin
+- install upnpd.8 $(PREFIX)/share/man/man8
+- if [ ! -f /etc/upnpd.conf ]; then install etc/upnpd.conf /etc; fi
++ install -d $(DESTDIR)/etc/rc.d/init.d/
++ install -d $(DESTDIR)/etc/linuxigd/
++ install -d $(DESTDIR)/etc/sysconfig/
++ install -d $(DESTDIR)/usr/sbin/
++ install -d $(DESTDIR)/usr/share/man/man8/
++ install etc/gatedesc.xml $(DESTDIR)/etc/linuxigd
++ install etc/gateconnSCPD.xml $(DESTDIR)/etc/linuxigd
++ install etc/gateicfgSCPD.xml $(DESTDIR)/etc/linuxigd
++ install etc/dummy.xml $(DESTDIR)/etc/linuxigd
++ install etc/upnpd.conf $(DESTDIR)/etc
++ install upnpd $(DESTDIR)/usr/sbin
++ install upnpd.8 $(DESTDIR)/usr/share/man/man8
++ install -D etc/upnpd.rc $(DESTDIR)/etc/rc.d/init.d/upnpd
++ install -D etc/upnpd.rc.conf $(DESTDIR)/etc/sysconfig/upnpd
diff --git a/linux-igd-iptables.patch b/linux-igd-iptables.patch
new file mode 100644
index 0000000..ba8abe8
--- /dev/null
+++ b/linux-igd-iptables.patch
@@ -0,0 +1,111 @@
+--- linuxigd-1.0/iptc.c.orig 2006-09-11 17:55:48.000000000 +0200
++++ linuxigd-1.0/iptc.c 2017-12-19 18:22:25.891184625 +0100
+@@ -4,9 +4,20 @@
+ #include <errno.h>
+ #include <netdb.h>
+ #include <string.h>
++#ifdef OLDIPT
+ #include <iptables.h>
++#endif
+ #include <libiptc/libiptc.h>
++#ifdef OLDIPT
+ #include <linux/netfilter_ipv4/ip_nat.h>
++#else
++#include <linux/netfilter/nf_nat.h>
++#define IP_NAT_RANGE_MAP_IPS NF_NAT_RANGE_MAP_IPS
++#define IP_NAT_RANGE_PROTO_SPECIFIED NF_NAT_RANGE_PROTO_SPECIFIED
++#define ip_nat_range nf_nat_ipv4_range
++#define ip_nat_multi_range nf_nat_ipv4_multi_range_compat
++#define IPT_ALIGN XT_ALIGN
++#endif
+ #include <arpa/inet.h> /* inet_addr */
+ #include "globals.h"
+ #include "util.h"
+@@ -44,7 +55,7 @@
+ const char *dnat_to,
+ const int append)
+ {
+- iptc_handle_t handle;
++ struct iptc_handle *handle;
+ struct ipt_entry *chain_entry;
+ struct ipt_entry_match *entry_match = NULL;
+ struct ipt_entry_target *entry_target = NULL;
+@@ -111,6 +122,7 @@
+ handle = iptc_init(table);
+ if (!handle) {
+ trace(1, "libiptc error: Can't initialize table %s, %s", table, iptc_strerror(errno));
++ iptc_free(handle);
+ return;
+ }
+
+@@ -118,18 +130,21 @@
+ result = iptc_is_chain(chain, handle);
+ if (!result) {
+ trace(1, "libiptc error: Chain %s does not exist!", chain);
++ iptc_free(handle);
+ return;
+ }
+ if (append)
+- result = iptc_append_entry(labelit, chain_entry, &handle);
++ result = iptc_append_entry(labelit, chain_entry, handle);
+ else
+- result = iptc_insert_entry(labelit, chain_entry, 0, &handle);
++ result = iptc_insert_entry(labelit, chain_entry, 0, handle);
+
+ if (!result) {
+ trace(1, "libiptc error: Can't add, %s", iptc_strerror(errno));
++ iptc_free(handle);
+ return;
+ }
+- result = iptc_commit(&handle);
++ result = iptc_commit(handle);
++ iptc_free(handle);
+ if (!result) {
+ trace(1, "libiptc error: Commit error, %s", iptc_strerror(errno));
+ return;
+@@ -154,7 +169,7 @@
+ const char *target,
+ const char *dnat_to)
+ {
+- iptc_handle_t handle;
++ struct iptc_handle *handle;
+ const struct ipt_entry *e;
+ ipt_chainlabel labelit;
+ int i, result;
+@@ -177,7 +192,7 @@
+ }
+
+ /* check through rules to find match */
+- for (e = iptc_first_rule(chain, &handle), i=0; e; e = iptc_next_rule(e, &handle), i++) {
++ for (e = iptc_first_rule(chain, handle), i=0; e; e = iptc_next_rule(e, handle), i++) {
+ if (s_src != INADDR_NONE && e->ip.src.s_addr != s_src) continue;
+ if (s_dest != INADDR_NONE && e->ip.dst.s_addr != s_dest) continue;
+ if (iniface && strcmp(e->ip.iniface, iniface) != 0) continue;
+@@ -185,7 +200,7 @@
+ if (protocol && strcmp(protocol, "TCP") == 0 && e->ip.proto != IPPROTO_TCP) continue;
+ if (protocol && strcmp(protocol, "UDP") == 0 && e->ip.proto != IPPROTO_UDP) continue;
+ if ((srcports || destports) && IPT_MATCH_ITERATE(e, matchcmp, srcports, destports) == 0) continue;
+- if (target && strcmp(target, iptc_get_target(e, &handle)) != 0) continue;
++ if (target && strcmp(target, iptc_get_target(e, handle)) != 0) continue;
+ if (dnat_to && strcmp(target, "DNAT") == 0) {
+ struct ipt_entry_target *t;
+ struct ip_nat_multi_range *mr;
+@@ -208,13 +223,15 @@
+
+ break;
+ }
+- if (!e) return;
+- result = iptc_delete_num_entry(chain, i, &handle);
++ if (!e) { iptc_free(handle); return; }
++ result = iptc_delete_num_entry(chain, i, handle);
+ if (!result) {
+ trace(1, "libiptc error: Delete error, %s", iptc_strerror(errno));
++ iptc_free(handle);
+ return;
+ }
+- result = iptc_commit(&handle);
++ result = iptc_commit(handle);
++ iptc_free(handle);
+ if (!result) {
+ trace(1, "libiptc error: Commit error, %s", iptc_strerror(errno));
+ return;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/linux-igd.git/commitdiff/4c9d87ecbf7d3251cb883371ac73080fc784fc96
More information about the pld-cvs-commit
mailing list