about summary refs log tree commit diff
path: root/pkgs/by-name/lu
diff options
context:
space:
mode:
authora-n-n-a-l-e-e <150648636+a-n-n-a-l-e-e@users.noreply.github.com>2024-03-09 15:27:19 -0800
committerGitHub <noreply@github.com>2024-03-09 15:27:19 -0800
commit67552a1b6810dd0932d722164cea82f53a2aa501 (patch)
tree76acc06fbea80e20e45efc8c92a8461af07d2ff9 /pkgs/by-name/lu
parent5dec6fc4daf5dd99d40893d120d183da46660c1f (diff)
parente63e189658a3c0c829a8403c4b54e4f2e2fcd857 (diff)
Merge pull request #278108 from eliandoran/dev/lunacy
lunacy: init at 9.4.2.5022
Diffstat (limited to 'pkgs/by-name/lu')
-rw-r--r--pkgs/by-name/lu/lunacy/package.nix114
1 files changed, 114 insertions, 0 deletions
diff --git a/pkgs/by-name/lu/lunacy/package.nix b/pkgs/by-name/lu/lunacy/package.nix
new file mode 100644
index 0000000000000..30b7090aded11
--- /dev/null
+++ b/pkgs/by-name/lu/lunacy/package.nix
@@ -0,0 +1,114 @@
+{ stdenv
+, lib
+, fetchurl
+, dpkg
+, autoPatchelfHook
+, zlib
+, libgcc
+, fontconfig
+, libX11
+, lttng-ust
+, icu
+, libICE
+, libSM
+, libXcursor
+, openssl
+, imagemagick
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "lunacy";
+  version = "9.4.2.5022";
+
+  src = fetchurl {
+    url = "https://lcdn.icons8.com/setup/Lunacy_${finalAttrs.version}.deb";
+    hash = "sha256-69CO1SPdO+JhAH/G/DihyHDueQOLaaJCf32MjBc77j4=";
+  };
+
+  unpackCmd = ''
+    mkdir -p root
+    dpkg-deb -x $src root
+  '';
+
+  buildInputs = [
+    zlib
+    libgcc
+    stdenv.cc.cc
+    lttng-ust
+    fontconfig.lib
+
+    # Runtime deps
+    libICE
+    libSM
+    libX11
+    libXcursor
+  ];
+
+  nativeBuildInputs = [
+    dpkg
+    autoPatchelfHook
+  ];
+
+  # adds to the RPATHS of all shared objects (exe and libs)
+  appendRunpaths = map (pkg: (lib.getLib pkg) + "/lib") [
+    icu
+    openssl
+    stdenv.cc.libc
+    stdenv.cc.cc
+  ] ++ [
+    # technically, this should be in runtimeDependencies but will not work as
+    # "lib" is appended to all elements in the array
+    "${placeholder "out"}/lib/lunacy"
+  ];
+
+  # will add to the RPATH of executable only
+  runtimeDependencies = [
+    libICE
+    libSM
+    libX11
+    libXcursor
+  ];
+
+  dontBuild = true;
+  dontStrip = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/lib";
+    cp -R "opt/icons8/lunacy" "$out/lib"
+    cp -R "usr/share" "$out/share"
+
+    # Prepare the desktop icon, the upstream icon is 200x200 but the hicolor theme does not
+    # support this resolution. Nearest sizes are 192x192 and 256x256.
+    ${imagemagick}/bin/convert "opt/icons8/lunacy/Assets/LunacyLogo.png" -resize 192x192 lunacy.png
+    install -D lunacy.png "$out/share/icons/hicolor/192x192/apps/${finalAttrs.pname}.png"
+
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    substituteInPlace $out/share/applications/lunacy.desktop \
+      --replace "Exec=/opt/icons8/lunacy/Lunacy" "Exec=${finalAttrs.pname}" \
+      --replace "Icon=/opt/icons8/lunacy/Assets/LunacyLogo.png" "Icon=${finalAttrs.pname}"
+  '';
+
+  postFixup = ''
+    mkdir $out/bin
+
+    # Fixes runtime error regarding missing libSkiaSharp.so (which is in the same directory as the binary).
+    ln -s "$out/lib/lunacy/Lunacy" "$out/bin/${finalAttrs.pname}"
+  '';
+
+  meta = with lib; {
+    description = "Free design software that keeps your flow with AI tools and built-in graphics";
+    homepage = "https://icons8.com/lunacy";
+    changelog = "https://lunacy.docs.icons8.com/release-notes/";
+    license = licenses.unfree;
+    maintainers = [ maintainers.eliandoran ];
+    platforms = platforms.linux;
+    sourceProvenance = [ sourceTypes.binaryBytecode ];
+    mainProgram = "lunacy";
+  };
+
+})