aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2021-07-18gnu: ada-ed: Adjust target system....* gnu/packages/ada.scm (ada-ed)[arguments]: Only set the target system when necessary. [supported-systems]: Add powerpc-linux. Efraim Flashner
2021-07-15gnu: libogg: Update to 1.3.5....* gnu/packages/xiph.scm (libogg): Update to 1.3.5. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Matthew James Kraai
2021-07-14build-system/meson: Support cross-compilation....For cross-compilation, meson needs to be passed a ‘cross file’ with information on the architecture, CPU type, endianness and operating system, and the name of the cross-compiler binaries. The new module (guix build meson-configuration) has some utilities for writing these cross files, used by 'make-cross-file' in a G-exp. The values for the cross file are generated by 'make-machine-alist' and 'make-binaries-alist'. 'make-machine-alist' and 'make-binaries-alist' live on the host side, such that new architectures and operating systems can be added without causing rebuilds for old architectures. All operating systems and targets supported by Guix are theoretically supported, but only aarch64-linux-gnu, powerpc64le-linux-gnu and arm-linux-gnueabihf have been tested. i686-linux-gnu has also been tested with a previous version of this patch series but required some changes to 'cross-base.scm'. This has been tested with: $ ./pre-inst-env guix build glib --target=TARGET * guix/build/meson-configuration.scm (write-section-header): New procedure. (write-assignment): New procedure. (write-assignments): New procedure. * guix/build-system/meson.scm (target-hurd?): New predicate. (make-machine-alist): New procedure. (make-binaries-alist): New procedure. (make-cross-file): New procedure. (meson-cross-build): New procedure. (lower)[build-inputs]: Add standard cross packages when cross-compiling. Do not include regular 'inputs' when cross-compiling. (lower)[host-inputs]: Include 'inputs' when cross-compiling. (lower)[target-inputs]: Add cross packages when cross-compiling. (lower)[build]: Call 'meson-cross-build' instead of 'cross-build' when cross-compiling. (lower)[target]: Set it. (lower)[private-keywords]: Do not remove #:target when cross-compiling. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14libelf: Update configure script and config.guess and config.sub....The current configure script is too old to find the cross-compiler and support variables passed as arguments. Also, config.guess and config.sub are too old to recognise powerpc64 and aarch64. Solve this by regenerating the 'configure' script and replacing 'config.guess' and 'config.sub'. * gnu/packages/elf.scm (libelf)[arguments]<#:phases>{configure}: Remove phase. (libelf)[arguments]<#:phases>{delete-configure}: Regenerate the configure script and replace 'config.guess' and 'config.sub'. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14glib: Look up "tzdata" in 'native-inputs', not 'inputs'....Otherwise, "tzdata" won't be found when cross-compiling and string-append will complain about types. Alternatively, "tzdata" could be moved from 'native-inputs' to 'inputs'. * gnu/packages/glib.scm (glib)[arguments]<#:phases>{pre-check}: Look up "tzdata" in 'native-inputs', not 'inputs'. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14glib: Verify the cross-compiled python is used in installed scripts....* gnu/packages/glib.scm (glib)[arguments]<#:disallowed-references>: Disallow the native python when cross-compiling. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14glib: Use a correct python in scripts when cross-compiling....During the build, a native python should be used as these scripts will be invoked during the build, but when installed, they should be a python for the system we're compiling for. * gnu/packages/glib.scm (glib)[arguments]<#:phases>{patch-python-references}: Look up "python" in 'native-inputs', not 'inputs'. (glib)[inputs]{python,python-wrapper,bash-minimal}: New inputs. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14openssl: Extract logic for computing CONFIGURE_TARGET_ARCH....By computing this value outside the build code, new targets can be added without causing rebuilds for other targets. * gnu/packages/tls.scm (target->openssl-target): New procedure. (openssl)[arguments]<#:phases>{set-cross-compile}: Use it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14openssl: Move all man pages to separate output, not only man3....There does not seem to be any reason to only move man3 pages. So, move all man pages to a separate output for documentation. * gnu/packages/tls.scm (openssl)[arguments]<#:phases>{move-extra-documentation}: Move all man pages, not only man3. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14openssl: Move documentation instead of copying and deleting it....* gnu/packages/tls.scm (openssl)[arguments]<#:phases>{move-extra-documentation}: Use 'rename-file' instead of 'copy-recursively' and 'delete-file-recursively'. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14openssl: Use G-exp machinery for referring to outputs....This doesn't fix anything broken, just for simplifying the code a little while we're rebuilding the world anyway. IMHO this makes the code a little more readable. * gnu/packages/tls.scm (openssl)[arguments]<#:phases>: Don't refer to the association list 'outputs', use #$output, #$output:doc and #$output:static instead. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14openssl: Make the #:phases argument a G-expression....This allows using this-package-native-input later. * gnu/packages/tls.scm (openssl)[arguments]<#:phases>: Make this a G-expression. (openssl-1.0)[arguments]<#:phases>: Likewise. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14openssl: Remove trailing #t from phases....* gnu/packages/tls.scm (openssl)[arguments]<#:phases>: Delete trailing #t. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14python: Fix reference to input when cross-compiling...."sitecustomize.py" is a native input, so look it up in 'native-inputs', not 'inputs'. * gnu/packages/python.scm (customize-site): Look up "sizecustomize.py" in 'native-inputs', not 'inputs'. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14libgpg-error: Fix cross-compilation error....TODO: inform upstream about the cross-compilation error. * gnu/packages/gnupg.scm (libgpg-error)[arguments]{fix-gen-lock-obj.sh}: Prevent generated header files from being sprinkled with ‘\c’. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14libgpg-error: Prevent silent miscompilation some systems....* gnu/packages/gpg.scm (libgpgerror)[arguments]<#:phases>{cross-symlinks}: Only link to src/syscfg/lock-obj-pub.linux-gnu.h if the package is being compiled for a Linux target. Do not link either if the architecture is unknown, as the headers vary with the architecture. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14libgpg-error: Remove trailing #f from phases....These aren't required anymore. * gnu/packages/gnupg.scm (libgpgerror)[arguments]{cross-symlinks}: Remove trailing #f. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14tzdata: Don't bother with cross-compiling....The time zone database is architecture-independent, so trying to cross-compile it is pointless! * gnu/packages/base.scm (tzdata)[arguments]<#:target>: Set to #f. (tzdata)[allowed-references]: Only include the "out" output itself, to make sure no (architecture-dependent) binaries are installed. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14net-base: Don't cross-compile....net-base is pure data, so cross-compiling is pointless. * gnu/packages/admin.scm (net-base)[arguments]<#:target>: Set to #f. (net-base)[arguments]<#:allowed-references>: Disallow all references. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14packages: Define this-package-input and this-package-native-input....These macros are intended to be used in build phases. More precisely, (assoc-ref %build-inputs "input") can be replaced by #$(this-package-input "input") or #+(this-package-native-input "native-input") as appropriate. * guix/packages.scm (package-input, package-native-input): New (unexported) procedures. (this-package-input, this-package-native-input): New macros. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14utils: Define a target-x86-32? and target-x86-64? predicate....* guix/utils.scm (target-x86-32?, target-x86-64?): New predicates. * tests/utils.scm ("target-x86-32?", "target-x86-64?"): New tests. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14utils: Give 'target-mingw?' a docstring....target-hurd? and target-linux? have docstrings, but target-mingw? doesn't. * guix/utils.scm (target-mingw?): Add a docstring. Reported-By: Mathieu Othacehe <othacehe@gnu.org> Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14utils: Define 'target-hurd?' predicate....It behaves similarily to the other target-...? procedures. The usage of hurd-triplet? / target-hurd? in libgc appears incorrect to me, as (%current-system) is normally never false. * gnu/packages/hurd.scm (hurd-triplet?): Move to ... * guix/util.scm (target-hurd?): ... here, let its argument default to (%current-target-system) or (%current-system), and write a docstring. * gnu/packages/hurd.scm (hurd-target?, hurd-system?): Use target-hurd? instead of hurd-triplet?. * gnu/packages/bdw-gc.scm (libgc): Likewise. * gnu/packages/cross-base.scm (cross-libc)[arguments]<#:configure-flags>: Likewise. (cross-libc)[arguments]<#:phases>: Likewise. (cross-libc)[arguments]<#:native-inputs>: Likewise. * gnu/packages/make-boostrap.scm (%glibc-stripped)[inputs]: Likewise. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14utils: Define 'target-linux?' predicate....* guix/utils.scm (target-linux?): New predicate. * tests/utils.scm ("target-linux?"): Test it. ("target-mingw?"): Also test ‘target-mingw?’. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos
2021-07-14openssl: Fix indentation....* gnu/packages/tls.scm (openssl): Fix indentation. Mathieu Othacehe
2021-07-13gnu: sdl2: Update to 2.0.14....* gnu/packages/sdl.scm (sdl2): Update to 2.0.14. Signed-off-by: Leo Famulari <leo@famulari.name> Vincent Legoll
2021-07-13gnu: openssl: Display configure environment....* gnu/packages/tls.scm (openssl)[arguments]: Adjust custom 'configure phase to also show how openssl is configured. Efraim Flashner
2021-07-13gnu: openssl: Honor configure-flags....* gnu/packages/tls.scm (openssl)[arguments]: Adjust custom 'configure phase to also use configure-flags. Efraim Flashner
2021-07-12doc: cookbook: Adjust example to simplified input style....* doc/guix-cookbook.texi (Extended example): Adjust example to new input style and adjust "Inputs" section. Ludovic Courtès
2021-07-12doc: cookbook: Remove trailing #t from extended example....* doc/guix-cookbook.texi (Extended example): Remove trailing #t from snippet and phases. Ludovic Courtès
2021-07-12gnu: fontconfig: Don't build PDFs....* gnu/packages/fontutils.scm (fontconfig-with-documentation)[arguments]: Add 'no-pdf-doc' phase. Ludovic Courtès
2021-07-11gnu: fontconfig: Use (locally) deterministic caching...Make fontconfig use directory contents rather than modification time to determine cache validity (by pretending that mtime is broken). * gnu/packages/patches/fontconfig-cache-ignore-mtime.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/fontutils.scm (fontconfig)[source]: Use it. [arguments]: Unset SOURCE_DATE_EPOCH for tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Sarah Morgensen
2021-07-11news: Add news entry for simplified package inputs....* etc/news.scm: Add entry. Ludovic Courtès
2021-07-11import: elpa: Emit new-style package inputs....* guix/import/elpa.scm (elpa-package->sexp)[dependencies]: Turn into a list of symbols. [maybe-inputs]: Wrap in 'list' instead of 'quasiquote'. Ludovic Courtès
2021-07-11import: print: Emit new-style package inputs when possible....* guix/import/print.scm (redundant-input-labels?): New procedure. (package->code)[package-lists->code]: Rename to... [inputs->code]: ... this. When 'redundant-input-labels?' returns true, emit label-less inputs. Adjust callers to new name. * tests/print.scm (pkg-with-inputs): Adjust accordingly. Ludovic Courtès
2021-07-11import: cran: Emit new-style package inputs....* guix/import/cran.scm (format-inputs): Emit symbols or 'specification->package' calls. (maybe-inputs): Wrap in 'list' instead of 'quasiquote'. * tests/cran.scm ("description->package"): Adjust accordingly. Ludovic Courtès
2021-07-11import: pypi: Emit new-style package inputs....* guix/import/pypi.scm (maybe-inputs): Wrap PACKAGE-INPUTS in 'list' instead of 'quasiquote'. (compute-inputs)[requirement->package-name/sort]: Return a list of symbols. * tests/pypi.scm ("pypi->guix-package, no wheel") ("pypi->guix-package, wheels"): Adjust accordingly. Ludovic Courtès
2021-07-11packages: 'hidden-package' inherits the original package location....* guix/packages.scm (hidden-package): Inherit 'location' from P. Ludovic Courtès
2021-07-11Add 'guix style'....* guix/scripts/style.scm, tests/style.scm: New files. * Makefile.am (MODULES, SCM_TESTS): Add them. * po/guix/POTFILES.in: Add 'guix/scripts/style.scm'. * doc/guix.texi (Invoking guix style): New node. (package Reference): Reference it. (Invoking guix lint): Likewise. Ludovic Courtès
2021-07-11utils: 'edit-expression' copies part of the original source map....* guix/utils.scm (source-location-key/stamp): New procedure. (go-to-location): Use it. (move-source-location-map!): New procedure. (edit-expression): Call it. Ludovic Courtès
2021-07-11utils: 'edit-expression' modifies the file only if necessary....* guix/utils.scm (edit-expression): Check whether STR* equals STR. Ludovic Courtès
2021-07-11utils: Add 'go-to-location' with source location caching....* guix/utils.scm (%source-location-map): New variable. (go-to-location): New procedure. (edit-expression): Use it instead of custom loop. * guix/packages.scm (package-field-location)[goto]: Remove. Use 'go-to-location' instead of 'goto'. Ludovic Courtès
2021-07-11utils: 'edit-expression' no longer leaks file ports....* guix/utils.scm (edit-expression): Use 'call-with-input-file' to make sure IN gets closed. Ludovic Courtès
2021-07-11gnu: Change inputs of core packages to plain lists....This is transparent: the resulting derivations are unchanged. * gnu/packages/base.scm (grep, sed, tar, patch, diffutils, glibc/hurd-headers) (coreutils, gnu-make, make-glibc-utf8-locales): Change input fields to plain package lists and use 'modify-inputs'. * gnu/packages/guile.scm (guile-1.8, guile-json-1, guile-json-3) (guile-gdbm-ffi, guile-sqlite3, guile-bytestructures) (guile-git, guile-zlib, guile-lzlib, guile-zstd, guile-next): Likewise. * gnu/packages/mes.scm (nyacc-0.86, nyacc-0.99) (nyacc, nyacc-1.00.2, mes-0.19, mes, m2-planet): Likewise. Ludovic Courtès
2021-07-11packages: Add 'modify-inputs'....* guix/packages.scm (inputs-sans-labels, replace-input): New procedures. (prepend, replace, modify-inputs): New macros. * doc/guix.texi (Defining Package Variants): Document 'modify-inputs'. * dir-locals.el: Add 'modify-inputs' and its keywords. Ludovic Courtès
2021-07-11packages: Add 'lookup-package-input' & co....* guix/packages.scm (lookup-input, lookup-package-input) (lookup-package-native-input, lookup-package-propagated-input) (lookup-package-direct-input): New procedures. * doc/guix.texi (package Reference): Document them. Ludovic Courtès
2021-07-11lint: Add 'input-labels' checker....* guix/lint.scm (check-input-labels): New procedure. (%local-checkers): Add 'input-labels' checker. * tests/lint.scm ("input labels: no warnings") ("input labels: one warning"): New tests. * doc/guix.texi (Invoking guix lint): Mention it. Ludovic Courtès
2021-07-11packages: Allow inputs to be plain package lists....* guix/packages.scm (add-input-label, sanitize-inputs): New procedures. (<package>)[inputs, propagated-inputs, native-inputs]: Add 'sanitize' property. * doc/guix.texi (Defining Packages, package Reference): (Defining Package Variants): Adjust examples accordingly. * tests/packages.scm ("transaction-upgrade-entry, zero upgrades, propagated inputs") ("transaction-upgrade-entry, grafts") ("package-transitive-inputs") ("package-transitive-supported-systems") ("package-closure") ("supported-package?") ("package-derivation, inputs deduplicated") ("package-transitive-native-search-paths") ("package-grafts, indirect grafts") ("package-grafts, indirect grafts, propagated inputs") ("package-grafts, same replacement twice") ("package-grafts, dependency on several outputs") ("replacement also grafted") ("package->bag, sensitivity to %current-target-system") ("package->bag, propagated inputs") ("package->bag, sensitivity to %current-system") ("package-input-rewriting/spec, identity") ("package-input-rewriting, identity"): Use the label-less input style. Ludovic Courtès
2021-07-11records: Support field sanitizers....* guix/records.scm (make-syntactic-constructor): Add #:sanitizers. [field-sanitizer]: New procedure. [wrap-field-value]: Honor F's sanitizer. (define-record-type*)[field-sanitizer]: New procedure. Pass #:sanitizer to 'make-syntactic-constructor'. * tests/records.scm ("define-record-type* & sanitize") ("define-record-type* & sanitize & thunked"): New tests. Ludovic Courtès
2021-07-11environment: Adjust to earlier 'gcc-bootstrap' search paths changes....This is a followup to fe6775f52b7f28a5bf74633ea4737c32a64b7e05. * tests/guix-environment.sh: Expect C_INCLUDE_PATH rather than CPATH in environment containing 'gcc-bootstrap'. Ludovic Courtès