summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net-dialup/ppp/files/musl.patch136
-rw-r--r--net-dialup/ppp/ppp-2.4.7-r1.ebuild5
2 files changed, 141 insertions, 0 deletions
diff --git a/net-dialup/ppp/files/musl.patch b/net-dialup/ppp/files/musl.patch
new file mode 100644
index 0000000..802409f
--- /dev/null
+++ b/net-dialup/ppp/files/musl.patch
@@ -0,0 +1,136 @@
+--- pppd/Makefile.linux
++++ pppd/Makefile.linux
+@@ -126,7 +126,7 @@ LIBS += -lcrypt
+ endif
+
+ ifdef USE_LIBUTIL
+-CFLAGS += -DHAVE_LOGWTMP=1
++#CFLAGS += -DHAVE_LOGWTMP=1
+ LIBS += -lutil
+ endif
+
+--- pppd/plugins/rp-pppoe/if.c
++++ pppd/plugins/rp-pppoe/if.c
+@@ -30,10 +30,6 @@ static char const RCSID[] =
+ #include <linux/if_packet.h>
+ #endif
+
+-#ifdef HAVE_NET_ETHERNET_H
+-#include <net/ethernet.h>
+-#endif
+-
+ #ifdef HAVE_ASM_TYPES_H
+ #include <asm/types.h>
+ #endif
+--- pppd/plugins/rp-pppoe/plugin.c
++++ pppd/plugins/rp-pppoe/plugin.c
+@@ -46,7 +46,6 @@ static char const RCSID[] =
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <signal.h>
+-#include <net/ethernet.h>
+ #include <net/if_arp.h>
+ #include <linux/ppp_defs.h>
+ #include <linux/if_pppox.h>
+--- pppd/plugins/rp-pppoe/pppoe-discovery.c
++++ pppd/plugins/rp-pppoe/pppoe-discovery.c
+@@ -27,10 +27,6 @@
+ #include <linux/if_packet.h>
+ #endif
+
+-#ifdef HAVE_NET_ETHERNET_H
+-#include <net/ethernet.h>
+-#endif
+-
+ #ifdef HAVE_ASM_TYPES_H
+ #include <asm/types.h>
+ #endif
+@@ -55,6 +51,8 @@ void die(int status)
+ exit(status);
+ }
+
++#define error(x...) fprintf(stderr, x)
++
+ /* Initialize frame types to RFC 2516 values. Some broken peers apparently
+ use different frame types... sigh... */
+
+--- pppd/plugins/rp-pppoe/pppoe.h
++++ pppd/plugins/rp-pppoe/pppoe.h
+@@ -86,18 +86,6 @@ typedef unsigned long UINT32_t;
+
+ #include <netinet/in.h>
+
+-#ifdef HAVE_NETINET_IF_ETHER_H
+-#include <sys/types.h>
+-
+-#ifdef HAVE_SYS_SOCKET_H
+-#include <sys/socket.h>
+-#endif
+-#ifndef HAVE_SYS_DLPI_H
+-#include <netinet/if_ether.h>
+-#endif
+-#endif
+-
+-
+
+ /* Ethernet frame types according to RFC 2516 */
+ #define ETH_PPPOE_DISCOVERY 0x8863
+--- pppd/sys-linux.c
++++ pppd/sys-linux.c
+@@ -102,19 +102,11 @@
+ #define MAX_ADDR_LEN 7
+ #endif
+
+-#if __GLIBC__ >= 2
+ #include <asm/types.h> /* glibc 2 conflicts with linux/types.h */
+ #include <net/if.h>
+ #include <net/if_arp.h>
+ #include <net/route.h>
+ #include <netinet/if_ether.h>
+-#else
+-#include <linux/types.h>
+-#include <linux/if.h>
+-#include <linux/if_arp.h>
+-#include <linux/route.h>
+-#include <linux/if_ether.h>
+-#endif
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+
+
+--- include/linux/ppp_defs.h.orig 2015-05-10 10:59:27.959155977 +0200
++++ include/linux/ppp_defs.h 2015-05-10 10:59:50.190403246 +0200
+@@ -50,6 +50,9 @@
+ #ifndef _PPP_DEFS_H_
+ #define _PPP_DEFS_H_
+
++#ifndef __P
++# define __P(x) x
++#endif
+ /*
+ * The basic PPP frame.
+ */
+--- pppd/magic.h.orig 2015-05-10 11:00:16.687697962 +0200
++++ pppd/magic.h 2015-05-10 11:00:34.030890864 +0200
+@@ -42,6 +42,10 @@
+ * $Id: magic.h,v 1.5 2003/06/11 23:56:26 paulus Exp $
+ */
+
++#ifndef __P
++# define __P(x) x
++#endif
++
+ void magic_init __P((void)); /* Initialize the magic number generator */
+ u_int32_t magic __P((void)); /* Returns the next magic number */
+
+--- include/net/ppp_defs.h.orig 2015-05-10 11:09:54.505127657 +0200
++++ include/net/ppp_defs.h 2015-05-10 11:10:10.753309024 +0200
+@@ -38,6 +38,8 @@
+ #ifndef _PPP_DEFS_H_
+ #define _PPP_DEFS_H_
+
++#include <sys/time.h> /* time_t */
++
+ /*
+ * The basic PPP frame.
+ */
diff --git a/net-dialup/ppp/ppp-2.4.7-r1.ebuild b/net-dialup/ppp/ppp-2.4.7-r1.ebuild
index dd596dd..c31afd1 100644
--- a/net-dialup/ppp/ppp-2.4.7-r1.ebuild
+++ b/net-dialup/ppp/ppp-2.4.7-r1.ebuild
@@ -81,6 +81,11 @@ src_prepare() {
einfo "Disabling radius"
sed -i -e '/+= radius/s:^:#:' pppd/plugins/Makefile.linux || die
fi
+
+ if use elibc_musl ; then
+ einfo "Conditionally patching for musl"
+ epatch "${FILESDIR}"/musl.patch
+ fi
}
src_compile() {