From b827ffab8f048f9a1ac66a42df015d692b228dd1 Mon Sep 17 00:00:00 2001 From: Danilo Reyes Date: Sat, 25 Oct 2025 18:52:33 -0600 Subject: [PATCH] Refactor Nix package definitions to use buildPythonPackage and buildPythonApplication, update dependencies, and remove obsolete packages including pureref, rmlint, steam, and talk. Update webcomix to version 3.12.0 with new dependencies and runtime checks. --- flake.nix | 2 +- pkgs_pr/gevent-eventemitter.nix | 11 ++- pkgs_pr/inputs.nix | 10 ++- pkgs_pr/pureref.nix | 67 ----------------- pkgs_pr/rmlint.nix | 106 --------------------------- pkgs_pr/rmlint/scons-nix-env.patch | 19 ----- pkgs_pr/steam.nix | 50 ------------- pkgs_pr/talk.nix | 113 ----------------------------- pkgs_pr/webcomix.nix | 23 ++++-- 9 files changed, 31 insertions(+), 370 deletions(-) delete mode 100644 pkgs_pr/pureref.nix delete mode 100644 pkgs_pr/rmlint.nix delete mode 100644 pkgs_pr/rmlint/scons-nix-env.patch delete mode 100644 pkgs_pr/steam.nix delete mode 100644 pkgs_pr/talk.nix diff --git a/flake.nix b/flake.nix index 12031f1..356521c 100644 --- a/flake.nix +++ b/flake.nix @@ -46,7 +46,7 @@ let content = builtins.readFile path; in - if builtins.match ".*buildPythonPackage.*" content != null + if builtins.match ".*(buildPythonPackage|buildPythonApplication).*" content != null then pkgs.python3Packages.callPackage path { } else pkgs.callPackage path { }; in diff --git a/pkgs_pr/gevent-eventemitter.nix b/pkgs_pr/gevent-eventemitter.nix index 6a4ac0b..f54f5da 100644 --- a/pkgs_pr/gevent-eventemitter.nix +++ b/pkgs_pr/gevent-eventemitter.nix @@ -1,10 +1,13 @@ { lib, - python3Packages, + buildPythonPackage, fetchFromGitHub, + setuptools, + wheel, + gevent, }: -python3Packages.buildPythonPackage rec { +buildPythonPackage rec { pname = "gevent-eventemitter"; version = "2.1"; pyproject = true; @@ -16,12 +19,12 @@ python3Packages.buildPythonPackage rec { hash = "sha256-aW4OsQi3N5yAMdbTd8rxbb2qYMfFJBR4WQFIXvxpiMw="; }; - build-system = with python3Packages; [ + build-system = [ setuptools wheel ]; - dependencies = with python3Packages; [ + dependencies = [ gevent ]; diff --git a/pkgs_pr/inputs.nix b/pkgs_pr/inputs.nix index 43e0c7c..79e08be 100644 --- a/pkgs_pr/inputs.nix +++ b/pkgs_pr/inputs.nix @@ -1,10 +1,12 @@ { lib, fetchFromGitHub, - python3Packages, + buildPythonPackage, + setuptools, + wheel, }: -python3Packages.buildPythonPackage rec { +buildPythonPackage rec { pname = "inputs"; version = "0.5"; pyproject = true; @@ -17,8 +19,8 @@ python3Packages.buildPythonPackage rec { }; build-system = [ - python3Packages.setuptools - python3Packages.wheel + setuptools + wheel ]; pythonImportsCheck = [ diff --git a/pkgs_pr/pureref.nix b/pkgs_pr/pureref.nix deleted file mode 100644 index ca957c1..0000000 --- a/pkgs_pr/pureref.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ - lib, - appimageTools, - runCommand, - curl, - gnugrep, - cacert, - fetchurl, - copyDesktopItems, - makeDesktopItem, -}: - -appimageTools.wrapType1 rec { - pname = "pureref"; - version = "2.0.3"; - - src = - runCommand "PureRef-${version}_x64.Appimage" - { - nativeBuildInputs = [ - curl - gnugrep - cacert - ]; - outputHash = "sha256-0iR1cP2sZvWWqKwRAwq6L/bmIBSYHKrlI8u8V2hANfM="; - } - '' - key="$(curl -A 'nixpkgs/Please contact maintainer if there is an issue' "https://www.pureref.com/download.php" --silent | grep '%3D%3D' | cut -d '"' -f2)" - curl -L "https://www.pureref.com/files/build.php?build=LINUX64.Appimage&version=${version}&downloadKey=$key" --output $out - ''; - - icon = fetchurl { - url = "https://raw.githubusercontent.com/nextcloud/talk-desktop/refs/tags/v1.0.0/img/icons/icon.png"; - hash = "sha256-DteSSuxIs0ukIJrvUO/3Mrh5F2GG5UAVvGRZUuZonkg="; - }; - nativeBuildInputs = [ - copyDesktopItems - ]; - - desktopItems = [ - (makeDesktopItem { - type = "Application"; - name = "pureref"; - desktopName = "PureRef"; - # comment = finalAttrs.meta.description; - # exec = finalAttrs.meta.mainProgram; - icon = "pureref"; - categories = [ - "Graphics" - "2DGraphics" - "RasterGraphics" - ]; - }) - ]; - - meta = with lib; { - description = "Reference Image Viewer"; - homepage = "https://www.pureref.com"; - license = licenses.unfree; - maintainers = with maintainers; [ - elnudev - husjon - ]; - platforms = [ "x86_64-linux" ]; - sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; - }; -} diff --git a/pkgs_pr/rmlint.nix b/pkgs_pr/rmlint.nix deleted file mode 100644 index ed41427..0000000 --- a/pkgs_pr/rmlint.nix +++ /dev/null @@ -1,106 +0,0 @@ -{ - lib, - stdenv, - cairo, - elfutils, - fetchFromGitHub, - fetchpatch, - glib, - gobject-introspection, - gtksourceview3, - json-glib, - makeWrapper, - pango, - pkg-config, - polkit, - python3, - scons, - sphinx, - util-linux, - wrapGAppsHook3, - withGui ? false, -}: - -assert withGui -> !stdenv.hostPlatform.isDarwin; - -stdenv.mkDerivation rec { - pname = "rmlint"; - version = "2.10.2"; - - src = fetchFromGitHub { - owner = "sahib"; - repo = "rmlint"; - rev = "v${version}"; - sha256 = "sha256-pOo1YfeqHUU6xyBRFbcj2lX1MHJ+a5Hi31BMC1nYZGo="; - }; - - patches = [ - # pass through NIX_* environment variables to scons. - ./rmlint/scons-nix-env.patch - # fix #664 - (fetchpatch { - url = "https://github.com/sahib/rmlint/commit/f0ca57ec907f7199e3670038d60b4702d1e1d8e2.patch"; - hash = "sha256-715X+R2BcQIaUV76hoO+EXPfNheOfw4OIHsqSoruIUI="; - }) - ]; - - nativeBuildInputs = [ - pkg-config - sphinx - scons - ] - ++ lib.optionals withGui [ - makeWrapper - wrapGAppsHook3 - gobject-introspection - ]; - - buildInputs = [ - glib - json-glib - util-linux - ] - ++ lib.optionals withGui [ - cairo - gtksourceview3 - pango - polkit - python3 - python3.pkgs.pygobject3 - ] - ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ - elfutils - ]; - - prePatch = '' - # remove sources of nondeterminism - substituteInPlace lib/cmdline.c \ - --replace "__DATE__" "\"Jan 1 1970\"" \ - --replace "__TIME__" "\"00:00:00\"" - substituteInPlace docs/SConscript \ - --replace "gzip -c " "gzip -cn " - ''; - - # Otherwise tries to access /usr. - prefixKey = "--prefix="; - - sconsFlags = lib.optionals (!withGui) [ "--without-gui" ]; - - # in GUI mode, this shells out to itself, and tries to import python modules - postInstall = lib.optionalString withGui '' - gappsWrapperArgs+=(--prefix PATH : "$out/bin") - gappsWrapperArgs+=(--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${python3.pkgs.pygobject3}):$(toPythonPath ${python3.pkgs.pycairo})") - ''; - - meta = with lib; { - description = "Extremely fast tool to remove duplicates and other lint from your filesystem"; - homepage = "https://rmlint.readthedocs.org"; - platforms = platforms.unix; - license = licenses.gpl3; - maintainers = with maintainers; [ - aaschmid - koral - ]; - mainProgram = "rmlint"; - }; -} diff --git a/pkgs_pr/rmlint/scons-nix-env.patch b/pkgs_pr/rmlint/scons-nix-env.patch deleted file mode 100644 index 10ed569..0000000 --- a/pkgs_pr/rmlint/scons-nix-env.patch +++ /dev/null @@ -1,19 +0,0 @@ -scons does not use os environment by default: - https://scons.org/doc/2.1.0/HTML/scons-user/x1750.html - -nixpkgs' cc-wrapper on the other hand relies on various NIX_* variables -to be passed through like NIX_CFLAGS_COMPILE_BEFORE. ---- a/SConstruct -+++ b/SConstruct -@@ -559,10 +559,7 @@ options = dict( - SHLINKCOMSTR=link_shared_library_message, - LINKCOMSTR=link_program_message, - PREFIX=GetOption('prefix'), -- ENV = dict([ (key, os.environ[key]) -- for key in os.environ -- if key in ['PATH', 'TERM', 'HOME', 'PKG_CONFIG_PATH'] -- ]) -+ ENV = os.environ, - ) - - if ARGUMENTS.get('VERBOSE') == "1": diff --git a/pkgs_pr/steam.nix b/pkgs_pr/steam.nix deleted file mode 100644 index 5a5ee22..0000000 --- a/pkgs_pr/steam.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - lib, - python3Packages, - fetchFromGitHub, - callPackage, -}: - -python3Packages.buildPythonPackage rec { - pname = "steam"; - version = "1.4.4"; - pyproject = true; - - src = fetchFromGitHub { - owner = "ValvePython"; - repo = "steam"; - rev = version; - hash = "sha256-OY04GsX3KMPvpsQl8sUurzFyJu+JKpES8B0iD6Z5uyw="; - }; - - build-system = with python3Packages; [ - setuptools - wheel - ]; - - dependencies = - with python3Packages; - [ - six - pycryptodomex - requests - urllib3 - vdf - gevent - protobuf - cachetools - cryptography - ] - ++ [ (callPackage ./gevent-eventemitter.nix { }) ]; - - pythonImportsCheck = [ - "steam" - ]; - - meta = { - description = "Python package for interacting with Steam"; - homepage = "https://github.com/ValvePython/steam"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ CaptainJawZ ]; - }; -} diff --git a/pkgs_pr/talk.nix b/pkgs_pr/talk.nix deleted file mode 100644 index 9084461..0000000 --- a/pkgs_pr/talk.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - fetchzip, - autoPatchelfHook, - copyDesktopItems, - makeDesktopItem, - nss, - cairo, - xorg, - libxkbcommon, - alsa-lib, - at-spi2-core, - mesa, - pango, - libdrm, - vivaldi-ffmpeg-codecs, - gtk3, - libGL, - libglvnd, - systemd, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "nextcloud-talk-desktop"; - version = "1.0.0"; - - # Building from source would require building also building Server and Talk components - # See https://github.com/nextcloud/talk-desktop?tab=readme-ov-file#%EF%B8%8F-prerequisites - src = fetchzip { - url = "https://github.com/nextcloud-releases/talk-desktop/releases/download/v${finalAttrs.version}/Nextcloud.Talk-linux-x64.zip"; - hash = "sha256-XQa4Fa9eEaFlYrWa00S9aMWKJOPPFGSo4NAlRqE23jM="; - stripRoot = false; - }; - - icon = fetchurl { - url = "https://raw.githubusercontent.com/nextcloud/talk-desktop/refs/tags/v1.0.0/img/icons/icon.png"; - hash = "sha256-DteSSuxIs0ukIJrvUO/3Mrh5F2GG5UAVvGRZUuZonkg="; - }; - - nativeBuildInputs = [ - autoPatchelfHook - copyDesktopItems - ]; - - buildInputs = [ - nss - cairo - alsa-lib - at-spi2-core - pango - libdrm - libxkbcommon - gtk3 - vivaldi-ffmpeg-codecs - mesa - libGL - libglvnd - ] - ++ (with xorg; [ - libX11 - libXcomposite - libXdamage - libXrandr - libXfixes - libXcursor - ]); - - # Required to launch the application and proceed past the zygote_linux fork() process - # Fixes `Zygote could not fork` - runtimeDependencies = [ systemd ]; - - desktopItems = [ - (makeDesktopItem { - type = "Application"; - name = "nextcloud-talk-desktop"; - desktopName = "Nextcloud Talk"; - comment = finalAttrs.meta.description; - exec = finalAttrs.meta.mainProgram; - icon = "nextcloud-talk-desktop"; - categories = [ "Chat" ]; - }) - ]; - - preInstall = '' - mkdir -p $out/bin - mkdir -p $out/opt - - cp -r $src/* $out/opt/ - ''; - - installPhase = '' - runHook preInstall - - # Link the application in $out/bin away from contents of `preInstall` - ln -s "$out/opt/Nextcloud Talk-linux-x64/Nextcloud Talk" $out/bin/nextcloud-talk-desktop - mkdir -p $out/share/icons/hicolor/512x512/apps - cp $icon $out/share/icons/hicolor/512x512/apps/nextcloud-talk-desktop.png - - runHook postInstall - ''; - - meta = with lib; { - description = "Nextcloud Talk Desktop Client"; - homepage = "https://github.com/nextcloud/talk-desktop"; - changelog = "https://github.com/nextcloud/talk-desktop/blob/${finalAttrs.version}/CHANGELOG.md"; - license = licenses.agpl3Only; - maintainers = with maintainers; [ kashw2 ]; - mainProgram = "nextcloud-talk-desktop"; - sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; - }; -}) diff --git a/pkgs_pr/webcomix.nix b/pkgs_pr/webcomix.nix index 3fbd18d..eb519b9 100644 --- a/pkgs_pr/webcomix.nix +++ b/pkgs_pr/webcomix.nix @@ -1,19 +1,27 @@ { lib, fetchFromGitHub, - python3Packages, + buildPythonApplication, + poetry-core, + click, + tqdm, + scrapy, + scrapy-splash, + scrapy-fake-useragent, + pytest-rerunfailures, + docker, }: -python3Packages.buildPythonApplication rec { +buildPythonApplication rec { pname = "webcomix"; - version = "3.11.1"; + version = "3.12.0"; pyproject = true; src = fetchFromGitHub { owner = "J-CPelletier"; repo = "webcomix"; rev = version; - hash = "sha256-vs7IE1IQ6/2uOYqLUskW4vGFdoz8z/ZBYQPteTcdOR0="; + hash = "sha256-Vsn6Ju4+SG8iOCxnqixnpi9apr8Nc4/mFjpjipPud6g="; }; postPatch = '' @@ -24,10 +32,10 @@ python3Packages.buildPythonApplication rec { ''; build-system = [ - python3Packages.poetry-core + poetry-core ]; - dependencies = with python3Packages; [ + dependencies = [ click tqdm scrapy @@ -42,6 +50,9 @@ python3Packages.buildPythonApplication rec { ''; doCheck = false; + + # Skip runtime dependency check due to version mismatches with nixpkgs + dontCheckRuntimeDeps = true; meta = { description = "Webcomic downloader";