Age | Commit message (Expand) | Author |
2021-10-26 | syscalls: Gracefully handle failure to load libc's libutil....In particular, libutil is not found when running code on a
statically-linked Guile.
Reported by mahmooz on #guix.
* guix/build/syscalls.scm (syscall->procedure): Add #:library parameter
and honor it.
(openpty, login-tty): Use 'syscall->procedure' instead of calling
'dynamic-link' directly.
| Ludovic Courtès |
2021-10-26 | syscalls: Add 'openpty' and 'login-tty'....* guix/build/syscalls.scm (openpty, login-pty): New procedures.
* tests/syscalls.scm ("openpty", "openpty + login-tty"): New tests.
| Ludovic Courtès |
2021-09-23 | syscalls: Deduplicate device number conversion....* guix/cpio.scm (device-number, device->major+minor):
Move to, and subsequently import from, …
* guix/build/syscalls.scm (device-number, device-number->major+minor):
…here. Note the slight name change.
(mounts): Replace 16-bit open code with a DEVICE-NUMBER call.
* gnu/build/linux-boot.scm (device-number):
Remove duplicate 16-bit implementation in favour of the one above.
(resume-if-hibernated): Reuse DEVICE-NUMBER->MAJOR+MINOR.
| Tobias Geerinckx-Rice |
2021-07-07 | Revert "syscalls: 'terminal-dimension' ignores EPERM."...This reverts commit 17a102332a253f0e3b1f511fa7bda2094264a77c.
See <https://github.com/koverstreet/bcachefs/pull/277>.
| Tobias Geerinckx-Rice |
2021-03-23 | syscalls: Fix RNDADDTOENTCNT on powerpc64le-linux....This fixes the failing test add-to-entropy-count in tests/syscalls.scm on
powerpc64le-linux.
* guix/build/syscalls.scm (RNDADDTOENTCNT): When %host-type starts with
"powerpc64le", set this to #x80045201. Otherwise, set it to #x40045201 as
before.
| Chris Marusich |
2021-03-23 | syscalls: Fix clone on powerpc64le-linux....This makes the clone procedure work correctly and fixes some test failures on
powerpc64le-linux, including tests/containers.scm.
* guix/build/syscalls.scm (clone): Add an entry for ppc64le.
| Chris Marusich |
2021-03-15 | syscalls: mounts: Fix a matching bug....On some systems, the columns in /proc/self/mountinfo look like this:
23 28 0:21 / /proc rw,nosuid,nodev,noexec,relatime shared:11 - proc proc rw
Before this change, the mounts procedure was written with the assumption that
the type and source could always be found in columns 8 and 9, respectively.
However, the proc(5) man page explains that there can be zero or more optional
fields starting at column 7 (e.g., "shared:11" above), so this assumption is
false in some situations.
* guix/build/syscalls.scm (mounts): Update the match pattern to use ellipsis
to match zero or more optional fields followed by a single hyphen. Remove the
trailing ellipsis, since multiple ellipses are not allowed in the same level.
The proc(5) man page indicates that there are no additional columns, so it is
probably OK to match an exact number of columns at the end like this.
| Chris Marusich |
2021-03-10 | syscalls: Define the ST_* constants and add 'statfs-flags->mount-flags'....* guix/build/syscalls.scm (linux?): New variable.
(define-statfs-flags): New macro.
(ST_RDONLY, ST_NOSUID, ST_NODEV, ST_NOEXEC, ST_SYNCHRONOUS)
(ST_MANDLOCK, ST_WRITE, ST_APPEND, ST_IMMUTABLE, ST_NOATIME)
(ST_NODIRATIME, ST_RELATIME): New variables.
(statfs-flags->mount-flags): New procedure.
| Ludovic Courtès |
2021-02-25 | syscalls: Add 'mounts' and the <mount> record type....* guix/build/syscalls.scm (<mount>): New record type.
(option-string->mount-flags, mount-flags)
(octal-decode, mounts): New procedures.
(mount-points): Rewrite in terms of 'mount'.
* tests/syscalls.scm ("mounts"): New test.
| Ludovic Courtès |
2021-02-25 | syscalls: Define MS_RELATIME....* guix/build/syscalls.scm (MS_RELATIME): New variable.
| Ludovic Courtès |
2020-06-08 | syscalls: set-thread-name, thread-name: Fix thinko....* guix/build/syscalls.scm (set-thread-name, thread-name): Oops, fix thinko.
| Jan (janneke) Nieuwenhuizen |
2020-06-08 | syscalls: set-thread-name, thread-name: Stub for the Hurd....Avoid crash
Backtrace:
guix/build/syscalls.scm:405:8: In procedure prctl: Function not implemented
because of missing prctl on the Hurd.
* guix/build/syscalls.scm (set-thread-name, thread-name): Rename to ...
(set-thread-name!/linux,thread-name/linux): ...this.
(set-thread-name, thread-name): Swtich between linux implementation and or
stub.
| Jan (janneke) Nieuwenhuizen |
2020-05-29 | syscalls: 'terminal-dimension' ignores EPERM....Fixes <https://bugs.gnu.org/41581>.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.
* guix/build/syscalls.scm (terminal-dimension): Add EPERM to the list of
errno code for FALL-BACK.
| Ludovic Courtès |
2020-05-29 | syscalls: Properly match %HOST-TYPE....Fixes <https://bugs.gnu.org/41546>.
Regression introduced in 0d371c633f7308cfde2432d6119d386a5c63198c.
* guix/build/syscalls.scm (write-socket-address!)
(read-socket-address): Use 'string-contains' instead of
'string-suffix?'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Jesse Dowell |
2020-05-15 | syscalls: Adjust 'sockaddr-in', 'sockaddr-in6' structs for the Hurd....* guix/build/syscalls.scm (sockaddr-in,sockaddr-in6): Rename to ...
(sockaddr-in/linux, sockaddr-in6/linux): ... this. Rename introduced bindings
as well.
(write-socket-address!/linux,read-socket-address/linux): Rename from
(write-socket-address!, read-socket-address): ... new switches between those
and ...
(write-socket-address!/hurd, read-socket-address/hurd): ... these new function.
| Jan (janneke) Nieuwenhuizen |
2020-05-14 | syscalls: Add 'getxattr'....* guix/build/syscalls.scm (getxattr): New procedure.
* tests/syscalls.scm ("getxattr, setxattr"): Test it, together with setxattr.
| Jan (janneke) Nieuwenhuizen |
2020-05-13 | syscalls: Add 'setxattr'....* guix/build/syscalls.scm (setxattr): New procedure.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Jan (janneke) Nieuwenhuizen |
2020-05-07 | syscalls: Add ioctl flags for the Hurd....Use
#include <stdio.h>
#include <net/if.h>
#include <hurd/ioctl.h>
int
main ()
{
printf ("SIOCSIFFLAGS #x%x\n", SIOCSIFFLAGS);
printf ("SIOCGIFADDR #x%x\n", SIOCGIFADDR);
printf ("SIOCSIFADDR #x%x\n", SIOCSIFADDR);
printf ("SIOCGIFNETMASK #x%x\n", SIOCGIFNETMASK);
printf ("SIOCSIFNETMASK #x%x\n", SIOCSIFNETMASK);
#if 0
printf ("SIOCADDRT #x%x\n", SIOCADDRT);
printf ("SIOCDELRT #x%x\n", SIOCDELRT);
#endif
}
to fill in some blanks. Adding and removing route apparently not supported.
* guix/build/syscalls.scm (SIOCSIFFLAGS SIOCGIFADDR, SIOCSIFADDR,
SIOCGIFNETMASK, SIOCSIFNETMASK):
| Jan (janneke) Nieuwenhuizen |
2020-05-05 | syscalls: 'define-c-struct' supports cross-compilation....Reported by Jan (janneke) Nieuwenhuizen <janneke@gnu.org>.
Before that, we'd always use the 'sizeof' and 'alignof' value obtained
from the host at macro-expansion time.
* guix/build/syscalls.scm (sizeof*, alignof*): When the target word size
differs from the host word size, emit a call to 'sizeof'/'alignof'.
| Ludovic Courtès |
2020-04-20 | syscalls: Fix Linux detection in 'readdir*'....* guix/build/syscalls.scm (readdir*): Fix Linux detection for
`arm-unknown-linux-gnueabihf'.
| Julien Lepiller |
2020-04-16 | syscalls: 'readdir*' chooses between the Linux and Hurd code at run time....Partly fixes <https://bugs.gnu.org/40574>.
Reported by Jan Nieuwenhuizen <janneke@gnu.org>.
Previously, we'd choose at expansion time whether to use the Hurd or the
Linux variant, taking the cross-compilation target into account. This
would lead to the wrong decision when (guix build syscalls) is evaluated
while we're cross-compiling to GNU/Hurd.
This is a followup to 1ab9e483391f8b62b873833ea71cb0074efa03e7.
* guix/build/syscalls.scm (define-generic-identifier)
(read-dirent-header, %struct-dirent-header, sizeof-dirent-header):
Remove.
(readdir*): Rename to...
(readdir-procedure): ... this, and add parameters.
(readdir*): Define as a call to 'readdir-procedure' as a function of
%HOST-TYPE.
| Ludovic Courtès |
2020-03-22 | syscalls: 'with-file-lock' re-grabs lock when reentering its dynamic extent....* guix/build/syscalls.scm (call-with-file-lock)
(call-with-file-lock/no-wait): Initialize PORT in the 'dynamic-wind'
"in" handler. This allows us to re-enter a captured continuation and
have the lock grabbed anew.
| Ludovic Courtès |
2020-01-19 | syscalls: Pass the right 'throw' arguments in 'call-with-file-lock/no-wait'....Reported by Matt Wette <matt.wette@gmail.com>
in <https://bugs.gnu.org/39194>.
* guix/build/syscalls.scm (call-with-file-lock/no-wait): When
re-throwing, pass KEY in addition to ARGS.
| Ludovic Courtès |
2019-12-07 | file-systems: Add support for 'strict-atime' and 'lazy-time' flags....* guix/build/syscalls.scm (MS_LAZYTIME): New variable.
* gnu/build/file-systems.scm (mount-flags->bit-mask): Add match rules for
'strict-atime' and 'lazy-time'.
* doc/guix.texi (File Systems): Add 'strict-atime' and 'lazy-time' to the list
of supported flags.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Guillaume Le Vaillant |
2019-11-29 | ui: 'with-profile-lock' keeps going upon ENOLCK....* guix/build/syscalls.scm (call-with-file-lock/no-wait): Really pass
ARGS to HANDLER. Return #f when HANDLER is called.
* guix/ui.scm (profile-lock-handler): Emit a mere warning upon ENOLCK.
| Ludovic Courtès |
2019-11-08 | guix: Add file-locking with no wait....* guix/build/syscalls.scm (with-file-lock/no-wait): New procedure.
(lock-file): Take a #:wait? key.
| Julien Lepiller |
2019-10-05 | syscalls: Add 'add-to-entropy-count'....* guix/build/syscalls.scm (RNDADDTOENTCNT): New variable.
(add-to-entropy-count): New procedure.
* tests/syscalls.scm ("add-to-entropy-count"): New test.
| Ludovic Courtès |
2019-07-19 | syscalls: 'define-as-needed' does not re-export local variables....Fixes <https://bugs.gnu.org/36723>.
Reported by Timothy Sample <samplet@ngyro.com>.
* guix/build/syscalls.scm (define-as-needed): Rewrite to use lower-level
module primitives; define VARIABLE only if it's not already defined to
avoid "re-exporting local variable" error.
| Ludovic Courtès |
2019-07-15 | syscalls: Use 'define-as-needed' for 'AT_' constants introduced in Guile 2.2.5....* guix/build/syscalls.scm (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR)
(AT_SYMLINK_FOLLOW, AT_NO_AUTOMOUNT, AT_EMPTY_PATH): Define using
'define-as-needed'.
| Ludovic Courtès |
2019-06-27 | syscalls: Add 'terminal-rows'....* guix/build/syscalls.scm (terminal-dimension): New procedure.
(terminal-columns): Rewrite in terms of 'terminal-dimension'.
(terminal-rows): New procedure.
* tests/syscalls.scm ("terminal-rows"): New test.
| Ludovic Courtès |
2019-06-05 | syscalls: 'with-lock-file' catches ENOSYS....* guix/build/syscalls.scm (call-with-file-lock): Catch ENOSYS raised by
'lock-file'.
| Ludovic Courtès |
2019-06-05 | syscalls: 'with-file-lock' expands to a call to 'call-with-file-lock'....* guix/build/syscalls.scm (call-with-file-lock): New procedure.
(with-file-lock): Expand to a call to 'call-with-file-lock'.
| Ludovic Courtès |
2019-06-05 | syscalls: Add 'with-file-lock' macro....* guix/scripts/offload.scm (lock-file, unlock-file, with-file-lock):
Move to...
* guix/build/syscalls.scm: ... here.
| Ludovic Courtès |
2019-05-09 | syscalls: Add 'arp-network-interface?'....* guix/build/syscalls.scm (IFF_NOARP): New variable.
(arp-network-interface?): New public procedure.
| Marius Bakke |
2019-04-30 | guix: Fix typo in docstring....* guix/build/syscalls.scm (device-in-use?)<docstring>: Fix typo.
| Tobias Geerinckx-Rice |
2019-04-29 | file-systems: Support the 'no-atime' flag....* guix/build/syscalls.scm (MS_NOATIME): New variable.
* gnu/build/file-systems.scm (mount-flags->bit-mask): Support it.
* doc/guix.texi (File Systems): Document it and add cross-references to
the relevant documentation.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| rendaw |
2019-01-17 | syscalls: 'device-in-use?' returns #f upon EINVAL....This mirrors the behavior of the 'fdisk_device_is_used' function of
util-linux.
* guix/build/syscalls.scm (device-in-use?): Return #f upon EINVAL.
| Ludovic Courtès |
2019-01-17 | syscalls: 'device-in-use?' does not create a port....* guix/build/syscalls.scm (device-in-use?): Use 'open-fdes' rather than
'open-file'.
| Ludovic Courtès |
2019-01-17 | build: syscalls: Add device-in-use?....This new procedure uses BLKRRPART to determine whether or not a device is
busy. It is useful when a device does not appear as mounted but is maybe used
by the kernel. This is the case with overlayfs lowerdir backend device for
example.
* guix/build/syscalls.scm (device-in-use?): New exported procedure.
| Mathieu Othacehe |
2019-01-09 | maint: Remove 'cond-expand' forms for Guile 2.0....Note: Leave 'cond-expand' forms used in the build-side modules that can
run on %BOOTSTRAP-GUILE, which is currently Guile 2.0.
* guix/build/compile.scm: Move 'use-modules' clause from 'cond-expand'
to 'define-module' form.
(%default-optimizations): Remove 'cond-expand'.
* guix/build/download.scm (tls-wrap): Remove 'cond-expand'.
* guix/build/syscalls.scm: Remove 'cond-expand' form around
'%set-automatic-finalization-enabled?!' and
'without-automatic-finalization'.
* guix/inferior.scm (port->inferior): Remove 'cond-expand'.
* guix/scripts/pack.scm (wrapped-package)[build]: Remove 'cond-expand'.
* guix/status.scm (build-event-output-port): Remove 'cond-expand'.
* guix/store.scm (open-inet-socket): Remove 'cond-expand'.
* guix/ui.scm (install-locale): Remove 'cond-expand'.
* tests/status.scm ("current-build-output-port, UTF-8 + garbage"):
Remove 'cond-expand'.
* tests/store.scm ("current-build-output-port, UTF-8 + garbage"):
Remove 'cond-expand'.
| Ludovic Courtès |
2018-09-10 | syscalls: Report lack of a libc symbol as ENOSYS....* guix/build/syscalls.scm (syscall->procedure): Throw to 'system-error
with ENOSYS when NAME cannot be found.
| Ludovic Courtès |
2018-07-03 | syscalls: Define AT_SYMLINK_NOFOLLOW et al....* guix/build/syscalls.scm (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR)
(AT_SYMLINK_FOLLOW, AT_NO_AUTOMOUNT, AT_EMPTY_PATH): New variables.
* tests/syscalls.scm ("utime with AT_SYMLINK_NOFOLLOW"): New test.
| Ludovic Courtès |
2018-02-26 | build: Require Guile >= 2.0.13....* README, configure.ac, doc/guix.texi (Requirements): Increase minimum
Guile version from 2.0.9 to 2.0.13.
* config-daemon.ac: Remove use of 'GUIX_CHECK_UNBUFFERED_CBIP'.
* m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): Remove.
* guix/build/download.scm (current-http-proxy): Remove.
* guix/build/syscalls.scm (%libc-errno-pointer, errno): Remove.
(syscall->procedure): Use #:return-errno unconditionally.
* guix/hash.scm (open-sha256-input-port)[unbuffered]: Remove outdated
comment.
* guix/http-client.scm (when-guile<=2.0.5-or-otherwise-broken): Remove.
<top level>: Remove 'when-guile<=2.0.5-or-otherwise-broken' block.
* guix/scripts/substitute.scm (fetch): Remove 'guile-version>?'
conditional.
* tests/hash.scm (supports-unbuffered-cbip?): Remove.
<top level>: Remove 'test-skip' call.
| Ludovic Courtès |
2017-12-06 | syscalls: Define 'input-flags' for 'tcgetattr' and friends....* guix/build/syscalls.scm (input-flags): New macro.
| Ludovic Courtès |
2017-10-09 | syscalls: clone: Define syscall-id for aarch64....* guix/build/syscalls.scm (clone): Define syscall-id for aarch64 machines.
| Eric Bavier |
2017-07-23 | Merge branch 'master' into core-updates | Leo Famulari |
2017-07-18 | syscalls: Delay resolution of "scm_set_automatic_finalization_enabled"....* guix/build/syscalls.scm (%set-automatic-finalization-enabled?!) [guile-2.2]:
Wrap in 'delay'.
| Ludovic Courtès |
2017-07-12 | syscalls: Add network-interface-running?...* guix/build/syscalls.scm (network-interface-running?): New variable.
Export it.
* tests/syscalls.scm: Add test.
Co-authored-by: John Darrington <jmd@gnu.org>
| Danny Milosavljevic |
2017-07-10 | syscalls: Adjust 'dirent64' struct for GNU/Hurd....Reported by rennes@openmailbox.org.
* guix/build/syscalls.scm (file-type->symbol): New procedure.
(%struct-dirent-header): Rename to...
(%struct-dirent-header/linux): ... this. Rename introduced bindings as
well.
(%struct-dirent-header/hurd): New C struct.
(define-generic-identifier): New macro.
(read-dirent-header, %struct-dirent-header, sizeof-dirent-header):
Define in terms of 'define-generic-identifier'.
| Ludovic Courtès |
2017-06-18 | syscalls: 'opendir*' error message shows the file name....* guix/build/syscalls.scm (opendir*): Add NAME to the 'system-error'
message.
| Ludovic Courtès |