update ndyndns to 2.1 (#8732)
authorFlorian Fainelli <[email protected]>
Sat, 29 Jan 2011 22:09:11 +0000 (22:09 +0000)
committerFlorian Fainelli <[email protected]>
Sat, 29 Jan 2011 22:09:11 +0000 (22:09 +0000)
SVN-Revision: 25246

net/ndyndns/Makefile
net/ndyndns/files/ndyndns.conf.sample
net/ndyndns/patches/010-dont-add-host-includes.patch
net/ndyndns/patches/020-ndyndns.patch [new file with mode: 0644]
net/ndyndns/patches/ndyndns.patch [deleted file]

index 096e5d269ccc2effd4ff036742a0a420499a5bbc..78e09742f8900c628db379c70d91af5e93af792b 100644 (file)
@@ -1,14 +1,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ndyndns
-PKG_VERSION:=1.12
+PKG_VERSION:=2.1
 PKG_RELEASE:=1
 
-PKG_SOURCE:=ndyndns-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://ndyndns.googlecode.com/files
-PKG_MD5SUM:=1ca356cf366cd617fe3fb5fad9eb961b
+PKG_MD5SUM:=0cdb4dcba5f8c1664f53884b3c2179e9
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
 PKG_FIXUP = libtool
 
 include $(INCLUDE_DIR)/package.mk
@@ -16,14 +15,14 @@ include $(INCLUDE_DIR)/package.mk
 MAKE_FLAGS:=PLATFORM=linux
 
 define Package/ndyndns
-       SECTION:=net
-       CATEGORY:=Network
-       TITLE:=DynDNS.com update daemon
-       URL:=http://ndyndns.googlecode.com/
-       DEPENDS:=+libcurl +libopenssl
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=DynDNS.com update daemon
+  URL:=http://ndyndns.googlecode.com/
+  DEPENDS:=+libcurl +libopenssl
 endef
 
-define Package/ndyndns/description 
+define Package/ndyndns/description
        The ndyndns daemon is an update client for DynDNS.com. It
        checks for an IP address change every two minutes, avoids
        unnecessary updates, reports errors, logs to syslog, and
index 3f1f7f81424134e4e3e6ce51979b81a15da74cec..eedd341e214b55812e86cee5524a606cad11234e 100644 (file)
@@ -1,4 +1,7 @@
-username=user
-password=password
-hostname=hostname.dyndns.org
+[config]
+
+[dyndns]
+username = user
+password = password
+hosts = hostname.dyndns.org
 wildcard
index d24af5305f795c3946ccb60fb04921698ec9cc17..a28dc4ae61a799fc38f0cb9ba626013f113ff38b 100644 (file)
@@ -1,14 +1,24 @@
-diff --git a/configure b/configure
-index 73ac9e1..3d3c187 100755
---- a/configure
-+++ b/configure
-@@ -3520,8 +3520,7 @@ fi
+diff -urN ndyndns-2.1.orig/configure ndyndns-2.1/configure
+--- ndyndns-2.1.orig/configure 2010-07-17 13:22:39.000000000 +0200
++++ ndyndns-2.1/configure      2011-01-26 16:24:15.834445729 +0100
+@@ -3318,7 +3318,7 @@
  fi
  
  
 -CURLINC=-I`curl-config --prefix`/include
--
-+CURLINC=`curl-config --cflags`
++CURLINC=-I`curl-config --cflags`
  CURLLIB=`curl-config --libs`
  
+diff -urN ndyndns-2.1.orig/configure.in ndyndns-2.1/configure.in
+--- ndyndns-2.1.orig/configure.in      2010-07-17 13:22:11.000000000 +0200
++++ ndyndns-2.1/configure.in   2011-01-26 16:24:14.090441650 +0100
+@@ -24,7 +24,7 @@
+ fi
+ AC_SUBST(PLATFORM)
  
+-CURLINC=-I`curl-config --prefix`/include
++CURLINC=-I`curl-config --cflags`
+ AC_SUBST(CURLINC)
+ CURLLIB=`curl-config --libs`
+ AC_SUBST(CURLLIB)
diff --git a/net/ndyndns/patches/020-ndyndns.patch b/net/ndyndns/patches/020-ndyndns.patch
new file mode 100644 (file)
index 0000000..00f3f57
--- /dev/null
@@ -0,0 +1,211 @@
+diff -urN ndyndns-2.1.orig/cfg.c ndyndns-2.1/cfg.c
+--- ndyndns-2.1.orig/cfg.c     2011-01-26 17:02:05.762443700 +0100
++++ ndyndns-2.1/cfg.c  2011-01-26 17:03:43.334443683 +0100
+@@ -804,34 +804,6 @@
+             continue;
+         }
+-        tmp = parse_line_string(point, "user");
+-        if (tmp) {
+-            switch (prs) {
+-                default:
+-                    parse_warn(lnum, "user");
+-                    break;
+-                case PRS_CONFIG:
+-                    cfg_set_user(tmp);
+-                    break;
+-            }
+-            free(tmp);
+-            continue;
+-        }
+-
+-        tmp = parse_line_string(point, "group");
+-        if (tmp) {
+-            switch (prs) {
+-                default:
+-                    parse_warn(lnum, "group");
+-                    break;
+-                case PRS_CONFIG:
+-                    cfg_set_group(tmp);
+-                    break;
+-            }
+-            free(tmp);
+-            continue;
+-        }
+-
+         tmp = parse_line_string(point, "interface");
+         if (tmp) {
+             switch (prs) {
+diff -urN ndyndns-2.1.orig/chroot.c ndyndns-2.1/chroot.c
+--- ndyndns-2.1.orig/chroot.c  2011-01-26 17:02:05.762443700 +0100
++++ ndyndns-2.1/chroot.c       2011-01-26 17:03:54.470442525 +0100
+@@ -19,8 +19,6 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <pwd.h>
+-#include <grp.h>
+ #include "defines.h"
+ #include "log.h"
+@@ -82,32 +80,3 @@
+         }
+     }
+ }
+-
+-void drop_root(uid_t uid, gid_t gid)
+-{
+-    if (uid == 0 || gid == 0) {
+-        log_line("FATAL - drop_root: attempt to drop root to root?\n");
+-        exit(EXIT_FAILURE);
+-    }
+-
+-    if (getgid() == 0) {
+-        if (setregid(gid, gid) == -1) {
+-            log_line("FATAL - drop_root: failed to drop real gid == root!\n");
+-            exit(EXIT_FAILURE);
+-        }
+-    }
+-
+-    if (getuid() == 0) {
+-        if (setreuid(uid, uid) == -1) {
+-            log_line("FATAL - drop_root: failed to drop real uid == root!\n");
+-            exit(EXIT_FAILURE);
+-        }
+-    }
+-
+-    /* be absolutely sure */
+-    if (getgid() == 0 || getuid() == 0) {
+-        log_line("FATAL - drop_root: tried to drop root, but still have root!\n");
+-        exit(EXIT_FAILURE);
+-    }
+-}
+-
+diff -urN ndyndns-2.1.orig/Makefile.in ndyndns-2.1/Makefile.in
+--- ndyndns-2.1.orig/Makefile.in       2011-01-26 17:02:05.766443748 +0100
++++ ndyndns-2.1/Makefile.in    2011-01-26 17:03:43.338443633 +0100
+@@ -1,11 +1,9 @@
+ #CC = gcc -Wall -Wpointer-arith -Wstrict-prototypes -pedantic
+ CC = @CC@
+-dnslib = -lnss_dns
+ objects = log.o nstrl.o util.o chroot.o pidfile.o signals.o strlist.o checkip.o $(PLATFORM).o cfg.o ndyndns.o
+-CURLINC = @CURLINC@
+ CURLLIB = @CURLLIB@
+ VERSION = @VERSION@
+-CFLAGS = @CFLAGS@ -Wall -Wextra -pedantic $(CURLINC)
++CFLAGS += -Wall -Wpointer-arith -Wstrict-prototypes -pedantic
+ PLATFORM = @PLATFORM@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+@@ -16,7 +14,7 @@
+ all: ndyndns
+ ndyndns : $(objects)
+-      $(CC) $(LDFLAGS) $(dnslib) $(CURLLIB) -o ndyndns $(objects)
++      $(CC) $(LDFLAGS) $(CURLLIB) -o ndyndns $(objects)
+ ndyndns.o : log.h nstrl.h util.h chroot.h pidfile.h signals.h strlist.h checkip.h $(PLATFORM).h cfg.h
+       $(CC) $(CFLAGS) -c -o $@ ndyndns.c
+diff -urN ndyndns-2.1.orig/ndyndns.c ndyndns-2.1/ndyndns.c
+--- ndyndns-2.1.orig/ndyndns.c 2011-01-26 17:02:05.766443748 +0100
++++ ndyndns-2.1/ndyndns.c      2011-01-26 17:04:15.526443092 +0100
+@@ -32,8 +32,6 @@
+ #include <net/if.h>
+ #include <ctype.h>
+ #include <time.h>
+-#include <pwd.h>
+-#include <grp.h>
+ #include <signal.h>
+ #include <errno.h>
+@@ -897,40 +895,6 @@
+     strlcpy(pidfile, pidfname, sizeof pidfile);
+ }
+-void cfg_set_user(char *username)
+-{
+-    int t;
+-    char *p;
+-    struct passwd *pws;
+-
+-    t = (unsigned int) strtol(username, &p, 10);
+-    if (*p != '\0') {
+-        pws = getpwnam(username);
+-        if (pws) {
+-            cfg_uid = (int)pws->pw_uid;
+-            if (!cfg_gid)
+-                cfg_gid = (int)pws->pw_gid;
+-        } else suicide("FATAL - Invalid uid specified.\n");
+-    } else
+-        cfg_uid = t;
+-}
+-
+-void cfg_set_group(char *groupname)
+-{
+-    int t;
+-    char *p;
+-    struct group *grp;
+-
+-    t = (unsigned int) strtol(groupname, &p, 10);
+-    if (*p != '\0') {
+-        grp = getgrnam(groupname);
+-        if (grp) {
+-            cfg_gid = (int)grp->gr_gid;
+-        } else suicide("FATAL - Invalid gid specified.\n");
+-    } else
+-        cfg_gid = t;
+-}
+-
+ void cfg_set_interface(char *interface)
+ {
+     strlcpy(ifname, interface, sizeof ifname);
+@@ -954,8 +918,6 @@
+             {"disable-chroot", 0, 0, 'x'},
+             {"file", 1, 0, 'f'},
+             {"cfg-stdin", 0, 0, 'F'},
+-            {"user", 1, 0, 'u'},
+-            {"group", 1, 0, 'g'},
+             {"interface", 1, 0, 'i'},
+             {"remote", 0, 0, 'r'},
+             {"help", 0, 0, 'h'},
+@@ -963,7 +925,7 @@
+             {0, 0, 0, 0}
+         };
+-        c = getopt_long(argc, argv, "rdnp:qc:xf:Fu:g:i:hv", long_options, &option_index);
++        c = getopt_long(argc, argv, "rdnp:qc:xf:i:hv", long_options, &option_index);
+         if (c == -1) break;
+         switch (c) {
+@@ -983,8 +945,6 @@
+                     "  -F, --cfg-stdin             read configuration file from standard input\n"
+                     "  -p, --pidfile               pidfile path\n");
+                 printf(
+-                    "  -u, --user                  user name that ndyndns should run as\n"
+-                    "  -g, --group                 group name that ndyndns should run as\n"
+                     "  -i, --interface             interface ip to check (default: ppp0)\n"
+                     "  -r, --remote                get ip from remote dyndns host (overrides -i)\n"
+                     "  -h, --help                  print this help and exit\n"
+@@ -1060,14 +1020,6 @@
+                 cfg_set_pidfile(optarg);
+                 break;
+-            case 'u':
+-                cfg_set_user(optarg);
+-                break;
+-
+-            case 'g':
+-                cfg_set_group(optarg);
+-                break;
+-
+             case 'i':
+                 cfg_set_interface(optarg);
+                 break;
+@@ -1095,7 +1047,6 @@
+     /* Note that failure cases are handled by called fns. */
+     imprison(get_chroot());
+-    drop_root(cfg_uid, cfg_gid);
+     /* Cover our tracks... */
+     wipe_chroot();
diff --git a/net/ndyndns/patches/ndyndns.patch b/net/ndyndns/patches/ndyndns.patch
deleted file mode 100644 (file)
index 8e084cd..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-diff -Naur old/Makefile.in new/Makefile.in
---- old/Makefile.in    2007-09-13 10:56:00.000000000 -0700
-+++ new/Makefile.in    2008-02-03 04:07:13.000000000 -0800
-@@ -1,11 +1,9 @@
- #CC = gcc -Wall -Wpointer-arith -Wstrict-prototypes -pedantic
- CC = @CC@
--dnslib = -lnss_dns
- objects = log.o nstrl.o util.o chroot.o pidfile.o signals.o strlist.o checkip.o $(PLATFORM).o cfg.o ndyndns.o
--CURLINC = @CURLINC@
- CURLLIB = @CURLLIB@
- VERSION = @VERSION@
--CFLAGS = @CFLAGS@ -Wall -Wpointer-arith -Wstrict-prototypes -pedantic $(CURLINC)
-+CFLAGS += -Wall -Wpointer-arith -Wstrict-prototypes -pedantic
- PLATFORM = @PLATFORM@
- prefix = @prefix@
- exec_prefix = @exec_prefix@
-@@ -16,7 +14,7 @@
- all: ndyndns
- ndyndns : $(objects)
--      $(CC) $(LDFLAGS) $(dnslib) $(CURLLIB) -o ndyndns $(objects)
-+      $(CC) $(LDFLAGS) $(CURLLIB) -o ndyndns $(objects)
- ndyndns.o : log.h nstrl.h util.h chroot.h pidfile.h signals.h strlist.h checkip.h $(PLATFORM).h cfg.h
-       $(CC) $(CFLAGS) -c -o $@ ndyndns.c
-diff -Naur old/chroot.c new/chroot.c
---- old/chroot.c       2007-03-13 15:54:12.000000000 -0700
-+++ new/chroot.c       2008-02-03 04:10:21.000000000 -0800
-@@ -18,8 +18,6 @@
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
--#include <pwd.h>
--#include <grp.h>
- #include "defines.h"
- #include "log.h"
-@@ -60,24 +58,4 @@
-               log_line("Failed to chdir(%s).  Not invoking job.", path);
-               exit(EXIT_FAILURE);
-       }
--
--      ret = chroot(path);
--      if (ret) {
--              log_line("Failed to chroot(%s).  Not invoking job.", path);
--              exit(EXIT_FAILURE);
--      }
- }
--
--void drop_root(uid_t uid, gid_t gid)
--{
--    if (uid == 0 || gid == 0) {
--        log_line("FATAL - drop_root: attempt to drop root to root?\n");
--        exit(EXIT_FAILURE);
--    }
--
--    if (setregid(gid, gid) == -1 || setreuid(uid, uid) == -1) {
--        log_line("FATAL - drop_root: failed to drop root!\n");
--        exit(EXIT_FAILURE);
--    }
--}
--
-diff -Naur old/ndyndns.c new/ndyndns.c
---- old/ndyndns.c      2007-09-19 00:04:13.000000000 -0700
-+++ new/ndyndns.c      2008-02-03 04:10:21.000000000 -0800
-@@ -32,8 +32,6 @@
- #include <net/if.h>
- #include <ctype.h>
- #include <time.h>
--#include <pwd.h>
--#include <grp.h>
- #include <signal.h>
- #include <errno.h>
-@@ -728,12 +726,9 @@
- }
- int main(int argc, char** argv) {
--  int c, t, uid = 0, gid = 0;
-+  int c, t;
-   char pidfile[MAX_PATH_LENGTH] = PID_FILE_DEFAULT;
-   char conffile[MAX_PATH_LENGTH] = CONF_FILE_DEFAULT;
--  char *p;
--  struct passwd *pws;
--  struct group *grp;
-   while (1) {
-@@ -745,8 +740,6 @@
-       {"quiet", 0, 0, 'q'},
-       {"chroot", 1, 0, 'c'},
-       {"file", 1, 0, 'f'},
--      {"user", 1, 0, 'u'},
--      {"group", 1, 0, 'g'},
-       {"interface", 1, 0, 'i'},
-       {"remote", 0, 0, 'r'},
-       {"help", 0, 0, 'h'},
-@@ -754,7 +747,7 @@
-       {0, 0, 0, 0}
-     };
--    c = getopt_long (argc, argv, "rdnp:qc:f:u:g:i:hv", long_options, &option_index);
-+    c = getopt_long (argc, argv, "rdnp:qc:f:i:hv", long_options, &option_index);
-     if (c == -1) break;
-     switch (c) {
-@@ -771,8 +764,6 @@
- "  -f, --file                  configuration file\n"
- "  -p, --pidfile               pidfile path\n");
-             printf(
--"  -u, --user                  user name that ndyndns should run as\n"
--"  -g, --group                 group name that ndyndns should run as\n"
- "  -i, --interface             interface ip to check (default: ppp0)\n"
- "  -r, --remote                get ip from remote dyndns host (overrides -i)\n"
- "  -h, --help                  print this help and exit\n"
-@@ -817,39 +808,12 @@
-             strlcpy(pidfile, optarg, sizeof pidfile);
-             break;
--        case 'u':
--            t = (unsigned int) strtol(optarg, &p, 10);
--            if (*p != '\0') {
--                pws = getpwnam(optarg);
--                if (pws) {
--                    uid = (int)pws->pw_uid;
--                    if (!gid)
--                        gid = (int)pws->pw_gid;
--                } else suicide("FATAL - Invalid uid specified.\n");
--            } else
--                uid = t;
--            break;
--
--        case 'g':
--            t = (unsigned int) strtol(optarg, &p, 10);
--            if (*p != '\0') {
--                grp = getgrnam(optarg);
--                if (grp) {
--                    gid = (int)grp->gr_gid;
--                } else suicide("FATAL - Invalid gid specified.\n");
--            } else
--                gid = t;
--            break;
--
-       case 'i':
-               strlcpy(ifname, optarg, sizeof ifname);
-               break;
-     }
-   }
--  if (getuid())
--      suicide("FATAL - I need root for chroot!\n");
--
-   if (gflags_detach)
-       if (daemon(0,0))
-               suicide("FATAL - detaching fork failed\n");
-@@ -870,7 +834,6 @@
-   /* Note that failure cases are handled by called fns. */
-   imprison(get_chroot());
--  drop_root(uid, gid);
-   /* Cover our tracks... */
-   wipe_chroot();