Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
3.6 kB · 149 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gobject-introspection, vala, gi-docgen, glib, gsettings-desktop-schemas, gtk3, enableGlade ? false, glade, xvfb-run, gdk-pixbuf, librsvg, libxml2, hicolor-icon-theme, at-spi2-atk, at-spi2-core, gnome, libhandy, runCommand,}:
stdenv.mkDerivation rec { pname = "libhandy"; version = "1.8.3";
outputs = [ "out" "dev" "devdoc" ] ++ lib.optionals enableGlade [ "glade" ]; outputBin = "dev";
src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; hash = "sha256-BbSXIpBz/1V/ELMm4HTFBm+HQ6MC1IIKuXvLXNLasIc="; };
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ gobject-introspection gi-docgen meson ninja pkg-config vala ] ++ lib.optionals enableGlade [ libxml2 # for xmllint ];
buildInputs = [ gdk-pixbuf gtk3 ] ++ lib.optionals enableGlade [ glade ];
nativeCheckInputs = [ xvfb-run at-spi2-atk at-spi2-core librsvg hicolor-icon-theme ];
mesonFlags = [ "-Dgtk_doc=true" "-Dglade_catalog=${if enableGlade then "enabled" else "disabled"}" ];
# Uses define_variable in pkg-config, but we still need it to use the glade output PKG_CONFIG_GLADEUI_2_0_MODULEDIR = "${placeholder "glade"}/lib/glade/modules"; PKG_CONFIG_GLADEUI_2_0_CATALOGDIR = "${placeholder "glade"}/share/glade/catalogs";
doCheck = !stdenv.hostPlatform.isDarwin;
checkPhase = '' runHook preCheck
testEnvironment=( # Disable portal since we cannot run it in tests. HDY_DISABLE_PORTAL=1
"XDG_DATA_DIRS=${ lib.concatStringsSep ":" [ # HdySettings needs to be initialized from “org.gnome.desktop.interface” GSettings schema when portal is not used for color scheme. # It will not actually be used since the “color-scheme” key will only have been introduced in GNOME 42, falling back to detecting theme name. # See hdy_settings_constructed function in https://gitlab.gnome.org/GNOME/libhandy/-/commit/bb68249b005c445947bfb2bee66c91d0fe9c41a4 (glib.getSchemaDataDirPath gsettings-desktop-schemas)
# Some tests require icons "${hicolor-icon-theme}/share" ] }" ) env "''${testEnvironment[@]}" xvfb-run \ meson test --print-errorlogs
runHook postCheck '';
postFixup = '' # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. moveToOutput "share/doc" "$devdoc" '';
passthru = { updateScript = gnome.updateScript { packageName = pname; versionPolicy = "odd-unstable"; }; } // lib.optionalAttrs (!enableGlade) { glade = let libhandyWithGlade = libhandy.override { enableGlade = true; }; in runCommand "${libhandy.name}-glade" { } '' cp -r "${libhandyWithGlade.glade}" "$out" chmod -R +w "$out" sed -e "s#${libhandyWithGlade.out}#${libhandy.out}#g" -e "s#${libhandyWithGlade.glade}#$out#g" -i $(find "$out" -type f) ''; };
meta = with lib; { changelog = "https://gitlab.gnome.org/GNOME/libhandy/-/tags/${version}"; description = "Building blocks for modern adaptive GNOME apps"; mainProgram = "handy-1-demo"; homepage = "https://gitlab.gnome.org/GNOME/libhandy"; license = licenses.lgpl21Plus; teams = [ teams.gnome ]; platforms = platforms.unix; };}