summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-06-19 17:03:24 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-06-19 17:03:24 +0000
commit5cae7371a78b99af668d4e1f43c985a8b707aa33 (patch)
treea44347c0cfedce98ee1f16906d3391c4d86b2d48
parent7c90f3b2b498531a267b0e85c4f634f65d76eba8 (diff)
[package] ppp: annotate most patches with description and S-o-b
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32463 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/ppp/patches/010-use_target_for_configure.patch9
-rw-r--r--package/ppp/patches/100-debian_ip-ip_option.patch12
-rw-r--r--package/ppp/patches/101-debian_close_dev_ppp.patch12
-rw-r--r--package/ppp/patches/103-debian_fix_link_pidfile.patch11
-rw-r--r--package/ppp/patches/106-debian_stripMSdomain.patch13
-rw-r--r--package/ppp/patches/107-debian_pppatm_cleanup.patch32
-rw-r--r--package/ppp/patches/107-debian_pppoatm_wildcard.patch25
-rw-r--r--package/ppp/patches/110-debian_defaultroute.patch12
-rw-r--r--package/ppp/patches/120-debian_ipv6_updown_option.patch12
-rw-r--r--package/ppp/patches/200-makefile.patch7
-rw-r--r--package/ppp/patches/201-mppe_mppc_1.1.patch7
-rw-r--r--package/ppp/patches/202-no_strip.patch8
-rw-r--r--package/ppp/patches/203-opt_flags.patch8
-rw-r--r--package/ppp/patches/205-no_exponential_timeout.patch7
-rw-r--r--package/ppp/patches/206-compensate_time_change.patch13
-rw-r--r--package/ppp/patches/207-lcp_mtu_max.patch8
-rw-r--r--package/ppp/patches/208-fix_status_code.patch12
-rw-r--r--package/ppp/patches/300-filter-pcap-includes-lib.patch7
-rw-r--r--package/ppp/patches/310-precompile_filter.patch13
-rw-r--r--package/ppp/patches/320-custom_iface_names.patch9
-rw-r--r--package/ppp/patches/330-retain_foreign_default_routes.patch12
-rw-r--r--package/ppp/patches/340-populate_default_gateway.patch13
-rw-r--r--package/ppp/patches/400-simplify_kernel_checks.patch20
-rw-r--r--package/ppp/patches/401-no_record_file.patch7
-rw-r--r--package/ppp/patches/403-no_wtmp.patch7
-rw-r--r--package/ppp/patches/404-remove_obsolete_protocol_names.patch7
-rw-r--r--package/ppp/patches/405-no_multilink_option.patch9
-rw-r--r--package/ppp/patches/430-pppol2tpv3-struct.patch7
28 files changed, 280 insertions, 39 deletions
diff --git a/package/ppp/patches/010-use_target_for_configure.patch b/package/ppp/patches/010-use_target_for_configure.patch
index e185be0be..aff0df67f 100644
--- a/package/ppp/patches/010-use_target_for_configure.patch
+++ b/package/ppp/patches/010-use_target_for_configure.patch
@@ -1,6 +1,11 @@
+configure: Allow overriding uname results
- Use values exported from $(TOPDIR)/rules.mk for determining
- the target system instead of the host configuration
+In a cross compile setting it makes no sense to rely on the "uname" values
+reported by the build host system. This patch allows overriding the
+"uname -r", "uname -s" and "uname -m" results with the "UNAME_R", "UNAME_S"
+and "UNAME_M" environment variables.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
--- a/configure
+++ b/configure
diff --git a/package/ppp/patches/100-debian_ip-ip_option.patch b/package/ppp/patches/100-debian_ip-ip_option.patch
index 4ba12fc27..ca43cb278 100644
--- a/package/ppp/patches/100-debian_ip-ip_option.patch
+++ b/package/ppp/patches/100-debian_ip-ip_option.patch
@@ -1,3 +1,15 @@
+pppd: Allow specifying ip-up and ip-down scripts
+
+This patch implements the "ip-up-script" and "ip-down-script" options which
+allow to specify the path of the ip-up and ip-down scripts to call.
+
+These options default to _PATH_IPUP and _PATH_IPDOWN to retain the
+existing behaviour.
+
+The patch originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/ipcp.c
+++ b/pppd/ipcp.c
@@ -1939,7 +1939,7 @@ ipcp_up(f)
diff --git a/package/ppp/patches/101-debian_close_dev_ppp.patch b/package/ppp/patches/101-debian_close_dev_ppp.patch
index 2a30f45bd..232b10b52 100644
--- a/package/ppp/patches/101-debian_close_dev_ppp.patch
+++ b/package/ppp/patches/101-debian_close_dev_ppp.patch
@@ -1,3 +1,15 @@
+pppd: Close already open ppp descriptors
+
+When using the kernel PPPoE driver in conjunction with the "persist" option,
+the already open descriptor to /dev/ppp is not closed when the link is
+reestablished. This eventually leads to high CPU load because the stray
+descriptors are always reported as ready by select().
+
+This patch closes the descriptor if it is already open when establishing a
+new connection. It originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c
@@ -453,6 +453,13 @@ int generic_establish_ppp (int fd)
diff --git a/package/ppp/patches/103-debian_fix_link_pidfile.patch b/package/ppp/patches/103-debian_fix_link_pidfile.patch
index b8c4aaaf6..c8a23edd6 100644
--- a/package/ppp/patches/103-debian_fix_link_pidfile.patch
+++ b/package/ppp/patches/103-debian_fix_link_pidfile.patch
@@ -1,3 +1,14 @@
+pppd: Fix creation of linkpidfile
+
+When pppd is run without "nodetach" or with "updetach", the linkpidfile is
+never created. The call to create_linkpidfile() is protected by a check for
+linkpidfile[0] but this is only filled in when create_linkpidfile() is called.
+
+This patch changes to code to allways uncondiationally call
+create_linkpidfile(), it originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/main.c
+++ b/pppd/main.c
@@ -773,8 +773,7 @@ detach()
diff --git a/package/ppp/patches/106-debian_stripMSdomain.patch b/package/ppp/patches/106-debian_stripMSdomain.patch
index b65f52ec9..86af1ef41 100644
--- a/package/ppp/patches/106-debian_stripMSdomain.patch
+++ b/package/ppp/patches/106-debian_stripMSdomain.patch
@@ -1,3 +1,16 @@
+pppd: Implement option to strip domain part from MS CHAP response
+
+This patch implements a new boolean option "chapms-strip-domain" which
+strips the leading domain part of the username in a received MS Chap
+response.
+
+When the option is set, all leading chars up to and including the last
+backslash in the username are stripped. The option defaults to false.
+
+The patch originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/chap-new.c
+++ b/pppd/chap-new.c
@@ -58,6 +58,7 @@ int (*chap_verify_hook)(char *name, char
diff --git a/package/ppp/patches/107-debian_pppatm_cleanup.patch b/package/ppp/patches/107-debian_pppatm_cleanup.patch
deleted file mode 100644
index a3d80a888..000000000
--- a/package/ppp/patches/107-debian_pppatm_cleanup.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/pppd/plugins/pppoatm/pppoatm.c
-+++ b/pppd/plugins/pppoatm/pppoatm.c
-@@ -75,13 +75,14 @@ static int setdevname_pppoatm(const char
- //info("PPPoATM setdevname_pppoatm: '%s'", cp);
- memset(&addr, 0, sizeof addr);
- if (text2atm(cp, (struct sockaddr *) &addr, sizeof(addr),
-- T2A_PVC | T2A_NAME) < 0) {
-- if(doit)
-- info("atm does not recognize: %s", cp);
-+ T2A_PVC | T2A_NAME | T2A_WILDCARD) < 0) {
-+ if (doit)
-+ info("cannot parse the ATM address: %s", cp);
- return 0;
-- }
-- if (!doit) return 1;
-- //if (!dev_set_ok()) return -1;
-+ }
-+ if (!doit)
-+ return 1;
-+
- memcpy(&pvcaddr, &addr, sizeof pvcaddr);
- strlcpy(devnam, cp, sizeof devnam);
- devstat.st_mode = S_IFSOCK;
-@@ -170,7 +171,7 @@ static void disconnect_pppoatm(void)
-
- void plugin_init(void)
- {
--#if defined(__linux__)
-+#ifdef linux
- extern int new_style_driver; /* From sys-linux.c */
- if (!ppp_available() && !new_style_driver)
- fatal("Kernel doesn't support ppp_generic - "
diff --git a/package/ppp/patches/107-debian_pppoatm_wildcard.patch b/package/ppp/patches/107-debian_pppoatm_wildcard.patch
new file mode 100644
index 000000000..eaad2cdaa
--- /dev/null
+++ b/package/ppp/patches/107-debian_pppoatm_wildcard.patch
@@ -0,0 +1,25 @@
+pppoatm: Allow wildcard ATM devices
+
+When operating pppd's pppoatm plugin with an USB ADSL modem, e.g. an
+Alcatel Speedtouch, the ATM device number might change when the modem is
+reconnected to the USB port or when the host controller resets the USB
+device.
+
+This patch allows to specify the ATM device as wildcard which gives
+enough flexibility to cope with changing device names.
+
+The patch originated from the Debain project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
+--- a/pppd/plugins/pppoatm/pppoatm.c
++++ b/pppd/plugins/pppoatm/pppoatm.c
+@@ -75,7 +75,7 @@ static int setdevname_pppoatm(const char
+ //info("PPPoATM setdevname_pppoatm: '%s'", cp);
+ memset(&addr, 0, sizeof addr);
+ if (text2atm(cp, (struct sockaddr *) &addr, sizeof(addr),
+- T2A_PVC | T2A_NAME) < 0) {
++ T2A_PVC | T2A_NAME | T2A_WILDCARD) < 0) {
+ if(doit)
+ info("atm does not recognize: %s", cp);
+ return 0;
diff --git a/package/ppp/patches/110-debian_defaultroute.patch b/package/ppp/patches/110-debian_defaultroute.patch
index 0a0691e98..41d28909b 100644
--- a/package/ppp/patches/110-debian_defaultroute.patch
+++ b/package/ppp/patches/110-debian_defaultroute.patch
@@ -1,3 +1,15 @@
+pppd: Add "replacedefaultroute" and "noreplacedefaultroute" options
+
+This patch implements two new options, "replacedefaultroute" to replace any
+existing system default route when specified and "noreplacedefaultroute" to
+disable the "replacedefaultroute" option, which is useful in multi user
+environments where the administrator wants to allow users to dial pppd
+connections but not allow them to change the system default route.
+
+The patch originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/ipcp.c
+++ b/pppd/ipcp.c
@@ -198,6 +198,14 @@ static option_t ipcp_option_list[] = {
diff --git a/package/ppp/patches/120-debian_ipv6_updown_option.patch b/package/ppp/patches/120-debian_ipv6_updown_option.patch
index acee85ba4..c5457fa51 100644
--- a/package/ppp/patches/120-debian_ipv6_updown_option.patch
+++ b/package/ppp/patches/120-debian_ipv6_updown_option.patch
@@ -1,3 +1,15 @@
+pppd: Allow specifying ipv6-up and ipv6-down scripts
+
+This patch implements the "ipv6-up-script" and "ipv6-down-script" options
+which allow to specify the path of the ipv6-up and ipv6-down scripts to call.
+
+These options default to _PATH_IPV6UP and _PATH_IPV6DOWN to retain the
+existing behaviour.
+
+The patch originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/main.c
+++ b/pppd/main.c
@@ -318,6 +318,8 @@ main(argc, argv)
diff --git a/package/ppp/patches/200-makefile.patch b/package/ppp/patches/200-makefile.patch
index af826749c..9db908de8 100644
--- a/package/ppp/patches/200-makefile.patch
+++ b/package/ppp/patches/200-makefile.patch
@@ -1,3 +1,10 @@
+pppd: tune Linux config defaults for OpenWrt
+
+This patch adjusts a number defaults to properly match the OpenWrt environment.
+It is not intended for upstream.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
@@ -48,7 +48,7 @@ MPPE=y
diff --git a/package/ppp/patches/201-mppe_mppc_1.1.patch b/package/ppp/patches/201-mppe_mppc_1.1.patch
index 62b09d4a1..3edd11e7f 100644
--- a/package/ppp/patches/201-mppe_mppc_1.1.patch
+++ b/package/ppp/patches/201-mppe_mppc_1.1.patch
@@ -1,3 +1,10 @@
+pppd: add support for MPPE and MPPC encryption and compression protocols
+
+This is a forward ported version of ppp-2.4.3-mppe-mppc-1.1.patch.gz found on
+http://mppe-mppc.alphacron.de/ .
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/include/linux/ppp-comp.h
+++ b/include/linux/ppp-comp.h
@@ -36,7 +36,7 @@
diff --git a/package/ppp/patches/202-no_strip.patch b/package/ppp/patches/202-no_strip.patch
index 359db14a3..87c76ad0e 100644
--- a/package/ppp/patches/202-no_strip.patch
+++ b/package/ppp/patches/202-no_strip.patch
@@ -1,3 +1,11 @@
+build: Do not strip binaries on install
+
+Strippign executables should be handled by the distro packaging, not by ppp
+itself. This patch removes the "-s" (strip) switch from all "install" commands
+in order to install unstripped binaries into the destination prefix.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/chat/Makefile.linux
+++ b/chat/Makefile.linux
@@ -25,7 +25,7 @@ chat.o: chat.c
diff --git a/package/ppp/patches/203-opt_flags.patch b/package/ppp/patches/203-opt_flags.patch
index f0d416f68..a36916352 100644
--- a/package/ppp/patches/203-opt_flags.patch
+++ b/package/ppp/patches/203-opt_flags.patch
@@ -1,3 +1,11 @@
+build: Move optimization flags into a separate variable
+
+Isolate optimization related compiler flags from CFLAGS and move them into a
+separate COPTS variable so that it is easier to override optimizations from
+the environment.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/plugins/radius/Makefile.linux
+++ b/pppd/plugins/radius/Makefile.linux
@@ -12,7 +12,8 @@ VERSION = $(shell awk -F '"' '/VERSION/
diff --git a/package/ppp/patches/205-no_exponential_timeout.patch b/package/ppp/patches/205-no_exponential_timeout.patch
index 14d00cf92..7119fb83f 100644
--- a/package/ppp/patches/205-no_exponential_timeout.patch
+++ b/package/ppp/patches/205-no_exponential_timeout.patch
@@ -1,3 +1,10 @@
+pppd: Don't use exponential timeout in discovery phase
+
+This patch removes the exponential timeout increase between PADO or PADS
+discovery attempts.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/plugins/rp-pppoe/discovery.c
+++ b/pppd/plugins/rp-pppoe/discovery.c
@@ -548,7 +548,9 @@ discovery(PPPoEConnection *conn)
diff --git a/package/ppp/patches/206-compensate_time_change.patch b/package/ppp/patches/206-compensate_time_change.patch
index 041ae1f86..fb6c65679 100644
--- a/package/ppp/patches/206-compensate_time_change.patch
+++ b/package/ppp/patches/206-compensate_time_change.patch
@@ -1,3 +1,16 @@
+pppd: Watch out for time warps
+
+On many embedded systems there is no battery backed RTC and a proper system
+time only becomes available through NTP after establishing a connection.
+
+When the clock suddenly jumps forward, the internal accounting (connect time)
+is confused resulting in unreliable data.
+
+This patch implements periodic clock checking to look for time warps, if one
+is detected, the internal counters are adjusted accordingly.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/main.c
+++ b/pppd/main.c
@@ -90,6 +90,7 @@
diff --git a/package/ppp/patches/207-lcp_mtu_max.patch b/package/ppp/patches/207-lcp_mtu_max.patch
index 32bcad3c3..1ebcf412f 100644
--- a/package/ppp/patches/207-lcp_mtu_max.patch
+++ b/package/ppp/patches/207-lcp_mtu_max.patch
@@ -1,3 +1,11 @@
+pppd: Cap MTU to the user configured value
+
+This patchs caps the calculated MTU value in lcp.c to the user specified "mru"
+option value. Without this patch pppd would advertise a different MTU value
+compared to what is set on the local interface in some cases.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/lcp.c
+++ b/pppd/lcp.c
@@ -1904,12 +1904,12 @@ lcp_up(f)
diff --git a/package/ppp/patches/208-fix_status_code.patch b/package/ppp/patches/208-fix_status_code.patch
index c512354a2..25e2a10b8 100644
--- a/package/ppp/patches/208-fix_status_code.patch
+++ b/package/ppp/patches/208-fix_status_code.patch
@@ -1,3 +1,15 @@
+pppd: Do not clobber exit codes on hangup
+
+When a modem hangup occurs, pppd unconditionally sets the exit status code
+to EXIT_HANGUP. This patch only sets EXIT_HANGUP if the exit status code is
+not already set to an error value.
+
+The motiviation of this patch is to allow applications which remote control
+pppd to react properly on errors, e.g. only redial (relaunch pppd) if there
+was a hangup, but not if the CHAP authentication failed.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/main.c
+++ b/pppd/main.c
@@ -1048,7 +1048,8 @@ get_input()
diff --git a/package/ppp/patches/300-filter-pcap-includes-lib.patch b/package/ppp/patches/300-filter-pcap-includes-lib.patch
index fa8b616de..d8dcc64c8 100644
--- a/package/ppp/patches/300-filter-pcap-includes-lib.patch
+++ b/package/ppp/patches/300-filter-pcap-includes-lib.patch
@@ -1,3 +1,10 @@
+build: Add required CFLAGS for libpcap
+
+This patch adds some flags to required to properly link libpcap within the
+OpenWrt environment.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
@@ -170,8 +170,8 @@ endif
diff --git a/package/ppp/patches/310-precompile_filter.patch b/package/ppp/patches/310-precompile_filter.patch
index 5d2c8f171..87b9687ef 100644
--- a/package/ppp/patches/310-precompile_filter.patch
+++ b/package/ppp/patches/310-precompile_filter.patch
@@ -1,3 +1,16 @@
+pppd: Implement support for precompiled pcap filters
+
+This patch implements support for precompiled pcap filters which is useful to
+support dial-on-demand on memory constrained embedded devices without having
+to link the full libpcap into pppd to generate the filters during runtime.
+
+Two new options are introduced; "precompiled-pass-filter" specifies a pre-
+compiled filter file containing rules to match packets which should be passed,
+"precompiled-active-filter" specifies a filter file containing rules to match
+packets which are treated as active.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
@@ -50,6 +50,9 @@ MPPE=y
diff --git a/package/ppp/patches/320-custom_iface_names.patch b/package/ppp/patches/320-custom_iface_names.patch
index 26e683753..a95f4f8c8 100644
--- a/package/ppp/patches/320-custom_iface_names.patch
+++ b/package/ppp/patches/320-custom_iface_names.patch
@@ -1,3 +1,12 @@
+pppd: Support arbitrary interface names
+
+This patch implements a new string option "ifname" which allows to specify
+fully custom PPP interface names on Linux. It does so by renaming the
+allocated pppX device immediately after it has been created to the requested
+interface name.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/main.c
+++ b/pppd/main.c
@@ -745,8 +745,11 @@ void
diff --git a/package/ppp/patches/330-retain_foreign_default_routes.patch b/package/ppp/patches/330-retain_foreign_default_routes.patch
index dc6ed8d1f..0d7fff9b4 100644
--- a/package/ppp/patches/330-retain_foreign_default_routes.patch
+++ b/package/ppp/patches/330-retain_foreign_default_routes.patch
@@ -1,3 +1,15 @@
+pppd: Retain foreign default routes on Linux
+
+On Linux, when pppd attempts to delete its default route it does not fill
+the rt_dev field of the struct rtentry used to match the system default route.
+As a consequence, pppd happily deletes any default route even if it belongs
+to another interface.
+
+This patch makes pppd fill out the rt_dev field so that only own default
+routes are ever matched.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c
@@ -1743,6 +1743,7 @@ int cifdefaultroute (int unit, u_int32_t
diff --git a/package/ppp/patches/340-populate_default_gateway.patch b/package/ppp/patches/340-populate_default_gateway.patch
index ae495ee64..9a0284eb2 100644
--- a/package/ppp/patches/340-populate_default_gateway.patch
+++ b/package/ppp/patches/340-populate_default_gateway.patch
@@ -1,3 +1,16 @@
+pppd: Fill in default gateway on Linux
+
+On Linux, when pppd creates the default route, it does not set the peer
+address as gateway, leading to a default route without gateway address.
+
+This behaviour breaks various downstream programs which attempt to infer
+the default gateway IP address from the system default route entry.
+
+This patch addresses the issue by filling in the peer address as gateway
+when generating the default route entry.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c
@@ -1697,6 +1697,9 @@ int sifdefaultroute (int unit, u_int32_t
diff --git a/package/ppp/patches/400-simplify_kernel_checks.patch b/package/ppp/patches/400-simplify_kernel_checks.patch
index 6ddf86a1b..ec82576cb 100644
--- a/package/ppp/patches/400-simplify_kernel_checks.patch
+++ b/package/ppp/patches/400-simplify_kernel_checks.patch
@@ -1,3 +1,13 @@
+pppd: Remove runtime kernel checks
+
+On embedded system distributions the required kernel features for pppd are
+more or less guaranteed to be present, so there is not much point in
+performing runtime checks, it just increases the binary size.
+
+This patch removes the runtime kernel feature checks.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c
@@ -203,7 +203,7 @@ static int driver_is_old = 0;
@@ -88,11 +98,11 @@
return 0;
--- a/pppd/plugins/pppoatm/pppoatm.c
+++ b/pppd/plugins/pppoatm/pppoatm.c
-@@ -171,14 +171,6 @@ static void disconnect_pppoatm(void)
+@@ -170,14 +170,6 @@ static void disconnect_pppoatm(void)
void plugin_init(void)
{
--#ifdef linux
+-#if defined(__linux__)
- extern int new_style_driver; /* From sys-linux.c */
- if (!ppp_available() && !new_style_driver)
- fatal("Kernel doesn't support ppp_generic - "
@@ -126,9 +136,9 @@
add_options(Options);
info("RP-PPPoE plugin version %s compiled against pppd %s",
---- a/pppd/plugins/pppol2tp/pppol2tp.c 2010-11-15 12:12:43.000000000 +0000
-+++ b/pppd/plugins/pppol2tp/pppol2tp.c 2012-04-24 15:53:58.806260309 +0100
-@@ -488,12 +488,7 @@ static void pppol2tp_check_options(void)
+--- a/pppd/plugins/pppol2tp/pppol2tp.c
++++ b/pppd/plugins/pppol2tp/pppol2tp.c
+@@ -500,12 +500,7 @@ static void pppol2tp_cleanup(void)
void plugin_init(void)
{
diff --git a/package/ppp/patches/401-no_record_file.patch b/package/ppp/patches/401-no_record_file.patch
index 68837206f..94c0263ea 100644
--- a/package/ppp/patches/401-no_record_file.patch
+++ b/package/ppp/patches/401-no_record_file.patch
@@ -1,3 +1,10 @@
+pppd: Remove the "record" option
+
+On many embedded systems there is not enough space to record PPP session
+information to the permanent storage, therfore remove this option.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/pppd.h
+++ b/pppd/pppd.h
@@ -309,7 +309,6 @@ extern int holdoff; /* Dead time before
diff --git a/package/ppp/patches/403-no_wtmp.patch b/package/ppp/patches/403-no_wtmp.patch
index 018bd5b2a..71233200e 100644
--- a/package/ppp/patches/403-no_wtmp.patch
+++ b/package/ppp/patches/403-no_wtmp.patch
@@ -1,3 +1,10 @@
+pppd: Disable wtmp support
+
+Many uClibc based environments lack wtmp and utmp support, therfore remove
+the code updating the wtmp information.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c
@@ -2254,6 +2254,7 @@ int ppp_available(void)
diff --git a/package/ppp/patches/404-remove_obsolete_protocol_names.patch b/package/ppp/patches/404-remove_obsolete_protocol_names.patch
index 71b4d9774..edbca7603 100644
--- a/package/ppp/patches/404-remove_obsolete_protocol_names.patch
+++ b/package/ppp/patches/404-remove_obsolete_protocol_names.patch
@@ -1,3 +1,10 @@
+pppd: Remove historical protocol names
+
+Remove a number of historical protocol entries from pppd's builtin list, this
+reduced the binary size without loss of features.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/main.c
+++ b/pppd/main.c
@@ -882,14 +882,17 @@ struct protocol_list {
diff --git a/package/ppp/patches/405-no_multilink_option.patch b/package/ppp/patches/405-no_multilink_option.patch
index fc342b72d..97a79c474 100644
--- a/package/ppp/patches/405-no_multilink_option.patch
+++ b/package/ppp/patches/405-no_multilink_option.patch
@@ -1,3 +1,12 @@
+pppd: Support "nomp" option even if multilink support is off
+
+This patch moves the "nomp" option entry outside of the defines protecting
+the multilink specific code. The motivation is to allow "nomp" even if pppd
+does not support multilink, so that controlling programs can unconditionally
+pass it to pppd regardless of the compile time features.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/pppd/options.c
+++ b/pppd/options.c
@@ -318,13 +318,14 @@ option_t general_options[] = {
diff --git a/package/ppp/patches/430-pppol2tpv3-struct.patch b/package/ppp/patches/430-pppol2tpv3-struct.patch
index c2f163b81..4f517df76 100644
--- a/package/ppp/patches/430-pppol2tpv3-struct.patch
+++ b/package/ppp/patches/430-pppol2tpv3-struct.patch
@@ -1,3 +1,10 @@
+pppol2tp: Provide struct pppol2tpv3_addr to align with Linux
+
+The struct pppol2tpv3_addr is referenced in the current Linux kernel sources
+but not provided by the shipped kernel headers, add it.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
--- a/include/linux/if_pppol2tp.h
+++ b/include/linux/if_pppol2tp.h
@@ -32,6 +32,20 @@ struct pppol2tp_addr