From 79ca578182b6a35bd567d408a32e5728e4f2a552 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 11 Nov 2021 21:47:54 -0500 Subject: gnu: fpc: Fix build. The bootstrap binaries (!) were probably too old. * gnu/packages/pascal.scm: Add missing copyright line. (%fpc-version, %fpc-release-date): New variables. (fpc-bootstrap-i386-3.0.4): Add a FIXME for a proper bootstrap. Rename to... (fpc-bootstrap-i386): ... this and update to 3.2.2. Use %fpc-version. (fpc-bootstrap-x86_64-3.0.4): Rename to... (fpc-bootstrap-x86_64): ... this and update to 3.2.2. Use %fpc-version. (fpc): Remove trailing #t. [version]: Use %fcp-version. [inputs]: Adjust accordingly. [phases]: Remove hard coded version and release strings. --- gnu/packages/pascal.scm | 55 ++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 26 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm index dd9df1c199..7e9334146d 100644 --- a/gnu/packages/pascal.scm +++ b/gnu/packages/pascal.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 David Hashe ;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2020 Eric Bavier +;;; Copyright © 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,28 +36,32 @@ #:use-module (gnu packages xml) #:use-module (ice-9 match)) -(define fpc-bootstrap-i386-3.0.4 +(define %fpc-version "3.2.2") +(define %fpc-release-date "2021/05/19") + +;;; FIXME: Bootstrap properly; these are prebuilt binaries. +(define fpc-bootstrap-i386 (origin (method url-fetch) - (uri - "mirror://sourceforge/freepascal/Linux/3.0.4/fpc-3.0.4.i386-linux.tar") + (uri (string-append "mirror://sourceforge/freepascal/Linux/" + %fpc-version "/fpc-" %fpc-version ".i386-linux.tar")) (sha256 (base32 - "05xfgxa6vb0y2ryfsgn21m2kwaxhci6l2zxa3akvlnqminjsjvda")))) + "0n4r85dsr86zlk7r4hbd4nj14sda6rwgdgzxg4gj4q981fn80agn")))) -(define fpc-bootstrap-x86_64-3.0.4 +(define fpc-bootstrap-x86_64 (origin (method url-fetch) - (uri - "mirror://sourceforge/freepascal/Linux/3.0.4/fpc-3.0.4.x86_64-linux.tar") + (uri (string-append "mirror://sourceforge/freepascal/Linux/" + %fpc-version "/fpc-" %fpc-version ".x86_64-linux.tar")) (sha256 (base32 - "0xzxh689iyjfmkqkhcqg9plrjmdx82hbyywyyc7jm0n92fpmp5ky")))) + "10qywczzz4qlcmmzxb7axnvwniq76ky130vd8iv6ljskll4c7njs")))) (define-public fpc (package (name "fpc") - (version "3.2.2") ; Update release date below! + (version %fpc-version) (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/freepascal/Source/" @@ -76,8 +82,7 @@ (mkdir-p "install") (rename-file "install-doc" "install/doc") (rename-file "install-man" "install/man") - (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe") - #t)))) + (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe"))))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (inputs @@ -91,11 +96,11 @@ `(("fpc-binary" ,(match (or (%current-target-system) (%current-system)) - ("i686-linux" fpc-bootstrap-i386-3.0.4) - ;("powerpc64le-linux" fpc-bootstrap-ppc64le-3.0.4) - ;("powerpc-linux" fpc-bootstrap-ppc-3.0.4) - ("x86_64-linux" fpc-bootstrap-x86_64-3.0.4) - (_ fpc-bootstrap-x86_64-3.0.4))))) + ("i686-linux" fpc-bootstrap-i386) + ;("powerpc64le-linux" fpc-bootstrap-ppc64le) + ;("powerpc-linux" fpc-bootstrap-ppc) + ("x86_64-linux" fpc-bootstrap-x86_64) + (arch (error "fpc arch not yet supported in guix" arch)))))) (arguments `(#:tests? #f ; no tests available #:phases @@ -115,7 +120,7 @@ (add-after 'unpack-bin 'install-bin (lambda* (#:key inputs #:allow-other-keys) (with-directory-excursion - (string-append fpc-bootstrap-path "/fpc-3.0.4." + (string-append fpc-bootstrap-path "/fpc-" ,version "." arch "-linux") (let ((binary-tarball (string-append "binary." arch "-linux.tar")) @@ -131,8 +136,7 @@ (add-after 'patch-source-shebangs 'patch-inline-shebangs (lambda _ (substitute* "fpcsrc/compiler/cscript.pas" - (("#!/bin/sh") (string-append "#!" (which "sh")))) - #t)) + (("#!/bin/sh") (string-append "#!" (which "sh")))))) (add-before 'build 'patch-release-date (lambda _ ; reproducibility (substitute* (list "fpcdocs/prog.tex" @@ -143,8 +147,8 @@ "fpcsrc/utils/fpcm/fpcmmain.pp" "fpcsrc/utils/fpcreslipo/fpcreslipo.pp" "fpcsrc/compiler/version.pas") - (("\\{\\$I(NCLUDE)? %DATE%\\}") "'2020/06/19'")) - #t)) + (("\\{\\$I(NCLUDE)? %DATE%\\}") + (format #f "'~a'" ,%fpc-release-date))))) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "fpcsrc/compiler/systems/t_linux.pas" @@ -165,8 +169,7 @@ "if (isdll) then"))) (substitute* "fpcsrc/compiler/options.pas" (("exepath\\+'../etc/'") - (string-append "'" (assoc-ref outputs "out") "/etc'"))) - #t)) + (string-append "'" (assoc-ref outputs "out") "/etc'"))))) (replace 'build (lambda* (#:key inputs #:allow-other-keys) (let* ((fpc-bin (string-append fpc-bootstrap-path "/bin")) @@ -177,7 +180,7 @@ (setenv "PATH" (string-append (getenv "PATH") ":" fpc-bootstrap-path - "/lib/fpc/3.0.4")) + "/lib/fpc/" ,version)) (setenv "FPC" fpc) ;; Specify target operating system using "-T" option (invoke fpcmake (string-append "-T" arch "-linux")) @@ -212,8 +215,8 @@ (glibc (assoc-ref inputs "glibc"))) (wrap-program fpc `("PATH" ":" prefix (,(string-append ld "/bin"))) - `("LIBRARY_PATH" ":" prefix (,(string-append glibc "/lib")))) - #t))))))) + `("LIBRARY_PATH" ":" prefix + (,(string-append glibc "/lib"))))))))))) ;; fpc invokes gcc, so make sure LIBRARY_PATH et.al are set. ;(native-search-paths (package-native-search-paths gcc)) (home-page "https://www.freepascal.org") -- cgit v1.2.3