diff --git a/ppp-2.4.2-fix.patch b/ppp-2.4.2-fix.patch new file mode 100644 index 0000000..0d9a8da --- /dev/null +++ b/ppp-2.4.2-fix.patch @@ -0,0 +1,434 @@ +--- ppp-2.4.2/pppd/plugins/rp-pppoe/discovery.c.fix 2004-06-17 16:43:43.191723185 +0200 ++++ ppp-2.4.2/pppd/plugins/rp-pppoe/discovery.c 2004-06-17 16:43:45.907350301 +0200 +@@ -13,6 +13,8 @@ + + #include "pppoe.h" + ++void warn __P((char *, ...)); /* log a warning message */ ++ + #ifdef HAVE_SYSLOG_H + #include + #endif +--- ppp-2.4.2/pppd/tty.c.fix 2004-01-13 05:17:59.000000000 +0100 ++++ ppp-2.4.2/pppd/tty.c 2004-06-17 16:13:28.955650804 +0200 +@@ -512,7 +512,9 @@ + { + char *connector; + int fdflags; ++#ifndef __linux__ + struct stat statbuf; ++#endif + char numbuf[16]; + + /* +--- ppp-2.4.2/pppd/ipv6cp.c.fix 2004-01-13 04:59:37.000000000 +0100 ++++ ppp-2.4.2/pppd/ipv6cp.c 2004-06-17 16:16:04.377345945 +0200 +@@ -151,6 +151,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -1061,7 +1062,9 @@ + return (rc); /* Return final code */ + } + +- ++#if defined(SOL2) || defined(__linux__) ++int ether_to_eui64(eui64_t *p_eui64); ++#endif + /* + * ipv6_check_options - check that any IP-related options are OK, + * and assign appropriate defaults. +--- ppp-2.4.2/include/linux/if_pppox.h.fix 2001-12-15 01:34:24.000000000 +0100 ++++ ppp-2.4.2/include/linux/if_pppox.h 2004-06-17 16:11:32.162659245 +0200 +@@ -18,7 +18,7 @@ + + + #include +-#include ++#include + + #ifdef __KERNEL__ + #include +@@ -97,10 +97,10 @@ + #define PTT_GEN_ERR __constant_htons(0x0203) + + struct pppoe_hdr { +-#if defined(__LITTLE_ENDIAN_BITFIELD) ++#if __BYTE_ORDER == __LITTLE_ENDIAN + __u8 ver : 4; + __u8 type : 4; +-#elif defined(__BIG_ENDIAN_BITFIELD) ++#elif __BYTE_ORDER == __BIG_ENDIAN + __u8 type : 4; + __u8 ver : 4; + #else +--- ppp-2.4.2/pppdump/deflate.c.fix 2004-06-17 16:58:32.991307502 +0200 ++++ ppp-2.4.2/pppdump/deflate.c 2004-06-17 17:00:24.408979423 +0200 +@@ -38,7 +38,9 @@ + + #include + #include ++#include + #include ++#include + #include "ppp_defs.h" + #include "ppp-comp.h" + #include "zlib.h" +@@ -235,8 +237,8 @@ + { + struct deflate_state *state = (struct deflate_state *) arg; + u_char *rptr, *wptr; +- int rlen, olen, ospace; +- int seq, i, flush, r, decode_proto; ++ int rlen, olen; ++ int seq, r; + + rptr = mi; + if (*rptr == 0) +--- ppp-2.4.2/pppdump/bsd-comp.c.fix 2004-06-17 16:53:52.680872972 +0200 ++++ ppp-2.4.2/pppdump/bsd-comp.c 2004-06-17 16:58:07.013881369 +0200 +@@ -43,7 +43,9 @@ + + #include + #include ++#include + #include ++#include + #include "ppp_defs.h" + #include "ppp-comp.h" + +@@ -381,7 +383,7 @@ + || options[0] != CI_BSD_COMPRESS || options[1] != CILEN_BSD_COMPRESS + || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION + || BSD_NBITS(options[2]) != db->maxbits +- || decomp && db->lens == NULL) ++ || (decomp && db->lens == NULL)) + return 0; + + if (decomp) { +@@ -554,11 +556,11 @@ + u_int n_bits = db->n_bits; + u_int tgtbitno = 32-n_bits; /* bitno when we have a code */ + struct bsd_dict *dictp; +- int explen, i, seq, len; ++ int explen, seq, len; + u_int incode, oldcode, finchar; + u_char *p, *rptr, *wptr; + int ilen; +- int dlen, space, codelen, extra; ++ int dlen=0, codelen, extra; + + rptr = cmsg; + if (*rptr == 0) +@@ -614,7 +616,7 @@ + } + + if (incode > max_ent + 2 || incode > db->maxmaxcode +- || incode > max_ent && oldcode == CLEAR) { ++ || (incode > max_ent && oldcode == CLEAR)) { + if (db->debug) { + printf("bsd_decomp%d: bad code 0x%x oldcode=0x%x ", + db->unit, incode, oldcode); +--- ppp-2.4.2/pppdump/pppdump.c.fix 2004-06-17 16:44:38.175172998 +0200 ++++ ppp-2.4.2/pppdump/pppdump.c 2004-06-17 16:52:51.795250137 +0200 +@@ -34,6 +34,7 @@ + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + #include ++#include + #include + #include + #include +@@ -53,6 +54,12 @@ + extern int optind; + extern char *optarg; + ++void dumplog(FILE *); ++void dumpppp(FILE *); ++void show_time(FILE *, int); ++ ++ ++int + main(ac, av) + int ac; + char **av; +@@ -105,7 +112,7 @@ + exit(0); + } + +-dumplog(f) ++void dumplog(f) + FILE *f; + { + int c, n, k, col; +@@ -183,7 +190,7 @@ + show_time(f, c); + break; + default: +- printf("?%.2x\n"); ++ printf("?%.2x\n", c); + } + } + } +@@ -244,7 +251,9 @@ + + unsigned char dbuf[8192]; + +-dumpppp(f) ++void handle_ccp(struct pkt *, u_char *, int); ++ ++void dumpppp(f) + FILE *f; + { + int c, n, k; +@@ -412,7 +421,7 @@ + show_time(f, c); + break; + default: +- printf("?%.2x\n"); ++ printf("?%.2x\n", c); + } + } + } +@@ -429,7 +438,7 @@ + NULL + }; + +-handle_ccp(cp, dp, len) ++void handle_ccp(cp, dp, len) + struct pkt *cp; + u_char *dp; + int len; +@@ -485,7 +494,7 @@ + } + } + +-show_time(f, c) ++void show_time(f, c) + FILE *f; + int c; + { +--- ppp-2.4.2/chat/chat.c.fix 2003-03-30 10:23:48.000000000 +0200 ++++ ppp-2.4.2/chat/chat.c 2004-06-17 16:33:22.455951861 +0200 +@@ -213,7 +213,7 @@ + void *copy_of __P((char *s)); + char *grow __P((char *s, char **p, size_t len)); + void usage __P((void)); +-void logf __P((const char *fmt, ...)); ++void logfmt __P((const char *fmt, ...)); + void fatal __P((int code, const char *fmt, ...)); + SIGTYPE sigalrm __P((int signo)); + SIGTYPE sigint __P((int signo)); +@@ -495,7 +495,7 @@ + /* + * Send a message to syslog and/or stderr. + */ +-void logf __V((const char *fmt, ...)) ++void logfmt __V((const char *fmt, ...)) + { + va_list args; + +@@ -558,7 +558,7 @@ + fatal(2, "Can't set file mode flags on stdin: %m"); + + if (verbose) +- logf("alarm"); ++ logfmt("alarm"); + } + + void unalarm() +@@ -1001,9 +1001,9 @@ + * The expectation did not occur. This is terminal. + */ + if (fail_reason) +- logf("Failed (%s)", fail_reason); ++ logfmt("Failed (%s)", fail_reason); + else +- logf("Failed"); ++ logfmt("Failed"); + terminate(exit_code); + } + +@@ -1079,7 +1079,7 @@ + abort_string[n_aborts++] = s1; + + if (verbose) +- logf("abort on (%v)", s); ++ logfmt("abort on (%v)", s); + return; + } + +@@ -1105,7 +1105,7 @@ + pack++; + n_aborts--; + if (verbose) +- logf("clear abort on (%v)", s); ++ logfmt("clear abort on (%v)", s); + } + } + free(s1); +@@ -1129,7 +1129,7 @@ + report_string[n_reports++] = s1; + + if (verbose) +- logf("report (%v)", s); ++ logfmt("report (%v)", s); + return; + } + +@@ -1155,7 +1155,7 @@ + pack++; + n_reports--; + if (verbose) +- logf("clear report (%v)", s); ++ logfmt("clear report (%v)", s); + } + } + free(s1); +@@ -1173,7 +1173,7 @@ + timeout = DEFAULT_CHAT_TIMEOUT; + + if (verbose) +- logf("timeout set to %d seconds", timeout); ++ logfmt("timeout set to %d seconds", timeout); + + return; + } +@@ -1236,7 +1236,7 @@ + return ((int)c & 0x7F); + + default: +- logf("warning: read() on stdin returned %d", status); ++ logfmt("warning: read() on stdin returned %d", status); + + case -1: + if ((status = fcntl(0, F_GETFL, 0)) == -1) +@@ -1264,7 +1264,7 @@ + return (0); + + default: +- logf("warning: write() on stdout returned %d", status); ++ logfmt("warning: write() on stdout returned %d", status); + + case -1: + if ((status = fcntl(0, F_GETFL, 0)) == -1) +@@ -1286,9 +1286,9 @@ + + if (verbose) { + if (errno == EINTR || errno == EWOULDBLOCK) +- logf(" -- write timed out"); ++ logfmt(" -- write timed out"); + else +- logf(" -- write failed: %m"); ++ logfmt(" -- write failed: %m"); + } + return (0); + } +@@ -1303,9 +1303,9 @@ + + if (verbose) { + if (quiet) +- logf("send (??????)"); ++ logfmt("send (?????\?)"); + else +- logf("send (%v)", s); ++ logfmt("send (%v)", s); + } + + alarm(timeout); alarmed = 0; +@@ -1392,17 +1392,17 @@ + minlen = (len > sizeof(fail_buffer)? len: sizeof(fail_buffer)) - 1; + + if (verbose) +- logf("expect (%v)", string); ++ logfmt("expect (%v)", string); + + if (len > STR_LEN) { +- logf("expect string is too long"); ++ logfmt("expect string is too long"); + exit_code = 1; + return 0; + } + + if (len == 0) { + if (verbose) +- logf("got it"); ++ logfmt("got it"); + return (1); + } + +@@ -1416,16 +1416,16 @@ + echo_stderr(c); + if (verbose && c == '\n') { + if (s == logged) +- logf(""); /* blank line */ ++ logfmt(""); /* blank line */ + else +- logf("%0.*v", s - logged, logged); ++ logfmt("%0.*v", s - logged, logged); + logged = s + 1; + } + + *s++ = c; + + if (verbose && s >= logged + 80) { +- logf("%0.*v", s - logged, logged); ++ logfmt("%0.*v", s - logged, logged); + logged = s; + } + +@@ -1470,8 +1470,8 @@ + strncmp(s - len, string, len) == 0) { + if (verbose) { + if (s > logged) +- logf("%0.*v", s - logged, logged); +- logf(" -- got it\n"); ++ logfmt("%0.*v", s - logged, logged); ++ logfmt(" -- got it\n"); + } + + alarm(0); +@@ -1484,8 +1484,8 @@ + strncmp(s - abort_len, abort_string[n], abort_len) == 0) { + if (verbose) { + if (s > logged) +- logf("%0.*v", s - logged, logged); +- logf(" -- failed"); ++ logfmt("%0.*v", s - logged, logged); ++ logfmt(" -- failed"); + } + + alarm(0); +@@ -1499,7 +1499,7 @@ + if (s >= end) { + if (logged < s - minlen) { + if (verbose) +- logf("%0.*v", s - logged, logged); ++ logfmt("%0.*v", s - logged, logged); + logged = s; + } + s -= minlen; +@@ -1509,16 +1509,16 @@ + } + + if (alarmed && verbose) +- logf("warning: alarm synchronization problem"); ++ logfmt("warning: alarm synchronization problem"); + } + + alarm(0); + + if (verbose && printed) { + if (alarmed) +- logf(" -- read timed out"); ++ logfmt(" -- read timed out"); + else +- logf(" -- read failed: %m"); ++ logfmt(" -- read failed: %m"); + } + + exit_code = 3; diff --git a/ppp-2.4.2-fix64.patch b/ppp-2.4.2-fix64.patch new file mode 100644 index 0000000..5c2d804 --- /dev/null +++ b/ppp-2.4.2-fix64.patch @@ -0,0 +1,23 @@ +--- ppp-2.4.2/pppd/sha1.c.fix64 2002-04-02 15:54:59.000000000 +0200 ++++ ppp-2.4.2/pppd/sha1.c 2004-06-17 17:22:00.698817462 +0200 +@@ -18,6 +18,7 @@ + + #include + #include /* htonl() */ ++#include /* u_int32_t */ + #include "sha1.h" + + static void +@@ -44,10 +45,10 @@ + static void + SHA1_Transform(unsigned long state[5], const unsigned char buffer[64]) + { +- unsigned long a, b, c, d, e; ++ u_int32_t a, b, c, d, e; + typedef union { + unsigned char c[64]; +- unsigned long l[16]; ++ u_int32_t l[16]; + } CHAR64LONG16; + CHAR64LONG16 *block; + diff --git a/ppp.spec b/ppp.spec index 2f5d007..0c56df2 100644 --- a/ppp.spec +++ b/ppp.spec @@ -1,7 +1,7 @@ Summary: The PPP (Point-to-Point Protocol) daemon. Name: ppp Version: 2.4.2 -Release: 3 +Release: 3.1 License: distributable Group: System Environment/Daemons Source0: ftp://ftp.samba.org/pub/ppp/ppp-%{version}.tar.gz @@ -15,6 +15,8 @@ Patch4: ppp-2.4.2-lib64.patch Patch5: ppp-2.4.2-bpf.patch Patch6: ppp-2.4.2-dontwriteetc.patch Patch7: ppp-2.4.2-pie.patch +Patch8: ppp-2.4.2-fix.patch +Patch9: ppp-2.4.2-fix64.patch BuildRoot: %{_tmppath}/%{name}-root BuildPrereq: pam-devel, libpcap @@ -38,12 +40,15 @@ organization over a modem and phone line. %patch4 -p1 -b .lib64 %patch5 -p1 -b .bpf %patch6 -p1 -b .dontwriteetc -#%patch7 -p1 -b .pie +%patch7 -p1 -b .pie +%patch8 -p1 -b .fix +%patch9 -p1 -b .fix64 + find . -type f -name "*.sample" | xargs rm -f %build ./configure -make RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fPIC" +make RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Werror -fPIC" %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT @@ -92,6 +97,11 @@ rm -rf $RPM_BUILD_ROOT %doc FAQ PLUGINS README README.cbcp README.linux README.MPPE README.MSCHAP80 README.MSCHAP81 README.pwfd README.pppoe scripts sample %changelog +* Mon Jun 21 2004 Thomas Woerner 2.4.2-3.1 +- fixed compiler warnings +- fixed 64bit problem with ms-chap (#125501) +- enabled pie again + * Tue Jun 15 2004 Elliot Lee - rebuilt