about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/an
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/an')
-rw-r--r--nixpkgs/pkgs/by-name/an/anime4k/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/an/annotator/package.nix51
-rw-r--r--nixpkgs/pkgs/by-name/an/ansel/package.nix173
-rw-r--r--nixpkgs/pkgs/by-name/an/anyk/package.nix145
-rw-r--r--nixpkgs/pkgs/by-name/an/anyk/patch_paths.py35
-rw-r--r--nixpkgs/pkgs/by-name/an/anytype/package.nix40
6 files changed, 476 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/an/anime4k/package.nix b/nixpkgs/pkgs/by-name/an/anime4k/package.nix
new file mode 100644
index 000000000000..eef64ffc3ae9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/an/anime4k/package.nix
@@ -0,0 +1,32 @@
+{ fetchFromGitHub
+, lib
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "anime4k";
+  version = "4.0.1";
+
+  src = fetchFromGitHub {
+    owner = "bloc97";
+    repo = "Anime4k";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-OQWJWcDpwmnJJ/kc4uEReaO74dYFlxNQwf33E5Oagb0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 glsl/*/*.glsl -t $out
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A high-quality real time upscaler for anime";
+    homepage = "https://github.com/bloc97/Anime4K";
+    license = licenses.mit;
+    maintainers = with maintainers; [ surfaceflinger ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/an/annotator/package.nix b/nixpkgs/pkgs/by-name/an/annotator/package.nix
new file mode 100644
index 000000000000..3d2498e33500
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/an/annotator/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, meson
+, ninja
+, vala
+, wrapGAppsHook
+, desktop-file-utils
+, libgee
+, pantheon
+, libxml2
+, libhandy
+}:
+
+stdenv.mkDerivation rec {
+  pname = "annotator";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "phase1geo";
+    repo = "annotator";
+    rev = version;
+    hash = "sha256-VHvznkGvrE8o9qq+ijrIStSavq46dS8BqclWEWZ8mG8=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    meson
+    ninja
+    vala
+    wrapGAppsHook
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libgee
+    pantheon.granite
+    libxml2
+    libhandy
+  ];
+
+  meta = with lib; {
+    description = "Image annotation for Elementary OS";
+    homepage = "https://github.com/phase1geo/Annotator";
+    license = licenses.gpl3Plus;
+    mainProgram = "com.github.phase1geo.annotator";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/an/ansel/package.nix b/nixpkgs/pkgs/by-name/an/ansel/package.nix
new file mode 100644
index 000000000000..82cafc40bd74
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/an/ansel/package.nix
@@ -0,0 +1,173 @@
+{ libsepol
+, libavif
+, bash
+, curl
+, librsvg
+, libselinux
+, util-linux
+, libwebp
+, libheif
+, lib
+, stdenv
+, fetchFromGitHub
+, libxslt
+, libxml2
+, cmake
+, exiftool
+, openexr_3
+, glib
+, python3Packages
+, perlPackages
+, lensfun
+, intltool
+, pkg-config
+, desktop-file-utils
+, libffi
+, gtk3
+, libjpeg
+, pugixml
+, pcre
+, pcre2
+, lcms
+, sqlite
+, json-glib
+, jasper
+, libsecret
+, gmic
+, icu
+, colord
+, colord-gtk
+, libaom
+, libdatrie
+, libsysprof-capture
+, libde265
+, isocodes
+, libpsl
+, libepoxy
+, libsoup
+, exiv2
+, libXtst
+, libthai
+, x265
+, libXdmcp
+, openjpeg
+, libgpg-error
+, libxkbcommon
+, osm-gps-map
+, wrapGAppsHook
+, rav1e
+, dav1d
+, libgcrypt
+, graphicsmagick
+, unstableGitUpdater
+}:
+
+let
+    # requires libavif 0.x, see https://github.com/aurelienpierreeng/ansel/blob/e2c4a0a60cd80f741dd3d3c6ab72be9ac11234fb/src/CMakeLists.txt#L356
+    libavif_0_11 = libavif.overrideAttrs rec {
+      version = "0.11.1";
+
+      src = fetchFromGitHub {
+        owner = "AOMediaCodec";
+        repo = "libavif";
+        rev = "v${version}";
+        hash = "sha256-mUi0DU99XV3FzUZ8/9uJZU+W3fc6Bk6+y6Z78IRZ9Qs=";
+      };
+    };
+in
+stdenv.mkDerivation {
+  pname = "ansel";
+  version = "unstable-2024-02-23";
+
+  src = fetchFromGitHub {
+    owner = "aurelienpierreeng";
+    repo = "ansel";
+    rev = "61eb388760d130476415a51e19f94b199a1088fe";
+    hash = "sha256-68EX5rnOlBHXZnMlXjQk+ZXFIwR5ZFc1Wyg8EzCKaUg=";
+    fetchSubmodules = true;
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    desktop-file-utils
+    exiftool
+    intltool
+    libxml2
+    pkg-config
+    perlPackages.perl
+    python3Packages.jsonschema
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    bash # for patchShebangs to patch scripts in share/ansel/tools/
+    colord
+    colord-gtk
+    curl
+    dav1d
+    exiv2
+    json-glib
+    glib
+    gmic
+    graphicsmagick
+    gtk3
+    icu
+    isocodes
+    jasper
+    lcms
+    lensfun
+    libaom
+    libavif_0_11
+    libdatrie
+    libde265
+    libepoxy
+    libffi
+    libgcrypt
+    libgpg-error
+    libheif
+    libjpeg
+    libpsl
+    librsvg
+    libsecret
+    libselinux
+    libsepol
+    libsoup
+    libsysprof-capture
+    libthai
+    libwebp
+    libXdmcp
+    libxkbcommon
+    libxslt
+    libXtst
+    openexr_3
+    openjpeg
+    osm-gps-map
+    pcre
+    pcre2
+    perlPackages.Po4a
+    pugixml
+    rav1e
+    sqlite
+    util-linux
+    x265
+  ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix LD_LIBRARY_PATH ":" "$out/lib/ansel"
+    )
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    description = "A darktable fork minus the bloat plus some design vision";
+    homepage = "https://ansel.photos/";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    mainProgram = "ansel";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/an/anyk/package.nix b/nixpkgs/pkgs/by-name/an/anyk/package.nix
new file mode 100644
index 000000000000..dfd97fd62273
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/an/anyk/package.nix
@@ -0,0 +1,145 @@
+{ stdenv
+, lib
+, fetchurl
+, fetchzip
+, openjdk
+, writeScript
+, runCommandLocal
+, bash
+, unzip
+, makeWrapper
+, libredirect
+, xsettingsd
+, makeDesktopItem
+, copyDesktopItems
+, python3
+}:
+let
+  # Downloads can be found here: https://nav.gov.hu/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/AbevJava
+  # There are no versioned download URLs but archive.org can be used to preserve them.
+  # The original download URL is: https://nav.gov.hu/pfile/programFile?path=/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/AbevJava
+  # You can put the URL here to create a fresh archive URL: https://web.archive.org/save
+  abevjavaSrc = fetchzip {
+    url = "https://web.archive.org/web/20231106112510if_/https://nav.gov.hu/pfile/programFile?path=/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/AbevJava";
+    sha256 = "sha256-qt0mHv3HI6C8OltFjSR47+RLSnmB2Si5U8rXEvdN4/c=";
+    extension = "zip";
+    stripRoot = false;
+  };
+
+  # ÁNYK uses some SOAP stuff that's not shipped with OpenJDK any more.
+  # We don't really want to use openjdk8 because it's unusable on HiDPI
+  # and people are more likely to have a modern OpenJDK installed.
+  extraClasspath = [
+    (fetchurl {
+      url = "mirror://maven/org/glassfish/metro/webservices-rt/2.4.10/webservices-rt-2.4.10.jar";
+      sha256 = "sha256-lHclIZn3HR2B2lMttmmQGIV67qJi5KhL5jT2WNUQpPI=";
+    })
+
+    (fetchurl {
+      url = "mirror://maven/org/glassfish/metro/webservices-api/2.4.10/webservices-api-2.4.10.jar";
+      sha256 = "sha256-1jiabjPkRnh+l/fmTt8aKE5hpeLreYOiLH9sVIcLUQE=";
+    })
+
+    (fetchurl {
+      url = "mirror://maven/com/sun/activation/jakarta.activation/2.0.1/jakarta.activation-2.0.1.jar";
+      sha256 = "sha256-ueJLfdbgdJVWLqllMb4xMMltuk144d/Yitu96/QzKHE=";
+    })
+
+    # Patch one of the classes so it works with the packages above by removing .internal. from the package names.
+    (runCommandLocal "anyk-patch" {} ''
+      mkdir $out
+      cd $out
+      ${unzip}/bin/unzip ${abevjavaSrc}/application/abevjava.jar hu/piller/enykp/niszws/ClientStubBuilder.class
+      ${python3}/bin/python ${./patch_paths.py} hu/piller/enykp/niszws/ClientStubBuilder.class
+    '')
+  ];
+
+  # This script can be used to run template installation jars (or use the Szervíz -> Telepítés menu)
+  anyk-java = writeScript "anyk-java" ''
+    if [ -f ~/.abevjava/abevjavapath.cfg ]
+    then
+      if ABEVJAVA_PATH_CFG=$(grep abevjava.path ~/.abevjava/abevjavapath.cfg)
+      then
+        ABEVJAVA_PATH=''${ABEVJAVA_PATH_CFG#abevjava.path = }
+        echo "Determined abevjava path as $ABEVJAVA_PATH"
+      else
+        echo "Could not determine abevjava path from ~/.abevjava/abevjavapath.cfg"
+        exit 1
+      fi
+    else
+      ABEVJAVA_PATH=~/abevjava
+      mkdir -p ~/.abevjava
+      echo "abevjava.path = $ABEVJAVA_PATH" > ~/.abevjava/abevjavapath.cfg
+      echo "Initialized abevjava path as $ABEVJAVA_PATH"
+    fi
+
+    # Sync help files.
+    mkdir -p "$ABEVJAVA_PATH/segitseg/"
+    cp -sRf --no-preserve=all @out@/opt/segitseg/. "$ABEVJAVA_PATH/segitseg"
+
+    export LD_PRELOAD=${libredirect}/lib/libredirect.so:$LD_PRELOAD
+    # Look for form templates in ABEVJAVA_PATH instead of the install dir.
+    export NIX_REDIRECTS=@out@/opt/nyomtatvanyok=$ABEVJAVA_PATH/nyomtatvanyok:@out@/opt/segitseg=$ABEVJAVA_PATH/segitseg:@out@/opt/setenv=$ABEVJAVA_PATH/setenv:/bin/bash=${bash}/bin/bash:$NIX_REDIRECTS
+    if WINDOW_SCALING_FACTOR=$(${xsettingsd}/bin/dump_xsettings | awk '/Gdk\/WindowScalingFactor/{print $NF}'  | grep .); then
+      # Fix scaling on HiDPI.
+      SCALING_PROP="-Dsun.java2d.uiScale=''${WINDOW_SCALING_FACTOR}"
+    fi
+    # ÁNYK crashes with NullPointerException with the GTK look and feel so use the cross-platform one.
+    exec ${openjdk}/bin/java -Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel $SCALING_PROP "$@"
+  '';
+in stdenv.mkDerivation {
+  pname = "anyk";
+  version = "3.26.0";
+
+  src = abevjavaSrc;
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper copyDesktopItems ];
+
+  desktopItems = [
+    (makeDesktopItem rec {
+      desktopName = "ÁNYK";
+      name = "anyk";
+      exec = "anyk";
+      icon = "anyk";
+      categories = [ "Office" ];
+    })
+  ];
+
+  installPhase = ''
+    mkdir $out
+    cp -r application $out/opt
+
+    mkdir $out/bin
+    substituteAll ${anyk-java} $out/bin/anyk-java
+    chmod +x $out/bin/anyk-java
+
+    # ÁNYK has some old school dependencies that are no longer bundled with Java, put them on the classpath.
+    makeWrapper $out/bin/anyk-java $out/bin/anyk --add-flags "-cp ${lib.concatStringsSep ":" extraClasspath}:$out/opt/abevjava.jar hu.piller.enykp.gui.framework.MainFrame"
+
+    mkdir -p $out/share/applications $out/share/pixmaps $out/share/icons
+
+    copyDesktopItems
+
+    ln -s $out/opt/abevjava.png $out/share/pixmaps/anyk.png
+    ln -s $out/opt/abevjava.png $out/share/icons/anyk.png
+  '';
+
+  meta = with lib; {
+    description = "Tool for filling forms for the Hungarian government,";
+    longDescription = ''
+      Official tool for filling Hungarian government forms.
+
+      Use `anyk-java` to install form templates/help files like this: `anyk-java -jar NAV_IGAZOL.jar`
+    '';
+    homepage = "https://nav.gov.hu/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/javakitolto";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ chpatrick ];
+    platforms = openjdk.meta.platforms;
+    sourceProvenance = [ sourceTypes.binaryBytecode ];
+    mainProgram = "anyk";
+  };
+}
+
diff --git a/nixpkgs/pkgs/by-name/an/anyk/patch_paths.py b/nixpkgs/pkgs/by-name/an/anyk/patch_paths.py
new file mode 100644
index 000000000000..5e2306bd3c9a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/an/anyk/patch_paths.py
@@ -0,0 +1,35 @@
+from pathlib import Path
+from struct import pack
+import sys
+
+def to_java_string(string) -> bytes:
+  string_bytes = string.encode("utf-8")
+  # Java constant pool string entries are prefixed by 0x01 and 16-bit big-endian string length.
+  return pack(">BH", 1, len(string_bytes)) + string_bytes
+
+class_file = Path(sys.argv[1])
+
+clazz = class_file.read_bytes()
+
+# We want to fix these package names so they work with the open-source Java EE releases instead of OpenJDK 8.
+patches = [
+  ( "com/sun/xml/internal/ws/developer/WSBindingProvider", "com/sun/xml/ws/developer/WSBindingProvider" ),
+  ( "com/sun/xml/internal/ws/api/message/Header", "com/sun/xml/ws/api/message/Header" ),
+  ( "com.sun.xml.internal.ws.transport.http.client.streaming.chunk.size", "com.sun.xml.ws.transport.http.client.streaming.chunk.size" ),
+  ( "com/sun/xml/internal/ws/api/message/Headers", "com/sun/xml/ws/api/message/Headers" ),
+  ( "(Lorg/w3c/dom/Element;)Lcom/sun/xml/internal/ws/api/message/Header;", "(Lorg/w3c/dom/Element;)Lcom/sun/xml/ws/api/message/Header;" ),
+  ( "([Lcom/sun/xml/internal/ws/api/message/Header;)V", "([Lcom/sun/xml/ws/api/message/Header;)V" ),
+]
+
+for old, new in patches:
+  old_java = to_java_string(old)
+  new_java = to_java_string(new)
+  assert old_java in clazz
+  clazz = clazz.replace(old_java, new_java)
+  assert old_java not in clazz
+  assert new_java in clazz
+
+assert b".internal." not in clazz
+
+class_file.write_bytes(clazz)
+
diff --git a/nixpkgs/pkgs/by-name/an/anytype/package.nix b/nixpkgs/pkgs/by-name/an/anytype/package.nix
new file mode 100644
index 000000000000..d65c2f38e676
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/an/anytype/package.nix
@@ -0,0 +1,40 @@
+{ lib, fetchurl, appimageTools, makeWrapper }:
+
+let
+  pname = "anytype";
+  version = "0.38.0";
+  name = "Anytype-${version}";
+  src = fetchurl {
+    url = "https://github.com/anyproto/anytype-ts/releases/download/v${version}/${name}.AppImage";
+    name = "Anytype-${version}.AppImage";
+    hash = "sha256-tcAOj7omrhyyG8elnAvbj/FtYaYOBeBkclpPHhSoass=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs)
+    ++ [ pkgs.libsecret ];
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+    source "${makeWrapper}/nix-support/setup-hook"
+    wrapProgram $out/bin/${pname} \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+    install -m 444 -D ${appimageContents}/anytype.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/anytype.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+    for size in 16 32 64 128 256 512 1024; do
+      install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/''${size}x''${size}/apps/anytype.png \
+        $out/share/icons/hicolor/''${size}x''${size}/apps/anytype.png
+    done
+  '';
+
+  meta = with lib; {
+    description = "P2P note-taking tool";
+    homepage = "https://anytype.io/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ running-grass ];
+    platforms = [ "x86_64-linux" ];
+  };
+}