forked from tribes/guix
Compare commits
234 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2b0c3632a0 | |||
| e88bb11646 | |||
| d0ff93c699 | |||
| ef93d7ea28 | |||
| a53bddbee1 | |||
| 8ff2eff817 | |||
| 6728a2d1d6 | |||
| d7fa6d0e9f | |||
| f075ff26d1 | |||
| 682c9c4462 | |||
| 5e8af7fd4b | |||
| f9767a93d9 | |||
| 116078f366 | |||
| 51abc3b55e | |||
| 4d787faff2 | |||
| 93251e230a | |||
| f0a2db05b2 | |||
| 27562c019a | |||
| 51a5bbb2ef | |||
| 7321e7a8e2 | |||
| 1e6bb1bc90 | |||
| 854b972a45 | |||
| 670d338fbd | |||
| c0d0623d4f | |||
| a2c5f06434 | |||
| 2e76f50640 | |||
| 2f1badab08 | |||
| 41b969692d | |||
| aeb969a803 | |||
| 30961bc306 | |||
| 438bb5cf9e | |||
| 83ffe3741b | |||
| 343165e912 | |||
| a48e520b4c | |||
| c51ecda4eb | |||
| 62da5ac40c | |||
| 762a244077 | |||
| 0598da6766 | |||
| 7ecda67dfa | |||
| 5b086540ac | |||
| 852357a9cd | |||
| e24af7c41b | |||
| 9ce1a7c861 | |||
| e46f164339 | |||
| ff1ac2d8c1 | |||
| 13852f8ef2 | |||
| b23bdf0e95 | |||
| 0c50d99e08 | |||
| 616abd90a3 | |||
| ca1bea7e6e | |||
| 6a35591167 | |||
| de1f3a6a13 | |||
| cedf6b9d33 | |||
| 094fbe8128 | |||
| 2b2b8ed19a | |||
| a4c690a0bd | |||
| ce0de9af97 | |||
| e575cca11a | |||
| b9c6079ace | |||
| ad681ea6fe | |||
| bbc3f12905 | |||
| a230916e9f | |||
| 915a5a56fe | |||
| 2951273b2a | |||
| 1ff314262f | |||
| 11f2371a39 | |||
| 9e5d5f4f6e | |||
| 650bb0b290 | |||
| 87b22cd67b | |||
| 85cbe9ff8b | |||
| da57655d99 | |||
| 76635c116a | |||
| fe52920ff2 | |||
| 73518d088b | |||
| 1601b63d74 | |||
| ee796c94da | |||
| ecc9d6e393 | |||
| 1b2e301ad9 | |||
| 0749348e9a | |||
| eb504359c7 | |||
| 96a3900127 | |||
| 26b8e85a12 | |||
| 1a7796a334 | |||
| 655b989c44 | |||
| 5fb085a35a | |||
| 8ab681e719 | |||
| e01cd762c6 | |||
| 6a73e41b81 | |||
| 18062a4710 | |||
| 1afe21e4ae | |||
| e639999ba7 | |||
| ddfa1235b2 | |||
| 431298f758 | |||
| 77d13c3a16 | |||
| a17330a50b | |||
| 26ac487220 | |||
| ff2eb538f3 | |||
| 01db7c7a12 | |||
| bea5299175 | |||
| e8d0787042 | |||
| 4eefbf3079 | |||
| cfb55cf36b | |||
| 8aa698ee7a | |||
| f61274db0c | |||
| 74445bfa5e | |||
| 3ccf2a67ec | |||
| 569ee1b1c1 | |||
| 94565a7df0 | |||
| 16c461c334 | |||
| 88d75f99c3 | |||
| e8de387e89 | |||
| 8fcb1ba3ca | |||
| 1ba81294a0 | |||
| 63ec3ea6ba | |||
| 1360ae9d1f | |||
| 3de79be30e | |||
| ac87e13e8e | |||
| 36127046cd | |||
| 68a87db1b2 | |||
| d4f07f70c3 | |||
| bb1bdba4d1 | |||
| a206579e3b | |||
| 9318fe39a1 | |||
| a716d79072 | |||
| f505ea1801 | |||
| a20b005d15 | |||
| 8fef6ff08b | |||
| 9cc22e2c08 | |||
| f03011ae47 | |||
| c1baeeeda4 | |||
| 4c4c4a820f | |||
| e25523df83 | |||
| 0b19501611 | |||
| 1545e057bc | |||
| 8713bb89ec | |||
| c7efc967eb | |||
| cd22c1ad8f | |||
| 17f801ee5e | |||
| 3eeff7cc21 | |||
| ea44e60c30 | |||
| ebf496e893 | |||
| 41fd9df171 | |||
| bbb223548c | |||
| 2fef3e0fed | |||
| 3ce565ecaf | |||
| 7cdf8b3c5b | |||
| 55c1c939e2 | |||
| dceb57d6d9 | |||
| f571658b70 | |||
| c144b645bb | |||
| 78ea5dd4af | |||
| 0a88a73fa9 | |||
| 788e57cba4 | |||
| d9d725c991 | |||
| 7ec8a42a2f | |||
| b408c255ac | |||
| 327409219d | |||
| 56644e8eea | |||
| bfcb8b97ab | |||
| 93318a0e10 | |||
| be02d52548 | |||
| 73a8f8daab | |||
| 08235b1973 | |||
| 03e0d52f32 | |||
| c5e9b92f55 | |||
| 47be4e3308 | |||
| 163f2ebacb | |||
| aaf135adf7 | |||
| 1f5c8dd270 | |||
| 7095f1b42e | |||
| 3691bb640d | |||
| d33bc4b598 | |||
| 5fb2dadefc | |||
| 93b5b6f0c7 | |||
| f0e22ae62c | |||
| e3a708ed79 | |||
| 365dbc5b1c | |||
| 0a8acc0059 | |||
| 425aa1bf7c | |||
| 3b90fc5b3c | |||
| 785f4c6ed9 | |||
| 1b08655ef8 | |||
| 2296d75f8d | |||
| 3c5ad0ebc0 | |||
| af653b283c | |||
| 0b5e1ada2e | |||
| 05b247befe | |||
| 7aeb5d0483 | |||
| 7cd78468a2 | |||
| 0218c4136a | |||
| d768c5c273 | |||
| 76e3a33a1d | |||
| 504c8a3592 | |||
| 5d42aec734 | |||
| b990bf1d54 | |||
| af442f4a25 | |||
| b216fbd3e5 | |||
| 510e367d5e | |||
| 1b135e3bb5 | |||
| af265cd44a | |||
| d764999b2b | |||
| deba95e558 | |||
| 682b4d9b6f | |||
| 1b8583327d | |||
| 3e73fb5fad | |||
| ee567ba7b9 | |||
| 109e9d4a2f | |||
| ea8037f1fd | |||
| bf590448eb | |||
| 5799e25293 | |||
| db729644d9 | |||
| 6dfc28ab1e | |||
| 3f3cec8993 | |||
| 829b7e108d | |||
| 684b1ab605 | |||
| 695243cbda | |||
| 36ae0026e0 | |||
| 432daf5e2b | |||
| 8b5e419c25 | |||
| 5f221c486e | |||
| 21946173a0 | |||
| 23fb319fdd | |||
| 7073c9a124 | |||
| 5da6907190 | |||
| f0db9f5b35 | |||
| c8bc423b87 | |||
| 31affbfd60 | |||
| 2c7ee93beb | |||
| 3050f81301 | |||
| c5075bc31d | |||
| 4d80135c49 | |||
| b850e968e9 | |||
| ceffc5eed0 | |||
| 34683a7c42 |
@@ -1276,7 +1276,9 @@ 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 set-SOURCE-DATE-EPOCH set-paths install-locale unpack
|
||||
(phases 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
|
||||
@@ -1298,7 +1300,7 @@ Or from the REPL:
|
||||
(add-to-load-path "/path/to/guix/checkout")
|
||||
,use (guix build gnu-build-system)
|
||||
(map car %standard-phases)
|
||||
@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)
|
||||
@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)
|
||||
@end lisp
|
||||
|
||||
If you want to know more about what happens during those phases, consult the
|
||||
|
||||
+394
@@ -34106,6 +34106,300 @@ 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
|
||||
@@ -35893,6 +36187,75 @@ 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
|
||||
@@ -53813,6 +54176,7 @@ 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.
|
||||
@@ -54736,6 +55100,36 @@ 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
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
;;; 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.
|
||||
;;;
|
||||
@@ -19,14 +20,20 @@
|
||||
(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-kodi-service-type
|
||||
|
||||
home-jellyfin-mpv-shim-configuration
|
||||
home-jellyfin-mpv-shim-service-type))
|
||||
|
||||
|
||||
;;;
|
||||
@@ -66,3 +73,40 @@
|
||||
(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.")))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2023, 2026 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2023 Brian Cully <bjc@spork.org>
|
||||
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
@@ -193,8 +193,10 @@ 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"
|
||||
load-module module-rtp-send source=rtp.monitor rate=44100"
|
||||
(if destination-ip
|
||||
(string-append
|
||||
" destination_ip="
|
||||
|
||||
+6
-7
@@ -75,6 +75,7 @@
|
||||
# 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.
|
||||
#
|
||||
@@ -1063,6 +1064,7 @@ 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 \
|
||||
@@ -1318,6 +1320,7 @@ 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 \
|
||||
@@ -1375,6 +1378,7 @@ 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 \
|
||||
@@ -1442,7 +1446,6 @@ 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 \
|
||||
@@ -1484,6 +1487,7 @@ 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 \
|
||||
@@ -1498,7 +1502,6 @@ 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 \
|
||||
@@ -1825,8 +1828,6 @@ 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 \
|
||||
@@ -1857,7 +1858,6 @@ 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,7 +1983,6 @@ 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 \
|
||||
@@ -2086,9 +2085,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 \
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
(define-public acl
|
||||
(package
|
||||
(name "acl")
|
||||
(version "2.3.1")
|
||||
(version "2.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -51,7 +51,7 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bqi7hj0xkpivwg7lx5cv3yvs9ks1i6azvpgbvfpzcq1i736233n"))))
|
||||
"0z1gi82zc2xcbchfagd7apn2s7camaagj8y6hmysl1wpcanxnasz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((ice-9 ftw)
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages ruby)
|
||||
#:use-module (gnu packages swig)
|
||||
@@ -92,6 +93,7 @@
|
||||
libtool
|
||||
perl
|
||||
python-minimal
|
||||
python-setuptools
|
||||
ruby
|
||||
swig-4.0
|
||||
which))
|
||||
|
||||
+57
-43
@@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2012-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012-2018, 2020-2022, 2026 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.69)
|
||||
(define-public autoconf autoconf-2.72)
|
||||
|
||||
(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.17")
|
||||
(version "1.18.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/automake/automake-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"146rkdcwri2dkwn3pjrjs9v0wm4xyav9vvq4yw5vj4qy87yc2849"))
|
||||
"11v8ckqx7z8hv4mq9dnhg58cwnssaa7l9136yndbhlc34xis72hn"))
|
||||
(patches
|
||||
(search-patches "automake-skip-amhello-tests.patch"))))
|
||||
(arguments
|
||||
@@ -483,16 +483,14 @@ Makefile, simplifying the entire process for the developer.")
|
||||
(define-public libtool
|
||||
(package
|
||||
(name "libtool")
|
||||
(version "2.4.7")
|
||||
(version "2.5.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libtool/libtool-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))
|
||||
(patches (search-patches "libtool-skip-tests2.patch"
|
||||
"libtool-grep-compat.patch"))))
|
||||
"0xb64rhambx6mhxwr613xgyad7ybs5hgmpmd9gccf2vbcrh5h7zq"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs (list m4))
|
||||
(native-inputs
|
||||
@@ -506,43 +504,59 @@ Makefile, simplifying the entire process for the developer.")
|
||||
autoconf-wrapper)) ; others on 'autom4te'
|
||||
|
||||
(arguments
|
||||
`(;; Libltdl is provided as a separate package, so don't install it here.
|
||||
#:configure-flags '("--disable-ltdl-install")
|
||||
(list ;; Libltdl is provided as a separate package, so don't install it here.
|
||||
#:configure-flags #~'("--disable-ltdl-install")
|
||||
|
||||
;; 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))))
|
||||
;; The 'libtool' script refers to the toolchain; tolerate it.
|
||||
#:disallowed-references '()
|
||||
|
||||
#: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))))))))
|
||||
;; 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))))))))
|
||||
|
||||
(synopsis "Generic shared library support tools")
|
||||
(description
|
||||
|
||||
+78
-85
@@ -77,6 +77,8 @@
|
||||
#: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)
|
||||
@@ -891,94 +893,85 @@ is like a time machine for your data.")
|
||||
(define-public restic
|
||||
(package
|
||||
(name "restic")
|
||||
(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"))))
|
||||
(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"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
`(;; 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"))))
|
||||
(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
|
||||
|
||||
(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))))))
|
||||
;; 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))
|
||||
(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
|
||||
|
||||
+320
-343
@@ -24,6 +24,7 @@
|
||||
;;; 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.
|
||||
;;;
|
||||
@@ -119,14 +120,14 @@ command-line arguments, multiple languages, and so on.")
|
||||
(define-public grep
|
||||
(package
|
||||
(name "grep")
|
||||
(version "3.11")
|
||||
(version "3.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/grep/grep-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1avf4x8skxbqrjp5j2qr9sp5vlf8jkw2i5bdn51fl3cxx3fsxchx"))
|
||||
"1f87i907dzw31xy1xr8xjj6z9979qq3bwmypvkm35rlh1ryb4j96"))
|
||||
(patches (search-patches "grep-timing-sensitive-test.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list perl)) ;some of the tests require it
|
||||
@@ -247,47 +248,49 @@ implementation offers several extensions over the standard utility.")
|
||||
(build-system gnu-build-system)
|
||||
;; Note: test suite requires ~1GiB of disk space.
|
||||
(arguments
|
||||
`(,@(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")))))))))
|
||||
(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")))))))))
|
||||
|
||||
;; When cross-compiling, the 'set-shell-file-name' phase needs to be able
|
||||
;; to refer to the target Bash.
|
||||
@@ -306,41 +309,8 @@ 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
|
||||
@@ -350,13 +320,27 @@ differences.")
|
||||
(sha256
|
||||
(base32
|
||||
"1qssgwgy3mfahkpgg99a35gl38vamlqb15m3c2zzrd62xrlywz7q"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments patch/pinned)
|
||||
((#:configure-flags flags #~'())
|
||||
(if (target-hurd32?)
|
||||
#~(cons* "--disable-year2038"
|
||||
#$flags)
|
||||
flags))))
|
||||
(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/")
|
||||
(properties '())))
|
||||
|
||||
(define-public diffutils
|
||||
@@ -632,20 +616,21 @@ standard.")
|
||||
(inputs (list guile-3.0))
|
||||
(outputs '("out" "debug"))
|
||||
(arguments
|
||||
`(,@(if (target-hurd?)
|
||||
'(#:configure-flags '("CFLAGS=-D__alloca=alloca"
|
||||
"ac_cv_func_posix_spawn=no"))
|
||||
'())
|
||||
(append
|
||||
(if (target-hurd?)
|
||||
(list #:configure-flags '("CFLAGS=-D__alloca=alloca"
|
||||
"ac_cv_func_posix_spawn=no"))
|
||||
(list))
|
||||
(list
|
||||
#: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")))
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'build 'set-default-shell
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Change the default shell from /bin/sh.
|
||||
(substitute* "src/job.c"
|
||||
(("default_shell =.*$")
|
||||
(format #f "default_shell = \"~a/bin/sh\";\n"
|
||||
bash)))))))))
|
||||
(format #f "default_shell = \"~a\";\n"
|
||||
(search-input-file inputs "/bin/sh"))))))))))
|
||||
(synopsis "Remake files automatically")
|
||||
(description
|
||||
"Make is a program that is used to control the production of
|
||||
@@ -669,17 +654,17 @@ change. GNU make offers many powerful extensions over the standard utility.")
|
||||
(base32
|
||||
"12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"))))
|
||||
(arguments
|
||||
`(#: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)))))))))))
|
||||
(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")))))))))))
|
||||
|
||||
(define-public binutils
|
||||
(package
|
||||
@@ -693,6 +678,7 @@ 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)
|
||||
@@ -728,7 +714,8 @@ 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'
|
||||
(native-inputs (list bison ;needed to build 'gprofng'
|
||||
perl)) ;needed to build the man pages (pod2man)
|
||||
(synopsis "Binary utilities: bfd gas gprof ld")
|
||||
(description
|
||||
"GNU Binutils is a collection of tools for working with binary files.
|
||||
@@ -908,8 +895,10 @@ 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"
|
||||
@@ -918,10 +907,11 @@ 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
|
||||
@@ -940,7 +930,6 @@ 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
|
||||
@@ -956,247 +945,257 @@ the store.")
|
||||
"static")) ;9 MiB of .a files
|
||||
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
(list
|
||||
#: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)
|
||||
#:modules `((ice-9 ftw)
|
||||
(ice-9 match)
|
||||
(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))
|
||||
|
||||
(string-append "--with-headers="
|
||||
(assoc-ref ,(if (%current-target-system)
|
||||
'%build-target-inputs
|
||||
'%build-inputs)
|
||||
"kernel-headers")
|
||||
"/include")
|
||||
;; Here we need to refer to kernel headers and not glibc-mesboot
|
||||
(string-append
|
||||
"--with-headers="
|
||||
(and=>
|
||||
(find
|
||||
(match-lambda
|
||||
((label . input)
|
||||
(and (file-exists?
|
||||
(string-append input "/include/asm/ioctl.h"))
|
||||
;; 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")
|
||||
|
||||
;; 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="
|
||||
(assoc-ref %build-inputs "bash")
|
||||
"/bin/bash")
|
||||
;; Use our Bash instead of /bin/sh.
|
||||
(string-append "BASH_SHELL="
|
||||
(search-input-file %build-inputs "/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 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")))
|
||||
#: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")))
|
||||
|
||||
(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* (#: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.
|
||||
(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.
|
||||
|
||||
(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 (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 (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* ((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)
|
||||
(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)
|
||||
|
||||
;; 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))))))
|
||||
;; 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))))))
|
||||
|
||||
(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)
|
||||
(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)
|
||||
|
||||
;; 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* (#: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))))))
|
||||
'()))))
|
||||
#$@(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))))))
|
||||
'()))))
|
||||
|
||||
(inputs `(("static-bash" ,static-bash)))
|
||||
(inputs (list static-bash))
|
||||
|
||||
;; To build the manual, we need Texinfo and Perl. Gettext is needed to
|
||||
;; install the message catalogs, with 'msgfmt'.
|
||||
(native-inputs `(("texinfo" ,texinfo)
|
||||
("perl" ,perl)
|
||||
("bison" ,bison)
|
||||
("gettext" ,gettext-minimal)
|
||||
("python" ,python-minimal)
|
||||
|
||||
,@(if (target-hurd?)
|
||||
`(("mig" ,mig)
|
||||
("perl" ,perl))
|
||||
'())))
|
||||
|
||||
(native-inputs
|
||||
(append
|
||||
(list bison
|
||||
gettext-minimal
|
||||
perl
|
||||
python-minimal
|
||||
texinfo)
|
||||
(if (target-hurd?)
|
||||
(list mig)
|
||||
(list))))
|
||||
(native-search-paths
|
||||
;; Search path for packages that provide locale data. This is useful
|
||||
;; primarily in build environments. Use 'GUIX_LOCPATH' rather than
|
||||
@@ -1218,17 +1217,6 @@ 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
|
||||
@@ -1310,8 +1298,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
|
||||
@@ -1352,9 +1340,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."
|
||||
@@ -1555,18 +1543,7 @@ 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
|
||||
(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 glibc)
|
||||
|
||||
(define-public glibc/hurd-headers
|
||||
(package/inherit glibc/hurd
|
||||
|
||||
+10
-44
@@ -66,7 +66,7 @@
|
||||
|
||||
(define (patch-url seqno)
|
||||
"Return the URL of Bash patch number SEQNO."
|
||||
(format #f "mirror://gnu/bash/bash-5.2-patches/bash52-~3,'0d" seqno))
|
||||
(format #f "mirror://gnu/bash/bash-5.3-patches/bash53-~3,'0d" seqno))
|
||||
|
||||
(define (bash-patch seqno sha256-bv)
|
||||
"Return the origin of Bash patch SEQNO, with expected hash SHA256-BV."
|
||||
@@ -79,47 +79,13 @@
|
||||
(list (bash-patch seqno (base32 hash))
|
||||
...))
|
||||
|
||||
(define %patch-series-5.2
|
||||
;; This is the current patches series for 5.2, generated using
|
||||
(define %patch-series-5.3
|
||||
;; This is the current patches series for 5.3, generated using
|
||||
;; 'download-patches' below.
|
||||
(patch-series
|
||||
(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")))
|
||||
(1 "0zr8wgg1gb67vxn7ws971n1znrdinczymc688ndnpy2a6qs88q0z")
|
||||
(2 "009051z55plsy4jmmjdb3ys7li2jraynz99qg7n6a1qk025591g3")
|
||||
(3 "1vb0gnrkmz49rcfpxjcxy0v0k5278wrlkljk9gc20nizvk3xjigj")))
|
||||
|
||||
(define (download-patches store count)
|
||||
"Download COUNT Bash patches into store. Return a list of
|
||||
@@ -157,7 +123,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
|
||||
" -Wl,-rpath -Wl,"
|
||||
(assoc-ref %build-inputs "ncurses")
|
||||
"/lib")))
|
||||
(version "5.2"))
|
||||
(version "5.3"))
|
||||
(package
|
||||
(name "bash")
|
||||
(source (origin
|
||||
@@ -166,11 +132,11 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
|
||||
"mirror://gnu/bash/bash-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yrjmf0mqg2q8pqphjlark0mcmgf88b0acq7bqf4gx3zvxkc2fd1"))
|
||||
"1fii1xaxbng9x0klxmxkm0xhmycngfz72jsgyrna4sgqcmlxhp0d"))
|
||||
(patch-flags '("-p0"))
|
||||
(patches (cons (search-patch "bash-linux-pgrp-pipe.patch")
|
||||
%patch-series-5.2))))
|
||||
(version (string-append version "." (number->string (length %patch-series-5.2))))
|
||||
%patch-series-5.3))))
|
||||
(version (string-append version "." (number->string (length %patch-series-5.3))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
(outputs '("out"
|
||||
|
||||
@@ -6070,17 +6070,16 @@ subgroups.")
|
||||
(define-public python-pysam
|
||||
(package
|
||||
(name "python-pysam")
|
||||
(version "0.23.0")
|
||||
(version "0.23.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
;; Test data is missing on PyPi.
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pysam-developers/pysam")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hk0ks6kqsm8252d0v1lw2d22x1awmxcr165nnhyacwbqh246skl"))
|
||||
"1kb70fp9mnjl4czhwiahb192lwkq1j357b774ddg533ibj3h7gcz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
;; FIXME: Unbundle samtools and bcftools.
|
||||
@@ -6118,10 +6117,9 @@ subgroups.")
|
||||
(inputs
|
||||
(list ncurses curl zlib))
|
||||
(native-inputs
|
||||
(list python-cython-0
|
||||
(list python-cython
|
||||
python-pytest
|
||||
python-setuptools
|
||||
python-wheel
|
||||
;; Dependencies below are are for tests only.
|
||||
samtools
|
||||
bcftools))
|
||||
|
||||
+31
-25
@@ -21,14 +21,15 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages bison)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public bison
|
||||
@@ -45,24 +46,29 @@
|
||||
"1wjvbbzrr16k1jlby3l436an3kvv492h08arbnf0gwgprha05flv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(;; 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))
|
||||
(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))
|
||||
(home-page "https://www.gnu.org/software/bison/")
|
||||
(synopsis "Yacc-compatible parser generator")
|
||||
(description
|
||||
@@ -72,4 +78,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 gpl3+)))
|
||||
(license license:gpl3+)))
|
||||
|
||||
+272
-306
@@ -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) #:select (lower-object local-file))
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix i18n)
|
||||
@@ -204,10 +204,7 @@ for system '~a'")
|
||||
(uri (map (cute string-append <>
|
||||
(bootstrap-executable-file-name system program))
|
||||
%bootstrap-executable-base-urls))
|
||||
;; 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)
|
||||
(file-name (string-append "bootstrap-" program))
|
||||
(hash (content-hash bv sha256))))))))
|
||||
|
||||
(define* (bootstrap-executable program system #:optional file-name)
|
||||
@@ -267,32 +264,33 @@ or false to signal an error."
|
||||
(version "0")
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(list
|
||||
#:guile %bootstrap-guile
|
||||
#:modules '((guix build utils))
|
||||
#:builder
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(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"))))
|
||||
|
||||
(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"))))))))
|
||||
(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"))))))))
|
||||
(inputs
|
||||
`(("tar" ,(bootstrap-executable "tar" (%current-system)))
|
||||
("xz" ,(bootstrap-executable "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin (source (%current-system))))))
|
||||
(list (bootstrap-executable "tar" (%current-system))
|
||||
(bootstrap-executable "xz" (%current-system))
|
||||
(bootstrap-origin (source (%current-system)))))
|
||||
(source #f)
|
||||
(synopsis description)
|
||||
(description description)
|
||||
@@ -635,37 +633,29 @@ $out/bin/guile --version~%"
|
||||
(_
|
||||
"/20131110/static-binaries.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(file-name "bootstrap-binaries.tar.xz")
|
||||
(sha256
|
||||
(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
|
||||
(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"
|
||||
"04zksa2457h1vcl5ry2hyzhhsg8fckvfdgadp0viba3anwms2463")
|
||||
("powerpc-linux"
|
||||
"0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m")
|
||||
("riscv64-linux"
|
||||
"0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg")
|
||||
("mips64el-linux"
|
||||
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
|
||||
"fgrep" ; the program to test
|
||||
"Bootstrap binaries of Coreutils, Awk, etc."
|
||||
@@ -693,6 +683,7 @@ $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"))))
|
||||
@@ -700,63 +691,56 @@ $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))
|
||||
(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"))
|
||||
(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"
|
||||
"/20241122/binutils-static-stripped-2.41-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"
|
||||
"1fasv76rppnqlshjqc7dbzngic9cqswi5ydzg6w9rc075daqk8kb")
|
||||
("powerpc-linux"
|
||||
"0asbg1c4avkrvh057mx0942xwddd136jni382zqsxzn79ls42yq8")
|
||||
("mips64el-linux"
|
||||
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
|
||||
"ld" ; the program to test
|
||||
"Bootstrap binaries of the GNU Binutils"))
|
||||
|
||||
(define %bootstrap-glibc
|
||||
;; The initial libc.
|
||||
@@ -766,99 +750,91 @@ $out/bin/guile --version~%"
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(list
|
||||
#:guile %bootstrap-guile
|
||||
#:modules '((guix build utils))
|
||||
#:builder
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(let ((tar (assoc-ref %build-inputs "bootstrap-tar"))
|
||||
(xz (assoc-ref %build-inputs "bootstrap-xz"))
|
||||
(tarball (assoc-ref %build-inputs "glibc.tar.xz")))
|
||||
|
||||
(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)
|
||||
(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)
|
||||
|
||||
;; 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") "")))
|
||||
`())))))))
|
||||
;; 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") "")))
|
||||
#~())))))))
|
||||
(inputs
|
||||
`(("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")))))))))
|
||||
(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"
|
||||
"/20241122/glibc-stripped-2.39-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"
|
||||
"1w4h91kxl64a62l646966i73zp2cj6w4dmyc64fh0c1hhdykxass")
|
||||
("powerpc-linux"
|
||||
"0smmssyjrlk5cvx49586smmk81gkwff0i6r91n4rir4jm6ba25sb")
|
||||
("mips64el-linux"
|
||||
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))
|
||||
(synopsis "Bootstrap binaries and headers of the GNU C Library")
|
||||
(description synopsis)
|
||||
(home-page #f)
|
||||
@@ -873,110 +849,102 @@ $out/bin/guile --version~%"
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
(list
|
||||
#:guile %bootstrap-guile
|
||||
#:modules '((guix build utils))
|
||||
#:builder
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
|
||||
(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")))
|
||||
(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")))
|
||||
|
||||
(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")))
|
||||
(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")))
|
||||
|
||||
(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
|
||||
out wrapped
|
||||
libc libc libc
|
||||
,(glibc-dynamic-linker)))))
|
||||
(chmod program #o555))
|
||||
bash
|
||||
#$output wrapped
|
||||
libc libc libc
|
||||
#$(glibc-dynamic-linker)))))
|
||||
(chmod program #o555))
|
||||
|
||||
(with-directory-excursion out
|
||||
(invoke tar "xvf"
|
||||
(string-append builddir "/binaries.tar")))
|
||||
(with-directory-excursion #$output
|
||||
(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
|
||||
`(("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")))))))))
|
||||
(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"
|
||||
"/20241122/gcc-stripped-14.2.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"
|
||||
"1cgbhc76hlccx6v2z7kk7z173lryyq3la5mmbwivl6hbl1zcqg3m")
|
||||
("powerpc-linux"
|
||||
"1p7df3yixhm87dw5sccc6yn1i9db1r9hnmsg87wq5xi4rfmirq7w")
|
||||
("mips64el-linux"
|
||||
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "C_INCLUDE_PATH")
|
||||
@@ -997,14 +965,12 @@ exec ~a/bin/~a -B~a/lib \
|
||||
;; own packages.
|
||||
(match (%current-system)
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
`(("linux-libre-headers" ,%bootstrap-linux-libre-headers)))
|
||||
(list %bootstrap-linux-libre-headers))
|
||||
(_
|
||||
`(("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)))))
|
||||
(list %bootstrap-glibc
|
||||
%bootstrap-gcc
|
||||
%bootstrap-binutils
|
||||
%bootstrap-coreutils&co))))
|
||||
|
||||
(define %bootstrap-inputs-for-tests
|
||||
;; These are bootstrap inputs that are cheap to produce (no compilation
|
||||
|
||||
+13
-6
@@ -2875,19 +2875,27 @@ a Pytest test execution.")
|
||||
(define-public python-pytest-mypy-plugins
|
||||
(package
|
||||
(name "python-pytest-mypy-plugins")
|
||||
(version "3.1.2")
|
||||
(version "4.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-mypy-plugins" version))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/TypedDjango/pytest-mypy-plugins")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1gpynypn13032by633dr2zhng54v2gl09kwgp3ysc4wpwl09pyhl"))))
|
||||
(base32 "05vnv8m4qjrpyxw7f17wng6pnicvaps6vf8c6yn1a8lj10fkwazn"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-flags
|
||||
#~(list "-k" (string-join
|
||||
(list "not reveal_type_extension_is_loaded"
|
||||
;; Unsupported operand types for / ("str" and "int")
|
||||
"test_no_silence_site_packages_only"
|
||||
"test_no_silence_site_packages_and_modify_pythonpath"
|
||||
;; subprocess.CalledProcessError
|
||||
;; pytest not found?
|
||||
"test_pyproject_toml"
|
||||
"test_ini_files")
|
||||
" and not "))
|
||||
@@ -2902,8 +2910,7 @@ a Pytest test execution.")
|
||||
(with-directory-excursion "/tmp"
|
||||
(apply invoke "pytest" "-v" test-flags))))))))
|
||||
(native-inputs
|
||||
(list python-setuptools
|
||||
python-wheel))
|
||||
(list python-setuptools))
|
||||
(propagated-inputs
|
||||
(list python-decorator
|
||||
python-jinja2
|
||||
|
||||
+1195
-1183
File diff suppressed because it is too large
Load Diff
@@ -406,10 +406,9 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
|
||||
|
||||
;; Don't attempt to run the tests when cross-compiling.
|
||||
#:tests? (not (%current-target-system))))
|
||||
(inputs
|
||||
`(,@(if (%current-target-system)
|
||||
`(("bash" ,bash-minimal))
|
||||
'())))
|
||||
(inputs (if (%current-target-system)
|
||||
(list bash-minimal)
|
||||
(list)))
|
||||
(outputs '("out" "static"))
|
||||
(synopsis "High-quality data compression program")
|
||||
(description
|
||||
@@ -554,7 +553,7 @@ formats, including zstd, xz, gzip, and bgzf.")
|
||||
(define-public xz
|
||||
(package
|
||||
(name "xz")
|
||||
(version "5.4.5")
|
||||
(version "5.8.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "http://tukaani.org/xz/xz-" version
|
||||
@@ -563,7 +562,7 @@ formats, including zstd, xz, gzip, and bgzf.")
|
||||
version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1mmpwl4kg1vs6n653gkaldyn43dpbjh8gpk7sk0gps5f6jwr0p0k"))))
|
||||
"0hsmg58a27jd1vq0lc6yp405978c1nfhqwndl7f10v1mk6sjay2h"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@@ -581,7 +580,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"))
|
||||
(outputs '("out" "static" "doc"))
|
||||
(inputs
|
||||
`(,@(if (%current-target-system)
|
||||
`(("bash" ,bash-minimal))
|
||||
@@ -598,6 +597,8 @@ 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
|
||||
|
||||
+72
-75
@@ -567,16 +567,15 @@ 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)
|
||||
#t)))))
|
||||
#~(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))))))
|
||||
((#:configure-flags flags)
|
||||
`(cons* ,(string-append "--build=" (%current-system))
|
||||
,(string-append "--host=" target)
|
||||
@@ -691,80 +690,78 @@ 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
|
||||
#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")))
|
||||
((#: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")))
|
||||
|
||||
(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* (#: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")))
|
||||
#$@(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")))
|
||||
(machine (string-append
|
||||
out "/include/mach/machine")))
|
||||
(unless (file-exists? machine)
|
||||
(symlink cpu machine))))))
|
||||
'())))))
|
||||
#$output
|
||||
"/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.
|
||||
|
||||
@@ -264,7 +264,7 @@ fast, secure, parallelizable, capable of incremental updates.")
|
||||
(string-append
|
||||
"--prefix="
|
||||
(python:site-packages inputs outputs)))))))))
|
||||
(native-inputs (list python-minimal-wrapper))
|
||||
(native-inputs (list python-minimal-wrapper python-setuptools))
|
||||
(synopsis "Decaf Elliptic Curve Library")
|
||||
(description "The libdecaf library is an implementation of elliptic curve
|
||||
cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
|
||||
|
||||
+9
-23
@@ -169,43 +169,29 @@ clients.")
|
||||
(define-public xandikos
|
||||
(package
|
||||
(name "xandikos")
|
||||
(version "0.3.0")
|
||||
(version "0.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "xandikos" version))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jelmer/xandikos")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "10j7qmwcrwql4ah6q8si3nf1ljwrx99w8ipiy85bzjd3qz2vackj"))))
|
||||
(base32 "0db02hsdrrxpms9xfy8q5kkgsp5gxrgd15rgdjd5aw7lqpnhhmji"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-backend #~'unittest
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'create-entrypoints
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((sitedir (site-packages inputs outputs))
|
||||
(interpreter (which "python"))
|
||||
(file-path (string-append #$output "/bin/xandikos")))
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(call-with-output-file file-path
|
||||
(lambda (port)
|
||||
(format port "#!~a -sP
|
||||
# Auto-generated entry point script.
|
||||
import sys
|
||||
import asyncio
|
||||
from xandikos.__main__ import main
|
||||
if __name__ == '__main__':
|
||||
sys.exit(asyncio.run(main(sys.argv[1:])))~%" interpreter)))
|
||||
(chmod file-path #o755))))
|
||||
(add-before 'check 'check-setup
|
||||
(lambda _
|
||||
(setenv "XANDIKOSPATH" (mkdtemp "/tmp/xandikospath-XXXXXX")))))))
|
||||
(native-inputs (list python-setuptools))
|
||||
(native-inputs (list python-pytest python-setuptools))
|
||||
(propagated-inputs
|
||||
(list python-aiohttp
|
||||
python-defusedxml
|
||||
python-dulwich-0.24
|
||||
python-dulwich
|
||||
python-icalendar
|
||||
python-jinja2
|
||||
python-multidict
|
||||
|
||||
+2
-16
@@ -113,14 +113,7 @@
|
||||
(for-each (lambda (x)
|
||||
(install-file x "aclocal"))
|
||||
(find-files "aclocal_java"))
|
||||
(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"))))))
|
||||
(apply (assq-ref %standard-phases 'bootstrap) arguments))))
|
||||
#$@(if (or (target-arm?)
|
||||
(target-riscv64?))
|
||||
#~((add-after 'unpack 'bdb-configure-patch
|
||||
@@ -202,14 +195,7 @@ 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)
|
||||
(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"))))))
|
||||
(apply (assq-ref %standard-phases 'bootstrap) arguments))))
|
||||
(add-before 'configure 'pre-configure
|
||||
(lambda _
|
||||
(chdir "dist")
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018-2021, 2023 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018-2019 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2021, 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017-2018, 2021, 2023-2024 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2022, 2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2021-2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2024 Juliana Sims <juli@incana.org>
|
||||
;;; Copyright © 2025, 2026 Cayetano Santos <csantosb@inventati.org>
|
||||
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||
;;; Copyright © 2025-2026 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 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2016, 2018 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,12 +24,22 @@
|
||||
;;; 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 © 2020, 2023 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2018, 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, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -76,6 +86,7 @@
|
||||
#: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)
|
||||
@@ -131,6 +142,7 @@
|
||||
#: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)
|
||||
@@ -145,6 +157,7 @@
|
||||
#: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))
|
||||
@@ -1053,6 +1066,241 @@ 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")
|
||||
|
||||
@@ -24500,7 +24500,7 @@ It should enable you to implement low-level X11 applications.")
|
||||
(lambda _
|
||||
(format #t "#!~a ~@
|
||||
~a +SI:localuser:$USER ~@
|
||||
exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
|
||||
exec ~a --exit-with-session ~a \"$@\" -mm --eval '~s' ~%"
|
||||
(search-input-file inputs "/bin/sh")
|
||||
(search-input-file inputs "/bin/xhost")
|
||||
(search-input-file inputs "/bin/dbus-launch")
|
||||
@@ -24510,7 +24510,7 @@ It should enable you to implement low-level X11 applications.")
|
||||
(load-file "~/.exwm"))
|
||||
((not (featurep 'exwm))
|
||||
(require 'exwm)
|
||||
(exwm-enable)
|
||||
(exwm-wm-mode)
|
||||
(message
|
||||
"exwm configuration not found.
|
||||
Falling back to minimal configuration.
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
;;; Copyright © 2026 Nikita Alkhovik <forgoty13@gmail.com>
|
||||
;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li>
|
||||
;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu>
|
||||
;;; Copyright © 2021–2023, 2026 Liliana Marie Prikler <liliana.prikler@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -4715,6 +4716,245 @@ 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")
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
(define-public nuspell
|
||||
(package
|
||||
(name "nuspell")
|
||||
(version "5.1.4")
|
||||
(version "5.1.7")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -58,12 +58,14 @@
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "05j1hmczy6v9dyxp77vxhgyl7y5hff3v45vlp86gyh7m9lgqpmra"))))
|
||||
(base32 "1xvy8qrpw1282akr873xzja61afnr27f1gab6jc4cgy8pkfqq308"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(if (%current-target-system)
|
||||
(list #:configure-flags #~(list "-DBUILD_TESTING=OFF"))
|
||||
'()))
|
||||
(list #:configure-flags
|
||||
#~(list "-DBUILD_DOCS=OFF" ;do not pull Pandoc
|
||||
#$@(if (%current-target-system)
|
||||
'("-DBUILD_TESTING=OFF")
|
||||
'()))))
|
||||
(native-inputs (list catch2-3 pkg-config))
|
||||
(propagated-inputs (list icu4c))
|
||||
(native-search-paths (list (search-path-specification
|
||||
|
||||
+12
-240
@@ -135,6 +135,7 @@
|
||||
#: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)
|
||||
@@ -998,233 +999,6 @@ 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")
|
||||
@@ -2947,16 +2721,17 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
|
||||
(define-public freecad
|
||||
(package
|
||||
(name "freecad")
|
||||
(version "1.0.2")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/FreeCAD/FreeCAD")
|
||||
(commit version)))
|
||||
(commit version)
|
||||
(recursive? #t))) ;needed for the AddonManager
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1zyz473fzrz9h073wp4k65qq4bkhqsp245nsv6nv186sl78l99xa"))
|
||||
(base32 "029ndw1dypx0xhs4fyiinf7gpk8am0vm9b24idvdsx9x7ghrqz4j"))
|
||||
(snippet
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
@@ -2973,7 +2748,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++17"
|
||||
"-DBUILD_ENABLE_CXX_STD:STRING=C++20" ; FreeCAD 1.1 requires C++20
|
||||
"-DENABLE_DEVELOPER_TESTS=OFF" ;; see the above: #:tests? comment
|
||||
"-DFREECAD_QT_VERSION=6" ;; Build with Qt6
|
||||
"-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=ON" ;; unbundle ondsel-solver
|
||||
@@ -2995,12 +2770,13 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
|
||||
(list c++-gsl
|
||||
doxygen
|
||||
graphviz
|
||||
pybind11
|
||||
qttools
|
||||
pkg-config
|
||||
swig-4.0))
|
||||
swig-4.4))
|
||||
(inputs
|
||||
(list bash-minimal
|
||||
boost-1.83
|
||||
boost
|
||||
coin3d
|
||||
double-conversion
|
||||
eigen
|
||||
@@ -3010,6 +2786,7 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
|
||||
gl2ps
|
||||
glew
|
||||
hdf5-1.10
|
||||
icu4c
|
||||
jsoncpp
|
||||
libarea
|
||||
libjpeg-turbo
|
||||
@@ -3032,16 +2809,14 @@ 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-9.5
|
||||
vtk
|
||||
xerces-c
|
||||
yaml-cpp
|
||||
zlib))
|
||||
@@ -4211,13 +3986,10 @@ G-codes to binary and vice versa.")
|
||||
openvdb
|
||||
pango
|
||||
prusa-libbgcode
|
||||
;; XXX: Using Prusa wxWidgets fork as PrusaSlicer segfaults when compiled
|
||||
;; with regular wxwidgets.
|
||||
prusa-wxwidgets
|
||||
wxwidgets
|
||||
qhull
|
||||
onetbb
|
||||
webkitgtk-for-gtk3
|
||||
webkitgtk-with-libsoup2
|
||||
z3
|
||||
zlib))
|
||||
(home-page "https://www.prusa3d.com/prusaslicer/")
|
||||
|
||||
@@ -427,7 +427,7 @@ ones.")
|
||||
(define-public fsarchiver
|
||||
(package
|
||||
(name "fsarchiver")
|
||||
(version "0.8.7")
|
||||
(version "0.8.9")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -437,10 +437,10 @@ ones.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1vy8ay0fn32i298bx9scqghi7xm9z2101zxk5xshbrkl00b2m4nm"))))
|
||||
(base32 "0wyq140yzhhqzg364ai7m21z2kgvyi6dmqlw5ycblryf0zkvd7vq"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list autoconf automake pkg-config))
|
||||
(list autoconf-2.72 automake pkg-config))
|
||||
(inputs
|
||||
(list bzip2
|
||||
e2fsprogs
|
||||
|
||||
+23
-23
@@ -26,6 +26,7 @@
|
||||
#: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)
|
||||
@@ -43,18 +44,9 @@
|
||||
"flex-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"))))
|
||||
"15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8"))
|
||||
(patches (search-patches "flex-fix-make-dependencies.patch"))))
|
||||
(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
|
||||
@@ -63,21 +55,29 @@
|
||||
'()))
|
||||
;; m4 is not present in PATH when cross-building
|
||||
(native-inputs
|
||||
(list help2man m4))
|
||||
(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)))
|
||||
(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,
|
||||
\"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.")
|
||||
"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.")
|
||||
(license (non-copyleft "file://COPYING"
|
||||
"See COPYING in the distribution."))))
|
||||
|
||||
@@ -3847,7 +3847,7 @@ arrows and custom ligatures for @code{TODO:} and @code{NOTE:}.")
|
||||
(define-public font-monaspace
|
||||
(package
|
||||
(name "font-monaspace")
|
||||
(version "1.301")
|
||||
(version "1.400")
|
||||
(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
|
||||
"0f6i9v2m7x5zjdfwmcj180nmgxzlnbk2z0x7yv5sbdcrvndz1lzj"))))
|
||||
"1rldcci0nh5zqqcmj8mfqsv7c8bqy2nxgfn8gk4zsxvgdbxa79vk"))))
|
||||
(build-system font-build-system)
|
||||
(outputs '("out" "ttf" "woff"))
|
||||
(home-page "https://monaspace.githubnext.com")
|
||||
|
||||
@@ -1457,7 +1457,7 @@ fullscreen) or other display servers.")
|
||||
(define-public wayland-protocols
|
||||
(package
|
||||
(name "wayland-protocols")
|
||||
(version "1.45")
|
||||
(version "1.47")
|
||||
(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
|
||||
"1d2fv41vq75pvgkd3ykjypnp8zv0afv71p36cd91h19lbmwaia8h"))))
|
||||
"0i30fp6p03qrvv4msm9yj39sk6gmcryp3q6x29v2wycbv27wsgmw"))))
|
||||
(build-system meson-build-system)
|
||||
(inputs
|
||||
(list wayland))
|
||||
|
||||
@@ -41,13 +41,13 @@
|
||||
(define-public gawk
|
||||
(package
|
||||
(name "gawk")
|
||||
(version "5.3.0")
|
||||
(version "5.3.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gawk/gawk-" version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32 "02x97iyl9v84as4rkdrrkfk2j4vy4r3hpp3rkp3gh3qxs79id76a"))))
|
||||
(base32 "1k699kfajwzw4dyw1m9h9kld1gdv00nfy04b2f952w6y15jlihzq"))))
|
||||
(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"
|
||||
(substitute* '("io.c" "builtin.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"
|
||||
(("\\| more") ""))
|
||||
(("\\| \\$\\$\\{PAGER:-more\\}") ""))
|
||||
|
||||
;; Adjust the shebang in that file since it is then diff'd
|
||||
;; against the actual test output.
|
||||
|
||||
+252
-261
@@ -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.
|
||||
'("--with-abi=64"))
|
||||
#~(list "--with-abi=64"))
|
||||
|
||||
((string-match "^arm.*-gnueabihf$" target)
|
||||
'("--with-arch=armv7-a"
|
||||
"--with-float=hard"
|
||||
"--with-mode=thumb"
|
||||
"--with-fpu=neon"))
|
||||
#~(list "--with-arch=armv7-a"
|
||||
"--with-float=hard"
|
||||
"--with-mode=thumb"
|
||||
"--with-fpu=neon"))
|
||||
|
||||
((string-match "x86_64-linux-gnux32" target)
|
||||
'("--with-abi=mx32"))
|
||||
#~(list "--with-abi=mx32"))
|
||||
|
||||
((and (string-suffix? "-gnu" target)
|
||||
(not (string-contains target "-linux")))
|
||||
@@ -97,36 +97,24 @@ 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.
|
||||
'("--disable-libcilkrts"))
|
||||
#~(list "--disable-libcilkrts"))
|
||||
|
||||
;; glibc needs the 128-bit long double type on these architectures.
|
||||
((or (string-prefix? "powerpc64le-" target)
|
||||
(string-prefix? "powerpc-" target))
|
||||
'("--with-long-double-128"))
|
||||
#~(list "--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)
|
||||
'("--disable-gcov"))
|
||||
#~(list "--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"))))
|
||||
@@ -134,45 +122,7 @@ 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))))
|
||||
(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))))))
|
||||
base)))))
|
||||
(hidden-package
|
||||
(package
|
||||
(name "gcc")
|
||||
@@ -202,201 +152,239 @@ where the OS part is overloaded to denote a specific ABI---into GCC
|
||||
texinfo-5))
|
||||
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
#:configure-flags ,(configure-flags)
|
||||
(list
|
||||
#:out-of-source? #t
|
||||
#:configure-flags
|
||||
#~(append
|
||||
(list "--enable-plugin"
|
||||
"--enable-languages=c,c++,objc,obj-c++"
|
||||
"--disable-multilib"
|
||||
"--with-system-zlib"
|
||||
|
||||
#: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)))
|
||||
'())
|
||||
;; No pre-compiled libstdc++ headers, to save space.
|
||||
"--disable-libstdcxx-pch"
|
||||
|
||||
;; 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-local-prefix=/no-gcc-local-prefix"
|
||||
|
||||
#:tests? #f
|
||||
;; 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++")
|
||||
|
||||
#: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
|
||||
(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
|
||||
exec gcc \"$@\" \
|
||||
-Wno-error=implicit-function-declaration"
|
||||
bash)))
|
||||
(chmod wrapper #o555)
|
||||
(with-output-to-file stage-wrapper
|
||||
(lambda _
|
||||
(format #t "#! ~a/bin/bash
|
||||
bash)))
|
||||
(chmod wrapper #o555)
|
||||
(with-output-to-file stage-wrapper
|
||||
(lambda _
|
||||
(format #t "#! ~a
|
||||
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")
|
||||
@@ -440,21 +428,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")))))
|
||||
@@ -498,21 +486,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
|
||||
@@ -981,7 +969,8 @@ 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-libstdc++-newer-gcc.patch"
|
||||
"gcc-mangle-guix-store.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet gcc-canadian-cross-objdump-snippet)))
|
||||
(arguments
|
||||
@@ -1012,7 +1001,8 @@ 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-5.0-libvtv-runpath.patch"
|
||||
"gcc-mangle-guix-store.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet gcc-canadian-cross-objdump-snippet)))
|
||||
(arguments (substitute-keyword-arguments arguments
|
||||
@@ -1045,7 +1035,8 @@ 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-hurd-split-stack.patch"
|
||||
"gcc-mangle-guix-store.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet gcc-canadian-cross-objdump-snippet)))
|
||||
(arguments
|
||||
|
||||
+40
-38
@@ -13,6 +13,7 @@
|
||||
;;; 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.
|
||||
;;;
|
||||
@@ -57,24 +58,21 @@
|
||||
(define-public gettext-minimal
|
||||
(package
|
||||
(name "gettext-minimal")
|
||||
(version "0.23.1")
|
||||
(version "1.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gettext/gettext-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0j8fijicvg8jkrisgsqbpnbmfb2mz3gx2p6pcwip82731yb7i9aj"))))
|
||||
"06jgjxnm5xhw0d0zwl9birlwfxfgfqhk9q029j3h9941r5wrpnc5"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ;9 MiB of HTML
|
||||
(inputs
|
||||
(list libunistring
|
||||
libxml2
|
||||
;; 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))
|
||||
libtextstyle))
|
||||
(arguments
|
||||
(list #:configure-flags #~'("--with-included-libunistring=no"
|
||||
"--with-included-libxml=no")
|
||||
@@ -93,11 +91,11 @@
|
||||
(("/bin/pwd") "pwd"))))
|
||||
(add-before 'check 'patch-tests
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;;libgettextlib-0.23.so => not found
|
||||
;;libgettextlib-1.0.so => not found
|
||||
(substitute* "gettext-tools/gnulib-tests/test-execute.sh"
|
||||
(("^#!.*" all)
|
||||
(string-append all "exit 77;\n")))
|
||||
(let* ((bash (which "sh")))
|
||||
(let* ((bash (search-input-file inputs "bin/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.
|
||||
@@ -106,7 +104,7 @@
|
||||
(find-files "gettext-tools/tests"
|
||||
"^(lang-sh|msg(exec|filter)-[0-9])")
|
||||
(("#![[:blank:]]/bin/sh")
|
||||
(format #f "#!~a" bash)))
|
||||
(string-append "#!" bash)))
|
||||
|
||||
(substitute* (cons "gettext-tools/src/msginit.c"
|
||||
(find-files "gettext-tools/gnulib-tests"
|
||||
@@ -124,6 +122,14 @@
|
||||
;; 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 _
|
||||
@@ -151,30 +157,31 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
|
||||
(cpe-name . "gettext")))
|
||||
(license gpl3+))) ;some files are under GPLv2+
|
||||
|
||||
(define-public gettext-minimal-0.21
|
||||
;; 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
|
||||
(package/inherit gettext-minimal
|
||||
(version "0.21")
|
||||
(version "0.23.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gettext/gettext-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7"))
|
||||
(patches (search-patches "gettext-libunicode-update.patch"))))
|
||||
"0j8fijicvg8jkrisgsqbpnbmfb2mz3gx2p6pcwip82731yb7i9aj"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#: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")))))))))))
|
||||
((#: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))))))
|
||||
|
||||
;; Use that name to avoid clashes with Guile's 'gettext' procedure.
|
||||
;;
|
||||
@@ -203,22 +210,17 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
|
||||
(define-public libtextstyle
|
||||
(package
|
||||
(name "libtextstyle")
|
||||
(version "0.21")
|
||||
(source (origin
|
||||
(inherit (package-source gnu-gettext))
|
||||
(uri (string-append "mirror://gnu/gettext/gettext-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7"))))
|
||||
(version (package-version gnu-gettext))
|
||||
(source (package-source gnu-gettext))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--disable-static")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "libtextstyle")
|
||||
#t)))))
|
||||
(list
|
||||
#:configure-flags #~(list "--disable-static")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "libtextstyle"))))))
|
||||
;; 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.
|
||||
|
||||
+98
-86
@@ -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-2025 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017-2019, 2021, 2023-2026 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018–2021 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 aurtzy <aurtzy@gmail.com>
|
||||
;;; Copyright © 2024-2025 Alvin Hsu <aurtzy@gmail.com>
|
||||
;;; Copyright © 2025 Sughosha <sughosha@disroot.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@@ -43,6 +43,7 @@
|
||||
(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)
|
||||
@@ -57,6 +58,7 @@
|
||||
#: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)
|
||||
@@ -74,6 +76,7 @@
|
||||
#: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)
|
||||
@@ -241,7 +244,6 @@ 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
|
||||
@@ -255,20 +257,26 @@ generate a GL/GLES/EGL/GLX/WGL loader tailored for specific requirements.")
|
||||
"0c9cygiq35aiq6bpdvbwqs0wxc2dvxsh4jnx50466savscxalsk9"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(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"))))))))
|
||||
(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")))))))
|
||||
(native-inputs (list python-setuptools python-wheel xvfb-run-for-tests))
|
||||
(propagated-inputs (list python-jinja2))))
|
||||
(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)))
|
||||
|
||||
(define-public s2tc
|
||||
(package
|
||||
@@ -316,7 +324,7 @@ also known as DXTn or DXTC) for Mesa.")
|
||||
(define-public mesa
|
||||
(package
|
||||
(name "mesa")
|
||||
(version "25.2.3")
|
||||
(version "26.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -325,8 +333,7 @@ also known as DXTn or DXTC) for Mesa.")
|
||||
(string-append "ftp://ftp.freedesktop.org/pub/mesa/"
|
||||
"mesa-" version ".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1y5lj9zy2hfvx9ji1rvsjapmzap7mpp5i3pf2yfcpmpica2v5mpj"))))
|
||||
(base32 "0ikk7hb60q581i2wb1pasphv7sgqkv74qaw4cdiiq8dy45956gwp"))))
|
||||
(build-system meson-build-system)
|
||||
(propagated-inputs
|
||||
;; The following are in the Requires.private field of gl.pc.
|
||||
@@ -339,17 +346,28 @@ also known as DXTn or DXTC) for Mesa.")
|
||||
libxxf86vm
|
||||
xorgproto))
|
||||
(inputs
|
||||
(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")))
|
||||
(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)
|
||||
'())))
|
||||
(native-inputs
|
||||
(append
|
||||
(list bison
|
||||
@@ -375,13 +393,12 @@ 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
|
||||
(module-ref (resolve-interface '(gnu packages rust-apps))
|
||||
'rust-bindgen-cli)
|
||||
(module-ref (resolve-interface '(gnu packages rust-apps))
|
||||
'rust-cbindgen-0.26))
|
||||
rust-bindgen-cli
|
||||
rust-cbindgen)
|
||||
'())))
|
||||
(outputs '("out" "bin"))
|
||||
(arguments
|
||||
@@ -390,15 +407,15 @@ also known as DXTn or DXTC) for Mesa.")
|
||||
#~(list
|
||||
#$@(cond
|
||||
((target-aarch64?)
|
||||
;; 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"))
|
||||
;; 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"))
|
||||
((target-arm32?)
|
||||
;; This includes more drivers than "auto": r300, r600
|
||||
'("-Dgallium-drivers=etnaviv,freedreno,lima,nouveau,\
|
||||
panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
|
||||
'("-Dgallium-drivers=etnaviv,freedreno,iris,lima,nouveau,\
|
||||
panfrost,r300,r600,svga,softpipe,lima,llvmpipe,tegra,v3d,vc4,virgl,zink"))
|
||||
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
|
||||
;; This include more drivers than "auto": svga
|
||||
;; This includes more drivers than "auto": svga
|
||||
'("-Dgallium-drivers=nouveau,r300,r600,radeonsi,svga,softpipe,llvmpipe,virgl,zink"))
|
||||
(else
|
||||
'("-Dgallium-drivers=auto")))
|
||||
@@ -412,18 +429,23 @@ panfrost,r300,r600,svga,softpipe,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?)
|
||||
;; This doesn't include nouveau (which is in "auto") as it needs
|
||||
;; rust.
|
||||
;; TODO: Enable nouveau/NVK.
|
||||
'("-Dvulkan-drivers=intel,intel_hasvk,amd,swrast"))
|
||||
;; 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"))
|
||||
((target-aarch64?)
|
||||
;; This differs from "auto" which only includes swrast and intel
|
||||
'("-Dvulkan-drivers=freedreno,amd,broadcom,swrast,asahi"))
|
||||
;; 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"))
|
||||
(else
|
||||
'("-Dvulkan-drivers=auto")))
|
||||
|
||||
@@ -440,9 +462,6 @@ panfrost,r300,r600,svga,softpipe,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
|
||||
@@ -450,9 +469,13 @@ panfrost,r300,r600,svga,softpipe,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)
|
||||
@@ -468,6 +491,30 @@ panfrost,r300,r600,svga,softpipe,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
|
||||
@@ -510,41 +557,6 @@ panfrost,r300,r600,svga,softpipe,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")))
|
||||
@@ -664,7 +676,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="
|
||||
"iris,llvmpipe,nouveau,panfrost,radeonsi,r600")
|
||||
"asahi,freedreno,radeonsi")
|
||||
#$flags))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
|
||||
@@ -7058,7 +7058,8 @@ runtime image loader executables that are used inside the sandbox.")
|
||||
#:vendor-dir "vendor"
|
||||
#:cargo-target #$(cargo-triplet)
|
||||
args))
|
||||
'(unpack-rust-crates
|
||||
'(prepare-rust-crates
|
||||
unpack-rust-crates
|
||||
configure
|
||||
check-for-pregenerated-files
|
||||
patch-cargo-checksums))))
|
||||
|
||||
+387
-66
@@ -382,10 +382,14 @@ 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
|
||||
@@ -421,15 +425,12 @@ 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")))
|
||||
@@ -456,7 +457,7 @@ Services.")
|
||||
(define-public go-cloud-google-com-go-auth
|
||||
(package
|
||||
(name "go-cloud-google-com-go-auth")
|
||||
(version "0.17.0")
|
||||
(version "0.18.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -466,7 +467,7 @@ Services.")
|
||||
#:subdir "auth"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0i18wkz04w9wpckw021nawr82dh92krmcsn471rpjx1jrmgsbi5v"))
|
||||
(base32 "1c2i8jhc4rizmwz6716bwxwy04adjmm7k2cigki3m1f00rwblmki"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
@@ -488,25 +489,28 @@ Services.")
|
||||
#~(list "-skip"
|
||||
(string-join
|
||||
;; These tests all require credentials/tokens
|
||||
'("TestGetGRPCTransportConfigAndEndpoint_S2A"
|
||||
"TestGetHTTPTransportConfig_S2A"
|
||||
"TestDownscopedToken"
|
||||
"TestDialTCPUserTimeout"
|
||||
"TestFetchTrustBoundaryData"
|
||||
"TestLogDirectPathMisconfigDirectPathNotSet"
|
||||
"TestLogDirectPathMisconfigNotOnGCE") "|"))))
|
||||
(list "TestDownscopedToken"
|
||||
"TestLogDirectPathMisconfigDirectPathNotSet"
|
||||
"TestLogDirectPathMisconfigNotOnGCE"
|
||||
;; Runint OTP instance is required.
|
||||
"TestDial_OpenTelemetry/telemetry_enabled_success"
|
||||
"TestDial_OpenTelemetry/telemetry_enabled_error")
|
||||
"|"))))
|
||||
(propagated-inputs
|
||||
(list go-google-golang-org-protobuf
|
||||
go-google-golang-org-grpc
|
||||
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
|
||||
(list go-cloud-google-com-go-compute-metadata
|
||||
go-github-com-google-go-cmp
|
||||
go-cloud-google-com-go-compute-metadata))
|
||||
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
|
||||
go-google-golang-org-grpc
|
||||
go-google-golang-org-protobuf))
|
||||
(home-page "https://cloud.google.com/go")
|
||||
(synopsis "Google Auth Library for Go")
|
||||
(description
|
||||
@@ -562,7 +566,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.8.0")
|
||||
(version "0.9.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -572,7 +576,7 @@ cloud.google.com/go/auth and golang.org/x/oauth2.")
|
||||
#:subdir "compute/metadata"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "02xl6mnw3i1x8zfafrsl2gr0v5a29nn3aiif6ndzssqr0pqfg5dw"))))
|
||||
(base32 "1xhiyv3p9kh6qj007yqd8fic2w48ngrff2vwi9i21v82v5zp51gv"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -580,6 +584,8 @@ 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
|
||||
@@ -587,6 +593,98 @@ 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")
|
||||
@@ -624,14 +722,14 @@ API service accounts for Go.")
|
||||
(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
|
||||
@@ -7327,7 +7425,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.7")
|
||||
(version "0.3.14")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -7336,17 +7434,21 @@ 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 "1jblnaa4hn9x5gfrsiw007wws7hy4h795xzzrw2bzf297ydrlnyg"))))
|
||||
(base32 "16ypygh5jk2ndwkbdai1z23xn872z6fsj1iis28fp6mgw9s89hl8"))))
|
||||
(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"))
|
||||
#:import-path "github.com/googleapis/enterprise-certificate-proxy"
|
||||
;; TODO: Tests require additional dependencies
|
||||
#:test-subdirs
|
||||
#~(list "client"
|
||||
"client/util"
|
||||
"internal/signer/util")))
|
||||
(propagated-inputs
|
||||
(list go-golang-org-x-sys go-golang-org-x-crypto
|
||||
;; go-github-com-google-go-pkcs11
|
||||
))
|
||||
(list ;; go-github-com-google-go-pkcs11
|
||||
go-golang-org-x-crypto
|
||||
go-golang-org-x-sys))
|
||||
(home-page "https://github.com/googleapis/enterprise-certificate-proxy")
|
||||
(synopsis "Google Proxies for Enterprise Certificates (GA)")
|
||||
(description
|
||||
@@ -7363,7 +7465,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.15.0")
|
||||
(version "2.19.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -7372,22 +7474,28 @@ Terraform by using the enterprise certificates feature.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0mp07716zjb7q9di6sfglscahrg053lsq3j5w68dknxn1fks5j6f"))))
|
||||
(base32 "1nd5qv2dhn6xiw27hmxxyan9v3hiwcqpg9cy2q679v6b0vj7ijmj"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;; TODO: Tests require additional dependencies
|
||||
#:go go-1.25
|
||||
#:skip-build? #t
|
||||
#:import-path "github.com/googleapis/gax-go/v2"
|
||||
#:unpack-path "github.com/googleapis/gax-go"))
|
||||
#: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))
|
||||
(propagated-inputs
|
||||
(list go-google-golang-org-protobuf
|
||||
go-google-golang-org-grpc
|
||||
go-google-golang-org-genproto-googleapis-rpc
|
||||
(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
|
||||
;; go-google-golang-org-api
|
||||
go-github-com-google-go-cmp))
|
||||
go-google-golang-org-genproto-googleapis-rpc
|
||||
go-google-golang-org-grpc
|
||||
go-google-golang-org-protobuf))
|
||||
(home-page "https://github.com/googleapis/gax-go")
|
||||
(synopsis "Google API Extensions for Go")
|
||||
(description
|
||||
@@ -7395,6 +7503,140 @@ 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")
|
||||
@@ -17149,6 +17391,51 @@ 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
|
||||
@@ -18262,7 +18549,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.247.0")
|
||||
(version "0.272.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -18271,7 +18558,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 "19rj4m4qfc6lfik6p562a2nyf9mhmz0nfargpnvkcvdzi0rh350x"))
|
||||
(base32 "1agvmw1sj2xy2p0ig2xdivn8i5pjnw93d2kq4hix7s5ysiswnpw4"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
@@ -18289,25 +18576,16 @@ an alternative fork of @url{https://github.com/mattbaird/jsonpatch}.")
|
||||
(list "TestLogDirectPathMisconfigAttrempDirectPathNotSet"
|
||||
"TestLogDirectPathMisconfigNotOnGCE"
|
||||
"TestNewClient"
|
||||
"TestNewTokenSource"
|
||||
"TestNewTokenSource_WithCredentialJSON")
|
||||
"TestNewTokenSource")
|
||||
"|"))
|
||||
#: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/...")))
|
||||
#: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")))))))
|
||||
(propagated-inputs
|
||||
(list go-cloud-google-com-go-auth
|
||||
go-cloud-google-com-go-auth-oauth2adapt
|
||||
@@ -18323,7 +18601,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))
|
||||
@@ -18353,6 +18631,7 @@ 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
|
||||
@@ -18546,6 +18825,48 @@ 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")
|
||||
|
||||
@@ -2763,7 +2763,7 @@ Some feature highlights:
|
||||
(define-public openxr
|
||||
(package
|
||||
(name "openxr")
|
||||
(version "1.0.26")
|
||||
(version "1.1.57")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -2781,7 +2781,7 @@ Some feature highlights:
|
||||
; ;; Delete bundled jsoncpp.
|
||||
; (delete-file-recursively "src/external/jsoncpp")))
|
||||
(sha256
|
||||
(base32 "0s66xgwkdj5vn05l493hqydrxfpxxidd6mcb8l7l5awhn88cy16f"))))
|
||||
(base32 "1s4cg0cl6cn98d3cvgvwsichic4q3bx34flbdklnzprc18vmaqv7"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ; there are no tests
|
||||
|
||||
@@ -1002,10 +1002,6 @@ 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
|
||||
@@ -1041,7 +1037,8 @@ par compared to the rest.")
|
||||
(apply (assoc-ref cargo:%standard-phases phase)
|
||||
#:cargo-target #$(cargo-triplet)
|
||||
args))
|
||||
'(unpack-rust-crates
|
||||
'(prepare-rust-crates
|
||||
unpack-rust-crates
|
||||
configure
|
||||
check-for-pregenerated-files
|
||||
patch-cargo-checksums))))
|
||||
@@ -1061,7 +1058,8 @@ par compared to the rest.")
|
||||
"libgstlewton.so"
|
||||
"libgstrsaudiofx.so"
|
||||
"libgstrsaudioparsers.so"
|
||||
"libgstspeechmatics.so"))
|
||||
"libgstspeechmatics.so"
|
||||
"libgstspotify.so"))
|
||||
(,#$output:net
|
||||
. ("libgstdeepgram.so"
|
||||
"libgsthlsmultivariantsink.so"
|
||||
|
||||
@@ -3941,7 +3941,7 @@ $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))))))
|
||||
(list autoconf
|
||||
automake
|
||||
texinfo
|
||||
gettext-minimal
|
||||
gettext-minimal-0.23 ;for 'AC_LIB_LINKFLAGS_FROM_LIBS'
|
||||
guile-3.0
|
||||
pkg-config))
|
||||
(inputs
|
||||
|
||||
+28
-19
@@ -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, 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016, 2023-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,6 +212,10 @@ 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?)
|
||||
@@ -236,22 +240,9 @@ 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.
|
||||
|
||||
;; 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)))
|
||||
(substitute* "module/ice-9/popen.scm"
|
||||
(("/bin/sh")
|
||||
(search-input-file inputs "/bin/bash")))))
|
||||
(add-after 'install 'add-libxcrypt-reference-pkgconfig
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(define out (assoc-ref outputs "out"))
|
||||
@@ -263,8 +254,26 @@ without requiring the source code to be rewritten.")
|
||||
(find-files (string-append out "/lib/pkgconfig")
|
||||
".*\\.pc")
|
||||
(("-lcrypt")
|
||||
(string-append "-L" libxcrypt " -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"))))))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "GUILE_LOAD_PATH")
|
||||
|
||||
+13
-11
@@ -1186,8 +1186,7 @@ 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-recomp015-execstack.patch"))
|
||||
"ghc-testsuite-grep-compat.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))
|
||||
@@ -1241,7 +1240,14 @@ 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'"))))))))
|
||||
(("^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 "))))))))
|
||||
(native-search-paths (list (search-path-specification
|
||||
(variable "GHC_PACKAGE_PATH")
|
||||
(files (list
|
||||
@@ -1269,8 +1275,7 @@ 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-recomp015-execstack.patch"))
|
||||
"ghc-testsuite-grep-compat.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0c55pj2820q26rikhpf636sn4mjgqsxjrl94vsywrh79dxp3k14z"))
|
||||
@@ -1329,8 +1334,7 @@ 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-recomp015-execstack.patch"))
|
||||
"ghc-testsuite-grep-compat.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zl25gg6bpx5601k8h3cqnns1xfc0nqgwnh8jvn2s65ra3f2g1nz"))
|
||||
@@ -1525,8 +1529,7 @@ interactive environment for the functional language Haskell.")
|
||||
(sha256
|
||||
(base32
|
||||
"1m5fzhr4gjn9ni8gxx7ag3fkbw1rspjzgv39mnfb0nkm5mw70v3s"))
|
||||
(patches (search-patches "ghc-9.2-grep-warnings.patch"
|
||||
"ghc-testsuite-recomp015-execstack.patch"))
|
||||
(patches (search-patches "ghc-9.2-grep-warnings.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; collections.Iterable was moved to collections.abc in Python 3.10.
|
||||
@@ -1612,8 +1615,7 @@ SRC_HC_OPTS += -optc-mno-outline-atomics
|
||||
(sha256
|
||||
(base32
|
||||
"0cmmwhcwv9fjzvmgjj85d354858qqbmqfzaz5160xqj4yl9zk225"))
|
||||
(patches (search-patches "ghc-9.2-grep-warnings.patch"
|
||||
"ghc-testsuite-recomp015-execstack.patch"))))
|
||||
(patches (search-patches "ghc-9.2-grep-warnings.patch"))))
|
||||
,@(filter (match-lambda
|
||||
(("ghc-bootstrap" . _) #f)
|
||||
(("ghc-testsuite" . _) #f)
|
||||
|
||||
@@ -247,7 +247,7 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.")
|
||||
(define-public feh
|
||||
(package
|
||||
(name "feh")
|
||||
(version "3.10.3")
|
||||
(version "3.11.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
|
||||
"1j79850gwrjamgc22cv1hiynia4w5lc8qbhww3qpl8bhjxwy49jl"))))
|
||||
"0qqha3k1pivrw8kr6alk3l92qh75cgynb4vsvg024fa359cs7k7j"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
|
||||
@@ -378,7 +378,8 @@ method, one of the most popular choices for Traditional Chinese users.")
|
||||
texinfo
|
||||
perl
|
||||
pkg-config
|
||||
python-minimal))
|
||||
python-minimal
|
||||
python-setuptools))
|
||||
(synopsis "Braille translator and back-translator")
|
||||
(description "Liblouis is a braille translator and back-translator named in
|
||||
honor of Louis Braille. It features support for computer and literary braille,
|
||||
|
||||
@@ -125,14 +125,14 @@
|
||||
;; ex:
|
||||
;; tar xf /gnu/store/...-firefox-123.4.source.tar.xz -O \
|
||||
;; firefox-123.4/browser/locales/l10n-changesets.json | grep revision
|
||||
(let ((commit "c316776e57fcf5c11054c115054b083ce0790ce7"))
|
||||
(let ((commit "d1394212aed0ce0063c0f818aa236e7d4f955ac9"))
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/mozilla-l10n/firefox-l10n.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "firefox-l10n" commit))
|
||||
(sha256 (base32 "19ph6rj4s5f1vdmkifk2n1lb2lnlps87miy49552x5czxy40wwh4")))))
|
||||
(sha256 (base32 "16s515xf0i7a7acv0m1bbgflbdx9a87b1dcg7q3yswym8x1bhvaj")))))
|
||||
|
||||
(define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n)
|
||||
(let* ((ff-src (firefox-source-origin
|
||||
@@ -238,23 +238,23 @@
|
||||
;;; but since in Guix only the latest packaged Rust is officially supported,
|
||||
;;; it is a tradeoff worth making.
|
||||
;;; 0: https://firefox-source-docs.mozilla.org/writing-rust-code/update-policy.html
|
||||
(define rust-librewolf rust-1.92)
|
||||
(define rust-librewolf rust-1.93)
|
||||
|
||||
;; Update this id with every update to its release date.
|
||||
;; It's used for cache validation and therefore can lead to strange bugs.
|
||||
;; ex: date '+%Y%m%d%H%M%S'
|
||||
;; or: (format-time-string "%Y%m%d%H%M%S")
|
||||
(define %librewolf-build-id "20260319204056")
|
||||
(define %librewolf-build-id "20260326135749")
|
||||
|
||||
(define-public librewolf
|
||||
(package
|
||||
(name "librewolf")
|
||||
(version "148.0.2-3")
|
||||
(version "149.0-1")
|
||||
(source
|
||||
(make-librewolf-source
|
||||
#:version version
|
||||
#:firefox-hash "142f4k4ykcm65kbvj60p472103r4k79v9fdsfljdav2rbr6qxjx6"
|
||||
#:librewolf-hash "193yh89chifcvqn03h9xs39g0pdiiamzb4wjf8f7qczgc23b7y8w"
|
||||
#:firefox-hash "12jb930qhqhpzjpn5smms7g4n6y40zvxcrg8w42696wxk7pgsqdq"
|
||||
#:librewolf-hash "0igv0fr0vl2nf5rlgnidfz2a3gh55bsqwcray0jg7x2kl6qnkzwm"
|
||||
#:l10n firefox-l10n))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
||||
@@ -27,14 +27,14 @@
|
||||
(define-public libsigsegv
|
||||
(package
|
||||
(name "libsigsegv")
|
||||
(version "2.14")
|
||||
(version "2.15")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/libsigsegv/libsigsegv-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "15d2r831xz94s7540nvb1gbfl062g7mrnj88m60wyr1kh10kkb6d"))))
|
||||
(base32 "1n992y64ni16bv9lijxsa5h87rscfvk01z4hl4bkijr509k5as03"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.gnu.org/software/libsigsegv/")
|
||||
(synopsis "Library for handling page faults")
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
(define-public libunistring
|
||||
(package
|
||||
(name "libunistring")
|
||||
(version "1.3")
|
||||
(version "1.4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -44,7 +44,7 @@
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09wmas38i9fw7l3sv92xkbvy7idcl76ifhzv7l7ia98xhdn7higj"))))
|
||||
"0qvp61m14xi9kx2gg44rjnq1g8h2g33ni23q0ccqc9r5i4q89n37"))))
|
||||
(propagated-inputs (libiconv-if-needed))
|
||||
(outputs '("out" "static"))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
@@ -11480,7 +11480,7 @@ found in custom keyboard firmware like QMK.")
|
||||
(define-public pipewire
|
||||
(package
|
||||
(name "pipewire")
|
||||
(version "1.5.85")
|
||||
(version "1.6.2")
|
||||
(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
|
||||
"1nd74wjy16bw8ng00acc26rakpqabcq1z64h23w97i18pb7z64xq"))))
|
||||
"01jvq9ck8dhkbmw21jw0frgbgvzwfq1dxkvl3zynrj179kpm4v9w"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -11521,7 +11521,7 @@ found in custom keyboard firmware like QMK.")
|
||||
gstreamer
|
||||
jack-2
|
||||
ldacbt
|
||||
libcamera
|
||||
libcamera-minimal
|
||||
libdrm
|
||||
libfdk
|
||||
libfreeaptx
|
||||
|
||||
@@ -495,7 +495,7 @@ interface.")
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("config-patch" ,@(search-patches "cl-asdf-config-directories.patch"))
|
||||
("patch" ,patch/pinned)))
|
||||
("patch" ,patch)))
|
||||
(arguments
|
||||
`(#:modules ((guix build utils)
|
||||
(guix build lisp-utils))
|
||||
|
||||
@@ -2083,6 +2083,8 @@ generator targetting AMD hardware.")
|
||||
(substitute* "clang/cindex.py"
|
||||
(("libclang\\.so") libclang))))))))
|
||||
(inputs (list clang))
|
||||
(native-inputs (modify-inputs (package-native-inputs clang)
|
||||
(append python-setuptools)))
|
||||
(synopsis "Python bindings to libclang")))
|
||||
|
||||
(define-public python-clang-12
|
||||
|
||||
+2
-24
@@ -37,7 +37,7 @@
|
||||
(define-public lsof
|
||||
(package
|
||||
(name "lsof")
|
||||
(version "4.99.3")
|
||||
(version "4.99.6")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -46,8 +46,7 @@
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1v32407al4j0hhcph95lv4xvr9h012lii29iyq41iwj39zwfavax"))
|
||||
(patches (search-patches "lsof-compat-linux-6.9.patch"))))
|
||||
"08p0c0wci9vam6b29ym7z7sip8gd0j0dz7zy4f0b32dw51rb3z9k"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list automake
|
||||
autoconf
|
||||
@@ -57,27 +56,6 @@
|
||||
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
@@ -30,14 +30,14 @@
|
||||
(define-public m4
|
||||
(package
|
||||
(name "m4")
|
||||
(version "1.4.19")
|
||||
(version "1.4.20")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/m4/m4-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15mghcksh11saylpm86h1zkz4in0rbi0pk8i6nqxkdikdmfdxbk3"))))
|
||||
"0axgilr6n88br7msm3ls8m4zlwgk4q3vcjqw1cknqpyg3hxfldp2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(;; Explicitly disable tests when cross-compiling, otherwise 'make check'
|
||||
|
||||
@@ -2872,17 +2872,17 @@ data by providing clean labels during training.")
|
||||
(define-public python-cma
|
||||
(package
|
||||
(name "python-cma")
|
||||
(version "4.4.1")
|
||||
(version "4.4.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cma" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1n17shbcmy7h7k105ar9yhj2zmgykx1wv9fhwd5kbwrcypa221mz"))))
|
||||
"0w41k8dk8g1ngx797dzag5xcwws77sfnfriim874rq6wnmadcav3"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list #:test-backend #~'custom
|
||||
#:test-flags #~'("cma/test.py")))
|
||||
#:test-flags #~'("src/cma/test.py")))
|
||||
(native-inputs (list python-pytest python-setuptools))
|
||||
(propagated-inputs (list python-numpy))
|
||||
(home-page "https://github.com/CMA-ES/pycma")
|
||||
|
||||
@@ -1346,7 +1346,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
|
||||
(define-public mu
|
||||
(package
|
||||
(name "mu")
|
||||
(version "1.12.15")
|
||||
(version "1.14.0")
|
||||
(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 "191q23nj690bn4cbb26yf7pw5ihb1xmbna6ccdrkkf4m19yrxr12"))))
|
||||
(base32 "1fhnnm58ndfd6hzdagrsgcdcm2qlcjlda13vyx5d9lclhxgdn0vf"))))
|
||||
(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 xapian readline python))
|
||||
(list glib gmime guile-3.0-latest xapian readline python))
|
||||
(arguments
|
||||
(list
|
||||
#:modules '((guix build meson-build-system)
|
||||
|
||||
@@ -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.2")
|
||||
(version "1.49.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -418,7 +418,7 @@ on any distribution, and the nroff source is included."))))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dnxx96lbcb8ab8yrdkqll14cl5n0bch8qpd9qj3c2ky78hhwbly"))))
|
||||
"0kzxla1w0w4z5la255lg9q51wy3qx8f1b0i6gbhaz9pcybg4yzjd"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
@@ -9760,7 +9760,7 @@ diagrams.")
|
||||
(define-public libpoly
|
||||
(package
|
||||
(name "libpoly")
|
||||
(version "0.2.0")
|
||||
(version "0.2.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -9769,7 +9769,7 @@ diagrams.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vwdffmff3widzj8x1pjvpw48s7h1y1pm8cad3zscmg2hzaqwkc0"))))
|
||||
"1nyiddvxzziagz7zrl2in8k1mypaj8z7vmm633h9mk4iiy586ddq"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs (list gmp))
|
||||
(native-inputs
|
||||
|
||||
+21
-22
@@ -46,6 +46,7 @@
|
||||
;;; 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.
|
||||
;;;
|
||||
@@ -1149,25 +1150,20 @@ simultaneously and therefore appear under the same nickname on IRC.")
|
||||
(define-public python-nbxmpp
|
||||
(package
|
||||
(name "python-nbxmpp")
|
||||
(version "5.0.4")
|
||||
(version "7.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "nbxmpp" version))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://dev.gajim.org/gajim/python-nbxmpp")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "04fnc743d523gb38mm1inii80agmpb9r6hvn3f8ygnj3yq7s2vhn"))))
|
||||
(base32 "1n7b6yv2k89hsmhmx9pi7m8l3aq97xppaz3hm7mvqgvxnlw0c1kr"))))
|
||||
(build-system pyproject-build-system)
|
||||
(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))
|
||||
(arguments (list #:test-backend #~'unittest))
|
||||
(propagated-inputs
|
||||
(list python-setuptools))
|
||||
(inputs
|
||||
(list glib
|
||||
glib-networking
|
||||
@@ -1187,7 +1183,7 @@ of xmpppy.")
|
||||
(define-public gajim
|
||||
(package
|
||||
(name "gajim")
|
||||
(version "1.9.5")
|
||||
(version "2.4.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -1195,7 +1191,7 @@ of xmpppy.")
|
||||
(version-major+minor version)
|
||||
"/gajim-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0g2nhy6ypj4jbz216sgiy37spq34bwa0ydn2g73fp9qnxfq4vpvz"))
|
||||
(base32 "0s2jryg8c0ifgf88pfj7k1ifhl1l2fw4w8w80g7xh3qpk5gj7ml0"))
|
||||
(patches
|
||||
(search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch"))))
|
||||
(build-system pyproject-build-system)
|
||||
@@ -1282,13 +1278,14 @@ of xmpppy.")
|
||||
glib-networking
|
||||
gsettings-desktop-schemas
|
||||
gsound
|
||||
gspell
|
||||
libspelling
|
||||
libadwaita
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gtk+
|
||||
gtksourceview-4
|
||||
gst-plugins-good
|
||||
gtk
|
||||
gtksourceview
|
||||
gupnp-igd
|
||||
libappindicator
|
||||
libnice
|
||||
libomemo
|
||||
libsecret
|
||||
@@ -1299,6 +1296,7 @@ of xmpppy.")
|
||||
python-dbus-1.2
|
||||
python-emoji
|
||||
python-gssapi
|
||||
python-httpx
|
||||
python-idna
|
||||
python-keyring
|
||||
python-nbxmpp
|
||||
@@ -1310,7 +1308,8 @@ of xmpppy.")
|
||||
python-pygobject
|
||||
python-pyopenssl
|
||||
python-qrcode
|
||||
python-sqlalchemy-2))
|
||||
python-sqlalchemy-2
|
||||
python-truststore))
|
||||
(propagated-inputs
|
||||
(list dconf))
|
||||
(synopsis "Fully-featured XMPP client")
|
||||
|
||||
+105
-62
@@ -166,70 +166,113 @@ bind processes, and much more.")
|
||||
|
||||
(define-public hwloc-2
|
||||
(package
|
||||
(inherit hwloc-1)
|
||||
(name "hwloc")
|
||||
(version "2.13.0")
|
||||
(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"))))
|
||||
|
||||
(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)))
|
||||
(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
|
||||
(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)))))))))))
|
||||
(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.
|
||||
|
||||
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)))
|
||||
|
||||
(define-public hwloc
|
||||
;; The latest stable series of hwloc.
|
||||
|
||||
+41
-2
@@ -540,8 +540,9 @@ enables iPod support in music players such as Clementine.")
|
||||
python-setuptools))
|
||||
(inputs
|
||||
(list bash-minimal
|
||||
gst-libav
|
||||
python-gst
|
||||
gst-libav))
|
||||
(propagated-inputs
|
||||
(list python-gst
|
||||
python-pygobject
|
||||
python-pykka
|
||||
python-requests
|
||||
@@ -554,6 +555,44 @@ 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 archive’s 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 SQLite’s 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>.
|
||||
|
||||
@@ -42,23 +42,10 @@
|
||||
#: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.2.20210619")
|
||||
(version "6.6.20260103")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ncurses/ncurses-"
|
||||
@@ -66,7 +53,7 @@
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17bcm2z1rdx5gmzj5fb8cp7f28aw5b4g2z4qvvqg3yg0fq66wc1h"))))
|
||||
"04gz96vhj83yls2czsajbmc65qsnfrxn2ijcl20h62w8xnxlqnrm"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ;1 MiB of man pages
|
||||
@@ -91,18 +78,6 @@
|
||||
(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
|
||||
@@ -205,8 +180,6 @@
|
||||
#$@(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)
|
||||
|
||||
+50
-35
@@ -478,9 +478,9 @@ Raspberry Pi ISP (PiSP), consisting of the Frontend and Backend hardware
|
||||
components.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public libcamera
|
||||
(define-public libcamera-minimal
|
||||
(package
|
||||
(name "libcamera")
|
||||
(name "libcamera-minimal")
|
||||
(version "0.6.0")
|
||||
(source
|
||||
(origin
|
||||
@@ -491,27 +491,18 @@ components.")
|
||||
(commit (string-append "v" version))))
|
||||
(patches (search-patches
|
||||
"libcamera-ipa_manager-disable-signature-verification.patch"))
|
||||
(file-name
|
||||
(git-file-name name version))
|
||||
(file-name (git-file-name "libcamera" 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 (string-append "-Dbindir=" #$output:tools "/bin")
|
||||
"-Dudev=enabled"
|
||||
"-Dv4l2=true"
|
||||
#~(list "-Dudev=enabled"
|
||||
"-Dv4l2=enabled"
|
||||
"-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 _
|
||||
@@ -530,39 +521,24 @@ 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 googletest
|
||||
graphviz ;for 'dot'
|
||||
doxygen
|
||||
pkg-config
|
||||
(list pkg-config
|
||||
python-wrapper
|
||||
python-sphinx
|
||||
python-sphinxcontrib-doxylink
|
||||
python-pyyaml))
|
||||
python-pyyaml
|
||||
python-packaging))
|
||||
(inputs
|
||||
(append
|
||||
(list eudev
|
||||
glib
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
libevent
|
||||
libjpeg-turbo
|
||||
libtiff
|
||||
libyaml
|
||||
libyuv
|
||||
pybind11-2
|
||||
python-jinja2
|
||||
python-ply
|
||||
qtbase)
|
||||
python-ply)
|
||||
;; libpisp is only needed for the rpi/pisp pipeline on ARM.
|
||||
(if (target-arm?)
|
||||
(list libpisp)
|
||||
@@ -573,6 +549,45 @@ 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")
|
||||
|
||||
+23
-16
@@ -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 Eric Bavier <bavier@posteo.net>
|
||||
;;; Copyright © 2024,2026 Eric Bavier <bavier@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -20,35 +20,42 @@
|
||||
|
||||
(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 (guix build-system gnu)
|
||||
#:use-module (gnu packages ruby-xyz)
|
||||
#:use-module (guix build-system meson)
|
||||
#: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.97")
|
||||
(version "2.107")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://nickle.org/release/nickle-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gqashcs3r0d1yp6rq6q2ayjdwsjxnd8z0ij55ayrbhn296l7mp2"))
|
||||
(patches (search-patches "nickle-man-release-date.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs (list readline))
|
||||
"1wli8p5fv2ldy51ycc8pcx8rl3ph2wbyiqs21qpjadlvildaaqj0"))))
|
||||
(build-system meson-build-system)
|
||||
(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")))))))
|
||||
(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))
|
||||
(inputs (list readline))
|
||||
(synopsis "Numeric oriented programming language")
|
||||
(description
|
||||
"Nickle is a programming language based prototyping environment with
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
(define-public parallel
|
||||
(package
|
||||
(name "parallel")
|
||||
(version "20260222")
|
||||
(version "20260322")
|
||||
(outputs '("out" "doc"))
|
||||
(source
|
||||
(origin
|
||||
@@ -90,7 +90,7 @@
|
||||
(uri (string-append "mirror://gnu/parallel/parallel-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "0j0zmq1klbvpz590vr2di8yvsniwixlhsmir7zfjy3rajx42l9y6"))
|
||||
(base32 "1q7g5f13nlwichgh0dk8w5fqjnfnxvwxk6rjy0fd5l7l6blq0ikn"))
|
||||
(snippet
|
||||
'(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
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.
|
||||
@@ -0,0 +1,54 @@
|
||||
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
|
||||
|
||||
@@ -2,9 +2,20 @@ 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-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 @@
|
||||
--- 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
|
||||
|
||||
set_sigpipe_to_default();
|
||||
|
||||
@@ -13,7 +24,7 @@ absolute file name of `sh'.
|
||||
_exit(errno == ENOENT ? 127 : 126);
|
||||
|
||||
case -1:
|
||||
@@ -2077,7 +2077,7 @@
|
||||
@@ -2136,7 +2136,7 @@ fork_and_open_slave_pty(const char *slavenam, int master, const char *command, p
|
||||
|
||||
signal(SIGPIPE, SIG_DFL);
|
||||
|
||||
@@ -22,21 +33,30 @@ absolute file name of `sh'.
|
||||
_exit(errno == ENOENT ? 127 : 126);
|
||||
|
||||
case -1:
|
||||
@@ -2422,7 +2422,7 @@
|
||||
fatal(_("close of pipe failed (%s)"), strerror(errno));
|
||||
@@ -2475,7 +2475,7 @@ use_pipes:
|
||||
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 __EMX__, NOT __MINGW32__ */
|
||||
@@ -2659,7 +2659,7 @@
|
||||
#endif /* NOT __MINGW32__ */
|
||||
@@ -2706,7 +2706,7 @@ gawk_popen(const char *cmd, struct redirect *rp)
|
||||
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 __EMX__, NOT __MINGW32__ */
|
||||
#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]);
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
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
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
--- 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
|
||||
@@ -0,0 +1,23 @@
|
||||
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"
|
||||
@@ -1,51 +0,0 @@
|
||||
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
|
||||
@@ -1,33 +0,0 @@
|
||||
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*)
|
||||
@@ -1,67 +0,0 @@
|
||||
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
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,984 @@
|
||||
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
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
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 = \
|
||||
+199
-202
@@ -128,126 +128,125 @@
|
||||
"perl-reproducible-build-date.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#: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") "'")))
|
||||
(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") "'")))
|
||||
|
||||
;; 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")))
|
||||
;; 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")))
|
||||
|
||||
(for-each (lambda (file)
|
||||
(substitute* config2
|
||||
(("libpth => .*$")
|
||||
(string-append "libpth => '" libc
|
||||
"/lib',\n"))))
|
||||
config2)))))))
|
||||
(substitute* config2
|
||||
(("libpth => .*$")
|
||||
(string-append "libpth => '" libc "/lib',\n")))))))))
|
||||
(inputs
|
||||
(if (%current-target-system)
|
||||
(list bash-minimal coreutils-minimal)
|
||||
@@ -296,46 +295,44 @@ more.")
|
||||
(properties `((release-date . "2013-03-10")))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#: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")))
|
||||
(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")))
|
||||
|
||||
(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")
|
||||
(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")
|
||||
|
||||
;; 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* (#: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$"))))))))
|
||||
(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$")))))))
|
||||
(native-inputs
|
||||
(list gcc-7))
|
||||
(native-search-paths (list (search-path-specification
|
||||
@@ -366,55 +363,55 @@ more.")
|
||||
(hidden? . #t))) ;only for GHC 4.
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#: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")))
|
||||
(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")))
|
||||
|
||||
(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")
|
||||
(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")
|
||||
|
||||
;; 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$"))))))))
|
||||
;; 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$")))))))
|
||||
(native-inputs '())))
|
||||
|
||||
(define-public perl-algorithm-c3
|
||||
|
||||
@@ -236,7 +236,7 @@ it.")
|
||||
(define-public trealla
|
||||
(package
|
||||
(name "trealla")
|
||||
(version "2.92.3")
|
||||
(version "2.92.7")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -245,7 +245,7 @@ it.")
|
||||
(url "https://github.com/trealla-prolog/trealla")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "14cycv7cgnz24pzd2zghc401s21j2y70ir5hl2l5acw169snm9jk"))
|
||||
(base32 "07z2i0bkqzdx0szwr4v98cb9r7a3ghy0vz5jn3xa7zh41yfr33nx"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
||||
@@ -1067,30 +1067,6 @@ any dependency management. It aims to keep dependencies to a minimum, in
|
||||
order to make bootstrapping easier.")
|
||||
(license license:expat)))
|
||||
|
||||
;; There are quite a few amount of Python installers in the wild we need the
|
||||
;; one from PyPa team.
|
||||
(define-public python-pypa-installer
|
||||
(package
|
||||
(name "python-pypa-installer")
|
||||
(version "0.7.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "installer" version))
|
||||
(sha256
|
||||
(base32 "0cdnqh3a3amw8k4s1pzfjh0hpvzw4pczgl702s1b16r82qqkwvd2"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f)) ; Depends on pytest, which we cannot import into this module.
|
||||
(native-inputs
|
||||
(list python-flit-core))
|
||||
(home-page "https://installer.readthedocs.io/")
|
||||
(synopsis "low-level library for installing from a Python wheel distribution")
|
||||
(description
|
||||
"This package provides a library for installing Python wheels.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-poetry-core
|
||||
(package
|
||||
(name "python-poetry-core")
|
||||
@@ -1526,6 +1502,10 @@ package from a wheel distribution. It provides basic functionality and
|
||||
abstractions for handling wheels and installing packages from wheels.")
|
||||
(license license:expat)))
|
||||
|
||||
;; Both packages have been merged into a single one.
|
||||
(define-deprecated-package python-pypa-installer
|
||||
python-installer)
|
||||
|
||||
(define-public python-jaraco-classes
|
||||
(package
|
||||
(name "python-jaraco-classes")
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
;;; 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.
|
||||
;;;
|
||||
@@ -719,7 +720,7 @@ python-axolotl.")
|
||||
(define-public python-omemo-dr
|
||||
(package
|
||||
(name "python-omemo-dr")
|
||||
(version "1.0.1")
|
||||
(version "1.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -728,7 +729,7 @@ python-axolotl.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1gx0znbfvs8jg9s754hha81l8wpghswkfsqx2jzpgv6gigf3sm8z"))))
|
||||
(base32 "18snryk95wyiz5jh5wa5x58yych9d8l9hmnqq828gsb5ncxq3szk"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments (list #:test-backend #~'unittest))
|
||||
(propagated-inputs
|
||||
|
||||
@@ -3686,24 +3686,23 @@ SLURM jobs (meant for internal use by python-snakemake-executor-plugin-slurm).")
|
||||
(define-public python-sparse
|
||||
(package
|
||||
(name "python-sparse")
|
||||
(version "0.15.5")
|
||||
(version "0.18.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "sparse" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0rp29gp82qwwkq210pzh2qmlqhi2007nb7p7nwqmrkgmjq6cwxjc"))))
|
||||
"1x5zkgbsgmpr6nis0k2y5vrsg7l61ly2zishnijcgh0fxdhjdyap"))))
|
||||
(build-system pyproject-build-system)
|
||||
(propagated-inputs
|
||||
(list python-numba python-numpy python-scipy))
|
||||
(native-inputs
|
||||
(list python-dask
|
||||
python-pytest
|
||||
python-pytest-cov
|
||||
python-pytest-cov ; runs by default
|
||||
python-setuptools
|
||||
python-setuptools-scm
|
||||
python-wheel))
|
||||
python-setuptools-scm))
|
||||
(home-page "https://github.com/pydata/sparse/")
|
||||
(synopsis "Library for multi-dimensional sparse arrays")
|
||||
(description
|
||||
|
||||
+46
-13
@@ -6074,6 +6074,15 @@ commonly used storage backends.")
|
||||
(base32
|
||||
"0snprxdnh3m45r3b0az4v0l28h90ycmfbybzla6xg1qviwv9w1ak"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-tests
|
||||
(lambda _
|
||||
(substitute* "tests/test_match.py"
|
||||
(("assertRaisesRegexp")
|
||||
"assertRaisesRegex")))))))
|
||||
(native-inputs
|
||||
(list python-pytest python-setuptools))
|
||||
(inputs
|
||||
@@ -16163,7 +16172,7 @@ file (e.g. @file{PKG-INFO}).")
|
||||
(build-system pyproject-build-system)
|
||||
;; tests: 124 passed, 16 skipped
|
||||
(native-inputs
|
||||
(list git-minimal
|
||||
(list git-minimal/pinned
|
||||
patchelf
|
||||
python-pytest
|
||||
python-pytest-mock))
|
||||
@@ -16527,22 +16536,21 @@ TODO notes checker plugin for flake8.")
|
||||
(define-public python-flake8-isort
|
||||
(package
|
||||
(name "python-flake8-isort")
|
||||
(version "6.1.1")
|
||||
(version "7.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "flake8_isort" version))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/gforcada/flake8-isort")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1cvh0d18scgq36gqa2vqbifjarln1r3axgq93lzc303ay0y2zy61"))))
|
||||
(base32 "0d7j2ws59bm9143m69ah6h865i2pn97p4gjpwx6jrwi9sy26kj5z"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f)) ; no tests in PiPY or git checkout
|
||||
(native-inputs
|
||||
(list python-hatchling))
|
||||
(propagated-inputs
|
||||
(list python-flake8
|
||||
python-isort))
|
||||
(arguments (list #:test-backend #~'custom
|
||||
#:test-flags #~(list "run_tests.py")))
|
||||
(native-inputs (list python-hatchling python-pytest))
|
||||
(propagated-inputs (list python-flake8 python-isort))
|
||||
(home-page "https://github.com/gforcada/flake8-isort")
|
||||
(synopsis "Flake8 plugin integrating isort")
|
||||
(description
|
||||
@@ -39539,6 +39547,31 @@ 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")
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
;;; 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.
|
||||
;;;
|
||||
@@ -50,22 +51,10 @@
|
||||
(list (readline-patch version seqno (base32 hash))
|
||||
...))
|
||||
|
||||
(define %patch-series-8.2
|
||||
(define %patch-series-8.3
|
||||
(patch-series
|
||||
"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")))
|
||||
"8.3"
|
||||
(1 "1pl4midx7kc56bw4ansrdpdjpanv1vmp0p6jghrrgrnv0qqs1w11")))
|
||||
|
||||
(define %patch-series-7.0
|
||||
(patch-series
|
||||
@@ -79,16 +68,16 @@
|
||||
(define-public readline
|
||||
(package
|
||||
(name "readline")
|
||||
(version (string-append "8.2."
|
||||
(number->string (length %patch-series-8.2))))
|
||||
(version (string-append "8.3."
|
||||
(number->string (length %patch-series-8.3))))
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/readline/readline-"
|
||||
(version-major+minor version) ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dbw02ai0z8x6d9s14pl0hnaa2g1kdxnv8qqra1fx13ay5qp3srz"))
|
||||
(patches (append %patch-series-8.2
|
||||
"1k31j1prf9zn86hccay2i49vlzks0cy1v3gfjpa8r0k78hh86lzy"))
|
||||
(patches (append %patch-series-8.3
|
||||
(search-patches "readline-link-ncurses.patch")))
|
||||
(patch-flags '("-p0"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
+27
-21
@@ -957,33 +957,36 @@ highlighting tool to ease code review from your terminal.")
|
||||
(define-public difftastic
|
||||
(package
|
||||
(name "difftastic")
|
||||
(version "0.63.0")
|
||||
(version "0.68.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "difftastic" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0md332fch4b87akdvljzxp4m2k5yri7cpkz3n54jc762j7j9qmrz"))))
|
||||
(base32 "012h76wx5jv6czc9j4awfan7vhrc6g5fdgnxrjmzg5q27wn99hn6"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#: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")))
|
||||
(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"))))))))
|
||||
(inputs
|
||||
(cons mimalloc (cargo-inputs 'difftastic)))
|
||||
(cons jemalloc (cargo-inputs 'difftastic)))
|
||||
(home-page "https://difftastic.wilfred.me.uk/")
|
||||
(synopsis "Structural diff command that understands syntax")
|
||||
(description
|
||||
@@ -3089,11 +3092,14 @@ 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"))
|
||||
(llvm-dir (string-append
|
||||
(assoc-ref inputs "clang") "/lib")))
|
||||
(clang (assoc-ref inputs "clang"))
|
||||
(llvm-dir (string-append clang "/lib"))
|
||||
(clang-bin (string-append clang "/bin")))
|
||||
(install-file "target/release/bindgen" bin)
|
||||
(wrap-program bindgen
|
||||
`("LIBCLANG_PATH" = (,llvm-dir))))))
|
||||
`("LIBCLANG_PATH" = (,llvm-dir))
|
||||
;; The bindgen binary requires clang, add one as a fallback.
|
||||
`("PATH" suffix (,clang-bin))))))
|
||||
(add-after 'install 'install-completions
|
||||
(lambda* (#:key native-inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
|
||||
+448
-120
@@ -752,6 +752,10 @@
|
||||
(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"))
|
||||
@@ -1476,6 +1480,10 @@
|
||||
(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"))
|
||||
@@ -2174,6 +2182,14 @@
|
||||
(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"))
|
||||
@@ -2790,7 +2806,8 @@
|
||||
|
||||
(define rust-burn-store-0.20.1
|
||||
(crate-source "burn-store" "0.20.1"
|
||||
"0v8snhnhcrqwi7g6dzkrb1bmqv12gsvyk8nhq4fr06aa11xhms2b"))
|
||||
"0v8snhnhcrqwi7g6dzkrb1bmqv12gsvyk8nhq4fr06aa11xhms2b"
|
||||
#:snippet '(delete-file-recursively "src/pytorch/tests")))
|
||||
|
||||
(define rust-burn-tensor-0.20.1
|
||||
(crate-source "burn-tensor" "0.20.1"
|
||||
@@ -3693,6 +3710,10 @@
|
||||
(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"))
|
||||
@@ -4430,7 +4451,8 @@
|
||||
|
||||
(define rust-claxon-0.4.3
|
||||
(crate-source "claxon" "0.4.3"
|
||||
"1206mxvw833ysg10029apcsjjwly8zmsvksgza5cm7ma4ikzbysb"))
|
||||
"1206mxvw833ysg10029apcsjjwly8zmsvksgza5cm7ma4ikzbysb"
|
||||
#:snippet '(delete-file-recursively "testsamples")))
|
||||
|
||||
(define rust-clearscreen-2.0.1
|
||||
(crate-source "clearscreen" "2.0.1"
|
||||
@@ -6327,7 +6349,8 @@
|
||||
|
||||
(define rust-dash-mpd-0.19.3
|
||||
(crate-source "dash-mpd" "0.19.3"
|
||||
"1qigvq43j93p4mdj41kf0d6a485x7raksn41962da1z1si2r3y8n"))
|
||||
"1qigvq43j93p4mdj41kf0d6a485x7raksn41962da1z1si2r3y8n"
|
||||
#:snippet '(delete-file-recursively "tests")))
|
||||
|
||||
(define rust-dashmap-4.0.2
|
||||
(crate-source "dashmap" "4.0.2"
|
||||
@@ -6473,7 +6496,9 @@
|
||||
|
||||
(define rust-dav1d-0.11.1
|
||||
(crate-source "dav1d" "0.11.1"
|
||||
"0q9bm3igd4bdxfh39xlrqxbhp46vminddp10fp36jq31c2w9rs1y"))
|
||||
"0q9bm3igd4bdxfh39xlrqxbhp46vminddp10fp36jq31c2w9rs1y"
|
||||
#:snippet '(for-each delete-file
|
||||
'("test-420-12.ivf" "test-420-8.ivf"))))
|
||||
|
||||
(define rust-dav1d-sys-0.8.3
|
||||
(crate-source "dav1d-sys" "0.8.3"
|
||||
@@ -6570,7 +6595,8 @@
|
||||
|
||||
(define rust-deepgram-0.7.0
|
||||
(crate-source "deepgram" "0.7.0"
|
||||
"1l8zgsvdi5wmdl3mlyzdxnwzsdj5ys18y6f49z4yghcgvk213gs9"))
|
||||
"1l8zgsvdi5wmdl3mlyzdxnwzsdj5ys18y6f49z4yghcgvk213gs9"
|
||||
#:snippet '(delete-file-recursively "examples")))
|
||||
|
||||
(define rust-defer-drop-1.3.0
|
||||
(crate-source "defer-drop" "1.3.0"
|
||||
@@ -7399,6 +7425,10 @@
|
||||
(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"))
|
||||
@@ -8630,6 +8660,10 @@
|
||||
"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"))
|
||||
@@ -12843,6 +12877,10 @@
|
||||
(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"))
|
||||
@@ -13156,7 +13194,8 @@
|
||||
|
||||
(define rust-hound-3.5.1
|
||||
(crate-source "hound" "3.5.1"
|
||||
"0kw5yybfc7hdwxwm6d3m3h4ms52fkw0n0zch35drb52ci2xsmbb2"))
|
||||
"0kw5yybfc7hdwxwm6d3m3h4ms52fkw0n0zch35drb52ci2xsmbb2"
|
||||
#:snippet '(delete-file-recursively "testsamples")))
|
||||
|
||||
(define rust-hrtf-0.8.1
|
||||
(crate-source "hrtf" "0.8.1"
|
||||
@@ -13495,6 +13534,7 @@
|
||||
"1iy8rhsap5iyigj6s86nk449zl5bahjycy2mswy6nlllp7imqv4q"))
|
||||
|
||||
(define rust-hyphenation-0.8.4
|
||||
;; TODO: Rebuild dictionaries.
|
||||
(crate-source "hyphenation" "0.8.4"
|
||||
"1w2hib167vpz7jbg3zs92ifihj4akirlhb5509aib1df8i6dvx5w"))
|
||||
|
||||
@@ -14062,6 +14102,10 @@
|
||||
(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"))
|
||||
@@ -15129,7 +15173,8 @@
|
||||
|
||||
(define rust-jsonwebtoken-10.3.0
|
||||
(crate-source "jsonwebtoken" "10.3.0"
|
||||
"1q8w7j0f8iycr97rqk05ys3lr67q9mw9i20h1fk2k1r3pq542a85"))
|
||||
"1q8w7j0f8iycr97rqk05ys3lr67q9mw9i20h1fk2k1r3pq542a85"
|
||||
#:snippet '(delete-file-recursively "tests")))
|
||||
|
||||
(define rust-jsonwebtoken-9.3.1
|
||||
(crate-source "jsonwebtoken" "9.3.1"
|
||||
@@ -15640,6 +15685,14 @@
|
||||
(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"))
|
||||
@@ -16380,11 +16433,37 @@
|
||||
|
||||
(define rust-libwebp-sys2-0.1.11
|
||||
(crate-source "libwebp-sys2" "0.1.11"
|
||||
"16dvhpx3s3y9nsqk8s48bsxs08z6r148j70l1b63x15625j1i427"))
|
||||
"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\");~@
|
||||
}~%"))))))
|
||||
|
||||
(define rust-libwebp-sys2-0.2.0
|
||||
(crate-source "libwebp-sys2" "0.2.0"
|
||||
"0195g4cxd61z5841kz7j87xy0daihg0kn07k6m7vzmm1x85d1hvd"))
|
||||
"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\");~@
|
||||
}~%"))))))
|
||||
|
||||
(define rust-libz-ng-sys-1.1.22
|
||||
;; TODO: Find a way to unbundle libz-ng.
|
||||
@@ -17421,7 +17500,8 @@
|
||||
|
||||
(define rust-metal-0.32.0
|
||||
(crate-source "metal" "0.32.0"
|
||||
"01g6a10l2p576ibybz0v9hignw7qj0r6d513qbf2vxrzcxpmmh80"))
|
||||
"01g6a10l2p576ibybz0v9hignw7qj0r6d513qbf2vxrzcxpmmh80"
|
||||
#:snippet '(delete-file-recursively "examples")))
|
||||
|
||||
(define rust-metrics-0.23.1
|
||||
(crate-source "metrics" "0.23.1"
|
||||
@@ -17564,6 +17644,10 @@
|
||||
(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"))
|
||||
@@ -17659,7 +17743,8 @@
|
||||
|
||||
(define rust-mp4-atom-0.10.1
|
||||
(crate-source "mp4-atom" "0.10.1"
|
||||
"1xqghqk90g0gf37azjfgigk2n850lvrnm4vdxfknxlmv8j9993jy"))
|
||||
"1xqghqk90g0gf37azjfgigk2n850lvrnm4vdxfknxlmv8j9993jy"
|
||||
#:snippet '(delete-file-recursively "src/test")))
|
||||
|
||||
(define rust-mp4parse-0.17.0
|
||||
(crate-source "mp4parse" "0.17.0"
|
||||
@@ -18345,6 +18430,7 @@
|
||||
"1lzmcqcnb9z8l4aq5ympx71bcwc0y5yf7d8jv6hnn7hc682hfvax"))
|
||||
|
||||
(define rust-nnnoiseless-0.5.2
|
||||
;; TODO: Rebuild src/weights.rnn.
|
||||
(crate-source "nnnoiseless" "0.5.2"
|
||||
"036sz2qjjsfp3gldzw9mig8nck88fnp7vvfwgxm01877s5j5jpc0"))
|
||||
|
||||
@@ -19313,6 +19399,10 @@
|
||||
(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"))
|
||||
@@ -20160,14 +20250,18 @@
|
||||
(crate-source "password-hash" "0.5.0"
|
||||
"0ri1mim11zk0a9s40zdi288dfqvmdiryc7lw8vl46b59ifa08vrl"))
|
||||
|
||||
(define rust-paste-0.1.18
|
||||
(crate-source "paste" "0.1.18"
|
||||
"10587zrlmzhq66yhd0z36fzglf32m1nlhi9bxxm6dgl0gp3j1jj5"))
|
||||
(define rust-paste-1.0.14
|
||||
(crate-source "paste" "1.0.14"
|
||||
"0k7d54zz8zrz0623l3xhvws61z5q2wd3hkwim6gylk8212placfy"))
|
||||
|
||||
(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"))
|
||||
@@ -20253,6 +20347,7 @@
|
||||
"191z4xjsdzn8k821071z4m8zl0jnd2r7j8ki2wpzdkdjha2g5mvn"))
|
||||
|
||||
(define rust-pbjson-0.6.0
|
||||
;; TODO: Rebuild descriptors.bin.
|
||||
(crate-source "pbjson" "0.6.0"
|
||||
"143vazvr2dc3jx7nyxmz6313rkqszxn9swnzlljjsapcn0cwfc0h"))
|
||||
|
||||
@@ -21978,7 +22073,8 @@
|
||||
|
||||
(define rust-pyo3-0.28.2
|
||||
(crate-source "pyo3" "0.28.2"
|
||||
"1qgqaizb5gp4rvjv6hhman4sacz1cahmibiflbasy2h8hrzf51fg"))
|
||||
"1qgqaizb5gp4rvjv6hhman4sacz1cahmibiflbasy2h8hrzf51fg"
|
||||
#:snippet '(delete-file-recursively "branding")))
|
||||
|
||||
(define rust-pyo3-async-runtimes-0.24.0
|
||||
(crate-source "pyo3-async-runtimes" "0.24.0"
|
||||
@@ -22488,6 +22584,10 @@
|
||||
(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"))
|
||||
@@ -23402,6 +23502,10 @@
|
||||
(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"))
|
||||
@@ -23798,7 +23902,8 @@
|
||||
|
||||
(define rust-rqrr-0.10.1
|
||||
(crate-source "rqrr" "0.10.1"
|
||||
"0cb61i3jqvc92pn277p0zp10h2z0a20l3lny4ln6b5fvx3cqggpz"))
|
||||
"0cb61i3jqvc92pn277p0zp10h2z0a20l3lny4ln6b5fvx3cqggpz"
|
||||
#:snippet '(delete-file-recursively "src/test_data")))
|
||||
|
||||
(define rust-rsa-0.9.0-pre.0
|
||||
(crate-source "rsa" "0.9.0-pre.0"
|
||||
@@ -26123,7 +26228,9 @@
|
||||
|
||||
(define rust-signalsmith-stretch-0.1.3
|
||||
(crate-source "signalsmith-stretch" "0.1.3"
|
||||
"1zbny48q6cw1h1kq41yfyvn3mgmsd3cc82f3cl7m2cjm1gqydnji"))
|
||||
"1zbny48q6cw1h1kq41yfyvn3mgmsd3cc82f3cl7m2cjm1gqydnji"
|
||||
#:snippet '(delete-file-recursively
|
||||
"signalsmith-stretch/web/demo")))
|
||||
|
||||
(define rust-signature-1.6.4
|
||||
(crate-source "signature" "1.6.4"
|
||||
@@ -26282,7 +26389,8 @@
|
||||
|
||||
(define rust-skia-safe-0.93.1
|
||||
(crate-source "skia-safe" "0.93.1"
|
||||
"0h7r55c79gnqf4qhqnr8n0fv49kjvgy0p64gxvpwjcfmm5z877kz"))
|
||||
"0h7r55c79gnqf4qhqnr8n0fv49kjvgy0p64gxvpwjcfmm5z877kz"
|
||||
#:snippet '(delete-file-recursively "tests")))
|
||||
|
||||
(define rust-skrifa-0.37.0
|
||||
(crate-source "skrifa" "0.37.0"
|
||||
@@ -28148,6 +28256,10 @@
|
||||
(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"))
|
||||
@@ -28196,6 +28308,10 @@
|
||||
(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"))
|
||||
@@ -29359,6 +29475,14 @@
|
||||
(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"))
|
||||
@@ -29387,6 +29511,14 @@
|
||||
(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"))
|
||||
@@ -29403,6 +29535,18 @@
|
||||
(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"))
|
||||
@@ -29411,10 +29555,30 @@
|
||||
(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"))
|
||||
@@ -29427,6 +29591,10 @@
|
||||
(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"))
|
||||
@@ -29479,6 +29647,10 @@
|
||||
(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"))
|
||||
@@ -29491,10 +29663,18 @@
|
||||
(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"))
|
||||
@@ -29503,6 +29683,14 @@
|
||||
(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"))
|
||||
@@ -29511,6 +29699,10 @@
|
||||
(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"))
|
||||
@@ -29519,6 +29711,18 @@
|
||||
(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"))
|
||||
@@ -29531,6 +29735,10 @@
|
||||
(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"))
|
||||
@@ -29539,6 +29747,22 @@
|
||||
(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"))
|
||||
@@ -29559,6 +29783,10 @@
|
||||
(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"))
|
||||
@@ -30028,6 +30256,10 @@
|
||||
(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"))
|
||||
@@ -30239,6 +30471,10 @@
|
||||
"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"
|
||||
@@ -33975,6 +34211,10 @@
|
||||
(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"))
|
||||
@@ -34031,6 +34271,10 @@
|
||||
(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"))
|
||||
@@ -34490,15 +34734,6 @@
|
||||
;;; 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
|
||||
@@ -43919,25 +44154,25 @@
|
||||
rust-windows-x86-64-gnullvm-0.52.6
|
||||
rust-windows-x86-64-msvc-0.52.6))
|
||||
(difftastic =>
|
||||
(list rust-ahash-0.8.11
|
||||
rust-aho-corasick-1.1.3
|
||||
(list rust-ahash-0.8.12
|
||||
rust-aho-corasick-1.1.4
|
||||
rust-allocator-api2-0.2.21
|
||||
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-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-crossbeam-deque-0.8.6
|
||||
rust-crossbeam-epoch-0.9.18
|
||||
rust-crossbeam-utils-0.8.21
|
||||
@@ -43945,133 +44180,158 @@
|
||||
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.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-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-hashbrown-0.14.5
|
||||
rust-hashbrown-0.15.2
|
||||
rust-hashbrown-0.15.5
|
||||
rust-hashbrown-0.16.1
|
||||
rust-heck-0.5.0
|
||||
rust-hermit-abi-0.5.0
|
||||
rust-hermit-abi-0.5.2
|
||||
rust-humansize-2.1.3
|
||||
rust-humantime-2.2.0
|
||||
rust-humantime-2.3.0
|
||||
rust-ignore-0.4.23
|
||||
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-indexmap-2.13.0
|
||||
rust-is-terminal-0.4.17
|
||||
rust-is-terminal-polyfill-1.70.2
|
||||
rust-itoa-1.0.18
|
||||
rust-lazy-static-1.5.0
|
||||
rust-libc-0.2.171
|
||||
rust-libm-0.2.11
|
||||
rust-libmimalloc-sys-0.1.24
|
||||
rust-libc-0.2.183
|
||||
rust-libm-0.2.16
|
||||
rust-line-numbers-0.3.1
|
||||
rust-linux-raw-sys-0.4.15
|
||||
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-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-normalize-line-endings-0.3.0
|
||||
rust-num-traits-0.2.19
|
||||
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-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-pretty-assertions-1.4.1
|
||||
rust-pretty-env-logger-0.5.0
|
||||
rust-proc-macro2-1.0.94
|
||||
rust-quote-1.0.40
|
||||
rust-proc-macro2-1.0.106
|
||||
rust-quote-1.0.45
|
||||
rust-radix-heap-0.4.2
|
||||
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-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-rustc-hash-2.1.1
|
||||
rust-rustix-0.38.44
|
||||
rust-rustix-1.0.5
|
||||
rust-rustversion-1.0.20
|
||||
rust-ryu-1.0.20
|
||||
rust-rustix-1.1.4
|
||||
rust-rustversion-1.0.22
|
||||
rust-same-file-1.0.6
|
||||
rust-scopeguard-1.2.0
|
||||
rust-serde-1.0.219
|
||||
rust-serde-derive-1.0.219
|
||||
rust-serde-json-1.0.140
|
||||
rust-serde-1.0.228
|
||||
rust-serde-core-1.0.228
|
||||
rust-serde-derive-1.0.228
|
||||
rust-serde-json-1.0.149
|
||||
rust-shlex-1.3.0
|
||||
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-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-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.100
|
||||
rust-syn-2.0.117
|
||||
rust-termcolor-1.4.1
|
||||
rust-terminal-size-0.4.2
|
||||
rust-terminal-size-0.4.4
|
||||
rust-termtree-0.5.1
|
||||
rust-tree-sitter-0.24.7
|
||||
rust-tree-sitter-bash-0.23.3
|
||||
rust-tree-sitter-c-0.23.4
|
||||
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-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-elixir-0.3.4
|
||||
rust-tree-sitter-go-0.23.4
|
||||
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-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.23.1
|
||||
rust-tree-sitter-javascript-0.25.0
|
||||
rust-tree-sitter-json-0.24.8
|
||||
rust-tree-sitter-julia-0.23.1
|
||||
rust-tree-sitter-language-0.1.5
|
||||
rust-tree-sitter-lua-0.2.0
|
||||
rust-tree-sitter-language-0.1.7
|
||||
rust-tree-sitter-lua-0.5.0
|
||||
rust-tree-sitter-make-1.1.1
|
||||
rust-tree-sitter-nix-0.0.2
|
||||
rust-tree-sitter-newick-1.1.0
|
||||
rust-tree-sitter-nix-0.3.0
|
||||
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-0.23.3
|
||||
rust-tree-sitter-rust-orchard-0.16.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.0
|
||||
rust-tree-magic-mini-3.1.6
|
||||
rust-tree-sitter-yaml-0.7.2
|
||||
rust-tree-sitter-zig-1.1.2
|
||||
rust-tree-magic-mini-3.2.2
|
||||
rust-typed-arena-2.0.2
|
||||
rust-unicode-ident-1.0.18
|
||||
rust-unicode-ident-1.0.24
|
||||
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.0+wasi-snapshot-preview1
|
||||
rust-wasi-0.11.1+wasi-snapshot-preview1
|
||||
rust-winapi-0.3.9
|
||||
rust-winapi-i686-pc-windows-gnu-0.4.0
|
||||
rust-winapi-util-0.1.9
|
||||
rust-winapi-util-0.1.11
|
||||
rust-winapi-x86-64-pc-windows-gnu-0.4.0
|
||||
rust-windows-sys-0.52.0
|
||||
rust-windows-link-0.2.1
|
||||
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
|
||||
@@ -44083,8 +44343,9 @@
|
||||
rust-windows-x86-64-msvc-0.52.6
|
||||
rust-wu-diff-0.1.2
|
||||
rust-yansi-1.0.1
|
||||
rust-zerocopy-0.7.35
|
||||
rust-zerocopy-derive-0.7.35))
|
||||
rust-zerocopy-0.8.47
|
||||
rust-zerocopy-derive-0.8.47
|
||||
rust-zmij-1.0.21))
|
||||
(drill =>
|
||||
(list rust-addr2line-0.24.2
|
||||
rust-adler2-2.0.0
|
||||
@@ -52704,7 +52965,7 @@
|
||||
rust-valuable-0.1.1
|
||||
rust-variadics-please-1.1.0
|
||||
rust-vcpkg-0.2.15
|
||||
rust-vergen-9.1.0
|
||||
rust-vergen-9.0.6
|
||||
rust-vergen-gitcl-1.0.8
|
||||
rust-vergen-lib-0.1.6
|
||||
rust-vergen-lib-9.1.0
|
||||
@@ -59066,6 +59327,36 @@
|
||||
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
|
||||
@@ -68141,6 +68432,43 @@
|
||||
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
|
||||
|
||||
@@ -50,14 +50,14 @@
|
||||
(define-public scribus
|
||||
(package
|
||||
(name "scribus")
|
||||
(version "1.6.4")
|
||||
(version "1.6.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/scribus/scribus/"
|
||||
version "/scribus-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1ddsga862wwq2lb12rlsm6009gfx9nxx3s5323jifs53fs1y3knp"))))
|
||||
(base32 "1jj86a2xydkyqfdyhfikcxxl3m4j861mbbcswdd7779q11wysckq"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ;no test target
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;; Copyright © 2013, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2016, 2026 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,7 +190,8 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
|
||||
(apply (assoc-ref cargo:%standard-phases phase)
|
||||
#:cargo-target #$(cargo-triplet)
|
||||
args))
|
||||
'(unpack-rust-crates
|
||||
'(prepare-rust-crates
|
||||
unpack-rust-crates
|
||||
configure
|
||||
check-for-pregenerated-files
|
||||
patch-cargo-checksums))))
|
||||
@@ -1045,23 +1046,22 @@ JavaScript users who avoid shell.")
|
||||
(define-public gash
|
||||
(package
|
||||
(name "gash")
|
||||
(version "0.3.1")
|
||||
(version "0.3.2")
|
||||
(source
|
||||
;; Use a copy built from the unofficial 'EBADF-fixes' branch,
|
||||
;; <https://codeberg.org/civodul/gash/commit/7c9bf2110cfe85424fba0cd14445d5f0926c3fbd>.
|
||||
;; See <https://issues.guix.gnu.org/75658>.
|
||||
;; Note: Pre-built tarballs are no longer hosted at
|
||||
;; <https://savannah.nongnu.org/projects/gash>.
|
||||
(origin (method url-fetch)
|
||||
(uri (string-append "mirror://gnu/guix/mirror/gash-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"069wizkfkkifij9n0r6fkwbgcnjyr6xvnjid11ckppx0waixc0s7"))))
|
||||
"1r74k5qms2rrpx7cywpg9hdywd3y893rl1f4467l86h1gpkih368"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(inputs
|
||||
(list guile-3.0))
|
||||
(home-page "https://savannah.nongnu.org/projects/gash/")
|
||||
(home-page "https://codeberg.org/guix/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
|
||||
|
||||
@@ -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 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016, 2023, 2024, 2026 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,7 +391,10 @@ 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 "--exec-prefix=" (assoc-ref %outputs "out"))
|
||||
(list (string-append "CFLAGS=-g -O2"
|
||||
" -Wno-implicit-function-declaration"
|
||||
" -Wno-incompatible-pointer-types")
|
||||
(string-append "--exec-prefix=" (assoc-ref %outputs "out"))
|
||||
(string-append "--with-tclconfig="
|
||||
(assoc-ref %build-inputs "tcl") "/lib")
|
||||
(string-append "--with-xml2-config="
|
||||
|
||||
@@ -140,24 +140,18 @@
|
||||
(define-public ed
|
||||
(package
|
||||
(name "ed")
|
||||
(version "1.21")
|
||||
(version "1.22.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ed/ed-"
|
||||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xddpcdsdhf1cx7izk9l5dmf8vakjx5ncm1cy1f3libxfac4kqk0"))))
|
||||
"1k2ql71ybnsfwh81f95qwcg9wl2ijyziav1pj1kav7gjqbfhgqan"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list lzip))
|
||||
(arguments
|
||||
`(#: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"))))))))
|
||||
`(#:configure-flags (list ,(string-append "CC=" (cc-for-target)))))
|
||||
(home-page "https://www.gnu.org/software/ed/")
|
||||
(synopsis "Line-oriented text editor")
|
||||
(description
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
;;; 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.
|
||||
;;;
|
||||
@@ -443,6 +444,16 @@ 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.
|
||||
@@ -583,6 +594,7 @@ 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
|
||||
|
||||
@@ -3154,8 +3154,7 @@ wallpaper using mpv.")
|
||||
(define-public libvpx
|
||||
(package
|
||||
(name "libvpx")
|
||||
(version "1.15.2")
|
||||
(replacement libvpx/fixed)
|
||||
(version "1.16.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -3164,8 +3163,9 @@ wallpaper using mpv.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"07c29a5q19613pldp8qm6harqwl7kvqhs7vw4mr8s3dnwyb5jpnl"))
|
||||
(patches (search-patches "libvpx-CVE-2016-2818.patch"))))
|
||||
"0llik9k5rs9ychw9fnknwrz8662dm370yf76r6d6n07727faylyg"))
|
||||
(patches (search-patches "libvpx-CVE-2016-2818.patch"
|
||||
"libvpx-CVE-2026-2447.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--enable-shared"
|
||||
@@ -3194,11 +3194,6 @@ 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")
|
||||
|
||||
+100
-40
@@ -161,6 +161,8 @@
|
||||
#: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)
|
||||
@@ -217,6 +219,9 @@
|
||||
(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.
|
||||
@@ -261,28 +266,34 @@
|
||||
"share/qemu/pxe-virtio.rom"))
|
||||
#~((string-append #$output "/share/qemu"))))
|
||||
(out #$output))
|
||||
(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")))
|
||||
(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)))))
|
||||
;; 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
|
||||
@@ -325,6 +336,29 @@
|
||||
"\"~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"))
|
||||
@@ -587,27 +621,38 @@ exec smbd $@")))
|
||||
zlib
|
||||
`(,zstd "lib"))))
|
||||
(native-inputs
|
||||
;; 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")))
|
||||
(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"))))
|
||||
(home-page "https://www.qemu.org")
|
||||
(synopsis "Machine emulator and virtualizer")
|
||||
(description
|
||||
@@ -2467,9 +2512,23 @@ Open Container Initiative specification.")
|
||||
#:build-flags
|
||||
#~(list (string-append "-ldflags="
|
||||
"-X github.com/opencontainers/umoci.version="
|
||||
#$version))))
|
||||
;; TODO: build manpages from <doc/man> with 'go-md2man'.
|
||||
(propagated-inputs
|
||||
#$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
|
||||
(list go-github-com-adalogics-go-fuzz-headers
|
||||
go-github-com-apex-log
|
||||
go-github-com-blang-semver-v4
|
||||
@@ -2489,7 +2548,8 @@ 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-google-golang-org-protobuf
|
||||
go-md2man))
|
||||
(home-page "https://umo.ci/")
|
||||
(synopsis "Tool for modifying Open Container images")
|
||||
(description
|
||||
|
||||
@@ -242,39 +242,6 @@ 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")
|
||||
|
||||
@@ -688,7 +688,7 @@ avoiding password prompts when X11 forwarding has already been setup.")
|
||||
(define-public libxkbcommon
|
||||
(package
|
||||
(name "libxkbcommon")
|
||||
(version "1.11.0")
|
||||
(version "1.13.1")
|
||||
(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
|
||||
"1swa6rf63c0wi0qq5r661g63yk2iwa9l66148078xkrwcf05sp91"))))
|
||||
"1440s6w7m7xpxw44d3x9wyn5wy4wxdx33idvklxkhp9irnq32jy1"))))
|
||||
(outputs '("out" "doc"))
|
||||
(build-system meson-build-system)
|
||||
(inputs
|
||||
@@ -713,6 +713,8 @@ 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.
|
||||
@@ -955,7 +957,7 @@ rasterisation.")
|
||||
(define-public libdrm
|
||||
(package
|
||||
(name "libdrm")
|
||||
(version "2.4.124")
|
||||
(version "2.4.131")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -963,7 +965,7 @@ rasterisation.")
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yd37j3c1qz9gmwvv7vwqgss8aiizypsg8hn9fpsyjnac4zjjdmc"))))
|
||||
"1m8pyv2l7mbkf1wy54b3dsvm7f8ksf0xwm6nlc36928wnn1rkfj5"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
|
||||
@@ -2513,7 +2513,7 @@ XC-APPGROUP, XTEST.")
|
||||
(define-public libevdev
|
||||
(package
|
||||
(name "libevdev")
|
||||
(version "1.13.3")
|
||||
(version "1.13.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -2521,11 +2521,11 @@ XC-APPGROUP, XTEST.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gygrc20d7cw70fdb5mp0ns3pmy8skggyl1mbpfyp3i0hv7amwdb"))))
|
||||
"040ialc9galic1bxgllp9g26fzk8lay0db1p8x0ky8yqrgn1bwkk"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-static")))
|
||||
(native-inputs (list python))
|
||||
(native-inputs (list pkg-config python))
|
||||
(home-page "https://www.freedesktop.org/wiki/Software/libevdev/")
|
||||
(synopsis "Wrapper library for evdev devices")
|
||||
(description
|
||||
|
||||
+565
-6
@@ -21,24 +21,39 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu services monitoring)
|
||||
#:use-module (gnu services)
|
||||
#: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 configuration)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu services web)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages monitoring)
|
||||
#:use-module (gnu packages networking)
|
||||
#:use-module (gnu services)
|
||||
#: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 utils)
|
||||
#: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 (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
|
||||
|
||||
@@ -94,7 +109,49 @@
|
||||
zabbix-agent-service-type
|
||||
zabbix-front-end-configuration
|
||||
zabbix-front-end-service-type
|
||||
%zabbix-front-end-configuration-nginx))
|
||||
%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))
|
||||
|
||||
|
||||
;;;
|
||||
@@ -1186,3 +1243,505 @@ 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))))
|
||||
|
||||
@@ -313,6 +313,15 @@
|
||||
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
|
||||
@@ -2182,6 +2191,128 @@ 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.
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
%test-anonip
|
||||
%test-go-webdav
|
||||
%test-patchwork
|
||||
%test-sogogi
|
||||
%test-agate
|
||||
%test-miniflux-admin-string
|
||||
%test-miniflux-admin-file
|
||||
@@ -780,6 +781,55 @@ 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013-2015, 2020-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013-2015, 2020-2022, 2026 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,7 +123,6 @@
|
||||
"Return a bag for NAME."
|
||||
(define private-keywords
|
||||
`(#:cmake #:inputs #:native-inputs
|
||||
#:implicit-inputs? #:implicit-cross-inputs?
|
||||
,@(if target '() '(#:target))))
|
||||
|
||||
(bag
|
||||
@@ -162,7 +161,10 @@
|
||||
|
||||
(define* (cmake-build name inputs
|
||||
#:key guile source
|
||||
(outputs '("out")) (configure-flags ''())
|
||||
(outputs '("out"))
|
||||
(implicit-inputs? #t)
|
||||
(implicit-cross-inputs? #t)
|
||||
(configure-flags ''())
|
||||
(search-paths '())
|
||||
(make-flags ''())
|
||||
(out-of-source? #t)
|
||||
@@ -231,7 +233,11 @@ provides a 'CMakeLists.txt' file as its build system."
|
||||
#:graft? #f
|
||||
#:substitutable? substitutable?
|
||||
#:allowed-references allowed-references
|
||||
#:disallowed-references disallowed-references
|
||||
#:disallowed-references
|
||||
(or disallowed-references
|
||||
(and implicit-inputs?
|
||||
(not allowed-references)
|
||||
(default-disallowed-references system)))
|
||||
#:guile-for-build guile)))
|
||||
|
||||
|
||||
@@ -244,6 +250,8 @@ 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 '())
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
gnu-build-system
|
||||
standard-packages
|
||||
standard-cross-packages
|
||||
default-disallowed-references
|
||||
package-with-explicit-inputs
|
||||
package-with-extra-configure-variable
|
||||
static-libgcc-package
|
||||
@@ -275,6 +276,20 @@ 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)
|
||||
@@ -284,7 +299,6 @@ standard packages used as implicit inputs of the GNU build system."
|
||||
"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
|
||||
@@ -341,6 +355,8 @@ standard packages used as implicit inputs of the GNU build system."
|
||||
guile source
|
||||
(outputs '("out"))
|
||||
(search-paths '())
|
||||
(implicit-inputs? #t)
|
||||
(implicit-cross-inputs? #t)
|
||||
(bootstrap-scripts %bootstrap-scripts)
|
||||
(configure-flags ''())
|
||||
(make-flags ''())
|
||||
@@ -433,7 +449,11 @@ are allowed to refer to."
|
||||
#:graft? #f
|
||||
#:substitutable? substitutable?
|
||||
#:allowed-references allowed-references
|
||||
#:disallowed-references disallowed-references
|
||||
#:disallowed-references
|
||||
(or disallowed-references
|
||||
(and implicit-inputs?
|
||||
(not allowed-references)
|
||||
(default-disallowed-references system)))
|
||||
#:guile-for-build guile)))
|
||||
|
||||
|
||||
@@ -478,6 +498,8 @@ 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 '())
|
||||
|
||||
@@ -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-2025 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019-2026 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,8 +101,9 @@ Cargo.toml file present at its root."
|
||||
" | cut -d/ -f2"
|
||||
" | grep -q '^Cargo.toml$'"))))))
|
||||
|
||||
(define* (unpack-rust-crates #:key inputs (vendor-dir "guix-vendor")
|
||||
#:allow-other-keys)
|
||||
(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 (inputs->rust-inputs inputs)
|
||||
"Filter using the label part from INPUTS."
|
||||
(filter (lambda (input)
|
||||
@@ -115,30 +116,71 @@ 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)
|
||||
(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$")))))
|
||||
(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))))))
|
||||
|
||||
(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."
|
||||
@@ -169,35 +211,7 @@ libraries or executables."
|
||||
(cargo-target #f)
|
||||
(vendor-dir "guix-vendor")
|
||||
#:allow-other-keys)
|
||||
"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)
|
||||
|
||||
"Prepare the environment for building the rust package."
|
||||
;; For cross-building
|
||||
(when target
|
||||
(setenv "CARGO_BUILD_TARGET" cargo-target)
|
||||
@@ -464,7 +478,8 @@ directory = '" vendor-dir "'") port)
|
||||
(replace 'check check)
|
||||
(replace 'install install)
|
||||
(add-after 'build 'package package)
|
||||
(add-after 'unpack 'unpack-rust-crates unpack-rust-crates)
|
||||
(add-after 'unpack 'prepare-rust-crates prepare-rust-crates)
|
||||
(add-after 'prepare-rust-crates '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)))
|
||||
|
||||
|
||||
@@ -62,6 +62,14 @@ 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."
|
||||
@@ -936,7 +944,8 @@ that traversing all the RUNPATH entries entails."
|
||||
(let-syntax ((phases (syntax-rules ()
|
||||
((_ p ...) `((p . ,p) ...)))))
|
||||
(phases separate-from-pid1
|
||||
set-SOURCE-DATE-EPOCH set-paths install-locale unpack
|
||||
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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user