Compare commits

..

8 Commits

Author SHA1 Message Date
Danilo Reyes
4e91264f0f tuh fix 2025-11-08 21:44:16 -06:00
Danilo Reyes
093ccf90cb webcomix patched for 25.11 2025-11-08 20:21:19 -06:00
Danilo Reyes
07daae7770 Add rmlint to Nix package dependencies in run.nix for improved functionality 2025-10-29 00:48:37 -06:00
Danilo Reyes
df61132974 Refactor Nix package definition for tuh-activity-logger to utilize buildPythonApplication, streamline dependencies, and include additional packages such as beautifulsoup4, requests, and matplotlib. 2025-10-29 00:37:20 -06:00
Danilo Reyes
cd60c3ad69 Update Nix package definitions to include webcomix and enhance overlays. Refactor download.nix to utilize buildPythonApplication and streamline dependencies, ensuring proper integration of new packages. 2025-10-29 00:33:25 -06:00
Danilo Reyes
d1f011ba1f Enhance Nix package definitions by adding new packages for inputs and steam-python, updating build inputs for colordle and dosage, and improving installation scripts. Notable changes include the addition of desktop and metainfo files for colordle, and ensuring proper GResource handling in dosage. 2025-10-25 20:00:10 -06:00
Danilo Reyes
a8e7517e9a Refactor Nix package definitions to use buildPythonApplication, update package versions, and enhance dependencies across multiple packages. Notable changes include version updates for dosage, hiit, qbittorrent-api, protonup-qt, and torf, as well as the addition of new dependencies and build inputs for colordle and qbit-manage. 2025-10-25 19:28:39 -06:00
Danilo Reyes
b827ffab8f 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. 2025-10-25 18:52:33 -06:00
25 changed files with 384 additions and 444 deletions

8
flake.lock generated
View File

@@ -20,16 +20,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1761173472,
"narHash": "sha256-m9W0dYXflzeGgKNravKJvTMR4Qqa2MVD11AwlGMufeE=",
"lastModified": 1762653957,
"narHash": "sha256-3em63zYO+s0NxxKwPXyzV80fXfwZOg7/LjYF5ndZltc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c8aa8cc00a5cb57fada0851a038d35c08a36a2bb",
"rev": "c148fa0cf61fc3bb7b011f2d4f8d789964ea7dd0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}

View File

@@ -1,7 +1,7 @@
{
description = "Nix flake for the activity logging script";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
nixpkgs.url = "github:NixOS/nixpkgs/master";
sudoku-solver.url = "path:./src/sudoku-hs";
};
outputs =
@@ -11,6 +11,7 @@
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [ inputs.self.overlays.default ];
};
generatePackages =
args:
@@ -29,15 +30,11 @@
in
{
overlays.default = _final: prev: {
scrapy = prev.scrapy.overrideAttrs (_old: rec {
version = "2.11.2";
src = prev.fetchFromGitHub {
owner = "scrapy";
repo = "scrapy";
tag = version;
hash = "sha256-EaO1kQ3VSTwEW+r0kSKycOxHNTPwwCVjch1ZBrTU0qQ=";
python3Packages = prev.python3Packages.override {
overrides = pyself: pysuper: {
webcomix = prev.python3Packages.callPackage ./pkgs_pr/webcomix.nix { };
};
});
};
};
packages.x86_64-linux =
let
@@ -46,7 +43,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

View File

@@ -1,14 +1,19 @@
{
python3Packages,
buildPythonApplication,
setuptools,
pyyaml,
types-pyyaml,
yt-dlp,
gallery-dl,
ffmpeg,
webcomix,
...
}:
let
pname = "download";
version = "2.6";
in
python3Packages.buildPythonApplication {
buildPythonApplication {
inherit pname version;
src = builtins.path {
@@ -18,18 +23,14 @@ python3Packages.buildPythonApplication {
pyproject = true;
build-system = [ python3Packages.setuptools ];
build-system = [ setuptools ];
dependencies = [
ffmpeg
gallery-dl
# (callPackage ../pkgs_pr/webcomix.nix { })
]
++ builtins.attrValues {
inherit (python3Packages)
pyyaml
types-pyyaml
yt-dlp
;
};
pyyaml
types-pyyaml
yt-dlp
webcomix
];
}

View File

@@ -6,6 +6,7 @@
gum,
xclip,
ghostty,
rmlint,
callPackage,
...
}:
@@ -19,7 +20,7 @@ writeShellApplication {
gum
xclip
ghostty
(callPackage ../pkgs_pr/rmlint.nix { })
rmlint
];
text = builtins.readFile ../src/packaged_scripts/run.sh;

View File

@@ -1,23 +1,28 @@
{ python3Packages, sqlite, ... }:
{
buildPythonApplication,
setuptools,
beautifulsoup4,
requests,
matplotlib,
sqlite,
...
}:
let
pname = "tuh-activity-logger";
version = "1.0";
in
python3Packages.buildPythonApplication {
buildPythonApplication {
inherit pname version;
src = builtins.path {
path = ../src/tuhmayto/.;
name = "${pname}-${version}";
};
build-system = [ python3Packages.setuptools ];
pyproject = true;
build-system = [ setuptools ];
dependencies = [
sqlite
]
++ builtins.attrValues {
inherit (python3Packages)
beautifulsoup4
requests
matplotlib
;
};
beautifulsoup4
requests
matplotlib
];
}

View File

@@ -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
];

View File

@@ -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 = [

View File

@@ -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 ];
};
}

