Subject: [PATCH]: gnu: ppp: Fix cross-compilation
From: Jean Pierre De Jesus DIAZ <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Wed, 22 Jun 2022 18:40:36 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Building `ppp` right now fails when cross-compiling for other
systems. Discovered it while generating an installation image for
RockPro64 on a `x86-64-linux-gnu` system.

guix build ppp --keep-failed \
               --target=aarch64-linux-gnu

This patch removes an outdated substitution, and modifies the existing ones to match what the source code expects.

From 99ed433400d7d33b4b9811ac22fdfb4b637492fd Mon Sep 17 00:00:00 2001
Message-Id: <[email-masked]>
From: Jean-Pierre De Jesus DIAZ <[email-masked]>
Date: Wed, 22 Jun 2022 20:29:05 +0200
Subject: [PATCH] gnu: ppp: Fix cross-compilation.

* gnu/packages/samba.scm (ppp)[arguments]: Use G-Expressions. Remove
unused substitution. Fix OpenSSL and libpcap include paths.
---
 gnu/packages/samba.scm | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index b775ad905c..208dca94ca 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2019 Rutger Helling <[email-masked]>
 ;;; Copyright © 2020 Pierre Langlois <[email-masked]>
 ;;; Copyright © 2020, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -469,23 +470,22 @@ (define-public ppp
                 "1bhhksdclsnkw54a517ndrw55q5zljjbh9pcqz1z4a2z2flxpsgk"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f                    ; no check target
-       #:make-flags '("CC=gcc")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-Makefile
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((libc    (assoc-ref inputs "libc"))
-                   (openssl (assoc-ref inputs "openssl"))
-                   (libpcap (assoc-ref inputs "libpcap")))
-               (substitute* "pppd/Makefile.linux"
-                 (("/usr/include/crypt\\.h")
-                  (string-append libc "/include/crypt.h"))
-                 (("/usr/include/openssl")
-                  (string-append openssl "/include/openssl"))
-                 (("/usr/include/pcap-bpf.h")
-                  (string-append libpcap "/include/pcap-bpf.h")))
-               #t))))))
+      (list #:tests? #f                    ;; No "check" target
+            #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
+            #:phases
+            #~(modify-phases %standard-phases
+                (add-before 'configure 'patch-Makefile
+                  (lambda* (#:key inputs #:allow-other-keys)
+                    (let ((openssl (assoc-ref inputs "openssl"))
+                          (libpcap (assoc-ref inputs "libpcap")))
+                      (substitute* "pppd/Makefile.linux"
+                        (("/usr/include/openssl")
+                         (string-append openssl "/include"))
+                        (("-DPPP_FILTER")
+                         (string-append "-DPPP_FILTER -I" libpcap "/include")))
+                      (substitute* "pppd/pppcrypt.h"
+                        (("des\\.h") "openssl/des.h")))
+                    #t)))))
     (inputs
      (list libpcap
            (@ (gnu packages tls) openssl)))
-- 
2.36.1