Age | Commit message (Expand) | Author |
2017-09-03 | gnu-maintenance: GNU updater no longer relies on FTP access....Partly fixes <https://bugs.gnu.org/28159>.
Suggested by Hartmut Goebel <h.goebel@crazy-compilers.com>.
* guix/gnu-maintenance.scm (%gnu-file-list-uri): New variable.
(ftp.gnu.org-files, latest-gnu-release): New procedures.
(%gnu-updater)[pred]: Change to GNU-HOSTED?.
[latest]: Change to LATEST-GNU-RELEASE.
(%gnu-ftp-updater): New variable.
| Ludovic Courtès |
2017-09-03 | memoization: (mlambda () ...) allows for inner 'define'....Previously (mlambda () (define foo 2) bar) would trigger a syntax error.
* guix/memoization.scm (%mlambda): In the zero-argument case, move
BODY... to a lambda to allow for inner 'define' and such.
| Ludovic Courtès |
2017-09-03 | build: Fix helpful output for emacs-build-system install phase....Detecting when no files were installed was broken when switching to use
cond. Test with (not (null? ...)) to fix this.
* guix/build/emacs-build-system.scm (install): Fix detecting when no files
were installed.
| Christopher Baines |
2017-09-01 | build: emacs-build-system: Make the install phase more helpful....Modify the install phase to detect when nothing has been installed, and error
if this happens. This is preferable to continuing, and allowing the next phase
to fail.
Also, when nothing can be found to be installed, print out each file that was
considered, along with the regular expressions that were used to include and
exclude it.
* gnu/build/emacs-build-system.scm (install-file?): Add additional error
checking and logging.
| Christopher Baines |
2017-09-01 | scripts: Remove 'max-silent-time' from the default options....Fixes <http://bugs.gnu.org/27157>.
Having a finite default `max-silent-time' value for scripts such as 'guix
environment' could lead to timeouts when building subtitutes; this was
undesirable.
This change also fixes client behavior to match the documentation, which
is that by default the daemon's settings are honored.
* guix/scripts/archive.scm (%default-options): Remove max-silent-time entry.
* guix/scripts/copy.scm (%default-options): Likewise.
* guix/scripts/environment.scm (%default-options): Likewise.
* guix/scripts/pack.scm (%default-options): Likewise.
* guix/scripts/package.scm (%default-options): Likewise.
* guix/scripts/pull.scm (%default-options): Likewise.
* guix/scripts/system.scm (%default-options): Likewise.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxim Cournoyer |
2017-08-26 | Merge branch 'core-updates' | Marius Bakke |
2017-08-25 | download: Remove a SourceForge mirror that never returns 404....* guix/download.scm (%mirrors)[sourceforge]: Remove
nbtelecom.dl.sourceforge.net, which never returns 404 responses. This causes
download failures due to hash mismatch, effectively preventing secondary
source URLs from being queried.
| Mark H Weaver |
2017-08-24 | graft: Correctly replace references near the end of the scan buffer....Fixes <http://bugs.gnu.org/28212>.
Reported by Leo Famulari <leo@famulari.name>.
* guix/build/graft.scm (replace-store-references): When I >= END, check
whether WRITTEN > END and call 'get-bytevector-n!' when it is.
* tests/grafts.scm (buffer-size): New variable.
("replace-store-references, <http://bugs.gnu.org/28212>"): New test.
| Ludovic Courtès |
2017-08-24 | Revert "graph: Provide access to the package record in the emit functions."...This reverts commit 5d7e8543659874682b618bba799ba7cd6ffce554, which
broke 'tests/graph.scm' and broke node types not related to <package>
objects, such as '%reference-node-type'.
| Ludovic Courtès |
2017-08-24 | packages: Use Guile 2.0 for grafting....Works around <https://bugs.gnu.org/28211>.
Reported by Marius Bakke <mbakke@fastmail.com>.
* guix/packages.scm (guile-2.0): New procedure.
(package-derivation, package-cross-derivation): Use it when computing
the #:guile argument to 'graft-derivation'.
| Ludovic Courtès |
2017-08-23 | gnu: bootloader: Deprecate "device" field in favor of "target"....* gnu/bootloader.scm (<bootloader-configuration>): Deprecate "device" field in
favor of "target" field. This is mostly a renaming but also a generalization
to support UEFI targets being paths to a mounted partition instead of a device
name.
* gnu/system/examples/bare-bones.tmpl:
* gnu/system/examples/desktop.tmpl:
* gnu/system/examples/lightweight-desktop.tmpl:
* gnu/system/examples/vm-image.tmpl:
* gnu/system/install.scm:
* gnu/tests.scm:
* gnu/tests/install.scm:
* gnu/tests/nfs.scm:
* tests/system.scm: Adapt all invocations of bootloader-configuration.
* guix/scripts/system.scm (perform-action): Rename device argument to
bootloader-target.
(process-action): Adapt caller.
* doc/guix.texi (Proceeding with the Installation):
* doc/guix.texi (Bootloader Configuration): Update documentation.
| Andy Wingo |
2017-08-23 | gnu: scripts: Cleanup regarding "gnu system" bootloader devices....* guix/scripts/system.scm (install-bootloader, install): Remove unused
"device" argument.
(reinstall-bootloader, perform-action): Adapt callers.
| Andy Wingo |
2017-08-21 | Merge branch 'master' into core-updates | Marius Bakke |
2017-08-20 | guix download: Support retrieving local file without the URI scheme....* guix/scripts/download.scm (guix-download): Treat the URL argument as a local
file path when it fails on 'string->uri'. Call 'fetch' with the processed
'uri' instead of the original URL argument.
* tests/guix-download.sh: Adjust accordingly.
| 宋文武 |
2017-08-19 | pack: Add "none" compressor....* guix/scripts/pack.scm (%compressors): Add compressor "none"; prepend
extension with ".".
(self-contained-tarball, docker-image): Assume compressor extensions start
with period.
* doc/guix.texi (Invoking guix pack): Document it.
| Ricardo Wurmus |
2017-08-09 | Merge branch 'master' into core-updates | Mark H Weaver |
2017-08-09 | download: Add the canonical GnuPG download site....* guix/download.scm (%mirrors)<gnupg>: Add https://gnupg.org.
| Leo Famulari |
2017-08-09 | profiles: Only check file contents if the file exists....* guix/profiles.scm (fonts-dir-file): Check that files exist before using
"empty-file?".
| Ricardo Wurmus |
2017-08-06 | Merge branch 'master' into core-updates | Mark H Weaver |
2017-08-04 | build: Add minify build system....* guix/build-system/minify.scm: New file.
* guix/build/minify-build-system: New file.
* Makefile.am (MODULES): Add new files.
* doc/guix.texi (Build Systems): Document minify-build-system.
| Ricardo Wurmus |
2017-08-02 | pull: Honor '--no-grafts'....* guix/scripts/pull.scm (guix-pull): Parameterize %GRAFT? as a function
of OPTS.
| Ludovic Courtès |
2017-08-02 | pull: Use the commit ID as the version string....* guix/scripts/pull.scm (build-from-source): Add #:commit parameter.
Pass it to BUILD.
(build-and-install): Add #:commit and pass it to 'build-from-source'.
(guix-pull): Pass #:commit to 'build-and-install'.
| Ludovic Courtès |
2017-08-02 | pull: Fetch source code from Git....* guix/scripts/pull.scm (%snapshot-url, with-environment-variable)
(with-PATH): Remove.
(ensure-guile-git!): New procedure.
(%repository-url): New variable.
(%default-options): Add 'repository-url' and 'ref'.
(show-help, %options): Add '--commit' and '--url'.
(temporary-directory, first-directory, interned-then-deleted)
(unpack): Remove.
(build-from-source): Rename 'tarball' to 'source'. Remove call to
'unpack'.
(build-and-install): Rename 'tarball' to 'source'.
(honor-lets-encrypt-certificates!, report-git-error): New procedures.
(with-git-error-handling): New macro.
(guix-pull)[fetch-tarball]: Remove.
Wrap body in 'with-git-error-handling'. Rewrite to use
'latest-repository-commit'.
* build-aux/build-self.scm (build): Print an error message and exit when
GUILE-GIT is #f.
* doc/guix.texi (Invoking guix pull): Mention Git. Document '--commit'
and '--branch'.
| Ludovic Courtès |
2017-08-01 | Merge branch 'master' into core-updates | Marius Bakke |
2017-08-01 | graph: Provide access to the package record in the emit functions....* guix/graph.scm (export-graph): Pass the node to the emit functions, instead
of the node's label.
| Roel Janssen |
2017-08-01 | guix package: Allow `guix package -u' to fuction as before....This is a follow up to 6ddf97f81bb99a73f00e30ad5fc19577872b5b49
* guix/scripts/package.scm (%options) <"-u">: Only check for a flag when
there is an ARG after '-u'.
| Efraim Flashner |
2017-08-01 | lint: formatting: Detect sexp boundaries....* guix/scripts/lint.scm (report-formatting-issues)[last-line]: Remove.
[sexp-last-line]: New procedure.
Use it.
| Ludovic Courtès |
2017-07-31 | guix package: Warn when invoked with '-u -something'....Fixes <https://bugs.gnu.org/27820>.
Reported by Hartmut Goebel <h.goebel@crazy-compilers.com>.
* guix/scripts/package.scm (%options) <"-u">: Emit a warning when ARG
starts with "-".
| Ludovic Courtès |
2017-07-30 | git-download: Remove call to 'canonicalize-path'....* guix/git-download.scm (git-predicate): Remove call to
'canonicalize-path' since this could lead to discrepancies. For
instance it broke 'make update-guix-package' since it passes a
non-canonical directory name.
| Ludovic Courtès |
2017-07-28 | bootloader: Use <menu-entry> for the bootloader side....* gnu/bootloader.scm (menu-entry-device-mount-point): New variable. Export it.
(<menu-entry>: New field "device".
* gnu/bootloader/grub.scm (grub-confgiuration-file): Handle <menu-entry>
entries.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Handle
<menu-entry> entries.
* gnu/system.scm (menu->entry->boot-parameters): Delete variable.
(boot-parameters->menu-entry): New variable. Export it.
(operating-system-bootcfg): Make OLD-ENTRIES a list of <menu-entry>.
* guix/script/system.scm (reinstall-bootloader): Fix bootcfg usage.
(perform-action): Fix bootcfg usage.
| Danny Milosavljevic |
2017-07-28 | utils: Factorize XDG directory handling....* guix/ui.scm (config-directory): Remove.
* guix/utils.scm (xdg-directory, config-directory): New procedures.
(cache-directory): Rewrite in terms of 'xdg-directory'.
* guix/scripts/substitute.scm (%narinfo-cache-directory): Pass #:ensure?
#f to 'cache-directory'.
| Ludovic Courtès |
2017-07-28 | Merge branch 'master' into core-updates | Marius Bakke |
2017-07-27 | weather: Show "-m" option in help message....Reported by Alex Kost <alezost@gmail.com>.
* guix/scripts/weather.scm (show-help): Show "-m".
| Ludovic Courtès |
2017-07-25 | git-download: Speed up 'git-predicate'....Adjust 'git-predicate' to use data structures that perform better when used
with git repositories with a large number of files.
Previously when matching either a regular file or directory, 'git-predicate'
would search a list with a length equal to the number of files in the
repository. As a search operation happens for roughly every file in the
repository, this meant that the time taken to use 'git-predicate' to traverse
all the files in a repository was roughly exponential with respect to the
number of files in the repository.
Now, for matching regular files or symlinks, 'git-predicate' uses a vhash
using the inode value as the key. This should perform roughly in constant
amount of time, instead of linear with respect to the number of files in the
repository.
For matching directories, 'git-predicate' now uses a tree structure stored in
association lists. To check if a directory is in the tree, the tree is
traversed from the root. The time complexity of this depends on the shape of
the tree, but it should be an improvement on searching through the list of all
files.
* guix/git-download.scm (files->directory-tree, directory-in-tree?): New
procedures.
(git-predicate): Compute DIRECTORY-TREE. Turn INODES into a vhash.
Adjust body of lambda accordingly.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Christopher Baines |
2017-07-25 | offload: Fix potential file descriptor and memory leak....The '%slots' list could grow indefinitely; in practice though,
guix-daemon is likely to restart 'guix offload' often enough.
* guix/scripts/offload.scm (%slots): Remove.
(choose-build-machine): Don't 'set!' %SLOTS. Return the acquired slot
as a second value.
(process-request): Adjust accordingly. Release the returned slot after
'transfer-and-offload'.
| Ludovic Courtès |
2017-07-25 | offload: Disconnect sessions created by 'machine-load'....This fixes a memory leak that can be seen by running:
(map (lambda _ (machine-load m)) (iota 1000))
* guix/scripts/offload.scm (machine-load): Add call to 'disconnect!'.
| Ludovic Courtès |
2017-07-25 | Add 'guix weather'....* guix/scripts/weather.scm: New file.
* Makefile.am (MODULES): Add it.
* doc/guix.texi (Substitutes, Invoking guix publish): Mention "guix
weather".
(Invoking guix weather): New node.
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
| Ludovic Courtès |
2017-07-24 | import: cpan: Updater returns a list of URLs....* guix/import/cpan.scm (latest-release): Return a list in the 'urls'
field of 'upstream-source'.
| Ludovic Courtès |
2017-07-23 | Merge branch 'master' into core-updates | Leo Famulari |
2017-07-21 | publish: Make the cache eviction policy less aggressive....Suggested by Mark H Weaver <mhw@netris.org>.
* guix/scripts/publish.scm (nar-expiration-time): New procedure.
(render-narinfo/cached): Use it as the #:entry-expiration passed to
'maybe-remove-expired-cache-entries'.
| Ludovic Courtès |
2017-07-21 | publish: Avoid 'valid-path?' RPC for non-existent items....* guix/scripts/publish.scm (render-narinfo/cached): Call 'file-exists?'
before calling 'valid-path?'. This makes the 404 path slightly faster.
| Ludovic Courtès |
2017-07-21 | store: Rewrite 'store-path-hash-part' to not use regexps....* guix/store.scm (store-path-hash-part): Rewrite without using a
regexp. This speeds up 'guix substitute'.
| Ludovic Courtès |
2017-07-21 | publish: Remove 'regexp-exec' call from the hot path....* guix/scripts/publish.scm (extract-narinfo-hash): Rewrite without
resorting to regexps.
| Ludovic Courtès |
2017-07-21 | base32: Export the base32 charsets....* guix/base32.scm (%nix-base32-charset, %rfc4648-base32-charset): New
variables.
| Ludovic Courtès |
2017-07-21 | substitute: Avoid repeated calls to 'length'....* guix/scripts/substitute.scm (fetch-narinfos)[update-progress!]: Move
'length' call outside of lambda.
| Ludovic Courtès |
2017-07-21 | substitute: Optimize hash-part-to-path conversion on non-200 responses....Previously this operation was linear in the number of requests and
involved costly calls to 'string-contains'.
* guix/scripts/substitute.scm (fetch-narinfos)[hash-part->path]: New
procedure.
[handle-narinfo-response]: Use it for caching when CODE is not 200.
| Ludovic Courtès |
2017-07-20 | gexp: Slightly improve error reporting for 'local-file'....Reported by Ricardo Wurmus.
* guix/gexp.scm (local-file): Define using 'syntax-case' instead of
'syntax-rules'. Explicitly handle the zero-argument case and the
use-as-an-identifier case.
| Ludovic Courtès |
2017-07-20 | licenses: Add MirOS license....* guix/licenses.scm (miros): New variable.
| Arun Isaac |
2017-07-20 | guix package: '-l' correctly handles zero-generation profiles....* guix/scripts/package.scm (process-query) <'list-generations>: Properly
handle the case where 'profile-generations' returns the empty list.
| Ludovic Courtès |
2017-07-20 | guix package: Trim trailing slashes from the profile name....Fixes <https://bugs.gnu.org/25762>.
Reported by Ricardo Wurmus <rekado@elephly.net>.
* guix/scripts/package.scm (canonicalize-profile): Trim trailing slashes
from PROFILE.
| Ludovic Courtès |