]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
ppp: Update to include bug fixes that should be in 2.5.1 but not yet released
authorAdolf Belka <adolf.belka@ipfire.org>
Fri, 15 Mar 2024 12:38:06 +0000 (13:38 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 19 Mar 2024 11:09:15 +0000 (11:09 +0000)
- Update from version 2.5.0 to commit e1266c7
- Update of rootfile
- When ppp-2.5.0 was released it had a bug bin it that the lock and run directories
   had non standard defaults but also that if the directory did not exist ppp just
   ignored it and continued to start but would then have error messages in the logs about
   not being able to cretae the lock file
- This issue was raised in the ppp github issues and a set of patches merged into ppp.
- The plan was written in Nov 2023 that this would be released as 2.5.1, however nearly
   three months later there is no sight of 2.5.1 being released and people continue to
   flag up the lock directory issues and have to apply a workaround to create the directory
   in local.rc
- This patch has taken the zip source tarball of master at the commit e1266c7. The zip
   tarball was then extracted and then tar'd back up as a tar.gz file with the version set
   at e1266c7 rather than master. I could not find any other way to get a source tarball\
   created at a certain commit stage.
- The patch ppp-2.5.0-2-everywhere-O_CLOEXEC-harder.patch had to be updated due to some
   changes in the source files.
- The patch ppp-2.5.0-7-add-configure-check-to-see-if-we-have-struct-sockaddr_ll.patch
   was removed as the changes are now built into the source tarball.
- This will need to be tested thoroughly by people with ppp to confirm that the lock
   directory is created if it doesn't exist on the system. I can't test that as I have
   no access to a ppp connection system.
- For a view of the changelog between 2.5.0 and e1266c7 the github commits list needs to
   be reviewed. https://github.com/ppp-project/ppp/commits/master/?before=e1266c76d1ad39f98f11676e34f180f78c5a510c+35

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/rootfiles/common/ppp
lfs/ppp
src/patches/ppp/ppp-2.5.0-7-add-configure-check-to-see-if-we-have-struct-sockaddr_ll.patch [deleted file]
src/patches/ppp/ppp-e1266c7-2-everywhere-O_CLOEXEC-harder.patch [moved from src/patches/ppp/ppp-2.5.0-2-everywhere-O_CLOEXEC-harder.patch with 75% similarity]

index 379c64af44fb9a1a471b09c39c8f5eea3fe51754..6a27af3e74c7831f01cd7cc38533dd592e2d98d2 100644 (file)
@@ -35,29 +35,29 @@ etc/ppp/standardloginscript
 #usr/include/pppd/upap.h
 #usr/lib/pkgconfig/pppd.pc
 usr/lib/pppd
-usr/lib/pppd/2.5.0
-#usr/lib/pppd/2.5.0/minconn.la
-usr/lib/pppd/2.5.0/minconn.so
-#usr/lib/pppd/2.5.0/openl2tp.la
-usr/lib/pppd/2.5.0/openl2tp.so
-#usr/lib/pppd/2.5.0/passprompt.la
-usr/lib/pppd/2.5.0/passprompt.so
-#usr/lib/pppd/2.5.0/passwordfd.la
-usr/lib/pppd/2.5.0/passwordfd.so
-#usr/lib/pppd/2.5.0/pppoatm.la
-usr/lib/pppd/2.5.0/pppoatm.so
-#usr/lib/pppd/2.5.0/pppoe.la
-usr/lib/pppd/2.5.0/pppoe.so
-#usr/lib/pppd/2.5.0/pppol2tp.la
-usr/lib/pppd/2.5.0/pppol2tp.so
-#usr/lib/pppd/2.5.0/radattr.la
-usr/lib/pppd/2.5.0/radattr.so
-#usr/lib/pppd/2.5.0/radius.la
-usr/lib/pppd/2.5.0/radius.so
-#usr/lib/pppd/2.5.0/radrealms.la
-usr/lib/pppd/2.5.0/radrealms.so
-#usr/lib/pppd/2.5.0/winbind.la
-usr/lib/pppd/2.5.0/winbind.so
+#usr/lib/pppd/2.5.1-dev
+#usr/lib/pppd/2.5.1-dev/minconn.la
+usr/lib/pppd/2.5.1-dev/minconn.so
+#usr/lib/pppd/2.5.1-dev/openl2tp.la
+usr/lib/pppd/2.5.1-dev/openl2tp.so
+#usr/lib/pppd/2.5.1-dev/passprompt.la
+usr/lib/pppd/2.5.1-dev/passprompt.so
+#usr/lib/pppd/2.5.1-dev/passwordfd.la
+usr/lib/pppd/2.5.1-dev/passwordfd.so
+#usr/lib/pppd/2.5.1-dev/pppoatm.la
+usr/lib/pppd/2.5.1-dev/pppoatm.so
+#usr/lib/pppd/2.5.1-dev/pppoe.la
+usr/lib/pppd/2.5.1-dev/pppoe.so
+#usr/lib/pppd/2.5.1-dev/pppol2tp.la
+usr/lib/pppd/2.5.1-dev/pppol2tp.so
+#usr/lib/pppd/2.5.1-dev/radattr.la
+usr/lib/pppd/2.5.1-dev/radattr.so
+#usr/lib/pppd/2.5.1-dev/radius.la
+usr/lib/pppd/2.5.1-dev/radius.so
+#usr/lib/pppd/2.5.1-dev/radrealms.la
+usr/lib/pppd/2.5.1-dev/radrealms.so
+#usr/lib/pppd/2.5.1-dev/winbind.la
+usr/lib/pppd/2.5.1-dev/winbind.so
 usr/sbin/chat
 usr/sbin/pppd
 usr/sbin/pppdump
diff --git a/lfs/ppp b/lfs/ppp
index 54aa1caf52fae89466e562d54adb98982982e182..a16859002f1395ffaeffb7609ffaacf40e54374d 100644 (file)
--- a/lfs/ppp
+++ b/lfs/ppp
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2023  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.5.0
+VER        = e1266c7
 
 THISAPP    = ppp-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -42,7 +42,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 6a0e9efcbff3cb499705071cc7d0e3411cf4871fd53b2bfedbb1f2cf3ad80728eb436050cf33b78e36d473be64f15907a21da17f283337455f0af379bc18272d
+$(DL_FILE)_BLAKE2 = be60fadeed632ae2511e2d60148905da9868bd4271139b4fecab6b4b93e4a403e645d84204f907a8661748fb1a18b59c893925d91565520b9af791a45b0aaf4f
 
 install : $(TARGET)
 
@@ -72,13 +72,13 @@ $(subst %,%_BLAKE2,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./autogen.sh
        cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.0-1-we-don-t-want-to-accidentally-leak-fds.patch
-       cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.0-2-everywhere-O_CLOEXEC-harder.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ppp/ppp-e1266c7-2-everywhere-O_CLOEXEC-harder.patch
        cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.0-3-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch
        cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.0-4-increase-max-padi-attempts.patch
        cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.0-5-headers_4.9.patch
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.0-6-patch-configure-to-handle-cflags-properly.patch
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.0-7-add-configure-check-to-see-if-we-have-struct-sockaddr_ll.patch
        cd $(DIR_APP) && ./configure \
                                        --prefix=/usr \
                                        --sysconfdir=/etc \
diff --git a/src/patches/ppp/ppp-2.5.0-7-add-configure-check-to-see-if-we-have-struct-sockaddr_ll.patch b/src/patches/ppp/ppp-2.5.0-7-add-configure-check-to-see-if-we-have-struct-sockaddr_ll.patch
deleted file mode 100644 (file)
index a7823d4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 9d6d326b2530cffb1414e4c401675117c42d43ce Mon Sep 17 00:00:00 2001
-From: Eivind Naess <eivnaes@yahoo.com>
-Date: Sun, 23 Apr 2023 11:30:43 -0700
-Subject: [PATCH] Add configure check to see if we have struct sockaddr_ll
-
-Fixes issue #411.
-
-Signed-off-by: Eivind Naess <eivnaes@yahoo.com>
----
- configure.ac                   | 3 ++-
- pppd/plugins/pppoe/config.h.in | 2 ++
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1180f64ec..38b24af92 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -75,7 +75,8 @@ AM_COND_IF([LINUX], [
-         linux/if_ether.h        \
-         linux/if_packet.h       \
-         netinet/if_ether.h      \
--        netpacket/packet.h])])
-+        netpacket/packet.h])
-+    AC_CHECK_TYPES([struct sockaddr_ll], [], [], [#include <linux/if_packet.h>])])
- AC_CHECK_SIZEOF(unsigned int)
- AC_CHECK_SIZEOF(unsigned long)
-diff --git a/pppd/plugins/pppoe/config.h.in b/pppd/plugins/pppoe/config.h.in
-index d447f5e89..d7d61c01c 100644
---- a/pppd/plugins/pppoe/config.h.in
-+++ b/pppd/plugins/pppoe/config.h.in
-@@ -69,3 +69,5 @@
- /* The size of `unsigned short', as computed by sizeof. */
- #undef SIZEOF_UNSIGNED_SHORT
-+/* Define to 1 if the system has the type `struct sockaddr_ll'. */
-+#undef HAVE_STRUCT_SOCKADDR_LL
similarity index 75%
rename from src/patches/ppp/ppp-2.5.0-2-everywhere-O_CLOEXEC-harder.patch
rename to src/patches/ppp/ppp-e1266c7-2-everywhere-O_CLOEXEC-harder.patch
index c205c0e08c480bb81c58185fd39048286c2625c1..b6fd842a7f1691f284148ba3dc7621f1b73a54aa 100644 (file)
@@ -1,6 +1,6 @@
-diff -Naur pppd.orig/eap.c pppd/eap.c
---- pppd.orig/eap.c    2023-03-25 05:38:30.000000000 +0100
-+++ pppd/eap.c 2023-06-30 12:58:07.984676045 +0200
+diff -Naur ppp-e1266c7-orig/pppd/eap.c ppp-e1266c7/pppd/eap.c
+--- ppp-e1266c7-orig/pppd/eap.c        2024-02-13 10:40:56.000000000 +0100
++++ ppp-e1266c7/pppd/eap.c     2024-03-15 10:40:53.637190252 +0100
 @@ -1542,7 +1542,7 @@
  
        if ((path = name_of_pn_file()) == NULL)
@@ -10,10 +10,10 @@ diff -Naur pppd.orig/eap.c pppd/eap.c
        err = errno;
        free(path);
        errno = err;
-diff -Naur pppd.orig/main.c pppd/main.c
---- pppd.orig/main.c   2023-03-25 05:38:30.000000000 +0100
-+++ pppd/main.c        2023-06-30 13:00:15.155195676 +0200
-@@ -479,7 +479,7 @@
+diff -Naur ppp-e1266c7-orig/pppd/main.c ppp-e1266c7/pppd/main.c
+--- ppp-e1266c7-orig/pppd/main.c       2024-02-13 10:40:56.000000000 +0100
++++ ppp-e1266c7/pppd/main.c    2024-03-15 10:41:43.842037617 +0100
+@@ -480,7 +480,7 @@
        die(0);
  
      /* Make sure fds 0, 1, 2 are open to somewhere. */
@@ -22,10 +22,10 @@ diff -Naur pppd.orig/main.c pppd/main.c
      if (fd_devnull < 0)
        fatal("Couldn't open %s: %m", PPP_DEVNULL);
      while (fd_devnull <= 2) {
-diff -Naur pppd.orig/options.c pppd/options.c
---- pppd.orig/options.c        2023-06-30 12:42:19.262593140 +0200
-+++ pppd/options.c     2023-06-30 13:01:58.388323345 +0200
-@@ -1718,9 +1718,9 @@
+diff -Naur ppp-e1266c7-orig/pppd/options.c ppp-e1266c7/pppd/options.c
+--- ppp-e1266c7-orig/pppd/options.c    2024-02-13 10:40:56.000000000 +0100
++++ ppp-e1266c7/pppd/options.c 2024-03-15 10:43:02.867753370 +0100
+@@ -1719,9 +1719,9 @@
        ppp_option_error("unable to drop permissions to open %s: %m", *argv);
        return 0;
      }
@@ -37,10 +37,10 @@ diff -Naur pppd.orig/options.c pppd/options.c
      err = errno;
      if (!privileged_option && seteuid(euid) == -1)
        fatal("unable to regain privileges: %m");
-diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
---- pppd.orig/sys-linux.c      2023-06-30 12:43:20.634453475 +0200
-+++ pppd/sys-linux.c   2023-06-30 13:11:25.715511251 +0200
-@@ -666,7 +666,7 @@
+diff -Naur ppp-e1266c7-orig/pppd/sys-linux.c ppp-e1266c7/pppd/sys-linux.c
+--- ppp-e1266c7-orig/pppd/sys-linux.c  2024-02-13 10:40:56.000000000 +0100
++++ ppp-e1266c7/pppd/sys-linux.c       2024-03-15 10:49:59.310297165 +0100
+@@ -656,7 +656,7 @@
            goto err;
        }
        dbglog("using channel %d", chindex);
@@ -49,7 +49,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
        if (fd < 0) {
            error("Couldn't reopen /dev/ppp: %m");
            goto err;
-@@ -904,7 +904,7 @@
+@@ -894,7 +894,7 @@
                dbglog("in make_ppp_unit, already had /dev/ppp open?");
                close(ppp_dev_fd);
        }
@@ -58,7 +58,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
        if (ppp_dev_fd < 0)
                fatal("Couldn't open /dev/ppp: %m");
        flags = fcntl(ppp_dev_fd, F_GETFL);
-@@ -1025,7 +1025,7 @@
+@@ -1015,7 +1015,7 @@
        if (!new_style_driver)
                return -1;
  
@@ -67,7 +67,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
        if (master_fd < 0)
                fatal("Couldn't open /dev/ppp: %m");
        if (ioctl(master_fd, PPPIOCATTACH, &ifnum) < 0) {
-@@ -2533,7 +2533,7 @@
+@@ -2541,7 +2541,7 @@
        if (tune_kernel) {
            forw_path = path_to_procfs("/sys/net/ipv4/ip_forward");
            if (forw_path != 0) {
@@ -76,7 +76,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
                if (fd >= 0) {
                    if (write(fd, "1", 1) != 1)
                        error("Couldn't enable IP forwarding: %m");
-@@ -2878,7 +2878,7 @@
+@@ -2886,7 +2886,7 @@
      sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
      kernel_version = KVERSION(osmaj, osmin, ospatch);
  
@@ -85,7 +85,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
      if (fd >= 0) {
        new_style_driver = 1;
  
-@@ -3056,7 +3056,7 @@
+@@ -3064,7 +3064,7 @@
  #if __GLIBC__ >= 2
      updwtmp(_PATH_WTMP, &ut);
  #else
@@ -94,7 +94,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
      if (wtmp >= 0) {
        flock(wtmp, LOCK_EX);
  
-@@ -3280,7 +3280,7 @@
+@@ -3288,7 +3288,7 @@
        int fd;
  
        path = path_to_procfs("/sys/net/ipv4/ip_dynaddr");
@@ -103,7 +103,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
            if (write(fd, "1", 1) != 1)
                error("Couldn't enable dynamic IP addressing: %m");
            close(fd);
-@@ -3534,7 +3534,7 @@
+@@ -3542,7 +3542,7 @@
      /*
       * Try the unix98 way first.
       */
@@ -112,7 +112,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
      if (mfd >= 0) {
        int ptn;
        if (ioctl(mfd, TIOCGPTN, &ptn) >= 0) {
-@@ -3545,7 +3545,8 @@
+@@ -3553,7 +3553,8 @@
            if (ioctl(mfd, TIOCSPTLCK, &ptn) < 0)
                warn("Couldn't unlock pty slave %s: %m", pty_name);
  #endif
@@ -122,7 +122,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
            {
                warn("Couldn't open pty slave %s: %m", pty_name);
                close(mfd);
-@@ -3559,10 +3560,10 @@
+@@ -3567,10 +3568,10 @@
        for (i = 0; i < 64; ++i) {
            slprintf(pty_name, sizeof(pty_name), "/dev/pty%c%x",
                     'p' + i / 16, i % 16);
@@ -135,19 +135,19 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
                if (sfd >= 0) {
                    ret = fchown(sfd, uid, -1);
                    if (ret != 0) {
-diff -Naur pppd.orig/tdb.c pppd/tdb.c
---- pppd.orig/tdb.c    2021-07-23 06:41:07.000000000 +0200
-+++ pppd/tdb.c 2023-06-30 13:12:55.034900600 +0200
-@@ -1728,7 +1728,7 @@
-               goto internal;
+diff -Naur ppp-e1266c7-orig/pppd/tdb.c ppp-e1266c7/pppd/tdb.c
+--- ppp-e1266c7-orig/pppd/tdb.c        2024-02-13 10:40:56.000000000 +0100
++++ ppp-e1266c7/pppd/tdb.c     2024-03-15 10:51:25.182882191 +0100
+@@ -1732,7 +1732,7 @@
        }
  
+ again:
 -      if ((tdb->fd = open(name, open_flags, mode)) == -1) {
 +      if ((tdb->fd = open(name, open_flags | O_CLOEXEC, mode)) == -1) {
-               TDB_LOG((tdb, 5, "tdb_open_ex: could not open file %s: %s\n",
-                        name, strerror(errno)));
-               goto fail;      /* errno set by open(2) */
-@@ -1971,7 +1971,7 @@
+               if ((open_flags & O_CREAT) && errno == ENOENT &&
+                       mkdir_recursive(PPP_PATH_VARRUN) == 0)
+                       goto again;
+@@ -1979,7 +1979,7 @@
        }
        if (close(tdb->fd) != 0)
                TDB_LOG((tdb, 0, "tdb_reopen: WARNING closing tdb->fd failed!\n"));
@@ -156,9 +156,9 @@ diff -Naur pppd.orig/tdb.c pppd/tdb.c
        if (tdb->fd == -1) {
                TDB_LOG((tdb, 0, "tdb_reopen: open failed (%s)\n", strerror(errno)));
                goto fail;
-diff -Naur pppd.orig/tty.c pppd/tty.c
---- pppd.orig/tty.c    2023-03-25 05:38:30.000000000 +0100
-+++ pppd/tty.c 2023-06-30 13:14:06.450418113 +0200
+diff -Naur ppp-e1266c7-orig/pppd/tty.c ppp-e1266c7/pppd/tty.c
+--- ppp-e1266c7-orig/pppd/tty.c        2024-02-13 10:40:56.000000000 +0100
++++ ppp-e1266c7/pppd/tty.c     2024-03-15 10:52:35.828341901 +0100
 @@ -621,7 +621,7 @@
                                ppp_set_status(EXIT_OPEN_FAILED);
                                goto errret;
@@ -177,10 +177,10 @@ diff -Naur pppd.orig/tty.c pppd/tty.c
                                break;
                        if (errno != EINTR) {
                                error("Failed to reopen %s: %m", devnam);
-diff -Naur pppd.orig/utils.c pppd/utils.c
---- pppd.orig/utils.c  2022-12-30 02:12:39.000000000 +0100
-+++ pppd/utils.c       2023-06-30 13:15:47.860182369 +0200
-@@ -843,14 +843,14 @@
+diff -Naur ppp-e1266c7-orig/pppd/utils.c ppp-e1266c7/pppd/utils.c
+--- ppp-e1266c7-orig/pppd/utils.c      2024-02-13 10:40:56.000000000 +0100
++++ ppp-e1266c7/pppd/utils.c   2024-03-15 10:55:27.176832115 +0100
+@@ -926,14 +926,14 @@
      slprintf(lock_file, sizeof(lock_file), "%s/LCK..%s", PPP_PATH_LOCKDIR, dev);
  #endif
  
@@ -197,7 +197,7 @@ diff -Naur pppd.orig/utils.c pppd/utils.c
        if (fd < 0) {
            if (errno == ENOENT) /* This is just a timing problem. */
                continue;
-@@ -933,7 +933,7 @@
+@@ -1016,7 +1016,7 @@
  
      if (lock_file[0] == 0)
        return -1;