summaryrefslogtreecommitdiffstats
path: root/pkgs/development/tools/flatpak-builder
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-02-13 01:53:39 +0100
committerJan Tojnar <jtojnar@gmail.com>2018-05-15 13:28:30 +0200
commit843bc0f73a648426b2206cda88c5bf49563c3990 (patch)
tree0e63fb7a79011e77ec52bdfec1d58a161dbe5631 /pkgs/development/tools/flatpak-builder
parent2fc8b832829b9df30846042dde7a8a24aa79d415 (diff)
flatpak-builder: init add 0.10.10
Diffstat (limited to 'pkgs/development/tools/flatpak-builder')
-rw-r--r--pkgs/development/tools/flatpak-builder/default.nix103
-rw-r--r--pkgs/development/tools/flatpak-builder/fix-paths.patch116
-rw-r--r--pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch13
3 files changed, 232 insertions, 0 deletions
diff --git a/pkgs/development/tools/flatpak-builder/default.nix b/pkgs/development/tools/flatpak-builder/default.nix
new file mode 100644
index 000000000000..351ec2c77dba
--- /dev/null
+++ b/pkgs/development/tools/flatpak-builder/default.nix
@@ -0,0 +1,103 @@
+{ stdenv
+, fetchurl
+, substituteAll
+
+, autoreconfHook
+, docbook_xml_dtd_412
+, docbook_xml_dtd_42
+, docbook_xml_dtd_43
+, docbook_xsl
+, gettext
+, libxml2
+, libxslt
+, pkgconfig
+, xmlto
+
+, acl
+, bazaar
+, binutils
+, bzip2
+, coreutils
+, cpio
+, elfutils
+, flatpak
+, gitMinimal
+, glib
+, gnutar
+, json_glib
+, libcap
+, libdwarf
+, libsoup
+, ostree
+, patch
+, rpm
+, unzip
+}:
+
+let
+ version = "0.10.10";
+in stdenv.mkDerivation rec {
+ name = "flatpak-builder-${version}";
+
+ outputs = [ "out" "doc" "man" ];
+
+ src = fetchurl {
+ url = "https://github.com/flatpak/flatpak-builder/releases/download/${version}/${name}.tar.xz";
+ sha256 = "0b0c2rmf2vj596600blbhsiv2dg7qwpr33lgdcn0bnqc4ddri6f2";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ docbook_xml_dtd_412
+ docbook_xml_dtd_42
+ docbook_xml_dtd_43
+ docbook_xsl
+ gettext
+ libxml2
+ libxslt
+ pkgconfig
+ xmlto
+ ];
+
+ buildInputs = [
+ acl
+ bzip2
+ elfutils
+ flatpak
+ glib
+ json_glib
+ libcap
+ libdwarf
+ libsoup
+ libxml2
+ ostree
+ ];
+
+ patches = [
+ # patch taken from gtk_doc
+ ./respect-xml-catalog-files-var.patch
+ (substituteAll {
+ src = ./fix-paths.patch;
+ bzr = "${bazaar}/bin/bzr";
+ cp = "${coreutils}/bin/cp";
+ patch = "${patch}/bin/patch";
+ tar = "${gnutar}/bin/tar";
+ unzip = "${unzip}/bin/unzip";
+ rpm2cpio = "${rpm}/bin/rpm2cpio";
+ cpio = "${cpio}/bin/cpio";
+ git = "${gitMinimal}/bin/git";
+ rofilesfuse = "${ostree}/bin/rofiles-fuse";
+ strip = "${binutils}/bin/strip";
+ eustrip = "${elfutils}/bin/eu-strip";
+ euelfcompress = "${elfutils}/bin/eu-elfcompress";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Tool to build flatpaks from source";
+ homepage = https://flatpak.org/;
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/development/tools/flatpak-builder/fix-paths.patch b/pkgs/development/tools/flatpak-builder/fix-paths.patch
new file mode 100644
index 000000000000..001ddd645683
--- /dev/null
+++ b/pkgs/development/tools/flatpak-builder/fix-paths.patch
@@ -0,0 +1,116 @@
+--- a/src/builder-context.c
++++ b/src/builder-context.c
+@@ -711,7 +711,7 @@
+ g_autoptr(GFile) rofiles_base = NULL;
+ g_autoptr(GFile) rofiles_dir = NULL;
+ g_autofree char *tmpdir_name = NULL;
+- char *argv[] = { "rofiles-fuse",
++ char *argv[] = { "@rofilesfuse@",
+ "-o",
+ "kernel_cache,entry_timeout=60,attr_timeout=60,splice_write,splice_move",
+ (char *)flatpak_file_get_path_cached (self->app_dir),
+--- a/src/builder-git.c
++++ b/src/builder-git.c
+@@ -44,7 +44,7 @@
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (dir, output, flags, error, "git", ap);
++ res = flatpak_spawn (dir, output, flags, error, "@git@", ap);
+ va_end (ap);
+
+ return res;
+@@ -58,7 +58,7 @@
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (NULL, NULL, 0, error, "cp", ap);
++ res = flatpak_spawn (NULL, NULL, 0, error, "@cp@", ap);
+ va_end (ap);
+
+ return res;
+--- a/src/builder-source-archive.c
++++ b/src/builder-source-archive.c
+@@ -401,7 +401,7 @@
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (dir, NULL, 0, error, "tar", ap);
++ res = flatpak_spawn (dir, NULL, 0, error, "@tar@", ap);
+ va_end (ap);
+
+ return res;
+@@ -416,7 +416,7 @@
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (dir, NULL, 0, error, "unzip", ap);
++ res = flatpak_spawn (dir, NULL, 0, error, "@unzip@", ap);
+ va_end (ap);
+
+ return res;
+@@ -428,7 +428,7 @@
+ GError **error)
+ {
+ gboolean res;
+- const gchar *argv[] = { "sh", "-c", "rpm2cpio \"$1\" | cpio -i -d",
++ const gchar *argv[] = { "sh", "-c", "@rpm2cpio@ \"$1\" | @cpio@ -i -d",
+ "sh", /* shell's $0 */
+ rpm_path, /* shell's $1 */
+ NULL };
+--- a/src/builder-source-bzr.c
++++ b/src/builder-source-bzr.c
+@@ -124,7 +124,7 @@
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (dir, output, 0, error, "bzr", ap);
++ res = flatpak_spawn (dir, output, 0, error, "@bzr@", ap);
+ va_end (ap);
+
+ return res;
+--- a/src/builder-source-patch.c
++++ b/src/builder-source-patch.c
+@@ -204,11 +204,11 @@
+
+ args = g_ptr_array_new ();
+ if (use_git) {
+- g_ptr_array_add (args, "git");
++ g_ptr_array_add (args, "@git@");
+ g_ptr_array_add (args, "apply");
+ g_ptr_array_add (args, "-v");
+ } else {
+- g_ptr_array_add (args, "patch");
++ g_ptr_array_add (args, "@patch@");
+ }
+ for (i = 0; extra_options != NULL && extra_options[i] != NULL; i++)
+ g_ptr_array_add (args, (gchar *) extra_options[i]);
+--- a/src/builder-utils.c
++++ b/src/builder-utils.c
+@@ -139,7 +139,7 @@
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (NULL, NULL, 0, error, "strip", ap);
++ res = flatpak_spawn (NULL, NULL, 0, error, "@strip@", ap);
+ va_end (ap);
+
+ return res;
+@@ -153,7 +153,7 @@
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (NULL, NULL, 0, error, "eu-strip", ap);
++ res = flatpak_spawn (NULL, NULL, 0, error, "@eustrip@", ap);
+ va_end (ap);
+
+ return res;
+@@ -167,7 +167,7 @@
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (NULL, NULL, 0, error, "eu-elfcompress", ap);
++ res = flatpak_spawn (NULL, NULL, 0, error, "@euelfcompress@", ap);
+ va_end (ap);
+
+ return res;
diff --git a/pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch b/pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch
new file mode 100644
index 000000000000..0e259aebd8a5
--- /dev/null
+++ b/pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch
@@ -0,0 +1,13 @@
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -40,8 +40,8 @@
+ [
+ AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
+ AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
+- if $jh_found_xmlcatalog && \
+- AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
++ # empty argument forces libxml to use XML_CATALOG_FILES variable
++ if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
+ AC_MSG_RESULT([found])
+ ifelse([$3],,,[$3
+ ])dnl