View File

@@ -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";
};
}

View File

@@ -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":

View File

@@ -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 ];
};
})

View File

@@ -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,15 +32,23 @@ python3Packages.buildPythonApplication rec {
'';
build-system = [
python3Packages.poetry-core
poetry-core
];
dependencies = with python3Packages; [
dependencies = [
click
tqdm
scrapy
scrapy-splash
scrapy-fake-useragent
(scrapy-splash.overridePythonAttrs (oldAttrs: {
doCheck = false;
nativeCheckInputs = [ ];
}))
(scrapy-fake-useragent.overridePythonAttrs (oldAttrs: {
doCheck = false;
nativeCheckInputs = [ ];
checkPhase = "";
preCheck = "";
}))
pytest-rerunfailures
docker
];
@@ -42,6 +58,9 @@ python3Packages.buildPythonApplication rec {
'';
doCheck = false;
# Skip runtime dependency check due to version mismatches with nixpkgs
dontCheckRuntimeDeps = true;
meta = {
description = "Webcomic downloader";

View File

@@ -2,7 +2,6 @@
stdenv,
lib,
python3,
python3Packages,
fetchFromGitHub,
meson,
appstream-glib,
@@ -35,7 +34,7 @@ stdenv.mkDerivation (_finaAttrs: rec {
pkg-config
desktop-file-utils
ninja
python3Packages.pygobject3
python3.pkgs.pygobject3
gobject-introspection
];

View File

@@ -2,6 +2,11 @@
lib,
stdenv,
fetchFromGitLab,
makeWrapper,
python3,
gtk4,
libadwaita,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
@@ -15,6 +20,38 @@ stdenv.mkDerivation rec {
hash = "sha256-oPGC0D7sh+H25qg2ttRtIMjI+HjZImRieWmYw+I6sQE=";
};
nativeBuildInputs = [
makeWrapper
wrapGAppsHook4
];
buildInputs = [
gtk4
libadwaita
(python3.withPackages (ps: with ps; [
pygobject3
pycairo
]))
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/hexcolordle-gtk $out/share/applications $out/share/metainfo
cp -r * $out/share/hexcolordle-gtk/
# Install desktop file and metainfo
cp net.krafting.HexColordle.desktop $out/share/applications/
cp net.krafting.HexColordle.metainfo.xml $out/share/metainfo/
# Create wrapper for the main Python file
makeWrapper ${python3.withPackages (ps: with ps; [pygobject3 pycairo])}/bin/python3 $out/bin/hexcolordle-gtk \
--add-flags "$out/share/hexcolordle-gtk/HexColordle.py" \
--prefix PYTHONPATH : "$out/share/hexcolordle-gtk"
runHook postInstall
'';
meta = {
description = "A game where you need to find a color by guessing its hex code";
homepage = "https://gitlab.com/Krafting/hexcolordle-gtk";

View File

@@ -15,17 +15,18 @@
gtk4,
libadwaita,
wrapGAppsHook4,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "dosage";
version = "1.7.5";
version = "1.9.11";
src = fetchFromGitHub {
owner = "diegopvlk";
repo = "Dosage";
rev = "v${version}";
hash = "sha256-dpmv9GbAgLAZJCifHssC0HQEBXHjrO0mquQd24pNMM0=";
hash = "sha256-TS9niQd3jlALQrFu6H2SucZwwQp0k2BRHqZCYfbz+CI=";
};
nativeBuildInputs = [
@@ -38,18 +39,30 @@ stdenv.mkDerivation rec {
glib
appstream-glib
appstream
wrapGAppsHook4
];
buildInputs = [
gjs
gtk4
libadwaita
wrapGAppsHook4
glib
];
# Ensure GResource files are properly accessible
postInstall = ''
# The GResource files should be automatically handled by wrapGAppsHook4
# but let's make sure the GResource path is correct
wrapProgram $out/bin/io.github.diegopvlk.Dosage \
--prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
'';
meta = {
description = "Medication tracker for Linux";
homepage = "https://github.com/diegopvlk/Dosage";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ ];
mainProgram = "dosage";
mainProgram = "io.github.diegopvlk.Dosage";
platforms = lib.platforms.all;
};
}

View File

@@ -5,6 +5,11 @@
meson,
ninja,
gettext,
pkg-config,
desktop-file-utils,
appstream-glib,
glib,
blueprint-compiler,
}:
stdenv.mkDerivation rec {
@@ -23,8 +28,19 @@ stdenv.mkDerivation rec {
meson
ninja
gettext
pkg-config
desktop-file-utils
appstream-glib
glib
blueprint-compiler
];
# Override the post-install script to avoid sandbox issues
postInstall = ''
# The original postinstall.py tries to run glib-compile-schemas which fails in sandbox
echo "Skipping glib-compile-schemas and other post-install steps"
'';
meta = {
description = "Girens is a Plex GTK client for playing movies, TV shows and music from your Plex library";
homepage = "https://gitlab.gnome.org/tijder/girens";

View File

@@ -17,24 +17,26 @@
pango,
darwin,
alsa-lib,
pulseaudio,
pipewire,
desktop-file-utils,
}:
stdenv.mkDerivation rec {
pname = "exercise-timer";
version = "1.8.1";
version = "1.8.5";
src = fetchFromGitHub {
owner = "mfep";
repo = "exercise-timer";
rev = "v${version}";
hash = "sha256-6MBSUYFZ8nMZX7acam8T0uJWb9E2/L9vnKzJq14p4BY=";
hash = "sha256-YZYAhG8xpXM1m1LrXgwxo3JF74QjOmbnuSbo4SYPBmg=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
name = "${pname}-${version}";
hash = "sha256-mXHw87IUMq1qXQSTavI/ReKUyB0rNMXYld8vND38C30=";
hash = "sha256-JObzeiQHEGIDjOung3o8dpaXVcOoJS2v1hyrcS1fqcI=";
};
nativeBuildInputs = [

38
pkgs_wip/inputs.nix Normal file
View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
buildPythonPackage,
setuptools,
wheel,
}:
buildPythonPackage rec {
pname = "inputs";
version = "0.5";
pyproject = true;
src = fetchFromGitHub {
owner = "zeth";
repo = "inputs";
rev = "v${version}";
hash = "sha256-tU1R6lhSMZj3Y6XdrT/Yfbte/BdLDvo6TzvLbnr+1vo=";
};
build-system = [
setuptools
wheel
];
pythonImportsCheck = [
"inputs"
];
meta = {
description = "Cross-platform Python support for keyboards, mice and gamepads";
homepage = "https://github.com/zeth/inputs";
changelog = "https://github.com/zeth/inputs/blob/${src.rev}/CHANGELOG.rst";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ CaptainJawZ ];
mainProgram = "inputs";
};
}

View File

@@ -1,50 +1,56 @@
{
lib,
python3Packages,
buildPythonApplication,
fetchFromGitHub,
callPackage,
setuptools,
pyside6,
pyxdg,
pyyaml,
requests,
vdf,
zstandard,
}:
python3Packages.buildPythonApplication rec {
buildPythonApplication rec {
pname = "proton-up-qt";
version = "2.10.2";
version = "2.14.0";
pyproject = true;
src = fetchFromGitHub {
owner = "DavidoTek";
repo = "ProtonUp-Qt";
rev = "v${version}";
hash = "sha256-hf0ZLvn5mv0BlUgMvDwpdsa9ye3Bz47n0aSz+jgBrXg=";
hash = "sha256-UiU2yLajMW5FnRSNS8TCg9Cqs8AkuXA+4FJTS2kfi6I=";
};
pythonRemoveDeps = [
"pyside6-essentials"
];
# Skip runtime dependency check for missing packages
dontCheckRuntimeDeps = true;
build-system = [
python3Packages.setuptools
setuptools
];
dependencies =
with python3Packages;
[
pyside6
pyxdg
pyyaml
requests
vdf
zstandard
]
++ [
(callPackage ./inputs.nix { })
(callPackage ./steam.nix { })
];
dependencies = [
pyside6
pyxdg
pyyaml
requests
vdf
zstandard
(callPackage ./inputs.nix { })
(callPackage ./steam-python.nix { })
];
meta = {
description = "Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface";
homepage = "https://github.com/DavidoTek/ProtonUp-Qt";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ CaptainJawZ ];
mainProgram = "proton-up-qt";
mainProgram = "protonup-qt";
};
}

View File

@@ -1,10 +1,25 @@
{
lib,
python3,
buildPythonApplication,
fetchFromGitHub,
setuptools,
wheel,
argon2-cffi,
bencode-py,
croniter,
fastapi,
gitpython,
humanize,
pytimeparse2,
qbittorrent-api,
requests,
retrying,
ruamel-yaml,
slowapi,
uvicorn,
}:
python3.pkgs.buildPythonApplication rec {
buildPythonApplication rec {
pname = "qbit-manage";
version = "4.6.3";
pyproject = true;
@@ -20,30 +35,29 @@ python3.pkgs.buildPythonApplication rec {
rm LICENSE
'';
build-system = builtins.attrValues {
inherit (python3.pkgs)
setuptools
wheel
;
};
build-system = [
setuptools
wheel
];
propagatedBuildInputs = builtins.attrValues {
inherit (python3.pkgs)
argon2-cffi
bencode-py
croniter
fastapi
gitpython
humanize
pytimeparse2
qbittorrent-api
requests
retrying
ruamel-yaml
slowapi
uvicorn
;
};
dependencies = [
argon2-cffi
bencode-py
croniter
fastapi
gitpython
humanize
pytimeparse2
qbittorrent-api
requests
retrying
ruamel-yaml
slowapi
uvicorn
];
# Skip runtime dependency check due to version mismatches with nixpkgs
dontCheckRuntimeDeps = true;
meta = {
description = "This tool will help manage tedious tasks in qBittorrent and automate them. Tag, categorize, remove Orphaned data, remove unregistered torrents and much much more";

View File

@@ -15,13 +15,13 @@
buildPythonPackage rec {
pname = "qbittorrent-api";
version = "2025.5.0";
version = "2025.7.0";
pyproject = true;
src = fetchPypi {
pname = "qbittorrent_api";
inherit version;
hash = "sha256-NKD5weGufhbeUOlGUXUsjZejz1TCo+GgXGqDdzmaDjA=";
hash = "sha256-9GLygXVZzKpMbNwSaUoxU++s1Q+jKFpCVAGrMKvA3nY=";
};
build-system = [

59
pkgs_wip/steam-python.nix Normal file
View File

@@ -0,0 +1,59 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
callPackage,
setuptools,
wheel,
six,
pycryptodomex,
requests,
urllib3,
vdf,
gevent,
protobuf,
cachetools,
cryptography,
}:
buildPythonPackage rec {
pname = "steam-python";
version = "1.4.4";
pyproject = true;
src = fetchFromGitHub {
owner = "ValvePython";
repo = "steam";
rev = version;
hash = "sha256-OY04GsX3KMPvpsQl8sUurzFyJu+JKpES8B0iD6Z5uyw=";
};
build-system = [
setuptools
wheel
];
dependencies = [
six
pycryptodomex
requests
urllib3
vdf
gevent
protobuf
cachetools
cryptography
(callPackage ../pkgs_pr/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 ];
};
}

View File

@@ -1,12 +1,24 @@
{
lib,
python3Packages,
buildPythonPackage,
fetchFromGitHub,
callPackage,
setuptools,
wheel,
six,
pycryptodomex,
requests,
urllib3,
vdf,
gevent,
protobuf,
cachetools,
cryptography,
gevent-eventemitter,
}:
python3Packages.buildPythonPackage rec {
pname = "steam";
buildPythonPackage rec {
pname = "steam-python";
version = "1.4.4";
pyproject = true;
@@ -17,25 +29,23 @@ python3Packages.buildPythonPackage rec {
hash = "sha256-OY04GsX3KMPvpsQl8sUurzFyJu+JKpES8B0iD6Z5uyw=";
};
build-system = with python3Packages; [
build-system = [
setuptools
wheel
];
dependencies =
with python3Packages;
[
six
pycryptodomex
requests
urllib3
vdf
gevent
protobuf
cachetools
cryptography
]
++ [ (callPackage ./gevent-eventemitter.nix { }) ];
dependencies = [
six
pycryptodomex
requests
urllib3
vdf
gevent
protobuf
cachetools
cryptography
gevent-eventemitter
];
pythonImportsCheck = [
"steam"

View File

@@ -1,10 +1,20 @@
{
lib,
python3,
buildPythonApplication,
fetchFromGitHub,
setuptools,
pyxdg,
torf,
coverage,
flake8,
isort,
pytest,
pytest-cov,
ruff,
tox,
}:
python3.pkgs.buildPythonApplication rec {
buildPythonApplication rec {
pname = "torf-cli";
version = "5.2.1";
pyproject = true;
@@ -17,15 +27,15 @@ python3.pkgs.buildPythonApplication rec {
};
build-system = [
python3.pkgs.setuptools
setuptools
];
dependencies = with python3.pkgs; [
dependencies = [
pyxdg
torf
];
optional-dependencies = with python3.pkgs; {
optional-dependencies = {
dev = [
coverage
flake8

View File

@@ -1,10 +1,23 @@
{
lib,
python3,
buildPythonApplication,
fetchFromGitHub,
setuptools,
flatbencode,
coverage,
flake8,
isort,
mypy,
pytest,
pytest-cov,
pytest-httpserver,
pytest-mock,
pytest-xdist,
ruff,
tox,
}:
python3.pkgs.buildPythonApplication rec {
buildPythonApplication rec {
pname = "torf";
version = "4.3.0";
pyproject = true;
@@ -17,14 +30,14 @@ python3.pkgs.buildPythonApplication rec {
};
build-system = [
python3.pkgs.setuptools
setuptools
];
dependencies = with python3.pkgs; [
dependencies = [
flatbencode
];
optional-dependencies = with python3.pkgs; {
optional-dependencies = {
dev = [
coverage
flake8