summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* import: elpa: Emit new-style package inputs.Ludovic Courtès2021-07-11
| | | | | | * guix/import/elpa.scm (elpa-package->sexp)[dependencies]: Turn into a list of symbols. [maybe-inputs]: Wrap in 'list' instead of 'quasiquote'.
* import: print: Emit new-style package inputs when possible.Ludovic Courtès2021-07-11
| | | | | | | | * 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.
* import: cran: Emit new-style package inputs.Ludovic Courtès2021-07-11
| | | | | | | * 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.
* import: pypi: Emit new-style package inputs.Ludovic Courtès2021-07-11
| | | | | | | | * 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.
* packages: 'hidden-package' inherits the original package location.Ludovic Courtès2021-07-11
| | | | * guix/packages.scm (hidden-package): Inherit 'location' from P.
* Add 'guix style'.Ludovic Courtès2021-07-11
| | | | | | | | | * 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.
* utils: 'edit-expression' copies part of the original source map.Ludovic Courtès2021-07-11
| | | | | | | * guix/utils.scm (source-location-key/stamp): New procedure. (go-to-location): Use it. (move-source-location-map!): New procedure. (edit-expression): Call it.
* utils: 'edit-expression' modifies the file only if necessary.Ludovic Courtès2021-07-11
| | | | * guix/utils.scm (edit-expression): Check whether STR* equals STR.
* utils: Add 'go-to-location' with source location caching.Ludovic Courtès2021-07-11
| | | | | | | | * 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'.
* utils: 'edit-expression' no longer leaks file ports.Ludovic Courtès2021-07-11
| | | | | * guix/utils.scm (edit-expression): Use 'call-with-input-file' to make sure IN gets closed.
* packages: Add 'modify-inputs'.Ludovic Courtès2021-07-11
| | | | | | | * 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.
* packages: Add 'lookup-package-input' & co.Ludovic Courtès2021-07-11
| | | | | | | * 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.
* lint: Add 'input-labels' checker.Ludovic Courtès2021-07-11
| | | | | | | | * 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.
* packages: Allow inputs to be plain package lists.Ludovic Courtès2021-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* records: Support field sanitizers.Ludovic Courtès2021-07-11
| | | | | | | | | | * 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.
* utils: Add 'search-input-directory'.Ludovic Courtès2021-07-08
| | | | | | * guix/build/utils.scm (search-input-directory): New procedure. * doc/guix.texi (Build Utilities): Document it next to 'search-input-file'. Tweak wording.
* build-system/gnu: patch-shebangs: Also patch shebangs in "/libexec".Maxime Devos2021-07-08
| | | | | | | | | | | | | Shebangs in "/bin" and "/sbin" subdirectories are currently patched by patch-shebangs. But shebangs in "/libexec" currently aren't, even though they occasionally need to be. E.g. when using wrap-program on an executable in "libexec" without an explicit #:sh when cross-compiling. * guix/build/gnu-build-system.scm (patch-shebangs): Add "/libexec" to 'bin-directories'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* build-system/trivial: Honor build inputs when cross-compiling.Ludovic Courtès2021-07-05
| | | | | | | | | Fixes a regression introduced in 7d873f194ca69d6096d28d7a224ab78e83e34fe1 whereby host inputs would be missing altogether from '%build-inputs', which broke cross-compilation. * guix/build-system/trivial.scm (trivial-cross-build): Append HOST-INPUTS to the 'with-build-variables' argument.
* tests: Unset NIX_STORE_DIR when running external tests.Ludovic Courtès2021-07-05
| | | | | | | | | This is a followup to cfcead2e515c0dae02127e5a76496463898be6b6 and 47a6a938c3c4d0bbe7b6a3c64ff75d7bfb2f24fb, which made (guix packages) dependent on the value of NIX_STORE_DIR. * guix/tests.scm (call-with-external-store): Unset NIX_STORE_DIR before calling PROC.
* build-system/gnu: Define '%build-inputs' when cross-compiling.Ludovic Courtès2021-07-05
| | | | | | | | Reported by Maxime Devos. * guix/build-system/gnu.scm (gnu-cross-build)[builder]: Define '%build-inputs' as it existed before 7d873f194ca69d6096d28d7a224ab78e83e34fe1.
* build-system/texlive: Change default format to pdftexThiago Jung Bauermann2021-07-05
| | | | | | | | | | | | | | LuaTeX has a bug where sometimes it corrupts the heap and aborts. This causes the build of texlive packages to fail at random. The problem is being tracked at https://issues.guix.gnu.org/48064. While a fix isn't found, switch the default TeX format (and consequently also the engine) to pdftex to avoid the issue. * guix/build-system/texlive.scm (texlive-build): Change default value of the ‘tex-format’ key parameter to “pdftex”. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* packages: 'package-derivation' honors 'system' again.Ludovic Courtès2021-07-01
| | | | | | | | | | | | | | | | | Fixes a regression introduced in 7d873f194ca69d6096d28d7a224ab78e83e34fe1. Starting from 7d873f194ca69d6096d28d7a224ab78e83e34fe1, running guix build -s aarch64-linux sed on an x86_64-linux machine would return an x86_64-linux machine, whereby only the top derivation of the graph would be aarch64-linux while all its dependencies would be x86_64-linux. * guix/packages.scm (expand-input): Add 'system' parameter and honor it. (bag->derivation, bag->cross-derivation): Pass SYSTEM to 'expand-input'. * tests/packages.scm ("package-derivation, different system"): New test.
* Merge branch 'master' into core-updatesTobias Geerinckx-Rice2021-06-23
|\ | | | | | | | | | | | | | | Conflicts: gnu/packages/cups.scm gnu/packages/python-web.scm gnu/packages/web.scm guix/build/maven/pom.scm
| * profiles: Build union of inputs in the right order.Ludovic Courtès2021-06-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/49102>. Reported by Mathieu Othacehe <othacehe@gnu.org> and Tobias Geerinckx-Rice <me@tobias.gr>. Fixes a regression introduced in 8cef92d0633850d97c1a1d4521812268f56672be, whereby in case of file collisions, the "wrong" one would take precedence. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths): Perform a breadth-first traversal. Reverse INPUTS and SEARCH-PATHS in the base case. * tests/profiles.scm ("profile-derivation, ordering & collisions"): New test.
| * guix: java-utils: Look for actual jar files.Julien Lepiller2021-06-22
| | | | | | | | | | * guix/build/java-utils.scm (install-from-pom): Fix `find-files` to look only for jar files.
| * guix: maven: Use a temporary file to fix pom files.Julien Lepiller2021-06-22
| | | | | | | | | | * guix/build/maven/pom.scm (fix-pom-dependencies): Actually use the temporary file that was created.
| * guix: maven: Look in local packages when searching for package version.Julien Lepiller2021-06-22
| | | | | | | | | | * guix/build/maven/pom.scm (fix-pom-dependencies): Also look at local packages when looking for a package version.
| * guix: maven: Support fixing modules.Julien Lepiller2021-06-22
| | | | | | | | | | | | * guix/build/maven/pom.scm (fix-pom-dependencies): Support fixing modules that do not exist. * guix/build/maven-build-system.scm (fix-pom): Fix modules.
| * guix: maven: Support fixing extensions.Julien Lepiller2021-06-22
| | | | | | | | | | * guix/build/maven/pom.scm (fix-pom-dependencies): Add support for fixing extension versions.
| * guix: maven: Simplify finding local packages and modules.Julien Lepiller2021-06-22
| | | | | | | | | | | | | | | | | | | | * guix/build/maven-build-system (fix-pom): Fix a single pom file without recursing (fix-pom-files): Find local packages and all submodules, and fix them all at once. (add-local-package): Move to... * guix/build/maven/pom.scm (add-local-package): ...here. (pom-and-submodules, pom-local-packages): New procedures.
| * guix: maven: Simplify finding version and group information.Julien Lepiller2021-06-22
| | | | | | | | | | | | | | * guix/build/maven/pom.scm (pom-version, pom-groupid): Do not use inputs and local packages information anymore. Adapt file to new arguments. * guix/build/maven-build-system.scm: Adapt to new arguments. * guix/build/java-utils.scm: Adapt to new arguments.
| * guix: java-utils: Factorize pom.xml generation.Julien Lepiller2021-06-22
| | | | | | | | | | | | | | | | | | * guix/build/java-utils.scm (generate-pom.xml): New procedure. * gnu/packages/maven.scm (java-surefire-junit4): Use it. * gnu/packages/java.scm (java-qdox, java-jsr250, java-jsr305) (java-aopalliance, java-jboss-el-api-spec) (java-jboss-interceptors-api-spec): Use it. (java-qdox-M9): Ensure the generated pom file has the correct version.
| * import: egg: Edit egg->guix-package docstring.Tobias Geerinckx-Rice2021-06-21
| | | | | | | | * guix/import/egg.scm (egg->guix-package): Edit docstring.
| * import: launchpad: Fix typo.Brice Waegeneire2021-06-19
| | | | | | | | | | * guix/import/launchpad.scm (latest-release): Rename 'origin-github-uri' to 'origin-launchpad-uri'.
| * import: launchpad: Use repository to retrieve releases.Matthew James Kraai2021-06-19
| | | | | | | | | | | | | | | | * guix/import/launchpad.scm (latest-released-version): Use repository instead of package name. (latest-release): Pass repository to latest-released-version. Signed-off-by: Brice Waegeneire <brice@waegenei.re>
* | tests: Remove stale reference to %derivation-cache.Chris Marusich2021-06-22
| | | | | | | | | | | | * guix/tests.scm (call-with-external-store): Remove the stale reference to %derivation-cache. This was causing the tests to error out, since it was removed from (guix packages) in 7d873f194ca69d6096d28d7a224ab78e83e34fe1.
* | Merge branch 'master' into core-updatesMarius Bakke2021-06-19
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: this merge actually changes the 'curl' and 'python-attrs' derivations, as part of solving caf4a7a2770ef4d05a6e18f40d602e51da749ddc and 12964df69a99de6190422c752fef65ef813f3b6b respectively. 4604d43c0e (gnu: gnutls@3.6.16: Fix cross-compilation.) was ignored because it cannot currently be tested. Conflicts: gnu/local.mk gnu/packages/aidc.scm gnu/packages/boost.scm gnu/packages/curl.scm gnu/packages/nettle.scm gnu/packages/networking.scm gnu/packages/python-xyz.scm gnu/packages/tls.scm
| * profiles: Add "XAUTHORITY" to the precious variables.Ludovic Courtès2021-06-18
| | | | | | | | | | | | Suggested by Maxime Devos <maximedevos@telenet.be>. * guix/profiles.scm (%precious-variables): Add "XAUTHORITY".
| * profiles: Add 'load-profile'.Ludovic Courtès2021-06-18
| | | | | | | | | | | | | | | | | | * guix/profiles.scm (%precious-variables): New variable. (purify-environment, load-profile): New procedures. * guix/scripts/environment.scm (%precious-variables) (purify-environment, create-environment): Remove. (launch-environment): Call 'load-profile' instead of 'create-environment'. * tests/profiles.scm ("load-profile"): New test.
| * lint: check-patch-headers: Recognize Git diffs.Ludovic Courtès2021-06-18
| | | | | | | | * guix/lint.scm (check-patch-headers): Add "diff --git " prefix.
| * import: launchpad: Gracefully handle 404s from api.launchpad.net.Ludovic Courtès2021-06-18
| | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/49031>. Reported by Emad Alblueshi <emad.albloushi@gmail.com>. * guix/import/launchpad.scm (latest-released-version): Gracefully handle 'json-fetch' returning #f.
| * Start enabling substitutes from bordeaux.guix.gnu.org.Christopher Baines2021-06-18
| | | | | | | | | | | | | | | | | | | | | | | | In addition to substitutes from ci.guix.gnu.org. There are more changes that can be made in the future, but these changes seem like a good start. * config-daemon.ac (guix_substitute_urls): Add https://bordeaux.guix.gnu.org. * guix/scripts/substitute.scm (%default-substitute-urls): Add http://bordeaux.guix.gnu.org. * guix/store.scm (%default-substitute-urls): Add bordeaux.guix.gnu.org. * doc/guix.texi: Adjust accordingly. * doc/contributing.texi: Adjust accordingly.
| * pack: Fix the system value passed to build-docker-image.Maxim Cournoyer2021-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, the system value would be passed as x86_64 when using a i686-linux emulated system, e.g.: $ guix environment --system=i686-linux --ad-hoc guile -- \ guile -c '(display (utsname:machine (uname))) (newline)' x86_64 This change uses the Guile builtin %host-type variable, which doesn't have this problem: $ guix environment --system=i686-linux --ad-hoc guile -- \ guile -c '(display %host-type) (newline)' i686-unknown-linux-gnu * guix/scripts/pack.scm (docker-image)[#:system] Use %host-type as a fall-back when target is not defined. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| * hg-download: Make (guix swh) output visible.Ludovic Courtès2021-06-14
| | | | | | | | * guix/hg-download.scm (hg-fetch)[build]: Add 'setvbuf' calls.
| * hg-download: Support falling back to SWH.Xinglu Chen2021-06-14
| | | | | | | | | | | | | | * guix/hg-download.scm (hg-fetch): Fall back to fetching the source from SWH if the upstream source is missing. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| * swh: Support lookup of Hg tags.Xinglu Chen2021-06-14
| | | | | | | | | | | | | | * guix/swh.scm (lookup-origin-revision): Support lookup of Hg tags, not just Git tags. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| * hg-download: Remove bogus hg-reference-recursive? export.itd2021-06-14
| | | | | | | | | | | | * guix/hg-download.scm: Do not export undefined hg-reference-recursive?. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
| * guix package: Do not say "nothing to do" upon rollback & co.Ludovic Courtès2021-06-13
| | | | | | | | | | | | | | | | Previously, "guix package --switch-generations=4" or similar would print "nothing to do". * guix/scripts/package.scm (process-actions): Do not warn about "nothing to do" when one of %ACTIONS is requested.
| * doc, gnu, guix: Fix typos.Paul A. Patience2021-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/guix.texi: Fix various typos and reword a sentence. * gnu/packages/cpp.scm (cpplint)[description]: Fix typo. * gnu/packages/dns.scm (ldns): Fix typo in comment. * gnu/packages/games.scm (yamagi-quake2): Fix typo in comment. * gnu/packages/qt.scm (python-pyqtwebengine): Fix typo in comment. * gnu/packages/rails.scm (ruby-autoprefixer-rails): Fix typo in comment. * gnu/packages/syndication.scm (quiterss)[description]: Fix typo. * gnu/packages/terminals.scm (kmscon): Fix typo in comment. * gnu/packages/xml.scm (perl-xml-sax-base)[description]: Fix typo. (python-elementpath)[description]: Fix typo. * guix/build/asdf-build-system.scm (output-translation): Fix typo in docstring. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| * describe: 'current-channel-entries' ignores non-channel profile entries.Ludovic Courtès2021-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/48778>. A side effect of c47f3fc13562d82edfd2d47342574154c452843a is that (@ (guix describe) current-profile) provides the correct answer when the 'guix' package is installed in a profile. Consequently, the 'guix' package installed in /run/current-system/profile (for instance) would end up loading all the .scm files in that directory. * guix/describe.scm (current-channel-entries): Remove ENTRY if it lacks the 'source' property.