Bug#916163: ppp FTBFS with glibc 2.28

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Bug#916163: ppp FTBFS with glibc 2.28

Adrian Bunk-3
Source: ppp
Version: 2.4.7-2+4
Severity: serious
Tags: ftbfs

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/ppp.html

...
pppcrypt.c: In function 'DesSetkey':
pppcrypt.c:122:2: warning: implicit declaration of function 'setkey'; did you mean 'DesSetkey'? [-Wimplicit-function-declaration]
  setkey((const char *)crypt_key);
  ^~~~~~
  DesSetkey
pppcrypt.c: In function 'DesEncrypt':
pppcrypt.c:137:2: warning: implicit declaration of function 'encrypt'; did you mean 'crypt'? [-Wimplicit-function-declaration]
  encrypt((char *)des_input, 0);
  ^~~~~~~
...
cc -Wl,-z,relro -Wl,-z,now -Wl,-E -o pppd main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o ccp.o ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o eap.o chap-md5.o session.o chap_ms.o eap-tls.o pppcrypt.o multilink.o tdb.o spinlock.o ipv6cp.o eui64.o cbcp.o -lcrypto -lssl -lcrypt -lutil -lpam -ldl -ldl -lpcap \
        -Wl,-soname,pppd.so.2.4.7
/usr/bin/ld: pppcrypt.o: in function `DesSetkey':
./pppd/pppcrypt.c:122: undefined reference to `setkey'
/usr/bin/ld: pppcrypt.o: in function `DesEncrypt':
./pppd/pppcrypt.c:137: undefined reference to `encrypt'
/usr/bin/ld: pppcrypt.o: in function `DesDecrypt':
./pppd/pppcrypt.c:153: undefined reference to `encrypt'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:227: pppd] Error 1

Reply | Threaded
Open this post in threaded view
|

Bug#916163: ppp FTBFS with glibc 2.28

Luca Boccassi-3
Control: tags -1 patch

On Mon, 10 Dec 2018 21:16:50 +0200 Adrian Bunk <[hidden email]> wrote:
> Source: ppp
> Version: 2.4.7-2+4
> Severity: serious
> Tags: ftbfs

> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/pp
p.html

> ...
> pppcrypt.c: In function 'DesSetkey':
> pppcrypt.c:122:2: warning: implicit declaration of function 'setkey';
did you mean 'DesSetkey'? [-Wimplicit-function-declaration]
>   setkey((const char *)crypt_key);
>   ^~~~~~
>   DesSetkey
> pppcrypt.c: In function 'DesEncrypt':
> pppcrypt.c:137:2: warning: implicit declaration of function
'encrypt'; did you mean 'crypt'? [-Wimplicit-function-declaration]
>   encrypt((char *)des_input, 0);
>   ^~~~~~~
> ...
> cc -Wl,-z,relro -Wl,-z,now -Wl,-E -o pppd main.o magic.o fsm.o lcp.o
ipcp.o upap.o chap-new.o ccp.o ecp.o auth.o options.o demand.o utils.o
sys-linux.o ipxcp.o tty.o eap.o chap-md5.o session.o chap_ms.o eap-
tls.o pppcrypt.o multilink.o tdb.o spinlock.o ipv6cp.o eui64.o cbcp.o
-lcrypto -lssl -lcrypt -lutil -lpam -ldl -ldl -lpcap \
>  -Wl,-soname,pppd.so.2.4.7
> /usr/bin/ld: pppcrypt.o: in function `DesSetkey':
> ./pppd/pppcrypt.c:122: undefined reference to `setkey'
> /usr/bin/ld: pppcrypt.o: in function `DesEncrypt':
> ./pppd/pppcrypt.c:137: undefined reference to `encrypt'
> /usr/bin/ld: pppcrypt.o: in function `DesDecrypt':
> ./pppd/pppcrypt.c:153: undefined reference to `encrypt'
> collect2: error: ld returned 1 exit status
> make[3]: *** [Makefile:227: pppd] Error 1

Dear Maintainer,

This was fixed upstream in Github:

https://github.com/paulusmack/ppp/commit/3c7b86229f7bd2600d74db14b1fe5b3896be3875

A backport (with a minor refresh for fuzz) is inlined below.

--
Kind regards,
Luca Boccassi

