diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
commit | 99fcaeccb89621dd492203ce1f2d551c06f228ed (patch) | |
tree | 41cb730ae07383004789779b0f6e11cb3f4642a3 /nixpkgs/pkgs/development/libraries/librsvg | |
parent | 59c5f5ac8682acc13bb22bc29c7cf02f7d75f01f (diff) | |
parent | 75a5ebf473cd60148ba9aec0d219f72e5cf52519 (diff) | |
download | nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.gz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.bz2 nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.lz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.xz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.zst nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/nixos/modules/config/console.nix nixpkgs/nixos/modules/services/mail/mailman.nix nixpkgs/nixos/modules/services/mail/public-inbox.nix nixpkgs/nixos/modules/services/mail/rss2email.nix nixpkgs/nixos/modules/services/networking/ssh/sshd.nix nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix nixpkgs/pkgs/applications/networking/irc/weechat/default.nix nixpkgs/pkgs/applications/window-managers/sway/default.nix nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix nixpkgs/pkgs/development/interpreters/python/default.nix nixpkgs/pkgs/development/node-packages/overrides.nix nixpkgs/pkgs/development/tools/b4/default.nix nixpkgs/pkgs/servers/dict/dictd-db.nix nixpkgs/pkgs/servers/mail/public-inbox/default.nix nixpkgs/pkgs/tools/security/pinentry/default.nix nixpkgs/pkgs/tools/text/unoconv/default.nix nixpkgs/pkgs/top-level/all-packages.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/librsvg')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/librsvg/default.nix | 98 |
1 files changed, 69 insertions, 29 deletions
diff --git a/nixpkgs/pkgs/development/libraries/librsvg/default.nix b/nixpkgs/pkgs/development/libraries/librsvg/default.nix index 91e0033cd274..57ed620fbf8d 100644 --- a/nixpkgs/pkgs/development/libraries/librsvg/default.nix +++ b/nixpkgs/pkgs/development/libraries/librsvg/default.nix @@ -15,30 +15,41 @@ , rustPlatform , rustc , rust -, cargo +, cargo-auditable-cargo-wrapper , gi-docgen , python3Packages , gnome , vala -, withIntrospection ? stdenv.hostPlatform == stdenv.buildPlatform +, writeScript +, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages +, buildPackages , gobject-introspection -, nixosTests +, _experimental-update-script-combinators +, common-updater-scripts +, jq +, nix }: stdenv.mkDerivation rec { pname = "librsvg"; - version = "2.54.4"; + version = "2.55.1"; - outputs = [ "out" "dev" "installedTests" ] ++ lib.optionals withIntrospection [ + outputs = [ "out" "dev" ] ++ lib.optionals withIntrospection [ "devdoc" ]; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "6hUqJD9qQ8DgNqKMcN4/y83qVmTGgRx4WSvCKezCSDM="; + sha256 = "a69IqdOlb9E7v7ufH3Z1myQLcKH6Ig/SOEdNZqkm+Yw="; }; - cargoVendorDir = "vendor"; + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-nRmOB9Jo+mmB0+wXrQvoII4e0ucV7bNCDeuk6CbcPdk="; + # TODO: move this to fetchCargoTarball + dontConfigure = true; + }; strictDeps = true; @@ -48,7 +59,7 @@ stdenv.mkDerivation rec { gdk-pixbuf pkg-config rustc - cargo + cargo-auditable-cargo-wrapper python3Packages.docutils vala rustPlatform.cargoSetupHook @@ -62,8 +73,7 @@ stdenv.mkDerivation rec { bzip2 pango libintl - ] ++ lib.optionals withIntrospection [ - gobject-introspection + vala # for share/vala/Makefile.vapigen ] ++ lib.optionals stdenv.isDarwin [ ApplicationServices Foundation @@ -78,23 +88,23 @@ stdenv.mkDerivation rec { configureFlags = [ (lib.enableFeature withIntrospection "introspection") + (lib.enableFeature withIntrospection "vala") - # Vapi does not build on MacOS. - # https://github.com/NixOS/nixpkgs/pull/117081#issuecomment-827782004 - (lib.enableFeature (withIntrospection && !stdenv.isDarwin) "vala") - - "--enable-installed-tests" "--enable-always-build-tests" ] ++ lib.optional stdenv.isDarwin "--disable-Bsymbolic" ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "RUST_TARGET=${rust.toRustTarget stdenv.hostPlatform}"; - makeFlags = [ - "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/RSVG" - "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/RSVG" - ]; - doCheck = false; # all tests fail on libtool-generated rsvg-convert not being able to find coreutils + GDK_PIXBUF_QUERYLOADERS = writeScript "gdk-pixbuf-loader-loaders-wrapped" '' + ${lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) (stdenv.hostPlatform.emulator buildPackages)} ${lib.getDev gdk-pixbuf}/bin/gdk-pixbuf-query-loaders + ''; + + preConfigure = '' + PKG_CONFIG_VAPIGEN_VAPIGEN="$(type -p vapigen)" + export PKG_CONFIG_VAPIGEN_VAPIGEN + ''; + # It wants to add loaders and update the loaders.cache in gdk-pixbuf # Patching the Makefiles to it creates rsvg specific loaders and the # relevant loader.cache here. @@ -116,10 +126,14 @@ stdenv.mkDerivation rec { # 'error: linker `cc` not found' when cross-compiling export RUSTFLAGS="-Clinker=$CC" + '' + lib.optionalString ((stdenv.buildPlatform != stdenv.hostPlatform) && (stdenv.hostPlatform.emulatorAvailable buildPackages)) '' + # the replacement is the native conditional + substituteInPlace gdk-pixbuf-loader/Makefile \ + --replace 'RUN_QUERY_LOADER_TEST = false' 'RUN_QUERY_LOADER_TEST = test -z "$(DESTDIR)"' \ ''; # Not generated when cross compiling. - postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' + postInstall = lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) '' # Merge gdkpixbuf and librsvg loaders cat ${lib.getLib gdk-pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $GDK_PIXBUF/loaders.cache > $GDK_PIXBUF/loaders.cache.tmp mv $GDK_PIXBUF/loaders.cache.tmp $GDK_PIXBUF/loaders.cache @@ -131,14 +145,40 @@ stdenv.mkDerivation rec { ''; passthru = { - updateScript = gnome.updateScript { - packageName = pname; - versionPolicy = "odd-unstable"; - }; - - tests = { - installedTests = nixosTests.installed-tests.librsvg; - }; + updateScript = + let + updateSource = gnome.updateScript { + packageName = "librsvg"; + }; + + updateLockfile = { + command = [ + "sh" + "-c" + '' + PATH=${lib.makeBinPath [ + common-updater-scripts + jq + nix + ]} + # update-source-version does not allow updating to the same version so we need to clear it temporarily. + # Get the current version so that we can restore it later. + latestVersion=$(nix-instantiate --eval -A librsvg.version | jq --raw-output) + # Clear the version. Provide hash so that we do not need to do pointless TOFU. + # Needs to be a fake SRI hash that is non-zero, since u-s-v uses zero as a placeholder. + # Also cannot be here verbatim or u-s-v would be confused what to replace. + update-source-version librsvg 0 "sha256-${lib.fixedWidthString 44 "B" "="}" --source-key=cargoDeps > /dev/null + update-source-version librsvg "$latestVersion" --source-key=cargoDeps > /dev/null + '' + ]; + # Experimental feature: do not copy! + supportedFeatures = [ "silent" ]; + }; + in + _experimental-update-script-combinators.sequence [ + updateSource + updateLockfile + ]; }; meta = with lib; { |