The need for this use case appeared when attempting to install Guix on a truly
minimal image made with Buildroot, which lacked enough GNU components that I
had to extract a guix pack to /gnu before attempting installation, which would
then refuse to proceed because of the existing /gnu.
* etc/guix-install.sh: Document environment variables.
(sys_create_store) [GUIX_ALLOW_OVERWRITE]: Skip pre-existing installation
checks and output a warning. Extract the tarball directly to /.
* etc/teams.scm.in (git-patch->revisions): New procedure.
(main) [cc-members]: New match pattern to support patch file argument.
[get-maintainer]: Simplify using the newly introduced procedure from above.
(main): Update usage doc.
Series-changes: 2
- New: support passing a patch file to the cc-members command
This can be used as a compatibility mode with the get_maintainer.pl Perl
script included in the Linux (or U-Boot) source tree.
* etc/teams.scm.in (git-patch->commit-id): New procedure.
(main) <get-maintainer>: Register new command. Document it.
Series-changes: 2
- Move newline character (~%) in usage output to the bottom
We only need to check if git-commit-mode is t, not enable it in all text-mode
buffers.
* etc/snippets/tempel/text-mode: Remove unwanted git-commit-mode invocation.
This is a temporary measure to work around the fact that we're currently
lacking the necessary CPU power and human power to build everything up
to 'gcc-toolchain'.
* etc/release-manifest.scm (%base-packages/hurd): Comment out
"gcc-toolchain" for now.
Racket's variant of Chez Scheme is defined in that file.
* etc/teams.scm.in (racket)[#:scope]: Add gnu/packages/chez.scm.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes <https://issues.guix.gnu.org/58858>.
* etc/guix-install.sh (main): Use 6 'X' characters in the template, as this is
the minimum required by Busybox's mktemp (which matches glibc's mktemp
behavior).
Reported-by: conses <contact@conses.eu>
This started out as a bug-fix for a GUI login loop that was resulting from XDG_DATA_DIRS
not including any of the host distro's directories. The solution was to export the vari-
able (with fail-safe defaults) before source-ing GUIX_PROFILE/etc/profile. It turns out
changes have already been made to ensure that XDG_DATA_DIRS, etc. are always exported
before anything guix-specific. So, this export is no longer necessary.
For reference, the aforementioned bug was found on a Debian 11 machine and it's guix.sh
init profile for guix version 1.2.
* etc/guix-install.sh (sys_create_init_profile): Remove unnecessary
XDG_DATA_DIRS export.
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
* etc/guix-install.sh: Rename /etc/profile.d/guix.sh to zzz-guix.sh.
This script refers to environment variables set by the host distribution.
They may be set in other scripts in /etc/profile.d, which must therefore
be run first.
Example: in Ubuntu 20.04, XDG_DATA_DIRS is set in
/etc/profile.d/xdg_dirs_desktop_session.sh
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* etc/teams.scm.in (python): Add guix/build/pyproject-build-system.scm and
guix/build-system/pyproject.scm to python team's scope.
Signed-off-by: Christopher Baines <mail@cbaines.net>
Don't remove the emacs package, as it does build and substitutes are
available. Do remove the guix package though, as it doesn't build due to Guile
memory issues while compiling the package modules.
* etc/release-manifest.scm (%base-packages/armhf): Don't replace the emacs
package, remove the guix package.
(%base-manifest): Remove FIXME comment as %base-packages/armhf doesn't relate
to build power.
When reviewing patches, whose commit logs don't follow the structure outlined
in “Submitting Patches”, a reviewer might be tempted to use snippets to
rewrite them. This makes it so that their attempt, while not immediately
succeeding, isn't completely thwarted.
* etc/snippets/tempel/text-mode (add\ , remove\ , rename\ , update\ )
(addcl\ , https\ ): Use an empty "p" field if (car (magit-staged-files))
fails.
Avoid printing
Press return to continue...[1666352494.051]: Starting installation…
[1666352648.869]: …
when the return itself wasn't echoed on the console.
* etc/guix-install.sh (welcome): Add a carriage return to the prompt,
so that the next line of output may overwrite it.
This doesn't affect the installation (yet), but reserves the right to
default to safe values other than ‘y’ in future.
* etc/guix-install.sh (welcome): Warn if the ‘return’ wasn't.
Commit 6a2e303d3a had modified prompt_yes_no to only read a single character,
aiming to ease the user experience. This was, in retrospect, a bad idea, as
it makes user input error more likely and introduces complexity.
This commit reverts to line-oriented input, while preserving the default yes
value so that a user can simply hit 'Enter' at the prompt in place of typing
"yes".
* etc/guix-install.sh (_flush): Delete function.
(prompt_yes_no): Restore line-oriented read. Remove loop. Make anything else
than yes means no. Use Bash features to streamline definition.
Reported-by: Lars-Dominik Braun <lars@6xq.net> and others.
* etc/guix-install.sh (_flush): New function.
(prompt_yes_no): Clear input, then only read the first character, silently.
Add the [Yes/no] string to the message. When a newline is entered by the
user, treat it as the default value, which is "yes".
(chk_gpg_keyring): Remove "(yes/no)" from the prompt message.
(configure_substitute_discovery): Likewise.
(sys_authorize_build_farms): Likewise.
The current move is never correct. It flip-flops between car and cadr for
the destination. Since the position of the destination is not actually a
fixed point in the list of changes, use a more robust method of inferring it.
* etc/snippets/tempel/text-mode (move\ ): Infer source and destination from
washed diffs. Process new module before destination.
* etc/news.scm: Add Portuguese translation of entries about WSL system images
and about Guix System image API documentation.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* etc/teams.scm (find-teams-by-scope): Differentiate between raw strings
and regexps. Make raw string matches strict.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Add a scope list to each team. This list defines all the files and
directories that are mentored by the team.
Also add a cc-members command that takes two Git revision strings as input,
add returns the members that should be CC'ed given the files impacted between
the two revisions.
* etc/teams.scm.in (<team>)[scope]: New field.
(team, list-teams): Adapt those procedures.
(find-team-by-scope, diff-revisions): New procedures.
(main): Add a "cc-members" command.
* doc/contributing.texi ("Teams"): Document it.
("Sending a Patch Series"): Adapt it.
The en dash is used to separate pairs of words or numbers. The em dash is the
one used to separate sentences. In addition, in English text we are using the
convention of not separating the dash with spaces.
* etc/news.scm: Change the en dash to em in entry about Emacs native
compilation.
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
This is consistent with what's done by 'cross-jobs' in (gnu ci).
* etc/release-manifest.scm (%cross-manifest): Remove "x86_64-linux-gnu"
and "i686-linux-gnu" from the list returned by 'targets'.
* etc/snippets/tempel/scheme-mode: New file.
* etc/snippets/tempel/text-mode: New file.
* etc/snippets/scheme-mode: Moved from here...
* etc/snippets/yas/scheme-mode: ... to here.
* etc/snippets/text-mode: Moved from here...
* etc/snippets/yas/text-mode: ... to here.
* doc/contributing.texi ("The Perfect Setup"): Adjust yasnippet setup
accordingly. Add tempel setup.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* etc/time-travel-manifest.scm (<guix-instance-compiler>): Use a separate
cache per system so that parallel system evaluations do no step on each
other's toes.
The menu entry reference is kept in English because the manual isn't
translated to Portuguese yet.
* etc/news.scm: Add Portuguese translation of 'guix style -f' entry.
Signed-off-by: Julien Lepiller <julien@lepiller.eu>
* gnu/ci.scm (channel-build-system, channel-source->package): Remove.
* gnu/packages/package-management.scm (channel-source->package): New
procedure, moved from (gnu ci).
* guix/build-system/channel.scm: New file, with code moved from (gnu ci).
* doc/guix.texi (Build Systems): Document it.
This manifest makes it easy to test travels from the current revision
back to the revision of a past Guix release.
Suggested by zimoun <zimon.toutoune@gmail.com>.
* etc/time-travel-manifest.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
If "$HOME/.guix-home/profile" exists, use it for GUIX_PROFILE instead of
"$HOME/.guix-profile".
* etc/guix-install.sh (sys_create_init_profile): Check for 'guix home'
profile.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
The default values from the XDG base directory specification make little
sense for Guix System, and some scripts in Guix assume that they are not
"empty or unset": for example, see <https://issues.guix.gnu.org/56050>.
On foreign distros, however, omitting the default values is likely to
break software from the distro, perhaps even preventing the desktop
environment from starting. To smooth over the difference, use the
system-wide configuration to ensure the environment variables are always
explicitly set on foreign distros.
* etc/guix-install.sh (sys_create_init_profile): Explicitly initialize
XDG base directory variables.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
We now correctly recognise ‘guix -Abcdef’ as equivalent to ‘guix -f’.
* etc/completion/bash/guix (_guix_is_short_option, guix_is_long_option):
New functions.
(_guix_is_dash_f, _guix_is_dash_l, _guix_is_dash_L, _guix_is_dash_m)
(_guix_is_dash_C, _guix_is_dash_p): Use them.
* etc/committer.scm.in (hunk-types): New variable.
(<hunk>): Rename hunk-definition? getter to 'hunk-type'.
(diff-info): Mute a git warning by separating file names from arguments with
'--'. Rename the 'definitions?' variable to 'type'.
Use the 'addition type when a new package addition is detected, 'removal when
removed else #f.
(add-commit-message): Re-indent.
(remove-commit-message): New procedure.
(main)[definitions]: Make commit message conditional depending on whether it
is an addition or removal.
[changes]: Adjust indentation.
This avoids a naming conflict for 'filter', provided by both (srfi srfi-1)
and (sxml xpath).
* etc/committer.scm.in: Use 'use-modules' instead of 'import', and use a
prefix for the (sxml xpath) module.
(new-sexp): Adjust accordingly.
(change-commit-message): Likewise.
* gnu/ci.scm (%cross-targets): Remove it ...
(cross-jobs): ... and use the targets procedure instead.
* etc/release-manifest.scm: Adapt it.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Until now, 'current-guix-package' was parameterized in the wrong
context. Thus, 'current-guix' would end up building a variant of the
'guix' package instead of the package returned by
'channel-source->package', which is much less expensive to build.
* etc/system-tests.scm (mparameterize): New macro.
(tests-for-current-guix): Change the 'value' field of each <system-test>
record to parameterize 'current-guix-package' for good.
The current regexp simply matches the first occurence, which more often than
not points to the *previous* variable.
* etc/snippets/text-mode/guix-commit-message-update-package ($1): Restrict
match to beginning of line with optional indentation.
Fixes, for example, "guix import pypi --<TAB>", which would previously
fail to show '--recursive'.
* etc/completion/bash/guix (_guix_complete_option): Fix options
completion for first subcommand.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Using 1eb40a6 was more correct than pragmatic, as those who have upgraded
their own Guix since then will not see the message urging them to upgrade
the Guix they don't know about.
This follows up on commit df830ef91a.
* etc/news.scm: Tie latest news entry to an arbitrary later commit.