diff --git a/srcpkgs/ppp-devel b/srcpkgs/ppp-devel new file mode 120000 index 0000000000..e6199192b3 --- /dev/null +++ b/srcpkgs/ppp-devel @@ -0,0 +1 @@ +ppp \ No newline at end of file diff --git a/srcpkgs/ppp/depends b/srcpkgs/ppp/depends new file mode 100644 index 0000000000..9778c1333e --- /dev/null +++ b/srcpkgs/ppp/depends @@ -0,0 +1,2 @@ +abi_depends=">=2.4.5" +api_depends="${abi_depends}" diff --git a/srcpkgs/ppp/files/ip-down b/srcpkgs/ppp/files/ip-down new file mode 100644 index 0000000000..301f3ab9ba --- /dev/null +++ b/srcpkgs/ppp/files/ip-down @@ -0,0 +1,12 @@ +#!/bin/sh +# +# This script is run by pppd after the connection has ended. +# + +# Execute all scripts in /etc/ppp/ip-up.d/ +for ipdown in /etc/ppp/ip-down.d/*.sh; do + if [ -x $ipdown ]; then + # Parameters: interface-name tty-device speed local-IP-address remote-IP-address ipparam + $ipdown "$@" + fi +done diff --git a/srcpkgs/ppp/files/ip-down.d.dns.sh b/srcpkgs/ppp/files/ip-down.d.dns.sh new file mode 100644 index 0000000000..9e19f7d1b9 --- /dev/null +++ b/srcpkgs/ppp/files/ip-down.d.dns.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +[ -e /etc/resolv.conf.backup.${IFNAME} ] && mv /etc/resolv.conf.backup.${IFNAME} /etc/resolv.conf diff --git a/srcpkgs/ppp/files/ip-up b/srcpkgs/ppp/files/ip-up new file mode 100644 index 0000000000..20473d73a2 --- /dev/null +++ b/srcpkgs/ppp/files/ip-up @@ -0,0 +1,12 @@ +#!/bin/sh +# +# This script is run by pppd when there's a successful ppp connection. +# + +# Execute all scripts in /etc/ppp/ip-up.d/ +for ipup in /etc/ppp/ip-up.d/*.sh; do + if [ -x $ipup ]; then + # Parameters: interface-name tty-device speed local-IP-address remote-IP-address ipparam + $ipup "$@" + fi +done diff --git a/srcpkgs/ppp/files/ip-up.d.dns.sh b/srcpkgs/ppp/files/ip-up.d.dns.sh new file mode 100644 index 0000000000..f9df543a49 --- /dev/null +++ b/srcpkgs/ppp/files/ip-up.d.dns.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ "$USEPEERDNS" = "1" -a -f /etc/ppp/resolv.conf ]; then + [ -e /etc/resolv.conf ] && mv /etc/resolv.conf /etc/resolv.conf.backup.${IFNAME} + mv /etc/ppp/resolv.conf /etc/resolv.conf + chmod 644 /etc/resolv.conf +fi diff --git a/srcpkgs/ppp/files/options b/srcpkgs/ppp/files/options new file mode 100644 index 0000000000..63691842c9 --- /dev/null +++ b/srcpkgs/ppp/files/options @@ -0,0 +1,352 @@ +# /etc/ppp/options +# +# Originally created by Jim Knoble +# Modified for Debian by alvar Bray +# Modified for PPP Server setup by Christoph Lameter +# Modified for ArchLinux by Manolis Tzanidakis +# +# To quickly see what options are active in this file, use this command: +# egrep -v '#|^ *$' /etc/ppp/options + +# Specify which DNS Servers the incoming Win95 or WinNT Connection should use +# Two Servers can be remotely configured +# ms-dns 192.168.1.1 +# ms-dns 192.168.1.2 + +# Specify which WINS Servers the incoming connection Win95 or WinNT should use +# ms-wins 192.168.1.50 +# ms-wins 192.168.1.51 + +# Run the executable or shell command specified after pppd has +# terminated the link. This script could, for example, issue commands +# to the modem to cause it to hang up if hardware modem control signals +# were not available. +#disconnect "chat -- \d+++\d\c OK ath0 OK" + +# async character map -- 32-bit hex; each bit is a character +# that needs to be escaped for pppd to receive it. 0x00000001 +# represents '\x01', and 0x80000000 represents '\x1f'. +asyncmap 0 + +# Require the peer to authenticate itself before allowing network +# packets to be sent or received. +# Please do not disable this setting. It is expected to be standard in +# future releases of pppd. Use the call option (see manpage) to disable +# authentication for specific peers. +auth + +# Use hardware flow control (i.e. RTS/CTS) to control the flow of data +# on the serial port. +crtscts + +# Use software flow control (i.e. XON/XOFF) to control the flow of data +# on the serial port. +#xonxoff + +# Specifies that certain characters should be escaped on transmission +# (regardless of whether the peer requests them to be escaped with its +# async control character map). The characters to be escaped are +# specified as a list of hex numbers separated by commas. Note that +# almost any character can be specified for the escape option, unlike +# the asyncmap option which only allows control characters to be +# specified. The characters which may not be escaped are those with hex +# values 0x20 - 0x3f or 0x5e. +#escape 11,13,ff + +# Don't use the modem control lines. +#local + +# Specifies that pppd should use a UUCP-style lock on the serial device +# to ensure exclusive access to the device. +lock + +# Don't show the passwords when logging the contents of PAP packets. +# This is the default. +hide-password + +# When logging the contents of PAP packets, this option causes pppd to +# show the password string in the log message. +#show-password + +# Use the modem control lines. On Ultrix, this option implies hardware +# flow control, as for the crtscts option. (This option is not fully +# implemented.) +modem + +# Set the MRU [Maximum Receive Unit] value to for negotiation. pppd +# will ask the peer to send packets of no more than bytes. The +# minimum MRU value is 128. The default MRU value is 1500. A value of +# 296 is recommended for slow links (40 bytes for TCP/IP header + 256 +# bytes of data). +#mru 542 + +# Set the interface netmask to , a 32 bit netmask in "decimal dot" +# notation (e.g. 255.255.255.0). +#netmask 255.255.255.0 + +# Disables the default behaviour when no local IP address is specified, +# which is to determine (if possible) the local IP address from the +# hostname. With this option, the peer will have to supply the local IP +# address during IPCP negotiation (unless it specified explicitly on the +# command line or in an options file). +#noipdefault + +# Enables the "passive" option in the LCP. With this option, pppd will +# attempt to initiate a connection; if no reply is received from the +# peer, pppd will then just wait passively for a valid LCP packet from +# the peer (instead of exiting, as it does without this option). +#passive + +# With this option, pppd will not transmit LCP packets to initiate a +# connection until a valid LCP packet is received from the peer (as for +# the "passive" option with old versions of pppd). +#silent + +# Don't request or allow negotiation of any options for LCP and IPCP +# (use default values). +#-all + +# Disable Address/Control compression negotiation (use default, i.e. +# address/control field disabled). +#-ac + +# Disable asyncmap negotiation (use the default asyncmap, i.e. escape +# all control characters). +#-am + +# Don't fork to become a background process (otherwise pppd will do so +# if a serial device is specified). +#-detach + +# Disable IP address negotiation (with this option, the remote IP +# address must be specified with an option on the command line or in +# an options file). +#-ip + +# Disable IPCP negotiation and IP communication. This option should +# only be required if the peer is buggy and gets confused by requests +# from pppd for IPCP negotiation. +#noip + +# Disable magic number negotiation. With this option, pppd cannot +# detect a looped-back line. +#-mn + +# Disable MRU [Maximum Receive Unit] negotiation (use default, i.e. +# 1500). +#-mru + +# Disable protocol field compression negotiation (use default, i.e. +# protocol field compression disabled). +#-pc + +# Require the peer to authenticate itself using PAP. +#+pap + +# Don't agree to authenticate using PAP. +#-pap + +# Require the peer to authenticate itself using CHAP [Cryptographic +# Handshake Authentication Protocol] authentication. +#+chap + +# Don't agree to authenticate using CHAP. +#-chap + +# Disable negotiation of Van Jacobson style IP header compression (use +# default, i.e. no compression). +#-vj + +# Increase debugging level (same as -d). If this option is given, pppd +# will log the contents of all control packets sent or received in a +# readable form. The packets are logged through syslog with facility +# daemon and level debug. This information can be directed to a file by +# setting up /etc/syslog.conf appropriately (see syslog.conf(5)). (If +# pppd is compiled with extra debugging enabled, it will log messages +# using facility local2 instead of daemon). +#debug + +# Append the domain name to the local host name for authentication +# purposes. For example, if gethostname() returns the name porsche, +# but the fully qualified domain name is porsche.Quotron.COM, you would +# use the domain option to set the domain name to Quotron.COM. +#domain + +# Enable debugging code in the kernel-level PPP driver. The argument n +# is a number which is the sum of the following values: 1 to enable +# general debug messages, 2 to request that the contents of received +# packets be printed, and 4 to request that the contents of transmitted +# packets be printed. +#kdebug n + +# Set the MTU [Maximum Transmit Unit] value to . Unless the peer +# requests a smaller value via MRU negotiation, pppd will request that +# the kernel networking code send data packets of no more than n bytes +# through the PPP network interface. +#mtu + +# Set the name of the local system for authentication purposes to . +# This is a privileged option. With this option, pppd will use lines in the +# secrets files which have as the second field when looking for a +# secret to use in authenticating the peer. In addition, unless overridden +# with the user option, will be used as the name to send to the peer +# when authenticating the local system to the peer. (Note that pppd does +# not append the domain name to .) +#name + +# Enforce the use of the hostname as the name of the local system for +# authentication purposes (overrides the name option). +#usehostname + +# Set the assumed name of the remote system for authentication purposes +# to . +#remotename + +# Add an entry to this system's ARP [Address Resolution Protocol] +# table with the IP address of the peer and the Ethernet address of this +# system. +proxyarp + +# Use the system password database for authenticating the peer using +# PAP. Note: mgetty already provides this option. If this is specified +# then dialin from users using a script under Linux to fire up ppp wont work. +# login + +# If this option is given, pppd will send an LCP echo-request frame to the +# peer every n seconds. Normally the peer should respond to the echo-request +# by sending an echo-reply. This option can be used with the +# lcp-echo-failure option to detect that the peer is no longer connected. +lcp-echo-interval 30 + +# If this option is given, pppd will presume the peer to be dead if n +# LCP echo-requests are sent without receiving a valid LCP echo-reply. +# If this happens, pppd will terminate the connection. Use of this +# option requires a non-zero value for the lcp-echo-interval parameter. +# This option can be used to enable pppd to terminate after the physical +# connection has been broken (e.g., the modem has hung up) in +# situations where no hardware modem control lines are available. +lcp-echo-failure 4 + +# Set the LCP restart interval (retransmission timeout) to seconds +# (default 3). +#lcp-restart + +# Set the maximum number of LCP terminate-request transmissions to +# (default 3). +#lcp-max-terminate + +# Set the maximum number of LCP configure-request transmissions to +# (default 10). +#lcp-max-configure + +# Set the maximum number of LCP configure-NAKs returned before starting +# to send configure-Rejects instead to (default 10). +#lcp-max-failure + +# Set the IPCP restart interval (retransmission timeout) to +# seconds (default 3). +#ipcp-restart + +# Set the maximum number of IPCP terminate-request transmissions to +# (default 3). +#ipcp-max-terminate + +# Set the maximum number of IPCP configure-request transmissions to +# (default 10). +#ipcp-max-configure + +# Set the maximum number of IPCP configure-NAKs returned before starting +# to send configure-Rejects instead to (default 10). +#ipcp-max-failure + +# Set the PAP restart interval (retransmission timeout) to seconds +# (default 3). +#pap-restart + +# Set the maximum number of PAP authenticate-request transmissions to +# (default 10). +#pap-max-authreq + +# Set the maximum time that pppd will wait for the peer to authenticate +# itself with PAP to seconds (0 means no limit). +#pap-timeout + +# Set the CHAP restart interval (retransmission timeout for +# challenges) to seconds (default 3). +#chap-restart + +# Set the maximum number of CHAP challenge transmissions to +# (default 10). +#chap-max-challenge + +# If this option is given, pppd will rechallenge the peer every +# seconds. +#chap-interval + +# With this option, pppd will accept the peer's idea of our local IP +# address, even if the local IP address was specified in an option. +#ipcp-accept-local + +# With this option, pppd will accept the peer's idea of its (remote) IP +# address, even if the remote IP address was specified in an option. +#ipcp-accept-remote + +# Disable the IPXCP and IPX protocols. +# To let pppd pass IPX packets comment this out --- you'll probably also +# want to install ipxripd, and have the Internal IPX Network option enabled +# in your kernel. /usr/doc/HOWTO/IPX-HOWTO.gz contains more info. +noipx + +# Exit once a connection has been made and terminated. This is the default, +# unless the `persist' or `demand' option has been specified. +#nopersist + +# Do not exit after a connection is terminated; instead try to reopen +# the connection. +#persist + +# Terminate after n consecutive failed connection attempts. +# A value of 0 means no limit. The default value is 10. +#maxfail + +# Initiate the link only on demand, i.e. when data traffic is present. +# With this option, the remote IP address must be specified by the user on +# the command line or in an options file. Pppd will initially configure +# the interface and enable it for IP traffic without connecting to the peer. +# When traffic is available, pppd will connect to the peer and perform +# negotiation, authentication, etc. When this is completed, pppd will +# commence passing data packets (i.e., IP packets) across the link. +#demand + +# Specifies that pppd should disconnect if the link is idle for seconds. +# The link is idle when no data packets (i.e. IP packets) are being sent or +# received. Note: it is not advisable to use this option with the persist +# option without the demand option. If the active-filter option is given, +# data packets which are rejected by the specified activity filter also +# count as the link being idle. +#idle + +# Specifies how many seconds to wait before re-initiating the link after +# it terminates. This option only has any effect if the persist or demand +# option is used. The holdoff period is not applied if the link was +# terminated because it was idle. +#holdoff + +# Wait for up n milliseconds after the connect script finishes for a valid +# PPP packet from the peer. At the end of this time, or when a valid PPP +# packet is received from the peer, pppd will commence negotiation by +# sending its first LCP packet. The default value is 1000 (1 second). +# This wait period only applies if the connect or pty option is used. +#connect-delay + +# Packet filtering: for more information, see pppd(8) +# Any packets matching the filter expression will be interpreted as link +# activity, and will cause a "demand" connection to be activated, and reset +# the idle connection timer. (idle option) +# The filter expression is akin to that of tcpdump(1) +#active-filter + +# uncomment the line below this if you use PPPoE +#plugin /usr/lib/pppd/plugins/pppoe.so + +# ------ diff --git a/srcpkgs/ppp/files/plog b/srcpkgs/ppp/files/plog new file mode 100644 index 0000000000..84d2c7340c --- /dev/null +++ b/srcpkgs/ppp/files/plog @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ -s /var/log/ppp.log ]; then + exec tail "$@" /var/log/ppp.log +else + exec tail "$@" /var/log/syslog | grep ' \(pppd\|chat\)\[' +fi diff --git a/srcpkgs/ppp/files/poff b/srcpkgs/ppp/files/poff new file mode 100644 index 0000000000..8b4dffc59e --- /dev/null +++ b/srcpkgs/ppp/files/poff @@ -0,0 +1,103 @@ +#!/bin/sh + +# Written by John Hasler and based on work +# by Phil Hands . Distributed under the GNU GPL + +if [ -x /usr/bin/kill ]; then + KILL="/usr/bin/kill" +else + KILL="/bin/kill" +fi +SIG=TERM +DONE="stopped" +MODE="" + +usage () +{ + cat <" +checksum=43317afec9299f9920b96f840414c977f0385410202d48e56d2fdb8230003505 +long_desc=" + This packages provides a daemon which implements the PPP protocol for + dial-up networking." + +CFLAGS="-D_GNU_SOURCE" + +conf_files=" +/etc/ppp/ip-up +/etc/ppp/chap-secrets +/etc/ppp/options +/etc/ppp/ip-down +/etc/ppp/pap-secrets" + +subpackages="ppp-devel" + +Add_dependency run glibc +Add_dependency run libpcap +Add_dependency build libpcap-devel + +pre_configure() +{ + # Custom CFLAGS. + sed -i "s:-O2 -pipe -Wall -g:${XBPS_CFLAGS}:" \ + ${wrksrc}/pppd/Makefile.linux + sed -i "s:-g -O2:${XBPS_CFLAGS}:" ${wrksrc}/pppd/plugins/Makefile.linux + sed -i "s:-O2:${XBPS_CFLAGS}:" ${wrksrc}/pppstats/Makefile.linux + sed -i "s:-O2 -g -pipe:${XBPS_CFLAGS}:" ${wrksrc}/chat/Makefile.linux + sed -i "s:-O:${XBPS_CFLAGS}:" ${wrksrc}/pppdump/Makefile.linux + # Enable active filter + sed -i "s:^#FILTER=y:FILTER=y:" ${wrksrc}/pppd/Makefile.linux + # Enable ipv6 support + sed -i "s:^#HAVE_INET6=y:HAVE_INET6=y:" ${wrksrc}/pppd/Makefile.linux + # Enable Microsoft Proprietary Callback Control Protocol + sed -i "s:^#CBCP=y:CBCP=y:" ${wrksrc}/pppd/Makefile.linux +} + +post_install() +{ + install -D -m644 ${FILESDIR}/options \ + ${DESTDIR}/etc/ppp/options || return 1 + install -D -m755 ${FILESDIR}/ip-up \ + ${DESTDIR}/etc/ppp/ip-up || return 1 + install -D -m755 ${FILESDIR}/ip-down \ + ${DESTDIR}/etc/ppp/ip-down || return 1 + install -d -m755 ${DESTDIR}/etc/ppp/ip-up.d || return 1 + install -d -m755 ${DESTDIR}/etc/ppp/ip-down.d || return 1 + install -m755 ${FILESDIR}/ip-up.d.dns.sh \ + ${DESTDIR}/etc/ppp/ip-up.d/00-dns.sh || return 1 + install -m755 ${FILESDIR}/ip-down.d.dns.sh \ + ${DESTDIR}/etc/ppp/ip-down.d/00-dns.sh || return 1 + install -D -m755 ${FILESDIR}/pon \ + ${DESTDIR}/usr/bin/pon || return 1 + install -D -m755 ${FILESDIR}/poff \ + ${DESTDIR}/usr/bin/poff || return 1 + install -D -m755 ${FILESDIR}/plog \ + ${DESTDIR}/usr/sbin/plog || return 1 + install -D -m600 ${wrksrc}/etc.ppp/pap-secrets \ + ${DESTDIR}/etc/ppp/pap-secrets || return 1 + install -D -m600 ${wrksrc}/etc.ppp/chap-secrets \ + ${DESTDIR}/etc/ppp/chap-secrets || return 1 + #install -D -m644 ${FILESDIR}/pon.1 \ + # ${DESTDIR}/usr/share/man/man1/pon.1 || return 1 + install -d -m755 ${DESTDIR}/etc/ppp/peers || return 1 + touch -f ${DESTDIR}/etc/ppp/peers/.empty_on_purpose +}