Author: [hidden email]
Description: Use openssl for the DES instead of the libcrypt / glibc
 It seems the latest glibc (in Fedora glibc-2.27.9000-12.fc29) dropped
 libcrypt.  The libxcrypt standalone package can be used instead, but
 it dropped the old setkey/encrypt API which ppp uses for DES.  There
 is support for using openssl in pppcrypt.c, but it contains typos
 preventing it from compiling and seems to be written for an ancient
 openssl version.
 
 This updates the code to use current openssl.
 
 [[hidden email] - wrote the commit description, fixed comment in
  Makefile.linux.]
Origin: https://github.com/paulusmack/ppp/pull/96
Applied-Upstream: https://github.com/paulusmack/ppp/commit/3c7b86229f7bd2600d74db14b1fe5b3896be3875
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
@@ -35,10 +35,10 @@ endif
 COPTS = -O2 -pipe -Wall -g
 LIBS = -lcrypto
 
-# Uncomment the next 2 lines to include support for Microsoft's
+# Uncomment the next line to include support for Microsoft's
 # MS-CHAP authentication protocol.  Also, edit plugins/radius/Makefile.linux.
 CHAPMS=y
-USE_CRYPT=y
+#USE_CRYPT=y
 # Don't use MSLANMAN unless you really know what you're doing.
 #MSLANMAN=y
 # Uncomment the next line to include support for MPPE.  CHAPMS (above) must
@@ -142,7 +142,8 @@ endif
 
 ifdef NEEDDES
 ifndef USE_CRYPT
-LIBS     += -ldes $(LIBS)
+CFLAGS   += -I/usr/include/openssl
+LIBS     += -lcrypto
 else
 CFLAGS   += -DUSE_CRYPT=1
 endif
--- a/pppd/pppcrypt.c
+++ b/pppd/pppcrypt.c
@@ -64,7 +64,7 @@ u_char *des_key; /* OUT 64 bit DES key w
  des_key[7] = Get7Bits(key, 49);
 
 #ifndef USE_CRYPT
- des_set_odd_parity((des_cblock *)des_key);
+ DES_set_odd_parity((DES_cblock *)des_key);
 #endif
 }
 
@@ -158,25 +158,25 @@ u_char *clear; /* OUT 8 octets */
 }
 
 #else /* USE_CRYPT */
-static des_key_schedule key_schedule;
+static DES_key_schedule key_schedule;
 
 bool
 DesSetkey(key)
 u_char *key;
 {
- des_cblock des_key;
+ DES_cblock des_key;
  MakeKey(key, des_key);
- des_set_key(&des_key, key_schedule);
+ DES_set_key(&des_key, &key_schedule);
  return (1);
 }
 
 bool
-DesEncrypt(clear, key, cipher)
+DesEncrypt(clear, cipher)
 u_char *clear; /* IN  8 octets */
 u_char *cipher; /* OUT 8 octets */
 {
- des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher,
-    key_schedule, 1);
+ DES_ecb_encrypt((DES_cblock *)clear, (DES_cblock *)cipher,
+    &key_schedule, 1);
  return (1);
 }
 
@@ -185,8 +185,8 @@ DesDecrypt(cipher, clear)
 u_char *cipher; /* IN  8 octets */
 u_char *clear; /* OUT 8 octets */
 {
- des_ecb_encrypt((des_cblock *)cipher, (des_cblock *)clear,
-    key_schedule, 0);
+ DES_ecb_encrypt((DES_cblock *)cipher, (DES_cblock *)clear,
+    &key_schedule, 0);
  return (1);
 }
 

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Bug#916163: ppp FTBFS with glibc 2.28

Chris Lamb -2
In reply to this post by Adrian Bunk-3
tags 916163 + pending patch
thanks

I've uploaded ppp 2.4.7-2+4.1 to DELAYED/5:
 
  ppp (2.4.7-2+4.1) unstable; urgency=medium
 
    * Non-maintainer upload.
    * Apply upstream patch from
      <https://github.com/paulusmack/ppp/commit/3c7b86229f7bd2600d74db14b1fe5b3896be3875>
      to fix FTBFS with glibc 2.28. (Closes: #916163)

The full debdiff is attached.


Regards,

--
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      [hidden email] / chris-lamb.co.uk
       `-

ppp_2.4.7-2+4.1_amd64.debdiff.txt (6K) Download Attachment