* [PATCH] ppp: Update to include bug fixes that should be in 2.5.1 but not yet released
@ 2024-03-15 12:38 Adolf Belka
0 siblings, 0 replies; only message in thread
From: Adolf Belka @ 2024-03-15 12:38 UTC (permalink / raw)
To: development
[-- Attachment #1: Type: text/plain, Size: 16881 bytes --]
- 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(a)ipfire.org>
---
config/rootfiles/common/ppp | 46 +++++------
lfs/ppp | 10 +--
...to-see-if-we-have-struct-sockaddr_ll.patch | 37 ---------
...266c7-2-everywhere-O_CLOEXEC-harder.patch} | 82 +++++++++----------
4 files changed, 69 insertions(+), 106 deletions(-)
delete mode 100644 src/patches/ppp/ppp-2.5.0-7-add-configure-check-to-see-if-we-have-struct-sockaddr_ll.patch
rename src/patches/ppp/{ppp-2.5.0-2-everywhere-O_CLOEXEC-harder.patch => ppp-e1266c7-2-everywhere-O_CLOEXEC-harder.patch} (75%)
diff --git a/config/rootfiles/common/ppp b/config/rootfiles/common/ppp
index 379c64af4..6a27af3e7 100644
--- a/config/rootfiles/common/ppp
+++ b/config/rootfiles/common/ppp
@@ -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 54aa1caf5..a16859002 100644
--- a/lfs/ppp
+++ b/lfs/ppp
@@ -1,7 +1,7 @@
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2023 IPFire Team <info(a)ipfire.org> #
+# Copyright (C) 2007-2024 IPFire Team <info(a)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
index a7823d424..000000000
--- a/src/patches/ppp/ppp-2.5.0-7-add-configure-check-to-see-if-we-have-struct-sockaddr_ll.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 9d6d326b2530cffb1414e4c401675117c42d43ce Mon Sep 17 00:00:00 2001
-From: Eivind Naess <eivnaes(a)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(a)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
diff --git a/src/patches/ppp/ppp-2.5.0-2-everywhere-O_CLOEXEC-harder.patch b/src/patches/ppp/ppp-e1266c7-2-everywhere-O_CLOEXEC-harder.patch
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 c205c0e08..b6fd842a7 100644
--- a/src/patches/ppp/ppp-2.5.0-2-everywhere-O_CLOEXEC-harder.patch
+++ b/src/patches/ppp/ppp-e1266c7-2-everywhere-O_CLOEXEC-harder.patch
@@ -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;
--
2.44.0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-03-15 12:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-15 12:38 [PATCH] ppp: Update to include bug fixes that should be in 2.5.1 but not yet released Adolf Belka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox