Commit graph

320 commits

Author SHA1 Message Date
Ludovic Courtès 9102512748
news: Add entry for "guix graph -M".
* etc/news.scm: Add entry.
2021-09-21 15:16:20 +02:00
Xinglu Chen 3d15a19874
etc: committer: Amend previous commit if a copyright line was added.
Previously, the script would raise an error if a copyright line was added to a
file in gnu/packages/.  With this change, it will amend the previous commit
whenever a copyright line is added, and add the copyright line to the commit.

* etc/committer.scm.in (add-copyright-line): New procedure.
(main): Check if a copyright line was added and call ‘add-copyright-line’ if
necessary.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-21 15:15:52 +02:00
Thiago Jung Bauermann 5c4fd77097
etc: Add systemd files for running ‘guix gc’ periodically
* etc/guix-gc.service.in: New file.
* etc/guix-gc.timer: Likewise.
* .gitignore: Ignore generated ‘guix-gc.service’.
* nix/local.mk (nodist_systemdservice_DATA): Add ‘guix-gc.service’ and
‘guix-gc.timer’.
(EXTRA_DIST): Add ‘guix-gc.service.in’ and ‘guix-gc.timer’.
* doc/guix.texi (Binary Installation): Mention the new systemd files.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-09-20 14:18:21 +00:00
Ludovic Courtès 98712c14fe
etc: Add 'disarchive-manifest.scm'.
* etc/disarchive-manifest.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2021-09-14 11:50:58 +02:00
Ludovic Courtès 3b758dd22d
etc: Add 'source-manifest.scm'.
* etc/source-manifest.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2021-09-14 11:50:58 +02:00
Noah Evans a8dd285d5a
zsh completion: Add missing commands and arguments.
* etc/completion/zsh/_guix (_guix_install, _guix_remove, _guix_upgrade):
  New functions.
  (_guix_build, _guix_challenge, _guix_download, _guix_environment,
  _guix_packages, _guix_gc, _guix_hash, _guix_lint, _guix_package,
  _guix_publish, _guix_pull, _guix_refresh, _guix_size, _guix_system):
  Add some of the missing arguments.
  (_guix_cmds): Add missing commands.

Co-authored-by: Brice Waegeneire <brice@waegenei.re>
2021-08-28 17:57:50 +02:00
Sarah Morgensen 80fc776a61
etc/committer: Pass command-line arguments to main.
* etc/committer.scm.in: Call main with command line arguments.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-08-10 17:32:19 +02:00
Sarah Morgensen 73177859bc
etc/committer: Support custom commit messages.
Allow custom change commit messages by supplying a commit message and
optionally a changelog message as arguments.

* etc/committer.scm.in (break-string-with-newlines)
(custom-commit-message): New procedures.
(main)[change-commit-message*]: New sub-procedure. Use them.
(main): Use it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-08-10 17:32:19 +02:00
Maxime Devos 50c2dcd1c9
etc: committer: Support reading G-expressions.
Some package definitions use G-expressions (see, e.g., chez-scheme).
Import (guix gexp) such that Guile knows how to read those.
Otherwise, an exception such as the following might be raised:

ERROR: In procedure read:
In procedure scm_lreadr: gnu/services/networking.scm:480:16: Unknown # object: #\~

* etc/committer.scm.in: Import (guix gexp).

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2021-08-07 14:01:20 +02:00
Maxim Cournoyer 073904c553
guix-install.sh: Untabify.
* etc/guix-install.sh (sys_create_build_user): Normalize to spaces.
2021-07-14 08:50:22 -04:00
Maxim Cournoyer 4cbe0127a6
guix-install.sh: Prompt for configuring substitutes discovery.
Also ensure prompt_yes_no always print the message with a trailing space,
which is more pleasing to the eye.

* etc/guix-daemon.conf.in <--discover=no>: New guix-daemon option.
* etc/guix-daemon.service.in: Likewise.
* etc/init.d/guix-daemon.in: Likewise.
* etc/openrc/guix-daemon.in: Likewise.
* etc/guix-install.sh (configure_substitute_discovery): New procedure.
(sys_enable_guix_daemon): Ask the user whether automatic substitute discovery
should be enabled.  Set the '--discover' argument accordingly.
(prompt_yes_no): Add a trailing space to the message.
(sys_authorize_build_farms): Remove trailing space from the message argument.
* NEWS (Distribution): Add news.
2021-07-07 23:54:20 -04:00
Hartmut Goebel 7f06567b83
guix-install.sh: No longer export GUIX_PROFILE.
If GUIX_PROFILE is exported here, any subsequent
"source /some/other/profile/etc/profile" will set variables pointing to
"$HOME/.guix-profile" instead of pointing to the sourced profile.

