summaryrefslogtreecommitdiff
path: root/guix/self.scm
AgeCommit message (Collapse)Author
2019-01-17guix: self: Do not install (gnu system install).Mathieu Othacehe
As we do not want to add a dependency to newt and the graphical installer in (guix self), do not install (gnu system install). * guix/self.scm (*system-modules*): Remove (gnu system install) from "guix-system" scheme-node.
2019-01-09self: Drop support for Guix < 0.15 on Guile 2.0.Ludovic Courtès
* guix/self.scm (false-if-wrong-guile, package-for-guile): Remove. (specification->package): Remove "guile2.0-" variants. (compiled-guix): #:guile-for-build defaults to (default-guile). Use 'specification->package' instead of 'package-for-guile'. (guile-for-build): Remove. (guix-derivation): Use 'default-guile' instead of 'guile-for-build'. Check whether we're running on Guile 2.0 with PULL-VERSION < 1.
2019-01-09Remove most uses of the _IO*F constants.Ludovic Courtès
These constants, for use with 'setvbuf', were deprecated in Guile 2.2 and disappeared in Guile 3.0. Here we keep these constants in build-side code where removing them is not feasible. * guix/build/download-nar.scm (download-nar): Adjust 'setvbuf' calls to the Guile 2.2+ API. * guix/build/download.scm (open-socket-for-uri): Likewise. (open-connection-for-uri, url-fetch): Likewise. * guix/build/make-bootstrap.scm (make-stripped-libc): Likewise. * guix/build/union.scm (setvbuf) [guile-2.0]: New conditional wrapper. (union-build): Adjust to new API. * guix/ftp-client.scm (ftp-open, ftp-list, ftp-retr): Likewise. * guix/http-client.scm (http-fetch): Likewise. * guix/inferior.scm (proxy): Likewise. * guix/scripts/substitute.scm (fetch, http-multiple-get): Likewise. * guix/self.scm (compiled-modules): Likewise. * guix/ssh.scm (remote-daemon-channel, store-import-channel) (store-export-channel): Likewise. * guix/ui.scm (initialize-guix): Likewise. * tests/publish.scm (http-get-port): Likewise. * guix/store.scm (%newlines): Adjust comment.
2019-01-08self: Compress Info files.Ludovic Courtès
Fixes <https://bugs.gnu.org/33993>. Reported by Adonay Felipe Nogueira <adfeno@hyperbola.info>. * guix/self.scm (info-manual): Compress Info files.
2019-01-07self: Move all modules into a single directory.Ludovic Courtès
This halves the number of elements in %LOAD-PATH and %LOAD-COMPILED-PATH and halves the number of 'stat' calls as reported by: env -i $(type -P guix) build -e '(@ (gnu packages base) coreutils)' -nd * guix/self.scm (node-source+compiled, guile-module-union): New procedures. (guix-command): Remove 'compiled-modules' parameter. Remove 'source-directories' and 'object-directories' variables and add 'module-directory'. Change command so that it adds nothing but MODULE-DIRECTORY to %LOAD-PATH and %LOAD-COMPILED-PATH. (whole-package): Remove #:compiled-modules. Assume MODULES contains 'share/guile/site' and 'lib/guile' and adjust code accordingly. (compiled-guix): When PULL-VERSION is 1, use 'node-source+compiled' only. Remove #:compiled-modules argument to 'whole-package'. * guix/channels.scm (whole-package-for-legacy): Add 'module+compiled' and pass it to 'whole-package'.
2019-01-06hydra: Compute jobs in an inferior.Ludovic Courtès
Previously we would rely on auto-compilation of all the Guix modules. The complete evaluation would take ~15mn on berlin.guixsd.org and require lots of RAM. This approach should be faster since potentially only part of the modules are rebuilt. Furthermore, as a side-effect, it builds the derivations that 'guix pull' uses. * build-aux/hydra/gnu-system.scm: Remove 'eval-when' form. (hydra-jobs): New procedure. * gnu/ci.scm (package->alist, qemu-jobs, system-test-jobs) (tarball-jobs): Return strings for the 'license' field. * guix/self.scm (compiled-guix)[*cli-modules*]: Add (gnu ci).
2018-12-04etc: Add "ci.guix.info.pub" public key file.Ludovic Courtès
* etc/substitutes/ci.guix.info.pub: New file. * Makefile.am (dist_pkgdata_DATA): Add it. * guix/self.scm (miscellaneous-files): Add "share/guix/ci.guix.info.pub".
2018-12-03Merge branch 'core-updates'Ludovic Courtès
2018-12-02self: Provide UTF-8 locales when building the manual.Ludovic Courtès
Fixes <https://bugs.gnu.org/33580>. Reported by <znavko@tutanota.com>. * guix/self.scm (info-manual)[glibc-utf8-locales]: New variable. [build]: Add call to 'setenv' for "GUIX_LOCPATH".
2018-11-07Merge branch 'master' into core-updatesMarius Bakke
2018-11-06self: Install shell completion files.Ludovic Courtès
* guix/self.scm (miscellaneous-files): New procedure. (whole-package): Remove #:substitute-keys, add #:miscellany. [build]: Remove code for SUBSTITUTE-KEYS and add code to copy MISCELLANY to OUTPUT. (compiled-guix): Adjust call to 'whole-package'.
2018-11-06self: Rename 'sub-directory' to 'file-append*'.Ludovic Courtès
* guix/self.scm (sub-directory): Rename to... (file-append*): ... this. Add #:recursive? parameter and pass it to 'local-file'. (locale-data, info-manual, compiled-guix): Adjust accordingly.
2018-11-06self: Install substitute keys.Ludovic Courtès
* guix/self.scm (whole-package): Add #:substitute-keys and honor it. (compiled-guix): Pass #:substitute-keys to 'whole-package' when PULL-VERSION is one.
2018-11-06self: Remove extra paren in manual version string.Ludovic Courtès
* guix/self.scm (info-manual)[build]: Remove extra closing paren in VERSION.
2018-10-17Merge branch 'master' into core-updatesMarius Bakke
2018-10-10self: Use Guile 2.2 unconditionally for recent 'guix pull'.Ludovic Courtès
Fixes <https://bugs.gnu.org/32929>. Reported by Michael Bowcutt <mwb71@case.edu>. * guix/self.scm (guix-derivation)[guile]: Use "2.2" when PULL-VERSION >= 1. Likewise for the #:guile-version argument.
2018-09-09Merge branch 'master' into core-updatesMarius Bakke
2018-09-04Switch to Guile-Gcrypt.Ludovic Courtès
This removes (guix hash) and (guix pk-crypto), which now live as part of Guile-Gcrypt (version 0.1.0.) * guix/gcrypt.scm, guix/hash.scm, guix/pk-crypto.scm, tests/hash.scm, tests/pk-crypto.scm: Remove. * configure.ac: Test for Guile-Gcrypt. Remove LIBGCRYPT and LIBGCRYPT_LIBDIR assignments. * m4/guix.m4 (GUIX_ASSERT_LIBGCRYPT_USABLE): Remove. * README: Add Guile-Gcrypt to the dependencies; move libgcrypt as "required unless --disable-daemon". * doc/guix.texi (Requirements): Likewise. * gnu/packages/bash.scm, guix/derivations.scm, guix/docker.scm, guix/git.scm, guix/http-client.scm, guix/import/cpan.scm, guix/import/cran.scm, guix/import/crate.scm, guix/import/elpa.scm, guix/import/gnu.scm, guix/import/hackage.scm, guix/import/texlive.scm, guix/import/utils.scm, guix/nar.scm, guix/pki.scm, guix/scripts/archive.scm, guix/scripts/authenticate.scm, guix/scripts/download.scm, guix/scripts/hash.scm, guix/scripts/pack.scm, guix/scripts/publish.scm, guix/scripts/refresh.scm, guix/scripts/substitute.scm, guix/store.scm, guix/store/deduplication.scm, guix/tests.scm, tests/base32.scm, tests/builders.scm, tests/challenge.scm, tests/cpan.scm, tests/crate.scm, tests/derivations.scm, tests/gem.scm, tests/nar.scm, tests/opam.scm, tests/pki.scm, tests/publish.scm, tests/pypi.scm, tests/store-deduplication.scm, tests/store.scm, tests/substitute.scm: Adjust imports. * gnu/system/vm.scm: Likewise. (guile-sqlite3&co): Rename to... (gcrypt-sqlite3&co): ... this. Add GUILE-GCRYPT. (expression->derivation-in-linux-vm)[config]: Remove. (iso9660-image)[config]: Remove. (qemu-image)[config]: Remove. (system-docker-image)[config]: Remove. * guix/scripts/pack.scm: Adjust imports. (guile-sqlite3&co): Rename to... (gcrypt-sqlite3&co): ... this. Add GUILE-GCRYPT. (self-contained-tarball)[build]: Call 'make-config.scm' without #:libgcrypt argument. (squashfs-image)[libgcrypt]: Remove. [build]: Call 'make-config.scm' without #:libgcrypt. (docker-image)[config, json]: Remove. [build]: Add GUILE-GCRYPT to the extensions Remove (guix config) from the imported modules. * guix/self.scm (specification->package): Remove "libgcrypt", add "guile-gcrypt". (compiled-guix): Remove #:libgcrypt. [guile-gcrypt]: New variable. [dependencies]: Add it. [*core-modules*]: Remove #:libgcrypt from 'make-config.scm' call. Add #:extensions. [*config*]: Remove #:libgcrypt from 'make-config.scm' call. (%dependency-variables): Remove %libgcrypt. (make-config.scm): Remove #:libgcrypt. * build-aux/build-self.scm (guile-gcrypt): New variable. (make-config.scm): Remove #:libgcrypt. (build-program)[fake-gcrypt-hash]: New variable. Add (gcrypt hash) to the imported modules. Adjust load path assignments. * gnu/packages/package-management.scm (guix)[propagated-inputs]: Add GUILE-GCRYPT. [arguments]: In 'wrap-program' phase, add GUILE-GCRYPT to the search path.
2018-09-03Merge branch 'master' into core-updatesMarius Bakke
2018-09-02discovery: Add 'scheme-modules*'.Ludovic Courtès
* guix/self.scm (scheme-modules*): Move to... * guix/discovery.scm (scheme-modules*): ... here. New procedure. Make 'sub-directory' an optional parameter.
2018-08-28Merge branch 'master' into core-updatesMarius Bakke
2018-08-27self: Shrink the module search path of the 'guix' command.Ludovic Courtès
Previously we'd have lots of useless entries on the search paths, such as libtasn1, libidn2, zlib, gmp, etc. because they are propagated by gnutls. * guix/self.scm (guix-command)[source-directories, object-directories]: New variables. Use them in the body of "guix-command". Filter their items with 'file-exists?'.
2018-07-27gnu: guile: Remove version 2.2.2.Ludovic Courtès
* gnu/packages/guile.scm (guile-2.2.2): Remove. * guix/self.scm (guile-for-build): Remove special case for "2.2.2". (guix-derivation): Likewise. * build-aux/build-self.scm (build): Likewise.
2018-07-27gnu: guile: Update to 2.2.4.Ludovic Courtès
* gnu/packages/guile.scm (guile-2.2): Update to 2.2.4. (guile-2.2.4): Remove. * gnu/packages/package-management.scm (guix)[inputs]: Switch to GUILE-2.2. * guix/self.scm (guile-for-build): Likewise.
2018-07-19self: Use the new 'imported-files'.Ludovic Courtès
That way, the source of most nodes is now a content-addressed store item instead of a derivation. * guix/self.scm (<file-mapping>): New record type. (file-mapping-compiler): New procedure. (scheme-node): Use 'file-mapping' instead of 'imported-files'. (imported-files): Remove.
2018-07-02self: Build with Guile 2.2.4.Ludovic Courtès
* guix/self.scm (guile-for-build): In the "2.2" case, choose GUILE-2.2.4.
2018-07-02self: Use #:guile-for-build in the shebang of the 'guix' executable.Ludovic Courtès
* guix/self.scm (guix-command): Add #:guile and pass it to 'program-file'. (whole-package): Add #:guile and pass it to 'guix-command'. (compiled-guix): Pass #:guile to 'guix-command' and 'whole-package'.
2018-06-27self: Add dependency on GnuTLS.Ludovic Courtès
Fixes <https://bugs.gnu.org/31983>. Reported by Fis Trivial <ybbs.daans@hotmail.com>. * guix/self.scm (specification->package): Add "gnutls" and "guile2.0-gnutls". (compiled-guix)[gnutls]: New variable. [dependencies]: Add it.
2018-06-18self: Define derived '-directory' variables in config.scm.Ludovic Courtès
This is a followup to d6b5aa0b031f0e7091f7424ac616d1c4d10fed5b. * guix/self.scm (%config-variables): Remove %CONFIG-DIRECTORY, %STATE-DIRECTORY, %STORE-DATABASE-DIRECTORY, and %STORE-DIRECTORY. (make-config.scm): Define them here. * build-aux/build-self.scm (%config-variables, make-config.scm): Likewise.
2018-06-18build: Remove checks for 'nix-instantiate'.Ludovic Courtès
* guix/import/snix.scm (open-nixpkgs): Use "nix-instantiate" unconditionally. * configure.ac: Remove check for 'nix-instantiate'. * guix/config.scm.in (%nix-instantiate): Remove. * guix/self.scm (%dependency-variables): Remove '%nix-instantiate'. (make-config.scm): Remove it from the generated "config.scm". * build-aux/build-self.scm (%dependency-variables, make-config.scm): Likewise.
2018-06-18self: Make (guix config) generation really stateless.Ludovic Courtès
Previously the %CONFIG-VARIABLES list would be generated based on what the current (guix config) contains. Thus, it would include '%guix-register-program', which we recently removed, because existing (guix config) most likely contained that variable. Since its value could differ from machine to machine, the build farm could be building a different config.scm, thereby preventing people from getting substitutes. * guix/self.scm (%config-variables): Turn into a white list instead of taking all the remaining variables from the current (guix config). * build-aux/build-self.scm (%config-variables): Likewise.
2018-06-17self: Install .go files to 'lib/guile/X.Y/site-ccache'.Ludovic Courtès
* guix/self.scm (guix-command): Add 'compiled-modules' parameter and honor it. (whole-package): Likewise. (compiled-guix)[built-modules]: Turn into a procedure. When PULL-VERSION is 1, use separate source and compiled modules. When PULL-VERSION is 0, return a single directory containing both .scm and .go files.
2018-06-14self: Add 'guix-daemon' to the result.Ludovic Courtès
* gnu/packages/package-management.scm (guix-daemon): New variable. * guix/self.scm (whole-package): Add #:daemon and honor it. (compiled-guix): Pass #:daemon to 'whole-package'.
2018-06-14Remove 'guix-register' and its traces.Ludovic Courtès
* Makefile.am (SH_TESTS): Remove tests/guix-register.sh. * build-aux/pre-inst-env.in (GUIX_REGISTER): Remove. * gnu/build/install.scm (directives): Remove outdated comment. * gnu/build/vm.scm (root-partition-initializer): Update comment. * gnu/packages/package-management.scm (guix-register): Remove. * guix/config.scm.in (%sbindir, %guix-register-program): Remove. * guix/scripts/system.scm (install): Adjust docstring. * guix/self.scm (make-config.scm): Remove #:guix. Do not generate %sbindir and %guix-register-program. (specification->package): Remove "guix". * nix/guix-register/guix-register.cc: Remove. * nix/libstore/store-api.cc (decodeValidPathInfo): Remove. * nix/libstore/store-api.hh (decodeValidPathInfo): Remove declaration. * nix/local.mk (sbin_PROGRAMS, guix_register_SOURCES) (guix_register_CPPFLAGS, guix_register_LDFLAGS): Remove. * tests/guix-register.sh: Remove.
2018-06-14database: 'with-database' can now initialize new databases.Ludovic Courtès
* nix/libstore/schema.sql: Rename to... * guix/store/schema.sql: ... this. * Makefile.am (nobase_dist_guilemodule_DATA): Add it. * nix/local.mk (%D%/libstore/schema.sql.hh): Adjust accordingly. * guix/store/database.scm (sql-schema): New variable. (sqlite-exec, initialize-database, call-with-database): New procedures. (with-database): Rewrite in terms of 'call-with-database'. * tests/store-database.scm ("new database"): New test. * guix/self.scm (compiled-guix)[*core-modules*]: Add 'schema.sql' to #:extra-files.
2018-06-09self: Build the Info manual.Ludovic Courtès
* guix/self.scm (info-manual): New procedure. (whole-package): Add #:info and honor it. (compiled-guix): Pass #:info.
2018-06-09self: Compute and use locale data.Ludovic Courtès
* guix/self.scm (sub-directory, locale-data): New procedures. (guix-command): Add SOURCE parameter. Call 'locale-data' when SOURCE is true and use it in staged 'bindtextdomain' calls. (whole-package): Add #:command and honor it. (compiled-guix): Pass #:command to 'whole-package'.
2018-06-09self: Produce a complete package with the 'guix' command.Ludovic Courtès
* guix/self.scm (guix-command): New procedure. (compiled-guix): Add #:pull-version parameter. [command, package]: New variables. Honor PULL-VERSION. (guix-derivation): Add #:pull-version and pass it to 'compiled-guix'. * build-aux/build-self.scm (build-program): Add #:pull-version parameter. Pass it to 'guix-derivation'. (build): Add #:pull-version and pass it to 'build-program'. * build-aux/compile-as-derivation.scm: Pass #:pull-version to BUILD.
2018-06-02self: Do not build (guix man-db).Ludovic Courtès
* guix/self.scm (specification->package): Remove "guile-gdbm-ffi" and "guile2.0-gdbm-ffi". (compiled-guix)[guile-gdbm-ffi]: Remove. [dependencies]: Remove it. [*core-modules*]: Add "guix/man-db.scm" via #:extra-files. [*extra-modules*]: Exclude "guix/man-db.scm".
2018-06-02self: Include gnu/build/* in the result.Ludovic Courtès
Previously, modules like gnu/build/cross-toolchain.scm or gnu/build/svg.scm were missing from the result. * guix/self.scm (compiled-guix)[*system-modules*]: Add gnu/build/* to #:extra-files. (imported-files)[same-target?]: New procedure. [build]: Call 'delete-duplicates' on FILES.
2018-06-02self: 'compiled-files' builds the given list of files.Ludovic Courtès
* guix/self.scm (compiled-files): Add 'module-files' parameter. [build]: 'process-directory' now honors MODULE-FILES instead of building any '.scm' file it sees. (scheme-node): Adjust accordingly.
2018-06-02self: Improve backtraces for 'imported-files'.Ludovic Courtès
* guix/self.scm (imported-files): Pass #:env-vars.
2018-06-01self: Show backtraces on more columns.Ludovic Courtès
* guix/self.scm (compiled-modules): Add "COLUMNS" to #:env-vars.
2018-06-01self: Add dependency on guile-gdbm-ffi.Ludovic Courtès
Fixes a regression introduced in 331ac4cc239727992329207ba428b3f26cae91d9 whereby "guile-gdbm-ffi" would now be mandatory. * guix/self.scm (specification->package): Add "guile-gdbm-ffi" and "guile2.0-gdbm-ffi". (compiled-guix)[guile-gdbm-ffi]: New variables. [dependencies]: Add it.
2018-06-01build: Check for Guile-SQLite3.Ludovic Courtès
* m4/guix.m4 (GUIX_CHECK_GUILE_SQLITE3): New macro. * configure.ac: Use it and define 'HAVE_GUILE_SQLITE3'. * guix/self.scm (specification->package): Add "guile-sqlite3". (compiled-guix)[guile-sqlite3]: New variable. [dependencies]: Add it.
2018-05-31self: Reduce the set of dependencies.Ludovic Courtès
By mistake we were adding more dependencies than needed to the Scheme derivations. * guix/self.scm (compiled-guix)[dependencies]: Use 'package-transitive-propagated-inputs', not 'package-transitive-inputs'.
2018-05-07self: Add "guix-packages-base" derivation.Ludovic Courtès
This introduces an intermediate derivation, thereby reducing the amount of rebuild that needs to happen when "leaf" package modules are modified. * guix/self.scm (compiled-guix)[*core-package-modules*]: New variable. [*package-modules*, *system-modules*, *cli-modules*]: Depend on it. Add it to the directory union.
2018-04-11self: Produce a spliced (guix config) to placate Guile 2.0.Ludovic Courtès
Fixes 'guix pull' with Guile 2.0. See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27284#153>. * guix/self.scm (make-config.scm): Remove 'begin' in 'scheme-file' argument and pass #:splice? #t.
2018-04-11self: 'package-for-guile' really honors GUILE-VERSION.Ludovic Courtès
* guix/self.scm (package-for-guile): Pass GUILE-VERSION to 'false-if-wrong-guile'.
2018-04-11self: Remove 'eval-when' from in generated (guix config).Ludovic Courtès
* guix/self.scm (make-config.scm): Remove unneeded 'eval-when'.