Tests from the perfschema test suite has a high failure rate. Upstream only
tests the main test suite in their CI, so don't try to outdo them.
* gnu/packages/databases.scm (mariadb): Delete trailing #t.
[phases]{check}: Only run the main test suite.
Now that we have a search path that honors it on gdk-pixbuf, it is more
valuable to keep it.
* gnu/packages/gnome.scm (librsvg)[phases]{pre-configure}: Install loaders,
cache file to locations derived from %gdk-pixbuf-loaders-cache-file.
With the addition of a profile hook for computing the gdk-pixbuf loaders cache
file, there is no longer a need for gdk-pixbuf+svg, and librsvg can propagate
gdk-pixbuf without fear, so replace the former for the latter.
The replacement was automated with the following command:
$ git grep -l ',gdk-pixbuf+svg)' \
| xargs sed 's/(".*" ,gdk-pixbuf+svg)/("librsvg" ,librsvg)/' -i
* gnu/packages/gtk.scm (gdk-pixbuf+svg): Delete package.
(gtk+-2)[propagated-inputs]: Replace gdk-pixbuf+svg with librsvg.
(gtk+)[propagated-inputs]: Likewise.
* gnu/packages/gnome.scm (gdk-pixbuf+svg): Add deprecated package.
Fixes <https://issues.guix.gnu.org/50957>.
The previous commit added a profile hook to compute a gdk-pixbuf loaders cache
file. This change enables gdk-pixbuf to make use of it.
* gnu/packages/gtk.scm (gdk-pixbuf)[native-search-paths]: Add a search path
specification to set the GDK_PIXBUF_MODULE_FILE environment variable.
This paves the way toward properly fixing https://issues.guix.gnu.org/50957.
* guix/profiles.scm (gdk-pixbuf-loaders-cache-file): Add procedure...
(%default-profile-hooks): ... and register it as a profile hook.
* guix/status.scm (hook-message): Register it here too.
Adding a profile hook to do so covers most use cases, but it is still
necessary to have the gdk-pixbuf loaders cache file computed at build time, as
software may expect to find loaders support at that time.
* guix/build/glib-or-gtk-build-system.scm: Delete trailing #t.
(%gdk-pixbuf-loaders-cache-file-prefix): New variable.
(generate-gdk-pixbuf-loaders-cache): New procedure.
(generate-gdk-pixbuf-loaders-cache-file): Add procedure...
(%standard-phases): ... and register it as a build phase.
* gnu/packages/gtk.scm (gtk+)[arguments]: Import the (guix build
glib-or-gtk-build-system) module and put it in scope.
[phases]{generate-gdk-pixbuf-loaders-cache-file}: New phase.
(gtk): Likewise.
Clang is not needed when building with libsoup 3.
* gnu/packages/webkit.scm (webkitgtk): Delete trailing #t.
[configure-flags]: Remove -DUSE_SOUP2.
[phases]{prepare-build-environment}: Remove phase.
[native-inputs]: Remove clang.
Because starting small and adding more on top is easier maintenance-wise than
the reverse.
* gnu/packages/gnome.scm (libsoup-minimal): New variable, made by stripping
all doc-related output, phases and inputs from libsoup.
[outputs]: Remove doc output.
[configure-flags]: Set gtk_doc option to false.
[phases]{patch-docbook-xml, move-doc}: Remove phases.
[native-inputs]{docbook-xml-4.1.2, gtk-doc}: Remove inputs.
(libsoup): Inherit from the above.
[outputs]: Re-add "doc" output.
[configure-flags]: Set gtk_doc option to true.
[phases]{patch-docbook-xml, move-doc}: Re-add phases.
[native-inputs]{docbook-xml-4.1.2, gtk-doc}: Re-add inputs.
* gnu/packages/glib.scm (glib): Update to 2.70. Remove trailing #t.
[outputs]: Add a debug output.
[configure-flags]: Specify --bindir and disable manpage generation.
[phases]{disable-failing-tests}: Disable the flaky testfilemonitor test.
{move-static-libraries}: Use rename-file instead of link and delete.
{move-bin}: Rename to...
{patch-pkg-config-files}: ... this, and adjust the substitutions.
[native-inputs]: Remove docbook-xsl, libxml2 and libxslt.
[properties]: Re-add the hidden? property that commit 18f73d8041 had
temporarily removed.
(glib-with-documentation)[properties]: Revert to a visible package.
[native-inputs]: Add docbook-xsl and libxslt.
[configure-flags]: Delete the inherited "-Dman=false" flag.
Justification: the test also failed on the CI for x86_64 and caused an
evaluation to fail.
* gnu/packages/linux.scm (util-linux)[phases]{disable-lsns-test}: Disable
globally.
The older 0.92 Inkscape package was previously kept because of problems
building lib2geom on the ARM architectures. As this no longer appears to be a
problem (tested on the overdrive1 machine), finally replace the older Inkscape
by the newer 1.1 release.
* gnu/packages/inkscape.scm (inkscape-1.1): Delete variable, moving the
package definition to...
(inkscape): ... the now single inkscape variable. Remove trailing #t.
[tests?]: Remove.
[phases]{generate-gdk-pixbuf-loaders-cache-file}: Add phase.
This is needed to prevent a dependency cycle between Inkscape and GTK+.
* gnu/packages/gnome.scm (rest)[propagated-inputs]
{libsoup}: Use the minimal variant.
This is needed to prevent a dependency cycle between Inkscape and GTK+.
* gnu/packages/gnome.scm (gusb-minimal): New variable.
[configure-flags]: Disable docs.
[native-inputs]: Remove gtk-doc.
(gusb): Rewrite in terms of gusb-minimal.
[configure-flags]: Enable docs.
[native-inputs]: Add gtk-doc.
* gnu/packages/gnome.scm (libcloudproviders-minimal): New minimal variant that
doesn't require Inkscape to be built (through gtk-doc).
[source]: Adjust URI.
[outputs]: Remove field.
[configure-flags]: Disable introspection, docs and vala bindings.
[phases]{move-doc}: Move phase to ...
(libcloudproviders)[phases]: ... here.
Rewrite in terms of libcloudproviders-minimal. The "doc" output is moved
here.
[configure-flags]: Clear inherited flags and enable doc.
* gnu/packages/gtk.scm (gtk+)[inputs]{libcloudproviders}: Use the minimal
variant to prevent a cycle with Inkscape.
* gnu/packages/gnome.scm (colord-minimal): New minimal variant that doesn't
require Inkscape to be built (through gtk-doc). Remove trailing #t.
[configure-flags]: Disable docs and manpage generation. Sort order.
(colord): Rewrite in terms of colord-minimal.
[configure-flags]: Enable manpages and bash completion.
[phases]{fix-bash-completion-dir}: New phase.
[native-inputs]: Add bash_completion, docbook-xsl-ns and libxml2.
* gnu/packages/gtk.scm (gtk+)[inputs]{colord}: Use the colord-minimal variant
to prevent a cycle with Inkscape.
* gnu/packages/gnome.scm (json-glib-minimal): New variable.
[source]: Adjust URI.
[outputs]: Move doc output to...
(json-glib)[outputs]: ... here. Rewrite in terms of json-glib-minimal.
* gnu/packages/gtk.scm (gtk+): Use json-glib-minimal to break a cycle with
Inkscape.
Since the minimal variant is here to stay, this should make things easier to
maintain.
* gnu/packages/gtk.scm (at-spi2-core-minimal): Rewrite after removing
inheritance, making it the base minimal package, with no documentation-related
inputs or build phases.
(at-spi2-core): Rewrite definition, inherit from the above minimal variant,
adding the documentation-related inputs and build phases.
* guix/build/glib-or-gtk-build-system.scm (wrap-all-programs)
<handle-output>: Precisely build the list of variable specifications, rather
than relying on a bunch of conditionals.
Meson goes to lengths at preventing installation to directories outside of the
main installation prefix. This isn't convenient or desirable in Guix; patch
it out using a patch maintained by Nix.
* gnu/packages/patches/meson-allow-dirs-outside-of-prefix.patch: Add patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/build-tools.scm (meson): Use it.
* gnu/packages/check.scm (python-pytest-6): Fix indentation.
[phases]{fix-version}: Rename to...
{pretend-version}: ... this. Use the supported setuptools-scm mechanism to
manually fix the version string, as suggested upstream.
* gnu/packages/python-xyz.scm (python-setuptools-scm): Update to 6.3.2.
[propagated-inputs]: Add python-packaging-bootstrap and python-tomli.
(properties): Set the python2-variant property.
(python2-setuptools-scm): Pin to version 5.0.2, the last release to support
Python 2.