* etc/guix-install.sh (sys_create_init_profile): No longer export GUIX_PROFILE.
2021-07-07 21:25:16 +02:00
Florian Pelz 20dfda3d9e
news: Add 'de' translation.
* etc/news.scm: Add German translation of 'guix pack --format=deb' entry.
2021-06-30 16:02:29 +02:00
Maxim Cournoyer 6396f0c235
news: Add entry for the new 'deb' guix pack format.
* etc/news.scm: Add entry.
2021-06-29 15:01:10 -04:00
Xinglu Chen d822c59243
etc: snippets: Use ‘hg-file-name’ when origin uses ‘hg-fetch’
Adjust to changes in commit aaafd19bd1.

* etc/snippets/scheme-mode/guix-origin: Use ‘hg-file-name’ instead of
‘string-append’ when ‘method’ for origin is ‘hg-fetch’.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-06-26 22:45:28 +02:00
Tobias Geerinckx-Rice fa0dc1229c
bash_completion: Complete options for ‘guix environment’.
Note that there are still plenty of bugs that this series didn't fix,
e.g.:

  $ guix time-machine -- system reconf<Tab>

* etc/completion/bash/guix (_guix_complete): Call _guix_complete_option
if the word at point looks like an option.
2021-06-16 12:13:39 +02:00
Tobias Geerinckx-Rice dc3ba8c836
bash completion: Complete options for the right command.
* etc/completion/bash/guix (_guix_complete_option): Receive two
arguments and complete the second based on the first, instead
of blindly completing the very last word based on the very first
(sub)command.
(_guix_complete): Adjust both calls.
2021-06-16 12:13:39 +02:00
Tobias Geerinckx-Rice 80a17aae79
bash completion: Really support subcommands.
* etc/completion/bash/guix (_guix_is_option): New function.
(_guix_is_command): Remove function to replace it with simple string
comparison…
(_guix_complete): …here.  Complete the ‘innermost’ command at point.
2021-06-16 12:13:39 +02:00
Tobias Geerinckx-Rice 0b17dc4aae
etc: indent-code.el: Remove any existing tabs.
* etc/indent-code.el (main): Call UNTABIFY on the sexp or entire buffer.
2021-06-12 10:26:02 +02:00
Ludovic Courtès f9d8206e5b
news: Fix typo.
* etc/news.scm: Remove 'x' introduced by mistake in
dfdcd9d812.
2021-06-08 09:07:36 +02:00
Christopher Baines 26499816a9
etc: Add "bordeaux.guix.gnu.org.pub" public key file.
* etc/substitutes/bordeaux.guix.gnu.org.pub: New file.
* Makefile.am (dist_pkgdata_DATA): Add it.
* guix/self.scm (miscellaneous-files): Add
"share/guix/bordeaux.guix.gnu.org.pub".
2021-06-07 11:31:17 +01:00
Florian Pelz dfdcd9d812
news: Add 'de' translation.
* etc/news.scm: Add German translation of 'guix import egg' entry.
2021-06-05 13:58:20 +02:00
Xinglu Chen c78d6c60cf
news: Add entry for 'guix import egg'.
* etc/news.scm: Add entry.
2021-06-03 13:06:52 +02:00
Xinglu Chen bdc298ecee
import: Add CHICKEN egg importer.
* guix/import/egg.scm: New file.
* guix/scripts/import/egg.scm: New file.
* tests/egg.scm: New file.
* Makefile.am (MODULES, SCM_TESTS): Register them.
* po/guix/POTFILES.in: Likewise.
* guix/scripts/import.scm (importers): Add egg importer.
* doc/guix.texi (Invoking guix import, Invoking guix refresh): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-06-03 13:05:18 +02:00
Marius Bakke 35bd94a492
etc: Add more SELinux permissions for the daemon.
* etc/guix-daemon.cil.in (guix_daemon): Add more permissions, necessary for
garbage collection.
2021-05-22 19:53:17 +02:00
Maxim Cournoyer b7cbca221f
Merge branch 'version-1.3.0' 2021-05-11 22:42:59 -04:00
Maxim Cournoyer 74009c4cf0
guix-install.sh: Exit early if Guix is already installed.
* etc/guix-install.sh (sys_create_store): Move the check & exit before The
Guix binary archive is unpacked.  Re-indent tar extraction command.
2021-05-05 11:01:07 -04:00
Maxim Cournoyer 5b0ce3393b
guix-install.sh: Propose automatically fetching OpenPGP keys.
Via, for example, yes | ./guix-install.sh.

* etc/guix-install.sh (prompt_yes_no): New procedure.
(chk_gpg_keyring, sys_authorize_build_farms): Use it.
2021-05-05 11:01:07 -04:00
Maxim Cournoyer e61fe664a4
guix-install.sh: Please the shellcheck linter.
* etc/guix-install.sh <FUNCNAME>: Explicitly refer to the first item of the
FUNCNAME array.
(ROOT_HOME): Replace variable by ~root directly; manually expanding it via
echo was not necessary.
(chk_gpg_keyring): Use an if branch for the exit to avoid a warning about
expression precedence.
(chk_term) <ansi_term>: Remove unused variable.
(guix_get_bin) <wget, gpg>: Test the commands directly.  Use an array for the
wget arguments, which can then be properly expanded.
(sys_create_store): Disable SC1090 for the source command, as we don't care
about following the sourced script.
<_msg>: Reuse the GUIX_PROFILE variable in the message.
(sys_create_build_user) <getent>: Test the command directly.
2021-05-05 11:01:06 -04:00
Ricardo Wurmus 570b3d32b9
etc: Break long lines in commit messages.
* etc/committer.scm.in (break-string): New procedure.
(change-commit-message): Use it.
2021-05-04 11:52:23 +02:00
Maxim Cournoyer e64af2060e
guix-install.sh: Add support for more than one signing key.
The forthcoming 1.3.0 release will be signed with my personal GnuPG key; the
installation script needs to tell users how to fetch it.

* etc/guix-install.sh (OPENPGP_SIGNING_KEY_ID): Remove variable.
(GPG_SIGNING_KEYS): New associative array.
(chk_gpg_keyring): Process all the keys contained in the above array.
(main) <GUIX_BINARY_FILE_NAME>: Double quote variable.
2021-05-01 01:24:16 -04:00
Maxim Cournoyer bf1628038c
guix-install.sh: Ensure GUIX_BINARY_FILE_NAME is an absolute path.
This is necessary as the directory context is changed in the script, breaking
the use of a relative path.

* etc/guix-install.sh (main) <GUIX_BINARY_FILE_NAME>: Resolve its absolute
path via the 'realpath' command.
2021-05-01 01:23:08 -04:00
Maxim Cournoyer 38aab0ea8b
guix-install.sh: Allow overriding the Guix binary source.
This is useful for example for testing release candidates not yet uploaded to
the FTP, or for testing manually downloaded images from the CI.

* etc/guix-install.sh (main)[GUIX_BINARY_FILE_NAME]: When this variable is
defined, use it as the file name of a Guix binary, instead of automatically
retrieving the latest archive from the FTP.
2021-05-01 01:23:02 -04:00
Maxim Cournoyer 185709221d
guix-install.sh: Add support for more than one signing key.
The forthcoming 1.3.0 release will be signed with my personal GnuPG key; the
installation script need to tell users how fetch it.

* etc/guix-install.sh (OPENPGP_SIGNING_KEY_ID): Remove variable.
(GPG_SIGNING_KEYS): New associative array.
(chk_gpg_keyring): Process all the keys contained in the above array.
(main) <GUIX_BINARY_FILE_NAME>: Double quote variable.
2021-05-01 01:03:18 -04:00
Maxim Cournoyer 8214e70fa8
guix-install.sh: Ensure GUIX_BINARY_FILE_NAME is an absolute path.
This is necessary as the directory context is changed in the script, breaking
the use of a relative path.

* etc/guix-install.sh (main) <GUIX_BINARY_FILE_NAME>: Resolve its absolute
path via the 'realpath' command.
2021-04-29 14:09:22 -04:00
Ludovic Courtès 42ac8da474
maint: Require "emacs-no-x" instead of "emacs" on armhf-linux.
* etc/release-manifest.scm (%base-packages/armhf): New variable.
(%base-manifest): Use it.
2021-04-27 22:22:15 +02:00
Ludovic Courtès a363e430d6
maint: Don't require 'bootstrap-tarballs' for powerpc64le-linux.
* etc/release-manifest.scm (%base-manifest): Special-case
"powerpc64le-linux".
2021-04-27 17:53:43 +02:00
Ludovic Courtès c59cc2383d
import: Remove Nix importer.
This importer has suffered from bitrot and no longer works with current
Nix and Nixpkgs.  See <https://bugs.gnu.org/32339> and
<https://bugs.gnu.org/36255>.

* guix/import/snix.scm, guix/scripts/import/nix.scm,
tests/snix.scm: Remove.
* Makefile.am (MODULES, SCM_TESTS): Remove them.
* guix/scripts/import.scm (importers): Remove "nix".
* build-aux/test-env.in: Remove NIXPKGS variable.
* configure.ac: Remove '--with-nixpkgs' option.
* doc/guix.texi (Invoking guix import): Remove bit about "guix import
nix".
* etc/completion/fish/guix.fish: Likewise.
2021-04-25 14:34:09 +02:00
Maxim Cournoyer 51f95d4e64
guix-install.sh: Allow overriding the Guix binary source.
This is useful for example for testing release candidates not yet uploaded to
the FTP, or for testing manually downloaded images from the CI.

* etc/guix-install.sh (main)[GUIX_BINARY_FILE_NAME]: When this variable is
defined, use it as the file name of a Guix binary, instead of automatically
retrieving the latest archive from the FTP.
2021-04-24 10:32:40 -04:00
Ludovic Courtès d95168321f
import: Remove Nix importer.
This importer has suffered from bitrot and no longer works with current
Nix and Nixpkgs.  See <https://bugs.gnu.org/32339> and
<https://bugs.gnu.org/36255>.

* guix/import/snix.scm, guix/scripts/import/nix.scm,
tests/snix.scm: Remove.
* Makefile.am (MODULES, SCM_TESTS): Remove them.
* guix/scripts/import.scm (importers): Remove "nix".
* build-aux/test-env.in: Remove NIXPKGS variable.
* configure.ac: Remove '--with-nixpkgs' option.
* doc/guix.texi (Invoking guix import): Remove bit about "guix import
nix".
* etc/completion/fish/guix.fish: Likewise.
2021-04-20 12:13:16 +02:00
Leo Famulari 8e214c53a4
guix-install.sh: Add the build users to the 'kvm' group.
Fixes <https://bugs.gnu.org/42129>.

* etc/guix-install.sh (sys_create_build_user): If a 'kvm' group exists,
add it to the guixbuilders' lists of supplementary groups.
2021-04-14 15:32:51 -04:00
Morgan Smith a6ac141ebb
etc/committer: Add missing newline.
* etc/committer.scm.in (main): Add newline to message.

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2021-04-12 21:42:15 +02:00
Morgan Smith d375eddda0
etc/committer: Use git plumbing instead of porcelain.
* etc/committer.scm.in (diff-info): Use "git diff-files" instead of "git diff".
(old-sexp): Use "git cat-file" instead of "git show".

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2021-04-12 21:42:15 +02:00
Ricardo Wurmus c762df5478
etc/committer: Disable diff colors.
Reported by: morgansmith on IRC.

* etc/committer.scm.in (diff-info): Invoke "git diff" with "--no-color".
2021-04-08 17:12:06 +02:00
Ricardo Wurmus 83991a34d5
etc/committer: Recompute hunks before processing changes.
* etc/committer.scm.in (main): Re-evaluate diff-info after processing
insertions.
2021-04-08 03:10:14 +02:00
Ricardo Wurmus 43fb6b765d
etc/committer: Record minimal context for hunks to avoid problems.
With zero context new definitions would be applied to the wrong location in
the file.  More context lines lead to larger hunks, though, so we use just one
line of context.

* etc/committer.scm.in (diff-info): Invoke "git diff" with one line of
context.
[info]: Merge line break and first line.
(lines-to-first-change): New procedure.
(old-sexp, new-sexp): Use it.
2021-04-08 03:10:14 +02:00
Ricardo Wurmus 56270c1275
etc/committer: Define delay duration as a variable.
* etc/committer.scm.in (%delay): New variable.
(main): Use it.
2021-04-08 03:10:14 +02:00
Ricardo Wurmus c8c3afe848
etc/committer: Handle package additions.
* etc/committer.scm.in (<hunk>)[diff]: Rename this field...
[diff-lines]: ...to this.
[definition?]: New field.
(hunk->patch): Join diff lines.
(diff-info): Do not join diff lines; record whether a hunk is a new
definition.
(commit-message): Rename this procedure...
(change-commit-message): ...to this.
(add-commit-message): New procedure.
(main): Handle new package definitions before changes.
2021-04-08 03:10:13 +02:00
Florian Pelz 86617c92c6
news: Add 'de' translation.
* etc/news.scm: Add German translation of user activation entry.
2021-04-04 07:47:12 +02:00
Ludovic Courtès 3b6247ba6d
news: Clarify time window for account activation vulnerability.
* etc/news.scm: Tweak wording about skeleton files.
2021-04-03 22:19:28 +02:00