summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoachim F <joachifm@users.noreply.github.com>2017-09-12 22:37:22 +0000
committerGitHub <noreply@github.com>2017-09-12 22:37:22 +0000
commitddd8dc072e68394d05748ffab91871b45d16b2b2 (patch)
treec038fc3909aa534636162beaad4ffbf7da896565
parente7f90c9c22ddf92e31fbe73663f28c1dd31ecefd (diff)
parent247fa20962ec3c085dad0d53f50cbef46a01f30c (diff)
downloadnixpkgs-ddd8dc072e68394d05748ffab91871b45d16b2b2.tar
nixpkgs-ddd8dc072e68394d05748ffab91871b45d16b2b2.tar.gz
nixpkgs-ddd8dc072e68394d05748ffab91871b45d16b2b2.tar.bz2
nixpkgs-ddd8dc072e68394d05748ffab91871b45d16b2b2.tar.lz
nixpkgs-ddd8dc072e68394d05748ffab91871b45d16b2b2.tar.xz
nixpkgs-ddd8dc072e68394d05748ffab91871b45d16b2b2.tar.zst
nixpkgs-ddd8dc072e68394d05748ffab91871b45d16b2b2.zip
Merge pull request #29255 from orivej/aseprite
aseprite: 0.9.5 -> 1.1.7
-rw-r--r--pkgs/applications/editors/aseprite/default.nix94
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 63 insertions, 35 deletions
diff --git a/pkgs/applications/editors/aseprite/default.nix b/pkgs/applications/editors/aseprite/default.nix
index 9945fd53719..9a0d1bb5e72 100644
--- a/pkgs/applications/editors/aseprite/default.nix
+++ b/pkgs/applications/editors/aseprite/default.nix
@@ -1,47 +1,77 @@
-{ stdenv, fetchurl, cmake, pkgconfig
-, giflib, libjpeg, zlib, libpng, tinyxml, allegro
-, libX11, libXext, libXcursor, libXpm, libXxf86vm, libXxf86dga
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
+, curl, freetype, giflib, libjpeg, libpng, libwebp, pixman, tinyxml, zlib
+, libX11, libXext, libXcursor, libXxf86vm
+, unfree ? false
+, cmark
 }:
 
+# Unfree version is not redistributable:
+# https://dev.aseprite.org/2016/09/01/new-source-code-license/
+# Consider supporting the developer: https://aseprite.org/#buy
+
 stdenv.mkDerivation rec {
-  name = "aseprite-0.9.5";
+  name = "aseprite-${version}";
+  version = if unfree then "1.2-beta12" else "1.1.7";
 
-  src = fetchurl {
-    url = "http://aseprite.googlecode.com/files/${name}.tar.xz";
-    sha256 = "0m7i6ybj2bym4w9rybacnnaaq2jjn76vlpbp932xcclakl6kdq41";
+  src = fetchFromGitHub {
+    owner = "aseprite";
+    repo = "aseprite";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = if unfree
+      then "1zgsr03d4vwdj2qyiwfwfqsbqngp85n13i3xwbkfkbja036c5yhc"
+      else "0gd49lns2bpzbkwax5jf9x1xmg1j8ij997kcxr2596cwiswnw4di";
   };
 
+  nativeBuildInputs = [ cmake pkgconfig ];
+
   buildInputs = [
-    cmake pkgconfig
-    giflib libjpeg zlib libpng tinyxml allegro
-    libX11 libXext libXcursor libXpm libXxf86vm libXxf86dga
-  ];
+    curl freetype giflib libjpeg libpng libwebp pixman tinyxml zlib
+    libX11 libXext libXcursor libXxf86vm
+  ] ++ lib.optionals unfree [ cmark ];
 
-  patchPhase = ''
-    sed -i '/^find_unittests/d' src/CMakeLists.txt
-    sed -i '/include_directories(.*third_party\/gtest.*)/d' src/CMakeLists.txt
-    sed -i '/add_subdirectory(gtest)/d' third_party/CMakeLists.txt
-    sed -i 's/png_\(sizeof\)/\1/g' src/file/png_format.cpp
-  '';
+  cmakeFlags = [
+    "-DENABLE_UPDATER=OFF"
+    "-DUSE_SHARED_CURL=ON"
+    "-DUSE_SHARED_FREETYPE=ON"
+    "-DUSE_SHARED_GIFLIB=ON"
+    "-DUSE_SHARED_JPEGLIB=ON"
+    "-DUSE_SHARED_LIBPNG=ON"
+    "-DUSE_SHARED_LIBWEBP=ON"
+    "-DUSE_SHARED_PIXMAN=ON"
+    "-DUSE_SHARED_TINYXML=ON"
+    "-DUSE_SHARED_ZLIB=ON"
+    "-DWITH_DESKTOP_INTEGRATION=ON"
+    "-DWITH_WEBP_SUPPORT=ON"
+  ] ++ lib.optionals unfree [
+    "-DUSE_SHARED_CMARK=ON"
+    # Aseprite needs internal freetype headers.
+    "-DUSE_SHARED_FREETYPE=OFF"
+    # Disable libarchive programs.
+    "-DENABLE_CAT=OFF"
+    "-DENABLE_CPIO=OFF"
+    "-DENABLE_TAR=OFF"
+  ];
 
-  cmakeFlags = ''
-    -DUSE_SHARED_GIFLIB=ON
-    -DUSE_SHARED_JPEGLIB=ON
-    -DUSE_SHARED_ZLIB=ON
-    -DUSE_SHARED_LIBPNG=ON
-    -DUSE_SHARED_LIBLOADPNG=ON
-    -DUSE_SHARED_TINYXML=ON
-    -DUSE_SHARED_GTEST=ON
-    -DUSE_SHARED_ALLEGRO4=ON
-    -DENABLE_UPDATER=OFF
+  postInstall = ''
+    # Install desktop icons.
+    src="$out/share/aseprite/data/icons"
+    for size in 16 32 48 64; do
+      dst="$out"/share/icons/hicolor/"$size"x"$size"
+      install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
+      install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/aseprite.png
+    done
+    # Delete unneeded artifacts of bundled libraries.
+    rm -rf "$out"/include "$out"/lib
   '';
 
-  NIX_LDFLAGS = "-lX11";
+  enableParallelBuilding = true;
 
-  meta = {
-    description = "Animated sprite editor & pixel art tool";
+  meta = with lib; {
     homepage = https://www.aseprite.org/;
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
+    description = "Animated sprite editor & pixel art tool";
+    license = if unfree then licenses.unfree else licenses.gpl2;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 585a03890e3..621ef83e3ce 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13458,9 +13458,7 @@ with pkgs;
 
   atom = callPackage ../applications/editors/atom { };
 
-  aseprite = callPackage ../applications/editors/aseprite {
-    giflib = giflib_4_1;
-  };
+  aseprite = callPackage ../applications/editors/aseprite { };
 
   astroid = callPackage ../applications/networking/mailreaders/astroid { };