nixpkgs/pkgs/development/libraries/flatpak/default.nix

204 lines
4.2 KiB
Nix
Raw Normal View History

2020-02-07 22:55:16 +01:00
{ stdenv
, fetchurl
, autoconf
, automake
, libtool
2020-02-07 22:55:16 +01:00
, docbook_xml_dtd_412
, docbook_xml_dtd_42
, docbook_xml_dtd_43
, docbook_xsl
, which
, libxml2
, gobject-introspection
, gtk-doc
, intltool
, libxslt
, pkgconfig
, xmlto
, appstream-glib
, substituteAll
, glibcLocales
, yacc
, xdg-dbus-proxy
, p11-kit
, bubblewrap
, bzip2
, dbus
, glib
, gpgme
, json-glib
, libarchive
, libcap
, libseccomp
, coreutils
, socat
2020-02-07 22:55:16 +01:00
, gettext
, hicolor-icon-theme
, shared-mime-info
, desktop-file-utils
, gtk3
2020-02-07 22:55:16 +01:00
, fuse
, nixosTests
, libsoup
, lzma
, ostree
, polkit
, python3
, systemd
, xorg
, valgrind
, glib-networking
, wrapGAppsHook
, dconf
, gsettings-desktop-schemas
, librsvg
}:
2017-10-02 15:40:26 +02:00
2018-11-16 18:00:58 +01:00
stdenv.mkDerivation rec {
pname = "flatpak";
version = "1.6.3";
2017-10-02 15:40:26 +02:00
2018-09-06 11:38:09 +02:00
# TODO: split out lib once we figure out what to do with triggerdir
2020-02-18 01:14:10 +01:00
outputs = [ "out" "dev" "man" "doc" "installedTests" ];
2017-10-02 15:40:26 +02:00
src = fetchurl {
2018-11-16 18:00:58 +01:00
url = "https://github.com/flatpak/flatpak/releases/download/${version}/${pname}-${version}.tar.xz";
sha256 = "17s8nqdxd4xdy7ag9bw06adxccha78jmlsa3zpqnl3qh92pg0hji";
2017-10-02 15:40:26 +02:00
};
patches = [
2020-02-07 22:55:16 +01:00
# Hardcode paths used by tests and change test runtime generation to use files from Nix store.
# https://github.com/flatpak/flatpak/issues/1460
2017-10-02 15:40:26 +02:00
(substituteAll {
src = ./fix-test-paths.patch;
inherit coreutils gettext glibcLocales socat gtk3;
smi = shared-mime-info;
dfu = desktop-file-utils;
2017-10-02 15:40:26 +02:00
hicolorIconTheme = hicolor-icon-theme;
})
2020-02-07 22:55:16 +01:00
# Hardcode paths used by Flatpak itself.
2018-09-06 11:38:09 +02:00
(substituteAll {
src = ./fix-paths.patch;
p11kit = "${p11-kit.dev}/bin/p11-kit";
2018-09-06 11:38:09 +02:00
})
2020-02-07 22:55:16 +01:00
# Adapt paths exposed to sandbox for NixOS.
(substituteAll {
src = ./bubblewrap-paths.patch;
inherit (builtins) storeDir;
})
2020-02-07 22:55:16 +01:00
# Allow gtk-doc to find schemas using XML_CATALOG_FILES environment variable.
# Patch taken from gtk-doc expression.
2017-10-02 15:40:26 +02:00
./respect-xml-catalog-files-var.patch
2020-02-07 22:55:16 +01:00
# Dont hardcode flatpak binary path in launchers stored under users profile otherwise they will break after Flatpak update.
# https://github.com/NixOS/nixpkgs/issues/43581
./use-flatpak-from-path.patch
2020-02-07 22:55:16 +01:00
# Nix environment hacks should not leak into the apps.
# https://github.com/NixOS/nixpkgs/issues/53441
./unset-env-vars.patch
2020-02-07 22:55:16 +01:00
# But we want the GDK_PIXBUF_MODULE_FILE from the wrapper affect the icon validator.
./validate-icon-pixbuf.patch
2017-10-02 15:40:26 +02:00
];
nativeBuildInputs = [
autoconf
automake
libtool
2020-02-07 22:55:16 +01:00
libxml2
docbook_xml_dtd_412
docbook_xml_dtd_42
docbook_xml_dtd_43
docbook_xsl
which
gobject-introspection
gtk-doc
intltool
libxslt
pkgconfig
xmlto
appstream-glib
yacc
wrapGAppsHook
2018-09-06 11:38:09 +02:00
];
2017-10-02 15:40:26 +02:00
buildInputs = [
2020-02-07 22:55:16 +01:00
bubblewrap
bzip2
dbus
dconf
gpgme
json-glib
libarchive
libcap
libseccomp
libsoup
lzma
polkit
python3
systemd
xorg.libXau
fuse
gsettings-desktop-schemas
glib-networking
librsvg # for flatpak-validate-icon
2017-10-02 15:40:26 +02:00
];
# Required by flatpak.pc
propagatedBuildInputs = [
glib
ostree
];
2020-02-07 22:55:16 +01:00
checkInputs = [
valgrind
];
2017-10-02 15:40:26 +02:00
2020-02-07 22:55:16 +01:00
# TODO: some issues with temporary files
doCheck = false;
2017-10-02 15:40:26 +02:00
2019-10-30 02:29:30 +01:00
NIX_LDFLAGS = "-lpthread";
2019-01-04 20:33:50 +01:00
2017-10-02 15:40:26 +02:00
enableParallelBuilding = true;
configureFlags = [
"--with-system-bubblewrap=${bubblewrap}/bin/bwrap"
2018-09-06 11:38:09 +02:00
"--with-system-dbus-proxy=${xdg-dbus-proxy}/bin/xdg-dbus-proxy"
"--with-dbus-config-dir=${placeholder "out"}/share/dbus-1/system.d"
2017-10-02 15:40:26 +02:00
"--localstatedir=/var"
"--enable-installed-tests"
];
makeFlags = [
2020-02-07 22:55:16 +01:00
"installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/flatpak"
"installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/flatpak"
2017-10-02 15:40:26 +02:00
];
postPatch = ''
patchShebangs buildutil
patchShebangs tests
'';
preConfigure = ''
NOCONFIGURE=1 ./autogen.sh
'';
2019-11-07 14:38:31 +01:00
passthru = {
tests = {
installedTests = nixosTests.installed-tests.flatpak;
};
};
2017-10-02 15:40:26 +02:00
meta = with stdenv.lib; {
description = "Linux application sandboxing and distribution framework";
2020-02-07 22:55:16 +01:00
homepage = "https://flatpak.org/";
2017-10-02 15:40:26 +02:00
license = licenses.lgpl21;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
};
}