{ lib, stdenv , fetchurl , gettext , gobject-introspection , gtk-doc , docbook_xsl , docbook_xml_dtd_43 , pkg-config , meson , ninja , vala , glib , zlib , gnome , nixosTests }: stdenv.mkDerivation rec { pname = "gcab"; version = "1.6"; outputs = [ "bin" "out" "dev" "devdoc" "installedTests" ]; src = fetchurl { url = "mirror://gnome/sources/gcab/${lib.versions.majorMinor version}/gcab-${version}.tar.xz"; hash = "sha256-LwyWFVd8QSaQniUfneBibD7noVI3bBW1VE3xD8h+Vgs="; }; patches = [ # allow installing installed tests to a separate output ./installed-tests-path.patch ]; nativeBuildInputs = [ meson ninja pkg-config vala gettext gobject-introspection gtk-doc docbook_xsl docbook_xml_dtd_43 ]; buildInputs = [ glib zlib ]; # required by libgcab-1.0.pc propagatedBuildInputs = [ glib ]; mesonFlags = [ "-Dinstalled_tests=true" "-Dinstalled_test_prefix=${placeholder "installedTests"}" ]; doCheck = true; passthru = { updateScript = gnome.updateScript { packageName = pname; versionPolicy = "none"; }; tests = { installedTests = nixosTests.installed-tests.gcab; }; }; meta = with lib; { description = "GObject library to create cabinet files"; mainProgram = "gcab"; homepage = "https://gitlab.gnome.org/GNOME/gcab"; license = licenses.lgpl21Plus; maintainers = teams.gnome.members; platforms = platforms.unix; }; }