summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/graphics/pikopixel/default.nix48
-rw-r--r--pkgs/desktops/gnustep/default.nix13
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 57 insertions, 6 deletions
diff --git a/pkgs/applications/graphics/pikopixel/default.nix b/pkgs/applications/graphics/pikopixel/default.nix
new file mode 100644
index 00000000000..a20a0a2db61
--- /dev/null
+++ b/pkgs/applications/graphics/pikopixel/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchurl
+, gnustep
+, gcc
+, llvmPackages_9
+}:
+
+let
+  # Earlier llvm than 9 segfaults
+  gnustep' = gnustep.override { llvmPackages = llvmPackages_9; };
+
+in gnustep'.gsmakeDerivation rec {
+  pname = "pikopixel";
+  version = "1.0-b9e";
+
+  src = fetchurl {
+    url = "http://twilightedge.com/downloads/PikoPixel.Sources.${version}.tar.gz";
+    sha256 = "1gmgb5ch7s6fwvg85l6pl6fsx0maqwd8yvg7sz3r9lj32g2pz5wn";
+  };
+
+  sourceRoot = "PikoPixel.Sources.${version}/PikoPixel";
+
+  buildInputs = [
+    gnustep'.base
+    gnustep'.gui
+    gnustep'.back
+  ];
+
+  # Fix the Exec and Icon paths in the .desktop file, and save the file in the
+  # correct place.
+  # postInstall gets redefined in gnustep.make's builder.sh, so we use preFixup
+  preFixup = ''
+    mkdir -p $out/share/applications
+    sed \
+      -e "s@^Exec=.*\$@Exec=$out/bin/PikoPixel %F@" \
+      -e "s@^Icon=.*/local@Icon=$out@" \
+      PikoPixel.app/Resources/PikoPixel.desktop > $out/share/applications/PikoPixel.desktop
+  '';
+
+  meta = with lib; {
+    description = "Application for drawing and editing pixel-art images";
+    homepage = "http://twilightedge.com/mac/pikopixel/";
+    downloadPage = "http://twilightedge.com/mac/pikopixel/";
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/desktops/gnustep/default.nix b/pkgs/desktops/gnustep/default.nix
index 4f7c13e8e4a..abbabd4abf2 100644
--- a/pkgs/desktops/gnustep/default.nix
+++ b/pkgs/desktops/gnustep/default.nix
@@ -1,21 +1,22 @@
-{ pkgs, newScope, llvmPackages_6 }:
+{ newScope
+, llvmPackages
+, giflib_4_1
+}:
 
 let
   callPackage = newScope self;
 
   self = rec {
-    stdenv = pkgs.clangStdenv;
+    stdenv = llvmPackages.stdenv;
 
     gsmakeDerivation = callPackage ./make/gsmakeDerivation.nix {};
     gorm = callPackage ./gorm {};
     projectcenter = callPackage ./projectcenter {};
     system_preferences = callPackage ./systempreferences {};
-    libobjc = callPackage ./libobjc2 {
-      stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
-    };
+    libobjc = callPackage ./libobjc2 {};
     make = callPackage ./make {};
     back = callPackage ./back {};
-    base = callPackage ./base { giflib = pkgs.giflib_4_1; };
+    base = callPackage ./base { giflib = giflib_4_1; };
     gui = callPackage ./gui {};
     gworkspace = callPackage ./gworkspace {};
   };
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3a9c0024632..02d7b69bef6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -24081,6 +24081,8 @@ in
 
   purple-facebook = callPackage ../applications/networking/instant-messengers/pidgin-plugins/purple-facebook { };
 
+  pikopixel = callPackage ../applications/graphics/pikopixel { };
+
   pithos = callPackage ../applications/audio/pithos {
     pythonPackages = python3Packages;
   };