lol

Merge pull request #79416 from jtojnar/flatpak-1.6

flatpak: 1.4.2 → 1.6.1

authored by

worldofpeace and committed by
GitHub
09f7e376 eaeb87ad

+957 -264
+5 -1
nixos/modules/config/xdg/portal.nix
··· 42 42 let 43 43 cfg = config.xdg.portal; 44 44 packages = [ pkgs.xdg-desktop-portal ] ++ cfg.extraPortals; 45 + joinedPortals = pkgs.symlinkJoin { 46 + name = "xdg-portals"; 47 + paths = cfg.extraPortals; 48 + }; 45 49 46 50 in mkIf cfg.enable { 47 51 ··· 56 60 57 61 environment.variables = { 58 62 GTK_USE_PORTAL = mkIf cfg.gtkUsePortal "1"; 59 - XDG_DESKTOP_PORTAL_PATH = map (p: "${p}/share/xdg-desktop-portal/portals") cfg.extraPortals; 63 + XDG_DESKTOP_PORTAL_DIR = "${joinedPortals}/share/xdg-desktop-portal/portals"; 60 64 }; 61 65 }; 62 66 }
+2
nixos/tests/installed-tests/default.nix
··· 90 90 graphene = callInstalledTest ./graphene.nix {}; 91 91 ibus = callInstalledTest ./ibus.nix {}; 92 92 libgdata = callInstalledTest ./libgdata.nix {}; 93 + glib-testing = callInstalledTest ./glib-testing.nix {}; 93 94 libxmlb = callInstalledTest ./libxmlb.nix {}; 95 + malcontent = callInstalledTest ./malcontent.nix {}; 94 96 ostree = callInstalledTest ./ostree.nix {}; 95 97 xdg-desktop-portal = callInstalledTest ./xdg-desktop-portal.nix {}; 96 98 }
+5
nixos/tests/installed-tests/glib-testing.nix
··· 1 + { pkgs, makeInstalledTest, ... }: 2 + 3 + makeInstalledTest { 4 + tested = pkgs.glib-testing; 5 + }
+5
nixos/tests/installed-tests/malcontent.nix
··· 1 + { pkgs, makeInstalledTest, ... }: 2 + 3 + makeInstalledTest { 4 + tested = pkgs.malcontent; 5 + }
+4
nixos/tests/installed-tests/xdg-desktop-portal.nix
··· 2 2 3 3 makeInstalledTest { 4 4 tested = pkgs.xdg-desktop-portal; 5 + 6 + # Ton of breakage. 7 + # https://github.com/flatpak/xdg-desktop-portal/pull/428 8 + meta.broken = true; 5 9 }
+121 -18
pkgs/development/libraries/flatpak/default.nix
··· 1 - { stdenv, fetchurl, autoreconfHook, docbook_xml_dtd_412, docbook_xml_dtd_42, docbook_xml_dtd_43, docbook_xsl, which, libxml2 2 - , gobject-introspection, gtk-doc, intltool, libxslt, pkgconfig, xmlto, appstream-glib, substituteAll, glibcLocales, yacc, xdg-dbus-proxy, p11-kit 3 - , bubblewrap, bzip2, dbus, glib, gpgme, json-glib, libarchive, libcap, libseccomp, coreutils, gettext, hicolor-icon-theme, fuse, nixosTests 4 - , libsoup, lzma, ostree, polkit, python3, systemd, xorg, valgrind, glib-networking, wrapGAppsHook, dconf, gsettings-desktop-schemas, librsvg }: 1 + { stdenv 2 + , fetchurl 3 + , autoreconfHook 4 + , docbook_xml_dtd_412 5 + , docbook_xml_dtd_42 6 + , docbook_xml_dtd_43 7 + , docbook_xsl 8 + , which 9 + , libxml2 10 + , gobject-introspection 11 + , gtk-doc 12 + , intltool 13 + , libxslt 14 + , pkgconfig 15 + , xmlto 16 + , appstream-glib 17 + , substituteAll 18 + , glibcLocales 19 + , yacc 20 + , xdg-dbus-proxy 21 + , p11-kit 22 + , bubblewrap 23 + , bzip2 24 + , dbus 25 + , glib 26 + , gpgme 27 + , json-glib 28 + , libarchive 29 + , libcap 30 + , libseccomp 31 + , coreutils 32 + , socat 33 + , gettext 34 + , hicolor-icon-theme 35 + , shared-mime-info 36 + , desktop-file-utils 37 + , gtk3 38 + , fuse 39 + , malcontent 40 + , nixosTests 41 + , libsoup 42 + , lzma 43 + , ostree 44 + , polkit 45 + , python3 46 + , systemd 47 + , xorg 48 + , valgrind 49 + , glib-networking 50 + , wrapGAppsHook 51 + , dconf 52 + , gsettings-desktop-schemas 53 + , librsvg 54 + }: 5 55 6 56 stdenv.mkDerivation rec { 7 57 pname = "flatpak"; 8 - version = "1.4.2"; 58 + version = "1.6.1"; 9 59 10 60 # TODO: split out lib once we figure out what to do with triggerdir 11 61 outputs = [ "out" "man" "doc" "installedTests" ]; 12 62 13 63 src = fetchurl { 14 64 url = "https://github.com/flatpak/flatpak/releases/download/${version}/${pname}-${version}.tar.xz"; 15 - sha256 = "08nmpp26mgv0vp3mlwk97rnp0j7i108h4hr9nllja19sjxnrlygj"; 65 + sha256 = "1x3zh2xashsq1nh4s85qq45hcnwfbnwzln2wlk10g7149nia6f7w"; 16 66 }; 17 67 18 68 patches = [ 69 + # Hardcode paths used by tests and change test runtime generation to use files from Nix store. 70 + # https://github.com/flatpak/flatpak/issues/1460 19 71 (substituteAll { 20 72 src = ./fix-test-paths.patch; 21 - inherit coreutils gettext glibcLocales; 73 + inherit coreutils gettext glibcLocales socat gtk3; 74 + smi = shared-mime-info; 75 + dfu = desktop-file-utils; 22 76 hicolorIconTheme = hicolor-icon-theme; 23 77 }) 78 + 79 + # Hardcode paths used by Flatpak itself. 24 80 (substituteAll { 25 81 src = ./fix-paths.patch; 26 82 p11 = p11-kit; 27 83 }) 84 + 85 + # Adapt paths exposed to sandbox for NixOS. 28 86 (substituteAll { 29 87 src = ./bubblewrap-paths.patch; 30 88 inherit (builtins) storeDir; 31 89 }) 32 - # patch taken from gtk_doc 90 + 91 + # Allow gtk-doc to find schemas using XML_CATALOG_FILES environment variable. 92 + # Patch taken from gtk-doc expression. 33 93 ./respect-xml-catalog-files-var.patch 94 + 95 + # Don’t hardcode flatpak binary path in launchers stored under user’s profile otherwise they will break after Flatpak update. 96 + # https://github.com/NixOS/nixpkgs/issues/43581 34 97 ./use-flatpak-from-path.patch 98 + 99 + # Nix environment hacks should not leak into the apps. 100 + # https://github.com/NixOS/nixpkgs/issues/53441 35 101 ./unset-env-vars.patch 102 + 103 + # But we want the GDK_PIXBUF_MODULE_FILE from the wrapper affect the icon validator. 36 104 ./validate-icon-pixbuf.patch 37 105 ]; 38 106 39 107 nativeBuildInputs = [ 40 - autoreconfHook libxml2 docbook_xml_dtd_412 docbook_xml_dtd_42 docbook_xml_dtd_43 docbook_xsl which gobject-introspection 41 - gtk-doc intltool libxslt pkgconfig xmlto appstream-glib yacc wrapGAppsHook 108 + autoreconfHook 109 + libxml2 110 + docbook_xml_dtd_412 111 + docbook_xml_dtd_42 112 + docbook_xml_dtd_43 113 + docbook_xsl 114 + which 115 + gobject-introspection 116 + gtk-doc 117 + intltool 118 + libxslt 119 + pkgconfig 120 + xmlto 121 + appstream-glib 122 + yacc 123 + wrapGAppsHook 42 124 ]; 43 125 44 126 buildInputs = [ 45 - bubblewrap bzip2 dbus dconf glib gpgme json-glib libarchive libcap libseccomp 46 - libsoup lzma ostree polkit python3 systemd xorg.libXau fuse 47 - gsettings-desktop-schemas glib-networking 127 + bubblewrap 128 + bzip2 129 + dbus 130 + dconf 131 + glib 132 + gpgme 133 + json-glib 134 + libarchive 135 + libcap 136 + libseccomp 137 + libsoup 138 + lzma 139 + ostree 140 + polkit 141 + python3 142 + systemd 143 + xorg.libXau 144 + fuse 145 + malcontent 146 + gsettings-desktop-schemas 147 + glib-networking 48 148 librsvg # for flatpak-validate-icon 49 149 ]; 50 150 51 - checkInputs = [ valgrind ]; 151 + checkInputs = [ 152 + valgrind 153 + ]; 52 154 53 - doCheck = false; # TODO: some issues with temporary files 155 + # TODO: some issues with temporary files 156 + doCheck = false; 54 157 55 158 NIX_LDFLAGS = "-lpthread"; 56 159 ··· 65 168 ]; 66 169 67 170 makeFlags = [ 68 - "installed_testdir=$(installedTests)/libexec/installed-tests/flatpak" 69 - "installed_test_metadir=$(installedTests)/share/installed-tests/flatpak" 171 + "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/flatpak" 172 + "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/flatpak" 70 173 ]; 71 174 72 175 postPatch = '' ··· 82 185 83 186 meta = with stdenv.lib; { 84 187 description = "Linux application sandboxing and distribution framework"; 85 - homepage = https://flatpak.org/; 188 + homepage = "https://flatpak.org/"; 86 189 license = licenses.lgpl21; 87 190 maintainers = with maintainers; [ jtojnar ]; 88 191 platforms = platforms.linux;
+71 -21
pkgs/development/libraries/flatpak/fix-test-paths.patch
··· 1 + diff --git a/app/flatpak-builtins-build-export.c b/app/flatpak-builtins-build-export.c 2 + index 5de89d62..bf6bdb52 100644 3 + --- a/app/flatpak-builtins-build-export.c 4 + +++ b/app/flatpak-builtins-build-export.c 5 + @@ -458,7 +458,7 @@ validate_desktop_file (GFile *desktop_file, 6 + subprocess = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_PIPE | 7 + G_SUBPROCESS_FLAGS_STDERR_PIPE | 8 + G_SUBPROCESS_FLAGS_STDERR_MERGE, 9 + - &local_error, "desktop-file-validate", path, NULL); 10 + + &local_error, "@dfu@/bin/desktop-file-validate", path, NULL); 11 + if (!subprocess) 12 + { 13 + if (!g_error_matches (local_error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT)) 1 14 diff --git a/tests/libtest.sh b/tests/libtest.sh 2 - index 46bcefb3..0134425e 100644 15 + index e64be49f..a9a53e12 100644 3 16 --- a/tests/libtest.sh 4 17 +++ b/tests/libtest.sh 5 - @@ -352,7 +352,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then 18 + @@ -367,7 +367,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then 6 19 # running installed-tests: assume we know what we're doing 7 20 _flatpak_bwrap_works=true 8 21 elif ! "$FLATPAK_BWRAP" --unshare-ipc --unshare-net --unshare-pid \ ··· 11 24 _flatpak_bwrap_works=false 12 25 else 13 26 _flatpak_bwrap_works=true 14 - @@ -426,12 +426,12 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \ 27 + @@ -440,7 +440,7 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \ 15 28 export DBUS_SESSION_BUS_ADDRESS="$(cat dbus-session-bus-address)" 16 29 DBUS_SESSION_BUS_PID="$(cat dbus-session-bus-pid)" 17 30 ··· 20 33 assert_not_reached "Failed to start dbus-daemon" 21 34 fi 22 35 36 + @@ -449,7 +449,7 @@ gdb_bt () { 37 + } 38 + 23 39 cleanup () { 24 - - /bin/kill -9 $DBUS_SESSION_BUS_PID ${FLATPAK_HTTP_PID:-} 25 - + @coreutils@/bin/kill -9 $DBUS_SESSION_BUS_PID ${FLATPAK_HTTP_PID:-} 40 + - /bin/kill -9 $DBUS_SESSION_BUS_PID 41 + + @coreutils@/bin/kill -9 $DBUS_SESSION_BUS_PID 26 42 gpg-connect-agent --homedir "${FL_GPG_HOMEDIR}" killagent /bye || true 27 43 fusermount -u $XDG_RUNTIME_DIR/doc || : 28 - if test -n "${TEST_SKIP_CLEANUP:-}"; then 44 + kill $(jobs -p) &> /dev/null || true 29 45 diff --git a/tests/make-test-app.sh b/tests/make-test-app.sh 30 - index 0a0a28f1..16fd51fe 100755 46 + index e51e21a6..7d39efb5 100755 31 47 --- a/tests/make-test-app.sh 32 48 +++ b/tests/make-test-app.sh 33 - @@ -129,13 +129,13 @@ msgid "Hello world" 49 + @@ -149,13 +149,13 @@ msgid "Hello world" 34 50 msgstr "Hallo Welt" 35 51 EOF 36 52 mkdir -p ${DIR}/files/de/share/de/LC_MESSAGES ··· 47 63 flatpak build-finish ${DIR} 48 64 mkdir -p repos 49 65 diff --git a/tests/make-test-runtime.sh b/tests/make-test-runtime.sh 50 - index 57899b75..9236996f 100755 66 + index 5d2c309b..cf61a3cf 100755 51 67 --- a/tests/make-test-runtime.sh 52 68 +++ b/tests/make-test-runtime.sh 53 - @@ -28,6 +28,7 @@ EOF 54 - PATH="$PATH:/usr/sbin:/sbin" 69 + @@ -25,9 +25,10 @@ EOF 70 + 71 + # On Debian derivatives, /usr/sbin and /sbin aren't in ordinary users' 72 + # PATHs, but ldconfig is kept in /sbin 73 + -PATH="$PATH:/usr/sbin:/sbin" 74 + +PATH="$PATH:@socat@/bin:/usr/sbin:/sbin" 55 75 56 76 # Add bash and dependencies 57 77 +mkdir -p ${DIR}/nix/store 58 78 mkdir -p ${DIR}/usr/bin 59 79 mkdir -p ${DIR}/usr/lib 60 80 ln -s ../lib ${DIR}/usr/lib64 61 - @@ -37,48 +38,23 @@ if test -f /sbin/ldconfig.real; then 81 + @@ -37,48 +38,24 @@ if test -f /sbin/ldconfig.real; then 62 82 else 63 83 cp `which ldconfig` ${DIR}/usr/bin 64 84 fi ··· 85 105 - fi 86 106 -} 87 107 - 88 - for i in $@ bash ls cat echo readlink; do 108 + for i in $@ bash ls cat echo readlink socat; do 89 109 - I=`which $i` 90 110 - add_bin $I 91 111 -done 92 112 -for i in `cat $BINS`; do 93 - - echo Adding binary $i 1>&2 113 + - #echo Adding binary $i 1>&2 94 114 - cp "$i" ${DIR}/usr/bin/ 95 115 -done 96 116 -for i in `cat $LIBS`; do 97 - - echo Adding library $i 1>&2 117 + - #echo Adding library $i 1>&2 98 118 - cp "$i" ${DIR}/usr/lib/ 99 119 + I=$(readlink -f $(which $i)) 120 + + [ -e ${DIR}/usr/bin/$i ] && continue 100 121 + requisites=$(nix-store --query --requisites "$I") 101 122 + for r in $requisites; do 102 123 + # a single store item can be needed by multiple paths, no need to copy it again ··· 121 142 if [ x$COLLECTION_ID != x ]; then 122 143 collection_args=--collection-id=${COLLECTION_ID} 123 144 diff --git a/tests/testlibrary.c b/tests/testlibrary.c 124 - index f2773dc8..3af9026f 100644 145 + index 44ae28e3..76bf619f 100644 125 146 --- a/tests/testlibrary.c 126 147 +++ b/tests/testlibrary.c 127 - @@ -1053,7 +1053,7 @@ check_bwrap_support (void) 148 + @@ -1343,7 +1343,7 @@ check_bwrap_support (void) 128 149 { 129 150 gint exit_code = 0; 130 151 char *argv[] = { (char *) bwrap, "--unshare-ipc", "--unshare-net", ··· 133 154 g_autofree char *argv_str = g_strjoinv (" ", argv); 134 155 g_test_message ("Spawning %s", argv_str); 135 156 g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL, &exit_code, &error); 157 + diff --git a/triggers/desktop-database.trigger b/triggers/desktop-database.trigger 158 + index 2188f535..d8283061 100755 159 + --- a/triggers/desktop-database.trigger 160 + +++ b/triggers/desktop-database.trigger 161 + @@ -1,5 +1,5 @@ 162 + #!/bin/sh 163 + 164 + -if test \( -x "$(which update-desktop-database 2>/dev/null)" \) -a \( -d $1/exports/share/applications \); then 165 + - exec update-desktop-database -q $1/exports/share/applications 166 + +if test \( -d $1/exports/share/applications \); then 167 + + exec @dfu@/bin/update-desktop-database -q $1/exports/share/applications 168 + fi 136 169 diff --git a/triggers/gtk-icon-cache.trigger b/triggers/gtk-icon-cache.trigger 137 - index 711cfab2..10c220ec 100755 170 + index 711cfab2..07baa2ac 100755 138 171 --- a/triggers/gtk-icon-cache.trigger 139 172 +++ b/triggers/gtk-icon-cache.trigger 140 - @@ -1,7 +1,7 @@ 173 + @@ -1,10 +1,10 @@ 141 174 #!/bin/sh 142 175 143 - if test \( -x "$(which gtk-update-icon-cache 2>/dev/null)" \) -a \( -d $1/exports/share/icons/hicolor \); then 176 + -if test \( -x "$(which gtk-update-icon-cache 2>/dev/null)" \) -a \( -d $1/exports/share/icons/hicolor \); then 144 177 - cp /usr/share/icons/hicolor/index.theme $1/exports/share/icons/hicolor/ 178 + +if test \( -d $1/exports/share/icons/hicolor \); then 145 179 + cp @hicolorIconTheme@/share/icons/hicolor/index.theme $1/exports/share/icons/hicolor/ 146 180 for dir in $1/exports/share/icons/*; do 147 181 if test -f $dir/index.theme; then 148 - if ! gtk-update-icon-cache --quiet $dir; then 182 + - if ! gtk-update-icon-cache --quiet $dir; then 183 + + if ! @gtk3@/bin/gtk-update-icon-cache --quiet $dir; then 184 + echo "Failed to run gtk-update-icon-cache for $dir" 185 + exit 1 186 + fi 187 + diff --git a/triggers/mime-database.trigger b/triggers/mime-database.trigger 188 + index 2067d8ec..a49a8777 100755 189 + --- a/triggers/mime-database.trigger 190 + +++ b/triggers/mime-database.trigger 191 + @@ -1,5 +1,5 @@ 192 + #!/bin/sh 193 + 194 + -if test \( -x "$(which update-mime-database 2>/dev/null)" \) -a \( -d $1/exports/share/mime/packages \); then 195 + - exec update-mime-database $1/exports/share/mime 196 + +if test \( -d $1/exports/share/mime/packages \); then 197 + + exec @smi@/bin/update-mime-database $1/exports/share/mime 198 + fi
+8 -8
pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
··· 1 1 diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c 2 - index 8f9dc66c..d3ab6e5f 100644 2 + index 52b222ea..9489441f 100644 3 3 --- a/common/flatpak-dir.c 4 4 +++ b/common/flatpak-dir.c 5 - @@ -6701,7 +6701,7 @@ export_desktop_file (const char *app, 5 + @@ -6956,7 +6956,7 @@ export_desktop_file (const char *app, 6 6 7 7 new_exec = g_string_new (""); 8 8 g_string_append_printf (new_exec, ··· 11 11 escaped_branch, 12 12 escaped_arch); 13 13 14 - @@ -7891,8 +7891,8 @@ flatpak_dir_deploy (FlatpakDir *self, 14 + @@ -8290,8 +8290,8 @@ flatpak_dir_deploy (FlatpakDir *self, 15 15 error)) 16 16 return FALSE; 17 17 ··· 23 23 G_FILE_CREATE_REPLACE_DESTINATION, NULL, cancellable, error)) 24 24 return FALSE; 25 25 diff --git a/tests/test-bundle.sh b/tests/test-bundle.sh 26 - index dff17f33..a9857adc 100755 26 + index d1682344..5e2b9a97 100755 27 27 --- a/tests/test-bundle.sh 28 28 +++ b/tests/test-bundle.sh 29 - @@ -59,7 +59,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/files 29 + @@ -67,7 +67,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/files 30 30 assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/export 31 31 assert_has_file $FL_DIR/exports/share/applications/org.test.Hello.desktop 32 32 # Ensure Exec key is rewritten ··· 36 36 assert_has_file $FL_DIR/exports/share/icons/HighContrast/64x64/apps/org.test.Hello.png 37 37 38 38 diff --git a/tests/test-run.sh b/tests/test-run.sh 39 - index 233df9ad..76e0b23b 100644 39 + index fecb756e..64043281 100644 40 40 --- a/tests/test-run.sh 41 41 +++ b/tests/test-run.sh 42 42 @@ -45,7 +45,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/stable/active/files ··· 45 45 # Ensure Exec key is rewritten 46 46 -assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=stable --arch=$ARCH --command=hello\.sh org\.test\.Hello$" 47 47 +assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=stable --arch=$ARCH --command=hello\.sh org\.test\.Hello$" 48 + assert_has_file $FL_DIR/exports/share/gnome-shell/search-providers/org.test.Hello.search-provider.ini 49 + assert_file_has_content $FL_DIR/exports/share/gnome-shell/search-providers/org.test.Hello.search-provider.ini "^DefaultDisabled=true$" 48 50 assert_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/org.test.Hello.png 49 - assert_not_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/dont-export.png 50 - assert_has_file $FL_DIR/exports/share/icons/HighContrast/64x64/apps/org.test.Hello.png
+63
pkgs/development/libraries/glib-testing/default.nix
··· 1 + { stdenv 2 + , fetchFromGitLab 3 + , meson 4 + , ninja 5 + , pkgconfig 6 + , gtk-doc 7 + , docbook-xsl-nons 8 + , docbook_xml_dtd_43 9 + , glib 10 + , nixosTests 11 + }: 12 + 13 + stdenv.mkDerivation rec { 14 + pname = "glib-testing"; 15 + version = "0.1.0"; 16 + 17 + outputs = [ "out" "dev" "devdoc" "installedTests" ]; 18 + 19 + src = fetchFromGitLab { 20 + domain = "gitlab.gnome.org"; 21 + owner = "pwithnall"; 22 + repo = "libglib-testing"; 23 + rev = version; 24 + sha256 = "0xmycsrlqyji6sc2i4wvp2gxf3897z65a57ygihfnpjpyl7zlwkr"; 25 + }; 26 + 27 + patches = [ 28 + # allow installing installed tests to a separate output 29 + ./installed-tests-path.patch 30 + ]; 31 + 32 + nativeBuildInputs = [ 33 + meson 34 + ninja 35 + pkgconfig 36 + gtk-doc 37 + docbook-xsl-nons 38 + docbook_xml_dtd_43 39 + ]; 40 + 41 + propagatedBuildInputs = [ 42 + glib 43 + ]; 44 + 45 + mesonFlags = [ 46 + "-Dinstalled_tests=true" 47 + "-Dinstalled_test_prefix=${placeholder "installedTests"}" 48 + ]; 49 + 50 + passthru = { 51 + tests = { 52 + installedTests = nixosTests.installed-tests.glib-testing; 53 + }; 54 + }; 55 + 56 + meta = with stdenv.lib; { 57 + description = "Test library providing test harnesses and mock classes complementing the classes provided by GLib"; 58 + homepage = "https://gitlab.gnome.org/pwithnall/libglib-testing"; 59 + license = licenses.lgpl21Plus; 60 + maintainers = with maintainers; [ jtojnar ]; 61 + platforms = platforms.unix; 62 + }; 63 + }
+32
pkgs/development/libraries/glib-testing/installed-tests-path.patch
··· 1 + diff --git a/libglib-testing/tests/meson.build b/libglib-testing/tests/meson.build 2 + index 4789c63..2b8525d 100644 3 + --- a/libglib-testing/tests/meson.build 4 + +++ b/libglib-testing/tests/meson.build 5 + @@ -15,9 +15,9 @@ test_programs = [ 6 + ['signal-logger', [], deps], 7 + ] 8 + 9 + -installed_tests_metadir = join_paths(datadir, 'installed-tests', 10 + +installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', 11 + 'libglib-testing-' + libglib_testing_api_version) 12 + -installed_tests_execdir = join_paths(libexecdir, 'installed-tests', 13 + +installed_tests_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', 14 + 'libglib-testing-' + libglib_testing_api_version) 15 + 16 + foreach program: test_programs 17 + @@ -48,4 +48,4 @@ foreach program: test_programs 18 + exe, 19 + env: envs, 20 + ) 21 + -endforeach 22 + \ No newline at end of file 23 + +endforeach 24 + diff --git a/meson_options.txt b/meson_options.txt 25 + index e69263e..7cb1ee8 100644 26 + --- a/meson_options.txt 27 + +++ b/meson_options.txt 28 + @@ -4,3 +4,4 @@ option( 29 + value: false, 30 + description: 'enable installed tests' 31 + ) 32 + +option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests')
+59
pkgs/development/libraries/libportal/default.nix
··· 1 + { stdenv 2 + , fetchFromGitHub 3 + , fetchpatch 4 + , meson 5 + , ninja 6 + , pkgconfig 7 + , gtk-doc 8 + , docbook-xsl-nons 9 + , docbook_xml_dtd_45 10 + , glib 11 + }: 12 + 13 + stdenv.mkDerivation rec { 14 + pname = "libportal"; 15 + version = "0.3"; 16 + 17 + outputs = [ "out" "dev" "devdoc" ]; 18 + 19 + src = fetchFromGitHub { 20 + owner = "flatpak"; 21 + repo = pname; 22 + rev = version; 23 + sha256 = "1s3g17zbbmq3m5jfs62fl94p4irln9hfhpybj7jb05z0p1939rk3"; 24 + }; 25 + 26 + patches = [ 27 + # Fix build and .pc file 28 + # https://github.com/flatpak/libportal/pull/20 29 + (fetchpatch { 30 + url = "https://github.com/flatpak/libportal/commit/7828be4ec8f05f8de7b129a1e35b5039d8baaee3.patch"; 31 + sha256 = "04nadcxx69mbnzljwjrzm88cgapn14x3mghpkhr8b9yrjn7yj86h"; 32 + }) 33 + (fetchpatch { 34 + url = "https://github.com/flatpak/libportal/commit/bf5de2f6fefec65f701b4ec8712b48b29a33fb71.patch"; 35 + sha256 = "1v0b09diq49c01j5gg2bpvn5f5gfw1a5nm1l8grc4qg4z9jck1z8"; 36 + }) 37 + ]; 38 + 39 + nativeBuildInputs = [ 40 + meson 41 + ninja 42 + pkgconfig 43 + gtk-doc 44 + docbook-xsl-nons 45 + docbook_xml_dtd_45 46 + ]; 47 + 48 + propagatedBuildInputs = [ 49 + glib 50 + ]; 51 + 52 + meta = with stdenv.lib; { 53 + description = "Flatpak portal library"; 54 + homepage = "https://github.com/flatpak/libportal"; 55 + license = licenses.lgpl2Plus; 56 + maintainers = with maintainers; [ jtojnar ]; 57 + platforms = platforms.linux; 58 + }; 59 + }
+87
pkgs/development/libraries/malcontent/default.nix
··· 1 + { stdenv 2 + , fetchFromGitLab 3 + , meson 4 + , ninja 5 + , pkgconfig 6 + , gobject-introspection 7 + , wrapGAppsHook 8 + , glib 9 + , coreutils 10 + , dbus 11 + , polkit 12 + , glib-testing 13 + , python3 14 + , nixosTests 15 + }: 16 + 17 + stdenv.mkDerivation rec { 18 + pname = "malcontent"; 19 + version = "0.4.0"; 20 + 21 + outputs = [ "bin" "out" "dev" "man" "installedTests" ]; 22 + 23 + src = fetchFromGitLab { 24 + domain = "gitlab.freedesktop.org"; 25 + owner = "pwithnall"; 26 + repo = pname; 27 + rev = version; 28 + sha256 = "0d703r20djvrgy711jvn90i8dwbb0p7qj4j43z101afpkiizq810"; 29 + }; 30 + 31 + patches = [ 32 + # Allow installing installed tests to a separate output. 33 + ./installed-tests-path.patch 34 + 35 + # This is unnecessary and breaks when submodules are not available. 36 + # https://gitlab.freedesktop.org/pwithnall/malcontent/merge_requests/3 37 + ./use-system-dependencies.patch 38 + ]; 39 + 40 + nativeBuildInputs = [ 41 + meson 42 + ninja 43 + pkgconfig 44 + gobject-introspection 45 + wrapGAppsHook 46 + ]; 47 + 48 + buildInputs = [ 49 + dbus 50 + polkit 51 + glib-testing 52 + (python3.withPackages (pp: with pp; [ 53 + pygobject3 54 + ])) 55 + ]; 56 + 57 + propagatedBuildInputs = [ 58 + glib 59 + ]; 60 + 61 + mesonFlags = [ 62 + "-Dinstalled_tests=true" 63 + "-Dinstalled_test_prefix=${placeholder "installedTests"}" 64 + ]; 65 + 66 + postPatch = '' 67 + substituteInPlace libmalcontent/tests/app-filter.c \ 68 + --replace "/usr/bin/true" "${coreutils}/bin/true" \ 69 + --replace "/bin/true" "${coreutils}/bin/true" \ 70 + --replace "/usr/bin/false" "${coreutils}/bin/false" \ 71 + --replace "/bin/false" "${coreutils}/bin/false" 72 + ''; 73 + 74 + passthru = { 75 + tests = { 76 + installedTests = nixosTests.installed-tests.malcontent; 77 + }; 78 + }; 79 + 80 + meta = with stdenv.lib; { 81 + description = "Parental controls library"; 82 + homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent"; 83 + license = licenses.lgpl21Plus; 84 + maintainers = with maintainers; [ jtojnar ]; 85 + platforms = platforms.unix; 86 + }; 87 + }
+35
pkgs/development/libraries/malcontent/installed-tests-path.patch
··· 1 + diff --git a/libmalcontent/tests/meson.build b/libmalcontent/tests/meson.build 2 + index a8a815a..0b1d242 100644 3 + --- a/libmalcontent/tests/meson.build 4 + +++ b/libmalcontent/tests/meson.build 5 + @@ -61,9 +61,9 @@ test_programs = [ 6 + ], deps], 7 + ] 8 + 9 + -installed_tests_metadir = join_paths(datadir, 'installed-tests', 10 + +installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', 11 + 'libmalcontent-' + libmalcontent_api_version) 12 + -installed_tests_execdir = join_paths(libexecdir, 'installed-tests', 13 + +installed_tests_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', 14 + 'libmalcontent-' + libmalcontent_api_version) 15 + 16 + foreach program: test_programs 17 + @@ -94,4 +94,4 @@ foreach program: test_programs 18 + env: envs, 19 + args: ['--tap'], 20 + ) 21 + -endforeach 22 + \ No newline at end of file 23 + +endforeach 24 + diff --git a/meson_options.txt b/meson_options.txt 25 + index 96a517d..7cb1ee8 100644 26 + --- a/meson_options.txt 27 + +++ b/meson_options.txt 28 + @@ -3,4 +3,5 @@ option( 29 + type: 'boolean', 30 + value: false, 31 + description: 'enable installed tests' 32 + -) 33 + \ No newline at end of file 34 + +) 35 + +option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests')
+22
pkgs/development/libraries/malcontent/use-system-dependencies.patch
··· 1 + diff --git a/meson.build b/meson.build 2 + index f4a05ba..dd31537 100644 3 + --- a/meson.build 4 + +++ b/meson.build 5 + @@ -33,9 +33,8 @@ polkit_gobject = dependency('polkit-gobject-1') 6 + polkitpolicydir = polkit_gobject.get_pkgconfig_variable('policydir', 7 + define_variable: ['prefix', prefix]) 8 + 9 + -libglib_testing = subproject('libglib-testing') 10 + libglib_testing_dep = dependency( 11 + - 'libglib-testing', 12 + + 'glib-testing-0', 13 + fallback: ['libglib-testing', 'libglib_testing_dep'], 14 + ) 15 + 16 + @@ -120,4 +119,4 @@ test_env = [ 17 + 18 + subdir('accounts-service') 19 + subdir('malcontent-client') 20 + -subdir('libmalcontent') 21 + \ No newline at end of file 22 + +subdir('libmalcontent')
+24 -5
pkgs/development/libraries/xdg-dbus-proxy/default.nix
··· 1 - { stdenv, fetchurl, pkgconfig, libxslt, docbook_xsl, docbook_xml_dtd_43, dbus, glib }: 1 + { stdenv 2 + , fetchurl 3 + , pkgconfig 4 + , libxslt 5 + , docbook_xsl 6 + , docbook_xml_dtd_43 7 + , dbus 8 + , glib 9 + }: 2 10 3 11 stdenv.mkDerivation rec { 4 12 pname = "xdg-dbus-proxy"; ··· 9 17 sha256 = "03sj1h0c2l08xa8phw013fnxr4fgav7l2mkjhzf9xk3dykwxcj8p"; 10 18 }; 11 19 12 - nativeBuildInputs = [ pkgconfig libxslt docbook_xsl docbook_xml_dtd_43 ]; 13 - buildInputs = [ glib ]; 14 - checkInputs = [ dbus ]; 20 + nativeBuildInputs = [ 21 + pkgconfig 22 + libxslt 23 + docbook_xsl 24 + docbook_xml_dtd_43 25 + ]; 26 + 27 + buildInputs = [ 28 + glib 29 + ]; 30 + 31 + checkInputs = [ 32 + dbus 33 + ]; 15 34 16 35 configureFlags = [ 17 36 "--enable-man" ··· 22 41 23 42 meta = with stdenv.lib; { 24 43 description = "DBus proxy for Flatpak and others"; 25 - homepage = https://flatpak.org/; 44 + homepage = "https://github.com/flatpak/xdg-dbus-proxy"; 26 45 license = licenses.lgpl21Plus; 27 46 maintainers = with maintainers; [ jtojnar ]; 28 47 platforms = platforms.linux;
+4 -2
pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
··· 5 5 , libxml2 6 6 , xdg-desktop-portal 7 7 , gtk3 8 + , gnome3 8 9 , glib 9 10 , wrapGAppsHook 10 11 , gsettings-desktop-schemas ··· 12 13 13 14 stdenv.mkDerivation rec { 14 15 pname = "xdg-desktop-portal-gtk"; 15 - version = "1.4.0"; 16 + version = "1.6.0"; 16 17 17 18 src = fetchFromGitHub { 18 19 owner = "flatpak"; 19 20 repo = pname; 20 21 rev = version; 21 - sha256 = "1zryfg6232vz1pmv0zqcxvl4clnbb15kjf55b24cimkcnidklbap"; 22 + sha256 = "1gpbjkfkrpk96krc1zbccrq7sih282mg303ifxaaxbnj6d8drm5h"; 22 23 }; 23 24 24 25 nativeBuildInputs = [ ··· 33 34 glib 34 35 gsettings-desktop-schemas 35 36 gtk3 37 + gnome3.gnome-desktop 36 38 ]; 37 39 38 40 meta = with stdenv.lib; {
+48 -9
pkgs/development/libraries/xdg-desktop-portal/default.nix
··· 1 - { stdenv, fetchFromGitHub, nixosTests, substituteAll, autoreconfHook, pkgconfig, libxml2, glib, pipewire, fontconfig, flatpak, gsettings-desktop-schemas, acl, dbus, fuse, geoclue2, json-glib, wrapGAppsHook }: 1 + { stdenv 2 + , fetchFromGitHub 3 + , nixosTests 4 + , substituteAll 5 + , autoreconfHook 6 + , pkgconfig 7 + , libxml2 8 + , glib 9 + , pipewire 10 + , fontconfig 11 + , flatpak 12 + , gsettings-desktop-schemas 13 + , acl 14 + , dbus 15 + , fuse 16 + , libportal 17 + , geoclue2 18 + , json-glib 19 + , wrapGAppsHook 20 + }: 2 21 3 22 stdenv.mkDerivation rec { 4 23 pname = "xdg-desktop-portal"; 5 - version = "1.4.2"; 24 + version = "1.6.0"; 6 25 7 26 outputs = [ "out" "installedTests" ]; 8 27 ··· 10 29 owner = "flatpak"; 11 30 repo = pname; 12 31 rev = version; 13 - sha256 = "1rs3kmpczkr6nm08kb9njnl7n3rmhh0ral0xav6f0y70pyh8whx6"; 32 + sha256 = "0fbsfpilwbv7j6cimsmmz6g0r96bw0ziwyk9z4zg2rd1mfkmmp9a"; 14 33 }; 15 34 16 35 patches = [ 17 - ./respect-path-env-var.patch 36 + # Hardcode paths used by x-d-p itself. 18 37 (substituteAll { 19 38 src = ./fix-paths.patch; 20 39 inherit flatpak; 21 40 }) 22 41 ]; 23 42 24 - nativeBuildInputs = [ autoreconfHook pkgconfig libxml2 wrapGAppsHook ]; 25 - buildInputs = [ glib pipewire fontconfig flatpak acl dbus geoclue2 fuse gsettings-desktop-schemas json-glib ]; 43 + nativeBuildInputs = [ 44 + autoreconfHook 45 + pkgconfig 46 + libxml2 47 + wrapGAppsHook 48 + ]; 26 49 27 - doCheck = true; # XXX: investigate! 50 + buildInputs = [ 51 + glib 52 + pipewire 53 + fontconfig 54 + flatpak 55 + acl 56 + dbus 57 + geoclue2 58 + fuse 59 + libportal 60 + gsettings-desktop-schemas 61 + json-glib 62 + ]; 63 + 64 + # Seems to get stuck after "PASS: test-portals 39 /portal/inhibit/monitor" 65 + # TODO: investigate! 66 + doCheck = false; 28 67 29 68 configureFlags = [ 30 69 "--enable-installed-tests" 31 70 ]; 32 71 33 72 makeFlags = [ 34 - "installed_testdir=$(installedTests)/libexec/installed-tests/xdg-desktop-portal" 35 - "installed_test_metadir=$(installedTests)/share/installed-tests/xdg-desktop-portal" 73 + "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/xdg-desktop-portal" 74 + "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/xdg-desktop-portal" 36 75 ]; 37 76 38 77 passthru = {
+3 -3
pkgs/development/libraries/xdg-desktop-portal/fix-paths.patch
··· 1 1 diff --git a/src/notification.c b/src/notification.c 2 - index 1367114..72ba033 100644 2 + index 5412609..4243e98 100644 3 3 --- a/src/notification.c 4 4 +++ b/src/notification.c 5 - @@ -401,7 +401,7 @@ validate_icon_more (GVariant *v) 5 + @@ -366,7 +366,7 @@ 6 6 int status; 7 7 g_autofree char *err = NULL; 8 8 g_autoptr(GError) error = NULL; 9 9 - const char *icon_validator = LIBEXECDIR "/flatpak-validate-icon"; 10 10 + const char *icon_validator = "@flatpak@/libexec/flatpak-validate-icon"; 11 11 const char *args[6]; 12 - 12 + 13 13 if (G_IS_THEMED_ICON (icon))
-78
pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
··· 1 - diff --git a/src/portal-impl.c b/src/portal-impl.c 2 - index 4fd48ff..346da7c 100644 3 - --- a/src/portal-impl.c 4 - +++ b/src/portal-impl.c 5 - @@ -116,38 +116,50 @@ sort_impl_by_name (gconstpointer a, 6 - void 7 - load_installed_portals (gboolean opt_verbose) 8 - { 9 - - const char *portal_dir = DATADIR "/xdg-desktop-portal/portals"; 10 - - g_autoptr(GFile) dir = g_file_new_for_path (portal_dir); 11 - - g_autoptr(GFileEnumerator) enumerator = NULL; 12 - 13 - - enumerator = g_file_enumerate_children (dir, "*", G_FILE_QUERY_INFO_NONE, NULL, NULL); 14 - + g_auto(GStrv) portal_dir_list; 15 - + int i; 16 - + const char *portal_dir = g_getenv ("XDG_DESKTOP_PORTAL_PATH"); 17 - + 18 - + if (portal_dir == NULL) 19 - + portal_dir = DATADIR "/portals"; 20 - 21 - - if (enumerator == NULL) 22 - - return; 23 - + portal_dir_list = g_strsplit (portal_dir, G_SEARCHPATH_SEPARATOR_S, 0); 24 - 25 - - while (TRUE) 26 - + for (i = 0; portal_dir_list[i] != NULL; i++) 27 - { 28 - - g_autoptr(GFileInfo) info = g_file_enumerator_next_file (enumerator, NULL, NULL); 29 - - g_autoptr(GFile) child = NULL; 30 - - g_autofree char *path = NULL; 31 - - const char *name; 32 - - g_autoptr(GError) error = NULL; 33 - + portal_dir = portal_dir_list[i]; 34 - + g_autoptr(GFile) dir = g_file_new_for_path (portal_dir); 35 - + g_autoptr(GFileEnumerator) enumerator = NULL; 36 - + enumerator = g_file_enumerate_children (dir, "*", G_FILE_QUERY_INFO_NONE, NULL, NULL); 37 - 38 - - if (info == NULL) 39 - - break; 40 - + if (enumerator == NULL) 41 - + continue; 42 - 43 - - name = g_file_info_get_name (info); 44 - + while (TRUE) 45 - + { 46 - + g_autoptr(GFileInfo) info = g_file_enumerator_next_file (enumerator, NULL, NULL); 47 - + g_autoptr(GFile) child = NULL; 48 - + g_autofree char *path = NULL; 49 - + const char *name; 50 - + g_autoptr(GError) error = NULL; 51 - 52 - - if (!g_str_has_suffix (name, ".portal")) 53 - - continue; 54 - + if (info == NULL) 55 - + break; 56 - 57 - - child = g_file_enumerator_get_child (enumerator, info); 58 - - path = g_file_get_path (child); 59 - + name = g_file_info_get_name (info); 60 - 61 - - if (!register_portal (path, opt_verbose, &error)) 62 - - { 63 - - g_warning ("Error loading %s: %s", path, error->message); 64 - - continue; 65 - + if (!g_str_has_suffix (name, ".portal")) 66 - + continue; 67 - + 68 - + child = g_file_enumerator_get_child (enumerator, info); 69 - + path = g_file_get_path (child); 70 - + 71 - + if (!register_portal (path, opt_verbose, &error)) 72 - + { 73 - + g_warning ("Error loading %s: %s", path, error->message); 74 - + continue; 75 - + } 76 - } 77 - } 78 -
+41
pkgs/development/libraries/zchunk/default.nix
··· 1 + { stdenv 2 + , fetchFromGitHub 3 + , pkgconfig 4 + , meson 5 + , ninja 6 + , zstd 7 + , curl 8 + }: 9 + 10 + stdenv.mkDerivation rec { 11 + pname = "zchunk"; 12 + version = "1.1.5"; 13 + 14 + outputs = [ "out" "lib" "dev" ]; 15 + 16 + src = fetchFromGitHub { 17 + owner = "zchunk"; 18 + repo = pname; 19 + rev = version; 20 + sha256 = "13sqjslk634mkklnmzdlzk9l9rc6g6migig5rln3irdnjrxvjf69"; 21 + }; 22 + 23 + nativeBuildInputs = [ 24 + meson 25 + ninja 26 + pkgconfig 27 + ]; 28 + 29 + buildInputs = [ 30 + zstd 31 + curl 32 + ]; 33 + 34 + meta = with stdenv.lib; { 35 + description = "File format designed for highly efficient deltas while maintaining good compression"; 36 + homepage = "https://github.com/zchunk/zchunk"; 37 + license = licenses.bsd2; 38 + maintainers = with maintainers; []; 39 + platforms = platforms.unix; 40 + }; 41 + }
+25 -11
pkgs/development/tools/gnome-desktop-testing/default.nix
··· 1 - { stdenv, glib, autoreconfHook, pkgconfig, systemd, fetchgit }: 1 + { stdenv 2 + , glib 3 + , autoreconfHook 4 + , pkgconfig 5 + , systemd 6 + , fetchFromGitLab 7 + }: 2 8 3 9 stdenv.mkDerivation rec { 4 - version = "2018.1"; 5 10 pname = "gnome-desktop-testing"; 11 + version = "unstable-2019-12-11"; 6 12 7 - src = fetchgit { 8 - url = https://gitlab.gnome.org/GNOME/gnome-desktop-testing.git; 9 - rev = "v${version}"; 10 - sha256 = "1bcd8v101ynsv2p5swh30hnajjf6z8dxzd89h9racp847hgjgyxc"; 13 + src = fetchFromGitLab { 14 + domain = "gitlab.gnome.org"; 15 + owner = "GNOME"; 16 + repo = "gnome-desktop-testing"; 17 + rev = "57239dc8ef49ba74d442603a07a3e132b0cfdc6a"; 18 + sha256 = "01c4jhpk23kfcnw3l9kfwjw9v5kgqmfhhqypw4k2d2sdkf4mgfv4"; 11 19 }; 12 20 13 - nativeBuildInputs = [ autoreconfHook pkgconfig ]; 21 + nativeBuildInputs = [ 22 + autoreconfHook 23 + pkgconfig 24 + ]; 14 25 15 - buildInputs = [ glib systemd ]; 26 + buildInputs = [ 27 + glib 28 + systemd 29 + ]; 16 30 17 31 enableParallelBuilding = true; 18 32 19 33 meta = with stdenv.lib; { 20 - description = "GNOME OSTree testing code"; 21 - homepage = https://live.gnome.org/Initiatives/GnomeGoals/InstalledTests; 22 - license = licenses.lgpl21; 34 + description = "GNOME test runner for installed tests"; 35 + homepage = "https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests"; 36 + license = licenses.lgpl2Plus; 23 37 platforms = platforms.linux; 24 38 maintainers = [ maintainers.jtojnar ]; 25 39 };
+20 -21
pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
··· 1 - From a9a62d7c7adf6fc0237c7d04937b538a4cea87ad Mon Sep 17 00:00:00 2001 1 + From 977fdfad2ceba7232b4f78144b20640d7fd0aedb Mon Sep 17 00:00:00 2001 2 2 From: Colin Walters <walters@verbum.org> 3 3 Date: Tue, 19 Jun 2018 09:34:18 -0400 4 4 Subject: [PATCH] Drop "ostree trivial-httpd" CLI, move to tests directory ··· 13 13 Makefile-man.am | 6 -- 14 14 Makefile-ostree.am | 7 --- 15 15 Makefile-tests.am | 7 +++ 16 - configure.ac | 10 --- 16 + configure.ac | 9 --- 17 17 man/ostree-trivial-httpd.xml | 118 ----------------------------------- 18 18 src/ostree/main.c | 5 -- 19 19 tests/libtest.sh | 13 ++-- 20 - 7 files changed, 12 insertions(+), 154 deletions(-) 20 + 7 files changed, 12 insertions(+), 153 deletions(-) 21 21 delete mode 100644 man/ostree-trivial-httpd.xml 22 22 23 23 diff --git a/Makefile-man.am b/Makefile-man.am 24 - index 8ccbba8c..d204aa3e 100644 24 + index bc58103b..bcfde285 100644 25 25 --- a/Makefile-man.am 26 26 +++ b/Makefile-man.am 27 27 @@ -34,12 +34,6 @@ ostree-init.1 ostree-log.1 ostree-ls.1 ostree-prune.1 ostree-pull-local.1 \ 28 28 ostree-pull.1 ostree-refs.1 ostree-remote.1 ostree-reset.1 \ 29 29 ostree-rev-parse.1 ostree-show.1 ostree-summary.1 \ 30 30 ostree-static-delta.1 31 - -if BUILDOPT_TRIVIAL_HTTPD 31 + -if USE_LIBSOUP 32 32 -man1_files += ostree-trivial-httpd.1 33 33 -else 34 34 -# We still want to distribute the source, even if we are not building it ··· 38 38 if BUILDOPT_FUSE 39 39 man1_files += rofiles-fuse.1 40 40 diff --git a/Makefile-ostree.am b/Makefile-ostree.am 41 - index 8d352e38..1471b3e5 100644 41 + index f861afe4..497d99b0 100644 42 42 --- a/Makefile-ostree.am 43 43 +++ b/Makefile-ostree.am 44 - @@ -133,13 +133,6 @@ ostree_SOURCES += src/ostree/ot-builtin-pull.c 44 + @@ -144,13 +144,6 @@ ostree_SOURCES += src/ostree/ot-builtin-pull.c 45 45 endif 46 46 47 47 if USE_LIBSOUP ··· 56 56 # This is necessary for the cookie jar bits 57 57 ostree_CFLAGS += $(OT_INTERNAL_SOUP_CFLAGS) 58 58 diff --git a/Makefile-tests.am b/Makefile-tests.am 59 - index 2c0916f6..b11fde89 100644 59 + index fc2f2d91..7343b63f 100644 60 60 --- a/Makefile-tests.am 61 61 +++ b/Makefile-tests.am 62 - @@ -248,6 +248,13 @@ _installed_or_uninstalled_test_programs = tests/test-varint tests/test-ot-unix-u 63 - tests/test-gpg-verify-result tests/test-checksum tests/test-lzma tests/test-rollsum \ 64 - tests/test-basic-c tests/test-sysroot-c tests/test-pull-c tests/test-repo tests/test-include-ostree-h 62 + @@ -263,6 +263,13 @@ _installed_or_uninstalled_test_programs += \ 63 + $(NULL) 64 + endif 65 65 66 66 +if USE_LIBSOUP 67 67 +test_extra_programs += ostree-trivial-httpd ··· 74 74 test_programs += tests/test-repo-finder-avahi 75 75 endif 76 76 diff --git a/configure.ac b/configure.ac 77 - index e6e145db..1e36e6a0 100644 77 + index 46a900f5..2f91cdec 100644 78 78 --- a/configure.ac 79 79 +++ b/configure.ac 80 - @@ -187,15 +187,6 @@ if test x$with_soup != xno; then OSTREE_FEATURES="$OSTREE_FEATURES libsoup"; fi 80 + @@ -190,14 +190,6 @@ if test x$with_soup != xno; then OSTREE_FEATURES="$OSTREE_FEATURES libsoup"; fi 81 81 AM_CONDITIONAL(USE_LIBSOUP, test x$with_soup != xno) 82 82 AM_CONDITIONAL(HAVE_LIBSOUP_CLIENT_CERTS, test x$have_libsoup_client_certs = xyes) 83 83 ··· 85 85 - [AS_HELP_STRING([--enable-trivial-httpd-cmdline], 86 86 - [Continue to support "ostree trivial-httpd" [default=no]])],, 87 87 - enable_trivial_httpd_cmdline=no) 88 - -AM_CONDITIONAL(BUILDOPT_TRIVIAL_HTTPD, test x$enable_trivial_httpd_cmdline = xyes) 89 - -AM_COND_IF(BUILDOPT_TRIVIAL_HTTPD, 88 + -AS_IF([test x$enable_trivial_httpd_cmdline = xyes], 90 89 - [AC_DEFINE([BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE], 1, [Define if we are enabling ostree trivial-httpd entrypoint])] 91 90 -) 92 91 - 93 92 AS_IF([test x$with_curl = xyes && test x$with_soup = xno], [ 94 93 AC_MSG_WARN([Curl enabled, but libsoup is not; libsoup is needed for tests (make check, etc.)]) 95 94 ]) 96 - @@ -602,7 +593,6 @@ echo " 95 + @@ -617,7 +609,6 @@ echo " 97 96 Rust (internal oxidation): $rust_debug_release 98 97 rofiles-fuse: $enable_rofiles_fuse 99 98 HTTP backend: $fetcher_backend ··· 226 225 - </refsect1> 227 226 -</refentry> 228 227 diff --git a/src/ostree/main.c b/src/ostree/main.c 229 - index c5b45012..6478a62b 100644 228 + index a523ff9a..61ea742d 100644 230 229 --- a/src/ostree/main.c 231 230 +++ b/src/ostree/main.c 232 - @@ -116,11 +116,6 @@ static OstreeCommand commands[] = { 231 + @@ -118,11 +118,6 @@ static OstreeCommand commands[] = { 233 232 { "summary", OSTREE_BUILTIN_FLAG_NONE, 234 233 ostree_builtin_summary, 235 234 "Manage summary metadata" }, ··· 242 241 }; 243 242 244 243 diff --git a/tests/libtest.sh b/tests/libtest.sh 245 - index e0022512..b07dc962 100755 244 + index 3f5fd931..eacd96de 100755 246 245 --- a/tests/libtest.sh 247 246 +++ b/tests/libtest.sh 248 - @@ -149,15 +149,12 @@ fi 247 + @@ -160,15 +160,12 @@ fi 249 248 if test -n "${OSTREE_UNINSTALLED:-}"; then 250 249 OSTREE_HTTPD=${OSTREE_UNINSTALLED}/ostree-trivial-httpd 251 250 else ··· 267 266 268 267 files_are_hardlinked() { 269 268 -- 270 - 2.22.0 269 + 2.25.0 271 270
+88 -17
pkgs/tools/misc/ostree/default.nix
··· 1 - { stdenv, fetchurl, fetchpatch, pkgconfig, gtk-doc, gobject-introspection, gjs, nixosTests 2 - , glib, systemd, xz, e2fsprogs, libsoup, gpgme, which, autoconf, automake, libtool, fuse, utillinuxMinimal, libselinux 3 - , libarchive, libcap, bzip2, yacc, libxslt, docbook_xsl, docbook_xml_dtd_42, python3 1 + { stdenv 2 + , fetchurl 3 + , fetchpatch 4 + , substituteAll 5 + , pkgconfig 6 + , gtk-doc 7 + , gobject-introspection 8 + , gjs 9 + , nixosTests 10 + , glib 11 + , systemd 12 + , xz 13 + , e2fsprogs 14 + , libsoup 15 + , gpgme 16 + , which 17 + , makeWrapper 18 + , autoconf 19 + , automake 20 + , libtool 21 + , fuse 22 + , utillinuxMinimal 23 + , libselinux 24 + , libarchive 25 + , libcap 26 + , bzip2 27 + , yacc 28 + , libxslt 29 + , docbook_xsl 30 + , docbook_xml_dtd_42 31 + , python3 4 32 }: 5 33 6 - stdenv.mkDerivation rec { 34 + let 35 + testPython = (python3.withPackages (p: with p; [ 36 + pyyaml 37 + ])); 38 + in stdenv.mkDerivation rec { 7 39 pname = "ostree"; 8 - version = "2019.2"; 40 + version = "2019.6"; 9 41 10 42 outputs = [ "out" "dev" "man" "installedTests" ]; 11 43 12 44 src = fetchurl { 13 45 url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz"; 14 - sha256 = "0nbbrz3p4ms6vpl272q6fimqvizryw2a8mnfqcn69xf03sz5204y"; 46 + sha256 = "1bhrfbjna3rnymijxagzkdq2zl74g71s2xmimihjhvcw2zybi0jl"; 15 47 }; 16 48 17 49 patches = [ 18 - # Workarounds for https://github.com/ostreedev/ostree/issues/1592 19 - ./fix-1592.patch 20 - # Disable test-gpg-verify-result.test, 21 - # https://github.com/ostreedev/ostree/issues/1634 22 - ./disable-test-gpg-verify-result.patch 23 50 # Tests access the helper using relative path 24 51 # https://github.com/ostreedev/ostree/issues/1593 52 + # Patch from https://github.com/ostreedev/ostree/pull/1633 25 53 ./01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch 54 + 55 + # Fix tests running in Catalan instead of C locale. 56 + (fetchpatch { 57 + url = "https://github.com/ostreedev/ostree/commit/5135a1e58ade2bfafc8c1fda359540eafd72531e.patch"; 58 + sha256 = "1crzaagw1zzx8v6rsnxb9jnc3ij9hlpvdl91w3skqdm28adx7yx8"; 59 + }) 60 + 61 + # Workarounds for https://github.com/ostreedev/ostree/issues/1592 62 + ./fix-1592.patch 63 + 64 + # Hard-code paths in tests 65 + (substituteAll { 66 + src = ./fix-test-paths.patch; 67 + python3 = testPython.interpreter; 68 + }) 26 69 ]; 27 70 28 71 nativeBuildInputs = [ 29 - autoconf automake libtool pkgconfig gtk-doc gobject-introspection which yacc 30 - libxslt docbook_xsl docbook_xml_dtd_42 72 + autoconf 73 + automake 74 + libtool 75 + pkgconfig 76 + gtk-doc 77 + gobject-introspection 78 + which 79 + makeWrapper 80 + yacc 81 + libxslt 82 + docbook_xsl 83 + docbook_xml_dtd_42 31 84 ]; 32 85 33 86 buildInputs = [ 34 - glib systemd e2fsprogs libsoup gpgme fuse libselinux libcap 35 - libarchive bzip2 xz 87 + glib 88 + systemd 89 + e2fsprogs 90 + libsoup 91 + gpgme 92 + fuse 93 + libselinux 94 + libcap 95 + libarchive 96 + bzip2 97 + xz 36 98 utillinuxMinimal # for libmount 37 - (python3.withPackages (p: with p; [ pyyaml ])) gjs # for tests 99 + 100 + # for installed tests 101 + testPython 102 + gjs 38 103 ]; 39 104 40 105 preConfigure = '' ··· 54 119 "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/libostree" 55 120 ]; 56 121 122 + postFixup = '' 123 + for test in $installedTests/libexec/installed-tests/libostree/*.js; do 124 + wrapProgram "$test" --prefix GI_TYPELIB_PATH : "$out/lib/girepository-1.0" 125 + done 126 + ''; 127 + 57 128 passthru = { 58 129 tests = { 59 130 installedTests = nixosTests.installed-tests.ostree; ··· 62 133 63 134 meta = with stdenv.lib; { 64 135 description = "Git for operating system binaries"; 65 - homepage = https://ostree.readthedocs.io/en/latest/; 136 + homepage = "https://ostree.readthedocs.io/en/latest/"; 66 137 license = licenses.lgpl2Plus; 67 138 platforms = platforms.linux; 68 139 maintainers = with maintainers; [ copumpkin ];
-12
pkgs/tools/misc/ostree/disable-test-gpg-verify-result.patch
··· 1 - diff --git a/Makefile-tests.am b/Makefile-tests.am 2 - index b11fde89..82937a67 100644 3 - --- a/Makefile-tests.am 4 - +++ b/Makefile-tests.am 5 - @@ -245,7 +245,6 @@ endif 6 - 7 - _installed_or_uninstalled_test_programs = tests/test-varint tests/test-ot-unix-utils tests/test-bsdiff tests/test-mutable-tree \ 8 - tests/test-keyfile-utils tests/test-ot-opt-utils tests/test-ot-tool-util \ 9 - - tests/test-gpg-verify-result tests/test-checksum tests/test-lzma tests/test-rollsum \ 10 - tests/test-basic-c tests/test-sysroot-c tests/test-pull-c tests/test-repo tests/test-include-ostree-h 11 - 12 - if USE_LIBSOUP
+26
pkgs/tools/misc/ostree/fix-test-paths.patch
··· 1 + diff --git a/tests/test-basic-user-only.sh b/tests/test-basic-user-only.sh 2 + index f65094fd..105be893 100755 3 + --- a/tests/test-basic-user-only.sh 4 + +++ b/tests/test-basic-user-only.sh 5 + @@ -29,7 +29,7 @@ extra_basic_tests=5 6 + . $(dirname $0)/basic-test.sh 7 + 8 + $CMD_PREFIX ostree --version > version.yaml 9 + -python3 -c 'import yaml; yaml.safe_load(open("version.yaml"))' 10 + +@python3@ -c 'import yaml; yaml.safe_load(open("version.yaml"))' 11 + echo "ok yaml version" 12 + 13 + # Reset things so we don't inherit a lot of state from earlier tests 14 + diff --git a/tests/test-remote-headers.sh b/tests/test-remote-headers.sh 15 + index a41d087a..77b34c90 100755 16 + --- a/tests/test-remote-headers.sh 17 + +++ b/tests/test-remote-headers.sh 18 + @@ -26,7 +26,7 @@ echo '1..2' 19 + . $(dirname $0)/libtest.sh 20 + 21 + V=$($CMD_PREFIX ostree --version | \ 22 + - python3 -c 'import sys, yaml; print(yaml.safe_load(sys.stdin)["libostree"]["Version"])') 23 + + @python3@ -c 'import sys, yaml; print(yaml.safe_load(sys.stdin)["libostree"]["Version"])') 24 + 25 + setup_fake_remote_repo1 "archive" "" \ 26 + --expected-header foo=bar \
+83 -29
pkgs/tools/misc/rpm-ostree/default.nix
··· 1 - { stdenv, fetchurl, ostree, rpm, which, autoconf, automake, libtool, pkgconfig, cargo, rustc, 2 - gobject-introspection, gtk-doc, libxml2, libxslt, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_43, gperf, cmake, 3 - libcap, glib, systemd, json-glib, libarchive, libsolv, librepo, polkit, 4 - bubblewrap, pcre, check, python, json_c, libmodulemd_1, utillinux, sqlite, cppunit, fetchpatch }: 1 + { stdenv 2 + , fetchurl 3 + , ostree 4 + , rpm 5 + , which 6 + , autoconf 7 + , automake 8 + , libtool 9 + , pkgconfig 10 + , cargo 11 + , rustc 12 + , gobject-introspection 13 + , gtk-doc 14 + , libxml2 15 + , libxslt 16 + , docbook_xsl 17 + , docbook_xml_dtd_42 18 + , docbook_xml_dtd_43 19 + , gperf 20 + , cmake 21 + , libcap 22 + , glib 23 + , systemd 24 + , json-glib 25 + , libarchive 26 + , libsolv 27 + , librepo 28 + , polkit 29 + , bubblewrap 30 + , pcre 31 + , check 32 + , python 33 + , json_c 34 + , zchunk 35 + , libmodulemd_1 36 + , utillinux 37 + , sqlite 38 + , cppunit 39 + }: 5 40 6 41 stdenv.mkDerivation rec { 7 42 pname = "rpm-ostree"; 8 - version = "2019.5"; 43 + version = "2020.1"; 44 + 45 + outputs = [ "out" "dev" "man" "devdoc" ]; 9 46 10 47 src = fetchurl { 11 - url = "https://github.com/projectatomic/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz"; 12 - sha256 = "0innbrjj086mslbf55bcvs9a3rv9hg1y2nhzxdjy3nhpqxqlzdnn"; 48 + url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz"; 49 + sha256 = "1xgfppq4fqqvg3cs327bckjpiz6rrn3bbbhg3q5p4j2bzsq89xiz"; 13 50 }; 14 51 15 - patches = [ 16 - # gobject-introspection requires curl in cflags 17 - # https://github.com/NixOS/nixpkgs/pull/50953#issuecomment-449777169 18 - # https://github.com/NixOS/nixpkgs/pull/50953#issuecomment-452177080 19 - ./fix-introspection-build.patch 20 - 21 - # Don't use etc/dbus-1/system.d 22 - (fetchpatch { 23 - url = "https://github.com/coreos/rpm-ostree/commit/60053d0d3d2279d120ae7007c6048e499d2c4d14.patch"; 24 - sha256 = "0ig21zip09iy2da7ksg87jykaj3q8jyzh8r7yrpzyql85qxiwm0m"; 25 - }) 26 - ]; 27 - 28 - outputs = [ "out" "dev" "man" "devdoc" ]; 29 52 nativeBuildInputs = [ 30 - pkgconfig which autoconf automake libtool cmake gperf cargo rustc 31 - gobject-introspection gtk-doc libxml2 libxslt docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_43 53 + pkgconfig 54 + which 55 + autoconf 56 + automake 57 + libtool 58 + cmake 59 + gperf 60 + cargo 61 + rustc 62 + gobject-introspection 63 + gtk-doc 64 + libxml2 65 + libxslt 66 + docbook_xsl 67 + docbook_xml_dtd_42 68 + docbook_xml_dtd_43 32 69 ]; 70 + 33 71 buildInputs = [ 34 - libcap ostree rpm glib systemd polkit bubblewrap 35 - json-glib libarchive libsolv librepo 36 - pcre check python 37 - # libdnf 38 - json_c libmodulemd_1 utillinux sqlite cppunit 72 + libcap 73 + ostree 74 + rpm 75 + glib 76 + systemd 77 + polkit 78 + bubblewrap 79 + json-glib 80 + libarchive 81 + libsolv 82 + librepo 83 + pcre 84 + check 85 + python 86 + # libdnf 87 + json_c 88 + zchunk 89 + libmodulemd_1 90 + utillinux 91 + sqlite 92 + cppunit 39 93 ]; 40 94 41 95 configureFlags = [ ··· 60 114 61 115 meta = with stdenv.lib; { 62 116 description = "A hybrid image/package system. It uses OSTree as an image format, and uses RPM as a component model"; 63 - homepage = https://rpm-ostree.readthedocs.io/en/latest/; 117 + homepage = "https://rpm-ostree.readthedocs.io/en/latest/"; 64 118 license = licenses.lgpl2Plus; 65 119 maintainers = with maintainers; [ copumpkin ]; 66 120 platforms = platforms.linux;
-11
pkgs/tools/misc/rpm-ostree/fix-introspection-build.patch
··· 1 - --- a/configure.ac 2 - +++ b/configure.ac 3 - @@ -103,7 +103,7 @@ 4 - ostree-1 >= 2018.9 5 - libsystemd 6 - polkit-gobject-1 7 - - rpm librepo libsolv 8 - + rpm librepo libsolv libcurl 9 - libarchive]) 10 - 11 - dnl -ldl: https://github.com/ostreedev/ostree/commit/1f832597fc83fda6cb8daf48c4495a9e1590774c
+50 -14
pkgs/tools/package-management/librepo/default.nix
··· 1 - { stdenv, fetchFromGitHub, cmake, python, pkgconfig, libxml2, glib, openssl, curl, check, gpgme }: 1 + { stdenv 2 + , fetchFromGitHub 3 + , cmake 4 + , python 5 + , pkgconfig 6 + , libxml2 7 + , glib 8 + , openssl 9 + , zchunk 10 + , curl 11 + , check 12 + , gpgme 13 + }: 2 14 3 15 stdenv.mkDerivation rec { 4 - version = "1.9.2"; 16 + version = "1.11.2"; 5 17 pname = "librepo"; 6 18 19 + outputs = [ "out" "dev" "py" ]; 20 + 7 21 src = fetchFromGitHub { 8 - owner = "rpm-software-management"; 9 - repo = "librepo"; 10 - rev = version; 11 - sha256 = "0xa9ng9mhpianhjy2a0jnj8ha1zckk2sz91y910daggm1qcv5asx"; 22 + owner = "rpm-software-management"; 23 + repo = "librepo"; 24 + rev = version; 25 + sha256 = "0f04qky61dlh5h71xdmpngpy98cmlsfyp2pkyj5sbkplvrmh1wzw"; 12 26 }; 13 27 14 - nativeBuildInputs = [ cmake pkgconfig ]; 15 - 16 - cmakeFlags = ["-DPYTHON_DESIRED=${stdenv.lib.substring 0 1 python.pythonVersion}" ]; 28 + nativeBuildInputs = [ 29 + cmake 30 + pkgconfig 31 + ]; 17 32 18 - buildInputs = [ python libxml2 glib openssl curl check gpgme ]; 33 + buildInputs = [ 34 + python 35 + libxml2 36 + glib 37 + openssl 38 + zchunk 39 + curl 40 + check 41 + gpgme 42 + ]; 19 43 20 44 # librepo/fastestmirror.h includes curl/curl.h, and pkg-config specfile refers to others in here 21 - propagatedBuildInputs = [ curl gpgme libxml2 ]; 45 + propagatedBuildInputs = [ 46 + curl 47 + gpgme 48 + libxml2 49 + ]; 50 + 51 + cmakeFlags = [ 52 + "-DPYTHON_DESIRED=${stdenv.lib.substring 0 1 python.pythonVersion}" 53 + ]; 54 + 55 + postFixup = '' 56 + moveToOutput "lib/${python.libPrefix}" "$py" 57 + ''; 22 58 23 59 meta = with stdenv.lib; { 24 60 description = "Library providing C and Python (libcURL like) API for downloading linux repository metadata and packages"; 25 - homepage = https://rpm-software-management.github.io/librepo/; 26 - license = licenses.lgpl2Plus; 27 - platforms = platforms.linux; 61 + homepage = "https://rpm-software-management.github.io/librepo/"; 62 + license = licenses.lgpl2Plus; 63 + platforms = platforms.linux; 28 64 maintainers = with maintainers; [ copumpkin ]; 29 65 }; 30 66 }
+11 -1
pkgs/top-level/all-packages.nix
··· 4825 4825 4826 4826 libpointmatcher = callPackage ../development/libraries/libpointmatcher { }; 4827 4827 4828 + libportal = callPackage ../development/libraries/libportal { }; 4829 + 4828 4830 libmicrodns = callPackage ../development/libraries/libmicrodns { }; 4829 4831 4830 4832 libnids = callPackage ../tools/networking/libnids { }; ··· 11738 11740 11739 11741 glib-networking = callPackage ../development/libraries/glib-networking {}; 11740 11742 11743 + glib-testing = callPackage ../development/libraries/glib-testing { }; 11744 + 11741 11745 glirc = haskell.lib.justStaticExecutables haskellPackages.glirc; 11742 11746 11743 11747 gom = callPackage ../development/libraries/gom { }; ··· 12669 12673 12670 12674 librelp = callPackage ../development/libraries/librelp { }; 12671 12675 12672 - librepo = callPackage ../tools/package-management/librepo { }; 12676 + librepo = callPackage ../tools/package-management/librepo { 12677 + python = python3; 12678 + }; 12673 12679 12674 12680 libresample = callPackage ../development/libraries/libresample {}; 12675 12681 ··· 12771 12777 liblinear = callPackage ../development/libraries/liblinear { }; 12772 12778 12773 12779 libmad = callPackage ../development/libraries/libmad { }; 12780 + 12781 + malcontent = callPackage ../development/libraries/malcontent { }; 12774 12782 12775 12783 libmanette = callPackage ../development/libraries/libmanette { }; 12776 12784 ··· 14766 14774 }; 14767 14775 14768 14776 yubikey-personalization-gui = libsForQt5.callPackage ../tools/misc/yubikey-personalization-gui { }; 14777 + 14778 + zchunk = callPackage ../development/libraries/zchunk { }; 14769 14779 14770 14780 zeitgeist = callPackage ../development/libraries/zeitgeist { }; 14771 14781
+15 -3
pkgs/top-level/python-packages.nix
··· 4043 4043 4044 4044 libkeepass = callPackage ../development/python-modules/libkeepass { }; 4045 4045 4046 - librepo = toPythonModule (pkgs.librepo.override { 4047 - inherit python; 4048 - }); 4046 + librepo = pipe pkgs.librepo [ 4047 + toPythonModule 4048 + 4049 + (p: p.overrideAttrs (super: { 4050 + meta = super.meta // { 4051 + outputsToInstall = [ "py" ]; 4052 + }; 4053 + })) 4054 + 4055 + (p: p.override { 4056 + inherit python; 4057 + }) 4058 + 4059 + (p: p.py) 4060 + ]; 4049 4061 4050 4062 libnacl = callPackage ../development/python-modules/libnacl { 4051 4063 inherit (pkgs) libsodium;