about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-02-24 09:19:12 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2019-02-24 09:19:12 +0100
commitc2eac6741bc2bf8ae5ff2e6779492dbe5829092d (patch)
tree1c423bc8330a2295281d96c4c3149c6e23b3317d /pkgs/build-support
parent917f6f987aa3e0008abc0104e4655b7410da608e (diff)
parentd7ba3764356317a8642b420a6c5995ed6a0e55a3 (diff)
downloadnixlib-c2eac6741bc2bf8ae5ff2e6779492dbe5829092d.tar
nixlib-c2eac6741bc2bf8ae5ff2e6779492dbe5829092d.tar.gz
nixlib-c2eac6741bc2bf8ae5ff2e6779492dbe5829092d.tar.bz2
nixlib-c2eac6741bc2bf8ae5ff2e6779492dbe5829092d.tar.lz
nixlib-c2eac6741bc2bf8ae5ff2e6779492dbe5829092d.tar.xz
nixlib-c2eac6741bc2bf8ae5ff2e6779492dbe5829092d.tar.zst
nixlib-c2eac6741bc2bf8ae5ff2e6779492dbe5829092d.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/appimage/default.nix176
-rw-r--r--pkgs/build-support/closure-info.nix2
-rw-r--r--pkgs/build-support/nix-prefetch-github/default.nix6
-rw-r--r--pkgs/build-support/skaware/build-skaware-package.nix6
4 files changed, 187 insertions, 3 deletions
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
new file mode 100644
index 000000000000..ef7da72fda93
--- /dev/null
+++ b/pkgs/build-support/appimage/default.nix
@@ -0,0 +1,176 @@
+{ pkgs, stdenv, libarchive, patchelf, zlib, buildFHSUserEnv, writeScript }:
+
+rec {
+  # Both extraction functions could be unified, but then
+  # it would depend on libmagic to correctly identify ISO 9660s
+
+  extractType1 = { name, src }: stdenv.mkDerivation {
+    name = "${name}-extracted";
+    inherit src;
+
+    nativeBuildInputs = [ libarchive ];
+    buildCommand = ''
+      mkdir $out
+      bsdtar -x -C $out -f $src
+    '';
+  };
+
+  extractType2 = { name, src }: stdenv.mkDerivation {
+    name = "${name}-extracted";
+    inherit src;
+
+    nativeBuildInputs = [ patchelf ];
+    buildCommand = ''
+      install $src ./appimage
+      patchelf \
+        --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+        --replace-needed libz.so.1 ${zlib}/lib/libz.so.1 \
+        ./appimage
+
+      ./appimage --appimage-extract
+
+      cp -rv squashfs-root $out
+    '';
+  };
+
+  wrapAppImage = { name, src, extraPkgs }: buildFHSUserEnv (defaultFhsEnvArgs // {
+    inherit name;
+
+    targetPkgs = pkgs: defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs;
+
+    runScript = writeScript "run" ''
+      #!${stdenv.shell}
+
+      export APPDIR=${src}
+      export APPIMAGE_SILENT_INSTALL=1
+      cd $APPDIR
+      exec ./AppRun "$@"
+    '';
+  });
+
+  wrapType1 = args@{ name, src, extraPkgs ? pkgs: [] }: wrapAppImage {
+    inherit name extraPkgs;
+    src = extractType1 { inherit name src; };
+  };
+
+  wrapType2 = args@{ name, src, extraPkgs ? pkgs: [] }: wrapAppImage {
+    inherit name extraPkgs;
+    src = extractType2 { inherit name src; };
+  };
+
+  defaultFhsEnvArgs = {
+    name = "appimage-env";
+
+    # Most of the packages were taken from the Steam chroot
+    targetPkgs = pkgs: with pkgs; [
+      gtk3
+      bashInteractive
+      gnome3.zenity
+      python2
+      xorg.xrandr
+      which
+      perl
+      xdg_utils
+      iana-etc
+      krb5
+    ];
+
+    multiPkgs = pkgs: with pkgs; [
+      desktop-file-utils
+      xorg.libXcomposite
+      xorg.libXtst
+      xorg.libXrandr
+      xorg.libXext
+      xorg.libX11
+      xorg.libXfixes
+      libGL
+
+      gst_all_1.gstreamer
+      gst_all_1.gst-plugins-ugly
+      libdrm
+      xorg.xkeyboardconfig
+      xorg.libpciaccess
+
+      glib
+      gtk2
+      bzip2
+      zlib
+      gdk_pixbuf
+
+      xorg.libXinerama
+      xorg.libXdamage
+      xorg.libXcursor
+      xorg.libXrender
+      xorg.libXScrnSaver
+      xorg.libXxf86vm
+      xorg.libXi
+      xorg.libSM
+      xorg.libICE
+      gnome2.GConf
+      freetype
+      (curl.override { gnutlsSupport = true; sslSupport = false; })
+      nspr
+      nss
+      fontconfig
+      cairo
+      pango
+      expat
+      dbus
+      cups
+      libcap
+      SDL2
+      libusb1
+      udev
+      dbus-glib
+      libav
+      atk
+      at-spi2-atk
+      libudev0-shim
+      networkmanager098
+
+      xorg.libXt
+      xorg.libXmu
+      xorg.libxcb
+      libGLU
+      libuuid
+      libogg
+      libvorbis
+      SDL
+      SDL2_image
+      glew110
+      openssl
+      libidn
+      tbb
+      wayland
+      mesa_noglu
+      libxkbcommon
+
+      flac
+      freeglut
+      libjpeg
+      libpng12
+      libsamplerate
+      libmikmod
+      libtheora
+      libtiff
+      pixman
+      speex
+      SDL_image
+      SDL_ttf
+      SDL_mixer
+      SDL2_ttf
+      SDL2_mixer
+      gstreamer
+      gst-plugins-base
+      libappindicator-gtk2
+      libcaca
+      libcanberra
+      libgcrypt
+      libvpx
+      librsvg
+      xorg.libXft
+      libvdpau
+      alsaLib
+    ];
+  };
+}
diff --git a/pkgs/build-support/closure-info.nix b/pkgs/build-support/closure-info.nix
index 28f2802a5bce..24795a724ec8 100644
--- a/pkgs/build-support/closure-info.nix
+++ b/pkgs/build-support/closure-info.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation {
 
   exportReferencesGraph.closure = rootPaths;
 
+  preferLocalBuild = true;
+
   PATH = "${buildPackages.coreutils}/bin:${buildPackages.jq}/bin";
 
   builder = builtins.toFile "builder"
diff --git a/pkgs/build-support/nix-prefetch-github/default.nix b/pkgs/build-support/nix-prefetch-github/default.nix
index 48297e583afe..b0fd55260fd1 100644
--- a/pkgs/build-support/nix-prefetch-github/default.nix
+++ b/pkgs/build-support/nix-prefetch-github/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nix-prefetch-github";
-  version = "1.3";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "seppeljordan";
     repo = "nix-prefetch-github";
-    rev = "${version}";
-    sha256 = "1rinbv1q4q8m27ih6l81w1lsmwn6cz7q3iyjiycklywpi8684dh6";
+    rev = "v${version}";
+    sha256 = "06vxy26d1s7azb9amxdf83i8kxgs2sbjsy0d3mjhwffga13b4igc";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/build-support/skaware/build-skaware-package.nix b/pkgs/build-support/skaware/build-skaware-package.nix
index 51921fdfbdc7..5ae8985e3abe 100644
--- a/pkgs/build-support/skaware/build-skaware-package.nix
+++ b/pkgs/build-support/skaware/build-skaware-package.nix
@@ -19,6 +19,10 @@ in {
   # mostly for moving and deleting files from the build directory
   # : lines
 , postInstall
+  # packages with setup hooks that should be run
+  # (see definition of `makeSetupHook`)
+  # : list drv
+, setupHooks ? []
   # : list Maintainer
 , maintainers ? []
 
@@ -82,6 +86,8 @@ in stdenv.mkDerivation {
   dontDisableStatic = true;
   enableParallelBuilding = true;
 
+  nativeBuildInputs = setupHooks;
+
   configureFlags = configureFlags ++ [
     "--enable-absolute-paths"
     (if stdenv.isDarwin