Package: guix-patches;
Reported by: Efraim Flashner <efraim <at> flashner.co.il>
Date: Tue, 20 Feb 2024 07:02:02 UTC
Severity: normal
Tags: patch
Done: Efraim Flashner <efraim <at> flashner.co.il>
Bug is archived. No further changes may be made.
Message #11 received at 69283 <at> debbugs.gnu.org (full text, mbox):
From: Efraim Flashner <efraim <at> flashner.co.il> To: 69283 <at> debbugs.gnu.org Cc: Efraim Flashner <efraim <at> flashner.co.il> Subject: [PATCH 2/3] guix: Remove rakudo-build-system. Date: Tue, 20 Feb 2024 09:03:03 +0200
* guix/build/rakudo-build-system.scm: Remove file. * guix/build-system/rakudo.scm: Remove file. * doc/guix.texi (Build Systems): Remove section for rakudo-build-system. * etc/snippets/yas/scheme-mode/guix-package: Remove rakudo-build-system. * Makefile.am (MODULES): Remove rakudo-build-system files. Change-Id: Ida6ec6c9be075f10be540c82cee5207176f1cfe2 --- Makefile.am | 2 - doc/guix.texi | 18 --- etc/snippets/yas/scheme-mode/guix-package | 1 - guix/build-system/rakudo.scm | 142 -------------------- guix/build/rakudo-build-system.scm | 153 ---------------------- 5 files changed, 316 deletions(-) delete mode 100644 guix/build-system/rakudo.scm delete mode 100644 guix/build/rakudo-build-system.scm diff --git a/Makefile.am b/Makefile.am index cef972880c..aef56ca90c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -181,7 +181,6 @@ MODULES = \ guix/build-system/python.scm \ guix/build-system/qt.scm \ guix/build-system/r.scm \ - guix/build-system/rakudo.scm \ guix/build-system/rebar.scm \ guix/build-system/renpy.scm \ guix/build-system/ruby.scm \ @@ -245,7 +244,6 @@ MODULES = \ guix/build/qt-build-system.scm \ guix/build/r-build-system.scm \ guix/build/renpy-build-system.scm \ - guix/build/rakudo-build-system.scm \ guix/build/rebar-build-system.scm \ guix/build/ruby-build-system.scm \ guix/build/scons-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index fe6f82d4a5..06350efd7b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10122,24 +10122,6 @@ Build Systems @code{tools::testInstalledPackage}. @end defvar -@defvar rakudo-build-system -This variable is exported by @code{(guix build-system rakudo)}. It -implements the build procedure used by @uref{https://rakudo.org/, -Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the -package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and -installs the binaries, library files and the resources, as well as wrap -the files under the @code{bin/} directory. Tests can be skipped by -passing @code{#f} to the @code{tests?} parameter. - -Which rakudo package is used can be specified with @code{rakudo}. -Which perl6-tap-harness package used for the tests can be specified with -@code{#:prove6} or removed by passing @code{#f} to the -@code{with-prove6?} parameter. -Which perl6-zef package used for tests and installing can be specified -with @code{#:zef} or removed by passing @code{#f} to the -@code{with-zef?} parameter. -@end defvar - @defvar rebar-build-system This variable is exported by @code{(guix build-system rebar)}. It implements a build procedure around @uref{https://rebar3.org,rebar3}, diff --git a/etc/snippets/yas/scheme-mode/guix-package b/etc/snippets/yas/scheme-mode/guix-package index 3bb6307659..d38b32dc05 100644 --- a/etc/snippets/yas/scheme-mode/guix-package +++ b/etc/snippets/yas/scheme-mode/guix-package @@ -36,7 +36,6 @@ "python-build-system" "qt-build-system" "r-build-system" - "rakudo-build-system" "rebar-build-system" "renpy-build-system" "ruby-build-system" diff --git a/guix/build-system/rakudo.scm b/guix/build-system/rakudo.scm deleted file mode 100644 index 3b30fdfd0e..0000000000 --- a/guix/build-system/rakudo.scm +++ /dev/null @@ -1,142 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Efraim Flashner <efraim <at> flashner.co.il> -;;; Copyright © 2021 Ludovic Courtès <ludo <at> gnu.org> -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (guix build-system rakudo) - #:use-module (guix store) - #:use-module (guix utils) - #:use-module (guix gexp) - #:use-module (guix monads) - #:use-module (guix search-paths) - #:use-module (guix build-system) - #:use-module (guix build-system gnu) - #:use-module (guix packages) - #:export (%rakudo-build-system-modules - rakudo-build - rakudo-build-system)) - -;; Commentary: -;; -;; Standard build and install procedure for packages using the Rakudo -;; build system to be installed as system libraries. This is -;; implemented as an extension of `gnu-build-system'. -;; -;; Code: - -(define %rakudo-build-system-modules - ;; Build-side modules imported by default. - `((guix build rakudo-build-system) - ,@%gnu-build-system-modules)) - -(define (default-rakudo) - "Return the default Rakudo package." - - ;; Do not use `@' to avoid introducing circular dependencies. - (let ((module (resolve-interface '(gnu packages perl6)))) - (module-ref module 'rakudo))) - -(define (default-prove6) - "Return the default perl6-tap-harness package for tests." - (let ((module (resolve-interface '(gnu packages perl6)))) - (module-ref module 'perl6-tap-harness))) - -(define (default-zef) - "Return the default perl6-zef package." - (let ((module (resolve-interface '(gnu packages perl6)))) - (module-ref module 'perl6-zef))) - -(define* (lower name - #:key source inputs native-inputs outputs - system target - (rakudo (default-rakudo)) - (prove6 (default-prove6)) - (zef (default-zef)) - (with-prove6? #t) - (with-zef? #t) - #:allow-other-keys - #:rest arguments) - "Return a bag for NAME." - (define private-keywords - '(#:target #:rakudo #:prove6 #:zef #:inputs #:native-inputs)) - - (and (not target) ;XXX: no cross-compilation - (bag - (name name) - (system system) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs - - ;; Keep the standard inputs of 'gnu-build-system'. - ,@(standard-packages))) - (build-inputs `(("rakudo" ,rakudo) - ,@(if with-prove6? - `(("perl6-tap-harness" ,prove6) - ,@(if with-zef? - `(("perl6-zef" ,zef)) - '())) - '()) - ,@native-inputs)) - (outputs outputs) - (build rakudo-build) - (arguments (strip-keyword-arguments private-keywords arguments))))) - -(define* (rakudo-build name inputs - #:key - source - (search-paths '()) - (tests? #t) - (phases '%standard-phases) - (outputs '("out")) - (system (%current-system)) - (guile #f) - (with-zef? #t) - (with-prove6? #t) - (imported-modules %rakudo-build-system-modules) - (modules '((guix build rakudo-build-system) - (guix build utils)))) - "Build SOURCE using PERL6, and with INPUTS." - (define builder - (with-imported-modules imported-modules - #~(begin - (use-modules #$@(sexp->gexp modules)) - (rakudo-build #:name #$name - #:source #+source - #:search-paths '#$(sexp->gexp - (map search-path-specification->sexp - search-paths)) - #:phases #$phases - #:system #$system - #:tests? #$tests? - #:outputs #$(outputs->gexp outputs) - #:inputs #$(input-tuples->gexp inputs))))) - - (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) - system #:graft? #f))) - (gexp->derivation name builder - #:system system - #:guile-for-build guile))) - -(define rakudo-build-system - (build-system - (name 'rakudo) - (description "The standard Rakudo build system") - (lower lower))) - -;;; rakudo.scm ends here diff --git a/guix/build/rakudo-build-system.scm b/guix/build/rakudo-build-system.scm deleted file mode 100644 index 5cf1cc55bc..0000000000 --- a/guix/build/rakudo-build-system.scm +++ /dev/null @@ -1,153 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Efraim Flashner <efraim <at> flashner.co.il> -;;; Copyright © 2021 Maxime Devos <maximedevos <at> telenet.be> -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (guix build rakudo-build-system) - #:use-module ((guix build gnu-build-system) #:prefix gnu:) - #:use-module (guix build utils) - #:use-module (ice-9 ftw) - #:use-module (ice-9 match) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26) - #:export (%standard-phases - rakudo-build)) - -;; Commentary: -;; -;; Builder-side code of the standard Rakudo package build procedure. -;; -;; Code: - -(define* (check #:key tests? inputs with-prove6? #:allow-other-keys) - (if (and tests? (assoc-ref inputs "perl6-tap-harness")) - ;(if (and tests? with-prove6?) - (invoke "prove6" "-I=lib" "t/") - (format #t "test suite not run~%")) - #t) - -(define* (install #:key inputs outputs with-zef? #:allow-other-keys) - "Install a given Perl6 package." - (let* ((out (assoc-ref outputs "out")) - (perl6 (string-append out "/share/perl6"))) - (if (assoc-ref inputs "perl6-zef") - ;(if with-zef? - (begin - (let ((zef (string-append (assoc-ref inputs "perl6-zef") - "/bin/zef"))) - (setenv "HOME" (getcwd)) - (mkdir-p perl6) - (invoke zef "install" "--verbose" "." - ;; Don't install any of the following: - "--/depends" "--/build-depends" "--/test-depends" - (string-append "--install-to=" perl6)) - (delete-file (string-append perl6 "/repo.lock"))) - #t) - (begin - (let ((inst (string-append (assoc-ref inputs "rakudo") - "/share/perl6/tools/install-dist.p6"))) - (setenv "RAKUDO_RERESOLVE_DEPENDENCIES" "0") - (setenv "RAKUDO_MODULE_DEBUG" "1") ; be verbose while building - (invoke inst (string-append "--to=" perl6) "--for=site")))))) - -(define* (install-libs #:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (lock "lib/.precomp/.lock")) - (when (file-exists? lock) - (delete-file "lib/.precomp/.lock")) - (copy-recursively "lib" (string-append out "/share/perl6/lib")) - #t)) - -(define* (install-bins #:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (when (file-exists? "bin") - (for-each (lambda (file) - (install-file file (string-append out "/bin")) - (chmod (string-append out "/" file) #o555)) - (find-files "bin" ".*"))) - (when (file-exists? "sbin") - (for-each (lambda (file) - (install-file file (string-append out "/sbin")) - (chmod (string-append out "/" file) #o555)) - (find-files "sbin" ".*"))) - #t)) - -(define* (install-resources #:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (when (file-exists? "resources") - (copy-recursively "resources" - (string-append out "/share/perl6/resources"))) - #t)) - -(define* (wrap #:key inputs outputs #:allow-other-keys) - (define (list-of-files dir) - (map (cut string-append dir "/" <>) - (or (scandir dir (lambda (f) - (let ((s (stat (string-append dir "/" f)))) - (and (eq? 'regular (stat:type s)) - (not (wrapped-program? f)))))) - '()))) - - (define bindirs - (append-map (match-lambda - ((_ . dir) - (list (string-append dir "/bin") - (string-append dir "/sbin")))) - outputs)) - - ;; Do not require bash to be present in the package inputs - ;; even when there is nothing to wrap. - ;; Also, calculate (sh) only once to prevent some I/O. - (define %sh (delay (search-input-file inputs "bin/bash"))) - (define (sh) (force %sh)) - - (let* ((out (assoc-ref outputs "out")) - (var `("PERL6LIB" "," prefix - ,(cons (string-append out "/share/perl6/lib," - out "/share/perl6/site/lib," - out "/share/perl6/vendor/lib") - (search-path-as-string->list - (or (getenv "PERL6LIB") "") #\,))))) - (for-each (lambda (dir) - (let ((files (list-of-files dir))) - (for-each (cut wrap-program <> #:sh (sh) var) - files))) - bindirs) - #t)) - -(define %standard-phases - ;; No need for 'bootstrap, 'configure or 'build. - (modify-phases gnu:%standard-phases - (delete 'bootstrap) - (delete 'configure) - (delete 'build) - (replace 'check check) - (replace 'install install) - (add-before 'install 'install-lib-dir install-libs) - (add-after 'install-lib-dir 'install-resources install-resources) - (add-after 'install-resources 'install-binaries install-bins) - ;; needs to be after 'install-binaries and all 'install phases - (add-after 'install 'wrap wrap))) - -(define* (rakudo-build #:key inputs (phases %standard-phases) - #:allow-other-keys #:rest args) - "Build the given Perl6 package, applying all of PHASES in order." - (apply gnu:gnu-build - #:inputs inputs #:phases phases - args)) - -;;; rakudo-build-system.scm ends here -- Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.