1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-07-13 01:44:07 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
nckx 9ea6ba31b9 revert 7e7487166b
Since commit 7e7487166b, Guix System treats devices starting with "/dev/" as special and won't even try to mount them if the whole string isn't an existing file name.

This strict naming policy is (AFAIK?) Guix-specific and breaks things like booting multi-device bcachefs file systems:

  waiting for partition '/dev/sda1:/dev/sdb1' to appear...
  waiting for partition '/dev/sda1:/dev/sdb1' to appear...

…ad infinitum until crashing to a Guile prompt.

Guix must not enforce custom naming policies like this. On the contrary: we should defer mounting to the kernel whenever possible, and handle failures only when they occur.

We can still delay mounts, retry failed mounts, and try to set up favourable mount conditions based on what we think the mount(2) SOURCE looks like, without adding our own arbitrary rules.
2026-03-29 13:12:19 +02:00
106 changed files with 4165 additions and 7332 deletions
+2 -4
View File
@@ -1276,9 +1276,7 @@ definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:
;; Standard build phases, as a list of symbol/procedure pairs.
(let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...)))))
(phases separate-from-pid1
set-GUIX_GCC_MANGLE_PREFIX_MAP set-SOURCE-DATE-EPOCH
set-paths install-locale unpack
(phases set-SOURCE-DATE-EPOCH set-paths install-locale unpack
bootstrap
patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs
@@ -1300,7 +1298,7 @@ Or from the REPL:
(add-to-load-path "/path/to/guix/checkout")
,use (guix build gnu-build-system)
(map car %standard-phases)
@result{} (separate-from-pid1 set-GUIX_GCC_MANGLE_PREFIX_MAP set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files make-dynamic-linker-cache install-license-files reset-gzip-timestamps compress-documentation)
@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files make-dynamic-linker-cache install-license-files reset-gzip-timestamps compress-documentation)
@end lisp
If you want to know more about what happens during those phases, consult the
-394
View File
@@ -34106,300 +34106,6 @@ Zabbix server port.
@c %end of fragment
@subsubheading collectd Service
@cindex collectd
collectd is a daemon which collects, stores, transports, and visualizes
system and application performance metrics in a variety of ways.
@defvar collectd-service-type
This is the service type for the @uref{https://collectd.org/, collectd}
service. Its value must be a @code{collectd-configuration} record:
@lisp
(service collectd-service-type
(collectd-configuration
(plugins
(list
(collectd-plugin-generic
(name "cpu")
(options '((ReportByCpu . #t)
(ReportByState . #t)
(ValuesPercentage . #t))))))))
@end lisp
The service may be extended to add new plugins:
@lisp
(simple-service 'collectd-memory
collectd-service-type
(list
(collectd-plugin-generic
(name "memory")
(options '((ValuesAbsolute . #t)
(ValusPercentage . #t))))))
@end lisp
@end defvar
@c %start of fragment
@deftp {Data Type} collectd-configuration
Available @code{collectd-configuration} fields are:
@table @asis
@item @code{collectd} (default: @code{collectd}) (type: package)
The collectd package to use.
@item @code{base-directory} (default: @code{"/var/lib/collectd"}) (type: string)
Sets the base directory. This is the directory beneath which all
@acronym{RRD,round-robin database} files are created. Possibly more
subdirectories are created. This is also the working directory for
collectd.
@item @code{auto-load-plugins?} (default: @code{#f}) (type: boolean)
When set to @code{#f}, plugins must be loaded explicitly, by setting the
@code{load-plugin?} field of each plugin configuration to @code{#t}. If
a @code{<Plugin ...>} block is encountered and no configuration handling
callback for this plugin has been registered, a warning is logged and
the block is ignored.
When set to @code{#t}, each @code{<Plugin ...>} block acts as if it was
immediately preceded by a @code{LoadPlugin} statement. @code{LoadPlugin}
statements are still required for plugins that don't provide any
configuration, e.g. the @code{Load} plugin.
@item @code{collect-internal-stats?} (default: @code{#f}) (type: boolean)
When @code{#t}, various statistics about the collectd daemon will be
collected, with "collectd" as the plugin name.
@item @code{type-databases} (type: list-of-file-likes)
One or more files that contain the data-set descriptions. See
@code{types.db(5)} for a description of the format of these files.
@item @code{interval} (default: @code{60}) (type: maybe-seconds)
Configures the interval in which to query the read plugins. Smaller
values lead to a higher system load produced by collectd, while higher
values lead to more coarse statistics. Warning: You should set this
once and then never touch it again. If you do, you will have to delete
all your RRD files or know some serious RRDtool magic! (Assuming you're
using the RRDtool or RRDCacheD plugin.)
@item @code{max-read-interval} (default: @code{86400}) (type: seconds)
A read plugin doubles the interval between queries after each failed
attempt to get data. This options limits the maximum value of the
interval.
@item @code{timeout} (type: maybe-integer)
Consider a value list "missing" when no update has been read or received
for @code{Iterations} iterations. By default, collectd considers a
value list missing when no update has been received for twice the update
interval. Since this setting uses iterations, the maximum allowed time
without update depends on the @code{Interval} information contained in
each value list. This is used in the @code{Threshold} configuration to
dispatch notifications about missing values, see
@code{collectd-threshold(5)} for details.
@item @code{read-threads} (default: @code{5}) (type: integer)
Number of threads to start for reading plugins. You may want to
increase this if you have more than five plugins that take a long time
to read. Mostly those are plugins that do network-IO. Setting this to
a value higher than the number of registered read callbacks is not
recommended.
@item @code{write-threads} (default: @code{5}) (type: integer)
Number of threads to start for dispatching value lists to write plugins.
You may want to increase this if you have more than five plugins that
may take relatively long to write to.
@item @code{write-queue-limit-high} (type: maybe-integer)
Metrics are read by the read threads and then put into a queue to be
handled by the write threads. If one of the write plugins is slow (e.g.
network timeouts, I/O saturation of the disk) this queue will grow. In
order to avoid running into memory issues in such a case, you can limit
the size of this queue. If there are @code{write-queue-limit-high}
metrics in the queue, any new metrics will be dropped. If the number of
metrics currently in the queue is between @code{write-queue-limit-low}
and @code{write-queue-limit-high}, the metric is dropped with a
probability that is proportional to the number of metrics in the queue
(i.e. it increases linearly until it reaches 100%).
@item @code{write-queue-limit-low} (type: maybe-integer)
If there are less than @code{write-queue-limit-low} metrics in the
queue, all new metrics will be enqueued. If
@code{write-queue-limit-high} is set to non-zero and
@code{write-queue-limit-low} is unset, the latter will default to half
of @code{write-queue-limit-high}.
@item @code{host-name} (type: maybe-string)
Sets the hostname that identifies a host. If you omit this setting, the
hostname will be determined using the @code{gethostname(2)} system call.
@item @code{fully-qualified-domain-name-lookup?} (default: @code{#t}) (type: boolean)
If @code{host-name} is determined automatically, this setting controls
whether or not the daemon should try to figure out the
@acronym{FQDN,fully qualified domain name}. This is done using a lookup
of the name returned by @code{gethostname(2)}.
@item @code{plugins} (default: @code{()}) (type: list-of-collectd-plugins)
Configurations for collectd plugins.
@end table
@end deftp
@c %end of fragment
@c %start of fragment
@deftp {Data Type} collectd-plugin-generic
The @code{collectd-plugin-generic} record can represent most collectd
plugins.
This example configuration will enable the CPU usage reporting plugin.
See the @code{collectd.conf(5)} man page for a list of plugins and their
options.
@lisp
(collectd-plugin-generic
(name "cpu")
(options '((ReportByCpu . #t)
(ReportByState . #t)
(ValuesPercentage . #t))))
@end lisp
Available @code{collectd-plugin-generic} fields are:
@table @asis
@item @code{load-plugin?} (default: @code{#t}) (type: boolean)
When @code{#t}, include a @code{LoadPlugin} directive in the
configuration. This interacts with @code{auto-load-plugins?} in
@code{collectd-configuration}; if @code{auto-load-plugins?} is
@code{#f}, all plugins should set this to @code{#t}.
@item @code{name} (type: string)
The name of the plugin to configure.
@item @code{options} (default: @code{()}) (type: plugin-options)
Configuration options for the plugin, as an alist. See
@code{collect.conf(5)} for the available plugin options.
@end table
@end deftp
@c %end of fragment
@c %start of fragment
@deftp {Data Type} collectd-plugin-python
The @code{collectd-plugin-python} configuration record holds
configuration for collectd plugins written in Python. See the
@code{collectd-python(5)} man page for more information on Python
support in collectd.
Guix packages listed in the @code{packages} field will be added to the
profile used to run collectd. This example configuration will load a
Python plugin named @code{myplugin}, whose code is in the
@code{python-myplugin} Guix package.
@lisp
(collectd-plugin-python
(packages (list python-myplugin))
(module "myplugin")
(module-options '((SomeOption . "hi")
(AnotherOption . 123))))
@end lisp
The @code{module-paths} field will emit verbatim @code{ModulePath}
lines, for plugins not packaged for Guix. This example configuration
loads the @code{gpio} plugin from
@code{/home/user/projects/collectd-gpio/gpio}.
@lisp
(collectd-plugin-python
(module-paths
(list
"/home/user/projects/collectd-gpio/gpio"))
(module "gpio")
(module-options '((MonitorGPIOs 1 2 3 4))))
@end lisp
The two mechanisms may be combined: a Guix-packaged Python library may
be used by unpackaged plugin code. This example loads a
@code{mongometrics} plugin from
@code{/opt/collectd-mongodb/mongometrics}, and also makes the
@code{python-pymongo} Python package available for it to use.
@lisp
(collectd-plugin-python
(packages (list python-pymongo))
(module-paths
(list
"/opt/collectd-mongodb/mongometrics"))
(module "mongometrics")
(module-options '((Host . "localhost"))))
@end lisp
Available @code{collectd-plugin-python} fields are:
@table @asis
@item @code{load-plugin?} (default: @code{#t}) (type: boolean)
When @code{#t}, include a @code{LoadPlugin} directive in the
configuration. This interacts with @code{auto-load-plugins?} in
@code{collectd-configuration}; if @code{collectd-configuration}'s
@code{auto-load-plugins?} is @code{#f}, all plugins should set this to
@code{#t}.
@item @code{type-databases} (default: @code{()}) (type: list-of-file-likes)
One or more files that contain the data-set descriptions. See
@code{types.db(5)} for a description of the format of these files.
@item @code{packages} (default: @code{()}) (type: list-of-packages)
Packages to make available to the Python plugin. These can be
dependencies of the plugin code, or may contain the plugin.
@item @code{module-paths} (default: @code{()}) (type: list-of-string)
Entries to prepend to @code{sys.path}.
@item @code{log-traces?} (default: @code{#f}) (type: boolean)
If a Python script throws an exception it will be logged by collectd
with the name of the exception and the message. If you set this option
to true it will also log the full stacktrace just like the default
output of an interactive Python interpreter. This does not apply to the
@code{CollectError} exception, which will never log a stacktrace. This
should probably be set to false most of the time but is very useful for
development and debugging of new modules.
@item @code{interactive?} (default: @code{#f}) (type: boolean)
This option will cause the module to launch an interactive Python
interpreter that reads from and writes to the terminal. Note that
collectd will terminate right after starting up if you try to run it as
a daemon while this option is enabled so make sure to start collectd
with the @code{-f} option. See the @code{collectd-python(5)} man page
for more information on this option.
@item @code{module} (type: string)
The name of the Python module to import into the collectd Python
process. The module must be available in @code{packages} or
@code{module-paths}, and register a MPD callback.
@item @code{module-options} (default: @code{()}) (type: alist)
Configuration options for the module.
@end table
@end deftp
@c %end of fragment
@node Kerberos Services
@subsection Kerberos Services
@cindex Kerberos
@@ -36187,75 +35893,6 @@ The port on which to connect to the database.
@end table
@end deftp
@subsubheading sogogi
@cindex sogogi, WebDAV Server
@uref{https://codeberg.org/emersion/sogogi, sogogi} is a
server for the
@uref{https://www.rfc-editor.org/rfc/rfc4918, WebDAV} protocol.
@defvar sogogi-service-type
This is the service type for sogogi. Its value must be a
@code{sogogi-configuration} object as in this example:
@lisp
(service sogogi-service-type
(sogogi-configuration
(listen ":8080")
(location
(list
(sogogi-location
(path "/")
(dir "/srv/http/")
(grant '("all ro")))))))
@end lisp
@end defvar
@deftp {Data Type} sogogi-configuration
Available @code{sogogi-configuration} fields are:
@table @asis
@item @code{listen} (default: @code{"localhost:8080"}) (type: string)
Listening address.
@item @code{location} (default: @code{()}) (type: list-of-sogogi-location)
Local directories to expose via a HTTP path
@item @code{user} (default: @code{()}) (type: list-of-sogogi-user)
Users with access to the location.
@end table
@end deftp
@deftp {Data Type} sogogi-location
Available @code{sogogi-location} fields are:
@table @asis
@item @code{path} (type: string)
HTTP path at which the directory will be exposed.
@item @code{dir} (type: string)
Path to local directory to serve.
@item @code{grant} (type: maybe-list-of-strings)
Grant remote users access to the directory.
@end table
@end deftp
@deftp {Data Type} sogogi-user
Available @code{sogogi-user} fields are:
@table @asis
@item @code{name} (type: maybe-string)
Name of the user.
@item @code{password} (type: maybe-string)
Password of the user.
@end table
@end deftp
@subsubheading Mumi
@cindex Mumi, Debbugs Web interface
@@ -54176,7 +53813,6 @@ an example of a service and its configuration that you could add to the
@subsection Media Home Services
@cindex kodi
The @uref{https://kodi.tv, Kodi media center} can be run as a daemon on
a media server. With the @code{(gnu home services kodi)} service, you
can configure Kodi to run upon login.
@@ -55100,36 +54736,6 @@ mouse bindings.
@end table
@end deftp
@cindex jellyfin
The @code{home-jellyfin-mpv-shim-service-type} in the @code{(gnu home
services media)} module runs a cast client for the
@uref{https://jellyfin.org/, Jellyfin} media system.
To enable, add this to your home services:
@lisp
(service home-jellyfin-mpv-shim-service-type)
@end lisp
The service starts only if @code{jellyfin-mpv-shim} has been configured
with a remote server and credentials. This must be done manually, by
launching @code{jellyfin-mpv-shim}. After configuring the server, the
service will start automatically when you log in.
@defvar home-jellyfin-mpv-shim-service-type
Type of the service which launches Jellyfin MPV Shim.
@end defvar
@deftp {Data Type} home-jellyfin-mpv-shim-configuration
Available @code{home-jellyfin-mpv-shim-configuration} fields are:
@table @asis
@item @code{package} (default: @code{jellyfin-mpv-shim}) (type: package)
The Jellyfin MPV Shim package to use.
@end table
@end deftp
@node Networking Home Services
@subsection Networking Home Services
+6 -7
View File
@@ -1220,16 +1220,15 @@ file name or an nfs-root containing ':/')."
(sleep 1)
(loop (+ 1 count))))))))
(define (device-exists? device)
(and (file-exists? device)
device))
(match spec
((? string?)
(if (string-prefix? "/dev/" spec)
(if (or (string-contains spec ":/") ;nfs
(and (>= (string-length spec) 2)
(equal? (string-take spec 2) "//")) ;cifs
(string=? spec "none"))
spec ; do not resolve NFS / CIFS / tmpfs devices
;; Nothing to do, but wait until SPEC shows up.
(resolve device-exists? spec identity)
spec)) ; do not resolve NFS / CIFS / tmpfs devices
(resolve identity spec identity)))
((? file-system-label?)
;; Resolve the label.
(resolve find-partition-by-label
+1 -45
View File
@@ -1,6 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2024, 2025 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,20 +19,14 @@
(define-module (gnu home services media)
#:use-module (srfi srfi-26)
#:use-module (gnu home services)
#:use-module (gnu home services desktop)
#:use-module (gnu home services shepherd)
#:use-module (gnu packages kodi)
#:use-module (gnu packages video)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix gexp)
#:export (home-kodi-configuration
home-kodi-service-type
home-jellyfin-mpv-shim-configuration
home-jellyfin-mpv-shim-service-type))
home-kodi-service-type))
;;;
@@ -73,40 +66,3 @@
(description
"Install and configure the Kodi media center so that it runs as a Shepherd
service.")))
(define-configuration home-jellyfin-mpv-shim-configuration
(package
(file-like jellyfin-mpv-shim)
"The Jellyfin MPV Shim package to use"))
(define (jellyfin-mpv-shim-shepherd-service config)
(list (shepherd-service
(documentation "Jellyfin MPV Shim.")
(provision '(jellyfin-mpv-shim jellyfin-client))
;; Depend on 'x11-display', which sets 'DISPLAY' if an X11 server is
;; available, and fails to start otherwise.
(requirement '(x11-display))
(modules '((srfi srfi-1)
(srfi srfi-26)
(srfi srfi-98)))
(start
#~(make-forkexec-constructor
(list
#$(file-append
(home-jellyfin-mpv-shim-configuration-package config)
"/bin/jellyfin-mpv-shim"))))
(stop #~(make-kill-destructor)))))
(define-public home-jellyfin-mpv-shim-service-type
(service-type
(name 'home-jellyfin-mpv-shim)
(extensions (list (service-extension home-shepherd-service-type
jellyfin-mpv-shim-shepherd-service)
;; Ensure 'home-x11-service-type' is instantiated so we
;; can depend on the Shepherd 'x11-display' service.
(service-extension home-x11-service-type
(const #t))))
(default-value (home-jellyfin-mpv-shim-configuration))
(description "Run Jellyfin MPV Shim.")))
+2 -4
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2023 Brian Cully <bjc@spork.org>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
@@ -193,10 +193,8 @@ PulseAudio clients to use PipeWire transparently.")
load-module module-null-sink \
sink_name=rtp sink_properties=\"device.description='RTP network output'\"\n"
sock)
;; Use a fixed sample rate to match what the receiving
;; end is likely to expect.
(display (string-append "\
load-module module-rtp-send source=rtp.monitor rate=44100"
load-module module-rtp-send source=rtp.monitor"
(if destination-ip
(string-append
" destination_ip="
+7 -6
View File
@@ -75,7 +75,6 @@
# Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
# Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
# Copyright © 2025 bdunahu <bdunahu@operationnull.com>
# Copyright © 2025 Nikita Mitasov <me@ch4og.com>
#
# This file is part of GNU Guix.
#
@@ -1064,7 +1063,6 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-2.41-fix-cross.patch \
%D%/packages/patches/binutils-reproducible-tar.patch \
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bmake-run-check-separately.patch \
%D%/packages/patches/boolector-find-googletest.patch \
@@ -1320,7 +1318,6 @@ dist_patch_DATA = \
%D%/packages/patches/flatpak-fix-fonts-icons.patch \
%D%/packages/patches/flatpak-fix-icon-validation.patch \
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \
%D%/packages/patches/flex-fix-make-dependencies.patch \
%D%/packages/patches/fluxbox-1.3.7-no-dynamic-cursor.patch \
%D%/packages/patches/fluxbox-1.3.7-gcc.patch \
%D%/packages/patches/fmt-9-overspecified-tests.patch \
@@ -1378,7 +1375,6 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-fix-texi2pod.patch \
%D%/packages/patches/gcc-hurd-split-stack.patch \
%D%/packages/patches/gcc-libstdc++-newer-gcc.patch \
%D%/packages/patches/gcc-mangle-guix-store.patch \
%D%/packages/patches/gcc-4.8-libsanitizer-fix.patch \
%D%/packages/patches/gcc-4.9-inline.patch \
%D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \
@@ -1446,6 +1442,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-basement-fix-32-bit.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
%D%/packages/patches/ghc-testsuite-grep-compat.patch \
%D%/packages/patches/ghc-testsuite-recomp015-execstack.patch \
%D%/packages/patches/ghc-aeson-encodeDouble.patch \
%D%/packages/patches/ghc-basement-fix-32bit.patch \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
@@ -1487,7 +1484,6 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-cross-objdump.patch \
%D%/packages/patches/glibc-dl-cache.patch \
%D%/packages/patches/glibc-guix-locpath.patch \
%D%/packages/patches/glibc-fix-path-attribute-in-getconf.patch \
%D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \
%D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \
%D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \
@@ -1502,6 +1498,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-hurd-2.41-symlink.patch \
%D%/packages/patches/glibc-hurd-xstate.patch \
%D%/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch \
%D%/packages/patches/glibc-hurd64-intr-msg-clobber.patch \
%D%/packages/patches/glibc-ldd-powerpc.patch \
%D%/packages/patches/glibc-ldd-x86_64.patch \
%D%/packages/patches/glibc-locales.patch \
@@ -1828,6 +1825,8 @@ dist_patch_DATA = \
%D%/packages/patches/libtiff-CVE-2022-34526.patch \
%D%/packages/patches/libtirpc-CVE-2021-46828.patch \
%D%/packages/patches/libtirpc-hurd.patch \
%D%/packages/patches/libtool-grep-compat.patch \
%D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libtree-fix-check-non-x86.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \
%D%/packages/patches/libusb-for-axoloti.patch \
@@ -1858,6 +1857,7 @@ dist_patch_DATA = \
%D%/packages/patches/lirc-reproducible-build.patch \
%D%/packages/patches/llvm-13-gcc-14.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
%D%/packages/patches/lsof-compat-linux-6.9.patch \
%D%/packages/patches/lsof-fatal-test-failures.patch \
%D%/packages/patches/lua-CVE-2014-5461.patch \
%D%/packages/patches/lua-pkgconfig.patch \
@@ -1983,6 +1983,7 @@ dist_patch_DATA = \
%D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/newlib-getentropy.patch \
%D%/packages/patches/nginx-socket-cloexec.patch \
%D%/packages/patches/nickle-man-release-date.patch \
%D%/packages/patches/nlopt_CMake-Assume-working-c-compiler-597.patch \
%D%/packages/patches/nnpack-system-libraries.patch \
%D%/packages/patches/nsis-env-passthru.patch \
@@ -2085,9 +2086,9 @@ dist_patch_DATA = \
%D%/packages/patches/podofo-gcc-14.patch \
%D%/packages/patches/pokerth-boost.patch \
%D%/packages/patches/pounce-readable-checks.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
%D%/packages/patches/procps-strtod-test.patch \
%D%/packages/patches/prusa-slicer-add-cmake-module.patch \
%D%/packages/patches/prusa-wxwidgets-makefile-fix.patch \
%D%/packages/patches/pthreadpool-system-libraries.patch \
%D%/packages/patches/python-3.11-fix-tests.patch \
%D%/packages/patches/python-3.12-fix-tests.patch \
+2 -2
View File
@@ -43,7 +43,7 @@
(define-public acl
(package
(name "acl")
(version "2.3.2")
(version "2.3.1")
(source
(origin
(method url-fetch)
@@ -51,7 +51,7 @@
version ".tar.gz"))
(sha256
(base32
"0z1gi82zc2xcbchfagd7apn2s7camaagj8y6hmysl1wpcanxnasz"))))
"1bqi7hj0xkpivwg7lx5cv3yvs9ks1i6azvpgbvfpzcq1i736233n"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
+43 -57
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2012-2018, 2020-2022, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
@@ -157,7 +157,7 @@ know anything about Autoconf or M4.")
(base32
"0niz4852fgyavfh3gr4h4kzalk01nk70v6vfsja6r3ap349mr25s"))))))
(define-public autoconf autoconf-2.72)
(define-public autoconf autoconf-2.69)
(define-public autoconf-2.68
(package (inherit autoconf)
@@ -438,14 +438,14 @@ Makefile, simplifying the entire process for the developer.")
(define-public automake
(package/inherit automake-1.16.5
(name "automake")
(version "1.18.1")
(version "1.17")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
"11v8ckqx7z8hv4mq9dnhg58cwnssaa7l9136yndbhlc34xis72hn"))
"146rkdcwri2dkwn3pjrjs9v0wm4xyav9vvq4yw5vj4qy87yc2849"))
(patches
(search-patches "automake-skip-amhello-tests.patch"))))
(arguments
@@ -483,14 +483,16 @@ Makefile, simplifying the entire process for the developer.")
(define-public libtool
(package
(name "libtool")
(version "2.5.4")
(version "2.4.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libtool/libtool-"
version ".tar.xz"))
(sha256
(base32
"0xb64rhambx6mhxwr613xgyad7ybs5hgmpmd9gccf2vbcrh5h7zq"))))
"0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))
(patches (search-patches "libtool-skip-tests2.patch"
"libtool-grep-compat.patch"))))
(build-system gnu-build-system)
(propagated-inputs (list m4))
(native-inputs
@@ -504,59 +506,43 @@ Makefile, simplifying the entire process for the developer.")
autoconf-wrapper)) ; others on 'autom4te'
(arguments
(list ;; Libltdl is provided as a separate package, so don't install it here.
#:configure-flags #~'("--disable-ltdl-install")
`(;; Libltdl is provided as a separate package, so don't install it here.
#:configure-flags '("--disable-ltdl-install")
;; The 'libtool' script refers to the toolchain; tolerate it.
#:disallowed-references '()
;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
;; <http://hydra.gnu.org/build/181662>.
;; Also, do not run tests when cross compiling
#:tests? ,(not (or (%current-target-system)
(string-prefix? "mips64"
(%current-system))))
;; XXX: There are test failures on mips64el-linux starting from 2.4.4:
;; <http://hydra.gnu.org/build/181662>.
;; Also, do not run tests when cross compiling
#:tests? (not (or (%current-target-system)
(string-prefix? "mips64"
(%current-system))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'skip-some-tests-on-extra-archs
(lambda _
(with-directory-excursion "tests"
(substitute* '("demo.at" "testsuite")
(("hppa\\*\\|amd64\\*\\|x86_64\\*\\|s390\\*"
all)
(string-append all "|arm*|mips*|riscv*"))))))
(add-before 'check 'pre-check
(lambda* (#:key inputs native-inputs parallel-tests?
#:allow-other-keys)
;; Run the test suite in parallel, if possible.
(setenv "TESTSUITEFLAGS"
(string-append
"-j"
(if parallel-tests?
(number->string (parallel-job-count))
"1")))
;; Patch references to /bin/sh.
(let ((/bin/sh (search-input-file (or native-inputs inputs)
"bin/sh")))
(substitute* "tests/testsuite"
(("/bin/sh")
/bin/sh)))))
;; These files may be copied into source trees by libtoolize,
;; therefore they must not point to store file names that would be
;; leaked with tarballs generated by make dist.
(add-after 'install 'restore-build-aux-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out
"/share/libtool/build-aux")))
(for-each (lambda (file)
(format #t "restoring shebang on `~a'~%"
file)
(substitute* file
(("^#!.*/bin/sh")
"#!/bin/sh")))
(find-files dir))))))))
#:phases
(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda* (#:key inputs native-inputs parallel-tests? #:allow-other-keys)
;; Run the test suite in parallel, if possible.
(setenv "TESTSUITEFLAGS"
(string-append
"-j"
(if parallel-tests?
(number->string (parallel-job-count))
"1")))
;; Patch references to /bin/sh.
(let ((/bin/sh (search-input-file (or native-inputs inputs) "bin/sh")))
(substitute* "tests/testsuite"
(("/bin/sh") /bin/sh)))))
;; These files may be copied into source trees by libtoolize,
;; therefore they must not point to store file names that would be
;; leaked with tarballs generated by make dist.
(add-after 'install 'restore-build-aux-shebang
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share/libtool/build-aux")))
(for-each (lambda (file)
(format #t "restoring shebang on `~a'~%" file)
(substitute* file
(("^#!.*/bin/sh") "#!/bin/sh")))
(find-files dir))))))))
(synopsis "Generic shared library support tools")
(description
+85 -78
View File
@@ -77,8 +77,6 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-compression)
#:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages golang-xyz)
@@ -893,85 +891,94 @@ is like a time machine for your data.")
(define-public restic
(package
(name "restic")
(version "0.17.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/restic/restic")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1wsgq7f0bfi0i5iiwcc3hlf2lhxcnz3zfs8p8bc6l913r9hvyg1x"))))
(version "0.9.6")
;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/'
;; directory.
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/restic/restic/releases/download/"
"v" version "/restic-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))
(patches
(search-patches "restic-0.9.6-fix-tests-for-go1.15.patch"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.25
#:install-source? #f
#:import-path "github.com/restic/restic/cmd/restic"
#:unpack-path "github.com/restic/restic"
#:embed-files #~(list "children" "nodes" "text")
#:test-flags
;; Python is required.
#~(list "-skip" "TestStdinFromCommand|TestStdinFromCommandNoOutput")
#:test-subdirs #~(list "../../...")
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-docs
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(let* ((man "/share/man")
(man-section (string-append man "/man")))
;; Install all the man pages to "out".
(for-each
(lambda (file)
(install-file file
(string-append #$output man-section
(string-take-right file 1))))
(find-files "doc/man" "\\.[1-9]"))))))
(add-before 'check 'pre-check
(lambda _
(setenv "RESTIC_TEST_FUSE" "0"))))))
(native-inputs
(list go-cloud-google-com-go-storage
go-github-com-anacrolix-fuse
go-github-com-azure-azure-sdk-for-go-sdk-azcore
go-github-com-azure-azure-sdk-for-go-sdk-azidentity
go-github-com-azure-azure-sdk-for-go-sdk-storage-azblob
go-github-com-backblaze-blazer
go-github-com-cenkalti-backoff-v4
go-github-com-cespare-xxhash-v2
go-github-com-elithrar-simple-scrypt
;; go-github-com-go-ole-go-ole ;windows only
go-github-com-google-go-cmp
go-github-com-hashicorp-golang-lru-v2
go-github-com-klauspost-compress
go-github-com-minio-minio-go-v7
go-github-com-minio-sha256-simd
go-github-com-ncw-swift-v2
go-github-com-peterbourgon-unixtransport
go-github-com-pkg-errors
go-github-com-pkg-profile
go-github-com-pkg-sftp
go-github-com-pkg-xattr
go-github-com-restic-chunker
go-github-com-spf13-cobra
go-github-com-spf13-pflag
go-go-uber-org-automaxprocs
go-golang-org-x-crypto
go-golang-org-x-net
go-golang-org-x-oauth2
go-golang-org-x-sync
go-golang-org-x-sys
go-golang-org-x-term
go-golang-org-x-text
go-golang-org-x-time
go-google-golang-org-api
`(;; XXX: Tests failed on a newer version of Golang, newer version of
;; restic does not provide vendor folder any longer which means - a
;; long way of packaging missing inputs.
#:go ,go-1.17
#:import-path "github.com/restic/restic"
;; We don't need to install the source code for end-user applications.
#:install-source? #f
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "src/github.com/restic/restic"
;; Disable 'restic self-update'. It makes little sense in Guix.
(substitute* "build.go" (("selfupdate") ""))
(setenv "HOME" (getcwd)) ; for $HOME/.cache/go-build
(invoke "go" "run" "build.go"))))
;; XXX: These packages have to be bootstrapped to break cycle with
;; go-google-golang-org-grpc.
go-github-com-envoyproxy-go-control-plane
go-github-com-envoyproxy-go-control-plane-envoy))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "src/github.com/restic/restic"
;; Disable FUSE tests.
(setenv "RESTIC_TEST_FUSE" "0")
(invoke "go" "run" "build.go" "--test")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(src "src/github.com/restic/restic"))
(install-file (string-append src "/restic")
(string-append out "/bin"))
#t)))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man "/share/man")
(man-section (string-append man "/man"))
(src "src/github.com/restic/restic/doc/man/"))
;; Install all the man pages to "out".
(for-each
(lambda (file)
(install-file file
(string-append out man-section
(string-take-right file 1))))
(find-files src "\\.[1-9]"))
#t)))
(add-after 'install-docs 'install-shell-completion
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(etc (string-append out "/etc"))
(share (string-append out "/share")))
(for-each
(lambda (shell)
(let* ((shell-name (symbol->string shell))
(dir (string-append "etc/completion/" shell-name)))
(mkdir-p dir)
(invoke (string-append bin "/restic") "generate"
(string-append "--" shell-name "-completion")
(string-append dir "/"
(case shell
((bash) "restic")
((zsh) "_restic"))))))
'(bash zsh))
(with-directory-excursion "etc/completion"
(install-file "bash/restic"
(string-append etc "/bash_completion.d"))
(install-file "zsh/_restic"
(string-append share "/zsh/site-functions")))
#t))))))
(home-page "https://restic.net/")
(synopsis "Backup program with multiple revisions, encryption and more")
(description "Restic is a program that does backups right and was designed
+343 -338
View File
@@ -24,7 +24,6 @@
;;; Copyright © 2022, 2026 John Kehayias <john@guixotic.coop>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
;;; Copyright © 2024, 2025 Zheng Junjie <z572@z572.online>
;;; Copyright © 2025 Nikita Mitasov <me@ch4og.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -120,14 +119,14 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
(version "3.12")
(version "3.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
"1f87i907dzw31xy1xr8xjj6z9979qq3bwmypvkm35rlh1ryb4j96"))
"1avf4x8skxbqrjp5j2qr9sp5vlf8jkw2i5bdn51fl3cxx3fsxchx"))
(patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs (list perl)) ;some of the tests require it
@@ -248,49 +247,47 @@ implementation offers several extensions over the standard utility.")
(build-system gnu-build-system)
;; Note: test suite requires ~1GiB of disk space.
(arguments
(append
(cond
((target-hurd?)
'(#:make-flags
(list (string-append
"TESTSUITEFLAGS= -k '"
"!sparse"
",!renamed dirs in incrementals"
",!--exclude-tag option in incremental pass"
",!incremental dumps with -C"
",!incremental dumps of nested directories"
",!incremental restores with -C"
",!concatenated incremental archives (renames)"
",!renamed directory containing subdirectories"
",!renamed subdirectories"
",!chained renames"
",!Directory"
"'"))))
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
;; due to the small HDD and RAM present on these devices.
((target-ppc32?)
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
"'!tricky time stamps"
",!storing sparse files > 8G'"))))
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
;; skipping the test for this release on 32-bit systems.
((not (target-64bit?))
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
(else '()))
;; XXX: 32-bit Hurd platforms don't support 64bit time_t
(if (target-hurd32?)
(list #:configure-flags #~(list "--disable-year2038"))
'())
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs.
(substitute* "src/system.c"
(("/bin/sh")
(search-input-file inputs "bin/sh")))))))))
`(,@(cond
((target-hurd?)
'(#:make-flags
(list (string-append
"TESTSUITEFLAGS= -k '"
"!sparse"
",!renamed dirs in incrementals"
",!--exclude-tag option in incremental pass"
",!incremental dumps with -C"
",!incremental dumps of nested directories"
",!incremental restores with -C"
",!concatenated incremental archives (renames)"
",!renamed directory containing subdirectories"
",!renamed subdirectories"
",!chained renames"
",!Directory"
"'"))))
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
;; due to the small HDD and RAM present on these devices.
((target-ppc32?)
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
"'!tricky time stamps"
",!storing sparse files > 8G'"))))
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
;; skipping the test for this release on 32-bit systems.
((target-32bit?)
'(#:make-flags (list "TESTSUITEFLAGS= -k '!tricky time stamps'")))
(else '()))
;; XXX: 32-bit Hurd platforms don't support 64bit time_t
,@(if (target-hurd32?)
(list #:configure-flags ''("--disable-year2038"))
'())
#:phases (modify-phases %standard-phases
(add-before 'build 'set-shell-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Do not use "/bin/sh" to run programs.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "src/system.c"
(("/bin/sh")
(string-append bash "/bin/sh")))))))))
;; When cross-compiling, the 'set-shell-file-name' phase needs to be able
;; to refer to the target Bash.
@@ -309,8 +306,41 @@ standard utility.")
(license gpl3+)
(home-page "https://www.gnu.org/software/tar/")))
;;; TODO: Replace/merge with 'patch' on core-updates.
(define-public patch/pinned
(hidden-package
(package
(name "patch")
(version "2.7.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/patch/patch-"
version ".tar.xz"))
(sha256
(base32
"1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"))
(patches (search-patches "patch-hurd-path-max.patch"))))
(build-system gnu-build-system)
(arguments
;; Work around a cross-compilation bug whereby libpatch.a would provide
;; '__mktime_internal', which conflicts with the one in libc.a.
(if (%current-target-system)
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
'()))
(native-inputs (list ed))
(synopsis "Apply differences to originals, with optional backups")
(description
"Patch is a program that applies changes to files based on differences
laid out as by the program \"diff\". The changes may be applied to one or more
files depending on the contents of the diff file. It accepts several
different diff formats. It may also be used to revert previously applied
differences.")
(license gpl3+)
(home-page "https://savannah.gnu.org/projects/patch/"))))
(define-public patch
(package
(inherit patch/pinned)
(name "patch")
(version "2.8")
(source (origin
@@ -320,27 +350,13 @@ standard utility.")
(sha256
(base32
"1qssgwgy3mfahkpgg99a35gl38vamlqb15m3c2zzrd62xrlywz7q"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(append
(if #$(%current-target-system)
(list "gl_cv_func_working_mktime=yes")
'())
(if #$(target-hurd32?)
(list "--disable-year2038")
'()))))
(native-inputs (list ed))
(synopsis "Apply differences to originals, with optional backups")
(description
"Patch is a program that applies changes to files based on differences
laid out as by the program \"diff\". The changes may be applied to one or more
files depending on the contents of the diff file. It accepts several
different diff formats. It may also be used to revert previously applied
differences.")
(license gpl3+)
(home-page "https://savannah.gnu.org/projects/patch/")
(substitute-keyword-arguments (package-arguments patch/pinned)
((#:configure-flags flags #~'())
(if (target-hurd32?)
#~(cons* "--disable-year2038"
#$flags)
flags))))
(properties '())))
(define-public diffutils
@@ -431,14 +447,6 @@ interactive means to merge two files.")
"gnulib-tests/test-strerror_r.c"
(("(^| )main *\\(.*" all)
(string-append all "{\n exit (77);//"))))))
'())
,@(if (string=? "riscv64-linux" (%current-system))
;; Unmodified test-lock will fail or crash riscv64
'((add-before 'check 'modify-test-lock
(lambda _
(substitute* "gnulib-tests/test-lock.c"
(("#define DO_TEST_RWLOCK 1")
"#define DO_TEST_RWLOCK 0")))))
'()))))
(synopsis "Operating on files matching given criteria")
(description
@@ -507,14 +515,6 @@ used to apply commands with arbitrarily long arguments.")
(("/bin/sh") (which "sh")))
(substitute* (find-files "tests" "\\.sh$")
(("#!/bin/sh") (string-append "#!" (which "sh"))))))
,@(if (string=? "riscv64-linux" (%current-system))
;; Unmodified test-lock will fail or crash riscv64
'((add-before 'check 'modify-test-lock
(lambda _
(substitute* "gnulib-tests/test-lock.c"
(("#define DO_TEST_RWLOCK 1")
"#define DO_TEST_RWLOCK 0")))))
'())
(add-after 'unpack 'remove-tests
(lambda _
,@(if (system-hurd?)
@@ -632,21 +632,20 @@ standard.")
(inputs (list guile-3.0))
(outputs '("out" "debug"))
(arguments
(append
(if (target-hurd?)
(list #:configure-flags #~(list "CFLAGS=-D__alloca=alloca"
"ac_cv_func_posix_spawn=no"))
(list))
(list
`(,@(if (target-hurd?)
'(#:configure-flags '("CFLAGS=-D__alloca=alloca"
"ac_cv_func_posix_spawn=no"))
'())
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "src/job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a\";\n"
(search-input-file inputs "/bin/sh"))))))))))
(format #f "default_shell = \"~a/bin/sh\";\n"
bash)))))))))
(synopsis "Remake files automatically")
(description
"Make is a program that is used to control the production of
@@ -670,17 +669,17 @@ change. GNU make offers many powerful extensions over the standard utility.")
(base32
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
(arguments
(list
#:configure-flags #~(list "CFLAGS=-D__alloca=alloca -D__stat=stat")
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(substitute* "job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a\";\n"
(search-input-file inputs "/bin/sh")))))))))))
`(#:configure-flags '("CFLAGS=-D__alloca=alloca -D__stat=stat")
#:phases
(modify-phases %standard-phases
(add-before 'build 'set-default-shell
(lambda* (#:key inputs #:allow-other-keys)
;; Change the default shell from /bin/sh.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "job.c"
(("default_shell =.*$")
(format #f "default_shell = \"~a/bin/sh\";\n"
bash)))))))))))
(define-public binutils
(package
@@ -694,7 +693,6 @@ change. GNU make offers many powerful extensions over the standard utility.")
(sha256
(base32 "0fnwaasfglbphqzvz5n25js9gl695p7pjbmb1z81g8gsc6k90qzn"))
(patches (search-patches
"binutils-reproducible-tar.patch"
"binutils-2.41-fix-cross.patch"
"binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
@@ -730,8 +728,7 @@ change. GNU make offers many powerful extensions over the standard utility.")
;; For some reason, the build machinery insists on rebuilding .info
;; files, even though they're already provided by the tarball.
#:make-flags #~'("MAKEINFO=true")))
(native-inputs (list bison ;needed to build 'gprofng'
perl)) ;needed to build the man pages (pod2man)
(native-inputs (list bison)) ;needed to build 'gprofng'
(synopsis "Binary utilities: bfd gas gprof ld")
(description
"GNU Binutils is a collection of tools for working with binary files.
@@ -911,10 +908,8 @@ the store.")
(list "glibc-ldd-powerpc.patch"
"glibc-2.41-ldd-x86_64.patch"
"glibc-2.40-dl-cache.patch"
"glibc-fix-path-attribute-in-getconf.patch"
"glibc-2.37-versioned-locpath.patch"
;; "glibc-allow-kernel-2.6.32.patch"
"glibc-guix-locpath.patch"
"glibc-reinstate-prlimit64-fallback.patch"
"glibc-supported-locales.patch"
"glibc-2.37-hurd-clock_t_centiseconds.patch"
@@ -923,11 +918,10 @@ the store.")
"glibc-hurd-gettyent.patch"
"glibc-hurd-getauxval.patch"
"glibc-hurd-pthread_setcancelstate.patch"
"glibc-hurd-signal-fpe-exception.patch"
"glibc-hurd-xstate.patch"
"glibc-hurd-2.41-pthread-once.patch"
"glibc-hurd-2.41-pthread-sigmask.patch"
"glibc-hurd-2.41-symlink.patch"
"glibc-hurd64-intr-msg-clobber.patch"
"glibc-hurd64-gcc-14.2-tls-bug.patch"))
(define-public glibc
@@ -946,6 +940,7 @@ the store.")
(properties `((lint-hidden-cve . ("CVE-2024-2961"
"CVE-2024-33601" "CVE-2024-33602"
"CVE-2024-33600" "CVE-2024-33599"))))
(replacement glibc/fixed)
(build-system gnu-build-system)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
@@ -961,259 +956,247 @@ the store.")
"static")) ;9 MiB of .a files
(arguments
(list
#:out-of-source? #t
`(#:out-of-source? #t
;; The libraries have an empty RUNPATH, but some, such as the versioned
;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
;; these libraries are always going to be found anyway, just skip
;; RUNPATH checks.
#:validate-runpath? #f
;; The libraries have an empty RUNPATH, but some, such as the versioned
;; libraries (libdl-2.24.so, etc.) have ld.so marked as NEEDED. Since
;; these libraries are always going to be found anyway, just skip
;; RUNPATH checks.
#:validate-runpath? #f
#:modules `((ice-9 ftw)
(ice-9 match)
#:modules ((ice-9 ftw)
(srfi srfi-1)
(srfi srfi-26)
(guix build gremlin)
(guix build utils)
(guix build gnu-build-system))
;; Strip binaries but preserve the symbol table needed by Valgrind:
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
#:strip-flags #~'("--strip-debug")
;; Strip binaries but preserve the symbol table needed by Valgrind:
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
#:strip-flags '("--strip-debug")
#:configure-flags
#~(list "--sysconfdir=/etc"
#:configure-flags
(list "--sysconfdir=/etc"
;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the
;; locales they really want.
;;
;; Set the default locale path. In practice, $LOCPATH may be
;; defined to point whatever locales users want. However, setuid
;; binaries don't honor $LOCPATH, so they'll instead look into
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
;; with the idea that it is going to be populated by the sysadmin.
;; The "X.Y" sub-directory is because locale data formats are
;; incompatible across libc versions; see
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
;;
;; `--localedir' is not honored, so work around it.
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
(string-append "libc_cv_complocaledir=/run/current-system/locale/"
#$(version-major+minor version))
;; Installing a locale archive with all the locales is to
;; expensive (~100 MiB), so we rely on users to install the
;; locales they really want.
;;
;; Set the default locale path. In practice, $LOCPATH may be
;; defined to point whatever locales users want. However, setuid
;; binaries don't honor $LOCPATH, so they'll instead look into
;; $libc_cv_complocaledir; we choose /run/current-system/locale/X.Y,
;; with the idea that it is going to be populated by the sysadmin.
;; The "X.Y" sub-directory is because locale data formats are
;; incompatible across libc versions; see
;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
;;
;; `--localedir' is not honored, so work around it.
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
(string-append "libc_cv_complocaledir=/run/current-system/locale/"
,(version-major+minor version))
;; Here we need to refer to kernel headers and not glibc-mesboot
(string-append
"--with-headers="
(and=>
(find
(match-lambda
((label . input)
(and (directory-exists?
(string-append input "/include/" #$(if (system-hurd?)
"mach"
"linux")))
;; Ensure we're not refering to another libc.
(not (file-exists?
(string-append input "/include/locale.h"))))))
#$(if (%current-target-system)
#~%build-target-inputs
#~%build-inputs))
cdr) "/include")
(string-append "--with-headers="
(assoc-ref ,(if (%current-target-system)
'%build-target-inputs
'%build-inputs)
"kernel-headers")
"/include")
;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See
;; "kernel-features.h" in the GNU libc for details.
"--enable-kernel=3.2.0"
;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See
;; "kernel-features.h" in the GNU libc for details.
"--enable-kernel=3.2.0"
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
(search-input-file %build-inputs "/bin/bash"))
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
(assoc-ref %build-inputs "bash")
"/bin/bash")
;; On GNU/Hurd we get discarded-qualifiers warnings for
;; 'device_write_inband' among other things. Ignore them.
#$@(if (target-hurd?)
#~("--disable-werror")
#~()))
;; On GNU/Hurd we get discarded-qualifiers warnings for
;; 'device_write_inband' among other things. Ignore them.
,@(if (target-hurd?)
`("--disable-werror")
'()))
#:tests? #f ; XXX
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(let* ((bin (string-append #$output "/bin"))
(bash (find
(match-lambda
((label . input)
(let ((sh (string-append input "/bin/sh")))
(and (file-exists? sh)
;; Is it bash-static specifically? The
;; label can't be used because of
;; bash-mesboot during the bootstrap.
(not (file-dynamic-info sh))))))
inputs))
(bash (and=> bash cdr)))
;; Install the rpc data base file under `$out/etc/rpc'.
(substitute* "inet/Makefile"
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
(string-append #$output "/etc/rpc" suffix "\n"))
(("^install-others =.*$")
(string-append "install-others = " #$output "/etc/rpc\n")))
#:tests? #f ; XXX
#:phases (modify-phases %standard-phases
(add-before
'configure 'pre-configure
(lambda* (#:key inputs native-inputs outputs
#:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
;; FIXME: Normally we would look it up only in INPUTS
;; but cross-base uses it as a native input.
(bash (or (assoc-ref inputs "static-bash")
(assoc-ref native-inputs "static-bash"))))
;; Install the rpc data base file under `$out/etc/rpc'.
(substitute* "inet/Makefile"
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
(string-append out "/etc/rpc" suffix "\n"))
(("^install-others =.*$")
(string-append "install-others = " out "/etc/rpc\n")))
(substitute* "Makeconfig"
;; According to
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
;; linking against libgcc_s is not needed with GCC
;; 4.7.1.
((" -lgcc_s") ""))
(substitute* "Makeconfig"
;; According to
;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>,
;; linking against libgcc_s is not needed with GCC
;; 4.7.1.
((" -lgcc_s") ""))
;; Tell the ld.so cache code where the store is.
(substitute* "elf/dl-cache.c"
(("@STORE_DIRECTORY@")
(string-append "\"" (%store-directory) "\"")))
;; Tell the ld.so cache code where the store is.
(substitute* "elf/dl-cache.c"
(("@STORE_DIRECTORY@")
(string-append "\"" (%store-directory) "\"")))
;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$")
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n" bash)))
;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$")
(format #f "#define SHELL_PATH \"~a/bin/bash\"\n"
bash)))
;; Same for `popen'.
(substitute* "libio/iopopen.c"
(("/bin/sh")
(string-append bash "/bin/sh")))
;; Same for `popen'.
(substitute* "libio/iopopen.c"
(("/bin/sh")
(string-append bash "/bin/sh")))
;; Same for the shell used by the 'exec' functions for
;; scripts that lack a shebang.
(substitute* (find-files "." "^paths\\.h$")
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
(string-append "#define _PATH_BSHELL \""
bash "/bin/sh\"\n")))
;; Same for the shell used by the 'exec' functions for
;; scripts that lack a shebang.
(substitute* (find-files "." "^paths\\.h$")
(("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$")
(string-append "#define _PATH_BSHELL \""
bash "/bin/sh\"\n")))
;; Make sure we don't retain a reference to the
;; bootstrap Perl.
(substitute* "malloc/mtrace.pl"
(("^#!.*")
;; The shebang can be omitted, because there's the
;; "bilingual" eval/exec magic at the top of the file.
"")
(("exec @PERL@")
"exec perl")))))
;; Make sure we don't retain a reference to the
;; bootstrap Perl.
(substitute* "malloc/mtrace.pl"
(("^#!.*")
;; The shebang can be omitted, because there's the
;; "bilingual" eval/exec magic at the top of the file.
"")
(("exec @PERL@")
"exec perl")))))
(add-after 'install 'move-static-libs
(lambda _
;; Move static libraries to the "static" output.
;; Note: As of GNU libc 2.34, the contents of some ".a"
;; files have been moved into "libc.so", and *both* empty
;; ".so" and ".a" files have been introduced to avoid
;; breaking existing executables and existing builds
;; respectively. The intent of the seemingly redundant
;; empty ".a" files is to avoid newly-compiled executables
;; from having dependencies on the empty shared libraries,
;; and as such, it is useful to have these ".a" files in
;; OUT in addition to STATIC.
(add-after 'install 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys)
;; Move static libraries to the "static" output.
;; Note: As of GNU libc 2.34, the contents of some ".a"
;; files have been moved into "libc.so", and *both* empty
;; ".so" and ".a" files have been introduced to avoid
;; breaking existing executables and existing builds
;; respectively. The intent of the seemingly redundant
;; empty ".a" files is to avoid newly-compiled executables
;; from having dependencies on the empty shared libraries,
;; and as such, it is useful to have these ".a" files in
;; OUT in addition to STATIC.
(define (empty-static-library? file)
;; Return true if FILE is an 'ar' archive with nothing
;; beyond the header.
(let ((file (string-append #$output "/lib/" file)))
(and (ar-file? file)
(= (stat:size (stat file)) 8))))
(define (empty-static-library? file)
;; Return true if FILE is an 'ar' archive with nothing
;; beyond the header.
(let ((file (string-append (assoc-ref outputs "out")
"/lib/" file)))
(and (ar-file? file)
(= (stat:size (stat file)) 8))))
(define (static-library? file)
;; Return true if FILE is a static library. The
;; "_nonshared.a" files are referred to by libc.so,
;; libpthread.so, etc., which are in fact linker
;; scripts.
(and (string-suffix? ".a" file)
(not (string-contains file "_nonshared"))
(not (empty-static-library? file))))
(define (static-library? file)
;; Return true if FILE is a static library. The
;; "_nonshared.a" files are referred to by libc.so,
;; libpthread.so, etc., which are in fact linker
;; scripts.
(and (string-suffix? ".a" file)
(not (string-contains file "_nonshared"))
(not (empty-static-library? file))))
(define (linker-script? file)
;; Guess whether FILE, a ".a" file, is actually a
;; linker script.
(and (not (ar-file? file))
(not (elf-file? file))))
(define (linker-script? file)
;; Guess whether FILE, a ".a" file, is actually a
;; linker script.
(and (not (ar-file? file))
(not (elf-file? file))))
(let* ((lib (string-append #$output "/lib"))
(files (scandir lib static-library?))
(empty (scandir lib empty-static-library?))
(slib (string-append #$output:static "/lib")))
(mkdir-p slib)
(for-each (lambda (base)
(rename-file (string-append lib "/" base)
(string-append slib "/" base)))
files)
(for-each (lambda (base)
(copy-file (string-append lib "/" base)
(string-append slib "/" base)))
empty)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(files (scandir lib static-library?))
(empty (scandir lib empty-static-library?))
(static (assoc-ref outputs "static"))
(slib (string-append static "/lib")))
(mkdir-p slib)
(for-each (lambda (base)
(rename-file (string-append lib "/" base)
(string-append slib "/" base)))
files)
(for-each (lambda (base)
(copy-file (string-append lib "/" base)
(string-append slib "/" base)))
empty)
;; Usually libm.a is a linker script so we need to
;; change the file names in there to refer to STATIC
;; instead of OUT.
(for-each (lambda (ld-script)
(substitute* ld-script
((#$output)
#$output:static)))
(filter linker-script?
(map (cut string-append slib "/" <>)
files))))))
;; Usually libm.a is a linker script so we need to
;; change the file names in there to refer to STATIC
;; instead of OUT.
(for-each (lambda (ld-script)
(substitute* ld-script
((out) static)))
(filter linker-script?
(map (cut string-append slib "/" <>)
files))))))
(add-after 'install 'install-utf8-c-locale
(lambda _
;; Install the C.UTF-8 locale so there's always a UTF-8
;; locale around.
(let ((bin (string-append #$output "/bin"))
(locale (string-append #$output "/lib/locale/"
#$(package-version
this-package))))
(mkdir-p locale)
(add-after 'install 'install-utf8-c-locale
(lambda* (#:key outputs #:allow-other-keys)
;; Install the C.UTF-8 locale so there's always a UTF-8
;; locale around.
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(locale (string-append out "/lib/locale/"
,(package-version
this-package))))
(mkdir-p locale)
;; FIXME: When cross-compiling, attempt to use
;; 'localedef' from the same libc version.
(invoke #$(if (%current-target-system)
"true"
#~(string-append bin "/localedef"))
"--no-archive" "--prefix" locale
"-i" "C" "-f" "UTF-8"
(string-append locale "/C.UTF-8")))))
;; FIXME: When cross-compiling, attempt to use
;; 'localedef' from the same libc version.
(invoke ,(if (%current-target-system)
"true"
'(string-append bin "/localedef"))
"--no-archive" "--prefix" locale
"-i" "C" "-f" "UTF-8"
(string-append locale "/C.UTF-8")))))
#$@(if (target-hurd?)
#~((add-after 'install 'augment-libc.so
(lambda _
(substitute* (string-append #$output "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append #$output "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so")))))
(add-after 'install 'create-machine-symlink
(lambda _
(let* ((cpu #$(match (or (%current-target-system)
(%current-system))
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append #$output
"/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
#~()))))
,@(if (target-hurd?)
`((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append out "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so"))))))
(add-after 'install 'create-machine-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(cpu ,(match (or (%current-target-system)
(%current-system))
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append
out "/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
'()))))
(inputs (list static-bash))
(inputs `(("static-bash" ,static-bash)))
;; To build the manual, we need Texinfo and Perl. Gettext is needed to
;; install the message catalogs, with 'msgfmt'.
(native-inputs
(append
(list bison
gettext-minimal
perl
python-minimal
texinfo)
(if (target-hurd?)
(list mig)
(list))))
(native-inputs `(("texinfo" ,texinfo)
("perl" ,perl)
("bison" ,bison)
("gettext" ,gettext-minimal)
("python" ,python-minimal)
,@(if (target-hurd?)
`(("mig" ,mig)
("perl" ,perl))
'())))
(native-search-paths
;; Search path for packages that provide locale data. This is useful
;; primarily in build environments. Use 'GUIX_LOCPATH' rather than
@@ -1235,6 +1218,17 @@ with the Linux kernel.")
(license lgpl2.0+)
(home-page "https://www.gnu.org/software/libc/")))
(define glibc/fixed
(package
(inherit glibc)
(name "glibc")
(source (origin
(inherit (package-source glibc))
;; XXX: When ungrafting, add the included patch to
;; %glibc-patches.
(patches (cons (search-patch "glibc-guix-locpath.patch")
(origin-patches (package-source glibc))))))))
;; Define a variation of glibc which uses the default /etc/ld.so.cache, useful
;; in FHS containers.
(define-public glibc-for-fhs
@@ -1316,8 +1310,8 @@ with the Linux kernel.")
;; The C.UTF-8 fails to build in glibc 2.35:
;; <https://sourceware.org/bugzilla/show_bug.cgi?id=28861>.
;; It is missing altogether in versions earlier than 2.35.
#~(modify-phases #$phases
(delete 'install-utf8-c-locale)))))))
`(modify-phases ,phases
(delete 'install-utf8-c-locale)))))))
(define-public glibc-2.33
(package
@@ -1358,9 +1352,9 @@ with the Linux kernel.")
"libc_cv_cxx_link_ok=no"
#$flags))
((#:phases phases)
#~(modify-phases #$phases
;; This phase fails trying to create /etc/ld.so.cache
(delete 'install-utf8-c-locale)))))))
`(modify-phases ,phases
;; This phase fails trying to create /etc/ld.so.cache
(delete 'install-utf8-c-locale)))))))
(define-public (make-gcc-libc base-gcc libc)
"Return a GCC that targets LIBC."
@@ -1561,7 +1555,18 @@ variety of options. It is an alternative to the shell \"type\" built-in
command.")
(license gpl3+))) ; some files are under GPLv2+
(define-public glibc/hurd glibc)
(define-public glibc/hurd
(hidden-package
(package/inherit glibc
(source
(origin
(inherit (package-source glibc))
(patches
(append (map search-patch
(delete "glibc-hurd64-intr-msg-clobber.patch" %glibc-patches))
(search-patches
"glibc-hurd-signal-fpe-exception.patch"
"glibc-hurd-xstate.patch"))))))))
(define-public glibc/hurd-headers
(package/inherit glibc/hurd
+44 -10
View File
@@ -66,7 +66,7 @@
(define (patch-url seqno)
"Return the URL of Bash patch number SEQNO."
(format #f "mirror://gnu/bash/bash-5.3-patches/bash53-~3,'0d" seqno))
(format #f "mirror://gnu/bash/bash-5.2-patches/bash52-~3,'0d" seqno))
(define (bash-patch seqno sha256-bv)
"Return the origin of Bash patch SEQNO, with expected hash SHA256-BV."
@@ -79,13 +79,47 @@
(list (bash-patch seqno (base32 hash))
...))
(define %patch-series-5.3
;; This is the current patches series for 5.3, generated using
(define %patch-series-5.2
;; This is the current patches series for 5.2, generated using
;; 'download-patches' below.
(patch-series
(1 "0zr8wgg1gb67vxn7ws971n1znrdinczymc688ndnpy2a6qs88q0z")
(2 "009051z55plsy4jmmjdb3ys7li2jraynz99qg7n6a1qk025591g3")
(3 "1vb0gnrkmz49rcfpxjcxy0v0k5278wrlkljk9gc20nizvk3xjigj")))
(1 "02iibpd3jq8p1bhdzgik8ps6gi1145vr463a82gj1hivjbp2ybzl")
(2 "1f6p1z85qh1lavdp3xikgp0bfv0vqhvgpgwmdzlywl35hwdmxk25")
(3 "1zxsi869jd90hksx3nyypgyqwrxhw2ws3r6hmk76yc1lsgdhq2ba")
(4 "04i5liw5cg6dqkdxfgazqc2jrw40bmclx3dx45bwy259pcj7g0iq")
(5 "0mykflv9qnbx3jz71l4f7isadiw9knm4qimqkwsv9cv88dafpq7c")
(6 "13265akl8w6zyrg0l7f0x6arjgqjhllcwl6lk46rl53x4mm5dq6i")
(7 "146lrwkn5wgxzs6vx34wl47g69zsxdy032k40qzi626b47ya6015")
(8 "1s5i8hcayrv25lc8fxcr431v634yx5sii53b8fmip789s0pxjjvb")
(9 "1kfk25151ka9wkmk1myf12irgcmvhsd8b0nfifvhrszah9w82npr")
(10 "1kf1jrwm30js0v3d1r2rk4x09s1pyjp70wnd1qqhf9bmkw15ww67")
(11 "1x5nkvbj6hci7gx42q7qa72hg2a9wwxh85dk79gn521ypwjmy6w3")
(12 "0b6lcwzm7v5bzjiwaz2c8n5aj77w8ckhp2vwk4v3zsdq3z70gc9g")
(13 "1rkwpibd6j2ghppfhqsva2jm4kdni6b7jpdsxdps52643gc4yjq9")
(14 "09766vqqw4ffnmysm725v35qkhp1g9j4qgqag941xvq655pj9y9y")
(15 "12im449abnq5gaqjmdxr5i38kmp02fa8l8wffad3jryvd58r0wzg")
(16 "05arb0hzmng03cr357lf6p8af0x2a1pznsd3psll03nibfy56n0m")
(17 "129cvx4gfz8n23iw1lhbknbw86fyw6vh60jqj1wj3d5pr75wwj0w")
(18 "105am94qxjc27gga4a8asvsi01090xwjfim3s16lafwjvm4xsha6")
(19 "10njgv5mrc5rhsp5lvxcbm0pnzn59a8spi2nhdasifyl1a32cp1j")
(20 "07f0wlmqjdfarp44w3gj9gdqbqm5x20rvlhpn34ngklmxcm2bz5n")
(21 "1kahfqqalcwi4m73pg3ssz6lh0kcqsqax09myac7a15d2y0vhd43")
(22 "0w74aym0g1fh48864a3qxh89f26iaq7wsbg7244c6kjr94527dbq")
(23 "1lywjqbc36j5pdzfcvnz1zy30j76aqmsm190p888av0hw815b45g")
(24 "1hq23djqbr7s9y2324jq9mxr5bwdkmgizn3zgpchbsqp054k85cp")
(25 "0x9hc4silzl4d3zw4p43i5dm7w86k50j47f87lracwfgwy3z8f2i")
(26 "1b1fhm1dsi67r8ip17s0xvx2qq31fsxc1g9n3r931dd0k9a1zvln")
(27 "0fdbhvs9dkf4knncifh98a76q4gylhyvfrffq5p9q3ag5q58jap1")
(28 "1hdacd6sssjshmry1sscdnxxfb2r51bvdyghlfjaqgc9l85phhk0")
(29 "11wrlb20w6v89b96krg0gwxipwhvrda6rq1y9f972m32gsrsqp0j")
(30 "13v9fqgim082dmvkslsr0hs793yzhsij2s91mjswsfhj1qip7zy3")
(31 "15d7rddj6spwc1fy997lxx6zvzq0zbxgf2h20mhi4wgp5nzbglf2")
(32 "05ia6yf32hjprmyyxqawhgckxs3684ikfx8xg08zfgx9xkd7g73v")
(33 "1qm2aad9mf2xah6xwchga7s5pk3v308mrv9lgh50d65d236ccgh1")
(34 "0bi38dhkkwpm2qrzp8zpykglq6gibvv2n9f8m59gwj406cxvp7w9")
(35 "1r8k34y82v02yfkgws17j7i53ybb74dqnwl2jjiv0av9z93hl6l2")
(36 "0mwhr9hfbh2czf8klbxg6nbd2g9xl9kygvgk061vird56r4kzj8m")
(37 "156sbi3srzkyxajkmhb7iigq0j4nvwnpsbw88xdsxn95a4xiqb4a")))
(define (download-patches store count)
"Download COUNT Bash patches into store. Return a list of
@@ -123,7 +157,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
" -Wl,-rpath -Wl,"
(assoc-ref %build-inputs "ncurses")
"/lib")))
(version "5.3"))
(version "5.2"))
(package
(name "bash")
(source (origin
@@ -132,11 +166,11 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
"mirror://gnu/bash/bash-" version ".tar.gz"))
(sha256
(base32
"1fii1xaxbng9x0klxmxkm0xhmycngfz72jsgyrna4sgqcmlxhp0d"))
"1yrjmf0mqg2q8pqphjlark0mcmgf88b0acq7bqf4gx3zvxkc2fd1"))
(patch-flags '("-p0"))
(patches (cons (search-patch "bash-linux-pgrp-pipe.patch")
%patch-series-5.3))))
(version (string-append version "." (number->string (length %patch-series-5.3))))
%patch-series-5.2))))
(version (string-append version "." (number->string (length %patch-series-5.2))))
(build-system gnu-build-system)
(outputs '("out"
+12 -18
View File
@@ -6,7 +6,6 @@
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2026 Zheng Junjie <z572@z572.online>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,7 +23,6 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bdw-gc)
#:use-module (guix deprecation)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
@@ -57,8 +55,6 @@
#~(list
;; Install gc_cpp.h et al.
"--enable-cplusplus"
;; Used by 'guile-static'.
"--enable-static"
;; In GNU/Hurd systems during the 'check' phase,
;; there is a deadlock caused by the 'gctest' test.
@@ -72,17 +68,7 @@
#~())
#$@(if (target-mingw?)
#~("--enable-threads=pthreads")
#~()))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'move-static-library
(lambda _
(for-each
(lambda (a)
(install-file a (string-append #$output:static
"/lib"))
(delete-file a))
(find-files (string-append #$output "/lib") "\\.a"))))))
#~())))
(cond
((target-ppc64le?)
(list #:make-flags
@@ -101,7 +87,7 @@
;; cross-compiling, and demands using libatomic-ops instead.
(list libatomic-ops)
'()))
(outputs '("out" "debug" "static"))
(outputs '("out" "debug"))
(properties
'((release-monitoring-url . "https://www.hboehm.info/gc/gc_source/")
(upstream-name . "gc")))
@@ -126,8 +112,16 @@ C or C++ programs, though that is not its primary goal.")
(license (x11-style (string-append home-page "license.txt")))))
;; XXX: Deprecated on <2026-04-25>.
(define-deprecated/public-alias libgc/static-libs libgc)
;; TODO: Add a static output in libgc in the next rebuild cycle.
(define-public libgc/static-libs
(package/inherit
libgc
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags flags #~'())
#~(cons "--enable-static" #$flags))))
(properties '((hidden? . #t)))))
(define-public libgc-7
(package
+25 -31
View File
@@ -21,15 +21,14 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bison)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages flex)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages m4)
#:use-module (gnu packages perl)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages flex)
#:use-module (srfi srfi-1))
(define-public bison
@@ -46,29 +45,24 @@
"1wjvbbzrr16k1jlby3l436an3kvv492h08arbnf0gwgprha05flv"))))
(build-system gnu-build-system)
(arguments
(list
;; Building in parallel on many-core systems may cause an error such as
;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or
;; directory". See <https://bugs.gnu.org/36238>.
#:parallel-build? #f
;; Similarly, when building tests in parallel, Make may produce this error:
;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
;; or directory". Full log in <https://bugs.gnu.org/36238>.
#:parallel-tests? #f
#:configure-flags
;; On the Hurd with glibc 2.41 bison uses weak symbols from pthread
;; but does not link to it.
(if (target-hurd?)
#~(list "LIBS=-lpthread")
#~(list))))
(native-inputs
(list perl
;; m4 is not present in PATH when cross-building.
m4))
(inputs
(list flex))
(propagated-inputs
(list m4))
`(;; Building in parallel on many-core systems may cause an error such as
;; "mv: cannot stat 'examples/c/reccalc/scan.stamp.tmp': No such file or
;; directory". See <https://bugs.gnu.org/36238>.
#:parallel-build? #f
;; Similarly, when building tests in parallel, Make may produce this error:
;; "./examples/c/reccalc/scan.l:13:10: fatal error: parse.h: No such file
;; or directory". Full log in <https://bugs.gnu.org/36238>.
#:parallel-tests? #f
;; On the Hurd with glibc 2.41 bison uses weak symbols from pthread
;; but does not link to it.
,@(if (target-hurd?)
(list #:configure-flags ''("LIBS=-lpthread"))
'())))
(native-inputs (list perl
;; m4 is not present in PATH when cross-building.
m4))
(inputs (list flex))
(propagated-inputs (list m4))
(home-page "https://www.gnu.org/software/bison/")
(synopsis "Yacc-compatible parser generator")
(description
@@ -78,4 +72,4 @@ grammar. It is versatile enough to have many applications, from parsers for
simple tools through complex programming languages.
Bison also provides an implementation of @command{yacc}, as specified by POSIX.")
(license license:gpl3+)))
(license gpl3+)))
+306 -272
View File
@@ -37,7 +37,7 @@
#:select (raw-derivation derivation-input derivation->output-path))
#:use-module (guix utils)
#:use-module ((guix build utils) #:select (elf-file?))
#:use-module (guix gexp)
#:use-module ((guix gexp) #:select (lower-object local-file))
#:use-module (guix monads)
#:use-module (guix memoization)
#:use-module (guix i18n)
@@ -204,7 +204,10 @@ for system '~a'")
(uri (map (cute string-append <>
(bootstrap-executable-file-name system program))
%bootstrap-executable-base-urls))
(file-name (string-append "bootstrap-" program))
;; XXX: In the long term, migrate all boostrap executables to
;; (string-append "bootstrap-" program), and drop the additional
;; file-name argument.
(file-name file-name)
(hash (content-hash bv sha256))))))))
(define* (bootstrap-executable program system #:optional file-name)
@@ -264,33 +267,32 @@ or false to signal an error."
(version "0")
(build-system trivial-build-system)
(arguments
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(tarball (assoc-ref %build-inputs
#$(string-append name ".tar.xz"))))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(tarball (assoc-ref %build-inputs "tarball")))
(mkdir #$output)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir "/binaries.tar"))
#$@(if snippet (list snippet) '())
(or (not #$program-to-test)
(invoke (string-append "bin/" #$program-to-test)
"--version"))))))))
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir "/binaries.tar"))
,@(if snippet (list snippet) '())
(or (not ,program-to-test)
(invoke (string-append "bin/" ,program-to-test)
"--version"))))))))
(inputs
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-origin (source (%current-system)))))
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("tarball" ,(bootstrap-origin (source (%current-system))))))
(source #f)
(synopsis description)
(description description)
@@ -633,29 +635,37 @@ $out/bin/guile --version~%"
(_
"/20131110/static-binaries.tar.xz")))
%bootstrap-base-urls))
(file-name "bootstrap-binaries.tar.xz")
(sha256
(base32
(match system
("x86_64-linux"
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4")
("i686-linux"
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak")
("armhf-linux"
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5")
("aarch64-linux"
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh")
("powerpc64le-linux"
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v")
("i586-gnu"
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn")
("x86_64-gnu"
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v")
("powerpc-linux"
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m")
("riscv64-linux"
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg")
("mips64el-linux"
(match system
("x86_64-linux"
(base32
"0c533p9dhczzcsa1117gmfq3pc8w362g4mx84ik36srpr7cx2bg4"))
("i686-linux"
(base32
"0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak"))
("armhf-linux"
(base32
"0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5"))
("aarch64-linux"
(base32
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
("powerpc64le-linux"
(base32
"0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v"))
("i586-gnu"
(base32
"17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
("x86_64-gnu"
(base32
"0xnw5p6279m8xazbhal5ld5qxsya0249z2l6jcc7w9ndh2gnx07v"))
("powerpc-linux"
(base32
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
("riscv64-linux"
(base32
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
("mips64el-linux"
(base32
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
"fgrep" ; the program to test
"Bootstrap binaries of Coreutils, Awk, etc."
@@ -683,7 +693,6 @@ $out/bin/guile --version~%"
"/i686-linux/20190815/"
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
%bootstrap-base-urls))
(file-name "linux-libre-headers-bootstrap.tar.xz")
(sha256
(base32
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
@@ -691,56 +700,63 @@ $out/bin/guile --version~%"
"Bootstrap linux-libre-headers"))
(define %bootstrap-binutils
(package-from-tarball
"binutils-bootstrap"
(lambda (system)
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
(match system
("armhf-linux"
"/20150101/binutils-2.25.tar.xz")
("aarch64-linux"
"/20170217/binutils-2.27.tar.xz")
("powerpc64le-linux"
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/binutils-2.35.1.tar.xz")
("riscv64-linux"
"/20210725/binutils-2.34.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
(file-name "binutils-bootstrap.tar.xz")
(sha256
(base32
(match system
("x86_64-linux"
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20")
("i686-linux"
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9")
("armhf-linux"
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q")
("aarch64-linux"
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n")
("powerpc64le-linux"
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz")
("riscv64-linux"
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m")
("i586-gnu"
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs")
("x86_64-gnu"
"033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04")
("powerpc-linux"
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8")
("mips64el-linux"
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
(package-from-tarball "binutils-bootstrap"
(lambda (system)
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" system
(match system
("armhf-linux"
"/20150101/binutils-2.25.tar.xz")
("aarch64-linux"
"/20170217/binutils-2.27.tar.xz")
("powerpc64le-linux"
"/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/binutils-static-stripped-2.44-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/binutils-2.35.1.tar.xz")
("riscv64-linux"
"/20210725/binutils-2.34.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
(sha256
(match system
("x86_64-linux"
(base32
"1j5yivz7zkjqfsfmxzrrrffwyayjqyfxgpi89df0w4qziqs2dg20"))
("i686-linux"
(base32
"14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9"))
("armhf-linux"
(base32
"1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q"))
("aarch64-linux"
(base32
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
("powerpc64le-linux"
(base32
"1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
("riscv64-linux"
(base32
"0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m"))
("i586-gnu"
(base32
"11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
("x86_64-gnu"
(base32
"033bgmaa012b2lw8g76b02mjgzdnzv2yd3jvaqbhqrr5q9r3xn04"))
("powerpc-linux"
(base32
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8"))
("mips64el-linux"
(base32
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
"ld" ; the program to test
"Bootstrap binaries of the GNU Binutils"))
(define %bootstrap-glibc
;; The initial libc.
@@ -750,91 +766,99 @@ $out/bin/guile --version~%"
(source #f)
(build-system trivial-build-system)
(arguments
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(tarball (assoc-ref %build-inputs "glibc.tar.xz")))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(tarball (assoc-ref %build-inputs "tarball")))
(mkdir #$output)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir
"/binaries.tar"))
(chmod "lib" #o755)
(mkdir out)
(copy-file tarball "binaries.tar.xz")
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd)))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir
"/binaries.tar"))
(chmod "lib" #o755)
;; Patch linker scripts so they refer to the right file-names.
(substitute* #$(cond ((target-hurd64?)
''("lib/libc.so" "lib/libm.so"))
((and (not (target-hurd?))
(or (target-x86?)
(target-arm?)))
''("lib/libc.so" "lib/libpthread.so"))
(else
''("lib/libc.so")))
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
(string-append #$output "/lib/" prefix)))
#$@(if (target-arm32?)
#~((substitute* "lib/libpthread.so"
(("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
#~())))))))
;; Patch linker scripts so they refer to the right file-names.
(substitute* ,(cond ((target-hurd64?)
''("lib/libc.so" "lib/libm.so"))
((and (not (target-hurd?))
(or (target-x86?)
(target-arm?)))
''("lib/libc.so" "lib/libpthread.so"))
(else
''("lib/libc.so")))
(("/[^ ]+/lib/(libc|libh|libm|libpthread|ld)" _ prefix)
(string-append out "/lib/" prefix)))
,@(if (target-arm32?)
`((substitute* "lib/libpthread.so"
(("/[^ ]+/lib/libpthread_nonshared\\.a") "")))
`())))))))
(inputs
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/glibc-2.20.tar.xz")
("aarch64-linux"
"/20170217/glibc-2.25.tar.xz")
("powerpc64le-linux"
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/glibc-2.32.tar.xz")
("riscv64-linux"
"/20210725/glibc-2.31.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
(file-name "glibc.tar.xz")
(sha256
(base32
(match (%current-system)
("x86_64-linux"
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v")
("i686-linux"
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w")
("armhf-linux"
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn")
("aarch64-linux"
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c")
("powerpc64le-linux"
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz")
("riscv64-linux"
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm")
("i586-gnu"
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2")
("x86_64-gnu"
"1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy")
("powerpc-linux"
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb")
("mips64el-linux"
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("tarball" ,(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/glibc-2.20.tar.xz")
("aarch64-linux"
"/20170217/glibc-2.25.tar.xz")
("powerpc64le-linux"
"/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20240816/glibc-stripped-2.39-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/glibc-stripped-2.41-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/glibc-2.32.tar.xz")
("riscv64-linux"
"/20210725/glibc-2.31.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
(sha256
(match (%current-system)
("x86_64-linux"
(base32
"0jlqrgavvnplj1b083s20jj9iddr4lzfvwybw5xrcis9spbfzk7v"))
("i686-linux"
(base32
"1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w"))
("armhf-linux"
(base32
"18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn"))
("aarch64-linux"
(base32
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
("powerpc64le-linux"
(base32
"1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
("riscv64-linux"
(base32
"0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm"))
("i586-gnu"
(base32
"0x2x6w611k6v9qdabacawamw2475p04hm3s0q95xcg063wjq4ig2"))
("x86_64-gnu"
(base32
"1lpvk0l7qqvz46cnxm64a1a40zg0gj90j3glyk67i1sh5r4znlmy"))
("powerpc-linux"
(base32
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb"))
("mips64el-linux"
(base32
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
(synopsis "Bootstrap binaries and headers of the GNU C Library")
(description synopsis)
(home-page #f)
@@ -849,102 +873,110 @@ $out/bin/guile --version~%"
(source #f)
(build-system trivial-build-system)
(arguments
(list
#:guile %bootstrap-guile
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils)
(ice-9 popen))
`(#:guile ,%bootstrap-guile
#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 popen))
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
(xz (assoc-ref %build-inputs "bootstrap-xz"))
(bash (assoc-ref %build-inputs "bootstrap-bash"))
(libc (assoc-ref %build-inputs "glibc-bootstrap"))
(tarball (assoc-ref %build-inputs "gcc.tar.xz")))
(let ((out (assoc-ref %outputs "out"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(bash (assoc-ref %build-inputs "bash"))
(libc (assoc-ref %build-inputs "libc"))
(tarball (assoc-ref %build-inputs "tarball")))
(mkdir #$output)
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))
(bindir (string-append #$output "/bin")))
(mkdir out)
(copy-file tarball "binaries.tar.xz") ;avoid: more than one hard link
(invoke xz "-d" "binaries.tar.xz")
(let ((builddir (getcwd))
(bindir (string-append out "/bin")))
(define (wrap-program program)
(let ((wrapped (format #f ".~a-wrapped" program)))
(rename-file program wrapped)
(call-with-output-file program
(lambda (p)
(format p "#!~a
(define (wrap-program program)
(let ((wrapped (format #f ".~a-wrapped" program)))
(rename-file program wrapped)
(call-with-output-file program
(lambda (p)
(format p "#!~a
exec ~a/bin/~a -B~a/lib \
-Wl,-rpath -Wl,~a/lib \
-Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
bash
#$output wrapped
libc libc libc
#$(glibc-dynamic-linker)))))
(chmod program #o555))
bash
out wrapped
libc libc libc
,(glibc-dynamic-linker)))))
(chmod program #o555))
(with-directory-excursion #$output
(invoke tar "xvf"
(string-append builddir "/binaries.tar")))
(with-directory-excursion out
(invoke tar "xvf"
(string-append builddir "/binaries.tar")))
(with-directory-excursion bindir
(chmod "." #o755)
(for-each wrap-program
#$(if (target-hurd64?)
''("gcc" "g++")
''("gcc")))))))))
(with-directory-excursion bindir
(chmod "." #o755)
(for-each wrap-program
,(if (target-hurd64?)
''("gcc" "g++")
''("gcc")))))))))
(inputs
(list (bootstrap-executable "tar" (%current-system))
(bootstrap-executable "xz" (%current-system))
(bootstrap-executable "bash" (%current-system))
%bootstrap-glibc
(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz")
("powerpc64le-linux"
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz")
("riscv64-linux"
"/20210725/gcc-7.5.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
(file-name "gcc.tar.xz")
(sha256
(base32
(match (%current-system)
("x86_64-linux"
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls")
("i686-linux"
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw")
("armhf-linux"
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v")
("aarch64-linux"
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1")
("powerpc64le-linux"
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1")
("riscv64-linux"
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d")
("i586-gnu"
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5")
("x86_64-gnu"
"1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz")
("powerpc-linux"
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w")
("mips64el-linux"
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
("xz" ,(bootstrap-executable "xz" (%current-system)))
("bash" ,(bootstrap-executable "bash" (%current-system)))
("libc" ,%bootstrap-glibc)
("tarball" ,(bootstrap-origin
(origin
(method url-fetch)
(uri (map (cut string-append <> "/" (%current-system)
(match (%current-system)
("armhf-linux"
"/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz")
("powerpc64le-linux"
"/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
("i586-gnu"
"/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
("x86_64-gnu"
"/20260302/gcc-stripped-14.3.0-x86_64-pc-gnu.tar.xz")
("powerpc-linux"
"/20200923/gcc-5.5.0.tar.xz")
("riscv64-linux"
"/20210725/gcc-7.5.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
(sha256
(match (%current-system)
("x86_64-linux"
(base32
"17ga4m6195n4fnbzdkmik834znkhs53nkypp6557pl1ps7dgqbls"))
("i686-linux"
(base32
"150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
("armhf-linux"
(base32
"0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
("aarch64-linux"
(base32
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
("powerpc64le-linux"
(base32
"151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
("riscv64-linux"
(base32
"1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d"))
("i586-gnu"
(base32
"1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
("x86_64-gnu"
(base32
"1fhi7f5zld08b6qsyv1d48ha7z0vr8pxr4kf8x7aq1a3kbcv5rkz"))
("powerpc-linux"
(base32
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w"))
("mips64el-linux"
(base32
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
(native-search-paths
(list (search-path-specification
(variable "C_INCLUDE_PATH")
@@ -965,12 +997,14 @@ exec ~a/bin/~a -B~a/lib \
;; own packages.
(match (%current-system)
((or "i686-linux" "x86_64-linux")
(list %bootstrap-linux-libre-headers))
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)))
(_
(list %bootstrap-glibc
%bootstrap-gcc
%bootstrap-binutils
%bootstrap-coreutils&co))))
`(("libc" ,%bootstrap-glibc)
("gcc" ,%bootstrap-gcc)
("binutils" ,%bootstrap-binutils)
("coreutils&co" ,%bootstrap-coreutils&co)
;; In gnu-build-system.scm, we rely on the availability of Bash.
("bash" ,%bootstrap-coreutils&co)))))
(define %bootstrap-inputs-for-tests
;; These are bootstrap inputs that are cheap to produce (no compilation
+1187 -1216
View File
File diff suppressed because it is too large Load Diff
+42 -34
View File
@@ -321,11 +321,7 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
"0s92986cv0p692icqlw1j42y9nld8zd83qwhzbqd61p1dqbh6nmb"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags #~(list (string-append "PREFIX=" #$output))
;; Don't attempt to run the tests when cross-compiling.
#:tests? (not (%current-target-system))
#:modules '((guix build gnu-build-system)
(list #:modules '((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)
(srfi srfi-1))
@@ -333,21 +329,20 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
#~(modify-phases %standard-phases
(add-after 'set-paths 'hide-input-bzip2
(lambda* (#:key inputs #:allow-other-keys)
(let ((libbz2.so (false-if-exception
(search-input-file inputs "lib/libbz2.so"))))
(if libbz2.so
(let ((bzip2 (assoc-ref inputs "bzip2")))
(if bzip2
;; Prevent the build system from retaining a reference to
;; BZIP2 from INPUTS (used in both implicit and bootstrap).
;; BZIP2 from INPUTS.
(begin
(let ((library-path (string-split (getenv "LIBRARY_PATH")
#\:)))
(setenv "LIBRARY_PATH"
(string-join (delete (dirname libbz2.so)
library-path)
":")))
(setenv "LIBRARY_PATH"
(string-join (delete (string-append bzip2 "/lib")
(string-split (getenv "LIBRARY_PATH")
#\:))
":"))
(format #t "environment variable `LIBRARY_PATH' set to `~a'~%"
(getenv "LIBRARY_PATH")))
(format #t "no bzip2 found, nothing done~%")))))
(format #t "no bzip2 found, nothing done~%"))
#t)))
(replace 'configure
(lambda* (#:key target #:allow-other-keys)
(when #$(%current-target-system)
@@ -361,7 +356,8 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
(string-append "RANLIB = " target "-ranlib\n"))
(("^all:(.*)test" _ prerequisites)
;; Remove 'all' -> 'test' dependency.
(string-append "all:" prerequisites "\n"))))))
(string-append "all:" prerequisites "\n"))))
#t))
(add-before 'build 'build-shared-lib
(lambda* (#:key inputs #:allow-other-keys)
(patch-makefile-SHELL "Makefile-libbz2_so")
@@ -370,7 +366,8 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
(lambda* (#:key outputs #:allow-other-keys)
;; The Makefile above does not have an 'install' target, nor does
;; it create all the (un)versioned symlinks, so we handle it here.
(let* ((libdir (string-append #$output "/lib"))
(let* ((out (assoc-ref outputs "out"))
(libdir (string-append out "/lib"))
(soname "libbz2.so")
;; Locate the built library (e.g. "libbz2.so.1.0.6").
(lib (car (scandir "."
@@ -387,19 +384,32 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
(unless (null? numbers)
(let ((so-file (string-append base "." (car numbers))))
(symlink so-file base)
(loop so-file (cdr numbers)))))))))
(loop so-file (cdr numbers))))))
#t)))
(add-after 'install-shared-lib 'move-static-lib
(lambda _
(with-directory-excursion (string-append #$output "/lib")
(install-file "libbz2.a" (string-append #$output:static "/lib"))
(delete-file "libbz2.a"))))
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(with-directory-excursion (string-append out "/lib")
(install-file "libbz2.a" (string-append static "/lib"))
(delete-file "libbz2.a")
#t))))
(add-after 'install-shared-lib 'patch-scripts
(lambda _
(substitute* (string-append #$output "/bin/bzdiff")
(("/bin/rm") "rm")))))))
(inputs (if (%current-target-system)
(list bash-minimal)
(list)))
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/bin/bzdiff")
(("/bin/rm") "rm")))
#t)))
#:make-flags #~(list (string-append "PREFIX="
(assoc-ref %outputs "out")))
;; Don't attempt to run the tests when cross-compiling.
#:tests? (not (%current-target-system))))
(inputs
`(,@(if (%current-target-system)
`(("bash" ,bash-minimal))
'())))
(outputs '("out" "static"))
(synopsis "High-quality data compression program")
(description
@@ -544,7 +554,7 @@ formats, including zstd, xz, gzip, and bgzf.")
(define-public xz
(package
(name "xz")
(version "5.8.1")
(version "5.4.5")
(source (origin
(method url-fetch)
(uri (list (string-append "http://tukaani.org/xz/xz-" version
@@ -553,7 +563,7 @@ formats, including zstd, xz, gzip, and bgzf.")
version ".tar.gz")))
(sha256
(base32
"0hsmg58a27jd1vq0lc6yp405978c1nfhqwndl7f10v1mk6sjay2h"))))
"1mmpwl4kg1vs6n653gkaldyn43dpbjh8gpk7sk0gps5f6jwr0p0k"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -571,7 +581,7 @@ formats, including zstd, xz, gzip, and bgzf.")
(substitute* (string-append out "/lib/liblzma.la")
(("^old_library='liblzma.a'") "old_library=''"))
#t))))))
(outputs '("out" "static" "doc"))
(outputs '("out" "static"))
(inputs
`(,@(if (%current-target-system)
`(("bash" ,bash-minimal))
@@ -588,8 +598,6 @@ compression algorithm is currently LZMA2, which is used inside the .xz
container format. With typical files, XZ Utils create 30 % smaller output
than gzip and 15 % smaller output than bzip2.")
(license (list license:gpl2+ license:lgpl2.1+)) ; bits of both
(properties
`((output-synopsis "doc" "API documentation and example code")))
(home-page "https://tukaani.org/xz/")))
(define-public heatshrink
+75 -72
View File
@@ -567,15 +567,16 @@ the base compiler. Use XBINUTILS as the associated cross-Binutils."
(srfi srfi-26))
,@(package-arguments glibc/hurd-headers))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
'#$%gcc-cross-include-paths))))))
`(modify-phases ,phases
(add-after 'unpack 'set-cross-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((mach (assoc-ref inputs "gnumach-headers"))
(hurd (assoc-ref inputs "hurd-headers"))
(cpath (string-append mach "/include:"
hurd "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
#t)))))
((#:configure-flags flags)
`(cons* ,(string-append "--build=" (%current-system))
,(string-append "--host=" target)
@@ -690,78 +691,80 @@ returned."
(name (string-append "glibc-cross-" target))
(arguments
(substitute-keyword-arguments
`(;; Disable stripping (see above.)
#:strip-binaries? #f
`(;; Disable stripping (see above.)
#:strip-binaries? #f
;; This package is used as a target input, but it should not have
;; the usual cross-compilation inputs since that would include
;; itself.
#:implicit-cross-inputs? #f
;; This package is used as a target input, but it should not have
;; the usual cross-compilation inputs since that would include
;; itself.
#:implicit-cross-inputs? #f
;; We need SRFI 26.
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
;; We need SRFI 26.
#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
,@(package-arguments libc))
((#:configure-flags flags)
#~(cons #$(string-append "--host=" target)
#$(if (target-hurd? target)
#~(append (list "--disable-werror")
#$flags)
,@(package-arguments libc))
((#:configure-flags flags)
`(cons ,(string-append "--host=" target)
,(if (target-hurd? target)
`(append (list "--disable-werror")
,flags)
flags)))
((#:phases phases)
#~(modify-phases #$phases
(add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath)
'#$%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib"))))) ; for Hurd's libihash
(add-before 'configure 'add-cross-binutils-to-PATH
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc
;; -print-prog-name=objdump' returns the correct name. See
;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>.
(define cross-objdump
(search-input-file
(or native-inputs inputs)
(string-append #$target "/bin/objdump")))
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath)
',%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib")) ; for Hurd's libihash
#t)))
(add-before 'configure 'add-cross-binutils-to-PATH
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; Add BINUTILS/TARGET/bin to $PATH so that 'gcc
;; -print-prog-name=objdump' returns the correct name. See
;; <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>.
(define cross-objdump
(search-input-file
(or native-inputs inputs)
(string-append ,target "/bin/objdump")))
(define cross-binutils
(dirname cross-objdump))
(define cross-binutils
(dirname cross-objdump))
(format #t "adding '~a' to the front of 'PATH'~%"
cross-binutils)
(setenv "PATH" (string-append cross-binutils ":"
(getenv "PATH")))))
(format #t "adding '~a' to the front of 'PATH'~%"
cross-binutils)
(setenv "PATH" (string-append cross-binutils ":"
(getenv "PATH")))))
;; This phase would require running 'localedef' built for
;; TARGET, which is impossible by definition.
(delete 'install-utf8-c-locale)
;; This phase would require running 'localedef' built for
;; TARGET, which is impossible by definition.
(delete 'install-utf8-c-locale)
#$@(if (target-hurd? target)
#~((add-after 'install 'augment-libc.so
(lambda _
(substitute* (string-append #$output "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append #$output "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so")))))
(add-after 'install 'create-machine-symlink
(lambda _
(let ((cpu #$(match target
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
,@(if (target-hurd? target)
`((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3")
(string-append out "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so"))))))
(add-after 'install 'create-machine-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(cpu ,(match target
((? target-x86-32?)
"i386")
((? target-x86-64?)
"x86_64")))
(machine (string-append
#$output
"/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
#~())))))
out "/include/mach/machine")))
(unless (file-exists? machine)
(symlink cpu machine))))))
'())))))
;; Shadow the native "kernel-headers" because glibc's recipe expects the
;; "kernel-headers" input to point to the right thing.
+16 -2
View File
@@ -113,7 +113,14 @@
(for-each (lambda (x)
(install-file x "aclocal"))
(find-files "aclocal_java"))
(apply (assq-ref %standard-phases 'bootstrap) arguments))))
(apply (assq-ref %standard-phases 'bootstrap) arguments)
(let ((automake-files (search-input-directory
(or native-inputs inputs)
"share/automake-1.16")))
(define (replace file)
(symlink (string-append automake-files "/" file) file))
(for-each replace '("config.sub" "config.guess"
"install-sh"))))))
#$@(if (or (target-arm?)
(target-riscv64?))
#~((add-after 'unpack 'bdb-configure-patch
@@ -195,7 +202,14 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
(for-each (lambda (x)
(install-file x "aclocal"))
(find-files "aclocal_java"))
(apply (assq-ref %standard-phases 'bootstrap) arguments))))
(apply (assq-ref %standard-phases 'bootstrap) arguments)
(let ((automake-files (search-input-directory
(or native-inputs inputs)
"share/automake-1.16")))
(define (replace file)
(symlink (string-append automake-files "/" file) file))
(for-each replace '("config.sub" "config.guess"
"install-sh"))))))
(add-before 'configure 'pre-configure
(lambda _
(chdir "dist")
+7 -255
View File
@@ -1,18 +1,18 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2018-2021, 2023 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018-2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017-2018, 2021, 2023-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2021-2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022, 2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2024 Juliana Sims <juli@incana.org>
;;; Copyright © 2025, 2026 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2025-2026 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2022 Konstantinos Agiannis <agiannis.kon@gmail.com>
;;; Copyright © 2015-2025 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022, 2024, 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2016, 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2020-2025 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Andrew Miloradovsky <andrew@interpretmath.pw>
@@ -24,22 +24,12 @@
;;; Copyright © 2022, 2025 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2025, Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2018, 2020-2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2025, 2026 Gabriel Wicki <gabriel@erlikon.ch>
;;; Copyright © 2026 Thomas Kramer <thomas@f-si.org>
;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
;;; Copyright © 2018, 2020-2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2025 Greg Hogan <code@greghogan.com>
;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2021-2026 Peter Polidoro <peter@polidoro.io>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2025 Thomas Guillermo Albers Raviola <thomas@thomaslabs.org>
;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -86,7 +76,6 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages embedded)
@@ -142,7 +131,6 @@
#:use-module (gnu packages readline)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
#:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
@@ -157,7 +145,6 @@
#:use-module (gnu packages toolkits)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
@@ -1066,241 +1053,6 @@ It simulates the netlists of the cells with ngspice and writes the
characterization result in a liberty library file.")
(license license:agpl3+)))
(define-public kicad
(package
(name "kicad")
(version "10.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/code/kicad.git")
(commit version)))
(sha256
(base32
"1470x1276yvd8li3w25zjg73fkpl2qp4dsx7adanafq5c4l47rmc"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:out-of-source? #t
#:tests? #f ;no tests
#:build-type "Release"
#:configure-flags
,#~(list (string-append "-DOCC_INCLUDE_DIR="
#$(file-append opencascade-occt
"/include/opencascade"))
;; Guix uses 'wxwidgets-sans-egl' for KiCad because
;; wxWidgets' EGL canvas support breaks with glew-2.2.
"-DKICAD_WAYLAND=OFF"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
"-DCMAKE_BUILD_TYPE=RelWithDebInfo")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-ngspice-detection
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "eeschema/CMakeLists.txt"
(("NGSPICE_DLL_FILE=\"\\$\\{NGSPICE_DLL_FILE\\}\"")
(string-append "NGSPICE_DLL_FILE=\"libngspice.so\""))
(("NGSPICE_DLL_DIR=\"\\$\\{NGSPICE_DLL_DIR\\}\"")
(string-append "NGSPICE_DLL_DIR=\""
(dirname
(search-input-file inputs
"lib/libngspice.so"))
"\"")))))
(add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python"))
(file (string-append out "/bin/kicad"))
(path (string-append out "/lib/python"
,(version-major+minor (package-version
python))
"/site-packages:"
(getenv "GUIX_PYTHONPATH"))))
(wrap-program file
`("GUIX_PYTHONPATH" ":" prefix
(,path))
`("PATH" ":" prefix
(,(string-append python "/bin:"))))))))))
(native-search-paths
;; Currently, KiCad environment variables are single-valued
;; (see https://gitlab.com/kicad/code/kicad/-/issues/14792).
(list (search-path-specification
(variable "KICAD") ;to find kicad-doc
(files '(""))
(separator #f))
(search-path-specification
(variable "KICAD10_TEMPLATE_DIR")
(files '("share/kicad/template"))
(separator #f))
(search-path-specification
(variable "KICAD10_SYMBOL_DIR")
(files '("share/kicad/symbols"))
(separator #f))
(search-path-specification
(variable "KICAD10_FOOTPRINT_DIR")
(files '("share/kicad/footprints"))
(separator #f))
(search-path-specification
(variable "KICAD10_3DMODEL_DIR")
(files '("share/kicad/3dmodels"))
(separator #f))
(search-path-specification
(variable "KICAD_STOCK_DATA_HOME")
(files '("share/kicad"))
(separator #f))))
(native-inputs (list boost
desktop-file-utils
gettext-minimal
pkg-config
swig-4.0
unixodbc
zlib))
(inputs (list bash-minimal
cairo
curl
gdk-pixbuf
glew
glm
hicolor-icon-theme
gtk+
libgit2
libngspice
libspnav
libsecret
libsm
mesa
nng
opencascade-occt
openssl
poppler
protobuf
python-wrapper
python-wxpython
wxwidgets-sans-egl
(list zstd "lib")))
(home-page "https://www.kicad.org/")
(synopsis "Electronics Design Automation Suite")
(description
"Kicad is a program for the formation of printed circuit
boards and electrical circuits. The software has a number of programs that
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.")
(license license:gpl3+)))
(define-public kicad-doc
(package
(name "kicad-doc")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/services/kicad-doc.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1k0ayxsy0nnv9qxkii9yrxs7jx9y3wfjpsv5yl9wql3vdg3qay69"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html"
"-DLANGUAGES=en")
#:tests? #f)) ;no test suite
(native-inputs (list asciidoc
gettext-minimal
git-minimal
perl
perl-unicode-linebreak
perl-yaml-tiny
po4a
ruby-asciidoctor/minimal
source-highlight))
(home-page "https://kicad.org")
(synopsis "KiCad official documentation")
(description "This repository contains the official KiCad documentation.")
(license license:gpl3+)))
(define-public kicad-symbols
(package
(name "kicad-symbols")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-symbols.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0khfnln0f2zsz5hy31nw2rr0nflb2z3s9n9f7g41g03m9l3s43v2"))))
(build-system cmake-build-system)
(native-inputs (list python-wrapper))
(arguments
`(#:tests? #f)) ; no tests exist
(home-page (package-home-page kicad))
(synopsis "Official KiCad schematic symbol libraries")
(description "This package contains the official KiCad schematic symbol
libraries.")
;; TODO: Exception: "To the extent that the creation of electronic designs
;; that use 'Licensed Material' can be considered to be 'Adapted Material',
;; then the copyright holder waives article 3 of the license with respect to
;; these designs and any generated files which use data provided as part of
;; the 'Licensed Material'."
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
(license license:cc-by-sa4.0)))
(define-public kicad-footprints
(package
(inherit kicad-symbols)
(name "kicad-footprints")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-footprints.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0ymmd1rzrczpvcqzw1mld9x8xhbka0vvjy3kdqwysg4ri97f5wrm"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
(define-public kicad-packages3d
(package
(inherit kicad-symbols)
(name "kicad-packages3d")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-packages3D.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0k91iw661fpzb7saryjxdcdvk1kis7dhbcpzp7xzjk84i4jvxrp5"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
(define-public kicad-templates
(package
(inherit kicad-symbols)
(name "kicad-templates")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-templates.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0zs29zn8qjgxv0w1vyr8yxmj02m8752zagn4vcraqgik46dwg2id"))))
(synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and
worksheet templates.")))
(define-public lepton-eda
(package
(name "lepton-eda")
-240
View File
@@ -29,7 +29,6 @@
;;; Copyright © 2026 Nikita Alkhovik <forgoty13@gmail.com>
;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu>
;;; Copyright © 20212023, 2026 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4716,245 +4715,6 @@ emulator framework based on QEMU.")
(sha256
(base32 "0mlfs8qfi0clyncfkbxp6in0cpl747510i6bqymwid43xcirbikz"))))))
(define-public (aemu-postoffice-source commit sha256-hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Kethen/aemu_postoffice")
(commit commit)))
(file-name "aemu-postoffice-source")
(sha256 sha256-hash)))
(define-public (libchdr-source commit sha256-hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rtissera/libchdr")
(commit commit)))
(file-name "libchdr-source")
(sha256 sha256-hash)))
(define-public (rcheevos-source commit sha256-hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/RetroAchievements/rcheevos/")
(commit commit)))
(file-name "rcheevos-source")
(sha256 sha256-hash)))
(define-public ppsspp
(package
(name "ppsspp")
(version "1.20.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hrydgard/ppsspp")
(commit (string-append "v" version))))
(sha256
(base32 "186d2jc6h6xmiqnrifq4xcw0g3fv1slcnvs5mzzxcnfk7ljr6r6p"))
(file-name (git-file-name name version))
(patches
(search-patches "ppsspp-disable-upgrade-and-gold.patch"))
(modules '((guix build utils)))
(snippet
`(begin
;; The following is quite a heavy-handed way of unbundling PPSSPP.
;; There are still a number of external sources, that we don't
;; remove here. Some may be packaged, others are not.
;; First, we patch existing sources to include the right headers.
(substitute* (append (find-files "Common" ".*\\.(h|cpp)")
(find-files "Core" ".*\\.(h|cpp)")
(find-files "GPU" ".*\\.(h|cpp)")
(find-files "SDL" ".*\\.(h|cpp)")
(find-files "UI" ".*\\.(h|cpp)"))
;; These headers are all hard-coded in the original source.
(("ext/cityhash/") "")
(("ext/cpu_features/include/") "cpu_features/")
(("ext/glslang/glslang/") "glslang/")
(("ext/glslang/") "glslang/")
(("ext/miniupnp/") "")
(("ext/nanosvg/src") "nanosvg")
(("ext/rapidjson/include/") "")
(("ext/SPIRV-Cross/") "spirv_cross/")
(("ext/vulkan/") "vulkan/")
(("ext/xxhash.h") "xxhash.h")
;; These definitions do not actually exist in the Vulkan headers,
;; but PPSSPP defines them in ext/vulkan.
(("VK_FORMAT_BEGIN_RANGE") "VK_FORMAT_UNDEFINED")
(("VK_FORMAT_END_RANGE") "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"))
;; Next, we patch CMakeLists.
(substitute* "CMakeLists.txt"
;; Drop unnecessary includes and targets.
(("include_directories\\(ext/glslang\\)") "")
(("target_include_directories\\(.*ext/xxhash\\)") "")
(("target_include_directories\\(.*ext/cityhash\\)") "")
(("set_target_properties\\(cityhash .*\\)") "")
(("target_compile_options\\(cityhash .*\\)") "")
;; Fix linking to GLEW.
(("TARGET Ext::GLEW") "true")
(("target_link_libraries\\((Common|native) Ext::GLEW\\)" all lib)
(string-append "find_package(GLEW)\n"
"target_link_libraries(" lib " GLEW::GLEW)"))
(("Ext::Snappy") "snappy")
(("OGLCompiler") "")
(("OSDependent") "")
;; Don't search for cityhash/xxhash, we already have them.
(("add_library\\((city|xx)hash STATIC") "if()\nendif(")
(("ext/xxhash\\.[ch]") "")
(("ext/cityhash/.*\\.(cpp|h)") "")
;; Drop remaining references to GOLD.
(("UI/IAPScreen\\.(cpp|h)") "")
;; Link all of spirv-cross.
(("spirv-cross-glsl" all)
(string-append all
" spirv-cross-core spirv-cross-cpp"
" spirv-cross-reflect spirv-cross-util")))
(substitute* "ext/CMakeLists.txt"
(("add_subdirectory\\(cmake.*") "")
(("add_subdirectory\\(freetype.*") "")
(("add_subdirectory\\(glew.*") "")
(("add_subdirectory\\(glslang.*") "")
(("add_subdirectory\\(snappy.*") "")
(("add_subdirectory\\(SPIRV-Cross-build.*") "")
(("add_subdirectory\\(zstd.*") ""))
;; Finally, we can delete the bundled sources…
(for-each delete-file-recursively
'("ext/cmake"
"ext/glew"
"ext/glslang" "ext/glslang-build"
"ext/miniupnp" "ext/miniupnp-build"
"ext/native"
"ext/snappy"
"ext/SPIRV-Cross" "ext/SPIRV-Cross-build"
"ext/vulkan"
"ext/xxhash.c"
"ext/xxhash.h"
"ext/zlib"
"ext/zstd"))
;; … as well as the remaining files referencing GOLD.
(for-each delete-file
'("UI/IAPScreen.cpp"
"UI/IAPScreen.h"
"ios/IAPManager.mm"
"ios/IAPManager.h"))
;; Since we are not including git as an input, PPSSPP is confused
;; about its version. Let's fix that here.
(substitute* "git-version.cmake"
(("unknown") ,version))))))
(build-system cmake-build-system)
(arguments
(list
#:out-of-source? #f
#:configure-flags #~(list "-DARMIPS_USE_STD_FILESYSTEM=ON" ; from armips
"-DUSE_DISCORD=OFF"
"-DUSE_SYSTEM_FFMPEG=ON"
"-DUSE_SYSTEM_LIBZIP=ON"
"-DUSE_SYSTEM_MINIUPNPC=ON"
"-DUSE_SYSTEM_ZSTD=ON"
;; for testing
"-DUNITTEST=ON" "-DHEADLESS=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'set-paths 'add-sdl-paths
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPLUS_INCLUDE_PATH"
(string-append
(dirname (search-input-file inputs
"include/SDL2/SDL.h"))
":"
(getenv "CPLUS_INCLUDE_PATH")))))
(add-after 'unpack 'add-external-sources
(lambda* (#:key inputs #:allow-other-keys)
;; TODO: unbundle armips.
(copy-recursively #$(package-source armips) "ext/armips")
;; XXX: Lua 5.4 is missing lapi.h, so we have to bundle it 😫
(with-directory-excursion "ext/lua"
(invoke "tar" "xvf" #$(package-source lua-5.4)
"--strip-components=2"))
(copy-recursively
#$(this-package-native-input "aemu-postoffice-source")
"ext/aemu_postoffice")
;; No public release, leave bundled for now.
(copy-recursively
#$(this-package-native-input "libchdr-source")
"ext/libchdr")
;; TODO: Unbundle rcheevos.
(copy-recursively
#$(this-package-native-input "rcheevos-source")
"ext/rcheevos")))
(add-after 'unpack 'fix-shader
(lambda _
(substitute* (find-files "Common/GPU/" "\\.cpp$")
(("#include \"glslang/SPIRV/GlslangToSpv\\.h\"" all)
(string-append "#include <glslang/Public/ShaderLang.h>\n"
all)))))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin/ppsspp (string-append out "/bin/ppsspp"))
(share (string-append out "/share/ppsspp")))
(copy-recursively "icons/hicolor"
(string-append out "/share/icons/hicolor"))
(install-file "PPSSPPSDL" share)
(copy-recursively "assets" (string-append share "/assets"))
(make-desktop-entry-file
(string-append out "/share/applications/ppsspp.desktop")
#:name "PPSSPP"
#:exec (string-append share "/PPSSPPSDL")
#:icon "ppsspp")
(mkdir-p (string-append out "/bin"))
(with-output-to-file bin/ppsspp
(lambda ()
(format #t "#!~a~%exec ~a/PPSSPPSDL \"$@\""
(search-input-file inputs "/bin/bash") share)))
(chmod bin/ppsspp #o755)))))))
(native-inputs
(list pkg-config python
(package-source lua-5.4)
(aemu-postoffice-source
"2026-03-16"
(base32 "072w3jf87s8b00kp8nvscrggn1wq7nv37xfm527h2rg2sm57irp3"))
(libchdr-source
"8bba7745d758627258b315997a860039244cedaf"
(base32 "05syp2mk6m9mdvg7qq0wd612apps615x71kv6im9pxd2f76k1wy3"))
(rcheevos-source
"v12.3.0"
(base32 "09h9n7znl2ajkicshv4scawjb9zz3v9aka8986j9sg5y02a4h3wf"))))
(inputs (list bash
cityhash
cpu-features
ffmpeg
glew
glslang
libpng
libzip
;; lua-5.4
mesa
miniupnpc
nanosvg
openxr
rapidjson
sdl2
sdl2-ttf
snappy
spirv-cross
vulkan-headers
vulkan-loader
wayland
xxhash
zlib
`(,zstd "lib")))
(home-page "https://www.ppsspp.org/")
(synopsis "PSP emulator")
(description
"PPSSPP is a ``high-level'' emulator simulating the PSP operating
system.")
(license license:gpl2+)))
(define-public exomizer
(package
(name "exomizer")
+5 -7
View File
@@ -48,7 +48,7 @@
(define-public nuspell
(package
(name "nuspell")
(version "5.1.7")
(version "5.1.4")
(source
(origin
(method git-fetch)
@@ -58,14 +58,12 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xvy8qrpw1282akr873xzja61afnr27f1gab6jc4cgy8pkfqq308"))))
(base32 "05j1hmczy6v9dyxp77vxhgyl7y5hff3v45vlp86gyh7m9lgqpmra"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags
#~(list "-DBUILD_DOCS=OFF" ;do not pull Pandoc
#$@(if (%current-target-system)
'("-DBUILD_TESTING=OFF")
'()))))
(if (%current-target-system)
(list #:configure-flags #~(list "-DBUILD_TESTING=OFF"))
'()))
(native-inputs (list catch2-3 pkg-config))
(propagated-inputs (list icu4c))
(native-search-paths (list (search-path-specification
+240 -12
View File
@@ -135,7 +135,6 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages javascript)
#:use-module (gnu packages jupyter)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libevent)
@@ -999,6 +998,233 @@ The viewer can be used interactively with a REPL (for example Geiser in
Emacs).")
(license license:gpl3+))))
(define-public kicad
(package
(name "kicad")
(version "9.0.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/code/kicad.git")
(commit version)))
(sha256
(base32
"1b995p0qb9cjpj0n3x3szbqr6d7fxwmrp2nbx37y7ym2bc1lpxd8"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:out-of-source? #t
#:tests? #f ;no tests
#:build-type "Release"
#:configure-flags
,#~(list "-DKICAD_SCRIPTING_PYTHON3=ON"
(string-append "-DOCC_INCLUDE_DIR="
#$(this-package-input "opencascade-occt")
"/include/opencascade")
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
"-DKICAD_USE_EGL=OFF"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
"-DCMAKE_BUILD_TYPE=RelWithDebInfo")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-ngspice-detection
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "eeschema/CMakeLists.txt"
(("NGSPICE_DLL_FILE=\"\\$\\{NGSPICE_DLL_FILE\\}\"")
(string-append "NGSPICE_DLL_FILE=\""
(assoc-ref inputs "libngspice")
"/lib/libngspice.so\"")))))
(add-after 'install 'wrap-program
;; Ensure correct Python at runtime.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python"))
(file (string-append out "/bin/kicad"))
(path (string-append out "/lib/python"
,(version-major+minor (package-version
python))
"/site-packages:"
(getenv "GUIX_PYTHONPATH"))))
(wrap-program file
`("GUIX_PYTHONPATH" ":" prefix
(,path))
`("PATH" ":" prefix
(,(string-append python "/bin:"))))))))))
(native-search-paths
;; Currently, KiCad environment variables are single-valued
;; (see https://gitlab.com/kicad/code/kicad/-/issues/14792).
(list (search-path-specification
(variable "KICAD") ;to find kicad-doc
(files '(""))
(separator #f))
(search-path-specification
(variable "KICAD9_TEMPLATE_DIR")
(files '("share/kicad/template"))
(separator #f))
(search-path-specification
(variable "KICAD9_SYMBOL_DIR")
(files '("share/kicad/symbols"))
(separator #f))
(search-path-specification
(variable "KICAD9_FOOTPRINT_DIR")
(files '("share/kicad/footprints"))
(separator #f))
(search-path-specification
(variable "KICAD9_3DMODEL_DIR")
(files '("share/kicad/3dmodels"))
(separator #f))
(search-path-specification
(variable "KICAD_STOCK_DATA_HOME")
(files '("share/kicad"))
(separator #f))))
(native-inputs (list boost
desktop-file-utils
gettext-minimal
pkg-config
swig-4.0
unixodbc
zlib))
(inputs (list bash-minimal
cairo
curl
glew
glm
hicolor-icon-theme
libngspice
libsm
libgit2
libsecret
mesa
opencascade-occt
openssl
python-wrapper
gtk+
wxwidgets-sans-egl
nng
python-wxpython
protobuf
gdk-pixbuf
(list zstd "lib")))
(home-page "https://www.kicad.org/")
(synopsis "Electronics Design Automation Suite")
(description
"Kicad is a program for the formation of printed circuit
boards and electrical circuits. The software has a number of programs that
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.")
(license license:gpl3+)))
(define-public kicad-doc
(package
(name "kicad-doc")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/services/kicad-doc.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"07g80p1igp8j3kh3qpmqd150i9950w1143yhncwik2ypccwjdfjy"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html")
#:tests? #f)) ;no test suite
(native-inputs (list asciidoc
gettext-minimal
git-minimal
perl
perl-unicode-linebreak
perl-yaml-tiny
po4a
ruby-asciidoctor/minimal
source-highlight))
(home-page "https://kicad.org")
(synopsis "KiCad official documentation")
(description "This repository contains the official KiCad documentation.")
(license license:gpl3+)))
(define-public kicad-symbols
(package
(name "kicad-symbols")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-symbols.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"08qb4rqxsyhrcvj1k200m2c06jjy7jwjmf9n1qkcm0biqqc5dba4"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests exist
(home-page (package-home-page kicad))
(synopsis "Official KiCad schematic symbol libraries")
(description "This package contains the official KiCad schematic symbol
libraries.")
;; TODO: Exception: "To the extent that the creation of electronic designs
;; that use 'Licensed Material' can be considered to be 'Adapted Material',
;; then the copyright holder waives article 3 of the license with respect to
;; these designs and any generated files which use data provided as part of
;; the 'Licensed Material'."
;; See <https://github.com/KiCad/kicad-symbols/blob/master/LICENSE.md>.
(license license:cc-by-sa4.0)))
(define-public kicad-footprints
(package
(inherit kicad-symbols)
(name "kicad-footprints")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-footprints.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1w7dkb93s84ymi1syxpzacbmkxlnlh0k4z1c62nabspb901nn524"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
(define-public kicad-packages3d
(package
(inherit kicad-symbols)
(name "kicad-packages3d")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-packages3D.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1j26dmgz7xfixlqrzclb1wpc6zkd10n1fq7rmdrgwwx083p3c7a8"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
(define-public kicad-templates
(package
(inherit kicad-symbols)
(name "kicad-templates")
(version (package-version kicad))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/kicad/libraries/kicad-templates.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0zs29zn8qjgxv0w1vyr8yxmj02m8752zagn4vcraqgik46dwg2id"))))
(synopsis "Official KiCad project and worksheet templates")
(description "This package contains the official KiCad project and
worksheet templates.")))
(define-public librseq
;; There's no release.
(let ((commit "c3ed6b64bbe1944bd8de8b9fde14e7c290f02a90")
@@ -2721,17 +2947,16 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
(define-public freecad
(package
(name "freecad")
(version "1.1.0")
(version "1.0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/FreeCAD/FreeCAD")
(commit version)
(recursive? #t))) ;needed for the AddonManager
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "029ndw1dypx0xhs4fyiinf7gpk8am0vm9b24idvdsx9x7ghrqz4j"))
(base32 "1zyz473fzrz9h073wp4k65qq4bkhqsp245nsv6nv186sl78l99xa"))
(snippet
#~(begin
(use-modules (guix build utils))
@@ -2748,7 +2973,7 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
#:configure-flags
#~(list
"-DBUILD_FLAT_MESH:BOOL=ON"
"-DBUILD_ENABLE_CXX_STD:STRING=C++20" ; FreeCAD 1.1 requires C++20
"-DBUILD_ENABLE_CXX_STD:STRING=C++17"
"-DENABLE_DEVELOPER_TESTS=OFF" ;; see the above: #:tests? comment
"-DFREECAD_QT_VERSION=6" ;; Build with Qt6
"-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=ON" ;; unbundle ondsel-solver
@@ -2770,13 +2995,12 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
(list c++-gsl
doxygen
graphviz
pybind11
qttools
pkg-config
swig-4.4))
swig-4.0))
(inputs
(list bash-minimal
boost
boost-1.83
coin3d
double-conversion
eigen
@@ -2786,7 +3010,6 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
gl2ps
glew
hdf5-1.10
icu4c
jsoncpp
libarea
libjpeg-turbo
@@ -2809,14 +3032,16 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
python-ply
python-pyside-6
python-pyyaml
python-shiboken-6
python-wrapper
qtsvg
qtwebchannel
qtwebengine
qtwayland
qtx11extras
sqlite
onetbb ;same version as opencascade-occt
vtk
vtk-9.5
xerces-c
yaml-cpp
zlib))
@@ -3986,10 +4211,13 @@ G-codes to binary and vice versa.")
openvdb
pango
prusa-libbgcode
wxwidgets
;; XXX: Using Prusa wxWidgets fork as PrusaSlicer segfaults when compiled
;; with regular wxwidgets.
prusa-wxwidgets
qhull
onetbb
webkitgtk-for-gtk3
webkitgtk-with-libsoup2
z3
zlib))
(home-page "https://www.prusa3d.com/prusaslicer/")
+3 -3
View File
@@ -427,7 +427,7 @@ ones.")
(define-public fsarchiver
(package
(name "fsarchiver")
(version "0.8.9")
(version "0.8.7")
(source
(origin
(method git-fetch)
@@ -437,10 +437,10 @@ ones.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0wyq140yzhhqzg364ai7m21z2kgvyi6dmqlw5ycblryf0zkvd7vq"))))
(base32 "1vy8ay0fn32i298bx9scqghi7xm9z2101zxk5xshbrkl00b2m4nm"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf-2.72 automake pkg-config))
(list autoconf automake pkg-config))
(inputs
(list bzip2
e2fsprogs
+23 -23
View File
@@ -26,7 +26,6 @@
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages bison)
@@ -44,9 +43,18 @@
"flex-" version ".tar.gz"))
(sha256
(base32
"15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"))
(patches (search-patches "flex-fix-make-dependencies.patch"))))
"15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"))))
(build-system gnu-build-system)
(inputs
(let ((bison-for-tests
(package
(inherit bison)
(arguments
;; Disable tests, since they require flex.
(substitute-keyword-arguments arguments
((#:tests? _ #f) #f)))
(inputs (alist-delete "flex" (package-inputs bison))))))
`(("bison" ,bison-for-tests))))
(arguments
(if (%current-target-system)
(list #:configure-flags
@@ -55,29 +63,21 @@
'()))
;; m4 is not present in PATH when cross-building
(native-inputs
(let ((bison-for-tests
(package
(inherit bison)
(arguments
;; Disable tests, since they require flex.
(substitute-keyword-arguments arguments
((#:tests? _ #f) #f)))
(inputs (modify-inputs inputs
(delete "flex"))))))
(list bison-for-tests help2man m4)))
(list help2man m4))
(propagated-inputs (list m4))
(home-page "https://github.com/westes/flex")
(synopsis "Fast lexical analyser generator")
(description
"Flex is a tool for generating scanners. A scanner, sometimes called a
tokenizer, is a program which recognizes lexical patterns in text. The flex
program reads user-specified input files, or its standard input if no file
names are given, for a description of a scanner to generate. The description
is in the form of pairs of regular expressions and C code, called rules. Flex
generates a C source file named @file{lex.yy.c}, which defines the function
@code{yylex()}. The @file{lex.yy.c} can be compiled and linked to produce an
executable. When the executable is run, it analyzes its input for occurrences
of text matching the regular expressions for each rule. Whenever it finds a
match, it executes the corresponding C code.")
"Flex is a tool for generating scanners. A scanner, sometimes
called a tokenizer, is a program which recognizes lexical patterns in
text. The flex program reads user-specified input files, or its standard
input if no file names are given, for a description of a scanner to
generate. The description is in the form of pairs of regular expressions
and C code, called rules. Flex generates a C source file named,
\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\"
can be compiled and linked to produce an executable. When the executable
is run, it analyzes its input for occurrences of text matching the
regular expressions for each rule. Whenever it finds a match, it
executes the corresponding C code.")
(license (non-copyleft "file://COPYING"
"See COPYING in the distribution."))))
+2 -2
View File
@@ -3847,7 +3847,7 @@ arrows and custom ligatures for @code{TODO:} and @code{NOTE:}.")
(define-public font-monaspace
(package
(name "font-monaspace")
(version "1.400")
(version "1.301")
(source
(origin
(method git-fetch)
@@ -3857,7 +3857,7 @@ arrows and custom ligatures for @code{TODO:} and @code{NOTE:}.")
(file-name (git-file-name name version))
(sha256
(base32
"1rldcci0nh5zqqcmj8mfqsv7c8bqy2nxgfn8gk4zsxvgdbxa79vk"))))
"0f6i9v2m7x5zjdfwmcj180nmgxzlnbk2z0x7yv5sbdcrvndz1lzj"))))
(build-system font-build-system)
(outputs '("out" "ttf" "woff"))
(home-page "https://monaspace.githubnext.com")
+2 -2
View File
@@ -1457,7 +1457,7 @@ fullscreen) or other display servers.")
(define-public wayland-protocols
(package
(name "wayland-protocols")
(version "1.47")
(version "1.45")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1466,7 +1466,7 @@ fullscreen) or other display servers.")
(file-name (git-file-name name version))
(sha256
(base32
"0i30fp6p03qrvv4msm9yj39sk6gmcryp3q6x29v2wycbv27wsgmw"))))
"1d2fv41vq75pvgkd3ykjypnp8zv0afv71p36cd91h19lbmwaia8h"))))
(build-system meson-build-system)
(inputs
(list wayland))
+4 -4
View File
@@ -41,13 +41,13 @@
(define-public gawk
(package
(name "gawk")
(version "5.3.2")
(version "5.3.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gawk/gawk-" version
".tar.xz"))
(sha256
(base32 "1k699kfajwzw4dyw1m9h9kld1gdv00nfy04b2f952w6y15jlihzq"))))
(base32 "02x97iyl9v84as4rkdrrkfk2j4vy4r3hpp3rkp3gh3qxs79id76a"))))
(build-system gnu-build-system)
(arguments
(list #:phases
@@ -56,7 +56,7 @@
(lambda* (#:key inputs #:allow-other-keys)
;; Refer to the right shell.
(let ((/bin/sh (search-input-file inputs "bin/sh")))
(substitute* '("io.c" "builtin.c")
(substitute* "io.c"
(("/bin/sh") /bin/sh))
;; When cross-compiling, remove dependencies on the
@@ -73,7 +73,7 @@
;; Remove dependency on 'more' (from util-linux), which
;; would needlessly complicate bootstrapping.
(substitute* "test/Makefile"
(("\\| \\$\\$\\{PAGER:-more\\}") ""))
(("\\| more") ""))
;; Adjust the shebang in that file since it is then diff'd
;; against the actual test output.
+265 -263
View File
@@ -80,16 +80,16 @@ where the OS part is overloaded to denote a specific ABI---into GCC
(cond ((string-match "^mips64el.*gnuabin?64$" target)
;; Triplets recognized by glibc as denoting the N64 ABI; see
;; ports/sysdeps/mips/preconfigure.
#~(list "--with-abi=64"))
'("--with-abi=64"))
((string-match "^arm.*-gnueabihf$" target)
#~(list "--with-arch=armv7-a"
"--with-float=hard"
"--with-mode=thumb"
"--with-fpu=neon"))
'("--with-arch=armv7-a"
"--with-float=hard"
"--with-mode=thumb"
"--with-fpu=neon"))
((string-match "x86_64-linux-gnux32" target)
#~(list "--with-abi=mx32"))
'("--with-abi=mx32"))
((and (string-suffix? "-gnu" target)
(not (string-contains target "-linux")))
@@ -97,24 +97,36 @@ where the OS part is overloaded to denote a specific ABI---into GCC
;; with:
;; libcilkrts/runtime/os-unix.c:388:2: error: #error "Unknown architecture"
;; Cilk has been removed from GCC 8 anyway.
#~(list "--disable-libcilkrts"))
'("--disable-libcilkrts"))
;; glibc needs the 128-bit long double type on these architectures.
((or (string-prefix? "powerpc64le-" target)
(string-prefix? "powerpc-" target))
#~(list "--with-long-double-128"))
'("--with-long-double-128"))
;; GCC 11.3.0's <libgcov.h> includes <sys/mman.h>, which MinGW lacks:
;; <https://bugs.gentoo.org/show_bug.cgi?id=843989>.
((target-mingw? target)
#~(list "--disable-gcov"))
'("--disable-gcov"))
(else
;; TODO: Add `arm.*-gnueabi', etc.
#~(list))))
'())))
(define-public gcc-base
(let* ((stripped? #t) ;whether to strip the compiler, not the libraries
(maybe-target-tools
(lambda ()
;; Return the `_FOR_TARGET' variables that are needed when
;; cross-compiling GCC.
(let ((target (%current-target-system)))
(if target
(map (lambda (var tool)
(string-append (string-append var "_FOR_TARGET")
"=" target "-" tool))
'("CC" "CXX" "LD" "AR" "NM" "OBJDUMP" "RANLIB" "STRIP")
'("gcc" "g++" "ld" "ar" "nm" "objdump" "ranlib" "strip"))
'()))))
(libdir
(let ((base '(or (assoc-ref outputs "lib")
(assoc-ref outputs "out"))))
@@ -122,7 +134,45 @@ where the OS part is overloaded to denote a specific ABI---into GCC
;; Return the directory that contains lib/libgcc_s.so et al.
(if (%current-target-system)
`(string-append ,base "/" ,(%current-target-system))
base)))))
base))))
(configure-flags
(lambda ()
;; This is terrible. Since we have two levels of quasiquotation,
;; we have to do this convoluted thing just so we can insert the
;; contents of (maybe-target-tools).
(list 'quasiquote
(append
'("--enable-plugin"
"--enable-languages=c,c++,objc,obj-c++"
"--disable-multilib"
"--with-system-zlib"
;; No pre-compiled libstdc++ headers, to save space.
"--disable-libstdcxx-pch"
"--with-local-prefix=/no-gcc-local-prefix"
;; With a separate "lib" output, the build system
;; incorrectly guesses GPLUSPLUS_INCLUDE_DIR, so force
;; it. (Don't use a versioned sub-directory, that's
;; unnecessary.)
,(string-append "--with-gxx-include-dir="
(assoc-ref %outputs "out")
"/include/c++")
,(let ((libc (assoc-ref %build-inputs "libc")))
(if libc
(string-append "--with-native-system-header-dir=" libc
"/include")
"--without-headers")))
;; Pass the right options for the target triplet.
(let ((triplet
(or (%current-target-system)
(nix-system->gnu-triplet (%current-system)))))
(gcc-configure-flags-for-triplet triplet))
(maybe-target-tools))))))
(hidden-package
(package
(name "gcc")
@@ -152,239 +202,201 @@ where the OS part is overloaded to denote a specific ABI---into GCC
texinfo-5))
(arguments
(list
#:out-of-source? #t
#:configure-flags
#~(append
(list "--enable-plugin"
"--enable-languages=c,c++,objc,obj-c++"
"--disable-multilib"
"--with-system-zlib"
`(#:out-of-source? #t
#:configure-flags ,(configure-flags)
;; No pre-compiled libstdc++ headers, to save space.
"--disable-libstdcxx-pch"
#:make-flags
;; None of the flags below are needed when doing a Canadian cross.
;; TODO: Simplify this.
,(if (%current-target-system)
(if stripped?
''("CFLAGS=-g0 -O2")
''())
`(let* ((libc (assoc-ref %build-inputs "libc"))
(libc-native (or (assoc-ref %build-inputs "libc-native")
libc)))
`(,@(if libc
(list (string-append "LDFLAGS_FOR_TARGET="
"-B" libc "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc
,(glibc-dynamic-linker)))
'())
"--with-local-prefix=/no-gcc-local-prefix"
;; Native programs like 'genhooks' also need that right.
,(string-append "LDFLAGS="
"-Wl,-rpath=" libc-native "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc-native ,(glibc-dynamic-linker))
,(string-append "BOOT_CFLAGS=-O2 "
,(if stripped? "-g0" "-g")))))
;; With a separate "lib" output, the build system
;; incorrectly guesses GPLUSPLUS_INCLUDE_DIR, so force
;; it. (Don't use a versioned sub-directory, that's
;; unnecessary.)
(string-append "--with-gxx-include-dir="
#$output "/include/c++")
#:tests? #f
(let ((libc (assoc-ref %build-inputs "libc")))
(if libc
(string-append "--with-native-system-header-dir=" libc
"/include")
"--without-headers")))
;; Pass the right options for the target triplet.
#$(gcc-configure-flags-for-triplet
(or (%current-target-system)
(nix-system->gnu-triplet (%current-system))))
;; Return the `_FOR_TARGET' variables that are needed when
;; cross-compiling GCC.
#$(let ((target (%current-target-system)))
(if target
#~(map (lambda (var tool)
(string-append (string-append var "_FOR_TARGET")
"=" #$target "-" tool))
'("CC" "CXX" "LD" "AR" "NM" "OBJDUMP" "RANLIB" "STRIP")
'("gcc" "g++" "ld" "ar" "nm" "objdump" "ranlib" "strip"))
#~(list))))
#:make-flags
(cond
((and (%current-target-system) stripped?)
#~(list "CFLAGS=-g0 -O2"))
((%current-target-system)
#~(list)) ;None of the flags are needed when doing a Canadian cross.
(else
#~(let* ((libc (assoc-ref %build-inputs "libc"))
(libc-native (or (assoc-ref %build-inputs "libc-native")
libc))
(loader #$(glibc-dynamic-linker)))
(cons*
;; Native programs like 'genhooks' need that right.
(string-append "LDFLAGS="
"-Wl,-rpath=" libc-native "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc-native loader)
(string-append "BOOT_CFLAGS=-O2 "
(if #$stripped? "-g0" "-g"))
(if libc
(list (string-append "LDFLAGS_FOR_TARGET="
"-B" libc "/lib "
"-Wl,-dynamic-linker "
"-Wl," libc loader))
(list))))))
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'relax-gcc-14s-strictness
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (search-input-file inputs "/bin/bash"))
(wrapper (string-append (getcwd) "/gcc.sh"))
(stage-wrapper (string-append (getcwd) "/stage-gcc.sh")))
(with-output-to-file wrapper
(lambda _
(format #t "#! ~a
#:phases
(modify-phases %standard-phases
(add-before 'configure 'relax-gcc-14s-strictness
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash"))
(wrapper (string-append (getcwd) "/gcc.sh"))
(stage-wrapper (string-append (getcwd) "/stage-gcc.sh")))
(with-output-to-file wrapper
(lambda _
(format #t "#! ~a/bin/bash
exec gcc \"$@\" \
-Wno-error=implicit-function-declaration"
bash)))
(chmod wrapper #o555)
(with-output-to-file stage-wrapper
(lambda _
(format #t "#! ~a
bash)))
(chmod wrapper #o555)
(with-output-to-file stage-wrapper
(lambda _
(format #t "#! ~a/bin/bash
exec \"$@\" \
-Wno-error=implicit-function-declaration"
bash)))
(chmod stage-wrapper #o555)
;; Rather than adding CC to #:configure-flags and
;; STAGE_CC_WRAPPER to #:make-flags, we add them to the
;; environment in this easily removable stage.
(cond (#$(%current-target-system) ;cross-build?
(setenv "CC_FOR_BUILD" wrapper))
(else
(setenv "CC" wrapper)
(setenv "STAGE_CC_WRAPPER" stage-wrapper))))))
(add-before 'configure 'pre-configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((libdir #$(libdir))
(libc (assoc-ref inputs "libc")))
(when libc
;; The following is not performed for `--without-headers'
;; cross-compiler builds.
bash)))
(chmod stage-wrapper #o555)
;; Rather than adding CC to #:configure-flags and
;; STAGE_CC_WRAPPER to #:make-flags, we add them to the
;; environment in this easily removable stage.
(cond (,(%current-target-system) ;cross-build?
(setenv "CC_FOR_BUILD" wrapper))
(else
(setenv "CC" wrapper)
(setenv "STAGE_CC_WRAPPER" stage-wrapper))))))
(add-before 'configure 'pre-configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((libdir ,(libdir))
(libc (assoc-ref inputs "libc")))
(when libc
;; The following is not performed for `--without-headers'
;; cross-compiler builds.
;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a
;; single line, to allow the next step to work properly.
(for-each
(lambda (x)
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line)
line)))
'(1 2 3))
;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a
;; single line, to allow the next step to work properly.
(for-each
(lambda (x)
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line)
line)))
'(1 2 3))
;; Fix the dynamic linker's file name.
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$"
_ gnu-user suffix)
(format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%"
gnu-user suffix
(string-append libc #$(glibc-dynamic-linker)))))
;; Fix the dynamic linker's file name.
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
(("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ \t]*).*$"
_ gnu-user suffix)
(format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%"
gnu-user suffix
(string-append libc ,(glibc-dynamic-linker)))))
;; Tell where to find libstdc++, libc, and `?crt*.o', except
;; `crt{begin,end}.o', which come with GCC.
(substitute* (find-files "gcc/config"
"^gnu-user.*\\.h$")
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix)
;; Help libgcc_s.so be found (see also below.) Always use
;; '-lgcc_s' so that libgcc_s.so is always found by those
;; programs that use 'pthread_cancel' (glibc dlopens
;; libgcc_s.so when pthread_cancel support is needed, but
;; having it in the application's RUNPATH isn't enough; see
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
;;
;; NOTE: The '-lgcc_s' added below needs to be removed in a
;; later phase of %gcc-static. If you change the string
;; below, make sure to update the relevant code in
;; %gcc-static package as needed.
(format #f "#define GNU_USER_TARGET_LIB_SPEC \
;; Tell where to find libstdc++, libc, and `?crt*.o', except
;; `crt{begin,end}.o', which come with GCC.
(substitute* (find-files "gcc/config"
"^gnu-user.*\\.h$")
(("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix)
;; Help libgcc_s.so be found (see also below.) Always use
;; '-lgcc_s' so that libgcc_s.so is always found by those
;; programs that use 'pthread_cancel' (glibc dlopens
;; libgcc_s.so when pthread_cancel support is needed, but
;; having it in the application's RUNPATH isn't enough; see
;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.)
;;
;; NOTE: The '-lgcc_s' added below needs to be removed in a
;; later phase of %gcc-static. If you change the string
;; below, make sure to update the relevant code in
;; %gcc-static package as needed.
(format #f "#define GNU_USER_TARGET_LIB_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a"
libc libc libdir suffix))
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
libc libc libdir suffix))
(("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
#define STANDARD_STARTFILE_PREFIX_2 \"\"
~a"
libc line)))
libc line)))
;; The rs6000 (a.k.a. powerpc) config in GCC does not use
;; GNU_USER_* defines. Do the above for this case.
(substitute*
"gcc/config/rs6000/sysv4.h"
(("#define LIB_LINUX_SPEC (.*)$" _ suffix)
(format #f "#define LIB_LINUX_SPEC \
;; The rs6000 (a.k.a. powerpc) config in GCC does not use
;; GNU_USER_* defines. Do the above for this case.
(substitute*
"gcc/config/rs6000/sysv4.h"
(("#define LIB_LINUX_SPEC (.*)$" _ suffix)
(format #f "#define LIB_LINUX_SPEC \
\"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib -lgcc_s}} \" ~a"
libc libc libdir suffix))
(("#define STARTFILE_LINUX_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
libc libc libdir suffix))
(("#define STARTFILE_LINUX_SPEC.*$" line)
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib/\"
#define STANDARD_STARTFILE_PREFIX_2 \"\"
~a"
libc line))))
libc line))))
(when (file-exists? "gcc/config/rs6000")
;; Force powerpc libdir to be /lib and not /lib64
(substitute* (find-files "gcc/config/rs6000")
(("/lib64") "/lib")))
(when (file-exists? "gcc/config/rs6000")
;; Force powerpc libdir to be /lib and not /lib64
(substitute* (find-files "gcc/config/rs6000")
(("/lib64") "/lib")))
;; Don't retain a dependency on the build-time sed.
(substitute* "fixincludes/fixincl.x"
(("static char const sed_cmd_z\\[\\] =.*;")
"static char const sed_cmd_z[] = \"sed\";"))
;; Don't retain a dependency on the build-time sed.
(substitute* "fixincludes/fixincl.x"
(("static char const sed_cmd_z\\[\\] =.*;")
"static char const sed_cmd_z[] = \"sed\";"))
;; Aarch64 support didn't land in GCC until the 4.8 series.
(when (file-exists? "gcc/config/aarch64")
;; Force Aarch64 libdir to be /lib and not /lib64
(substitute* "gcc/config/aarch64/t-aarch64-linux"
(("lib64") "lib")))
;; Aarch64 support didn't land in GCC until the 4.8 series.
(when (file-exists? "gcc/config/aarch64")
;; Force Aarch64 libdir to be /lib and not /lib64
(substitute* "gcc/config/aarch64/t-aarch64-linux"
(("lib64") "lib")))
;; The STARTFILE_PREFIX_SPEC prevents gcc from finding the
;; gcc:lib output, which causes ld to not find -lgcc_s.
(when (file-exists? "gcc/config/riscv")
(substitute* '("gcc/config/riscv/linux.h"
"gcc/config/riscv/riscv.h") ; GCC < 10
(("define STARTFILE_PREFIX_SPEC")
"define __STARTFILE_PREFIX_SPEC")))
;; The STARTFILE_PREFIX_SPEC prevents gcc from finding the
;; gcc:lib output, which causes ld to not find -lgcc_s.
(when (file-exists? "gcc/config/riscv")
(substitute* '("gcc/config/riscv/linux.h"
"gcc/config/riscv/riscv.h") ; GCC < 10
(("define STARTFILE_PREFIX_SPEC")
"define __STARTFILE_PREFIX_SPEC")))
(when (file-exists? "libbacktrace")
;; GCC 4.8+ comes with libbacktrace. By default it builds
;; with -Werror, which fails with a -Wcast-qual error in glibc
;; 2.21's stdlib-bsearch.h. Remove -Werror.
(substitute* "libbacktrace/configure"
(("WARN_FLAGS=(.*)-Werror" _ flags)
(string-append "WARN_FLAGS=" flags)))
(when (file-exists? "libbacktrace")
;; GCC 4.8+ comes with libbacktrace. By default it builds
;; with -Werror, which fails with a -Wcast-qual error in glibc
;; 2.21's stdlib-bsearch.h. Remove -Werror.
(substitute* "libbacktrace/configure"
(("WARN_FLAGS=(.*)-Werror" _ flags)
(string-append "WARN_FLAGS=" flags)))
(when (file-exists? "libsanitizer/libbacktrace")
;; Same in libsanitizer's bundled copy (!) found in 4.9+.
(substitute* "libsanitizer/libbacktrace/Makefile.in"
(("-Werror")
""))))
(when (file-exists? "libsanitizer/libbacktrace")
;; Same in libsanitizer's bundled copy (!) found in 4.9+.
(substitute* "libsanitizer/libbacktrace/Makefile.in"
(("-Werror")
""))))
;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s.
;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354>
;; and <http://bugs.gnu.org/20358>.
(substitute* "libstdc++-v3/src/Makefile.in"
(("^OPT_LDFLAGS = ")
"OPT_LDFLAGS = -Wl,-rpath=$(libdir) "))
;; Add a RUNPATH to libstdc++.so so that it finds libgcc_s.
;; See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354>
;; and <http://bugs.gnu.org/20358>.
(substitute* "libstdc++-v3/src/Makefile.in"
(("^OPT_LDFLAGS = ")
"OPT_LDFLAGS = -Wl,-rpath=$(libdir) "))
;; Move libstdc++*-gdb.py to the "lib" output to avoid a
;; circularity between "out" and "lib". (Note:
;; --with-python-dir is useless because it imposes $(prefix) as
;; the parent directory.)
(substitute* "libstdc++-v3/python/Makefile.in"
(("pythondir = .*$")
(string-append "pythondir = " libdir "/share"
"/gcc-$(gcc_version)/python\n")))
;; Move libstdc++*-gdb.py to the "lib" output to avoid a
;; circularity between "out" and "lib". (Note:
;; --with-python-dir is useless because it imposes $(prefix) as
;; the parent directory.)
(substitute* "libstdc++-v3/python/Makefile.in"
(("pythondir = .*$")
(string-append "pythondir = " libdir "/share"
"/gcc-$(gcc_version)/python\n")))
;; Avoid another circularity between the outputs: this #define
;; ends up in auto-host.h in the "lib" output, referring to
;; "out". (This variable is used to augment cpp's search path,
;; but there's nothing useful to look for here.)
(substitute* "gcc/config.in"
(("PREFIX_INCLUDE_DIR")
"PREFIX_INCLUDE_DIR_isnt_necessary_here")))))
;; Avoid another circularity between the outputs: this #define
;; ends up in auto-host.h in the "lib" output, referring to
;; "out". (This variable is used to augment cpp's search path,
;; but there's nothing useful to look for here.)
(substitute* "gcc/config.in"
(("PREFIX_INCLUDE_DIR")
"PREFIX_INCLUDE_DIR_isnt_necessary_here")))))
(add-after 'configure 'post-configure
(lambda _
;; Don't store configure flags, to avoid retaining references to
;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'.
(substitute* "Makefile"
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))))))
(add-after 'configure 'post-configure
(lambda _
;; Don't store configure flags, to avoid retaining references to
;; build-time dependencies---e.g., `--with-ppl=/gnu/store/xxx'.
(substitute* "Makefile"
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))))))
(native-search-paths %gcc-search-paths)
(properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
(synopsis "GNU Compiler Collection")
@@ -428,21 +440,21 @@ Go. It also includes runtime support libraries for these languages.")
`((srfi srfi-1)
,@modules))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))
`(modify-phases ,phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))
(supported-systems (fold delete %supported-systems
'("aarch64-linux" "riscv64-linux"
"powerpc64le-linux" "x86_64-gnu")))))
@@ -486,21 +498,21 @@ Go. It also includes runtime support libraries for these languages.")
;; For native builds of some GCC versions the C++ include path needs to
;; be adjusted so it does not interfere with GCC's own build processes.
((#:phases phases)
#~(modify-phases #$phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))
`(modify-phases ,phases
(add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc"))
(gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join (fold delete
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:)
(list (string-append libc "/include")
(string-append gcc "/include/c++")))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))
(supported-systems (fold delete %supported-systems
'("riscv64-linux" "x86_64-gnu")))
(inputs
@@ -969,8 +981,7 @@ It also includes runtime support libraries for these languages.")
(patches (search-patches "gcc-12-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch"
"gcc-13-libsanitizer-no-crypt.patch"
"gcc-libstdc++-newer-gcc.patch"
"gcc-mangle-guix-store.patch"))
"gcc-libstdc++-newer-gcc.patch"))
(modules '((guix build utils)))
(snippet gcc-canadian-cross-objdump-snippet)))
(arguments
@@ -1001,8 +1012,7 @@ It also includes runtime support libraries for these languages.")
(base32
"0fna78ly417g69fdm4i5f3ms96g8xzzjza8gwp41lqr5fqlpgp70"))
(patches (search-patches "gcc-12-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch"
"gcc-mangle-guix-store.patch"))
"gcc-5.0-libvtv-runpath.patch"))
(modules '((guix build utils)))
(snippet gcc-canadian-cross-objdump-snippet)))
(arguments (substitute-keyword-arguments arguments
@@ -1035,8 +1045,7 @@ It also includes runtime support libraries for these languages.")
"0knj4ph6y7r7yhnp1v4339af7mki5nkh7ni9b948433bhabdk3s3"))
(patches (search-patches "gcc-12-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch"
"gcc-hurd-split-stack.patch"
"gcc-mangle-guix-store.patch"))
"gcc-hurd-split-stack.patch"))
(modules '((guix build utils)))
(snippet gcc-canadian-cross-objdump-snippet)))
(arguments
@@ -1187,17 +1196,10 @@ using compilers other than GCC."
#$@(if (version>=? (package-version gcc) "11")
#~((add-after 'unpack 'hide-gcc-headers
(lambda* (#:key native-inputs inputs #:allow-other-keys)
;; Depending on the actual gcc input, two locations
;; candidates to check to get gcc from the file tree.
(let* ((gcc-nested (false-if-exception
(search-input-directory
(or native-inputs inputs)
"libexec/gcc")))
(gcc-nested (or gcc-nested
(search-input-file
(or native-inputs inputs)
"bin/gcc")))
(gcc (dirname (dirname gcc-nested))))
(let ((gcc (assoc-ref (or native-inputs inputs)
#$(if (%current-target-system)
"cross-gcc"
"gcc"))))
;; Fix a regression in GCC 11 where the GCC headers
;; shadows glibc headers when building libstdc++. An
;; upstream fix was added in GCC 11.3.0, but it only
+38 -46
View File
@@ -13,7 +13,6 @@
;;; Copyright © 2020 EuAndreh <eu@euandre.org>
;;; Copyright © 2022, 2024, 2025 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer maxim@guixotic.coop>
;;; Copyright © 2026 Robin Templeton <robin@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -58,21 +57,24 @@
(define-public gettext-minimal
(package
(name "gettext-minimal")
(version "1.0")
(version "0.23.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
"06jgjxnm5xhw0d0zwl9birlwfxfgfqhk9q029j3h9941r5wrpnc5"))))
"0j8fijicvg8jkrisgsqbpnbmfb2mz3gx2p6pcwip82731yb7i9aj"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;9 MiB of HTML
(inputs
(list libunistring
libxml2
libtextstyle))
;; TODO: ncurses is only needed for the 'libtextstyle' library.
;; The next version of gettext can use a separate libtextstyle,
;; but for now we include it here in 'gettext-minimal'.
ncurses))
(arguments
(list #:configure-flags #~'("--with-included-libunistring=no"
"--with-included-libxml=no")
@@ -91,11 +93,11 @@
(("/bin/pwd") "pwd"))))
(add-before 'check 'patch-tests
(lambda* (#:key inputs #:allow-other-keys)
;;libgettextlib-1.0.so => not found
;;libgettextlib-0.23.so => not found
(substitute* "gettext-tools/gnulib-tests/test-execute.sh"
(("^#!.*" all)
(string-append all "exit 77;\n")))
(let* ((bash (search-input-file inputs "bin/sh")))
(let* ((bash (which "sh")))
;; Some of the files we're patching are
;; ISO-8859-1-encoded, so choose it as the default
;; encoding so the byte encoding is preserved.
@@ -104,7 +106,7 @@
(find-files "gettext-tools/tests"
"^(lang-sh|msg(exec|filter)-[0-9])")
(("#![[:blank:]]/bin/sh")
(string-append "#!" bash)))
(format #f "#!~a" bash)))
(substitute* (cons "gettext-tools/src/msginit.c"
(find-files "gettext-tools/gnulib-tests"
@@ -116,26 +118,12 @@
(("/bin/pwd")
"pwd"))
#$@(if (string=? "riscv64-linux" (%current-system))
;; Unmodified test-lock will fail or crash riscv64
#~((substitute* "gettext-tools/gnulib-tests/test-lock.c"
(("#define DO_TEST_RWLOCK 1")
"#define DO_TEST_RWLOCK 0")))
#~())
#$@(if (target-hurd?)
#~((substitute*
"gettext-tools/gnulib-tests/Makefile.in"
;; See 'coreutils' for the rationale.
((" test-tls\\$\\(EXEEXT\\) ") " ")))
'())))))
(add-after 'install 'patch-gettext.sh
(lambda _
;; This matches only the relevant command invocations, but
;; is sensitive to the formatting of gettext.sh. (The
;; string "gettext" appears in program output.)
(substitute* (string-append #$output "/bin/gettext.sh")
(("(^ |`|; )(gettext|ngettext|envsubst)" _ prefix program)
(string-append prefix #$output "/bin/" program)))))
#$@(if (%current-target-system)
#~((add-after 'install 'patch-cross-shebangs
(lambda _
@@ -163,31 +151,30 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
(cpe-name . "gettext")))
(license gpl3+))) ;some files are under GPLv2+
;; Starting with gettext 0.24 some gnulib files are no longer public.
;; keep this here to easily fix autoreconf
(define-public gettext-minimal-0.23
(define-public gettext-minimal-0.21
(package/inherit gettext-minimal
(version "0.23.1")
(version "0.21")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
"0j8fijicvg8jkrisgsqbpnbmfb2mz3gx2p6pcwip82731yb7i9aj"))))
"04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7"))
(patches (search-patches "gettext-libunicode-update.patch"))))
(arguments
(substitute-keyword-arguments arguments
((#:make-flags flags)
;; these gnulib tests fail with newer libunistring
#~(cons (string-append "XFAIL_TESTS="
"test-uc_tolower "
"test-ctype_alnum "
"test-ctype_alpha "
"test-ctype_graph "
"test-ctype_lower "
"test-ctype_print "
"test-ctype_punct "
"test-ctype_upper") #$flags))))))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'touch-test
(lambda _
(with-output-to-file "gettext-tools/gnulib-tests/test-execute.sh"
(lambda _ (display "")))))
(add-before 'check 'patch-test
(lambda _
;; This test fails with ggc-14.
(substitute* "gettext-tools/tests/xgettext-javascript-6"
(("^#!.*" all) (string-append all "exit 77;\n")))))))))))
;; Use that name to avoid clashes with Guile's 'gettext' procedure.
;;
@@ -216,17 +203,22 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
(define-public libtextstyle
(package
(name "libtextstyle")
(version (package-version gnu-gettext))
(source (package-source gnu-gettext))
(version "0.21")
(source (origin
(inherit (package-source gnu-gettext))
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
"04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags #~(list "--disable-static")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "libtextstyle"))))))
'(#:configure-flags '("--disable-static")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "libtextstyle")
#t)))))
;; libtextstyle bundles libxml2, glib (a small subset thereof), and
;; libcroco, but it purposefully prevents users from using an external
;; copy, to reduce the startup time of programs using libtextstyle.
+86 -98
View File
@@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017-2019, 2021, 2023-2026 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017-2019, 2021, 2023-2025 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -22,7 +22,7 @@
;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Arnaud Lechevallier <arnaud.lechevallier@free.fr>
;;; Copyright © 2024-2025 Alvin Hsu <aurtzy@gmail.com>
;;; Copyright © 2024 aurtzy <aurtzy@gmail.com>
;;; Copyright © 2025 Sughosha <sughosha@disroot.org>
;;;
;;; This file is part of GNU Guix.
@@ -43,7 +43,6 @@
(define-module (gnu packages gl)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages bison)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
@@ -58,7 +57,6 @@
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
@@ -76,7 +74,6 @@
#:use-module (guix hg-download)
#:use-module (gnu packages cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
@@ -244,6 +241,7 @@ generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
(define-public glad
(package
(inherit glad-0.1)
(name "glad")
(version "2.0.8")
(source (origin
@@ -257,26 +255,20 @@ generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
"0c9cygiq35aiq6bpdvbwqs0wxc2dvxsh4jnx50466savscxalsk9"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-cmakelists.txt
(lambda _
(let ((share (string-append #$output "/share/"
#$(package-name this-package))))
(install-file "cmake/CMakeLists.txt" share)
(install-file "cmake/GladConfig.cmake" share))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "xvfb-run" "utility/test.sh")))))))
(substitute-keyword-arguments (package-arguments glad-0.1)
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
(replace 'install-cmakelists.txt
(lambda _
(let ((share (string-append #$output "/share/"
#$(package-name this-package))))
(install-file "cmake/CMakeLists.txt" share))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "xvfb-run" "utility/test.sh"))))))))
(native-inputs (list python-setuptools python-wheel xvfb-run-for-tests))
(propagated-inputs (list python-jinja2))
(home-page "https://github.com/Dav1dde/glad")
(synopsis "Multi-language GL/GLES/EGL/GLX/WGL loader generator")
(description "Glad uses the official Khronos XML specifications to
generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
(license license:expat)))
(propagated-inputs (list python-jinja2))))
(define-public s2tc
(package
@@ -324,7 +316,7 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa
(package
(name "mesa")
(version "26.0.2")
(version "25.2.3")
(source
(origin
(method url-fetch)
@@ -333,7 +325,8 @@ also known as DXTn or DXTC) for Mesa.")
(string-append "ftp://ftp.freedesktop.org/pub/mesa/"
"mesa-" version ".tar.xz")))
(sha256
(base32 "0ikk7hb60q581i2wb1pasphv7sgqkv74qaw4cdiiq8dy45956gwp"))))
(base32
"1y5lj9zy2hfvx9ji1rvsjapmzap7mpp5i3pf2yfcpmpica2v5mpj"))))
(build-system meson-build-system)
(propagated-inputs
;; The following are in the Requires.private field of gl.pc.
@@ -346,28 +339,17 @@ also known as DXTn or DXTC) for Mesa.")
libxxf86vm
xorgproto))
(inputs
(append
(list elfutils ;libelf required for r600 when using llvm
expat
(force libva-without-mesa)
libxml2
libxrandr
libxvmc
llvm-for-mesa
vulkan-loader
wayland
wayland-protocols
`(,zstd "lib"))
;; The freedreno driver wants libarchive and lua.
(if (target-arm?)
(list libarchive
lua-5.4)
'())
;; Rust isn't needed for all architectures.
(if (target-x86-64?)
;; NVK dependencies
(cargo-inputs 'mesa)
'())))
(list elfutils ;libelf required for r600 when using llvm
expat
(force libva-without-mesa)
libxml2
libxrandr
libxvmc
llvm-for-mesa
vulkan-loader
wayland
wayland-protocols
`(,zstd "lib")))
(native-inputs
(append
(list bison
@@ -393,12 +375,13 @@ also known as DXTn or DXTC) for Mesa.")
wayland
wayland-protocols)
'())
;; Rust isn't needed for all architectures.
(if (target-x86-64?)
;; NVK dependencies
(list rust
rust-bindgen-cli
rust-cbindgen)
(module-ref (resolve-interface '(gnu packages rust-apps))
'rust-bindgen-cli)
(module-ref (resolve-interface '(gnu packages rust-apps))
'rust-cbindgen-0.26))
'())))
(outputs '("out" "bin"))
(arguments
@@ -407,15 +390,15 @@ also known as DXTn or DXTC) for Mesa.")
#~(list
#$@(cond
((target-aarch64?)
;; This includes more drivers than "auto": r300, r600
'("-Dgallium-drivers=asahi,etnaviv,freedreno,iris,lima,nouveau,\
panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
;; This includes more drivers than "auto": asahi, r300, r600
'("-Dgallium-drivers=asahi,etnaviv,freedreno,lima,nouveau,\
panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
((target-arm32?)
;; This includes more drivers than "auto": r300, r600
'("-Dgallium-drivers=etnaviv,freedreno,iris,lima,nouveau,\
panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
'("-Dgallium-drivers=etnaviv,freedreno,lima,nouveau,\
panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
;; This includes more drivers than "auto": svga
;; This include more drivers than "auto": svga
'("-Dgallium-drivers=nouveau,r300,r600,radeonsi,svga,softpipe,llvmpipe,virgl,zink"))
(else
'("-Dgallium-drivers=auto")))
@@ -429,23 +412,18 @@ panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
;; features required by wayland
"-Dgles2=enabled"
"-Dgbm=enabled"
"-Dshared-glapi=enabled"
"--wrap-mode=nodownload" ; XXX: disable
#$@(cond
;; Increase the number of vulkan drivers on each architecture:
((target-x86-32?)
;; TODO: Reenable nouveau/NVK when rust support lands.
'("-Dvulkan-drivers=amd,intel,intel_hasvk,swrast,virtio"))
((target-x86-64?)
'("-Dvulkan-drivers=amd,intel,intel_hasvk,nouveau,swrast,virtio"))
((target-arm32?)
'("-Dvulkan-drivers=swrast,intel,panfrost,freedreno,virtio"))
;; This doesn't include nouveau (which is in "auto") as it needs
;; rust.
;; TODO: Enable nouveau/NVK.
'("-Dvulkan-drivers=intel,intel_hasvk,amd,swrast"))
((target-aarch64?)
;; This includes more drivers than "auto": amd, broadcom
'("-Dvulkan-drivers=swrast,intel,panfrost,freedreno,asahi,amd,broadcom,virtio"))
;; The default fallback seems to be amd and swrast.
((target-linux?)
'("-Dvulkan-drivers=amd,swrast,virtio"))
;; This differs from "auto" which only includes swrast and intel
'("-Dvulkan-drivers=freedreno,amd,broadcom,swrast,asahi"))
(else
'("-Dvulkan-drivers=auto")))
@@ -462,6 +440,9 @@ panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
;; Also enable the tests.
"-Dbuild-tests=true"
;; Re-enable X11 protocol support for the DRI2 extension.
"-Dlegacy-x11=dri2"
"-Dllvm=enabled") ; default is x86/x86_64 only
;; XXX: 'debugoptimized' causes LTO link failures on some drivers. The
@@ -469,13 +450,9 @@ panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
#:build-type "release"
#:modules '((ice-9 match)
(ice-9 ftw)
(srfi srfi-1)
(guix build utils)
((guix build cargo-build-system) #:prefix cargo:)
(guix build meson-build-system))
#:imported-modules (append %cargo-build-system-modules
%meson-build-system-modules)
#:phases
#~(modify-phases %standard-phases
#$@(if (%current-target-system)
@@ -491,30 +468,6 @@ panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
(search-input-file
native-inputs "/bin/cmake")))))
#~())
#$@(if (this-package-native-input "rust")
#~((add-after 'unpack 'prepare-rust-crates
(lambda args
(apply (assoc-ref cargo:%standard-phases
'prepare-rust-crates)
args)
;; Use /tmp/rust-crates as the source.
(substitute* (find-files "subprojects" "-rs\\.wrap$")
(("source_url = (.*)" _ url)
(let ((split-url (string-split url #\/)))
(string-append
"source_url = file:///tmp/rust-crates/rust-"
(string-join
(string-split (list-ref split-url 6) #\_) "-")
"-" (list-ref split-url 7) ".tar.gz\n"))))
;; "Download" the packages.
(for-each
(lambda (wrapper)
(invoke "meson" "subprojects" "download"
(string-drop-right wrapper 5)))
(scandir "subprojects"
(lambda (file)
(string-suffix? "-rs.wrap" file)))))))
#~())
(add-after 'unpack 'disable-failing-test
(lambda _
;; Disable the intel vulkan (anv_state_pool) tests, as they may
@@ -557,6 +510,41 @@ panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
(("'lp_test_arit', ") ""))))
(_
'((display "No tests to disable on this architecture.\n"))))))
#$@(if (target-x86-64?)
#~((add-after 'unpack 'patch-subproject-sources
(lambda _
;; Patch each relevant subproject source URL in wrapfiles to
;; use the store, which avoids an attempt to download them
;; mid-build.
(for-each
(match-lambda
((name source)
(let ((wrap-file (string-append
"subprojects/" name ".wrap"))
(subproject-dest (string-append
"subprojects/" name))
(overlay-dir (string-append
"subprojects/packagefiles/" name)))
(mkdir-p subproject-dest)
(invoke "tar" "xf" source "-C" subproject-dest
"--strip-components=1")
;; Normally when the patch_directory wrap file property
;; is specified, meson automatically copies from
;; packagefiles, but this is not the case here (only
;; happens when downloading source?) so we manually copy
;; overlay-dir to subproject-dest.
(when (file-exists? overlay-dir)
(copy-recursively overlay-dir subproject-dest))
(call-with-output-file wrap-file
(lambda (port)
(format port "[wrap-file]
directory = ~a
"
name))))))
'#+(module-ref (resolve-interface
'(gnu packages rust-crates))
'mesa-cargo-inputs)))))
#~())
(add-after 'unpack 'set-home-directory
;; Build tries to use a shader cache (non-fatal error).
(lambda _ (setenv "HOME" "/tmp")))
@@ -676,7 +664,7 @@ from software emulation to complete hardware acceleration for modern GPUs.")
#~(cons* "-Dgallium-rusticl=true"
;; Enable all drivers by default.
(string-append "-Dgallium-rusticl-enable-drivers="
"asahi,freedreno,radeonsi")
"iris,llvmpipe,nouveau,panfrost,radeonsi,r600")
#$flags))
((#:phases phases)
#~(modify-phases #$phases
+1 -2
View File
@@ -7058,8 +7058,7 @@ runtime image loader executables that are used inside the sandbox.")
#:vendor-dir "vendor"
#:cargo-target #$(cargo-triplet)
args))
'(prepare-rust-crates
unpack-rust-crates
'(unpack-rust-crates
configure
check-for-pregenerated-files
patch-cargo-checksums))))
+66 -387
View File
@@ -382,14 +382,10 @@ devices.")
;; - cloud.google.com/go/auth
;; - cloud.google.com/go/auth/oauth2adapt
;; - cloud.google.com/go/compute/metadata
;; - cloud.google.com/go/longrunning
;; - cloud.google.com/go/monitoring
;; - cloud.google.com/go/storage
(for-each delete-file-recursively
(list "auth"
"compute/metadata"
"longrunning"
"monitoring"
"storage"))))))
(build-system go-build-system)
(arguments
@@ -425,12 +421,15 @@ devices.")
"internal/tracecontext"
"internal/uid"
"internal/version"
"longrunning"
"pubsub/internal/distribution"
"pubsub/internal/scheduler"
"pubsub/internal/testutil"
"pubsub/v2/internal/distribution"
"pubsub/v2/internal/scheduler"
"pubsub/v2/internal/testutil"
"pubsublite/internal/test"
"pubsublite/internal/wire"
"rpcreplay"
"spanner/spansql"
"translate")))
@@ -457,7 +456,7 @@ Services.")
(define-public go-cloud-google-com-go-auth
(package
(name "go-cloud-google-com-go-auth")
(version "0.18.2")
(version "0.17.0")
(source
(origin
(method git-fetch)
@@ -467,7 +466,7 @@ Services.")
#:subdir "auth"))))
(file-name (git-file-name name version))
(sha256
(base32 "1c2i8jhc4rizmwz6716bwxwy04adjmm7k2cigki3m1f00rwblmki"))
(base32 "0i18wkz04w9wpckw021nawr82dh92krmcsn471rpjx1jrmgsbi5v"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
@@ -489,28 +488,25 @@ Services.")
#~(list "-skip"
(string-join
;; These tests all require credentials/tokens
(list "TestDownscopedToken"
"TestLogDirectPathMisconfigDirectPathNotSet"
"TestLogDirectPathMisconfigNotOnGCE"
;; Runint OTP instance is required.
"TestDial_OpenTelemetry/telemetry_enabled_success"
"TestDial_OpenTelemetry/telemetry_enabled_error")
"|"))))
'("TestGetGRPCTransportConfigAndEndpoint_S2A"
"TestGetHTTPTransportConfig_S2A"
"TestDownscopedToken"
"TestDialTCPUserTimeout"
"TestFetchTrustBoundaryData"
"TestLogDirectPathMisconfigDirectPathNotSet"
"TestLogDirectPathMisconfigNotOnGCE") "|"))))
(propagated-inputs
(list go-cloud-google-com-go-compute-metadata
go-github-com-google-go-cmp
go-github-com-google-s2a-go
go-github-com-googleapis-enterprise-certificate-proxy
go-github-com-googleapis-gax-go-v2
go-go-opentelemetry-io-contrib-instrumentation-google-golang-org-grpc-otelgrpc
go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp
go-go-opentelemetry-io-otel
go-go-opentelemetry-io-otel-sdk
go-go-opentelemetry-io-otel-trace
go-golang-org-x-net
go-golang-org-x-time
(list go-google-golang-org-protobuf
go-google-golang-org-grpc
go-google-golang-org-protobuf))
go-golang-org-x-time
go-golang-org-x-net
go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp
go-go-opentelemetry-io-contrib-instrumentation-google-golang-org-grpc-otelgrpc
go-github-com-googleapis-gax-go-v2
go-github-com-googleapis-enterprise-certificate-proxy
go-github-com-google-s2a-go
go-github-com-google-go-cmp
go-cloud-google-com-go-compute-metadata))
(home-page "https://cloud.google.com/go")
(synopsis "Google Auth Library for Go")
(description
@@ -566,7 +562,7 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
(define-public go-cloud-google-com-go-compute-metadata
(package
(name "go-cloud-google-com-go-compute-metadata")
(version "0.9.0")
(version "0.8.0")
(source
(origin
(method git-fetch)
@@ -576,7 +572,7 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
#:subdir "compute/metadata"))))
(file-name (git-file-name name version))
(sha256
(base32 "1xhiyv3p9kh6qj007yqd8fic2w48ngrff2vwi9i21v82v5zp51gv"))))
(base32 "02xl6mnw3i1x8zfafrsl2gr0v5a29nn3aiif6ndzssqr0pqfg5dw"))))
(build-system go-build-system)
(arguments
(list
@@ -584,8 +580,6 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
#:unpack-path "cloud.google.com/go"))
(native-inputs
(list go-github-com-google-go-cmp))
(propagated-inputs
(list go-golang-org-x-sys))
(home-page "https://pkg.go.dev/cloud.google.com/go/compute/metadata")
(synopsis "Go wrapper for Google Compute Engine metadata service")
(description
@@ -593,98 +587,6 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
API service accounts for Go.")
(license license:asl2.0)))
(define-public go-cloud-google-com-go-longrunning
(package
(name "go-cloud-google-com-go-longrunning")
(version "0.8.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googleapis/google-cloud-go")
(commit (go-version->git-ref version #:subdir "longrunning"))))
(file-name (git-file-name name version))
(sha256
(base32 "1ykr9kj0sbb4w0h190lp9gcxppv18dp0d5ak2g93dky8hjyc2wfa"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet #~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "longrunning")))))
(build-system go-build-system)
(arguments
(list
#:import-path "cloud.google.com/go/longrunning"
#:unpack-path "cloud.google.com/go"))
(propagated-inputs
(list go-cloud-google-com-go
go-github-com-googleapis-gax-go-v2
go-google-golang-org-api
go-google-golang-org-genproto
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://cloud.google.com/go")
(synopsis "Helper library for working with long running operations")
(description
"Package longrunning supports Long Running Operations for the Google
Cloud Libraries. See google.golang.org/genproto/googleapis/longrunning for
its service definition.")
(license license:asl2.0)))
(define-public go-cloud-google-com-go-monitoring
(package
(name "go-cloud-google-com-go-monitoring")
(version "1.24.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googleapis/google-cloud-go")
(commit (go-version->git-ref version #:subdir "monitoring"))))
(file-name (git-file-name name version))
(sha256
(base32 "13rdnpz6jz5242gfx6xv6q66rr7k2sbrf7s507wq09bxvd4g20p0"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "monitoring")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "cloud.google.com/go/monitoring"
#:unpack-path "cloud.google.com/go"))
(propagated-inputs
(list go-cloud-google-com-go-longrunning
go-github-com-googleapis-gax-go-v2
go-google-golang-org-api
go-google-golang-org-genproto
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://cloud.google.com/go")
(synopsis "Cloud Monitoring API")
(description
"This package provides a Go Client Library for Cloud Monitoring API.")
(license license:asl2.0)))
(define-public go-cloud-google-com-go-storage
(package
(name "go-cloud-google-com-go-storage")
@@ -722,14 +624,14 @@ its service definition.")
(list go-github-com-google-go-cmp))
(propagated-inputs
(list go-cloud-google-com-go
go-cloud-google-com-go-auth
;; go-cloud-google-com-go-auth
;; go-cloud-google-com-go-compute-metadata
;; go-cloud-google-com-go-iam
go-cloud-google-com-go-longrunning
;; go-cloud-google-com-go-longrunning
go-github-com-google-uuid
go-github-com-googleapis-gax-go-v2
go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric
go-go-opentelemetry-io-contrib-detectors-gcp
;; go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric
;; go-go-opentelemetry-io-contrib-detectors-gcp
go-go-opentelemetry-io-otel
;; go-go-opentelemetry-io-otel-exporters-stdout-stdoutmetric
go-go-opentelemetry-io-otel-sdk
@@ -7425,7 +7327,7 @@ sanitization, to use in various HTML contexts and with various DOM APIs.")
(define-public go-github-com-googleapis-enterprise-certificate-proxy
(package
(name "go-github-com-googleapis-enterprise-certificate-proxy")
(version "0.3.14")
(version "0.3.7")
(source
(origin
(method git-fetch)
@@ -7434,21 +7336,17 @@ sanitization, to use in various HTML contexts and with various DOM APIs.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "16ypygh5jk2ndwkbdai1z23xn872z6fsj1iis28fp6mgw9s89hl8"))))
(base32 "1jblnaa4hn9x5gfrsiw007wws7hy4h795xzzrw2bzf297ydrlnyg"))))
(build-system go-build-system)
(arguments
(list
#:tests? #f ;; TODO: Tests require additional dependencies
#:skip-build? #t
#:import-path "github.com/googleapis/enterprise-certificate-proxy"
;; TODO: Tests require additional dependencies
#:test-subdirs
#~(list "client"
"client/util"
"internal/signer/util")))
#:import-path "github.com/googleapis/enterprise-certificate-proxy"))
(propagated-inputs
(list ;; go-github-com-google-go-pkcs11
go-golang-org-x-crypto
go-golang-org-x-sys))
(list go-golang-org-x-sys go-golang-org-x-crypto
;; go-github-com-google-go-pkcs11
))
(home-page "https://github.com/googleapis/enterprise-certificate-proxy")
(synopsis "Google Proxies for Enterprise Certificates (GA)")
(description
@@ -7465,7 +7363,7 @@ Terraform by using the enterprise certificates feature.")
(define-public go-github-com-googleapis-gax-go-v2
(package
(name "go-github-com-googleapis-gax-go-v2")
(version "2.19.0")
(version "2.15.0")
(source
(origin
(method git-fetch)
@@ -7474,28 +7372,22 @@ Terraform by using the enterprise certificates feature.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1nd5qv2dhn6xiw27hmxxyan9v3hiwcqpg9cy2q679v6b0vj7ijmj"))))
(base32 "0mp07716zjb7q9di6sfglscahrg053lsq3j5w68dknxn1fks5j6f"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.25
#:tests? #f ;; TODO: Tests require additional dependencies
#:skip-build? #t
#:import-path "github.com/googleapis/gax-go/v2"
#:unpack-path "github.com/googleapis/gax-go"
;; TODO: Tests require additional dependencies
#:test-subdirs #~(list "internallog" "internallog/grpclog")))
(native-inputs
(list go-github-com-google-go-cmp))
#:unpack-path "github.com/googleapis/gax-go"))
(propagated-inputs
(list go-go-opentelemetry-io-otel
go-go-opentelemetry-io-otel-metric
go-go-opentelemetry-io-otel-sdk-metric
;; go-google-golang-org-api ;cycles, boostrap is required
;; go-google-golang-org-genproto ;cycles, boostrap is required
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-genproto-googleapis-rpc
(list go-google-golang-org-protobuf
go-google-golang-org-grpc
go-google-golang-org-protobuf))
go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-genproto-googleapis-api
;; go-google-golang-org-genproto
;; go-google-golang-org-api
go-github-com-google-go-cmp))
(home-page "https://github.com/googleapis/gax-go")
(synopsis "Google API Extensions for Go")
(description
@@ -7503,140 +7395,6 @@ Terraform by using the enterprise certificates feature.")
for clients and servers based on @code{gRPC} and Google API conventions.")
(license license:bsd-3)))
(define-public go-github-com-googlecloudplatform-opentelemetry-operations-go-detectors-gcp
(package
(name
"go-github-com-googlecloudplatform-opentelemetry-operations-go-detectors-gcp")
(version "1.31.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(commit (go-version->git-ref version #:subdir "detectors/gcp"))))
(file-name (git-file-name name version))
(sha256
(base32 "0a2641mgbc2fv8ramifawpxv9rx99wqknv0xqin3wfapsn2vn5i9"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp"
#:unpack-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go"))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-cloud-google-com-go-compute-metadata))
(home-page
"https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(synopsis "GCP Resource detection library")
(description
"This is a library intended to be used by Upstream @code{OpenTelemetry}
resource detectors. It exists within this repository to allow for integration
testing of the detection functions in real GCP environments.")
(license license:asl2.0)))
(define-public go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric
(package
(name "go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric")
(version "0.55.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(commit (go-version->git-ref version #:subdir "exporter/metric"))))
(file-name (git-file-name name version))
(sha256
(base32 "0a2641mgbc2fv8ramifawpxv9rx99wqknv0xqin3wfapsn2vn5i9"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "exporter" "metric")
(delete-all-but "." "exporter")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:tests? #f ;TODO: more packaging is required
#:import-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric"
#:unpack-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go"))
(native-inputs
(list go-github-com-stretchr-testify
#;go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-cloudmock))
(propagated-inputs
(list go-cloud-google-com-go-monitoring
go-github-com-googleapis-gax-go-v2
go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping
go-go-opentelemetry-io-otel
go-go-opentelemetry-io-otel-metric
go-go-opentelemetry-io-otel-sdk
go-go-opentelemetry-io-otel-sdk-metric
go-go-opentelemetry-io-otel-trace
go-golang-org-x-oauth2
go-google-golang-org-api
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(synopsis "OpenTelemetry Google Cloud Monitoring Exporter")
(description
"@code{OpenTelemetry} Google Cloud Monitoring Exporter allows the user to
send collected metrics to Google Cloud.")
(license license:asl2.0)))
(define-public go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping
(package
(name "go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping")
(version "0.55.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(commit (go-version->git-ref version
#:subdir "internal/resourcemapping"))))
(file-name (git-file-name name version))
(sha256
(base32 "0a2641mgbc2fv8ramifawpxv9rx99wqknv0xqin3wfapsn2vn5i9"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "internal" "resourcemapping")
(delete-all-but "." "internal")))))
(build-system go-build-system)
(arguments
(list
#:import-path (string-append "github.com/GoogleCloudPlatform/"
"opentelemetry-operations-go/"
"internal/resourcemapping")
#:unpack-path "github.com/GoogleCloudPlatform/opentelemetry-operations-go"))
(propagated-inputs
(list go-go-opentelemetry-io-otel
go-google-golang-org-genproto-googleapis-api))
(home-page "https://github.com/GoogleCloudPlatform/opentelemetry-operations-go")
(synopsis "OpenTelemetry Google Cloud resource mapping module")
;; XXX: Project lacks proper descripton.
(description
"This package provides an OpenTelemetry Google Cloud resource mapping
module.")
(license license:asl2.0)))
(define-public go-github-com-gopacket-gopacket
(package
(name "go-github-com-gopacket-gopacket")
@@ -17391,51 +17149,6 @@ lists)
"Package sdk provides an auto-instrumentable @code{OpenTelemetry} SDK.")
(license license:asl2.0)))
(define-public go-go-opentelemetry-io-contrib-detectors-gcp
(package
(name "go-go-opentelemetry-io-contrib-detectors-gcp")
(version "1.42.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/open-telemetry/opentelemetry-go-contrib")
(commit (go-version->git-ref version #:subdir "detectors/gcp"))))
(file-name (git-file-name name version))
(sha256
(base32 "18k9pqwzlcjkiz8cy2hgl5jwal10ypj171hra4zsqizbqjivd4lc"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "detectors" "gcp")
(delete-all-but "." "detectors")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "go.opentelemetry.io/contrib/detectors/gcp"
#:unpack-path "go.opentelemetry.io/contrib"))
(propagated-inputs
(list go-cloud-google-com-go-compute-metadata
go-github-com-google-go-cmp
go-github-com-googlecloudplatform-opentelemetry-operations-go-detectors-gcp
go-github-com-stretchr-testify
go-go-opentelemetry-io-otel
go-go-opentelemetry-io-otel-sdk))
(home-page "https://go.opentelemetry.io/contrib")
(synopsis "GCP Resource detector")
(description
"Package gcp provides a resource detector for GCP Cloud Function.")
(license license:asl2.0)))
(define-public go-go-opentelemetry-io-contrib-instrumentation-google-golang-org-grpc-otelgrpc
(package
(name
@@ -18549,7 +18262,7 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
(define-public go-google-golang-org-api
(package
(name "go-google-golang-org-api")
(version "0.272.0")
(version "0.247.0")
(source
(origin
(method git-fetch)
@@ -18558,7 +18271,7 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1agvmw1sj2xy2p0ig2xdivn8i5pjnw93d2kq4hix7s5ysiswnpw4"))
(base32 "19rj4m4qfc6lfik6p562a2nyf9mhmz0nfargpnvkcvdzi0rh350x"))
(modules '((guix build utils)))
(snippet
#~(begin
@@ -18576,16 +18289,25 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
(list "TestLogDirectPathMisconfigAttrempDirectPathNotSet"
"TestLogDirectPathMisconfigNotOnGCE"
"TestNewClient"
"TestNewTokenSource")
"TestNewTokenSource"
"TestNewTokenSource_WithCredentialJSON")
"|"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-integration-tests
(lambda* (#:key import-path #:allow-other-keys)
;; Tests require network access and credential to reach external
;; API.
(with-directory-excursion (string-append "src/" import-path)
(delete-file-recursively "integration-tests")))))))
#:test-subdirs
;; XXX: Remove when all dependencies are packaged.
#~(list "."
"google-api-go-generator/..."
"googleapi/..."
"impersonate/..."
"internal/..."
"iterator/..."
"option/..."
"support/bundler/..."
"transport"
"transport/grpc"
"transport/http"
"idtoken/..."
"transport/grpc/..."
"transport/http/...")))
(propagated-inputs
(list go-cloud-google-com-go-auth
go-cloud-google-com-go-auth-oauth2adapt
@@ -18601,7 +18323,7 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
go-golang-org-x-oauth2
go-golang-org-x-sync
go-golang-org-x-time
go-google-golang-org-genproto-googleapis-bytestream
;; go-google-golang-org-genproto-googleapis-bytestream
go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-grpc
go-google-golang-org-protobuf))
@@ -18631,7 +18353,6 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
;; Submodules with their own go.mod files and packaged separately:
;;
(delete-file-recursively "googleapis/api")
(delete-file-recursively "googleapis/bytestream")
(delete-file-recursively "googleapis/rpc")))))
(build-system go-build-system)
(arguments
@@ -18825,48 +18546,6 @@ interacting with Google's @code{gRPC} APIs.")
"This package provides an API to interact with @acronym{GCP, Google Cloud Platform}.")
(license license:asl2.0)))
(define-public go-google-golang-org-genproto-googleapis-bytestream
(package
(name "go-google-golang-org-genproto-googleapis-bytestream")
(version "0.0.0-20260316180232-0b37fe3546d5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googleapis/go-genproto")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "0yvcd9xiyarwmzgl70xqiaxxla3qiys1iysqajwmbrf8k4ghr26p"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "googleapis" "bytestream")
(delete-all-but "." "googleapis")))))
(build-system go-build-system)
(arguments
(list
#:go go-1.25
#:import-path "google.golang.org/genproto/googleapis/bytestream"
#:unpack-path "google.golang.org/genproto"))
(propagated-inputs
(list go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://google.golang.org/genproto")
(synopsis "Bytestream implementation of Google Cloud Platform in Golang")
(description
"This package provides an Bytestream to interact with @acronym{GCP,
Google Cloud Platform}.")
(license license:asl2.0)))
(define-public go-google-golang-org-grpc
(package
(name "go-google-golang-org-grpc")
+2 -2
View File
@@ -2763,7 +2763,7 @@ Some feature highlights:
(define-public openxr
(package
(name "openxr")
(version "1.1.57")
(version "1.0.26")
(source
(origin
(method git-fetch)
@@ -2781,7 +2781,7 @@ Some feature highlights:
; ;; Delete bundled jsoncpp.
; (delete-file-recursively "src/external/jsoncpp")))
(sha256
(base32 "1s4cg0cl6cn98d3cvgvwsichic4q3bx34flbdklnzprc18vmaqv7"))))
(base32 "0s66xgwkdj5vn05l493hqydrxfpxxidd6mcb8l7l5awhn88cy16f"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
+6 -4
View File
@@ -1002,6 +1002,10 @@ par compared to the rest.")
"-Dquinn=disabled" ;test fails
"-Dskia=disabled" ;attempts to download binaries
"-Dsodium-source=system"
;; The 'spotify' option causes the build error: "the trait
;; bound `vergen::feature::build::Build:
;; vergen_lib::entries::Add` is not satisfied"
"-Dspotify=disabled"
"-Dtests=enabled"
"-Dtracers=disabled" ;test fails
"-Dthreadshare=disabled" ;test fails
@@ -1037,8 +1041,7 @@ par compared to the rest.")
(apply (assoc-ref cargo:%standard-phases phase)
#:cargo-target #$(cargo-triplet)
args))
'(prepare-rust-crates
unpack-rust-crates
'(unpack-rust-crates
configure
check-for-pregenerated-files
patch-cargo-checksums))))
@@ -1058,8 +1061,7 @@ par compared to the rest.")
"libgstlewton.so"
"libgstrsaudiofx.so"
"libgstrsaudioparsers.so"
"libgstspeechmatics.so"
"libgstspotify.so"))
"libgstspeechmatics.so"))
(,#$output:net
. ("libgstdeepgram.so"
"libgsthlsmultivariantsink.so"
+1 -1
View File
@@ -3941,7 +3941,7 @@ $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))))))
(list autoconf
automake
texinfo
gettext-minimal-0.23 ;for 'AC_LIB_LINKFLAGS_FROM_LIBS'
gettext-minimal
guile-3.0
pkg-config))
(inputs
+19 -28
View File
@@ -4,7 +4,7 @@
;;; Copyright © 2014, 2016, 2018 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2023-2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2023, 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
@@ -212,10 +212,6 @@ without requiring the source code to be rewritten.")
;; <https://bugs.gnu.org/20272>, which affects 2.0, 2.2, and 3.0 so far.
#:parallel-build? #f
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 regex))
#:phases
(modify-phases %standard-phases
,@(if (system-hurd?)
@@ -240,9 +236,22 @@ without requiring the source code to be rewritten.")
(add-before 'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
;; Tell (ice-9 popen) the file name of Bash.
(substitute* "module/ice-9/popen.scm"
(("/bin/sh")
(search-input-file inputs "/bin/bash")))))
;; TODO: On the next rebuild cycle, unconditionally use
;; 'search-input-file' instead of 'assoc-ref'.
(let ((bash (assoc-ref inputs "bash")))
(substitute* "module/ice-9/popen.scm"
;; If bash is #f allow fallback for user to provide
;; "bash" in PATH. This happens when cross-building to
;; MinGW for which we do not have Bash yet.
(("/bin/sh")
,(cond ((target-mingw?)
"bash")
((%current-target-system)
'(search-input-file inputs "/bin/bash"))
(else
'(string-append bash "/bin/bash")))))
#t)))
(add-after 'install 'add-libxcrypt-reference-pkgconfig
(lambda* (#:key inputs outputs #:allow-other-keys)
(define out (assoc-ref outputs "out"))
@@ -254,26 +263,8 @@ without requiring the source code to be rewritten.")
(find-files (string-append out "/lib/pkgconfig")
".*\\.pc")
(("-lcrypt")
(string-append "-L" libxcrypt " -lcrypt"))))))
,@(if (target-mingw?)
'()
'((add-after 'install 'install-major.minor-symlinks
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (in-vicinity out "bin"))
(m (string-match
".*-([0-9]+[.][0-9]+)[.][0-9]+$" out))
(effective-version (match:substring m 1)))
(define (symlink-version name)
(let ((name-version
(string-append name "-" effective-version)))
(symlink name (in-vicinity bin name-version))))
(for-each symlink-version
'("guild"
"guile"
"guile-config"
"guile-snarf"
"guile-tools"))))))))))
(string-append "-L" libxcrypt " -lcrypt")))))))))
(native-search-paths
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
+13 -14
View File
@@ -1186,7 +1186,8 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/" name "-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(sha256
(base32
"0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))
@@ -1240,14 +1241,7 @@ interactive environment for the functional language Haskell.")
(substitute* "libraries/unix/tests/all.T"
(("^test\\('T8108'") "# guix skipped: test('T8108'"))
(substitute* "libraries/unix/tests/libposix/all.T"
(("^test\\('posix010'") "# guix skipped: test('posix010'"))))
;; binutils@2.39 warns for execstack deprecation by default, causing
;; some tests to fail ; explicitely disable during linking instead.
(add-after 'unpack-testsuite 'fix-tests-with-binutils@2.39
(lambda _
(substitute* "testsuite/mk/test.mk"
(("^TEST_HC_OPTS = ")
"TEST_HC_OPTS = -optl -Wl,-z,noexecstack "))))))))
(("^test\\('posix010'") "# guix skipped: test('posix010'"))))))))
(native-search-paths (list (search-path-specification
(variable "GHC_PACKAGE_PATH")
(files (list
@@ -1275,7 +1269,8 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(sha256
(base32
"0c55pj2820q26rikhpf636sn4mjgqsxjrl94vsywrh79dxp3k14z"))
@@ -1334,7 +1329,8 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(sha256
(base32
"1zl25gg6bpx5601k8h3cqnns1xfc0nqgwnh8jvn2s65ra3f2g1nz"))
@@ -1529,7 +1525,8 @@ interactive environment for the functional language Haskell.")
(sha256
(base32
"1m5fzhr4gjn9ni8gxx7ag3fkbw1rspjzgv39mnfb0nkm5mw70v3s"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(modules '((guix build utils)))
(snippet
;; collections.Iterable was moved to collections.abc in Python 3.10.
@@ -1615,7 +1612,8 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
(sha256
(base32
"0cmmwhcwv9fjzvmgjj85d354858qqbmqfzaz5160xqj4yl9zk225"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"))))
(patches (search-patches "ghc-9.2-grep-warnings.patch"
"ghc-testsuite-recomp015-execstack.patch"))))
,@(filter (match-lambda
(("ghc-bootstrap" . _) #f)
(("ghc-testsuite" . _) #f)
@@ -1724,7 +1722,8 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
"04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))))
"04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))
(patches (search-patches "ghc-testsuite-recomp015-execstack.patch"))))
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
,@(filter (match-lambda
+17 -22
View File
@@ -246,28 +246,23 @@ Library, Parted and netdde for GNU/Hurd.")
(source #f)
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build union)
(guix build utils))
#:builder
(begin
(use-modules (srfi srfi-1)
(ice-9 match)
(guix build union)
(guix build utils))
(union-build (assoc-ref %outputs "out")
(filter-map
(match-lambda
((label . input)
(and (or (directory-exists?
(string-append input "/include/mach"))
(directory-exists?
(string-append input "/include/hurd")))
;; Avoid libc libraries.
(not (file-exists?
(string-append input "/include/locale.h")))
input)))
%build-inputs)))))
'(#:modules ((guix build union))
#:builder (begin
(use-modules (srfi srfi-1)
(srfi srfi-26)
(ice-9 match)
(guix build union))
(let ((inputs (filter
(compose (cute member <> '("gnumach-headers"
"hurd-headers"
"hurd-minimal"))
car)
%build-inputs)))
(match inputs
(((names . directories) ...)
(union-build (assoc-ref %outputs "out")
directories)
#t))))))
(inputs (list gnumach-headers hurd-headers hurd-minimal))
(supported-systems %hurd-systems)
(synopsis "Union of the Hurd headers and libraries")
+2 -2
View File
@@ -247,7 +247,7 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
(define-public feh
(package
(name "feh")
(version "3.11.3")
(version "3.10.3")
(home-page "https://feh.finalrewind.org/")
(source (origin
(method url-fetch)
@@ -255,7 +255,7 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
name "-" version ".tar.bz2"))
(sha256
(base32
"0qqha3k1pivrw8kr6alk3l92qh75cgynb4vsvg024fa359cs7k7j"))))
"1j79850gwrjamgc22cv1hiynia4w5lc8qbhww3qpl8bhjxwy49jl"))))
(build-system gnu-build-system)
(arguments
(list #:phases
+2 -2
View File
@@ -27,14 +27,14 @@
(define-public libsigsegv
(package
(name "libsigsegv")
(version "2.15")
(version "2.14")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://gnu/libsigsegv/libsigsegv-"
version ".tar.gz"))
(sha256
(base32 "1n992y64ni16bv9lijxsa5h87rscfvk01z4hl4bkijr509k5as03"))))
(base32 "15d2r831xz94s7540nvb1gbfl062g7mrnj88m60wyr1kh10kkb6d"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/libsigsegv/")
(synopsis "Library for handling page faults")
+2 -10
View File
@@ -36,7 +36,7 @@
(define-public libunistring
(package
(name "libunistring")
(version "1.4.1")
(version "1.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -44,7 +44,7 @@
version ".tar.xz"))
(sha256
(base32
"0qvp61m14xi9kx2gg44rjnq1g8h2g33ni23q0ccqc9r5i4q89n37"))))
"09wmas38i9fw7l3sv92xkbvy7idcl76ifhzv7l7ia98xhdn7higj"))))
(propagated-inputs (libiconv-if-needed))
(outputs '("out" "static"))
(build-system gnu-build-system)
@@ -69,14 +69,6 @@
(("# define WIN32_LEAN_AND_MEAN" all)
(string-append "#define nanosleep nanosleep_native\n"
all))))))
#~())
#$@(if (string=? "riscv64-linux" (%current-system))
;; Unmodified test-lock will fail or crash riscv64
#~((add-before 'check 'modify-test-lock
(lambda _
(substitute* "tests/test-lock.c"
(("#define DO_TEST_RWLOCK 1")
"#define DO_TEST_RWLOCK 0")))))
#~()))))
(synopsis "C library for manipulating Unicode strings")
(description
+3 -3
View File
@@ -11480,7 +11480,7 @@ found in custom keyboard firmware like QMK.")
(define-public pipewire
(package
(name "pipewire")
(version "1.6.2")
(version "1.5.85")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -11489,7 +11489,7 @@ found in custom keyboard firmware like QMK.")
(file-name (git-file-name name version))
(sha256
(base32
"01jvq9ck8dhkbmw21jw0frgbgvzwfq1dxkvl3zynrj179kpm4v9w"))))
"1nd74wjy16bw8ng00acc26rakpqabcq1z64h23w97i18pb7z64xq"))))
(build-system meson-build-system)
(arguments
(list
@@ -11521,7 +11521,7 @@ found in custom keyboard firmware like QMK.")
gstreamer
jack-2
ldacbt
libcamera-minimal
libcamera
libdrm
libfdk
libfreeaptx
+1 -1
View File
@@ -495,7 +495,7 @@ interface.")
(build-system trivial-build-system)
(native-inputs
`(("config-patch" ,@(search-patches "cl-asdf-config-directories.patch"))
("patch" ,patch)))
("patch" ,patch/pinned)))
(arguments
`(#:modules ((guix build utils)
(guix build lisp-utils))
+24 -2
View File
@@ -37,7 +37,7 @@
(define-public lsof
(package
(name "lsof")
(version "4.99.6")
(version "4.99.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -46,7 +46,8 @@
(file-name (git-file-name name version))
(sha256
(base32
"08p0c0wci9vam6b29ym7z7sip8gd0j0dz7zy4f0b32dw51rb3z9k"))))
"1v32407al4j0hhcph95lv4xvr9h012lii29iyq41iwj39zwfavax"))
(patches (search-patches "lsof-compat-linux-6.9.patch"))))
(build-system gnu-build-system)
(native-inputs (list automake
autoconf
@@ -56,6 +57,27 @@
pkg-config
procps ;for ps
util-linux)) ;for unshare
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-configure-ac-version
;; see https://github.com/lsof-org/lsof/commit/932a0b3b1992497e23fd9b8d31116b9ca9b0f98d
;; to fix tests/case-01-version.bash test fail.
(lambda _
(substitute* "configure.ac"
(("4\\.99\\.0")
"4.99.3"))))
(add-before 'bootstrap 'disable-failing-tests
(lambda _
(substitute* "Makefile.am"
;; Fails with ERROR!!! client gethostbyaddr() failure.
(("(TESTS \\+=.*) tests/LTsock" _ prefix)
prefix)
;; Fails on CoW filesystems (eg. btrfs)
(("tests/LTlock") "")
;; Fails because /proc not mounted in sandbox
(("\tdialects/linux/tests/case-20-epoll.bash \\\\")
"\\")))))))
(synopsis "Display information about open files")
(description
"Lsof stands for LiSt Open Files, and it does just that.
+2 -2
View File
@@ -30,14 +30,14 @@
(define-public m4
(package
(name "m4")
(version "1.4.20")
(version "1.4.19")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/m4/m4-"
version ".tar.xz"))
(sha256
(base32
"0axgilr6n88br7msm3ls8m4zlwgk4q3vcjqw1cknqpyg3hxfldp2"))))
"15mghcksh11saylpm86h1zkz4in0rbi0pk8i6nqxkdikdmfdxbk3"))))
(build-system gnu-build-system)
(arguments
`(;; Explicitly disable tests when cross-compiling, otherwise 'make check'
+3 -3
View File
@@ -2872,17 +2872,17 @@ data by providing clean labels during training.")
(define-public python-cma
(package
(name "python-cma")
(version "4.4.4")
(version "4.4.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "cma" version))
(sha256
(base32
"0w41k8dk8g1ngx797dzag5xcwws77sfnfriim874rq6wnmadcav3"))))
"1n17shbcmy7h7k105ar9yhj2zmgykx1wv9fhwd5kbwrcypa221mz"))))
(build-system pyproject-build-system)
(arguments
(list #:test-backend #~'custom
#:test-flags #~'("src/cma/test.py")))
#:test-flags #~'("cma/test.py")))
(native-inputs (list python-pytest python-setuptools))
(propagated-inputs (list python-numpy))
(home-page "https://github.com/CMA-ES/pycma")
+3 -3
View File
@@ -1346,7 +1346,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
(define-public mu
(package
(name "mu")
(version "1.14.0")
(version "1.12.15")
(source
(origin
(method git-fetch)
@@ -1355,7 +1355,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1fhnnm58ndfd6hzdagrsgcdcm2qlcjlda13vyx5d9lclhxgdn0vf"))))
(base32 "191q23nj690bn4cbb26yf7pw5ihb1xmbna6ccdrkkf4m19yrxr12"))))
(build-system meson-build-system)
(native-inputs
(list pkg-config
@@ -1364,7 +1364,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
tzdata-for-tests ; for tests
texinfo))
(inputs
(list glib gmime guile-3.0-latest xapian readline python))
(list glib gmime guile-3.0 xapian readline python))
(arguments
(list
#:modules '((guix build meson-build-system)
+1 -2
View File
@@ -7,7 +7,6 @@
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2026 Zheng Junjie <z572@z572.online>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -623,7 +622,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(propagated-inputs
(modify-inputs propagated-inputs
(replace "libgc" `(,libgc "static"))))
(replace "libgc" libgc/static-libs)))
(arguments
(substitute-keyword-arguments arguments
+2 -2
View File
@@ -410,7 +410,7 @@ on any distribution, and the nroff source is included."))))
;; input "locales" contain the original (English) text.
(package
(name "help2man")
(version "1.49.3")
(version "1.49.2")
(source
(origin
(method url-fetch)
@@ -418,7 +418,7 @@ on any distribution, and the nroff source is included."))))
version ".tar.xz"))
(sha256
(base32
"0kzxla1w0w4z5la255lg9q51wy3qx8f1b0i6gbhaz9pcybg4yzjd"))))
"0dnxx96lbcb8ab8yrdkqll14cl5n0bch8qpd9qj3c2ky78hhwbly"))))
(build-system gnu-build-system)
(arguments
(list
+2 -2
View File
@@ -9760,7 +9760,7 @@ diagrams.")
(define-public libpoly
(package
(name "libpoly")
(version "0.2.1")
(version "0.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -9769,7 +9769,7 @@ diagrams.")
(file-name (git-file-name name version))
(sha256
(base32
"1nyiddvxzziagz7zrl2in8k1mypaj8z7vmm633h9mk4iiy586ddq"))))
"0vwdffmff3widzj8x1pjvpw48s7h1y1pm8cad3zscmg2hzaqwkc0"))))
(build-system cmake-build-system)
(inputs (list gmp))
(native-inputs
+22 -21
View File
@@ -46,7 +46,6 @@
;;; Copyright © 2024 Nguyễn Gia Phong <cnx@loang.net>
;;; Copyright © 2025 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Adrien 'neox' Bourmault <neox@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1150,20 +1149,25 @@ simultaneously and therefore appear under the same nickname on IRC.")
(define-public python-nbxmpp
(package
(name "python-nbxmpp")
(version "7.1.0")
(version "5.0.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://dev.gajim.org/gajim/python-nbxmpp")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri (pypi-uri "nbxmpp" version))
(sha256
(base32 "1n7b6yv2k89hsmhmx9pi7m8l3aq97xppaz3hm7mvqgvxnlw0c1kr"))))
(base32 "04fnc743d523gb38mm1inii80agmpb9r6hvn3f8ygnj3yq7s2vhn"))))
(build-system pyproject-build-system)
(arguments (list #:test-backend #~'unittest))
(propagated-inputs
(list python-setuptools))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
;; XXX: This probably should be an option for pyproject-build-system
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests? (invoke "python" "-m" "unittest" "-v")))))))
(native-inputs
(list python-setuptools
python-wheel))
(inputs
(list glib
glib-networking
@@ -1183,7 +1187,7 @@ of xmpppy.")
(define-public gajim
(package
(name "gajim")
(version "2.4.4")
(version "1.9.5")
(source
(origin
(method url-fetch)
@@ -1191,7 +1195,7 @@ of xmpppy.")
(version-major+minor version)
"/gajim-" version ".tar.gz"))
(sha256
(base32 "0s2jryg8c0ifgf88pfj7k1ifhl1l2fw4w8w80g7xh3qpk5gj7ml0"))
(base32 "0g2nhy6ypj4jbz216sgiy37spq34bwa0ydn2g73fp9qnxfq4vpvz"))
(patches
(search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch"))))
(build-system pyproject-build-system)
@@ -1278,14 +1282,13 @@ of xmpppy.")
glib-networking
gsettings-desktop-schemas
gsound
libspelling
libadwaita
gspell
gstreamer
gst-plugins-base
gst-plugins-good
gtk
gtksourceview
gtk+
gtksourceview-4
gupnp-igd
libappindicator
libnice
libomemo
libsecret
@@ -1296,7 +1299,6 @@ of xmpppy.")
python-dbus-1.2
python-emoji
python-gssapi
python-httpx
python-idna
python-keyring
python-nbxmpp
@@ -1308,8 +1310,7 @@ of xmpppy.")
python-pygobject
python-pyopenssl
python-qrcode
python-sqlalchemy-2
python-truststore))
python-sqlalchemy-2))
(propagated-inputs
(list dconf))
(synopsis "Fully-featured XMPP client")
+62 -105
View File
@@ -166,113 +166,70 @@ bind processes, and much more.")
(define-public hwloc-2
(package
(name "hwloc")
(inherit hwloc-1)
(version "2.13.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/open-mpi/hwloc")
(commit (string-append "hwloc-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1l9skkcizlv0qvw2lzmysndbm528xvszhiqq3569da157qpa5xav"))
;; XXX: Remove after updating package from 2.13.0.
(patches (search-patches "hwloc-add-with-opencl.patch"))))
(build-system gnu-build-system)
(outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc.
"lib" ;small closure
"doc" ;400+ section 3 man pages
"debug"))
(native-inputs
(list autoconf automake libtool opencl-headers bash pkg-config))
(inputs
(append (if (%current-target-system)
'() ;fewer dependencies when cross-compiling
(list libx11 cairo ncurses expat))
(list
;; XXX: rocm-smi requires libdrm/drm.h but doesn't
;; propagate a package providing these. For now, libdrm is
;; used to provide this header.
libdrm
opencl-icd-loader
rocm-smi-lib)))
(propagated-inputs
;; hwloc.pc lists libze_loader and libxml2 in
;; 'Requires.private' in 'hwloc.pc'.
(list level-zero libpciaccess libxml2))
(arguments
(list
#:configure-flags
#~(list
(string-append
"--with-opencl=" #$(this-package-input "opencl-icd-loader"))
"--enable-rsmi"
(string-append "--with-rocm=" #$(this-package-input "rocm-smi-lib"))
"--localstatedir=/var")
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'skip-linux-libnuma-test
(lambda _
;; Arrange to skip 'tests/hwloc/linux-libnuma', which fails on
;; some machines: <https://github.com/open-mpi/hwloc/issues/213>.
(substitute* "tests/hwloc/linux-libnuma.c"
(("numa_available\\(\\)")
"-1"))))
(add-after 'install 'refine-libnuma
;; Give -L arguments for libraries to avoid propagation
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "lib"))
(numa (assoc-ref inputs "numactl")))
(substitute* (map (lambda (f) (string-append out "/" f))
'("lib/pkgconfig/hwloc.pc" "lib/libhwloc.la"))
(("-lnuma" lib)
(string-append "-L" numa "/lib " lib))))))
(add-after 'install 'avoid-circular-references
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (assoc-ref outputs "lib")))
;; Suppress the 'prefix=' and 'exec_prefix=' lines so that the
;; "lib" output doesn't refer to "out".
(substitute* (string-append lib "/lib/pkgconfig/hwloc.pc")
(("^.*prefix=.*$")
"")))))
(add-after 'install 'move-man-pages
(lambda _
;; Move section 1 and 3 man pages to the "doc" output.
(copy-recursively (string-append #$output "/share/man/man1")
(string-append #$output:doc "/share/man/man1"))
(copy-recursively (string-append #$output "/share/man/man7")
(string-append #$output:doc "/share/man/man7"))
(delete-file-recursively
(string-append #$output "/share/man/man1"))
(delete-file-recursively
(string-append #$output "/share/man/man7"))))
(add-before 'check 'skip-tests-that-require-/sys
(lambda _
;; 'test-gather-topology.sh' requires /sys as of 2.9.0; skip it.
(setenv "HWLOC_TEST_GATHER_TOPOLOGY" "0")))
(add-before 'check 'skip-test-that-fails-on-qemu
(lambda _
;; Skip test that fails on emulated hardware due to QEMU bug:
;; <https://bugs.gnu.org/40342>.
(substitute* "tests/hwloc/hwloc_get_last_cpu_location.c"
(("hwloc_topology_init" all)
(string-append "exit (77);\n" all))))))))
(home-page "https://www.open-mpi.org/projects/hwloc/")
(synopsis "Abstraction of hardware architectures")
(description
"hwloc provides a portable abstraction (across OS,
versions, architectures, ...) of the hierarchical topology of modern
architectures, including NUMA memory nodes, sockets, shared caches, cores and
simultaneous multithreading. It also gathers various attributes such as cache
and memory information. It primarily aims at helping high-performance
computing applications with gathering information about the hardware so as to
exploit it accordingly and efficiently.
(source (origin
(method url-fetch)
(uri (string-append "https://download.open-mpi.org/release/hwloc/v"
(version-major+minor version)
"/hwloc-" version ".tar.bz2"))
(sha256
(base32
"1aqdznqp7f18yg95vbr5n6ccxxdiywacygvn3wbhzn7bnspkdsaj"))
;; XXX: Remove after updating package from 2.13.0.
(patches (search-patches "hwloc-add-with-opencl.patch"))))
hwloc may display the topology in multiple convenient formats. It also offers
a powerful programming interface to gather information about the hardware,
bind processes, and much more.")
(license license:bsd-3)))
(native-inputs (modify-inputs native-inputs
(append autoconf)
(append automake)
(append libtool)
(append opencl-headers)
(append bash))) ;for completion tests
(inputs (modify-inputs inputs
;; XXX: rocm-smi requires libdrm/drm.h but doesn't propagate a
;; package providing these. For now, libdrm is used to provide
;; this header.
(append libdrm)
(append opencl-icd-loader)
(append rocm-smi-lib)
(delete "numactl"))) ;libnuma is no longer needed.
(propagated-inputs (modify-inputs propagated-inputs
;; hwloc.pc lists libze_loader and libxml2 in
;; 'Requires.private' in 'hwloc.pc'.
(append level-zero libxml2)))
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags flags '())
#~(cons* (string-append "--with-opencl="
#$(this-package-input "opencl-icd-loader"))
"--enable-rsmi"
(string-append "--with-rocm="
#$(this-package-input "rocm-smi-lib"))
#$flags))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'delete-configure
(lambda _
;; Remove configure file to generate it with patch.
(delete-file "configure")))
(replace 'skip-linux-libnuma-test
(lambda _
;; Arrange to skip 'tests/hwloc/linux-libnuma', which fails on
;; some machines: <https://github.com/open-mpi/hwloc/issues/213>.
(substitute* "tests/hwloc/linux-libnuma.c"
(("numa_available\\(\\)")
"-1"))))
(add-before 'check 'skip-tests-that-require-/sys
(lambda _
;; 'test-gather-topology.sh' requires /sys as of 2.9.0; skip it.
(setenv "HWLOC_TEST_GATHER_TOPOLOGY" "0")))
(add-before 'check 'skip-test-that-fails-on-qemu
(lambda _
;; Skip test that fails on emulated hardware due to QEMU bug:
;; <https://bugs.gnu.org/40342>.
(substitute* "tests/hwloc/hwloc_get_last_cpu_location.c"
(("hwloc_topology_init" all)
(string-append "exit (77);\n" all)))))))))))
(define-public hwloc
;; The latest stable series of hwloc.
+2 -41
View File
@@ -540,9 +540,8 @@ enables iPod support in music players such as Clementine.")
python-setuptools))
(inputs
(list bash-minimal
gst-libav))
(propagated-inputs
(list python-gst
gst-libav
python-gst
python-pygobject
python-pykka
python-requests
@@ -555,44 +554,6 @@ from local disk or cloud services, and can be controlled using a variety of
MPD and web clients.")
(license license:asl2.0)))
(define-public mopidy-local
(package
(name "mopidy-local")
(version "3.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mopidy/mopidy-local")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1fqw6rq39w4q53w6jgl80x358rhzl4c9gdqb9kfgckmcz6vbcfm1"))))
(build-system pyproject-build-system)
(native-inputs
(list python-pytest
python-setuptools))
(propagated-inputs
(list mopidy
python-pykka
python-uritools))
(home-page "https://mopidy.com/ext/local/")
(synopsis "Mopidy extension for playing music from local file archive")
(description
"This package provides Mopidy's extension for playing music from local
file archive.
In contrast to @url{https://mopidy.com/ext/file, Mopidy-File}, Mopidy-Local
builds an index of archives metadata ahead of time, and can thus provide
additional features like search.
The music metadata is stored in a SQLite database. This lets users to browse
their music collection by album, artist, composer and performer, and provides
full-text search capabilities based on SQLites FTS modules. It also notices
updates via @command{mopidy local scan} while Mopidy is running, so you can
scan your media library periodically, for example from a cron job.")
(license license:asl2.0)))
(define-public clementine
;; Clementine has one automatic release per commit at
;; <https://github.com/clementine-player/Clementine/releases>.
+29 -2
View File
@@ -42,10 +42,23 @@
#:use-module ((guix memoization) #:select (mlambda))
#:use-module (ice-9 match))
(define ncurses-rollup-patch
(mlambda (version)
(origin
(method url-fetch)
(uri (match (string-split (version-major+minor+point version) #\.)
((major minor point)
(string-append "https://invisible-mirror.net/archives"
"/ncurses/" major "." minor "/ncurses-"
major "." minor "-" point "-patch.sh.bz2"))))
(sha256
(base32
"1b6522cvi4066bgh9lp93q8lk93zcjjssvnw1512z447xvazy2y6")))))
(define-public ncurses
(package
(name "ncurses")
(version "6.6.20260103")
(version "6.2.20210619")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ncurses/ncurses-"
@@ -53,7 +66,7 @@
".tar.gz"))
(sha256
(base32
"04gz96vhj83yls2czsajbmc65qsnfrxn2ijcl20h62w8xnxlqnrm"))))
"17bcm2z1rdx5gmzj5fb8cp7f28aw5b4g2z4qvvqg3yg0fq66wc1h"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;1 MiB of man pages
@@ -78,6 +91,18 @@
(cons (string-append "--host=" target)
configure-flags)
configure-flags)))))
(apply-rollup-patch-phase
;; Ncurses distributes "stable" patchsets to be applied on top
;; of the release tarball. These are only available as shell
;; scripts(!) so we decompress and apply them in a phase.
;; See <https://invisible-mirror.net/archives/ncurses/6.1/README>.
#~(lambda* (#:key inputs native-inputs #:allow-other-keys)
(let ((rollup-patch #$(ncurses-rollup-patch
(package-version this-package))))
(copy-file rollup-patch
(string-append (getcwd) "/rollup-patch.sh.bz2"))
(invoke "bzip2" "-d" "rollup-patch.sh.bz2")
(invoke "sh" "rollup-patch.sh"))))
(remove-shebang-phase
#~(lambda _
;; To avoid retaining a reference to the bootstrap Bash via the
@@ -180,6 +205,8 @@
#$@(if (target-mingw?) #~("--enable-term-driver") #~()))
#:tests? #f ; no "check" target
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'apply-rollup-patch
#$apply-rollup-patch-phase)
(replace 'configure #$configure-phase)
(add-after 'install 'post-install
#$post-install-phase)
+35 -50
View File
@@ -478,9 +478,9 @@ Raspberry Pi ISP (PiSP), consisting of the Frontend and Backend hardware
components.")
(license license:bsd-2)))
(define-public libcamera-minimal
(define-public libcamera
(package
(name "libcamera-minimal")
(name "libcamera")
(version "0.6.0")
(source
(origin
@@ -491,18 +491,27 @@ components.")
(commit (string-append "v" version))))
(patches (search-patches
"libcamera-ipa_manager-disable-signature-verification.patch"))
(file-name (git-file-name "libcamera" version))
(file-name
(git-file-name name version))
(sha256
(base32 "0g6rphsa1hi9y22l2vw5cj75bf57clq3cggviwd1bnjhpp61nryc"))))
(build-system meson-build-system)
(outputs '("out" "doc" "gst" "tools"))
(arguments
(list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
#:configure-flags
#~(list "-Dudev=enabled"
"-Dv4l2=enabled"
#~(list (string-append "-Dbindir=" #$output:tools "/bin")
"-Dudev=enabled"
"-Dv4l2=true"
"-Dtest=true")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-sphinx-theme
;; sphinx_book_theme requires node for packaging
;; use the default sphinx theme instead
(lambda _
(substitute* "Documentation/conf.py.in"
(("sphinx_book_theme") "alabaster"))))
(add-after 'unpack 'disable-gstreamer-tests
;; these require /dev/udmabuf
(lambda _
@@ -521,24 +530,39 @@ components.")
(substitute* "test/meson.build"
((".*'name': 'file'.*")
"")))))
#~()))))
#~())
(add-after 'install 'move-doc-and-gst
(lambda _
(mkdir-p (string-append #$output:doc "/share"))
(rename-file (string-append #$output "/share/doc")
(string-append #$output:doc "/share/doc"))
(mkdir-p (string-append #$output:gst "/lib"))
(rename-file
(string-append #$output "/lib/gstreamer-1.0")
(string-append #$output:gst "/lib/gstreamer-1.0")))))))
(native-inputs
(list pkg-config
(list googletest
graphviz ;for 'dot'
doxygen
pkg-config
python-wrapper
python-pyyaml
python-packaging))
python-sphinx
python-sphinxcontrib-doxylink
python-pyyaml))
(inputs
(append
(list eudev
glib
gstreamer
gst-plugins-base
libevent
libjpeg-turbo
libtiff
libyaml
libyuv
pybind11-2
python-jinja2
python-ply)
python-ply
qtbase)
;; libpisp is only needed for the rpi/pisp pipeline on ARM.
(if (target-arm?)
(list libpisp)
@@ -549,45 +573,6 @@ Android, and ChromeOS.")
(home-page "https://libcamera.org/")
(license license:lgpl2.1+)))
;; Drop the documentation and the sample utilities.
;; The README.rst gives a nice list of what packages are required.
(define-public libcamera
(package/inherit libcamera-minimal
(name "libcamera")
(outputs '("out" "doc" "gst" "tools"))
(arguments
(substitute-keyword-arguments (package-arguments libcamera-minimal)
((#:configure-flags flags #~'())
#~(cons (string-append "-Dbindir=" #$output:tools "/bin")
#$flags))
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(add-after 'unpack 'set-sphinx-theme
;; sphinx_book_theme requires node for packaging
;; use the default sphinx theme instead
(lambda _
(substitute* "Documentation/conf.py.in"
(("sphinx_book_theme") "alabaster"))))
(add-after 'install 'move-doc-and-gst
(lambda _
(mkdir-p (string-append #$output:doc "/share"))
(rename-file (string-append #$output "/share/doc")
(string-append #$output:doc "/share/doc"))
(mkdir-p (string-append #$output:gst "/lib"))
(rename-file
(string-append #$output "/lib/gstreamer-1.0")
(string-append #$output:gst "/lib/gstreamer-1.0"))))))))
(native-inputs
(modify-inputs (package-native-inputs libcamera-minimal)
(append googletest
doxygen
graphviz
python-sphinx
python-sphinxcontrib-doxylink)))
(inputs
(modify-inputs (package-inputs libcamera-minimal)
(append libevent libtiff qtbase)))))
(define-public libnice
(package
(name "libnice")
+16 -23
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2024,2026 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2024 Eric Bavier <bavier@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,42 +20,35 @@
(define-module (gnu packages nickle)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby-xyz)
#:use-module (guix build-system meson)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public nickle
(package
(name "nickle")
(version "2.107")
(version "2.97")
(source (origin
(method url-fetch)
(uri (string-append "https://nickle.org/release/nickle-"
version ".tar.xz"))
version ".tar.gz"))
(sha256
(base32
"1wli8p5fv2ldy51ycc8pcx8rl3ph2wbyiqs21qpjadlvildaaqj0"))))
(build-system meson-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
(add-before 'configure 'disable-benchmarks
;; Benchmarks would require `gmp` and don't
;; test anything not already covered by other
;; tests, so disable them here.
(lambda _
(substitute* "meson.build"
(("^subdir\\('bench'\\)" &)
(string-append "# " &))))))))
(native-inputs (list bc bison flex pkg-config ruby-asciidoctor-pdf))
"0gqashcs3r0d1yp6rq6q2ayjdwsjxnd8z0ij55ayrbhn296l7mp2"))
(patches (search-patches "nickle-man-release-date.patch"))))
(build-system gnu-build-system)
(inputs (list readline))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-build-date
(lambda _
;; Our patch touches Makefile.am, but rather than rebootstrap,
;; make the substitution directly in Makefile.in.
(substitute* "Makefile.in"
(("BUILD_DATE") "RELEASE_DATE")))))))
(synopsis "Numeric oriented programming language")
(description
"Nickle is a programming language based prototyping environment with
+2 -2
View File
@@ -82,7 +82,7 @@
(define-public parallel
(package
(name "parallel")
(version "20260322")
(version "20260222")
(outputs '("out" "doc"))
(source
(origin
@@ -90,7 +90,7 @@
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
(base32 "1q7g5f13nlwichgh0dk8w5fqjnfnxvwxk6rjy0fd5l7l6blq0ikn"))
(base32 "0j0zmq1klbvpz590vr2di8yvsniwixlhsmir7zfjy3rajx42l9y6"))
(snippet
'(begin
(use-modules (guix build utils))
@@ -1,26 +0,0 @@
Ensure that the examples tarball is reproducible.
See https://reproducible-builds.org/docs/archives/
diff -upr a/gprofng/doc/Makefile.in b/gprofng/doc/Makefile.in
--- a/gprofng/doc/Makefile.in 2025-02-02 01:00:00.000000000 +0100
+++ b/gprofng/doc/Makefile.in 2026-03-15 11:03:49.597737186 +0100
@@ -894,14 +894,14 @@ gprofng-display-text.1: $(srcdir)/gprofn
info: $(man_MANS)
-examples.tar.gz:
- $(AM_V_at)( tar czf $@ $(srcdir)/../examples )
+examples.tar:
+ $(AM_V_at)( tar --owner=0 --group=0 --sort=name --mtime='2015-10-21 00:00Z' -cf $@ $(srcdir)/../examples )
.PHONY: install-data-local
-install-data-local: examples.tar.gz
+install-data-local: examples.tar
$(mkinstalldirs) $(DESTDIR)$(docdir)/gprofng
- $(INSTALL_DATA) examples.tar.gz $(DESTDIR)$(docdir)/gprofng
+ $(INSTALL_DATA) examples.tar $(DESTDIR)$(docdir)/gprofng
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
@@ -1,54 +0,0 @@
Retrieved from Poky:
https://git.enea.com/cgit/linux/poky.git/plain/meta/recipes-devtools/flex/flex/0001-build-tests-add-missing-parser-scanner-dependencies.patch?id=bf94ea1cc4e966fa2cf55206389f9c34fbd5419d
From 47e3916842ffefd7def84ae85758fdcceeb77839 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Thu, 20 Mar 2025 12:16:50 +0000
Subject: [PATCH] build(tests): add missing parser->scanner dependencies
With sufficient parallelism and `make --shuffle` to reorder builds the
test suite occasionally fails to build with errors like this:
tests/bison_yylval_parser.y:36:10: fatal error: bison_yylval_scanner.h: No such file or directory
36 | #include "bison_yylval_scanner.h"
Solve this by adding the missing dependencies to the *_parser.o targets
on the _scanner.h files.
Upstream-Status: Submitted [https://github.com/westes/flex/pull/702]
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
tests/Makefile.am | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 2cb51df..d0c199d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -343,6 +343,7 @@ FLEX = $(top_builddir)/src/flex
bison_nr_main.$(OBJEXT): bison_nr_parser.h bison_nr_scanner.h
bison_nr_scanner.$(OBJEXT): bison_nr_parser.h
+bison_nr_parser.$(OBJEXT): bison_nr_scanner.h
bison_nr_scanner.h: bison_nr_scanner.c
@if test ! -f $@; then rm -f $<; else :; fi
@@ -350,6 +351,7 @@ bison_nr_scanner.h: bison_nr_scanner.c
bison_yylloc_main.$(OBJEXT): bison_yylloc_parser.h bison_yylloc_scanner.h
bison_yylloc_scanner.$(OBJEXT): bison_yylloc_parser.h
+bison_yylloc_parser.$(OBJEXT): bison_yylloc_scanner.h
bison_yylloc_scanner.h: bison_yylloc_scanner.c
@if test ! -f $@; then rm -f $<; else :; fi
@@ -357,6 +359,7 @@ bison_yylloc_scanner.h: bison_yylloc_scanner.c
bison_yylval_main.$(OBJEXT): bison_yylval_parser.h bison_yylval_scanner.h
bison_yylval_scanner.$(OBJEXT): bison_yylval_parser.h
+bison_yylval_parser.$(OBJEXT): bison_yylval_scanner.h
bison_yylval_scanner.h: bison_yylval_scanner.c
@if test ! -f $@; then rm -f $<; else :; fi
--
2.43.0
+10 -30
View File
@@ -2,20 +2,9 @@ As for libc's `system', change Awk to look for `sh' in $PATH. This patch is
only meant to be used during bootstrapping, where we don't know in advance the
absolute file name of `sh'.
--- gawk-5.3.2/builtin.c
+++ gawk-5.3.2/builtin.c
@@ -3341,7 +3341,7 @@ gawk_system(const char *command)
if ((childpid = fork()) == 0) {
// child
set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", command, NULL);
+ execlp("sh", "sh", "-c", command, NULL);
_exit(errno == ENOENT ? 127 : 126);
} else {
// parent
--- gawk-5.3.2/io.c
+++ gawk-5.3.2/io.c
@@ -2084,7 +2084,7 @@ fork_and_open_slave_pty(const char *slavenam, int master, const char *command, p
--- gawk-4.1.3/io.c 2015-05-19 15:37:20.000000000 +0200
+++ gawk-4.1.3/io.c 2015-06-09 18:39:36.918414881 +0200
@@ -2025,7 +2025,7 @@
set_sigpipe_to_default();
@@ -24,7 +13,7 @@ absolute file name of `sh'.
_exit(errno == ENOENT ? 127 : 126);
case -1:
@@ -2136,7 +2136,7 @@ fork_and_open_slave_pty(const char *slavenam, int master, const char *command, p
@@ -2077,7 +2077,7 @@
signal(SIGPIPE, SIG_DFL);
@@ -33,30 +22,21 @@ absolute file name of `sh'.
_exit(errno == ENOENT ? 127 : 126);
case -1:
@@ -2475,7 +2475,7 @@ use_pipes:
fatal(_("close of pipe failed: %s"), strerror(errno));
@@ -2422,7 +2422,7 @@
fatal(_("close of pipe failed (%s)"), strerror(errno));
/* stderr does NOT get dup'ed onto child's stdout */
set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", str, NULL);
+ execlp("sh", "sh", "-c", str, NULL);
_exit(errno == ENOENT ? 127 : 126);
}
#endif /* NOT __MINGW32__ */
@@ -2706,7 +2706,7 @@ gawk_popen(const char *cmd, struct redirect *rp)
#endif /* NOT __EMX__, NOT __MINGW32__ */
@@ -2659,7 +2659,7 @@
if (close(p[0]) == -1 || close(p[1]) == -1)
fatal(_("close of pipe failed: %s"), strerror(errno));
fatal(_("close of pipe failed (%s)"), strerror(errno));
set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", cmd, NULL);
+ execlp("sh", "sh", "-c", cmd, NULL);
_exit(errno == ENOENT ? 127 : 126);
}
#endif /* NOT __MINGW32__ */
@@ -4642,7 +4642,7 @@ gawk_popen_write(const char *cmd)
fatal(_("gawk_popen_write: failed to move pipe fd to standard input"));
(void) close(pipefds[0]);
set_sigpipe_to_default();
- execl("/bin/sh", "sh", "-c", cmd, NULL);
+ execlp("sh", "sh", "-c", cmd, NULL);
_exit(errno == ENOENT ? 127 : 126);
} else if (childpid < 0) {
(void) close(pipefds[0]);
#endif /* NOT __EMX__, NOT __MINGW32__ */
@@ -1,70 +0,0 @@
Patch for GCC to mangle store item references to inputs introduced by __FILE__
macros from derivation outputs. This helps reduce the closure size of certain
packages.
This patch is based on:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch
At the time of writting, this patch applies successfuly for GCC versions from
13 to 16. The patch is not meant to be upstreamed, it provides a solution to
a specific problem of Guix.
---
gcc/file-prefix-map.cc | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/gcc/file-prefix-map.cc b/gcc/file-prefix-map.cc
index 6b432e2a15a..6cc20bacd38 100644
--- a/gcc/file-prefix-map.cc
+++ b/gcc/file-prefix-map.cc
@@ -74,7 +74,7 @@ add_prefix_map (file_prefix_map *&maps, const char *arg, const char *opt)
remapping was performed. */
static const char *
-remap_filename (file_prefix_map *maps, const char *filename)
+remap_filename (file_prefix_map *maps, const char *filename, bool mangle_guix_store = false)
{
file_prefix_map *map;
char *s;
@@ -102,6 +102,30 @@ remap_filename (file_prefix_map *maps, const char *filename)
break;
if (!map)
{
+ if (mangle_guix_store && getenv("GUIX_GCC_MANGLE_PREFIX_MAP"))
+ {
+ /* Remap all fo $NIX_STORE/.{32} paths to uppercase
+ *
+ * That way we avoid argument parameters explosion
+ * and still avoid embedding headers into runtime closure:
+ * https://gcc.gnu.org/PR111527
+ */
+ const char * guix_store = getenv("NIX_STORE") ? getenv("NIX_STORE") : "/gnu/store";
+ size_t guix_store_len = guix_store ? strlen(guix_store) : 0;
+ const char * name = realname ? realname : filename;
+ size_t name_len = strlen(name);
+ if (guix_store && name_len >= guix_store_len + 1 + 32 && memcmp(name, guix_store, guix_store_len) == 0)
+ {
+ s = (char *) ggc_alloc_atomic (name_len + 1);
+ memcpy(s, name, name_len + 1);
+ for (size_t i = guix_store_len + 1; i < guix_store_len + 1 + 32; i++) {
+ s[i] = TOUPPER(s[i]);
+ }
+ if (realname != filename)
+ free (const_cast <char *> (realname));
+ return s;
+ }
+ }
if (realname != filename)
free (const_cast <char *> (realname));
return filename;
@@ -163,7 +187,7 @@ add_profile_prefix_map (const char *arg)
const char *
remap_macro_filename (const char *filename)
{
- return remap_filename (macro_prefix_maps, filename);
+ return remap_filename (macro_prefix_maps, filename, true);
}
/* Remap using -fdebug-prefix-map. Return the GC-allocated new name
--
2.52.0
@@ -0,0 +1,10 @@
--- a/testsuite/tests/driver/recomp015/Makefile 2024-01-13 16:22:42.643106725 +0100
+++ b/testsuite/tests/driver/recomp015/Makefile 2024-01-13 16:23:18.406867917 +0100
@@ -26,6 +26,7 @@
# number of sections)
'$(TEST_HC)' $(TEST_HC_OPTS) Generate.hs
./Generate > ManySections.s
+ echo '.section .note.GNU-stack,"",@progbits' > ManySections.s
echo 'main = putStrLn "Running main..."' > Main.hs
'$(TEST_HC)' $(TEST_HC_OPTS) -c ManySections.s
'$(TEST_HC)' $(TEST_HC_OPTS) --make -O Main.hs ManySections.o
@@ -1,23 +0,0 @@
This patch is based on patch from NixOS/nixpkgs
pkgs/development/libraries/glibc/fix_path_attribute_in_getconf.patch
It adjusts the CS_PATH definition in sysdeps/unix/confstr.h so that getconf PATH
includes /run/current-system/profile/bin, which is where Guix stores profile binaries.
Unlike traditional distributions, Guix does not use /bin or /usr/bin as actual locations
for executables. This change ensures that tools and scripts relying on getconf PATH
receive a correct and functional PATH.
From bff411feec1f381a51d7127971e5d6fda1167254 Mon Sep 17 00:00:00 2001
From: Nikita Mitasov <me@ch4og.com>
Date: Sun, 13 Jul 2025 17:48:19 +0300
Subject: [PATCH] Add Guix profile path to getconf
diff --git a/sysdeps/unix/confstr.h b/sysdeps/unix/confstr.h
index 15859c3b..837837c7 100644
--- a/sysdeps/unix/confstr.h
+++ b/sysdeps/unix/confstr.h
@@ -1 +1 @@
-#define CS_PATH "/bin:/usr/bin"
+#define CS_PATH "/run/current-system/profile/bin:/bin:/usr/bin"
@@ -0,0 +1,51 @@
Don't escape forward slashes to prevent a warning from grep 3.8.
diff --git a/tests/link-order.at b/tests/link-order.at
--- a/tests/link-order.at
+++ b/tests/link-order.at
@@ -99,12 +99,12 @@ aix* | interix*) ;; # These systems have different path syntax
case $hardcode_direct$hardcode_direct_absolute in
yesno)
AT_CHECK([if $EGREP relinking stderr; then
- $EGREP " .*\/new\/lib/libb$shared_ext .*\/old\/lib/libcee$shared_ext" stdout
+ $EGREP " .*/new/lib/libb$shared_ext .*/old/lib/libcee$shared_ext" stdout
else :; fi], [0], [ignore], [], [echo "wrong link order"])
;;
*)
AT_CHECK([if $EGREP relinking stderr; then
- $EGREP " -L.*\/new\/lib -lb -L.*\/old\/lib -lcee" stdout
+ $EGREP " -L.*/new/lib -lb -L.*/old/lib -lcee" stdout
else :; fi], [0], [ignore], [], [echo "wrong link order"])
;;
esac
diff --git a/tests/testsuite b/tests/testsuite
--- a/tests/testsuite
+++ b/tests/testsuite
@@ -20611,11 +20611,11 @@ aix* | interix*) ;; # These systems have different path syntax
yesno)
{ set +x
$as_echo "$at_srcdir/link-order.at:101: if \$EGREP relinking stderr; then
- \$EGREP \" .*\\/new\\/lib/libb\$shared_ext .*\\/old\\/lib/libcee\$shared_ext\" stdout
+ \$EGREP \" .*/new/lib/libb\$shared_ext .*/old/lib/libcee\$shared_ext\" stdout
else :; fi"
at_fn_check_prepare_notrace 'an embedded newline' "link-order.at:101"
( $at_check_trace; if $EGREP relinking stderr; then
- $EGREP " .*\/new\/lib/libb$shared_ext .*\/old\/lib/libcee$shared_ext" stdout
+ $EGREP " .*/new/lib/libb$shared_ext .*/old/lib/libcee$shared_ext" stdout
else :; fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
@@ -20633,11 +20633,11 @@ $at_traceon; }
*)
{ set +x
$as_echo "$at_srcdir/link-order.at:106: if \$EGREP relinking stderr; then
- \$EGREP \" -L.*\\/new\\/lib -lb -L.*\\/old\\/lib -lcee\" stdout
+ \$EGREP \" -L.*/new\\/lib -lb -L.*/old/lib -lcee\" stdout
else :; fi"
at_fn_check_prepare_notrace 'an embedded newline' "link-order.at:106"
( $at_check_trace; if $EGREP relinking stderr; then
- $EGREP " -L.*\/new\/lib -lb -L.*\/old\/lib -lcee" stdout
+ $EGREP " -L.*/new/lib -lb -L.*/old/lib -lcee" stdout
else :; fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
@@ -0,0 +1,33 @@
Skip the nopic test on ARM, MIPS and RISC-V systems.
--- libtool-2.4.6/tests/demo.at.orig 2015-01-16 13:52:04.000000000 -0500
+++ libtool-2.4.6/tests/demo.at 2015-02-16 10:48:51.435851966 -0500
@@ -510,7 +510,7 @@
AT_SETUP([force non-PIC objects])
AT_CHECK([case $host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*|riscv*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
--- libtool-2.4.6/tests/testsuite.orig 2015-02-15 11:15:25.000000000 -0500
+++ libtool-2.4.6/tests/testsuite 2015-02-16 10:50:58.736483216 -0500
@@ -8741,7 +8741,7 @@
{ set +x
$as_echo "$at_srcdir/demo.at:513: case \$host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*|riscv*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
@@ -8766,7 +8766,7 @@
"
at_fn_check_prepare_notrace 'a `...` command substitution' "demo.at:513"
( $at_check_trace; case $host in
-hppa*|x86_64*|s390*)
+hppa*|x86_64*|s390*|arm*|mips*|riscv*)
# These hosts cannot use non-PIC shared libs
exit 77 ;;
*-solaris*|*-sunos*)
@@ -0,0 +1,67 @@
This commit adds the patch that fixes:
<https://github.com/lsof-org/lsof/issues/317>
The issue was triggering the following error in the `test` phase that
resulted in a build failure in Linux 6.9 or higher:
FAIL: lib/dialects/linux/tests/case-20-pidfd-pid.bash
From c1678e3f6e4b4d984cb3078b7bf0c9e24bedb8ca Mon Sep 17 00:00:00 2001
From: Jiajie Chen <c@jia.je>
Date: Fri, 17 May 2024 15:22:35 +0800
Subject: [PATCH] [linux] Maintain original output for pidfd in linux 6.9
---
00DIST | 3 +++
lib/dialects/linux/dproc.c | 13 +++++++++++++
2 files changed, 16 insertions(+)
diff --git a/00DIST b/00DIST
index d5a0349..9a29611 100644
--- a/00DIST
+++ b/00DIST
@@ -5605,6 +5605,9 @@ Supplement Regenerated the 4.04 distribution to correct a non-
[linux] Do not embed kernel version in CFLAGS (#314)
+ [linux] Linux 6.9 changed the pidfs appearence in procfs. Try
+ to maintain original output in lsof (#317)
+
Vic Abell <abe@purdue.edu>
July 14, 2018
diff --git a/lib/dialects/linux/dproc.c b/lib/dialects/linux/dproc.c
index cb6bb64..3a7a120 100644
--- a/lib/dialects/linux/dproc.c
+++ b/lib/dialects/linux/dproc.c
@@ -1273,6 +1273,10 @@ static int process_id(struct lsof_context *ctx, /* context */
#endif /* defined(HASEPTOPTS) */
if (rest && rest[0] == '[' && rest[1] == 'p')
fdinfo_mask |= FDINFO_PID;
+ else if (Lf->ntype == N_REGLR && rest && *rest && strcmp(pbuf, "pidfd") == 0) {
+ // https://github.com/lsof-org/lsof/issues/317
+ fdinfo_mask |= FDINFO_PID;
+ }
if ((av = get_fdinfo(ctx, pathi, fdinfo_mask, &fi)) &
FDINFO_POS) {
@@ -1338,6 +1342,15 @@ static int process_id(struct lsof_context *ctx, /* context */
Lf->sf |= SELPTYINFO;
}
#endif /* defined(HASEPTOPTS) && defined(HASPTYEPT) */
+ else if (Lf->ntype == N_REGLR && rest && *rest && Lf->nm &&
+ strcmp(Lf->nm, "pidfd") == 0) {
+ // https://github.com/lsof-org/lsof/issues/317
+ // pidfd since Linux 6.9 becomes a regular file:
+ // /proc/PID/fd/FD -> pidfd:[INODE]
+ (void)snpf(rest, sizeof(pbuf) - (rest - pbuf),
+ "[pidfd:%d]", fi.pid);
+ enter_nm(ctx, rest);
+ }
if (Lf->sf)
link_lfile(ctx);
--
2.45.2
@@ -0,0 +1,41 @@
Submitted close to upstream at
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1070162
From 95ff7e9de4ed815e060b1df59b5b2b105307e0d7 Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@posteo.net>
Date: Mon, 29 Apr 2024 23:34:15 -0500
Subject: [PATCH] Fixes substitution of REALEASE_DATE in nickle.1
* Makefile.am (nickle.1): 'BUILD_DATE' -> 'RELEASE_DATE'.
* nickle.1.in: Include version in footer.
---
Makefile.am | 2 +-
nickle.1.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index ba28ec9..5ed56a3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,7 +96,7 @@ RELEASE_FILES = $(TARFILE) $(SIGFILE) $(SRPMFILE) $(RPMFILE)
nickle.1: nickle.1.in nickle-config.h
sed -e 's,@''VERSION@,$(VERSION),' \
- -e 's,@''BUILD_DATE@,$(BUILD_DATE),' \
+ -e 's,@''RELEASE_DATE@,$(RELEASE_DATE),' \
-e 's,@''pkgdatadir@,$(pkgdatadir),' $(top_srcdir)/nickle.1.in > $@
nickle.spec: nickle.spec.in nickle-config.h
diff --git a/nickle.1.in b/nickle.1.in
index 4871ac2..1ab9e08 100644
--- a/nickle.1.in
+++ b/nickle.1.in
@@ -1,4 +1,4 @@
-.TH NICKLE 1 "@RELEASE_DATE@"
+.TH NICKLE 1 "@RELEASE_DATE@" "nickle @VERSION@"
.SH NAME
nickle \- a desk calculator language
.SH SYNOPSIS
--
2.41.0
@@ -1,984 +0,0 @@
From 82e98cf24808754578ab26adef5c33acc949f75e Mon Sep 17 00:00:00 2001
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
Date: Sat, 5 Jun 2021 22:47:00 -0400
Subject: [PATCH] ppsspp: Remove upgrade code and gold support.
Original patch from Liliana Marie Prikler.
Rebased on master (commit 69fa20744958aef8da9ca052ba7675fdc1636e46) by
Maxim Cournoyer.
Revised again by Liliana Marie Prikler for versions 1.12.3 and 1.14.4.
Revised again again by Liliana Marie Prikler for version 1.20.3.
---
CMakeLists.txt | 78 +++++------------------
Common/System/Request.cpp | 2 -
Common/System/System.h | 1 -
Core/Config.cpp | 123 +------------------------------------
Core/Config.h | 11 ----
Core/MIPS/IR/IRJit.h | 5 --
Qt/QtMain.cpp | 6 --
Qt/mainwindow.cpp | 8 +--
Qt/mainwindow.h | 3 +-
SDL/SDLMain.cpp | 11 +---
UI/Background.cpp | 2 +-
UI/GameSettingsScreen.cpp | 7 ---
UI/MainScreen.cpp | 91 +--------------------------
UI/MainScreen.h | 3 -
UI/MemStickScreen.cpp | 9 +--
UI/MiscScreens.cpp | 36 +----------
UI/ReportScreen.cpp | 11 +---
UI/UIAtlas.cpp | 1 -
UWP/PPSSPP_UWPMain.cpp | 8 +--
Windows/MainWindowMenu.cpp | 9 ---
Windows/main.cpp | 10 +--
Windows/resource.h | 1 -
ios/main.mm | 33 ++++------
23 files changed, 39 insertions(+), 430 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 070f49b..f206ced 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,27 +137,6 @@ if(OPENXR AND NOT ARMV7_DEVICE)
message("OpenXR enabled")
endif()
-if(GOLD)
- add_compile_definitions(GOLD)
- message("Gold Build")
- if(IOS_APP_STORE)
- message("WARNING: Gold build for iOS is deprecated")
- endif()
-else()
- message("Non-gold Build")
-endif()
-
-if(USE_IAP)
- if(GOLD)
- message(FATAL_ERROR "USE_IAP and GOLD can't be enabled together")
- endif()
- if(NOT IOS_APP_STORE)
- message(FATAL_ERROR "USE_IAP can only be enabled in app store builds")
- endif()
- message("USE_IAP for iOS enabled")
- add_compile_definitions(USE_IAP)
-endif()
-
if(IOS_APP_STORE)
add_compile_definitions(PPSSPP_PLATFORM_IOS_APP_STORE)
add_compile_definitions(GLES_SILENCE_DEPRECATION)
@@ -211,8 +190,6 @@ option(USE_ASAN "Use address sanitizer" OFF)
option(USE_UBSAN "Use undefined behaviour sanitizer" OFF)
option(USE_CCACHE "Use ccache if detected" ON)
option(USE_NO_MMAP "Disable mmap usage" OFF)
-option(USE_IAP "IAP enabled" OFF)
-option(GOLD "Gold build" OFF)
if(USE_CCACHE)
include(ccache)
@@ -1462,11 +1439,7 @@ elseif(WIN32)
set(TargetBin PPSSPPWindows)
elseif(LIBRETRO)
else()
- if(GOLD)
- set(TargetBin PPSSPPGold)
- else()
- set(TargetBin PPSSPPSDL)
- endif()
+ set(TargetBin PPSSPPSDL)
# Require SDL
add_compile_definitions(SDL)
list(APPEND nativeExtra
@@ -2972,17 +2945,10 @@ endif()
if(TargetBin)
if(APPLE)
if(NOT IOS)
- if(GOLD)
- set(ICON_PATH_ABS ${CMAKE_CURRENT_SOURCE_DIR}/icons/ppsspp_gold.icns)
- set(MACOSX_BUNDLE_ICON_FILE ppsspp_gold.icns)
- set(MACOSX_BUNDLE_BUNDLE_NAME "PPSSPP Gold")
- set(MACOSX_BUNDLE_GUI_IDENTIFIER org.ppsspp.ppssppgold)
- else()
- set(ICON_PATH_ABS ${CMAKE_CURRENT_SOURCE_DIR}/icons/ppsspp.icns)
- set(MACOSX_BUNDLE_ICON_FILE ppsspp.icns)
- set(MACOSX_BUNDLE_BUNDLE_NAME "PPSSPP")
- set(MACOSX_BUNDLE_GUI_IDENTIFIER org.ppsspp.ppsspp)
- endif()
+ set(ICON_PATH_ABS ${CMAKE_CURRENT_SOURCE_DIR}/icons/ppsspp.icns)
+ set(MACOSX_BUNDLE_ICON_FILE ppsspp.icns)
+ set(MACOSX_BUNDLE_BUNDLE_NAME "PPSSPP")
+ set(MACOSX_BUNDLE_GUI_IDENTIFIER org.ppsspp.ppsspp)
set_source_files_properties(${ICON_PATH_ABS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
endif()
@@ -3081,25 +3047,15 @@ if(IOS AND NOT LIBRETRO)
set(PRODUCT_NAME "PPSSPP")
set(BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ios/PPSSPP-Info.plist")
set(BUNDLE_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/ios/App.entitlements")
- if(GOLD)
- if(IOS_APP_STORE)
- set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp-gold")
- else()
- set(BUNDLE_IDENTIFIER "org.ppsspp.ppssppgold")
- endif()
- set(ICON_NAME "PPSSPPGold")
- set(DISPLAY_NAME "PPSSPP Gold")
+ if(IOS_APP_STORE)
+ set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp-free")
else()
- if(IOS_APP_STORE)
- set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp-free")
- else()
- set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp")
- endif()
- set(ICON_NAME "AppIcon")
- set(DISPLAY_NAME "PPSSPP")
+ set(BUNDLE_IDENTIFIER "org.ppsspp.ppsspp")
endif()
+ set(ICON_NAME "AppIcon")
+ set(DISPLAY_NAME "PPSSPP")
if(IOS_APP_STORE)
- message(STATUS "DevTeam: ${DEVELOPMENT_TEAM_ID} Icon: ${ICON_NAME} Target: ${TargetBin} Gold: ${GOLD} IAP: ${USE_IAP}")
+ message(STATUS "DevTeam: ${DEVELOPMENT_TEAM_ID} Icon: ${ICON_NAME} Target: ${TargetBin}")
message(STATUS "CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}")
# This is for injecting the version into the plist, and also copying resources.
@@ -3191,15 +3147,9 @@ if(IOS AND NOT LIBRETRO)
endif()
if(MACOSX AND NOT IOS)
- if(GOLD)
- set_target_properties(${TargetBin} PROPERTIES
- MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macOS/InfoGold.plist"
- )
- else()
- set_target_properties(${TargetBin} PROPERTIES
- MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macOS/Info.plist"
- )
- endif()
+ set_target_properties(${TargetBin} PROPERTIES
+ MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macOS/Info.plist"
+ )
endif()
if(UNIX AND NOT ANDROID AND NOT APPLE)
diff --git a/Common/System/Request.cpp b/Common/System/Request.cpp
index 8332529..00035fd 100644
--- a/Common/System/Request.cpp
+++ b/Common/System/Request.cpp
@@ -49,8 +49,6 @@ const char *RequestTypeAsString(SystemRequestType type) {
case SystemRequestType::MICROPHONE_COMMAND: return "MICROPHONE_COMMAND";
case SystemRequestType::RUN_CALLBACK_IN_WNDPROC: return "RUN_CALLBACK_IN_WNDPROC";
case SystemRequestType::MOVE_TO_TRASH: return "MOVE_TO_TRASH";
- case SystemRequestType::IAP_RESTORE_PURCHASES: return "IAP_RESTORE_PURCHASES";
- case SystemRequestType::IAP_MAKE_PURCHASE: return "IAP_MAKE_PURCHASE";
default: return "N/A";
}
}
diff --git a/Common/System/System.h b/Common/System/System.h
index e58a5cc..3c227be 100644
--- a/Common/System/System.h
+++ b/Common/System/System.h
@@ -194,7 +194,6 @@ enum SystemProperty {
SYSPROP_DISPLAY_HAS_CAMERA_CUTOUT,
SYSPROP_DEVICE_TYPE,
- SYSPROP_APP_GOLD, // To avoid having #ifdef GOLD other than in main.cpp and similar.
// Exposed on Android. Choosing the optimal sample rate for audio
// will result in lower latencies. Buffer size is automatically matched
diff --git a/Core/Config.cpp b/Core/Config.cpp
index 4380e80..afd177a 100644
--- a/Core/Config.cpp
+++ b/Core/Config.cpp
@@ -237,7 +237,6 @@ static const ConfigSetting generalSettings[] = {
ConfigSetting("CurrentDirectory", SETTING(g_Config, currentDirectory), "", CfgFlag::DEFAULT),
ConfigSetting("ShowDebuggerOnLoad", SETTING(g_Config, bShowDebuggerOnLoad), false, CfgFlag::DEFAULT),
ConfigSetting("ShowImDebugger", SETTING(g_Config, bShowImDebugger), false, CfgFlag::DONT_SAVE),
- ConfigSetting("CheckForNewVersion", SETTING(g_Config, bCheckForNewVersion), true, CfgFlag::DEFAULT),
ConfigSetting("Language", SETTING(g_Config, sLanguageIni), &DefaultLangRegion, CfgFlag::DEFAULT),
ConfigSetting("ForceLagSync2", SETTING(g_Config, bForceLagSync), false, CfgFlag::PER_GAME),
ConfigSetting("DiscordRichPresence", SETTING(g_Config, bDiscordRichPresence), false, CfgFlag::DEFAULT),
@@ -1112,12 +1111,6 @@ static const ConfigSetting jitSettings[] = {
ConfigSetting("DiscardRegsOnJRRA", SETTING(g_Config, bDiscardRegsOnJRRA), false, CfgFlag::DONT_SAVE | CfgFlag::REPORT),
};
-static const ConfigSetting upgradeSettings[] = {
- ConfigSetting("UpgradeMessage", SETTING(g_Config, sUpgradeMessage), "", CfgFlag::DEFAULT),
- ConfigSetting("UpgradeVersion", SETTING(g_Config, sUpgradeVersion), "", CfgFlag::DEFAULT),
- ConfigSetting("DismissedVersion", SETTING(g_Config, sDismissedVersion), "", CfgFlag::DEFAULT),
-};
-
static const ConfigSetting themeSettings[] = {
ConfigSetting("ThemeName", SETTING(g_Config, sThemeName), "Default", CfgFlag::DEFAULT),
};
@@ -1156,7 +1149,6 @@ static const ConfigSectionMeta g_sectionMeta[] = {
{ &g_Config, themeSettings, ARRAY_SIZE(themeSettings), "Theme" },
{ &g_Config, vrSettings, ARRAY_SIZE(vrSettings), "VR" },
{ &g_Config, achievementSettings, ARRAY_SIZE(achievementSettings), "Achievements" },
- { &g_Config, upgradeSettings, ARRAY_SIZE(upgradeSettings), "Upgrade" },
{ &g_Config.displayLayoutLandscape, displayLayoutSettings, ARRAY_SIZE(displayLayoutSettings), "DisplayLayout.Landscape", "Graphics" }, // We read the old settings from [Graphics], since most people played in landscape before.
{ &g_Config.displayLayoutPortrait, displayLayoutSettings, ARRAY_SIZE(displayLayoutSettings), "DisplayLayout.Portrait"}, // These we don't want to read from the old settings, since for most people, those settings will be bad.
{ &g_Config.touchControlsLandscape, touchControlSettings, ARRAY_SIZE(touchControlSettings), "TouchControls.Landscape", "Control" }, // We read the old settings from [Control], since most people played in landscape before.
@@ -1400,8 +1392,6 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
}
}
- CheckForUpdate();
-
INFO_LOG(Log::Loader, "Loading controller config: %s", controllerIniFilename_.c_str());
bSaveSettings = true;
@@ -1623,117 +1613,6 @@ void Config::NotifyUpdatedCpuCore() {
}
}
-bool Config::SupportsUpgradeCheck() const {
-#if PPSSPP_PLATFORM(WINDOWS) || PPSSPP_PLATFORM(LINUX) || PPSSPP_PLATFORM(MACOS) || PPSSPP_PLATFORM(ANDROID) || PPSSPP_PLATFORM(IOS_APP_STORE)
- return true;
-#else
- return false;
-#endif
-}
-
-#if 0
-// Use for debugging the version check without messing with the server
-#define NEW_VERSION_OVERRIDE "v1.100.3-gaaaaaaaaa"
-constexpr int UPDATE_CHECK_FREQ = 1;
-#else
-constexpr int UPDATE_CHECK_FREQ = 5;
-#endif
-
-void Config::CheckForUpdate() {
- if (!bCheckForNewVersion || !SupportsUpgradeCheck()) {
- return;
- }
-
- const char *gitVer = PPSSPP_GIT_VERSION;
- Version installed(gitVer);
- Version upgrade(sUpgradeVersion);
- const bool versionsValid = installed.IsValid() && upgrade.IsValid();
-
- // Do this regardless of iRunCount to prevent a silly bug where one might use an older
- // build of PPSSPP, receive an upgrade notice, then start a newer version, and still receive the upgrade notice,
- // even if said newer version is >= the upgrade found online.
- if ((sDismissedVersion == sUpgradeVersion) || (versionsValid && (installed >= upgrade))) {
- sUpgradeMessage.clear();
- }
-
- // Check for new version on every 10 runs.
- // Sometimes the download may not be finished when the main screen shows (if the user dismisses the
- // splash screen quickly), but then we'll just show the notification next time instead, we store the
- // upgrade number in the ini.
-
- const bool checkThisTime = iRunCount % UPDATE_CHECK_FREQ == 0;
- if (checkThisTime) {
- const char *versionUrl = "http://www.ppsspp.org/version.json";
- const char *acceptMime = "application/json, text/*; q=0.9, */*; q=0.8";
- g_DownloadManager.StartDownload(versionUrl, Path(), http::RequestFlags::Default, acceptMime, "version", [this](http::Request &download) { VersionJsonDownloadCompleted(download); });
- }
-}
-
-void Config::VersionJsonDownloadCompleted(http::Request &download) {
- if (download.ResultCode() != 200) {
- ERROR_LOG(Log::Loader, "Failed to download %s: %d", download.url().c_str(), download.ResultCode());
- return;
- }
- std::string data;
- download.buffer().TakeAll(&data);
- if (data.empty()) {
- ERROR_LOG(Log::Loader, "Version check: Empty data from server!");
- return;
- }
-
- json::JsonReader reader(data.c_str(), data.size());
- const json::JsonGet root = reader.root();
- if (!root) {
- ERROR_LOG(Log::Loader, "Failed to parse json");
- return;
- }
-
- std::string version;
- root.getString("version", &version);
-
- #ifdef NEW_VERSION_OVERRIDE
- version = NEW_VERSION_OVERRIDE;
- #endif
-
- const char *gitVer = PPSSPP_GIT_VERSION;
- Version installed(gitVer);
- Version upgrade(version);
- Version dismissed(g_Config.sDismissedVersion);
-
- if (!installed.IsValid()) {
- ERROR_LOG(Log::Loader, "Version check: Local version string invalid. Build problems? %s", PPSSPP_GIT_VERSION);
- return;
- }
- if (!upgrade.IsValid()) {
- ERROR_LOG(Log::Loader, "Version check: Invalid server version: %s", version.c_str());
- return;
- }
-
- if (installed >= upgrade) {
- INFO_LOG(Log::Loader, "Version check: Already up to date, erasing any upgrade message");
- g_Config.sUpgradeMessage.clear();
- g_Config.sUpgradeVersion = upgrade.ToString();
- g_Config.sDismissedVersion.clear();
- return;
- }
-
- if (installed < upgrade && dismissed != upgrade) {
- g_Config.sUpgradeMessage = "New version of PPSSPP available!";
- g_Config.sUpgradeVersion = upgrade.ToString();
- g_Config.sDismissedVersion.clear();
- }
-}
-
-bool Config::ShowUpgradeReminder() {
- return !sUpgradeMessage.empty() && !sUpgradeVersion.empty() && sUpgradeVersion != sDismissedVersion;
-}
-
-void Config::DismissUpgrade() {
- INFO_LOG(Log::Loader, "Upgrade dismissed for version %s", sUpgradeVersion.c_str());
- sDismissedVersion = sUpgradeVersion;
- sUpgradeMessage.clear();
-}
-
void Config::SetSearchPath(const Path &searchPath) {
searchPath_ = searchPath;
}
diff --git a/Core/Config.h b/Core/Config.h
index 3cb451c..b7f6d10 100644
--- a/Core/Config.h
+++ b/Core/Config.h
@@ -679,11 +679,6 @@ struct Config : public ConfigBlock {
Path mountRoot; // Actually, mount as host0. keeping consistent with headless args.
- // Data for upgrade prompt
- std::string sUpgradeMessage; // The actual message from the server is currently not used, need a translation mechanism. So this just acts as a flag.
- std::string sUpgradeVersion;
- std::string sDismissedVersion;
-
void Load(const char *iniFileName = nullptr, const char *controllerIniFilename = nullptr);
bool Save(const char *saveReason);
void Reload();
@@ -706,12 +701,6 @@ struct Config : public ConfigBlock {
void UpdateIniLocation(const char *iniFileName = nullptr, const char *controllerIniFilename = nullptr);
- bool SupportsUpgradeCheck() const;
- void CheckForUpdate();
- void VersionJsonDownloadCompleted(http::Request &download);
- void DismissUpgrade();
- bool ShowUpgradeReminder();
-
void GetReportingInfo(UrlEncoder &data) const;
int NextValidBackend();
diff --git a/Core/MIPS/IR/IRJit.h b/Core/MIPS/IR/IRJit.h
index 4667043..e3af580 100644
--- a/Core/MIPS/IR/IRJit.h
+++ b/Core/MIPS/IR/IRJit.h
@@ -38,11 +38,6 @@
//
// #define IR_PROFILING
-// Try to catch obvious misses of be above rule.
-#if defined(IR_PROFILING) && defined(GOLD)
-#error
-#endif
-
namespace MIPSComp {
// TODO : Use arena allocators. For now let's just malloc.
diff --git a/Qt/QtMain.cpp b/Qt/QtMain.cpp
index c7d43a3..4e0786d 100644
--- a/Qt/QtMain.cpp
+++ b/Qt/QtMain.cpp
@@ -262,12 +262,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
return true;
case SYSPROP_SUPPORTS_OPEN_FILE_IN_EDITOR:
return true; // FileUtil.cpp: OpenFileInEditor
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
case SYSPROP_CAN_JIT:
return true;
case SYSPROP_HAS_KEYBOARD:
diff --git a/Qt/mainwindow.cpp b/Qt/mainwindow.cpp
index cbd9fda..670a1ca 100644
--- a/Qt/mainwindow.cpp
+++ b/Qt/mainwindow.cpp
@@ -112,7 +112,7 @@ void MainWindow::updateMenus()
int width = (internalPortrait ? 272 : 480) * action->data().toInt();
int height = (internalPortrait ? 480 : 272) * action->data().toInt();
if (g_Config.iWindowWidth == width && g_Config.iWindowHeight == height) {
- action->setChecked(true);
+ action->setChecked(true);
break;
}
}
@@ -423,11 +423,6 @@ void MainWindow::forumAct()
QDesktopServices::openUrl(QUrl("https://forums.ppsspp.org/"));
}
-void MainWindow::goldAct()
-{
- QDesktopServices::openUrl(QUrl("https://www.ppsspp.org/buygold"));
-}
-
void MainWindow::gitAct()
{
QDesktopServices::openUrl(QUrl("https://github.com/hrydgard/ppsspp/"));
@@ -680,7 +675,6 @@ void MainWindow::createMenus()
MenuTree* helpMenu = new MenuTree(this, menuBar(), QT_TR_NOOP("&Help"));
helpMenu->add(new MenuAction(this, SLOT(websiteAct()), QT_TR_NOOP("Visit www.&ppsspp.org")));
helpMenu->add(new MenuAction(this, SLOT(forumAct()), QT_TR_NOOP("PPSSPP &forums")));
- helpMenu->add(new MenuAction(this, SLOT(goldAct()), QT_TR_NOOP("Buy &Gold")));
helpMenu->add(new MenuAction(this, SLOT(gitAct()), QT_TR_NOOP("Git&Hub")));
helpMenu->add(new MenuAction(this, SLOT(discordAct()), QT_TR_NOOP("Discord")));
helpMenu->addSeparator();
diff --git a/Qt/mainwindow.h b/Qt/mainwindow.h
index 5e735ae..55a180f 100644
--- a/Qt/mainwindow.h
+++ b/Qt/mainwindow.h
@@ -100,7 +100,7 @@ private slots:
void stopAct();
void resetAct();
void switchUMDAct();
- void displayRotationGroup_triggered(QAction *action) {
+ void displayRotationGroup_triggered(QAction *action) {
DisplayLayoutConfig &config = g_Config.GetDisplayLayoutConfig(g_display.GetDeviceOrientation());
config.iInternalScreenRotation = action->data().toInt();
}
@@ -187,7 +187,6 @@ private slots:
// Help
void websiteAct();
void forumAct();
- void goldAct();
void gitAct();
void discordAct();
void aboutAct();
diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
index 5eea6e5..9799010 100644
--- a/SDL/SDLMain.cpp
+++ b/SDL/SDLMain.cpp
@@ -438,7 +438,7 @@ bool System_MakeRequest(SystemRequestType type, int requestId, const std::string
case SystemRequestType::SET_WINDOW_TITLE:
{
std::lock_guard<std::mutex> guard(g_mutexWindow);
- const char *app_name = System_GetPropertyBool(SYSPROP_APP_GOLD) ? "PPSSPP Gold" : "PPSSPP";
+ const char *app_name = "PPSSPP";
g_windowState.title = param1.empty() ? app_name : param1;
g_windowState.update = true;
return true;
@@ -742,12 +742,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
#endif
case SYSPROP_HAS_KEYBOARD:
return true;
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
case SYSPROP_CAN_JIT:
return true;
case SYSPROP_SUPPORTS_OPEN_FILE_IN_EDITOR:
@@ -777,9 +771,6 @@ case SYSPROP_HAS_FILE_BROWSER:
#else
return false;
#endif
- // hack for testing - do not commit
- case SYSPROP_USE_IAP:
- return false;
default:
return false;
}
diff --git a/UI/Background.cpp b/UI/Background.cpp
index 73be05b..3d5fb96 100644
--- a/UI/Background.cpp
+++ b/UI/Background.cpp
@@ -272,7 +272,7 @@ class BouncingIconAnimation : public Animation {
// Draw the image.
float xpos = xbase + dc.GetBounds().x;
float ypos = ybase + dc.GetBounds().y;
- ImageID icon = !color_ix && System_GetPropertyBool(SYSPROP_APP_GOLD) ? ImageID("I_ICON_GOLD") : ImageID("I_ICON");
+ ImageID icon = ImageID("I_ICON");
ui_draw2d.DrawImage(icon, xpos, ypos, scale, COLORS[color_ix], ALIGN_CENTER);
dc.Flush();
diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp
index 85cd7f7..fa0c330 100644
--- a/UI/GameSettingsScreen.cpp
+++ b/UI/GameSettingsScreen.cpp
@@ -1439,13 +1439,6 @@ void GameSettingsScreen::CreateSystemSettings(UI::ViewGroup *systemSettings) {
systemSettings->Add(new CheckBox(&g_Config.bCacheFullIsoInRam, sy->T("Cache full ISO in RAM")))->SetEnabled(!PSP_IsInited());
}
- CheckBox *checkForUpdate = systemSettings->Add(new CheckBox(&g_Config.bCheckForNewVersion, sy->T("VersionCheck", "Check for new versions of PPSSPP")));
- checkForUpdate->OnClick.Add([](UI::EventParams &e) {
- // Reset the dismissed version so it will check again.
- if (g_Config.bCheckForNewVersion) {
- g_Config.sDismissedVersion.clear();
- }
- });
systemSettings->Add(new CheckBox(&g_Config.bScreenshotsAsPNG, sy->T("Screenshots as PNG")));
static const char *screenshotModeChoices[] = { "Final processed image", "Raw game image" };
systemSettings->Add(new PopupMultiChoice(&g_Config.iScreenshotMode, sy->T("Screenshot mode"), screenshotModeChoices, 0, ARRAY_SIZE(screenshotModeChoices), I18NCat::SYSTEM, screenManager()));
diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp
index 8e7ca54..6153025 100644
--- a/UI/MainScreen.cpp
+++ b/UI/MainScreen.cpp
@@ -57,7 +57,6 @@
#include "UI/GameSettingsScreen.h"
#include "UI/BaseScreens.h"
#include "UI/ControlMappingScreen.h"
-#include "UI/IAPScreen.h"
#include "UI/RemoteISOScreen.h"
#include "UI/DisplayLayoutScreen.h"
#include "UI/SavedataScreen.h"
@@ -1280,7 +1279,7 @@ class LogoView : public UI::AnchorLayout {
private:
ImageID GetIconID() const {
- return System_GetPropertyBool(SYSPROP_APP_GOLD) ? ImageID("I_ICON_GOLD") : ImageID("I_ICON");
+ return ImageID("I_ICON");
}
const bool portrait_;
@@ -1302,16 +1301,6 @@ void MainScreen::CreateMainButtons(UI::ViewGroup *parent, bool portrait) {
parent->Add(new Choice(mm->T("www.ppsspp.org")))->OnClick.Handle(this, &MainScreen::OnPPSSPPOrg);
}
- if (!System_GetPropertyBool(SYSPROP_APP_GOLD) && (System_GetPropertyInt(SYSPROP_DEVICE_TYPE) != DEVICE_TYPE_VR)) {
- Choice *gold = parent->Add(portrait ? new Choice(ImageID("I_ICON_GOLD"), portrait ? new LinearLayoutParams() : nullptr) : new Choice(mm->T("Buy PPSSPP Gold")));
- gold->OnClick.Add([this](UI::EventParams &) {
- LaunchBuyGold(this->screenManager());
- });
- gold->SetIconRight(ImageID("I_ICON_GOLD"), 0.5f);
- gold->SetImageScale(0.6f); // for the left-icon in case of vertical.
- gold->SetShine(true);
- }
-
if (!portrait) {
parent->Add(new Spacer(16.0));
}
@@ -1384,7 +1373,7 @@ void MainScreen::CreateViews() {
if (g_recentFiles.HasAny()) {
tabHolder_->SetCurrentTab(std::clamp(g_Config.iDefaultTab, 0, g_Config.bRemoteTab ? 3 : 2), true);
} else if (g_Config.iMaxRecent > 0) {
- tabHolder_->SetCurrentTab(1, true);
+ tabHolder_->SetCurrentTab(1, true);
}
if (backFromStore_ || showHomebrewTab) {
@@ -1490,41 +1479,6 @@ void MainScreen::CreateViews() {
}
root_->SetTag("mainroot");
-
- if (!g_Config.sUpgradeMessage.empty()) {
- auto di = GetI18NCategory(I18NCat::DIALOG);
- Margins margins(0, 0);
- if (vertical) {
- margins.bottom = ITEM_HEIGHT;
- }
- UI::LinearLayout *upgradeBar = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT, margins));
-
- UI::Margins textMargins(10, 5);
- UI::Margins buttonMargins(5, 0);
- UI::Drawable solid(0xFFbd9939);
- upgradeBar->SetSpacing(5.0f);
- upgradeBar->SetBG(solid);
- std::string upgradeMessage(di->T("New version of PPSSPP available"));
- if (!vertical) {
- // The version only really fits in the horizontal layout.
- upgradeMessage += ": " + g_Config.sUpgradeVersion;
- }
- upgradeBar->Add(new TextView(upgradeMessage, new LinearLayoutParams(1.0f, UI::Gravity::G_VCENTER, textMargins)));
- upgradeBar->Add(new Choice(di->T("Download"), new LinearLayoutParams(buttonMargins)))->OnClick.Handle(this, &MainScreen::OnDownloadUpgrade);
- Choice *dismiss = upgradeBar->Add(new Choice("", ImageID("I_CROSS"), new LinearLayoutParams(buttonMargins)));
- dismiss->OnClick.Add([this](UI::EventParams &e) {
- g_Config.DismissUpgrade();
- g_Config.Save("dismissupgrade");
- RecreateViews();
- });
-
- // Slip in under root_
- LinearLayout *newRoot = new LinearLayout(ORIENT_VERTICAL);
- newRoot->Add(root_);
- newRoot->Add(upgradeBar);
- root_->ReplaceLayoutParams(new LinearLayoutParams(1.0));
- root_ = newRoot;
- }
}
bool MainScreen::key(const KeyInput &key) {
@@ -1565,26 +1519,6 @@ void MainScreen::OnAllowStorage(UI::EventParams &e) {
System_AskForPermission(SYSTEM_PERMISSION_STORAGE);
}
-// See Config::SupportsUpgradeCheck() if you add more platforms.
-void MainScreen::OnDownloadUpgrade(UI::EventParams &e) {
-#if PPSSPP_PLATFORM(ANDROID)
- // Go to app store
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "market://details?id=org.ppsspp.ppssppgold");
- } else {
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "market://details?id=org.ppsspp.ppsspp");
- }
-#elif PPSSPP_PLATFORM(WINDOWS)
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/download");
-#elif PPSSPP_PLATFORM(IOS_APP_STORE)
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "itms-apps://itunes.apple.com/app/id6496972903");
-#else
- // Go directly to ppsspp.org and let the user sort it out
- // (for details and in case downloads doesn't have their platform.)
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/");
-#endif
-}
-
void MainScreen::sendMessage(UIMessage message, const char *value) {
// Always call the base class method first to handle the most common messages.
UIBaseScreen::sendMessage(message, value);
@@ -1732,24 +1666,6 @@ void MainScreen::OnCredits(UI::EventParams &e) {
screenManager()->push(new CreditsScreen());
}
-void LaunchBuyGold(ScreenManager *screenManager) {
- if (System_GetPropertyBool(SYSPROP_USE_IAP)) {
- screenManager->push(new IAPScreen(true));
- } else if (System_GetPropertyBool(SYSPROP_USE_APP_STORE)) {
-#if PPSSPP_PLATFORM(ANDROID)
- LaunchPlayStoreOrWebsiteGold();
-#else
- screenManager->push(new IAPScreen(false));
-#endif
- } else {
-#if PPSSPP_PLATFORM(IOS_APP_STORE)
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/buygold_ios");
-#else
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/buygold");
-#endif
- }
-}
-
void MainScreen::OnPPSSPPOrg(UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org");
}
@@ -1785,9 +1701,6 @@ void MainScreen::dialogFinished(const Screen *dialog, DialogResult result) {
if (gameBrowsers_.size() >= 2) {
gameBrowsers_[1]->RequestRefresh();
}
- } else if (tag == "IAP") {
- // Gold status may have changed.
- RecreateViews();
} else if (tag == "Upload") {
// Files may have been uploaded.
RecreateViews();
diff --git a/UI/MainScreen.h b/UI/MainScreen.h
index 49d743c..457ccd7 100644
--- a/UI/MainScreen.h
+++ b/UI/MainScreen.h
@@ -166,7 +166,6 @@ class MainScreen : public UIBaseScreen {
void OnCredits(UI::EventParams &e);
void OnPPSSPPOrg(UI::EventParams &e);
void OnForums(UI::EventParams &e);
- void OnDownloadUpgrade(UI::EventParams &e);
void OnAllowStorage(UI::EventParams &e);
UI::TabHolder *tabHolder_ = nullptr;
@@ -218,5 +217,3 @@ class GridSettingsPopupScreen : public UI::PopupScreen {
const float MAX_GAME_GRID_SCALE = 3.0f;
const float MIN_GAME_GRID_SCALE = 0.8f;
};
-
-void LaunchBuyGold(ScreenManager *screenManager);
diff --git a/UI/MemStickScreen.cpp b/UI/MemStickScreen.cpp
index 69b9d3d..8a02aff 100644
--- a/UI/MemStickScreen.cpp
+++ b/UI/MemStickScreen.cpp
@@ -123,12 +123,10 @@ static void AddExplanation(UI::ViewGroup *viewGroup, MemStickScreen::Choice choi
case MemStickScreen::CHOICE_STORAGE_ROOT:
// Old school choice
holder->Add(new TextView(iz->T("DataWillStay", "Data will stay even if you uninstall PPSSPP"), flags, false))->SetBullet(true);
- holder->Add(new TextView(iz->T("DataCanBeShared", "Data can be shared between PPSSPP regular/Gold"), flags, false))->SetBullet(true);
holder->Add(new TextView(iz->T("EasyUSBAccess", "Easy USB access"), flags, false))->SetBullet(true);
break;
case MemStickScreen::CHOICE_BROWSE_FOLDER:
holder->Add(new TextView(iz->T("DataWillStay", "Data will stay even if you uninstall PPSSPP"), flags, false))->SetBullet(true);
- holder->Add(new TextView(iz->T("DataCanBeShared", "Data can be shared between PPSSPP regular/Gold"), flags, false))->SetBullet(true);
#if !PPSSPP_PLATFORM(UWP)
holder->Add(new TextView(iz->T("EasyUSBAccess", "Easy USB access"), flags, false))->SetBullet(true);
#endif
@@ -136,13 +134,8 @@ static void AddExplanation(UI::ViewGroup *viewGroup, MemStickScreen::Choice choi
case MemStickScreen::CHOICE_PRIVATE_DIRECTORY:
// Consider https://www.compart.com/en/unicode/U+26A0 (unicode warning sign?)? or a graphic?
holder->Add(new TextView(iz->T("DataWillBeLostOnUninstall", "Warning! Data will be lost when you uninstall PPSSPP!"), flags, false))->SetBullet(true);
- holder->Add(new TextView(iz->T("DataCannotBeShared", "Data CANNOT be shared between PPSSPP regular/Gold!"), flags, false))->SetBullet(true);
#if !PPSSPP_PLATFORM(UWP)
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- holder->Add(new TextView(iz->T("USBAccessThroughGold", "USB access through Android/data/org.ppsspp.ppssppgold/files"), flags, false))->SetBullet(true);
- } else {
- holder->Add(new TextView(iz->T("USBAccessThrough", "USB access through Android/data/org.ppsspp.ppsspp/files"), flags, false))->SetBullet(true);
- }
+ holder->Add(new TextView(iz->T("USBAccessThrough", "USB access through Android/data/org.ppsspp.ppsspp/files"), flags, false))->SetBullet(true);
#endif
break;
case MemStickScreen::CHOICE_SET_MANUAL:
diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp
index 1dedbef..9c4f965 100644
--- a/UI/MiscScreens.cpp
+++ b/UI/MiscScreens.cpp
@@ -441,12 +441,7 @@ void LogoScreen::DrawForeground(UIContext &dc) {
// Manually formatting UTF-8 is fun. \xXX doesn't work everywhere.
snprintf(temp, sizeof(temp), "%s Henrik Rydg%c%crd", cr->T_cstr("created", "Created by"), 0xC3, 0xA5);
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- UI::DrawIconShine(dc, Bounds::FromCenter(bounds.centerX() - 125, startY, 60.0f), 0.7f, true);
- dc.Draw()->DrawImage(ImageID("I_ICON_GOLD"), bounds.centerX() - 125, startY, 1.2f, 0xFFFFFFFF, ALIGN_CENTER);
- } else {
- dc.Draw()->DrawImage(ImageID("I_ICON"), bounds.centerX() - 125, startY, 1.2f, 0xFFFFFFFF, ALIGN_CENTER);
- }
+ dc.Draw()->DrawImage(ImageID("I_ICON"), bounds.centerX() - 125, startY, 1.2f, 0xFFFFFFFF, ALIGN_CENTER);
dc.Draw()->DrawImage(ImageID("I_LOGO"), bounds.centerX() + 45, startY, 1.5f, 0xFFFFFFFF, ALIGN_CENTER);
//dc.Draw()->DrawTextShadow(UBUNTU48, "PPSSPP", bounds.w / 2, bounds.h / 2 - 30, textColor, ALIGN_CENTER);
dc.SetFontScale(1.0f, 1.0f);
@@ -512,15 +507,6 @@ void CreditsScreen::CreateDialogViews(UI::ViewGroup *parent) {
const bool portrait = GetDeviceOrientation() == DeviceOrientation::Portrait;
- const bool gold = System_GetPropertyBool(SYSPROP_APP_GOLD);
-
- /*
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- root_->Add(new ShinyIcon(ImageID("I_ICON_GOLD"), new AnchorLayoutParams(WRAP_CONTENT, WRAP_CONTENT, 10, 10, NONE, NONE, false)))->SetScale(1.5f);
- } else {
- root_->Add(new ImageView(ImageID("I_ICON"), "", IS_DEFAULT, new AnchorLayoutParams(WRAP_CONTENT, WRAP_CONTENT, 10, 10, NONE, NONE, false)))->SetScale(1.5f);
- }*/
-
constexpr float columnWidth = 265.0f;
LinearLayout *left;
@@ -544,18 +530,6 @@ void CreditsScreen::CreateDialogViews(UI::ViewGroup *parent) {
}
int rightYOffset = 0;
- if (!System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- ScreenManager *sm = screenManager();
- Choice *gold = new Choice(mm->T("Buy PPSSPP Gold"));
- gold->SetIconRight(ImageID("I_ICON_GOLD"), 0.5f);
- gold->SetImageScale(0.6f); // for the left-icon in case of vertical.
- gold->SetShine(true);
-
- left->Add(gold)->OnClick.Add([sm](UI::EventParams) {
- LaunchBuyGold(sm);
- });
- rightYOffset = 74;
- }
left->Add(new Choice(cr->T("PPSSPP Forums"), ImageID("I_LINK_OUT")))->OnClick.Add([](UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://forums.ppsspp.org");
});
@@ -611,7 +585,7 @@ void CreditsScroller::Draw(UIContext &dc) {
specialthankssolarmystic += ')';
std::string_view credits[] = {
- System_GetPropertyBool(SYSPROP_APP_GOLD) ? "PPSSPP Gold" : "PPSSPP",
+ "PPSSPP",
"",
cr->T("title", "A fast and portable PSP emulator"),
"",
@@ -735,11 +709,7 @@ void CreditsScroller::Draw(UIContext &dc) {
// TODO: This is kinda ugly, done on every frame...
char temp[256];
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- snprintf(temp, sizeof(temp), "PPSSPP Gold %s", PPSSPP_GIT_VERSION);
- } else {
- snprintf(temp, sizeof(temp), "PPSSPP %s", PPSSPP_GIT_VERSION);
- }
+ snprintf(temp, sizeof(temp), "PPSSPP %s", PPSSPP_GIT_VERSION);
credits[0] = (const char *)temp;
dc.Begin();
diff --git a/UI/ReportScreen.cpp b/UI/ReportScreen.cpp
index 02080aa..7a0e773 100644
--- a/UI/ReportScreen.cpp
+++ b/UI/ReportScreen.cpp
@@ -478,11 +478,7 @@ void ReportFinishScreen::ShowSuggestions() {
bool valid = false;
for (const auto &item : suggestions) {
std::string_view suggestion = "";
- if (item == "Upgrade") {
- suggestion = rp->T("SuggestionUpgrade", "Upgrade to a newer PPSSPP build");
- } else if (item == "Downgrade") {
- suggestion = rp->T("SuggestionDowngrade", "Downgrade to an older PPSSPP version (please report this bug)");
- } else if (item == "VerifyDisc") {
+ if (item == "VerifyDisc") {
suggestion = rp->T("SuggestionVerifyDisc", "Check your ISO is a good copy of your disc");
} else if (item == "Config:CPUSpeed:0") {
suggestion = rp->T("SuggestionCPUSpeed0", "Disable locked CPU speed setting");
@@ -500,11 +496,6 @@ void ReportFinishScreen::ShowSuggestions() {
resultItems_->Add(new TextView(std::string(" - ") + std::string(suggestion), FLAG_WRAP_TEXT, false))->SetShadow(true);
}
}
-
- if (!valid) {
- // No actual valid versions. Let's just say upgrade and hope the server's not broken.
- resultItems_->Add(new TextView(std::string(" - ") + rp->T_cstr("SuggestionUpgrade", "Upgrade to a newer PPSSPP build"), FLAG_WRAP_TEXT, false))->SetShadow(true);
- }
}
}
diff --git a/UI/UIAtlas.cpp b/UI/UIAtlas.cpp
index 92b1d3a..50199d2 100644
--- a/UI/UIAtlas.cpp
+++ b/UI/UIAtlas.cpp
@@ -75,7 +75,6 @@ static const ImageMeta imageIDs[] = {
{"I_GRID", false},
{"I_LOGO", false},
{"I_ICON", false},
- {"I_ICON_GOLD", false},
{"I_FOLDER", false},
{"I_UP_DIRECTORY", false},
{"I_GEAR", false},
diff --git a/UWP/PPSSPP_UWPMain.cpp b/UWP/PPSSPP_UWPMain.cpp
index a89ee1f..eed5bdf 100644
--- a/UWP/PPSSPP_UWPMain.cpp
+++ b/UWP/PPSSPP_UWPMain.cpp
@@ -478,12 +478,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
return true;
case SYSPROP_HAS_ACCELEROMETER:
return IsMobile();
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
case SYSPROP_CAN_JIT:
return true;
case SYSPROP_HAS_KEYBOARD:
@@ -705,7 +699,7 @@ std::string GetCPUBrandString() {
winrt::hstring dev_filter = L"System.Devices.DeviceInstanceID:=\"" + cpu_id + L"\"";
try {
- auto collection = winrt::Windows::Devices::Enumeration::DeviceInformation::FindAllAsync(dev_filter, {},
+ auto collection = winrt::Windows::Devices::Enumeration::DeviceInformation::FindAllAsync(dev_filter, {},
winrt::Windows::Devices::Enumeration::DeviceInformationKind::Device).get();
if (collection.Size() > 0) {
cpu_name = collection.GetAt(0).Name();
diff --git a/Windows/MainWindowMenu.cpp b/Windows/MainWindowMenu.cpp
index 856e39d..cc22d2b 100644
--- a/Windows/MainWindowMenu.cpp
+++ b/Windows/MainWindowMenu.cpp
@@ -170,10 +170,6 @@ namespace MainWindow {
// Don't need to update here, happens later.
HMENU helpMenu = GetSubmenuById(hMenu, ID_HELP_MENU);
- if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
- RemoveMenu(helpMenu, ID_HELP_BUYGOLD, MF_BYCOMMAND);
- }
-
HMENU hMenuOptions = GetSubmenuById(hMenu, ID_OPTIONS_MENU);
g_hMenuBackend = GetSubmenuById(hMenuOptions, ID_OPTIONS_BACKEND_MENU);
}
@@ -310,7 +306,6 @@ namespace MainWindow {
// Help menu: it's translated in CreateHelpMenu.
TranslateMenuItem(menu, ID_HELP_OPENWEBSITE);
TranslateMenuItem(menu, ID_HELP_OPENFORUM);
- TranslateMenuItem(menu, ID_HELP_BUYGOLD);
TranslateMenuItem(menu, ID_HELP_GITHUB);
TranslateMenuItem(menu, ID_HELP_DISCORD);
TranslateMenuItem(menu, ID_HELP_ABOUT);
@@ -933,10 +928,6 @@ namespace MainWindow {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/");
break;
- case ID_HELP_BUYGOLD:
- System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/buygold");
- break;
-
case ID_HELP_OPENFORUM:
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://forums.ppsspp.org/");
break;
diff --git a/Windows/main.cpp b/Windows/main.cpp
index c7ad098..0280cb9 100644
--- a/Windows/main.cpp
+++ b/Windows/main.cpp
@@ -450,12 +450,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
return true;
case SYSPROP_HAS_LOGIN_DIALOG:
return true;
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- return true;
-#else
- return false;
-#endif
case SYSPROP_CAN_JIT:
return true;
case SYSPROP_HAS_KEYBOARD:
@@ -478,8 +472,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
#endif
case SYSPROP_HAS_ACCELEROMETER:
return g_InputManager.AnyAccelerometer();
- case SYSPROP_USE_IAP:
- return false; // This should never be set to true on Windows. Only for testing/dev.
case SYSPROP_USE_APP_STORE:
return false;
default:
@@ -654,7 +646,7 @@ bool System_MakeRequest(SystemRequestType type, int requestId, const std::string
}
case SystemRequestType::SET_WINDOW_TITLE:
{
- const char *name = System_GetPropertyBool(SYSPROP_APP_GOLD) ? "PPSSPP Gold " : "PPSSPP ";
+ const char *name = "PPSSPP ";
std::wstring winTitle = ConvertUTF8ToWString(std::string(name) + PPSSPP_GIT_VERSION);
if (!param1.empty()) {
winTitle.append(ConvertUTF8ToWString(" - " + param1));
diff --git a/Windows/resource.h b/Windows/resource.h
index 0dee92b..602b2fb 100644
--- a/Windows/resource.h
+++ b/Windows/resource.h
@@ -353,7 +353,6 @@
// Dummy option to let the buffered rendering hotkey cycle through all the options.
#define ID_OPTIONS_BUFFEREDRENDERINGDUMMY 40500
#define IDC_STEPOUT 40501
-#define ID_HELP_BUYGOLD 40502
#define IDC_STATIC -1
diff --git a/ios/main.mm b/ios/main.mm
index 0407b8b..13aace6 100644
--- a/ios/main.mm
+++ b/ios/main.mm
@@ -379,16 +379,6 @@ bool System_GetPropertyBool(SystemProperty prop) {
case SYSPROP_KEYBOARD_IS_SOFT:
// If a hardware keyboard is connected, and we add support, we could return false here.
return true;
- case SYSPROP_APP_GOLD:
-#ifdef GOLD
- // This is deprecated.
- return true;
-#elif PPSSPP_PLATFORM(IOS_APP_STORE)
- // Check the IAP status.
- return [[IAPManager sharedIAPManager] isGoldUnlocked];
-#else
- return false;
-#endif
case SYSPROP_USE_IAP:
#if PPSSPP_PLATFORM(IOS_APP_STORE) && defined(USE_IAP)
return true;
@@ -701,4 +691,3 @@ int main(int argc, char *argv[]) {
return UIApplicationMain(argc, argv, NSStringFromClass([PPSSPPUIApplication class]), NSStringFromClass([AppDelegate class]));
}
}
-
--
2.52.0
@@ -0,0 +1,112 @@
diff --git a/Makefile.in b/Makefile.in
index 8f33aa2ff4..39928382da 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -4358,7 +4358,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \
monodll_msw_utils.o \
monodll_utilsexc.o \
monodll_fswatcher.o \
- monodll_msw_secretstore.o
+ monodll_msw_secretstore.o \
monodll_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS \
@@ -5284,7 +5284,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS = \
monodll_uuid.o \
monodll_msw_evtloop.o \
monodll_access.o \
- monodll_dark_mode.o
+ monodll_dark_mode.o \
monodll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS = \
@@ -6196,7 +6196,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_uuid.o \
monodll_msw_evtloop.o \
monodll_access.o \
- monodll_dark_mode.o
+ monodll_dark_mode.o \
monodll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_1 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_1)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_1 = \
@@ -6371,7 +6371,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
monolib_msw_utils.o \
monolib_utilsexc.o \
monolib_fswatcher.o \
- monolib_msw_secretstore.o
+ monolib_msw_secretstore.o \
monolib_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_1 \
@@ -7297,7 +7297,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_2 = \
monolib_uuid.o \
monolib_msw_evtloop.o \
monolib_access.o \
- monolib_dark_mode.o
+ monolib_dark_mode.o \
monolib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_2 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_2)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_2 = \
@@ -8209,7 +8209,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_uuid.o \
monolib_msw_evtloop.o \
monolib_access.o \
- monolib_dark_mode.o
+ monolib_dark_mode.o \
monolib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_3 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_3)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_3 = \
@@ -8436,7 +8436,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
basedll_msw_utils.o \
basedll_utilsexc.o \
basedll_fswatcher.o \
- basedll_msw_secretstore.o
+ basedll_msw_secretstore.o \
basedll_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_2 \
@@ -8523,7 +8523,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
baselib_msw_utils.o \
baselib_utilsexc.o \
baselib_fswatcher.o \
- baselib_msw_secretstore.o
+ baselib_msw_secretstore.o \
baselib_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_3 \
@@ -9464,7 +9464,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_4 = \
coredll_uuid.o \
coredll_msw_evtloop.o \
coredll_access.o \
- coredll_dark_mode.o
+ coredll_dark_mode.o \
coredll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_4 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_4)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_4 = \
@@ -10376,7 +10376,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_5 = \
coredll_uuid.o \
coredll_msw_evtloop.o \
coredll_access.o \
- coredll_dark_mode.o
+ coredll_dark_mode.o \
coredll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_5 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_5)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_5 = \
@@ -11204,7 +11204,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_6 = \
corelib_uuid.o \
corelib_msw_evtloop.o \
corelib_access.o \
- corelib_dark_mode.o
+ corelib_dark_mode.o \
corelib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_6 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_6)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_6 = \
@@ -12116,7 +12116,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_7 = \
corelib_uuid.o \
corelib_msw_evtloop.o \
corelib_access.o \
- corelib_dark_mode.o
+ corelib_dark_mode.o \
corelib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_7 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_7)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_7 = \
+202 -199
View File
@@ -128,125 +128,126 @@
"perl-reproducible-build-date.patch"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f
#:configure-flags
#~(let* ((libc.so (search-input-file %build-inputs "/lib/libc.so"))
(libc (dirname (dirname libc.so))))
(list (string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
"-Dusethreads"))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'setup-configure
(lambda* (#:key inputs #:allow-other-keys)
;; Use the right path for `pwd'.
(substitute* "dist/PathTools/Cwd.pm"
(("'/bin/pwd'")
(string-append "'" (search-input-file inputs "bin/pwd") "'")))
`(#:tests? #f
#:configure-flags
(let ((out (assoc-ref %outputs "out"))
(libc (assoc-ref %build-inputs "libc")))
(list
(string-append "-Dprefix=" out)
(string-append "-Dman1dir=" out "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3")
"-de" "-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
"-Dusethreads"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'setup-configure
(lambda* (#:key inputs #:allow-other-keys)
;; Use the right path for `pwd'.
(substitute* "dist/PathTools/Cwd.pm"
(("'/bin/pwd'")
(string-append "'" (search-input-file inputs "bin/pwd") "'")))
;; Build in GNU89 mode to tolerate C++-style comment in libc's
;; <bits/string3.h>.
(substitute* "cflags.SH"
(("-std=c89")
"-std=gnu89"))))
#$@(if (%current-target-system)
#~((add-after 'unpack 'unpack-cross
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((cross-checkout
(assoc-ref native-inputs "perl-cross")))
(rename-file "Artistic" "Artistic.perl")
(rename-file "Copying" "Copying.perl")
(copy-recursively cross-checkout "."))
(let ((bash (search-input-file inputs "bin/bash")))
(substitute* '("Makefile.config.SH"
"cnf/config.guess"
"cnf/config.sub"
"cnf/configure"
"cnf/configure_misc.sh"
"miniperl_top")
(("! */bin/sh")
(string-append "! " bash))
((" /bin/sh")
bash))
(substitute* '("ext/Errno/Errno_pm.PL")
(("\\$cpp < errno.c")
"$Config{cc} -E errno.c")))))
(replace 'configure
(lambda* (#:key configure-flags inputs #:allow-other-keys)
(let* ((store-directory (%store-directory))
(configure-flags
(cons*
;; `perl-cross' confuses target and host
(string-append "--target=" #$(%current-target-system))
(string-append "--prefix=" #$output)
(string-append "-Dcc=" #$(%current-target-system) "-gcc")
"-Dbyteorder=1234"
(remove (lambda (x) (or (string-prefix? "-d" x)
(string-prefix? "-Dcc=" x)))
configure-flags)))
(bash (assoc-ref inputs "bash-minimal")))
(format (current-error-port)
"running ./configure ~a\n"
(string-join configure-flags))
(apply invoke (cons "./configure" configure-flags))
(substitute* "config.sh"
(((string-append store-directory "/[^/]*-bash-[^/]*"))
bash))
(substitute* '("config.h")
(("^#define SH_PATH .*")
(string-append "#define SH_PATH \""
bash "/bin/bash\"\n"))))))
(add-after 'build 'touch-non-built-files-for-install
(lambda _
;; `make install' wants to install these although they do
;; not get built...
(with-directory-excursion "cpan"
(mkdir-p "Pod-Usage/blib/script")
(mkdir-p "Pod-Parser/blib/script")
(for-each (lambda (file)
(call-with-output-file file
(lambda (port) (display "" port))))
'("Pod-Usage/blib/script/pod2text"
"Pod-Usage/blib/script/pod2usage"
"Pod-Checker/blib/script/podchecker"
"Pod-Parser/blib/script/podselect"))))))
#~((replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(format #t "Perl configure flags: ~s~%" configure-flags)
(apply invoke "./Configure" configure-flags)))))
(add-after 'install 'remove-extra-references
(lambda* (#:key inputs #:allow-other-keys)
(let* ((lib-perl5 (string-append #$output "/lib/perl5"))
(libc.so (search-input-file
#$(if (%current-target-system)
#~%build-target-inputs
#~%build-inputs)
"/lib/libc.so"))
(libc (dirname (dirname libc.so)))
(config1 (find-files lib-perl5 "^Config_heavy\\.pl$"))
(config2 (find-files lib-perl5 "^Config\\.pm$")))
;; Force the library search path to contain only libc because
;; it is recorded in Config.pm and Config_heavy.pl; we don't
;; want to keep a reference to everything that's in
;; $LIBRARY_PATH at build time (GCC, Binutils, bzip2, file,
;; etc.)
(substitute* (car config1)
(("^incpth=.*$")
(string-append "incpth='" libc "/include'\n"))
(("^(libpth|plibpth|libspath)=.*$" _ variable)
(string-append variable "='" libc "/lib'\n")))
;; Build in GNU89 mode to tolerate C++-style comment in libc's
;; <bits/string3.h>.
(substitute* "cflags.SH"
(("-std=c89")
"-std=gnu89"))))
,@(if (%current-target-system)
`((add-after 'unpack 'unpack-cross
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((cross-checkout
(assoc-ref native-inputs "perl-cross")))
(rename-file "Artistic" "Artistic.perl")
(rename-file "Copying" "Copying.perl")
(copy-recursively cross-checkout "."))
(let ((bash (search-input-file inputs "bin/bash")))
(substitute* '("Makefile.config.SH"
"cnf/config.guess"
"cnf/config.sub"
"cnf/configure"
"cnf/configure_misc.sh"
"miniperl_top")
(("! */bin/sh") (string-append "! " bash))
((" /bin/sh") bash))
(substitute* '("ext/Errno/Errno_pm.PL")
(("\\$cpp < errno.c") "$Config{cc} -E errno.c")))))
(replace 'configure
(lambda* (#:key configure-flags outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(store-directory (%store-directory))
(configure-flags
(cons*
;; `perl-cross' confuses target and host
(string-append "--target=" ,(%current-target-system))
(string-append "--prefix=" out)
(string-append "-Dcc=" ,(%current-target-system) "-gcc")
"-Dbyteorder=1234"
(filter (negate
(lambda (x) (or (string-prefix? "-d" x)
(string-prefix? "-Dcc=" x))))
configure-flags)))
(bash (assoc-ref inputs "bash-minimal")))
(format (current-error-port)
"running ./configure ~a\n"
(string-join configure-flags))
(apply invoke (cons "./configure" configure-flags))
(substitute* "config.sh"
(((string-append store-directory "/[^/]*-bash-[^/]*"))
bash))
(substitute* '("config.h")
(("^#define SH_PATH .*")
(string-append "#define SH_PATH \""
bash "/bin/bash\"\n"))))))
(add-after 'build 'touch-non-built-files-for-install
(lambda _
;; `make install' wants to install these although they do
;; not get built...
(with-directory-excursion "cpan"
(mkdir-p "Pod-Usage/blib/script")
(mkdir-p "Pod-Parser/blib/script")
(for-each (lambda (file)
(call-with-output-file file
(lambda (port) (display "" port))))
'("Pod-Usage/blib/script/pod2text"
"Pod-Usage/blib/script/pod2usage"
"Pod-Checker/blib/script/podchecker"
"Pod-Parser/blib/script/podselect"))))))
`((replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(format #t "Perl configure flags: ~s~%" configure-flags)
(apply invoke "./Configure" configure-flags)))))
(add-after 'install 'remove-extra-references
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs
,(if (%current-target-system)
"cross-libc" "libc")))
(config1 (car (find-files (string-append out "/lib/perl5")
"^Config_heavy\\.pl$")))
(config2 (find-files (string-append out "/lib/perl5")
"^Config\\.pm$")))
;; Force the library search path to contain only libc because
;; it is recorded in Config.pm and Config_heavy.pl; we don't
;; want to keep a reference to everything that's in
;; $LIBRARY_PATH at build time (GCC, Binutils, bzip2, file,
;; etc.)
(substitute* config1
(("^incpth=.*$")
(string-append "incpth='" libc "/include'\n"))
(("^(libpth|plibpth|libspath)=.*$" _ variable)
(string-append variable "='" libc "/lib'\n")))
(substitute* config2
(("libpth => .*$")
(string-append "libpth => '" libc "/lib',\n")))))))))
(for-each (lambda (file)
(substitute* config2
(("libpth => .*$")
(string-append "libpth => '" libc
"/lib',\n"))))
config2)))))))
(inputs
(if (%current-target-system)
(list bash-minimal coreutils-minimal)
@@ -295,44 +296,46 @@ more.")
(properties `((release-date . "2013-03-10")))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
(substitute* "dist/Cwd/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
(substitute* "dist/Cwd/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
(invoke "./Configure"
(string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
(invoke "./Configure"
(string-append "-Dprefix=" out)
(string-append "-Dman1dir=" out "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3")
"-de" "-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib")))))
;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib")))))
(add-before 'strip 'make-shared-objects-writable
(lambda _
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them.
(for-each
(lambda (dso) (chmod dso #o755))
(find-files (string-append #$output "/lib") "\\.so$")))))))
(add-before 'strip 'make-shared-objects-writable
(lambda* (#:key outputs #:allow-other-keys)
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them.
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(for-each (lambda (dso)
(chmod dso #o755))
(find-files lib "\\.so$"))))))))
(native-inputs
(list gcc-7))
(native-search-paths (list (search-path-specification
@@ -363,55 +366,55 @@ more.")
(hidden? . #t))) ;only for GHC 4.
(build-system gnu-build-system)
(arguments
(list
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(let ((libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
(substitute* "lib/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(libc (assoc-ref inputs "libc")))
;; Use the right path for `pwd'.
(substitute* "lib/Cwd.pm"
(("/bin/pwd")
(which "pwd")))
(invoke "./Configure"
(string-append "-Dprefix=" #$output)
(string-append "-Dman1dir=" #$output "/share/man/man1")
(string-append "-Dman3dir=" #$output "/share/man/man3")
"-de" "-Dcc=gcc -std=c90"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
(invoke "./Configure"
(string-append "-Dprefix=" out)
(string-append "-Dman1dir=" out "/share/man/man1")
(string-append "-Dman3dir=" out "/share/man/man3")
"-de" "-Dcc=gcc -std=c90"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
(string-append "-Dloclibpth=" libc "/lib")
;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib")))))
(add-after 'configure 'bleh
(lambda _
(substitute* '("makefile" "x2p/makefile")
((".*\\<command-line>.*")
""))
;; Don't look for /usr/include/errno.h.
(substitute* "ext/Errno/Errno_pm.PL"
(("O eq 'linux'")
"O eq 'loonix'"))
(substitute* "ext/IPC/SysV/SysV.xs"
((".*asm/page.h.*")
""))))
(add-before 'strip 'make-shared-objects-writable
(lambda _
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them.
(for-each
(lambda (dso) (chmod dso #o755))
(find-files (string-append #$output "/lib") "\\.so$")))))))
;; Force the library search path to contain only libc
;; because it is recorded in Config.pm and
;; Config_heavy.pl; we don't want to keep a reference
;; to everything that's in $LIBRARY_PATH at build
;; time (Binutils, bzip2, file, etc.)
(string-append "-Dlibpth=" libc "/lib")
(string-append "-Dplibpth=" libc "/lib")))))
(add-after 'configure 'bleh
(lambda _
(substitute* '("makefile"
"x2p/makefile")
((".*\\<command-line>.*") ""))
;; Don't look for /usr/include/errno.h.
(substitute* "ext/Errno/Errno_pm.PL"
(("O eq 'linux'") "O eq 'loonix'"))
(substitute* "ext/IPC/SysV/SysV.xs"
((".*asm/page.h.*") ""))))
(add-before 'strip 'make-shared-objects-writable
(lambda* (#:key outputs #:allow-other-keys)
;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them
;; writable so that 'strip' actually strips them.
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(for-each (lambda (dso)
(chmod dso #o755))
(find-files lib "\\.so$"))))))))
(native-inputs '())))
(define-public perl-algorithm-c3
+2 -2
View File
@@ -236,7 +236,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.92.7")
(version "2.92.6")
(source
(origin
(method git-fetch)
@@ -245,7 +245,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "07z2i0bkqzdx0szwr4v98cb9r7a3ghy0vz5jn3xa7zh41yfr33nx"))
(base32 "1qiqdq3bv5wmrss6hnwa7nn3fr2rj5a8g8v53khzfljppalwl401"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
+2 -3
View File
@@ -33,7 +33,6 @@
;;; Copyright © 2024 jgart <jgart@dismail.de>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2025 Nguyễn Gia Phong <cnx@loang.net>
;;; Copyright © 2025 Adrien 'neox' Bourmault <neox@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -720,7 +719,7 @@ python-axolotl.")
(define-public python-omemo-dr
(package
(name "python-omemo-dr")
(version "1.2.0")
(version "1.0.1")
(source
(origin
(method git-fetch)
@@ -729,7 +728,7 @@ python-axolotl.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18snryk95wyiz5jh5wa5x58yych9d8l9hmnqq828gsb5ncxq3szk"))))
(base32 "1gx0znbfvs8jg9s754hha81l8wpghswkfsqx2jzpgv6gigf3sm8z"))))
(build-system pyproject-build-system)
(arguments (list #:test-backend #~'unittest))
(propagated-inputs
+5 -4
View File
@@ -3686,23 +3686,24 @@ SLURM jobs (meant for internal use by python-snakemake-executor-plugin-slurm).")
(define-public python-sparse
(package
(name "python-sparse")
(version "0.18.0")
(version "0.15.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sparse" version))
(sha256
(base32
"1x5zkgbsgmpr6nis0k2y5vrsg7l61ly2zishnijcgh0fxdhjdyap"))))
"0rp29gp82qwwkq210pzh2qmlqhi2007nb7p7nwqmrkgmjq6cwxjc"))))
(build-system pyproject-build-system)
(propagated-inputs
(list python-numba python-numpy python-scipy))
(native-inputs
(list python-dask
python-pytest
python-pytest-cov ; runs by default
python-pytest-cov
python-setuptools
python-setuptools-scm))
python-setuptools-scm
python-wheel))
(home-page "https://github.com/pydata/sparse/")
(synopsis "Library for multi-dimensional sparse arrays")
(description
+1 -26
View File
@@ -16172,7 +16172,7 @@ file (e.g. @file{PKG-INFO}).")
(build-system pyproject-build-system)
;; tests: 124 passed, 16 skipped
(native-inputs
(list git-minimal/pinned
(list git-minimal
patchelf
python-pytest
python-pytest-mock))
@@ -39547,31 +39547,6 @@ package updates.")
adherence to RFC 6570, but adds a few extensions.")
(license license:expat)))
(define-public python-uritools
(package
(name "python-uritools")
(version "6.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tkem/uritools/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "115a8xphnv0ykd4c0pjh5rd4zy92znpdv4nwbn7n2d6irznvk00v"))))
(build-system pyproject-build-system)
(native-inputs
(list python-pytest
python-setuptools))
(home-page "https://github.com/tkem/uritools/")
(synopsis "URI parsing, classification and composition")
(description
"This package provides RFC 3986 compliant functions for parsing,
classifying and composing URIs and URI references, largely replacing the
Python Standard Library's urllib.parse module.")
(license license:expat)))
(define-public python-urwid
(package
(name "python-urwid")
+19 -8
View File
@@ -4,7 +4,6 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -51,10 +50,22 @@
(list (readline-patch version seqno (base32 hash))
...))
(define %patch-series-8.3
(define %patch-series-8.2
(patch-series
"8.3"
(1 "1pl4midx7kc56bw4ansrdpdjpanv1vmp0p6jghrrgrnv0qqs1w11")))
"8.2"
(1 "1xxgfgr6hn3ads8m8xsrdi1kbx1f3s69k0danpd9x4haqhg7zydv")
(2 "0ly0siy6qy3l7hv12847adpfa34yq1w4qz9qkw6vrxv25j106rg0")
(3 "1c5cwvvkx9mfmpaapymq9cavmzh4fnagkjlchsqx4vml8sx8gx94")
(4 "1b15sndx9v5vj3x1f3h73099nlagknx4rbfpd5ldrbw2xgm2wmvr")
(5 "16ac25jz1a1mgkpfp1sydqf6qpsfh0s0dcmrnjpqbhg5va3s6av2")
(6 "18gmh6y3klh0vv28cyqz4is3rlb32pl7f1kf5r482kfjq3w5zd67")
(7 "1xmnpahs983n4w0gn3j0wr8nh1dpva33yj7fvfmhm46ph2wsa4ar")
(8 "0smjjzhwxi2ibpdisnk53lh1pzgka6rhlqyh3662xy69v34ysxx1")
(9 "05m1fwbs7mbs3pz3pg87gbbayandrrcgaqawzliqb6g1jbk8b61x")
(10 "0k3vyrjs2g6y2cfs03l2gp37fhxgqpiwvxb1c7z4q88cbb32x3km")
(11 "1msdahvz56l9m5m69a87zp2c7qrfv0dxwd09rj1697isgy83s0g0")
(12 "1lybzig73pqpcbw79im0kn6299lkcbnh24yigygn5jm2sj7dz2kc")
(13 "1a48lyrhvn6nbj5qhradfpbbs3md5maz7wb32yvaghvfgnak990y")))
(define %patch-series-7.0
(patch-series
@@ -68,16 +79,16 @@
(define-public readline
(package
(name "readline")
(version (string-append "8.3."
(number->string (length %patch-series-8.3))))
(version (string-append "8.2."
(number->string (length %patch-series-8.2))))
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/readline/readline-"
(version-major+minor version) ".tar.gz"))
(sha256
(base32
"1k31j1prf9zn86hccay2i49vlzks0cy1v3gfjpa8r0k78hh86lzy"))
(patches (append %patch-series-8.3
"0dbw02ai0z8x6d9s14pl0hnaa2g1kdxnv8qqra1fx13ay5qp3srz"))
(patches (append %patch-series-8.2
(search-patches "readline-link-ncurses.patch")))
(patch-flags '("-p0"))))
(build-system gnu-build-system)
+21 -27
View File
@@ -957,36 +957,33 @@ highlighting tool to ease code review from your terminal.")
(define-public difftastic
(package
(name "difftastic")
(version "0.68.0")
(version "0.63.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "difftastic" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "012h76wx5jv6czc9j4awfan7vhrc6g5fdgnxrjmzg5q27wn99hn6"))))
(base32
"0md332fch4b87akdvljzxp4m2k5yri7cpkz3n54jc762j7j9qmrz"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:cargo-test-flags
'(list "--"
"--skip=display::side_by_side::tests::test_display_hunks"
"--skip=display::style")
#:phases
#~(modify-phases %standard-phases
;; jemalloc needs unbundling for tikv-jemallocator-sys
(add-before 'build 'override-jemalloc
(lambda* (#:key inputs #:allow-other-keys)
(let ((jemalloc (assoc-ref inputs "jemalloc")))
;; This flag is needed when not using the bundled jemalloc.
;; https://github.com/tikv/jemallocator/issues/19
(setenv
"CARGO_FEATURE_UNPREFIXED_MALLOC_ON_SUPPORTED_PLATFORMS" "1")
(setenv "JEMALLOC_OVERRIDE"
(string-append jemalloc "/lib/libjemalloc.so"))))))))
`(#:install-source? #f
#:cargo-test-flags
`("--release" "--"
"--skip=display::side_by_side::tests::test_display_hunks"
"--skip=display::style::tests::split_string_cjk"
"--skip=display::style::tests::split_string_cjk2"
"--skip=display::style::tests::split_string_simple"
"--skip=display::style::tests::split_string_unicode"
"--skip=display::style::tests::test_combining_char"
"--skip=display::style::tests::test_split_and_apply"
,(string-append "--skip=display::style::tests::"
"test_split_and_apply_gap_between_styles_on_wrap_boundary")
"--skip=display::style::tests::test_split_and_apply_trailing_text"
"--skip=display::style::tests::test_split_and_apply_trailing_text_newline")))
(inputs
(cons jemalloc (cargo-inputs 'difftastic)))
(cons mimalloc (cargo-inputs 'difftastic)))
(home-page "https://difftastic.wilfred.me.uk/")
(synopsis "Structural diff command that understands syntax")
(description
@@ -3092,14 +3089,11 @@ support, watch support (like @command{top}) and a tree view.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
(bindgen (string-append bin "/bindgen"))
(clang (assoc-ref inputs "clang"))
(llvm-dir (string-append clang "/lib"))
(clang-bin (string-append clang "/bin")))
(llvm-dir (string-append
(assoc-ref inputs "clang") "/lib")))
(install-file "target/release/bindgen" bin)
(wrap-program bindgen
`("LIBCLANG_PATH" = (,llvm-dir))
;; The bindgen binary requires clang, add one as a fallback.
`("PATH" suffix (,clang-bin))))))
`("LIBCLANG_PATH" = (,llvm-dir))))))
(add-after 'install 'install-completions
(lambda* (#:key native-inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
+120 -448
View File
@@ -752,10 +752,6 @@
(crate-source "arbitrary" "1.4.2"
"1wcbi4x7i3lzcrkjda4810nqv03lpmvfhb0a85xrq1mbqjikdl63"))
(define rust-arbitrary-int-1.2.7
(crate-source "arbitrary-int" "1.2.7"
"0vgl3n5zzpdn2hxpz6gqk8zg2psk5gwyjzsgpngzd9iqwc1w0ky8"))
(define rust-arboard-3.5.0
(crate-source "arboard" "3.5.0"
"0w1yqcx51153hy5w3y0702xjc9nmlhncw9f5l0rdwbl62pvj3py1"))
@@ -1480,10 +1476,6 @@
(crate-source "attribute-derive-macro" "0.10.3"
"06zph2lyllkp6g1lsv7v4p84dnglbw2gw58r9fpn1d6m1ynm6fs6"))
(define rust-attrs-0.2.9
(crate-source "attrs" "0.2.9"
"0pvy6b7arfr2f6awwkw6k1hc8sxidjxhj1fyyf2m5rixyi07s81a"))
(define rust-atty-0.2.11
(crate-source "atty" "0.2.11"
"0lln6vaczj521qqjbaqnb81w5p6xk4fjfkg33r0m22cm4f3mnzcs"))
@@ -2182,14 +2174,6 @@
(crate-source "bigdecimal" "0.4.10"
"159nc0bs6bbzxrpfxbnn83ccyzq8bc2ia40zd22ssfjvavqnfs2d"))
(define rust-bilge-0.2.0
(crate-source "bilge" "0.2.0"
"0mvvwq9caiq701bmmwyd4q4pc8c69i5zaj3zdk6ya7gqxgc7ww6w"))
(define rust-bilge-impl-0.2.0
(crate-source "bilge-impl" "0.2.0"
"1n5jml0c1z0np76ms0h5rxx19krblz46h84wycx29b9q4001xcgy"))
(define rust-binascii-0.1.4
(crate-source "binascii" "0.1.4"
"0wnaglgl72pn5ilv61q6y34w76gbg7crb8ifqk6lsxnq2gajjg9q"))
@@ -2806,8 +2790,7 @@
(define rust-burn-store-0.20.1
(crate-source "burn-store" "0.20.1"
"0v8snhnhcrqwi7g6dzkrb1bmqv12gsvyk8nhq4fr06aa11xhms2b"
#:snippet '(delete-file-recursively "src/pytorch/tests")))
"0v8snhnhcrqwi7g6dzkrb1bmqv12gsvyk8nhq4fr06aa11xhms2b"))
(define rust-burn-tensor-0.20.1
(crate-source "burn-tensor" "0.20.1"
@@ -3710,10 +3693,6 @@
(crate-source "cc" "1.2.57"
"08q464b62d03zm7rgiixavkrh5lzfq18lwf884vgycj9735d23bs"))
(define rust-cc-1.2.58
(crate-source "cc" "1.2.58"
"1qb0zyqhn8pqzdp7d3scm19zmvgvbyh3iabmj1q7fc4ynva2isg1"))
(define rust-cc-traits-2.0.0
(crate-source "cc-traits" "2.0.0"
"1db2m7drl9w3yda4ybxvhykz45krqrlapcg16wkm4jpg67ph60q6"))
@@ -4451,8 +4430,7 @@
(define rust-claxon-0.4.3
(crate-source "claxon" "0.4.3"
"1206mxvw833ysg10029apcsjjwly8zmsvksgza5cm7ma4ikzbysb"
#:snippet '(delete-file-recursively "testsamples")))
"1206mxvw833ysg10029apcsjjwly8zmsvksgza5cm7ma4ikzbysb"))
(define rust-clearscreen-2.0.1
(crate-source "clearscreen" "2.0.1"
@@ -6349,8 +6327,7 @@
(define rust-dash-mpd-0.19.3
(crate-source "dash-mpd" "0.19.3"
"1qigvq43j93p4mdj41kf0d6a485x7raksn41962da1z1si2r3y8n"
#:snippet '(delete-file-recursively "tests")))
"1qigvq43j93p4mdj41kf0d6a485x7raksn41962da1z1si2r3y8n"))
(define rust-dashmap-4.0.2
(crate-source "dashmap" "4.0.2"
@@ -6496,9 +6473,7 @@
(define rust-dav1d-0.11.1
(crate-source "dav1d" "0.11.1"
"0q9bm3igd4bdxfh39xlrqxbhp46vminddp10fp36jq31c2w9rs1y"
#:snippet '(for-each delete-file
'("test-420-12.ivf" "test-420-8.ivf"))))
"0q9bm3igd4bdxfh39xlrqxbhp46vminddp10fp36jq31c2w9rs1y"))
(define rust-dav1d-sys-0.8.3
(crate-source "dav1d-sys" "0.8.3"
@@ -6595,8 +6570,7 @@
(define rust-deepgram-0.7.0
(crate-source "deepgram" "0.7.0"
"1l8zgsvdi5wmdl3mlyzdxnwzsdj5ys18y6f49z4yghcgvk213gs9"
#:snippet '(delete-file-recursively "examples")))
"1l8zgsvdi5wmdl3mlyzdxnwzsdj5ys18y6f49z4yghcgvk213gs9"))
(define rust-defer-drop-1.3.0
(crate-source "defer-drop" "1.3.0"
@@ -7425,10 +7399,6 @@
(crate-source "ego-tree" "0.10.0"
"1n2csy99chk5v5vzjl0ff79vxpxhl76xmcb3aj6brrzzipmjz5xj"))
(define rust-either-1.12.0
(crate-source "either" "1.12.0"
"12xmhlrv5gfsraimh6xaxcmb0qh6cc7w7ap4sw40ky9wfm095jix"))
(define rust-either-1.13.0
(crate-source "either" "1.13.0"
"1w2c1mybrd7vljyxk77y9f4w9dyjrmp3yp82mk7bcm8848fazcb0"))
@@ -8660,10 +8630,6 @@
"0aqxjgghmn8javsc5jcvx8lqpcrzajndl7v6q1j47zz87xmy2mrf"
#:snippet '(delete-file-recursively "images")))
(define rust-foreign-0.3.1
(crate-source "foreign" "0.3.1"
"0ijqb18gllqr0319brxsrjdb036cgaf81wc6ygd21ly9x1dipjhp"))
(define rust-foreign-types-0.3.2
(crate-source "foreign-types" "0.3.2"
"1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn"))
@@ -12877,10 +12843,6 @@
(crate-source "hashbrown" "0.14.0"
"0yj3nf0w30pf30w503kgaw4sbjnh62l5cbmc7dd0mnczzywh2qic"))
(define rust-hashbrown-0.14.1
(crate-source "hashbrown" "0.14.1"
"04hdcir5sqgw9318c3sjnhf3jid1mq5ipy0ma2pawpgm28madzbx"))
(define rust-hashbrown-0.14.5
(crate-source "hashbrown" "0.14.5"
"1wa1vy1xs3mp11bn3z9dv0jricgr6a2j0zkf1g19yz3vw4il89z5"))
@@ -13194,8 +13156,7 @@
(define rust-hound-3.5.1
(crate-source "hound" "3.5.1"
"0kw5yybfc7hdwxwm6d3m3h4ms52fkw0n0zch35drb52ci2xsmbb2"
#:snippet '(delete-file-recursively "testsamples")))
"0kw5yybfc7hdwxwm6d3m3h4ms52fkw0n0zch35drb52ci2xsmbb2"))
(define rust-hrtf-0.8.1
(crate-source "hrtf" "0.8.1"
@@ -13534,7 +13495,6 @@
"1iy8rhsap5iyigj6s86nk449zl5bahjycy2mswy6nlllp7imqv4q"))
(define rust-hyphenation-0.8.4
;; TODO: Rebuild dictionaries.
(crate-source "hyphenation" "0.8.4"
"1w2hib167vpz7jbg3zs92ifihj4akirlhb5509aib1df8i6dvx5w"))
@@ -14102,10 +14062,6 @@
(crate-source "indexmap" "2.0.1"
"0kmi1dhkmnv937mbkzlqq9kmkdr8k5030vfk19bi8jcxy4x7q8md"))
(define rust-indexmap-2.2.6
(crate-source "indexmap" "2.2.6"
"09hgwi2ig0wyj5rjziia76zmhgfj95k0jb4ic3iiawm4vlavg3qn"))
(define rust-indexmap-2.10.0
(crate-source "indexmap" "2.10.0"
"0qd6g26gxzl6dbf132w48fa8rr95glly3jhbk90i29726d9xhk7y"))
@@ -15173,8 +15129,7 @@
(define rust-jsonwebtoken-10.3.0
(crate-source "jsonwebtoken" "10.3.0"
"1q8w7j0f8iycr97rqk05ys3lr67q9mw9i20h1fk2k1r3pq542a85"
#:snippet '(delete-file-recursively "tests")))
"1q8w7j0f8iycr97rqk05ys3lr67q9mw9i20h1fk2k1r3pq542a85"))
(define rust-jsonwebtoken-9.3.1
(crate-source "jsonwebtoken" "9.3.1"
@@ -15685,14 +15640,6 @@
(crate-source "libc" "0.2.155"
"0z44c53z54znna8n322k5iwg80arxxpdzjj5260pxxzc9a58icwp"))
(define rust-libc-0.2.162
(crate-source "libc" "0.2.162"
"1633a00yyx45kzx9r54fndvr8njsjqyr7zl12mzgsmgyczg8glhq"))
(define rust-libc-0.2.168
(crate-source "libc" "0.2.168"
"0vab4inpw0dz78nii02hsxp1skqn06xzh64psw8wl1h63scb5bjs"))
(define rust-libc-0.2.169
(crate-source "libc" "0.2.169"
"02m253hs8gw0m1n8iyrsc4n15yzbqwhddi7w1l0ds7i92kdsiaxm"))
@@ -16433,37 +16380,11 @@
(define rust-libwebp-sys2-0.1.11
(crate-source "libwebp-sys2" "0.1.11"
"16dvhpx3s3y9nsqk8s48bsxs08z6r148j70l1b63x15625j1i427"
#:snippet
'(begin
(delete-file-recursively "tests")
;; Remove bundled C sources.
(delete-file-recursively "c_src")
;; Remove the original build.rs which builds bundled code.
(delete-file "build.rs")
;; Replace it with a simple linker hint to use system libwebp.
(with-output-to-file "build.rs"
(lambda _
(format #t "fn main() {~@
println!(\"cargo:rustc-link-lib=webp\");~@
}~%"))))))
"16dvhpx3s3y9nsqk8s48bsxs08z6r148j70l1b63x15625j1i427"))
(define rust-libwebp-sys2-0.2.0
(crate-source "libwebp-sys2" "0.2.0"
"0195g4cxd61z5841kz7j87xy0daihg0kn07k6m7vzmm1x85d1hvd"
#:snippet
'(begin
(delete-file-recursively "tests")
;; Remove bundled C sources.
(delete-file-recursively "c_src")
;; Remove the original build.rs which builds bundled code.
(delete-file "build.rs")
;; Replace it with a simple linker hint to use system libwebp.
(with-output-to-file "build.rs"
(lambda _
(format #t "fn main() {~@
println!(\"cargo:rustc-link-lib=webp\");~@
}~%"))))))
"0195g4cxd61z5841kz7j87xy0daihg0kn07k6m7vzmm1x85d1hvd"))
(define rust-libz-ng-sys-1.1.22
;; TODO: Find a way to unbundle libz-ng.
@@ -17500,8 +17421,7 @@
(define rust-metal-0.32.0
(crate-source "metal" "0.32.0"
"01g6a10l2p576ibybz0v9hignw7qj0r6d513qbf2vxrzcxpmmh80"
#:snippet '(delete-file-recursively "examples")))
"01g6a10l2p576ibybz0v9hignw7qj0r6d513qbf2vxrzcxpmmh80"))
(define rust-metrics-0.23.1
(crate-source "metrics" "0.23.1"
@@ -17644,10 +17564,6 @@
(crate-source "mio" "1.1.1"
"1z2phpalqbdgihrcjp8y09l3kgq6309jnhnr6h11l9s7mnqcm6x6"))
(define rust-mio-1.2.0
(crate-source "mio" "1.2.0"
"1hanrh4fwsfkdqdaqfidz48zz1wdix23zwn3r2x78am0garfbdsh"))
(define rust-mio-extras-2.0.6
(crate-source "mio-extras" "2.0.6"
"069gfhlv0wlwfx1k2sriwfws490kjp490rv2qivyfb01j3i3yh2j"))
@@ -17743,8 +17659,7 @@
(define rust-mp4-atom-0.10.1
(crate-source "mp4-atom" "0.10.1"
"1xqghqk90g0gf37azjfgigk2n850lvrnm4vdxfknxlmv8j9993jy"
#:snippet '(delete-file-recursively "src/test")))
"1xqghqk90g0gf37azjfgigk2n850lvrnm4vdxfknxlmv8j9993jy"))
(define rust-mp4parse-0.17.0
(crate-source "mp4parse" "0.17.0"
@@ -18430,7 +18345,6 @@
"1lzmcqcnb9z8l4aq5ympx71bcwc0y5yf7d8jv6hnn7hc682hfvax"))
(define rust-nnnoiseless-0.5.2
;; TODO: Rebuild src/weights.rnn.
(crate-source "nnnoiseless" "0.5.2"
"036sz2qjjsfp3gldzw9mig8nck88fnp7vvfwgxm01877s5j5jpc0"))
@@ -19399,10 +19313,6 @@
(crate-source "omnipath" "0.1.6"
"0xd5a4xwsfmhzk59v6wz65f59rk16d7gvkg90w1qhb0jg08b7bc0"))
(define rust-once-cell-1.8.0
(crate-source "once_cell" "1.8.0"
"0mkbbxg6416z11r2yzsq91cqrkj9w1iyx5hakq15h5sbnriwnbv9"))
(define rust-once-cell-1.18.0
(crate-source "once_cell" "1.18.0"
"0vapcd5ambwck95wyz3ymlim35jirgnqn9a0qmi19msymv95v2yx"))
@@ -20250,18 +20160,14 @@
(crate-source "password-hash" "0.5.0"
"0ri1mim11zk0a9s40zdi288dfqvmdiryc7lw8vl46b59ifa08vrl"))
(define rust-paste-1.0.14
(crate-source "paste" "1.0.14"
"0k7d54zz8zrz0623l3xhvws61z5q2wd3hkwim6gylk8212placfy"))
(define rust-paste-0.1.18
(crate-source "paste" "0.1.18"
"10587zrlmzhq66yhd0z36fzglf32m1nlhi9bxxm6dgl0gp3j1jj5"))
(define rust-paste-1.0.15
(crate-source "paste" "1.0.15"
"02pxffpdqkapy292harq6asfjvadgp1s005fip9ljfsn9fvxgh2p"))
(define rust-paste-0.1.18
(crate-source "paste" "0.1.18"
"10587zrlmzhq66yhd0z36fzglf32m1nlhi9bxxm6dgl0gp3j1jj5"))
(define rust-paste-impl-0.1.18
(crate-source "paste-impl" "0.1.18"
"1dlqzk05cx74522s4iyhyzzhszig4n401pp6r1qg6zmr02r7snnr"))
@@ -20347,7 +20253,6 @@
"191z4xjsdzn8k821071z4m8zl0jnd2r7j8ki2wpzdkdjha2g5mvn"))
(define rust-pbjson-0.6.0
;; TODO: Rebuild descriptors.bin.
(crate-source "pbjson" "0.6.0"
"143vazvr2dc3jx7nyxmz6313rkqszxn9swnzlljjsapcn0cwfc0h"))
@@ -22073,8 +21978,7 @@
(define rust-pyo3-0.28.2
(crate-source "pyo3" "0.28.2"
"1qgqaizb5gp4rvjv6hhman4sacz1cahmibiflbasy2h8hrzf51fg"
#:snippet '(delete-file-recursively "branding")))
"1qgqaizb5gp4rvjv6hhman4sacz1cahmibiflbasy2h8hrzf51fg"))
(define rust-pyo3-async-runtimes-0.24.0
(crate-source "pyo3-async-runtimes" "0.24.0"
@@ -22584,10 +22488,6 @@
(crate-source "quote" "1.0.33"
"1biw54hbbr12wdwjac55z1m2x2rylciw83qnjn564a3096jgqrsj"))
(define rust-quote-1.0.35
(crate-source "quote" "1.0.35"
"1vv8r2ncaz4pqdr78x7f138ka595sp2ncr1sa2plm4zxbsmwj7i9"))
(define rust-quote-1.0.36
(crate-source "quote" "1.0.36"
"19xcmh445bg6simirnnd4fvkmp6v2qiwxh5f6rw4a70h76pnm9qg"))
@@ -23502,10 +23402,6 @@
(crate-source "relative-path" "2.0.1"
"1c4jm6x0p88722c77xx53mb7zcs4xznp9d3whdsbmn1248qhm95w"))
(define rust-remain-0.2.12
(crate-source "remain" "0.2.12"
"157pzbzkwrj1m111ns3mmr3yla4qnrd0qiij0m6jgb8c4c8y1m8s"))
(define rust-remoteprocess-0.5.0
(crate-source "remoteprocess" "0.5.0"
"087z016qvypalbqjgdxmri97vsrqg4k1kpmc8b5d5hdgqxq4f6g6"))
@@ -23902,8 +23798,7 @@
(define rust-rqrr-0.10.1
(crate-source "rqrr" "0.10.1"
"0cb61i3jqvc92pn277p0zp10h2z0a20l3lny4ln6b5fvx3cqggpz"
#:snippet '(delete-file-recursively "src/test_data")))
"0cb61i3jqvc92pn277p0zp10h2z0a20l3lny4ln6b5fvx3cqggpz"))
(define rust-rsa-0.9.0-pre.0
(crate-source "rsa" "0.9.0-pre.0"
@@ -26228,9 +26123,7 @@
(define rust-signalsmith-stretch-0.1.3
(crate-source "signalsmith-stretch" "0.1.3"
"1zbny48q6cw1h1kq41yfyvn3mgmsd3cc82f3cl7m2cjm1gqydnji"
#:snippet '(delete-file-recursively
"signalsmith-stretch/web/demo")))
"1zbny48q6cw1h1kq41yfyvn3mgmsd3cc82f3cl7m2cjm1gqydnji"))
(define rust-signature-1.6.4
(crate-source "signature" "1.6.4"
@@ -26389,8 +26282,7 @@
(define rust-skia-safe-0.93.1
(crate-source "skia-safe" "0.93.1"
"0h7r55c79gnqf4qhqnr8n0fv49kjvgy0p64gxvpwjcfmm5z877kz"
#:snippet '(delete-file-recursively "tests")))
"0h7r55c79gnqf4qhqnr8n0fv49kjvgy0p64gxvpwjcfmm5z877kz"))
(define rust-skrifa-0.37.0
(crate-source "skrifa" "0.37.0"
@@ -28256,10 +28148,6 @@
(crate-source "thiserror" "1.0.69"
"0lizjay08agcr5hs9yfzzj6axs53a2rgx070a1dsi3jpkcrzbamn"))
(define rust-thiserror-2.0.11
(crate-source "thiserror" "2.0.11"
"1z0649rpa8c2smzx129bz4qvxmdihj30r2km6vfpcv9yny2g4lnl"))
(define rust-thiserror-2.0.18
(crate-source "thiserror" "2.0.18"
"1i7vcmw9900bvsmay7mww04ahahab7wmr8s925xc083rpjybb222"))
@@ -28308,10 +28196,6 @@
(crate-source "thiserror-impl" "2.0.6"
"04k3dz901mymm06j3x6f65hpbsqlk6g51fmiky9g2kqgnk550myn"))
(define rust-thiserror-impl-2.0.11
(crate-source "thiserror-impl" "2.0.11"
"1hkkn7p2y4cxbffcrprybkj0qy1rl1r6waxmxqvr764axaxc3br6"))
(define rust-thiserror-impl-2.0.12
(crate-source "thiserror-impl" "2.0.12"
"07bsn7shydaidvyyrm7jz29vp78vrxr9cr9044rfmn078lmz8z3z"))
@@ -29475,14 +29359,6 @@
(crate-source "tree-sitter" "0.26.6"
"0j2877prcc79kcmmw97dpssizv03hnd6i91b6h3yygwc2395dx0k"))
(define rust-tree-sitter-0.26.7
(crate-source "tree-sitter" "0.26.7"
"18mph7xrpy7lpsc5l2kvwdk19rmlgskzxfmn6zghj0gc38mmk9p7"))
(define rust-tree-sitter-ada-0.1.0
(crate-source "tree-sitter-ada" "0.1.0"
"188wnq7kla0x1d1kkb15wdndgmm5dhynsbypk768zjar8gbcv7wd"))
(define rust-tree-sitter-bash-0.23.3
(crate-source "tree-sitter-bash" "0.23.3"
"0bm5chcqq5fvfb505h87d6ab5ny9l60lxy0x5ga3ghrsc944v6ij"))
@@ -29511,14 +29387,6 @@
(crate-source "tree-sitter-clojure" "0.1.0"
"131khpl74pkr0i9l912r0sld0lz9nh11ygpsg0frli09qm68h120"))
(define rust-tree-sitter-clojure-orchard-0.2.5
(crate-source "tree-sitter-clojure-orchard" "0.2.5"
"0kbq1riaffgajj32a1l0qf9fjsfwbcr3csb5j2bn88mbl4ldpqn3"))
(define rust-tree-sitter-cmake-0.7.1
(crate-source "tree-sitter-cmake" "0.7.1"
"16jh11mbnknjx7aqkf95j5zfq5drfpwv0sw27r5x55kkvp8ka6vw"))
(define rust-tree-sitter-cpp-0.23.4
(crate-source "tree-sitter-cpp" "0.23.4"
"0hs7p45av437iw8rzsyw46qs06axbam7wadr655apd27kpm9c8fz"))
@@ -29535,18 +29403,6 @@
(crate-source "tree-sitter-dart" "0.0.4"
"12p3yhv81fxsmd55nlw7jpl9sbmsnmkyzz5a2hz38hffh05zgw8r"))
(define rust-tree-sitter-dart-orchard-0.2.1
(crate-source "tree-sitter-dart-orchard" "0.2.1"
"1bg9j81b8lgr3m3h3fj2v4y4ai29bcpw1a9a2mxv1skbndi00v90"))
(define rust-tree-sitter-devicetree-0.14.1
(crate-source "tree-sitter-devicetree" "0.14.1"
"0sylmv12namxx3agd99154bfs5vf2r9723vmz6x2q9fqb55qgrmi"))
(define rust-tree-sitter-elisp-1.6.1
(crate-source "tree-sitter-elisp" "1.6.1"
"02fs4kpa8lwfs73rmh95xzvk76wvaj2zkhfd87529gyfndm9lbjy"))
(define rust-tree-sitter-elixir-0.3.4
(crate-source "tree-sitter-elixir" "0.3.4"
"0grdkbx6bqw3s1w3mkk94sibmhgdicdlqirjzpc57zdl8x348pg4"))
@@ -29555,30 +29411,10 @@
(crate-source "tree-sitter-elixir" "0.3.5"
"0h5shirf9ds1cc7xw4l1p1f1xfq3fk5s6zw557y5pn9ffr50dpb6"))
(define rust-tree-sitter-elm-5.9.0
(crate-source "tree-sitter-elm" "5.9.0"
"170yp6hidmbydli77zb9957n5j5s0ckh0iw0cg3kykf7pxch5113"))
(define rust-tree-sitter-erlang-0.13.0
(crate-source "tree-sitter-erlang" "0.13.0"
"1bz1icmrd2q7x6ff3yp76ybh0gm02i0sdqf2xjr7ajdh8jj6b4pb"))
(define rust-tree-sitter-erlang-0.15.0
(crate-source "tree-sitter-erlang" "0.15.0"
"1gm6cwj11h1sx7hxv4anlak4ax31qs56134jfwyw06fs9v71q2gj"))
(define rust-tree-sitter-fortran-0.5.1
(crate-source "tree-sitter-fortran" "0.5.1"
"0h2v24frvx9kaaksyxcl8g5vy3ak6192xasxibzs5hrc98vsnn6f"))
(define rust-tree-sitter-fsharp-0.1.0
(crate-source "tree-sitter-fsharp" "0.1.0"
"0h8bc9pxl1ji19w21akan28dd6pvggbc7qpb7z23ggs814551nzj"))
(define rust-tree-sitter-gleam-1.0.0
(crate-source "tree-sitter-gleam" "1.0.0"
"1crgpxhzrqlicwfm4zzvdbb1hga64pfmmpb08d25vnivg59mq5zh"))
(define rust-tree-sitter-go-0.23.4
(crate-source "tree-sitter-go" "0.23.4"
"0cc4w4p12inxpsn2hgpmbvw1nyf5cm0l9pa705hbw3928milfgdi"))
@@ -29591,10 +29427,6 @@
(crate-source "tree-sitter-haskell" "0.23.1"
"19057d99kaq7bn8k86baf7v4q4mjv8p5mjr7zh9vm32l0kjm2z4p"))
(define rust-tree-sitter-hcl-1.1.0
(crate-source "tree-sitter-hcl" "1.1.0"
"04phkjfwvlcz1zjrmvry80hd9wrz3g8vkyh98fw5658jsz1jqyss"))
(define rust-tree-sitter-highlight-0.24.7
(crate-source "tree-sitter-highlight" "0.24.7"
"15axx9avb1cb3mjyhkf5h36n2lsxwqy0z2xrj79qgg4y98z824b4"))
@@ -29647,10 +29479,6 @@
(crate-source "tree-sitter-lua" "0.4.1"
"1bq30iva40mv92d5w189dhlnqnflqiwf36i3y4g3fgyqci0jz6ga"))
(define rust-tree-sitter-lua-0.5.0
(crate-source "tree-sitter-lua" "0.5.0"
"035169zpbbnxmlsck6d26q6r4jsxzban15y30f3ab22i4gsgbald"))
(define rust-tree-sitter-make-1.1.1
(crate-source "tree-sitter-make" "1.1.1"
"0101h5ilrv2aqjffdlnq2d2m9mpj5fcfzvwamsgv3nnbrg3qv6f5"))
@@ -29663,18 +29491,10 @@
(crate-source "tree-sitter-md" "0.5.3"
"10m8mwhd25bq0xc4l6si85rafs8pyp05dvlq8n0nqia6wn5kkz9f"))
(define rust-tree-sitter-newick-1.1.0
(crate-source "tree-sitter-newick" "1.1.0"
"1qgl2gh15h5wv6jiab034vflscvlyp8sica2cbhq9piarxdpii88"))
(define rust-tree-sitter-nix-0.0.2
(crate-source "tree-sitter-nix" "0.0.2"
"0160v6rqal8lsw9slx7x52ccq7cc5lfk6xd088rdcxyk0n3lz39s"))
(define rust-tree-sitter-nix-0.3.0
(crate-source "tree-sitter-nix" "0.3.0"
"1qrdv5d7d1ldaicfvvl4gqpsbdsav0si1k8c79lgd61s7xrsjlj9"))
(define rust-tree-sitter-objc-3.0.2
(crate-source "tree-sitter-objc" "3.0.2"
"1lp1570h6lwhknzq3nn9sf26cfkqbx99vrrm0mpigz13ciavpa4w"))
@@ -29683,14 +29503,6 @@
(crate-source "tree-sitter-ocaml" "0.23.2"
"0xz3dkvb40b5anir8ld7547w2kibbms75y7i1kfhcn8p7ni09hck"))
(define rust-tree-sitter-pascal-0.10.2
(crate-source "tree-sitter-pascal" "0.10.2"
"1a3j9frx64azgr12m9v1j8s56x3zkxs6cxaiwhvx4gs9ayd1xddd"))
(define rust-tree-sitter-perl-1.1.2
(crate-source "tree-sitter-perl" "1.1.2"
"0bd99p2sxa3fj6mm7g0f82yn50fyba85jjrm9k19bra23gklm7g7"))
(define rust-tree-sitter-php-0.23.11
(crate-source "tree-sitter-php" "0.23.11"
"030kiknyk2lw54yj7mzj92kfr5v0qr81qymhvkqy9kvjj97fjrph"))
@@ -29699,10 +29511,6 @@
(crate-source "tree-sitter-php" "0.24.2"
"14jmvysx66irxjgpgvlp3dfw46yxfbcmrzx7x9g2q1b9mg1ig30d"))
(define rust-tree-sitter-proto-0.2.0
(crate-source "tree-sitter-proto" "0.2.0"
"091rkm2psxy5gbx8db2r87pryqc836gg4zhkjz1hz65m6js60hwf"))
(define rust-tree-sitter-python-0.23.6
(crate-source "tree-sitter-python" "0.23.6"
"012bgzycya91lpdbrrr8xnw9xjz116nf1w61c2pwxapk4ym5l1ix"))
@@ -29711,18 +29519,6 @@
(crate-source "tree-sitter-python" "0.25.0"
"072anxf7f3wn2jzpa1c8fnnskhwjjkd4qvzlc2zl1rsjjv9mzy3b"))
(define rust-tree-sitter-qmljs-0.3.0
(crate-source "tree-sitter-qmljs" "0.3.0"
"0qlvkmzmwpxv7pbd3d1irj34adrls9yjx3k25ypssznd6ylmwi37"))
(define rust-tree-sitter-r-1.2.0
(crate-source "tree-sitter-r" "1.2.0"
"0mbja7yin41q453ssp2qz1sjiln3nsmydapk7vh4d2lzvb5k74a2"))
(define rust-tree-sitter-racket-0.24.7
(crate-source "tree-sitter-racket" "0.24.7"
"0a7ib1n36g5zplw9dinpnxsnby6477r1by8ygv368qjf0mm5nfgq"))
(define rust-tree-sitter-ruby-0.23.1
(crate-source "tree-sitter-ruby" "0.23.1"
"15cz4h1sfgf838r2pmf7vg9ahh0kwgkvvnjgbdbrrfzn9vm8815y"))
@@ -29735,10 +29531,6 @@
(crate-source "tree-sitter-rust" "0.24.0"
"1q8vqslcnp2pvyg06733ddag4i4w3jlv5s1bf8h28jk89h1ii6sb"))
(define rust-tree-sitter-rust-orchard-0.16.3
(crate-source "tree-sitter-rust-orchard" "0.16.3"
"1183bzjbryz8ch8i6wm399363b6ha6zzm378k9rj7dwgpxmwsny9"))
(define rust-tree-sitter-scala-0.23.4
(crate-source "tree-sitter-scala" "0.23.4"
"0bsxq5ihmi4qp1g3cfrnmgznp8h4y739d8mz2yn9wvkknil5xppg"))
@@ -29747,22 +29539,6 @@
(crate-source "tree-sitter-scala" "0.24.0"
"0ldjl3cq5rvm1d6c61nx2i2l7cwkd7l67ca5627dw3pls6rsw5km"))
(define rust-tree-sitter-scheme-0.24.7
(crate-source "tree-sitter-scheme" "0.24.7"
"0caiaxsl7kpcf70dksfk0x9q962n30rifpbh4rgi8f6zdcapyzla"))
(define rust-tree-sitter-sequel-0.3.11
(crate-source "tree-sitter-sequel" "0.3.11"
"05vxxkfgny0r1jjg3bpzjv5sydxqjv3ixyhyq91jxh0rqg9ql6cx"))
(define rust-tree-sitter-sfapex-2.4.0
(crate-source "tree-sitter-sfapex" "2.4.0"
"0jq2xbjz89iabkn1nqyp5i88mchq5aqgkv32h58w5krvrdx675vv"))
(define rust-tree-sitter-solidity-1.2.13
(crate-source "tree-sitter-solidity" "1.2.13"
"098bm6lfws7i7rn4wiz1v598gdnh78ihpikhnq69z1vhbf3zib2f"))
(define rust-tree-sitter-svelte-ng-1.0.2
(crate-source "tree-sitter-svelte-ng" "1.0.2"
"0dzsclhsy24d4r4a541kbnr9p8n860v8jr3cr0y3g52yrzwp22pg"))
@@ -29783,10 +29559,6 @@
(crate-source "tree-sitter-typescript" "0.23.2"
"1zsyaxx3v1sd8gx2zkscwv6z1sq2nvccqpvd8k67ayllipnpcpvc"))
(define rust-tree-sitter-verilog-1.0.3
(crate-source "tree-sitter-verilog" "1.0.3"
"0rlwlsg4dv303pgqhc87h78mfrfwf8nbidzmdwgjz1cm0cvf1ryl"))
(define rust-tree-sitter-xml-0.7.0
(crate-source "tree-sitter-xml" "0.7.0"
"1cxnr3q72fvld0ia8xjc5hl0x4xw9s7wvpcpsma4z68xb4gh8w76"))
@@ -30256,10 +30028,6 @@
(crate-source "ubyte" "0.10.4"
"1spj3k9sx6xvfn7am9vm1b463hsr79nyvj8asi2grqhyrvvdw87p"))
(define rust-ucd-trie-0.1.6
(crate-source "ucd-trie" "0.1.6"
"1ff4yfksirqs37ybin9aw71aa5gva00hw7jdxbw8w668zy964r7d"))
(define rust-ucd-trie-0.1.7
(crate-source "ucd-trie" "0.1.7"
"0wc9p07sqwz320848i52nvyjvpsxkx3kv5bfbmm6s35809fdk5i8"))
@@ -30471,10 +30239,6 @@
"0jzf1znfpb2gx8nr8mvmyqs1crnv79l57nxnbiszc7xf7ynbjm1k"
#:snippet '(delete-file-recursively "tests")))
(define rust-unicode-ident-1.0.12-unpatched
(crate-source "unicode-ident" "1.0.12"
"0jzf1znfpb2gx8nr8mvmyqs1crnv79l57nxnbiszc7xf7ynbjm1k"))
(define rust-unicode-ident-1.0.13
(crate-source "unicode-ident" "1.0.13"
"1zm1xylzsdfvm2a5ib9li3g5pp7qnkv4amhspydvgbmd9k6mc6z9"
@@ -34211,10 +33975,6 @@
(crate-source "zerocopy" "0.7.35"
"1w36q7b9il2flg0qskapgi9ymgg7p985vniqd09vi0mwib8lz6qv"))
(define rust-zerocopy-0.8.13
(crate-source "zerocopy" "0.8.13"
"07g29nsr3hvf2vyh9wk39l3yg144hprjx7aykvkd5gzka6s4m4b7"))
(define rust-zerocopy-0.8.23
(crate-source "zerocopy" "0.8.23"
"1inbxgqhsxghawsss8x8517g30fpp8s3ll2ywy88ncm40m6l95zx"))
@@ -34271,10 +34031,6 @@
(crate-source "zerocopy-derive" "0.7.35"
"0gnf2ap2y92nwdalzz3x7142f2b83sni66l39vxp2ijd6j080kzs"))
(define rust-zerocopy-derive-0.8.13
(crate-source "zerocopy-derive" "0.8.13"
"0pgjqk2w5wrw752wfsxgf7rwqjlk1r4vq5iky2fjijh38cxdg23r"))
(define rust-zerocopy-derive-0.8.23
(crate-source "zerocopy-derive" "0.8.23"
"0m7iwisxz111sgkski722nyxv0rixbs0a9iylrcvhpfx1qfw0lk3"))
@@ -34734,6 +34490,15 @@
;;; Cargo inputs.
;;;
;; TODO: Maintain this automatically too.
(define-public mesa-cargo-inputs
`(("paste" ,rust-paste-1.0.15)
("proc-macro2" ,rust-proc-macro2-1.0.94)
("quote" ,rust-quote-1.0.40)
("rustc-hash" ,rust-rustc-hash-2.1.1)
("syn" ,rust-syn-2.0.100)
("unicode-ident" ,rust-unicode-ident-1.0.18)))
(define-cargo-inputs lookup-cargo-inputs
(aardvark-dns =>
(list rust-addr2line-0.24.2
@@ -44154,25 +43919,25 @@
rust-windows-x86-64-gnullvm-0.52.6
rust-windows-x86-64-msvc-0.52.6))
(difftastic =>
(list rust-ahash-0.8.12
rust-aho-corasick-1.1.4
(list rust-ahash-0.8.11
rust-aho-corasick-1.1.3
rust-allocator-api2-0.2.21
rust-anstream-1.0.0
rust-anstyle-1.0.14
rust-anstyle-parse-1.0.0
rust-anstyle-query-1.1.5
rust-anstyle-wincon-3.0.11
rust-assert-cmd-2.2.0
rust-autocfg-1.5.0
rust-bitflags-2.11.0
rust-bstr-1.12.1
rust-bumpalo-3.20.2
rust-cc-1.2.58
rust-cfg-if-1.0.4
rust-clap-4.6.0
rust-clap-builder-4.6.0
rust-clap-lex-1.1.0
rust-colorchoice-1.0.5
rust-anstream-0.6.18
rust-anstyle-1.0.10
rust-anstyle-parse-0.2.6
rust-anstyle-query-1.1.2
rust-anstyle-wincon-3.0.7
rust-assert-cmd-2.0.8
rust-autocfg-1.4.0
rust-bitflags-2.9.0
rust-bstr-1.12.0
rust-bumpalo-3.17.0
rust-cc-1.2.19
rust-cfg-if-1.0.0
rust-clap-4.5.35
rust-clap-builder-4.5.35
rust-clap-lex-0.7.4
rust-colorchoice-1.0.3
rust-crossbeam-deque-0.8.6
rust-crossbeam-epoch-0.9.18
rust-crossbeam-utils-0.8.21
@@ -44180,158 +43945,133 @@
rust-crossterm-winapi-0.9.1
rust-diff-0.1.13
rust-difflib-0.4.0
rust-doc-comment-0.3.3
rust-either-1.15.0
rust-encoding-rs-0.8.35
rust-env-logger-0.10.2
rust-equivalent-1.0.2
rust-errno-0.3.14
rust-find-msvc-tools-0.1.9
rust-fixedbitset-0.5.7
rust-float-cmp-0.10.0
rust-foldhash-0.1.5
rust-glob-0.3.3
rust-globset-0.4.18
rust-errno-0.3.11
rust-fixedbitset-0.4.2
rust-float-cmp-0.9.0
rust-fnv-1.0.7
rust-glob-0.3.2
rust-globset-0.4.16
rust-hashbrown-0.14.5
rust-hashbrown-0.15.5
rust-hashbrown-0.16.1
rust-hashbrown-0.15.2
rust-heck-0.5.0
rust-hermit-abi-0.5.2
rust-hermit-abi-0.5.0
rust-humansize-2.1.3
rust-humantime-2.3.0
rust-humantime-2.2.0
rust-ignore-0.4.23
rust-indexmap-2.13.0
rust-is-terminal-0.4.17
rust-is-terminal-polyfill-1.70.2
rust-itoa-1.0.18
rust-indexmap-2.9.0
rust-is-terminal-0.4.16
rust-is-terminal-polyfill-1.70.1
rust-itertools-0.10.5
rust-itertools-0.11.0
rust-itoa-1.0.15
rust-lazy-static-1.5.0
rust-libc-0.2.183
rust-libm-0.2.16
rust-libc-0.2.171
rust-libm-0.2.11
rust-libmimalloc-sys-0.1.24
rust-line-numbers-0.3.1
rust-linux-raw-sys-0.4.15
rust-linux-raw-sys-0.12.1
rust-lock-api-0.4.14
rust-log-0.4.29
rust-memchr-2.8.0
rust-mio-1.2.0
rust-nom-8.0.0
rust-linux-raw-sys-0.9.4
rust-lock-api-0.4.12
rust-log-0.4.27
rust-memchr-2.7.4
rust-mimalloc-0.1.28
rust-minimal-lexical-0.2.1
rust-mio-1.0.3
rust-nom-7.1.3
rust-normalize-line-endings-0.3.0
rust-num-traits-0.2.19
rust-once-cell-1.21.4
rust-once-cell-polyfill-1.70.2
rust-owo-colors-4.3.0
rust-parking-lot-0.12.5
rust-parking-lot-core-0.9.12
rust-petgraph-0.8.3
rust-predicates-3.1.4
rust-predicates-core-1.0.10
rust-predicates-tree-1.0.13
rust-once-cell-1.21.3
rust-owo-colors-3.5.0
rust-parking-lot-0.12.3
rust-parking-lot-core-0.9.10
rust-petgraph-0.6.5
rust-predicates-2.1.5
rust-predicates-core-1.0.9
rust-predicates-tree-1.0.12
rust-pretty-assertions-1.4.1
rust-pretty-env-logger-0.5.0
rust-proc-macro2-1.0.106
rust-quote-1.0.45
rust-proc-macro2-1.0.94
rust-quote-1.0.40
rust-radix-heap-0.4.2
rust-rayon-1.11.0
rust-rayon-core-1.13.0
rust-redox-syscall-0.5.18
rust-regex-1.12.3
rust-regex-automata-0.4.14
rust-regex-syntax-0.8.10
rust-rayon-1.10.0
rust-rayon-core-1.12.1
rust-redox-syscall-0.5.11
rust-regex-1.11.1
rust-regex-automata-0.4.9
rust-regex-syntax-0.8.5
rust-rustc-hash-2.1.1
rust-rustix-0.38.44
rust-rustix-1.1.4
rust-rustversion-1.0.22
rust-rustix-1.0.5
rust-rustversion-1.0.20
rust-ryu-1.0.20
rust-same-file-1.0.6
rust-scopeguard-1.2.0
rust-serde-1.0.228
rust-serde-core-1.0.228
rust-serde-derive-1.0.228
rust-serde-json-1.0.149
rust-serde-1.0.219
rust-serde-derive-1.0.219
rust-serde-json-1.0.140
rust-shlex-1.3.0
rust-signal-hook-0.3.18
rust-signal-hook-mio-0.2.5
rust-signal-hook-registry-1.4.8
rust-smallvec-1.15.1
rust-signal-hook-0.3.17
rust-signal-hook-mio-0.2.4
rust-signal-hook-registry-1.4.2
rust-smallvec-1.15.0
rust-streaming-iterator-0.1.9
rust-strsim-0.10.0
rust-strsim-0.11.1
rust-strum-0.26.3
rust-strum-macros-0.26.4
rust-syn-2.0.117
rust-syn-2.0.100
rust-termcolor-1.4.1
rust-terminal-size-0.4.4
rust-terminal-size-0.4.2
rust-termtree-0.5.1
rust-tikv-jemalloc-sys-0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
rust-tikv-jemallocator-0.6.1
rust-tree-sitter-0.26.7
rust-tree-sitter-ada-0.1.0
rust-tree-sitter-bash-0.25.1
rust-tree-sitter-c-0.24.1
rust-tree-sitter-0.24.7
rust-tree-sitter-bash-0.23.3
rust-tree-sitter-c-0.23.4
rust-tree-sitter-c-sharp-0.23.1
rust-tree-sitter-clojure-orchard-0.2.5
rust-tree-sitter-cmake-0.7.1
rust-tree-sitter-cpp-0.23.4
rust-tree-sitter-css-0.23.2
rust-tree-sitter-dart-orchard-0.2.1
rust-tree-sitter-devicetree-0.14.1
rust-tree-sitter-elisp-1.6.1
rust-tree-sitter-elixir-0.3.5
rust-tree-sitter-elm-5.9.0
rust-tree-sitter-erlang-0.13.0
rust-tree-sitter-fortran-0.5.1
rust-tree-sitter-fsharp-0.1.0
rust-tree-sitter-gleam-1.0.0
rust-tree-sitter-go-0.25.0
rust-tree-sitter-elixir-0.3.4
rust-tree-sitter-go-0.23.4
rust-tree-sitter-haskell-0.23.1
rust-tree-sitter-hcl-1.1.0
rust-tree-sitter-html-0.23.2
rust-tree-sitter-java-0.23.5
rust-tree-sitter-javascript-0.25.0
rust-tree-sitter-javascript-0.23.1
rust-tree-sitter-json-0.24.8
rust-tree-sitter-julia-0.23.1
rust-tree-sitter-language-0.1.7
rust-tree-sitter-lua-0.5.0
rust-tree-sitter-language-0.1.5
rust-tree-sitter-lua-0.2.0
rust-tree-sitter-make-1.1.1
rust-tree-sitter-newick-1.1.0
rust-tree-sitter-nix-0.3.0
rust-tree-sitter-nix-0.0.2
rust-tree-sitter-objc-3.0.2
rust-tree-sitter-ocaml-0.23.2
rust-tree-sitter-pascal-0.10.2
rust-tree-sitter-perl-1.1.2
rust-tree-sitter-php-0.23.11
rust-tree-sitter-proto-0.2.0
rust-tree-sitter-python-0.23.6
rust-tree-sitter-qmljs-0.3.0
rust-tree-sitter-r-1.2.0
rust-tree-sitter-racket-0.24.7
rust-tree-sitter-ruby-0.23.1
rust-tree-sitter-rust-orchard-0.16.3
rust-tree-sitter-rust-0.23.3
rust-tree-sitter-scala-0.23.4
rust-tree-sitter-scheme-0.24.7
rust-tree-sitter-sequel-0.3.11
rust-tree-sitter-sfapex-2.4.0
rust-tree-sitter-solidity-1.2.13
rust-tree-sitter-swift-0.7.1
rust-tree-sitter-toml-ng-0.7.0
rust-tree-sitter-typescript-0.23.2
rust-tree-sitter-verilog-1.0.3
rust-tree-sitter-xml-0.7.0
rust-tree-sitter-yaml-0.7.2
rust-tree-sitter-zig-1.1.2
rust-tree-magic-mini-3.2.2
rust-tree-sitter-yaml-0.7.0
rust-tree-magic-mini-3.1.6
rust-typed-arena-2.0.2
rust-unicode-ident-1.0.24
rust-unicode-ident-1.0.18
rust-unicode-width-0.1.14
rust-utf8parse-0.2.2
rust-version-check-0.9.5
rust-wait-timeout-0.2.1
rust-walkdir-2.5.0
rust-wasi-0.11.1+wasi-snapshot-preview1
rust-wasi-0.11.0+wasi-snapshot-preview1
rust-winapi-0.3.9
rust-winapi-i686-pc-windows-gnu-0.4.0
rust-winapi-util-0.1.11
rust-winapi-util-0.1.9
rust-winapi-x86-64-pc-windows-gnu-0.4.0
rust-windows-link-0.2.1
rust-windows-sys-0.52.0
rust-windows-sys-0.59.0
rust-windows-sys-0.61.2
rust-windows-targets-0.52.6
rust-windows-aarch64-gnullvm-0.52.6
rust-windows-aarch64-msvc-0.52.6
@@ -44343,9 +44083,8 @@
rust-windows-x86-64-msvc-0.52.6
rust-wu-diff-0.1.2
rust-yansi-1.0.1
rust-zerocopy-0.8.47
rust-zerocopy-derive-0.8.47
rust-zmij-1.0.21))
rust-zerocopy-0.7.35
rust-zerocopy-derive-0.7.35))
(drill =>
(list rust-addr2line-0.24.2
rust-adler2-2.0.0
@@ -52965,7 +52704,7 @@
rust-valuable-0.1.1
rust-variadics-please-1.1.0
rust-vcpkg-0.2.15
rust-vergen-9.0.6
rust-vergen-9.1.0
rust-vergen-gitcl-1.0.8
rust-vergen-lib-0.1.6
rust-vergen-lib-9.1.0
@@ -59327,36 +59066,6 @@
rust-zstd-0.13.3
rust-zstd-safe-7.2.4
rust-zstd-sys-2.0.16+zstd.1.5.7))
(mesa => ; TODO: Maintain this automatically.
(list rust-bitflags-2.9.1
rust-cfg-if-1.0.0
rust-equivalent-1.0.1
rust-errno-0.3.12
rust-hashbrown-0.14.1
rust-indexmap-2.2.6
rust-libc-0.2.171
rust-log-0.4.27
rust-once-cell-1.8.0
rust-paste-1.0.14
rust-pest-2.8.0
rust-pest-derive-2.8.0
rust-pest-generator-2.8.0
rust-pest-meta-2.8.0
rust-proc-macro2-1.0.86
rust-quote-1.0.35
rust-remain-0.2.12
rust-roxmltree-0.20.0
rust-rustc-hash-2.1.1
rust-rustix-1.1.2
rust-syn-2.0.87
rust-thiserror-2.0.11
rust-thiserror-impl-2.0.11
rust-ucd-trie-0.1.6
rust-unicode-ident-1.0.12-unpatched
rust-windows-link-0.2.0
rust-windows-sys-0.61.1
rust-zerocopy-0.8.13
rust-zerocopy-derive-0.8.13))
(mollysocket =>
(list rust-ahash-0.8.12
rust-aho-corasick-1.1.3
@@ -68432,43 +68141,6 @@
rust-windows-result-0.4.1
rust-windows-strings-0.5.1
rust-zxcvbn-3.1.0))
(qemu =>
(list rust-anyhow-1.0.98
rust-arbitrary-int-1.2.7
rust-attrs-0.2.9
rust-bilge-0.2.0
rust-bilge-impl-0.2.0
rust-cfg-expr-0.20.3
rust-either-1.12.0
rust-equivalent-1.0.2
rust-foreign-0.3.1
rust-glib-sys-0.21.2
rust-hashbrown-0.16.0
rust-heck-0.5.0
rust-indexmap-2.11.4
rust-itertools-0.11.0
rust-libc-0.2.162
rust-memchr-2.7.6
rust-pkg-config-0.3.32
rust-proc-macro-error-1.0.4
rust-proc-macro-error-attr-1.0.4
rust-proc-macro2-1.0.95
rust-quote-1.0.36
rust-serde-1.0.226
rust-serde-core-1.0.226
rust-serde-derive-1.0.226
rust-serde-spanned-0.6.9
rust-smallvec-1.15.1
rust-syn-2.0.104
rust-system-deps-7.0.5
rust-target-lexicon-0.13.2
rust-toml-0.8.23
rust-toml-datetime-0.6.11
rust-toml-edit-0.22.27
rust-unicode-ident-1.0.12-unpatched
rust-version-compare-0.2.0
rust-version-check-0.9.4
rust-winnow-0.7.13))
(rabbitmqadmin =>
(list rust-addr2line-0.24.2
rust-adler2-2.0.1
+2 -2
View File
@@ -50,14 +50,14 @@
(define-public scribus
(package
(name "scribus")
(version "1.6.5")
(version "1.6.4")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/scribus/scribus/"
version "/scribus-" version ".tar.gz"))
(sha256
(base32 "1jj86a2xydkyqfdyhfikcxxl3m4j861mbbcswdd7779q11wysckq"))))
(base32 "1ddsga862wwq2lb12rlsm6009gfx9nxx3s5323jifs53fs1y3knp"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test target
+8 -8
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2013, 2016, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
@@ -190,8 +190,7 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
(apply (assoc-ref cargo:%standard-phases phase)
#:cargo-target #$(cargo-triplet)
args))
'(prepare-rust-crates
unpack-rust-crates
'(unpack-rust-crates
configure
check-for-pregenerated-files
patch-cargo-checksums))))
@@ -1046,22 +1045,23 @@ JavaScript users who avoid shell.")
(define-public gash
(package
(name "gash")
(version "0.3.2")
(version "0.3.1")
(source
;; Note: Pre-built tarballs are no longer hosted at
;; <https://savannah.nongnu.org/projects/gash>.
;; Use a copy built from the unofficial 'EBADF-fixes' branch,
;; <https://codeberg.org/civodul/gash/commit/7c9bf2110cfe85424fba0cd14445d5f0926c3fbd>.
;; See <https://issues.guix.gnu.org/75658>.
(origin (method url-fetch)
(uri (string-append "mirror://gnu/guix/mirror/gash-"
version ".tar.gz"))
(sha256
(base32
"1r74k5qms2rrpx7cywpg9hdywd3y893rl1f4467l86h1gpkih368"))))
"069wizkfkkifij9n0r6fkwbgcnjyr6xvnjid11ckppx0waixc0s7"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
(inputs
(list guile-3.0))
(home-page "https://codeberg.org/guix/gash")
(home-page "https://savannah.nongnu.org/projects/gash/")
(synopsis "POSIX-compatible shell written in Guile Scheme")
(description "Gash is a POSIX-compatible shell written in Guile
Scheme. It provides both the shell interface, as well as a Guile
+2 -5
View File
@@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2023, 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
@@ -391,10 +391,7 @@ modules for Tk, all written in high-level Tcl. Examples of provided widgets:
(files (list (string-append "lib/Tclxml" version))))))
(arguments
`(#:configure-flags
(list (string-append "CFLAGS=-g -O2"
" -Wno-implicit-function-declaration"
" -Wno-incompatible-pointer-types")
(string-append "--exec-prefix=" (assoc-ref %outputs "out"))
(list (string-append "--exec-prefix=" (assoc-ref %outputs "out"))
(string-append "--with-tclconfig="
(assoc-ref %build-inputs "tcl") "/lib")
(string-append "--with-xml2-config="
+9 -3
View File
@@ -140,18 +140,24 @@
(define-public ed
(package
(name "ed")
(version "1.22.5")
(version "1.21")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ed/ed-"
version ".tar.lz"))
(sha256
(base32
"1k2ql71ybnsfwh81f95qwcg9wl2ijyziav1pj1kav7gjqbfhgqan"))))
"0xddpcdsdhf1cx7izk9l5dmf8vakjx5ncm1cy1f3libxfac4kqk0"))))
(build-system gnu-build-system)
(native-inputs (list lzip))
(arguments
`(#:configure-flags (list ,(string-append "CC=" (cc-for-target)))))
`(#:configure-flags (list ,(string-append "CC=" (cc-for-target)))
#:phases
(modify-phases %standard-phases
(add-before 'patch-source-shebangs 'patch-test-suite
(lambda _
(substitute* "testsuite/check.sh"
(("/bin/sh") (which "sh"))))))))
(home-page "https://www.gnu.org/software/ed/")
(synopsis "Line-oriented text editor")
(description
-12
View File
@@ -67,7 +67,6 @@
;;; Copyright © 2025 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2025 Matthew Elwin <elwin@northwestern.edu>
;;; Copyright © 2026 Ingar <ingar@onionmail.info>
;;; Copyright © 2026 Robin Templeton <robin@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -444,16 +443,6 @@ Python 3.3 and later, rather than on Python 2.")
"MINGW"
"GNU"))) ;matched against '*'
;; Patch git-sh-i18n.sh to source gettext.sh from
;; gettext-minimal. By default, it uses gettext.sh from $PATH
;; if available, and falls back to English if not.
(let ((gettext-sh (search-input-file inputs "bin/gettext.sh")))
(substitute* "git-sh-i18n.sh"
(("type gettext.sh")
(format #f "type ~a" gettext-sh))
(("\\. gettext.sh")
(format #f ". ~a" gettext-sh))))
;; git-submodule sources 'git-sh-setup.sh', but not before
;; invoking the basename and sed commands... patch them to their
;; absolute location.
@@ -594,7 +583,6 @@ Python 3.3 and later, rather than on Python 2.")
coreutils-minimal
curl ;for HTTP(S) access
expat ;for 'git push' over HTTP(S)
gettext-minimal ;for gettext.sh
openssl
perl
sed
+9 -4
View File
@@ -3154,7 +3154,8 @@ wallpaper using mpv.")
(define-public libvpx
(package
(name "libvpx")
(version "1.16.0")
(version "1.15.2")
(replacement libvpx/fixed)
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3163,9 +3164,8 @@ wallpaper using mpv.")
(file-name (git-file-name name version))
(sha256
(base32
"0llik9k5rs9ychw9fnknwrz8662dm370yf76r6d6n07727faylyg"))
(patches (search-patches "libvpx-CVE-2016-2818.patch"
"libvpx-CVE-2026-2447.patch"))))
"07c29a5q19613pldp8qm6harqwl7kvqhs7vw4mr8s3dnwyb5jpnl"))
(patches (search-patches "libvpx-CVE-2016-2818.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-shared"
@@ -3194,6 +3194,11 @@ wallpaper using mpv.")
(license license:bsd-3)
(home-page "https://www.webmproject.org/")))
(define-public libvpx/fixed
(hidden-package
(package-with-extra-patches libvpx
(search-patches "libvpx-CVE-2026-2447.patch"))))
(define-public orfondl
(package
(name "orfondl")
+40 -100
View File
@@ -161,8 +161,6 @@
#:use-module (gnu packages ruby)
#:use-module (gnu packages ruby-check)
#:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages rust)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages rsync)
#:use-module (gnu packages sdl)
#:use-module (gnu packages selinux)
@@ -219,9 +217,6 @@
(modules '((guix build utils)))
(snippet
'(begin
;; Delete the bundled rust crates.
(delete-file-recursively "subprojects/packagecache")
(mkdir-p "subprojects/packagecache")
;; TODO: Scrub all firmwares from this directory!
(with-directory-excursion "pc-bios"
;; Delete firmwares provided by SeaBIOS.
@@ -266,34 +261,28 @@
"share/qemu/pxe-virtio.rom"))
#~((string-append #$output "/share/qemu"))))
(out #$output))
(cons* (string-append "--cc=" gcc)
;; Some architectures insist on using HOST_CC.
(string-append "--host-cc=" gcc)
(string-append "--prefix=" out)
"--sysconfdir=/etc"
"--enable-fdt=system"
(string-append "--firmwarepath=" out "/share/qemu:"
(dirname seabios) ":"
(dirname ipxe) ":"
(dirname openbios) ":"
(dirname opensbi))
(string-append "--smbd=" out "/libexec/samba-wrapper")
"--disable-debug-info" ;for space considerations
;; The binaries need to be linked against -lrt.
(string-append "--extra-ldflags=-lrt")
#$@(if (this-package-native-input "rust")
#~((list "--enable-rust"))
#~((list)))))
(list (string-append "--cc=" gcc)
;; Some architectures insist on using HOST_CC.
(string-append "--host-cc=" gcc)
(string-append "--prefix=" out)
"--sysconfdir=/etc"
"--enable-fdt=system"
(string-append "--firmwarepath=" out "/share/qemu:"
(dirname seabios) ":"
(dirname ipxe) ":"
(dirname openbios) ":"
(dirname opensbi))
(string-append "--smbd=" out "/libexec/samba-wrapper")
"--disable-debug-info" ;for space considerations
;; The binaries need to be linked against -lrt.
(string-append "--extra-ldflags=-lrt")))
;; Make build and test output verbose to facilitate investigation upon failure.
#:make-flags #~'("V=1")
#:modules `((srfi srfi-1)
(srfi srfi-26)
(ice-9 ftw)
(ice-9 match)
((guix build cargo-build-system) #:prefix cargo:)
,@%default-gnu-modules)
#:imported-modules `(,@%cargo-build-system-modules
,@%default-gnu-imported-modules)
#:phases
#~(modify-phases %standard-phases
;; Since we removed the bundled firmwares above, many tests
@@ -336,29 +325,6 @@
"\"~a\",~%" file))
allowed-differences)
(close-port allowed-differences-whitelist))))
#$@(if (this-package-native-input "rust")
#~((add-after 'unpack 'prepare-rust-crates
(lambda args
(apply (assoc-ref cargo:%standard-phases
'prepare-rust-crates)
args)
;; Use /tmp/rust-crates as the source.
(substitute* (find-files "subprojects" "-rs\\.wrap$")
(("source_url = (.*)" _ url)
(let ((split-url (string-split url #\/)))
(string-append
"source_url = file:///tmp/rust-crates/rust-"
(list-ref split-url 6) "-"
(list-ref split-url 7) ".tar.gz\n"))))
;; "Download" the packages.
(for-each
(lambda (wrapper)
(invoke "meson" "subprojects" "download"
(string-drop-right wrapper 5)))
(scandir "subprojects"
(lambda (file)
(string-suffix? "-rs.wrap" file)))))))
#~())
;; If the ipxe firmware isn't available, remove it from the list
;; of files expected to be available and remove some of the tests.
#$@(if (not (this-package-input "ipxe-qemu"))
@@ -621,38 +587,27 @@ exec smbd $@")))
zlib
`(,zstd "lib"))))
(native-inputs
(append
;; The rust code doesn't seem to be in use yet.
(if #f ;(supported-package? rust)
(append
(cons* rust
rust-bindgen-cli
(cargo-inputs 'qemu))
(or (and=> (%current-target-system)
(compose list make-rust-sysroot))
'()))
'())
;; Note: acpica is here only to pretty-print firmware differences with
;; IASL (see the replace-firmwares phase above).
(list acpica
bison
flex
gettext-minimal
`(,glib "bin") ;gtester, etc.
meson
ninja
perl
pkg-config
python-wrapper
python-sphinx
python-sphinx-rtd-theme
python-tomli
texinfo
;; The following static libraries are required to build
;; the static output of QEMU.
`(,glib "static")
`(,pcre2 "static")
`(,zlib "static"))))
;; Note: acpica is here only to pretty-print firmware differences with IASL
;; (see the replace-firmwares phase above).
(list acpica
bison
flex
gettext-minimal
`(,glib "bin") ;gtester, etc.
meson
ninja
perl
pkg-config
python-wrapper
python-sphinx
python-sphinx-rtd-theme
python-tomli
texinfo
;; The following static libraries are required to build
;; the static output of QEMU.
`(,glib "static")
`(,pcre2 "static")
`(,zlib "static")))
(home-page "https://www.qemu.org")
(synopsis "Machine emulator and virtualizer")
(description
@@ -2512,23 +2467,9 @@ Open Container Initiative specification.")
#:build-flags
#~(list (string-append "-ldflags="
"-X github.com/opencontainers/umoci.version="
#$version))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'build-and-install-man-pages
(lambda* (#:key unpack-path #:allow-other-keys)
(with-directory-excursion
(string-append "src/" unpack-path "/doc/man")
(mkdir-p (string-append #$output "/share/man/man1"))
(for-each
(lambda (file)
(let* ((file (string-drop-right file 3)) ;cut .md
(in-md (string-append file ".md"))
(out-man (string-append #$output
"/share/man/man1/" file)))
(invoke "go-md2man" "-in" in-md "-out" out-man)))
(find-files "." "\\.md$"))))))))
(native-inputs
#$version))))
;; TODO: build manpages from <doc/man> with 'go-md2man'.
(propagated-inputs
(list go-github-com-adalogics-go-fuzz-headers
go-github-com-apex-log
go-github-com-blang-semver-v4
@@ -2548,8 +2489,7 @@ Open Container Initiative specification.")
go-github-com-stretchr-testify
go-github-com-urfave-cli
go-golang-org-x-sys
go-google-golang-org-protobuf
go-md2man))
go-google-golang-org-protobuf))
(home-page "https://umo.ci/")
(synopsis "Tool for modifying Open Container images")
(description
+33
View File
@@ -242,6 +242,39 @@ and many other languages.")
(substitute* "src/unix/mimetype.cpp"
(("/usr(/local)?/share/mime") mime))))))))))
(define-public prusa-wxwidgets
;; There is no proper tag/release, all patches are in separate branches based on
;; the wxWidgets release (e.g. this commit is taken from "v3.2.0-patched" branch".)
(let ((commit "78aa2dc0ea7ce99dc19adc1140f74c3e2e3f3a26")
(revision "0"))
(package
(inherit wxwidgets-sans-egl)
(name "prusa-wxwidgets")
(version (git-version "3.2.0" revision commit))
(home-page "https://github.com/prusa3d/wxWidgets")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(file-name (git-file-name name version))
;; The patch is taken from the NixOS nixpkgs repository (see
;; <https://github.com/NixOS/nixpkgs/commit/0e724ac89f3dbf6ed31d647290a371b44a85e5ad>.)
(patches (search-patches "prusa-wxwidgets-makefile-fix.patch"))
(sha256
(base32
"1xk6w7q4xv4cj906xa5dwam5q51mc8bszbkkz7l8d3wjmsz73rwv"))))
(native-inputs (modify-inputs native-inputs
(prepend nanosvg)))
(arguments
(substitute-keyword-arguments arguments
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'copy-nanosvg-source
(lambda _
(copy-recursively #$(package-source nanosvg) "3rdparty/nanosvg/"))))))))))
(define-public python-wxpython
(package
(name "python-wxpython")
+4 -6
View File
@@ -688,7 +688,7 @@ avoiding password prompts when X11 forwarding has already been setup.")
(define-public libxkbcommon
(package
(name "libxkbcommon")
(version "1.13.1")
(version "1.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -697,7 +697,7 @@ avoiding password prompts when X11 forwarding has already been setup.")
(file-name (git-file-name name version))
(sha256
(base32
"1440s6w7m7xpxw44d3x9wyn5wy4wxdx33idvklxkhp9irnq32jy1"))))
"1swa6rf63c0wi0qq5r661g63yk2iwa9l66148078xkrwcf05sp91"))))
(outputs '("out" "doc"))
(build-system meson-build-system)
(inputs
@@ -713,8 +713,6 @@ avoiding password prompts when X11 forwarding has already been setup.")
doxygen
pkg-config
python
;; setxkbmap needed for tests.
setxkbmap
;; wayland-scanner is required at build time.
wayland
;; Xvfb for tests.
@@ -957,7 +955,7 @@ rasterisation.")
(define-public libdrm
(package
(name "libdrm")
(version "2.4.131")
(version "2.4.124")
(source (origin
(method url-fetch)
(uri (string-append
@@ -965,7 +963,7 @@ rasterisation.")
version ".tar.xz"))
(sha256
(base32
"1m8pyv2l7mbkf1wy54b3dsvm7f8ksf0xwm6nlc36928wnn1rkfj5"))))
"0yd37j3c1qz9gmwvv7vwqgss8aiizypsg8hn9fpsyjnac4zjjdmc"))))
(build-system meson-build-system)
(arguments
(list #:configure-flags
+3 -3
View File
@@ -2513,7 +2513,7 @@ XC-APPGROUP, XTEST.")
(define-public libevdev
(package
(name "libevdev")
(version "1.13.6")
(version "1.13.3")
(source
(origin
(method url-fetch)
@@ -2521,11 +2521,11 @@ XC-APPGROUP, XTEST.")
name "-" version ".tar.xz"))
(sha256
(base32
"040ialc9galic1bxgllp9g26fzk8lay0db1p8x0ky8yqrgn1bwkk"))))
"1gygrc20d7cw70fdb5mp0ns3pmy8skggyl1mbpfyp3i0hv7amwdb"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static")))
(native-inputs (list pkg-config python))
(native-inputs (list python))
(home-page "https://www.freedesktop.org/wiki/Software/libevdev/")
(synopsis "Wrapper library for evdev devices")
(description
+6 -565
View File
@@ -21,39 +21,24 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services monitoring)
#:use-module (gnu packages admin)
#:use-module (gnu packages bash)
#:use-module (gnu packages monitoring)
#:use-module (gnu packages networking)
#:use-module (gnu packages python)
#:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (gnu services web)
#:use-module (gnu services)
#:use-module (gnu packages admin)
#:use-module (gnu packages monitoring)
#:use-module (gnu packages networking)
#:use-module (gnu system shadow)
#:use-module (guix gexp)
#:use-module ((guix modules) #:select (source-module-closure))
#:use-module (guix packages)
#:use-module ((guix profiles) #:select (packages->manifest
profile
profile-search-paths))
#:use-module (guix records)
#:use-module ((guix search-paths) #:select (search-path-specification-variable))
#:use-module ((guix self) #:select (make-config.scm))
#:use-module ((guix ui) #:select (display-hint G_))
#:use-module (guix utils)
#:use-module ((guix ui) #:select (display-hint G_))
#:use-module (ice-9 match)
#:use-module (ice-9 rdelim)
#:use-module (srfi srfi-1)
#:use-module ((srfi srfi-2) #:select (and-let*))
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-35)
#:use-module ((srfi srfi-171) #:select (list-transduce
rcons
tconcatenate
tfilter
tmap))
#:export (darkstat-configuration
darkstat-service-type
@@ -109,49 +94,7 @@
zabbix-agent-service-type
zabbix-front-end-configuration
zabbix-front-end-service-type
%zabbix-front-end-configuration-nginx
collectd-plugin-generic
collectd-plugin-generic?
collectd-plugin-generic-load-plugin?
collectd-plugin-generic-name
collectd-plugin-generic-options
collectd-plugin-python
collectd-plugin-python?
collectd-plugin-python-load-plugin?
collectd-plugin-python-type-databases
collectd-plugin-python-type-packages
collectd-plugin-python-module-paths
collectd-plugin-python-log-traces?
collectd-plugin-python-log-interactive?
collectd-plugin-python-import
collectd-plugin-python-module
collectd-plugin?
%collectd-default-type-database
%collectd-pid-file
collectd-configuration
collectd-configuration?
collectd-configuration-collectd
collectd-configuration-base-directory
collectd-configuration-auto-load-plugins?
collectd-configuration-collect-internal-stats?
collectd-configuration-type-databases
collectd-configuration-interval
collectd-configuration-max-read-interval
collectd-configuration-timeout
collectd-configuration-read-threads
collectd-configuration-write-threads
collectd-configuration-write-queue-limit-high
collectd-configuration-write-queue-limit-low
collectd-configuration-host-name
collectd-configuration-fully-qualified-domain-name-lookup?
collectd-configuration-plugins
collectd-service-type))
%zabbix-front-end-configuration-nginx))
;;;
@@ -1243,505 +1186,3 @@ with Zabbix server.")))
`((zabbix-front-end-configuration
,zabbix-front-end-configuration-fields))
'zabbix-front-end-configuration))
;;
;; collectd
;;
(define *indent* (make-parameter ""))
(defmacro with-indent (. body)
`(parameterize ((*indent* (string-append (*indent*) " ")))
,@body))
(define seconds? integer?)
(define-maybe/no-serialization seconds)
(define list-of-string? (list-of string?))
(define list-of-file-likes? (list-of file-like?))
(define (collectd-serialize-list-of-file-likes name value)
#~(string-join
(map
(lambda (v) (format #f "~a~a \"~a\"" #$name #$(*indent*) v))
'#$value)
"\n" 'suffix))
(define (collectd-serialize-file-like name value)
(collectd-serialize-list-of-file-likes name (list value)))
(define list-of-packages? (list-of package?))
(define (collectd-serialize-value value)
(cond
;; Strings get quoted and escaped.
((string? value)
(format #f "~s" value))
;; Keywords become unquoted strings (#:foo -> foo).
((keyword? value)
(collectd-serialize-value
(keyword->symbol value)))
;; Booleans become bare words.
((eq? value #t) "true")
((eq? value #f) "false")
;; Alists serialize to lines of KEY VALUE.
((alist? value)
(apply string-append
(map
(generic-serialize-alist-entry collectd-serialize-field)
value)))
;; Lists get their elements serialized and joined with a space.
((list? value) (string-join (map collectd-serialize-value value) " "))
;; Other types (numbers etc) turn into bare strings.
(else (object->string value))))
(define (collectd-serialize-field name value)
(if (and (list? value) (null-list? value))
""
(format #nil "~a~a ~a~%" (*indent*) name
(collectd-serialize-value value))))
(define (remap-names name-map serializer)
"Renaming serializer.
Wraps `serializer', renaming fields according to `name-map', an alist of
'((field-name . serialized-name))."
(lambda (name value)
(serializer (or (and=> (assoc name name-map) cdr) name) value)))
(define (collectd-make-load-plugin?-serializer plugin-name)
(lambda (_ load-plugin?)
(if load-plugin?
(collectd-serialize-field "LoadPlugin" plugin-name)
"")))
;; Generic plugin support.
(define-configuration/no-serialization collectd-plugin-generic
(load-plugin?
(boolean #t)
"When @code{#t}, include a @code{LoadPlugin} directive in the
configuration. This interacts with @code{auto-load-plugins?} in
@code{collectd-configuration}; if @code{auto-load-plugins?} is @code{#f}, all
plugins should set this to @code{#t}.")
(name
string
"The name of the plugin to configure. See @code{collect.conf(5)} for the
list of plugins.")
(options
(alist '())
"Configuration options for the plugin, as an alist. See
@code{collect.conf(5)} for the available plugin options."))
(define (collectd-serialize-plugin-generic _ value)
(match-record value <collectd-plugin-generic>
(name load-plugin? options)
#~(string-join
`("\n"
,#$((collectd-make-load-plugin?-serializer name) #nil load-plugin?)
,(string-append "<Plugin " #$name ">\n")
,#$(with-indent (collectd-serialize-value options))
"</Plugin>\n")
"")))
;; Python plugin support.
(define (collectd-serialize-python-module name value)
(apply string-append
`(,(string-append (*indent*) "<Module "
(collectd-serialize-value name)
">")
"\n"
,@(with-indent
(map
(lambda (kvs)
(collectd-serialize-field (car kvs) (cdr kvs)))
value))
,(string-append (*indent*) "</Module>"))))
(define collectd-plugin-python-remap
'((module-paths . "ModulePath")
(load-plugin? . "LoadPlugin")
(log-traces? . "LogTraces")
(interactive? . "Interactive")
(type-databases . "TypesDB")
(packages . "ModulePath")
(module . "Import")))
(define collectd-serialize-plugin-python-field
(remap-names collectd-plugin-python-remap
collectd-serialize-field))
(define-configuration collectd-plugin-python
(load-plugin?
(boolean #t)
"When @code{#t}, include a @code{LoadPlugin} directive in the
configuration. This interacts with @code{auto-load-plugins?} in
@code{collectd-configuration}; if @code{collectd-configuration}'s
@code{auto-load-plugins?} is @code{#f}, all plugins should set this to
@code{#t}."
(serializer (collectd-make-load-plugin?-serializer "python")))
(type-databases
(list-of-file-likes '())
"One or more files that contain the data-set descriptions. See
@code{types.db(5)} for a description of the format of these files."
(serializer (remap-names collectd-plugin-python-remap
collectd-serialize-list-of-file-likes)))
(packages
(list-of-packages '())
"Packages to make available to the Python plugin. These can be
dependencies of the plugin code, or may contain the plugin."
(serializer empty-serializer))
(module-paths
(list-of-string '())
"Entries to prepend to @code{sys.path}."
(serializer collectd-serialize-plugin-python-field))
(log-traces?
(boolean #f)
"If a Python script throws an exception it will be logged by
collectd with the name of the exception and the message. If you set
this option to true it will also log the full stacktrace just like the
default output of an interactive Python interpreter. This does not
apply to the @code{CollectError} exception, which will never log a
stacktrace. This should probably be set to false most of the time but
is very useful for development and debugging of new modules."
(serializer collectd-serialize-plugin-python-field))
(interactive?
(boolean #f)
"This option will cause the module to launch an interactive Python
interpreter that reads from and writes to the terminal. Note that collectd
will terminate right after starting up if you try to run it as a daemon while
this option is enabled so make sure to start collectd with the @code{-f}
option. See the @code{collectd-python(5)} man page for more information on
this option."
(serializer collectd-serialize-plugin-python-field))
(module
string
"The name of the Python module to import into the collectd Python
process. The module must be available in @code{packages} or
@code{module-paths}, and register a MPD callback."
(serializer collectd-serialize-plugin-python-field))
(module-options
(alist '())
"Configuration options for the module."
(serializer (lambda (_ value) (collectd-serialize-value value)))))
(define (collectd-serialize-plugin-python _ value)
(define (serialize-fields fields)
(list-transduce
(base-transducer value) rcons
(filter-configuration-fields collectd-plugin-python-fields fields)))
(match-record
value <collectd-plugin-python> (module)
#~(string-append
"\n"
#$@(serialize-fields '(load-plugin? type-databases))
"<Plugin python>\n"
#$@(with-indent
(append
(serialize-fields '(log-traces? interactive? module-paths module))
(list (*indent*) "<Module " (collectd-serialize-value module) ">\n")
(with-indent (serialize-fields '(module-options)))
(list (*indent*) "</Module>\n")))
"</Plugin>\n")))
(define (collectd-plugin? x)
;; XXX: Extend this if plugin-specific configuration records are
;; added.
(or (collectd-plugin-generic? x)
(collectd-plugin-python? x)))
(define list-of-collectd-plugins? (list-of collectd-plugin?))
(define (collectd-serialize-plugin name value)
((match value
;; XXX: Extend this if plugin-specific configuration records are
;; added.
;; Note that these *must* return gexps, not strings, otherwise things
;; like type-databases won't work.
(($ <collectd-plugin-generic>) collectd-serialize-plugin-generic)
(($ <collectd-plugin-python>) collectd-serialize-plugin-python))
name value))
(define (collectd-serialize-list-of-plugins name value)
#~(string-append
#$@(map
(lambda (v) (collectd-serialize-plugin name v))
value)))
(define collectd-configuration-remap
'((base-directory . "BaseDir")
(auto-load-plugins? . "AutoLoadPlugin")
(collect-internal-stats? . "CollectInternalStats")
(type-databases . "TypesDB")
(interval . "Interval")
(max-read-interval . "MaxReadInterval")
(timeout . "Timeout")
(read-threads . "ReadThreads")
(write-threads . "WriteThreads")
(write-queue-limit-high . "WriteQueueLimitHigh")
(write-queue-limit-low . "WriteQueueLimitLow")
(host-name . "Hostname")
(fully-qualified-domain-name-lookup? . "FQDNLookup")))
(define collectd-configuration-serialize-field
(remap-names collectd-configuration-remap
collectd-serialize-field))
(define %collectd-default-type-database
(file-append collectd "/share/collectd/types.db"))
(define-configuration collectd-configuration
(collectd
(package collectd)
"The collectd package to use."
(serializer empty-serializer))
(base-directory
(string "/var/lib/collectd")
"Sets the base directory. This is the directory beneath which all
@acronym{RRD, round-robin database} files are created. Possibly more
subdirectories are created. This is also the working directory for
collectd."
(serializer collectd-configuration-serialize-field))
(auto-load-plugins?
(boolean #f)
"When set to @code{#f}, plugins must be loaded explicitly, by setting the
@code{load-plugin?} field of each plugin configuration to @code{#t}. If a
@code{<Plugin ...>} block is encountered and no configuration handling
callback for this plugin has been registered, a warning is logged and the
block is ignored.
When set to @code{#t}, each @code{<Plugin ...>} block acts as if it was
immediately preceded by a @code{LoadPlugin} statement. @code{LoadPlugin}
statements are still required for plugins that don't provide any
configuration, e.g. the @code{Load} plugin."
(serializer collectd-configuration-serialize-field))
(collect-internal-stats?
(boolean #f)
"When @code{#t}, various statistics about the collectd daemon will
be collected, with \"collectd\" as the plugin name."
(serializer collectd-configuration-serialize-field))
(type-databases
(list-of-file-likes (list %collectd-default-type-database))
"One or more files that contain the data-set descriptions. See
@code{types.db(5)} for a description of the format of these files."
(serializer (remap-names collectd-configuration-remap
collectd-serialize-list-of-file-likes)))
(interval
(seconds 60)
"Configures the interval in which to query the read plugins.
Smaller values lead to a higher system load produced by
collectd, while higher values lead to more coarse statistics.
Warning: You should set this once and then never touch it again. If
you do, you will have to delete all your RRD files or know some
serious RRDtool magic! (Assuming you're using the RRDtool or
RRDCacheD plugin.)"
(serializer collectd-configuration-serialize-field))
(max-read-interval
(seconds 86400)
"A read plugin doubles the interval between queries after each
failed attempt to get data.
This options limits the maximum value of the interval."
(serializer collectd-configuration-serialize-field))
(timeout
maybe-integer
"Consider a value list \"missing\" when no update has been read or
received for @code{Iterations} iterations. By default, collectd considers
a value list missing when no update has been received for twice the
update interval. Since this setting uses iterations, the maximum
allowed time without update depends on the @code{Interval} information
contained in each value list. This is used in the @code{Threshold}
configuration to dispatch notifications about missing values, see
@code{collectd-threshold(5)} for details."
(serializer collectd-configuration-serialize-field))
(read-threads
(integer 5)
"Number of threads to start for reading plugins. You may want to
increase this if you have more than five plugins that take a long time
to read. Mostly those are plugins that do network-IO. Setting this to
a value higher than the number of registered read callbacks is not
recommended."
(serializer collectd-configuration-serialize-field))
(write-threads
(integer 5)
"Number of threads to start for dispatching value lists to write
plugins. You may want to increase this if you have more than five
plugins that may take relatively long to write to."
(serializer collectd-configuration-serialize-field))
(write-queue-limit-high
maybe-integer
"Metrics are read by the read threads and then put into a queue to
be handled by the write threads. If one of the write plugins is
slow (e.g. network timeouts, I/O saturation of the disk) this queue
will grow. In order to avoid running into memory issues in such a
case, you can limit the size of this queue.
If there are @code{write-queue-limit-high} metrics in the queue, any
new metrics will be dropped.
If the number of metrics currently in the queue is between
@code{write-queue-limit-low} and @code{write-queue-limit-high}, the
metric is dropped with a probability that is proportional to the
number of metrics in the queue (i.e. it increases linearly until it
reaches 100%)."
(serializer collectd-configuration-serialize-field))
(write-queue-limit-low
maybe-integer
"If there are less than @code{write-queue-limit-low} metrics in the
queue, all new metrics will be enqueued.
If @code{write-queue-limit-high} is set to non-zero and
@code{write-queue-limit-low} is unset, the latter will default to half
of @code{write-queue-limit-high}."
(serializer collectd-configuration-serialize-field))
(host-name
maybe-string
"Sets the hostname that identifies a host. If you omit this setting,
the hostname will be determined using the @code{gethostname(2)} system
call."
(serializer collectd-configuration-serialize-field))
(fully-qualified-domain-name-lookup?
(boolean #t)
"If @code{host-name} is determined automatically, this setting
controls whether or not the daemon should try to figure out the
@acronym{FQDN, fully qualified domain name}. This is done using a
lookup of the name returned by @code{gethostname(2)}."
(serializer collectd-configuration-serialize-field))
(plugins
(list-of-collectd-plugins '())
"Configurations for collectd plugins."
(serializer collectd-serialize-list-of-plugins))
(prefix collectd-))
(define (collectd-configuration-python config)
"Return the Python package collectd was built with, or #f."
(and=> (assoc-ref (package-native-inputs
(collectd-configuration-collectd config))
"python")
car))
(define (collectd-python-packages config)
"Return a list of all packages in Python plugins."
(append-map
(lambda (plugin)
(if (collectd-plugin-python? plugin)
(collectd-plugin-python-packages plugin)
'()))
(collectd-configuration-plugins config)))
(define (collectd-profile-packages config)
"Return packages to include in the profile for collectd."
(let ((python (collectd-configuration-python config))
(python-packages (collectd-python-packages config)))
(cons
(collectd-configuration-collectd config)
;; Only include Python and packages if collectd has support.
(if python
(cons python python-packages)
'()))))
(define (make-collectd-profile-wrapper config)
"Return a gexp representing a wrapper for collectd, which runs it in a profile."
(let* ((collectd (collectd-configuration-collectd config))
(packages (collectd-profile-packages config))
(collectd-profile (profile
(content
(packages->manifest packages)))))
(computed-file
"collectd-profile-wrapper"
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(call-with-output-file #$output
(lambda (output)
(format output
(string-append
"#! ~a~%~%"
". ~a~%"
"exec -a \"${0##*/}\" ~a \"$@\"~%")
#$(file-append bash "/bin/bash")
#$(file-append collectd-profile "/etc/profile")
#$(file-append collectd "/sbin/collectd"))))
(chmod #$output #o755))))))
(define %collectd-pid-file "/var/run/collectd.pid")
(define (make-collectd-shepherd-service config)
(let ((config-file
(mixed-text-file
"collectd.conf"
(serialize-configuration config collectd-configuration-fields))))
(match-record config <collectd-configuration> (collectd)
(shepherd-service
(provision '(collectd))
(documentation "Run collectd.")
(requirement '(user-processes networking))
(start
#~(make-forkexec-constructor
(list #$(make-collectd-profile-wrapper config)
"-C" #$config-file
"-B" ; Don't create base dir.
"-P" #$%collectd-pid-file)
#:pid-file #$%collectd-pid-file))
(stop #~(make-kill-destructor))))))
(define (collectd-activation config)
(match-record config <collectd-configuration> (base-directory)
(with-imported-modules
(source-module-closure '((guix build utils)))
#~(begin
(use-modules (guix build utils))
(mkdir-p #$base-directory)))))
(define collectd-service-type
(service-type
(name 'collectd)
(description "Run collectd")
(extensions
(list
(service-extension shepherd-root-service-type
(compose list make-collectd-shepherd-service))
(service-extension activation-service-type
collectd-activation)))
(compose concatenate)
(extend
(lambda (config plugins)
(collectd-configuration
(inherit config)
(plugins (append (collectd-configuration-plugins config) plugins)))))
(default-value (collectd-configuration))))
-131
View File
@@ -313,15 +313,6 @@
patchwork-virtualhost
patchwork-service-type
sogogi-service-type
sogogi-configuration
sogogi-config-file
sogogi-configuration?
sogogi-user
sogogi-user?
sogogi-location
sogogi-location?
mumi-configuration
mumi-configuration?
mumi-configuration-mumi
@@ -2191,128 +2182,6 @@ WSGIPassAuthorization On
(description
"Patchwork patch tracking system.")))
;;;
;;; sogogi.
;;;
(define (sogogi-serialize-section section-name value fields)
(let ((first-field (car fields)))
#~(format #f "~a ~a {~%~a}~%"
#$(object->string section-name)
#$((configuration-field-getter first-field) value)
#$(serialize-configuration value (cdr fields)))))
(define (sogogi-serialize-field field-name value)
(let ((field (object->string field-name)))
#~(format #f "~a ~a~%" #$field #$value)))
(define sogogi-serialize-string sogogi-serialize-field)
(define (sogogi-serialize-list-of-strings field-name value)
#~(string-append
#$@(map (cut sogogi-serialize-string field-name <>)
value)))
(define-maybe string (prefix sogogi-))
(define-maybe list-of-strings (prefix sogogi-))
(define-configuration sogogi-user
(name
maybe-string
"Name of the user.")
(password
maybe-string
"Password of the user.")
(prefix sogogi-))
(define (sogogi-serialize-sogogi-user field-name value)
(sogogi-serialize-section field-name value sogogi-user-fields))
(define-configuration sogogi-location
(path
string
"HTTP path at which the directory will be exposed.")
(dir
string
"Path to local directory to serve.")
(grant
maybe-list-of-strings
"Grant remote users access to the directory.")
(prefix sogogi-))
(define (sogogi-serialize-sogogi-location field-name value)
(sogogi-serialize-section field-name value sogogi-location-fields))
(define (sogogi-serialize-list-of-sogogi-location field-name value)
#~(string-append #$@(map (cut sogogi-serialize-sogogi-location field-name <>) value)))
(define (sogogi-serialize-list-of-sogogi-user field-name value)
#~(string-append #$@(map (cut sogogi-serialize-sogogi-user field-name <>) value)))
(define list-of-sogogi-user? (list-of sogogi-user?))
(define list-of-sogogi-location? (list-of sogogi-location?))
(define-configuration sogogi-configuration
(listen
(string "localhost:8080")
"Listening address.")
(location
(list-of-sogogi-location '())
"Local directories to expose via a HTTP path.")
(user
(list-of-sogogi-user '())
"Users with access to the location.")
(prefix sogogi-))
(define (sogogi-config-file config)
(mixed-text-file "sogogi.conf"
(serialize-configuration
config
sogogi-configuration-fields)))
(define (sogogi-shepherd-service config)
(let ((config-file (sogogi-config-file config)))
(list (shepherd-service
(documentation "Sogogi daemon.")
(provision '(sogogi))
;; sogogi may be bound to a particular IP address, hence
;; only start it after the networking service has started.
(requirement '(user-processes networking))
(actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor
(list (string-append #$sogogi "/bin/sogogi")
"-config" #$config-file)))
(stop #~(make-kill-destructor))))))
(define sogogi-account-service
(list (user-group (name "sogogi") (system? #t))
(user-account
(name "sogogi")
(group "sogogi")
(system? #t)
(comment "Sogogi daemon user")
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin")))))
(define sogogi-service-type
(service-type (name 'sogogi)
(description "Run the sogogi WebDAV server.")
(extensions
(list (service-extension account-service-type
(const sogogi-account-service))
(service-extension shepherd-root-service-type
sogogi-shepherd-service)))
(compose concatenate)
(default-value (sogogi-configuration))))
;;;
;;; Mumi.
-50
View File
@@ -60,7 +60,6 @@
%test-anonip
%test-go-webdav
%test-patchwork
%test-sogogi
%test-agate
%test-miniflux-admin-string
%test-miniflux-admin-file
@@ -781,55 +780,6 @@ HTTP-PORT."
(description "Connect to a running Patchwork service.")
(value (run-patchwork-test patchwork))))
;;;
;;; sogogi
;;;
(define %sogogi-os
(simple-operating-system
(service dhcpcd-service-type)
(simple-service 'make-http-root activation-service-type
%make-http-root)
(service sogogi-service-type
(sogogi-configuration
(listen ":8080")
(user
(list
(sogogi-user
(name "testuser")
(password "testpass"))))
(location
(list
(sogogi-location
(path "/")
(dir "/srv/http/")
(grant '("all ro" "user:testuser rw")))))))))
(define %test-sogogi
(system-test
(name "sogogi")
(description "Test that the sogogi can handle HTTP requests.")
(value
(let ((http-port 8080))
(run-webserver-test name %sogogi-os
#:http-port http-port
#:extra-tests
#~(begin
(use-modules (srfi srfi-11) (srfi srfi-64)
(gnu build marionette)
(web uri)
(web client)
(web response))
(test-equal "unauthenticated delete"
401
(let-values
(((response _)
(http-delete #$(simple-format
#f "http://localhost:~A/index.html" http-port))))
(response-code response)))))))))
;;;
;;; Agate
+4 -12
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013-2015, 2020-2022, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013-2015, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -123,6 +123,7 @@
"Return a bag for NAME."
(define private-keywords
`(#:cmake #:inputs #:native-inputs
#:implicit-inputs? #:implicit-cross-inputs?
,@(if target '() '(#:target))))
(bag
@@ -161,10 +162,7 @@
(define* (cmake-build name inputs
#:key guile source
(outputs '("out"))
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(configure-flags ''())
(outputs '("out")) (configure-flags ''())
(search-paths '())
(make-flags ''())
(out-of-source? #t)
@@ -233,11 +231,7 @@ provides a 'CMakeLists.txt' file as its build system."
#:graft? #f
#:substitutable? substitutable?
#:allowed-references allowed-references
#:disallowed-references
(or disallowed-references
(and implicit-inputs?
(not allowed-references)
(default-disallowed-references system)))
#:disallowed-references disallowed-references
#:guile-for-build guile)))
@@ -250,8 +244,6 @@ provides a 'CMakeLists.txt' file as its build system."
target
build-inputs target-inputs host-inputs
source guile
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(outputs '("out"))
(configure-flags ''())
(search-paths '())
+2 -24
View File
@@ -37,7 +37,6 @@
gnu-build-system
standard-packages
standard-cross-packages
default-disallowed-references
package-with-explicit-inputs
package-with-extra-configure-variable
static-libgcc-package
@@ -276,20 +275,6 @@ standard packages used as implicit inputs of the GNU build system."
(let ((distro (resolve-module '(gnu packages commencement))))
((module-ref distro '%final-inputs) system)))
(define default-disallowed-references
(mlambda (system)
"Return the set of disallowed references for SYSTEM--i.e., build-time
dependencies that build outputs should not refer to by default."
;; XXX: Ideally we would mark all of them but this is too ambitious at
;; this stage: many packages keep a reference to coreutils, grep, etc.
(filter-map (match-lambda
(("gcc" gcc) gcc)
(("binutils" binutils) binutils)
(("ld-wrapper" ld-wrapper) ld-wrapper)
(("libc:static" libc "static") (gexp-input libc "static"))
(_ #f))
(standard-packages system))))
(define* (lower name
#:key source inputs native-inputs outputs target
(implicit-inputs? #t) (implicit-cross-inputs? #t)
@@ -299,6 +284,7 @@ dependencies that build outputs should not refer to by default."
"Return a bag for NAME from the given arguments."
(define private-keywords
`(#:inputs #:native-inputs #:outputs
#:implicit-inputs? #:implicit-cross-inputs?
,@(if target '() '(#:target))))
(bag
@@ -355,8 +341,6 @@ dependencies that build outputs should not refer to by default."
guile source
(outputs '("out"))
(search-paths '())
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(bootstrap-scripts %bootstrap-scripts)
(configure-flags ''())
(make-flags ''())
@@ -449,11 +433,7 @@ are allowed to refer to."
#:graft? #f
#:substitutable? substitutable?
#:allowed-references allowed-references
#:disallowed-references
(or disallowed-references
(and implicit-inputs?
(not allowed-references)
(default-disallowed-references system)))
#:disallowed-references disallowed-references
#:guile-for-build guile)))
@@ -498,8 +478,6 @@ is one of `host' or `target'."
target
build-inputs target-inputs host-inputs
guile source
(implicit-inputs? #t)
(implicit-cross-inputs? #t)
(outputs '("out"))
(search-paths '())
(native-search-paths '())
+51 -66
View File
@@ -2,7 +2,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2019-2026 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019-2025 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -101,9 +101,8 @@ Cargo.toml file present at its root."
" | cut -d/ -f2"
" | grep -q '^Cargo.toml$'"))))))
(define* (prepare-rust-crates #:key inputs (vendor-dir "guix-vendor")
#:allow-other-keys)
"Find the rust-crate inputs and cache them for future use."
(define* (unpack-rust-crates #:key inputs (vendor-dir "guix-vendor")
#:allow-other-keys)
(define (inputs->rust-inputs inputs)
"Filter using the label part from INPUTS."
(filter (lambda (input)
@@ -116,71 +115,30 @@ Cargo.toml file present at its root."
(((names . directories) ...)
directories)))
(chmod "." #o755)
(let ((rust-inputs (inputs->directories (inputs->rust-inputs inputs))))
(unless (null? rust-inputs)
(let ((crate-cache "/tmp/rust-crates/"))
(mkdir-p crate-cache)
(mkdir-p vendor-dir)
(for-each
(lambda (input-crate)
(when (file-exists?
(string-append input-crate "/share/cargo/registry"))
(for-each
(lambda (packaged-crate)
(unless
(file-exists?
(string-append crate-cache (basename packaged-crate)))
(install-file packaged-crate crate-cache))
;; TODO: Move this to 'unpack-rust-crates.
;; Unpack the inputs from rust-sources.
(invoke "tar" "xzf" packaged-crate "-C" vendor-dir))
(find-files
(string-append input-crate "/share/cargo/registry")
"\\.crate$")))
(unless
(file-exists?
(string-append crate-cache (strip-store-file-name input-crate)))
(copy-file input-crate
(string-append
crate-cache (strip-store-file-name input-crate)))))
(delete-duplicates rust-inputs))))))
(mkdir-p "target/package")
(mkdir-p vendor-dir)
;; TODO: copy only regular inputs to target/package, not native-inputs.
(for-each
(lambda (input-crate)
(for-each
(lambda (packaged-crate)
(unless
(file-exists?
(string-append "target/package/" (basename packaged-crate)))
(install-file packaged-crate "target/package/")))
(find-files
(string-append input-crate "/share/cargo/registry") "\\.crate$")))
(delete-duplicates rust-inputs))
(for-each (lambda (crate)
(invoke "tar" "xzf" crate "-C" vendor-dir))
(find-files "target/package" "\\.crate$")))))
(define (rust-package? name)
(string-prefix? "rust-" name))
(define* (unpack-rust-crates #:key source inputs (vendor-dir "guix-vendor")
#:allow-other-keys)
"Vendor Cargo.toml dependencies as guix inputs."
;; Prepare one new directory with all the required dependencies.
;; It's necessary to do this (instead of just using /gnu/store as the
;; directory) because we want to hide the libraries in subdirectories
;; share/rust-source/... instead of polluting the user's profile root.
(chmod "." #o755)
(mkdir-p vendor-dir)
(for-each
(match-lambda
((name . path)
(let* ((basepath (strip-store-file-name path))
(crate-dir (string-append vendor-dir "/" basepath)))
(and (crate-src? path #:source source)
;; Gracefully handle duplicate inputs
(not (file-exists? crate-dir))
(if (directory-exists? path)
(copy-recursively path crate-dir)
(begin
(mkdir-p crate-dir)
;; Cargo crates are simply gzipped tarballs but with a
;; .crate extension. We expand the source to a directory
;; name we control so that we can generate any cargo
;; checksums. The --strip-components argument is needed to
;; prevent creating an extra directory within `crate-dir`.
(format #t "Unpacking ~a~%" name)
(invoke "tar" "xf" path "-C" crate-dir
"--strip-components" "1")))))))
inputs))
(define* (check-for-pregenerated-files #:key parallel-build? #:allow-other-keys)
"Check the source code for files which are known to generally be bundled
libraries or executables."
@@ -211,7 +169,35 @@ libraries or executables."
(cargo-target #f)
(vendor-dir "guix-vendor")
#:allow-other-keys)
"Prepare the environment for building the rust package."
"Vendor Cargo.toml dependencies as guix inputs."
(chmod "." #o755)
;; Prepare one new directory with all the required dependencies.
;; It's necessary to do this (instead of just using /gnu/store as the
;; directory) because we want to hide the libraries in subdirectories
;; share/rust-source/... instead of polluting the user's profile root.
(mkdir-p vendor-dir)
(for-each
(match-lambda
((name . path)
(let* ((basepath (strip-store-file-name path))
(crate-dir (string-append vendor-dir "/" basepath)))
(and (crate-src? path #:source source)
;; Gracefully handle duplicate inputs
(not (file-exists? crate-dir))
(if (directory-exists? path)
(copy-recursively path crate-dir)
(begin
(mkdir-p crate-dir)
;; Cargo crates are simply gzipped tarballs but with a
;; .crate extension. We expand the source to a directory
;; name we control so that we can generate any cargo
;; checksums. The --strip-components argument is needed to
;; prevent creating an extra directory within `crate-dir`.
(format #t "Unpacking ~a~%" name)
(invoke "tar" "xf" path "-C" crate-dir
"--strip-components" "1")))))))
inputs)
;; For cross-building
(when target
(setenv "CARGO_BUILD_TARGET" cargo-target)
@@ -478,8 +464,7 @@ directory = '" vendor-dir "'") port)
(replace 'check check)
(replace 'install install)
(add-after 'build 'package package)
(add-after 'unpack 'prepare-rust-crates prepare-rust-crates)
(add-after 'prepare-rust-crates 'unpack-rust-crates unpack-rust-crates)
(add-after 'unpack 'unpack-rust-crates unpack-rust-crates)
(add-after 'configure 'check-for-pregenerated-files check-for-pregenerated-files)
(add-after 'patch-generated-file-shebangs 'patch-cargo-checksums patch-cargo-checksums)))
+1 -10
View File
@@ -62,14 +62,6 @@ that incorporate timestamps as a way to tell them to use a fixed timestamp.
See https://reproducible-builds.org/specs/source-date-epoch/."
(setenv "SOURCE_DATE_EPOCH" "1"))
(define* (set-GUIX_GCC_MANGLE_PREFIX_MAP #:rest _)
"Set the 'GUIX_GCC_MANGLE_PREFIX_MAP' environment variable.
Guix applies 'gcc-mangle-guix-store.patch' to ensure that there are no
hardcoded references to inputs from the store in derivation outputs due to
macro expansions of __FILE__. Prefix mangling is enabled when this variable
is set. See https://codeberg.org/guix/guix/issues/2394."
(setenv "GUIX_GCC_MANGLE_PREFIX_MAP" "1"))
(define (first-subdirectory directory)
"Return the file name of the first sub-directory of DIRECTORY or false, when
there are none."
@@ -944,8 +936,7 @@ that traversing all the RUNPATH entries entails."
(let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...)))))
(phases separate-from-pid1
set-GUIX_GCC_MANGLE_PREFIX_MAP set-SOURCE-DATE-EPOCH
set-paths install-locale unpack
set-SOURCE-DATE-EPOCH set-paths install-locale unpack
bootstrap
patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs
+1 -2
View File
@@ -1455,8 +1455,7 @@ and in the current monad setting (system type, etc.)"
(($ <gexp-input> (? self-quoting? x))
(return x))
(($ <gexp-input> x)
(raise (condition (&gexp-input-error (input x))
(&error-location (location (gexp-location exp))))))
(raise (condition (&gexp-input-error (input x)))))
(x
(return x)))))
+42 -49
View File
@@ -61,7 +61,6 @@
gnu-package-download-url
official-gnu-packages
official-gnu-packages*
find-package
gnu-package?
@@ -182,13 +181,6 @@ to fetch the list of GNU packages over HTTP."
(close-port port)
lst)))
(define official-gnu-packages*
(mlambda ()
"A memoizing version of 'official-gnu-packages' that returns the empty
list when something goes wrong, such as a networking issue."
(let ((gnus (false-if-exception (official-gnu-packages))))
(or gnus '()))))
(define (find-package name)
"Find GNU package called NAME and return it. Return #f if it was not
found."
@@ -197,50 +189,51 @@ found."
(official-gnu-packages)))
(define gnu-package?
(mlambdaq (package)
"Return true if PACKAGE is a GNU package. This procedure may access the
(let ((official-gnu-packages (memoize official-gnu-packages)))
(mlambdaq (package)
"Return true if PACKAGE is a GNU package. This procedure may access the
network to check in GNU's database."
(define (mirror-type url)
(let ((uri (string->uri url)))
(and (eq? (uri-scheme uri) 'mirror)
(cond
((member (uri-host uri)
'("gnu" "gnupg" "gcc" "gnome"))
;; Definitely GNU.
'gnu)
((equal? (uri-host uri) "cran")
;; Possibly GNU: mirror://cran could be either GNU R itself
;; or a non-GNU package.
#f)
(else
;; Definitely non-GNU.
'non-gnu)))))
(define (mirror-type url)
(let ((uri (string->uri url)))
(and (eq? (uri-scheme uri) 'mirror)
(cond
((member (uri-host uri)
'("gnu" "gnupg" "gcc" "gnome"))
;; Definitely GNU.
'gnu)
((equal? (uri-host uri) "cran")
;; Possibly GNU: mirror://cran could be either GNU R itself
;; or a non-GNU package.
#f)
(else
;; Definitely non-GNU.
'non-gnu)))))
(define (gnu-home-page? package)
(letrec-syntax ((>> (syntax-rules ()
((_ value proc)
(and=> value proc))
((_ value proc rest ...)
(and=> value
(lambda (next)
(>> (proc next) rest ...)))))))
(>> package package-home-page
string->uri uri-host
(lambda (host)
(member host '("www.gnu.org" "gnu.org"))))))
(define (gnu-home-page? package)
(letrec-syntax ((>> (syntax-rules ()
((_ value proc)
(and=> value proc))
((_ value proc rest ...)
(and=> value
(lambda (next)
(>> (proc next) rest ...)))))))
(>> package package-home-page
string->uri uri-host
(lambda (host)
(member host '("www.gnu.org" "gnu.org"))))))
(or (gnu-home-page? package)
(match (package-source package)
((? origin? origin)
(let ((url (origin-uri origin))
(name (package-upstream-name package)))
(case (and (string? url) (mirror-type url))
((gnu) #t)
((non-gnu) #f)
(else
(and (member name (map gnu-package-name (official-gnu-packages*)))
#t)))))
(_ #f)))))
(or (gnu-home-page? package)
(match (package-source package)
((? origin? origin)
(let ((url (origin-uri origin))
(name (package-upstream-name package)))
(case (and (string? url) (mirror-type url))
((gnu) #t)
((non-gnu) #f)
(else
(and (member name (map gnu-package-name (official-gnu-packages)))
#t)))))
(_ #f))))))
;;;
+8 -11
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015-2018, 2020-2021, 2023, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015-2018, 2020-2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
@@ -183,21 +183,18 @@ REPO."
(define (elpa-version->string elpa-version repo name)
"Convert the package version as used in Emacs package files into a string."
(if (pair? elpa-version)
(if (every (cut >= <> 0) elpa-version)
(if (every positive? elpa-version)
(let-values (((ms rest) (match elpa-version
((ms . rest)
(values ms rest)))))
(fold (lambda (n s) (string-append s "." (number->string n)))
(number->string ms) rest))
(if (eq? 'gnu-devel repo)
(version-from-elpa-devel-feed name)
(raise
(formatted-message
(G_ "invalid ELPA package version ~s for '~a'")
elpa-version name))))
(raise (formatted-message
(G_ "invalid ELPA package version ~s for '~a' in repository '~a'")
elpa-version repo name))))
(begin
(info (G_ "Package version for ~s contains non numeric part.~%") name)
(if (eq? 'gnu-devel repo)
(version-from-elpa-devel-feed name)
#f)))
#f))
(define (package-home-page alist)
"Extract the package home-page from ALIST."
+7
View File
@@ -1237,6 +1237,13 @@ upstream status")
'()
str)))
(define official-gnu-packages*
(mlambda ()
"A memoizing version of 'official-gnu-packages' that returns the empty
list when something goes wrong, such as a networking issue."
(let ((gnus (false-if-exception (official-gnu-packages))))
(or gnus '()))))
(define (check-gnu-synopsis+description package)
"Make sure that, if PACKAGE is a GNU package, it uses the synopsis and
descriptions maintained upstream."
+1 -1
View File
@@ -964,7 +964,7 @@ identifiers. The result is inferred from the file names of patches."
("gzip" ,(ref '(gnu packages compression) 'gzip))
("lzip" ,(ref '(gnu packages compression) 'lzip))
("unzip" ,(ref '(gnu packages compression) 'unzip))
("patch" ,(ref '(gnu packages base) 'patch)))))
("patch" ,(ref '(gnu packages base) 'patch/pinned)))))
(define (default-guile)
"Return the default Guile package used to run the build code of
-19
View File
@@ -24,7 +24,6 @@
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:use-module (ice-9 rdelim)
#:autoload (system syntax) (syntax-local-binding)
#:export (define-record-type*
this-record
@@ -207,23 +206,6 @@ of TYPE matches the expansion-time ABI."
index
(loop rest (+ 1 index))))))))
(define (check-shadowing identifier)
;; Warn if IDENTIFIER shadows a local binding.
;; Note: not using (guix diagnostics) to remain independent of
;; other Guix modules.
(when (eq? 'lexical (syntax-local-binding identifier))
(format (current-warning-port)
"~a: inherited field binding '~a' of \
record type '~a' shadows local variable~%"
(match (syntax-source identifier)
(#f "<unknown-location>")
(lst (format #f "~a:~a:~a"
(assq-ref lst 'filename)
(and=> (assq-ref lst 'line) 1+)
(assq-ref lst 'column))))
(syntax->datum identifier)
(syntax->datum #'type))))
(define* (wrap-field-value f value #:optional parent)
;; Wrap VALUE, the value of field F, such that its sanitizer is
;; called and its properties (thunked, delayed) honored. When
@@ -240,7 +222,6 @@ record type '~a' shadows local variable~%"
#`((struct-ref #,parent
#,(field-index f))
#,this-identifier)))
(check-shadowing f)
#`(lambda (x)
(syntax-parameterize ((#,this-identifier
(lambda (s)

Some files were not shown because too many files have changed in this diff Show More