diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/an')
-rw-r--r-- | nixpkgs/pkgs/by-name/an/anime4k/package.nix | 32 | ||||
-rw-r--r-- | nixpkgs/pkgs/by-name/an/annotator/package.nix | 51 | ||||
-rw-r--r-- | nixpkgs/pkgs/by-name/an/ansel/package.nix | 173 | ||||
-rw-r--r-- | nixpkgs/pkgs/by-name/an/anyk/package.nix | 145 | ||||
-rw-r--r-- | nixpkgs/pkgs/by-name/an/anyk/patch_paths.py | 35 | ||||
-rw-r--r-- | nixpkgs/pkgs/by-name/an/anytype/package.nix | 40 |
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" ]; + }; +} |