Refactor Nix package definitions for improved clarity and consistency, including updates to overlays, dependencies, and build inputs across multiple packages.

This commit is contained in:
Danilo Reyes 2025-10-02 14:45:13 -06:00
parent 38959dc37b
commit e9fc085de1
14 changed files with 188 additions and 198 deletions

View File

@ -28,8 +28,8 @@
|> builtins.listToAttrs; |> builtins.listToAttrs;
in in
{ {
overlays.default = final: prev: { overlays.default = _final: prev: {
scrapy = prev.scrapy.overrideAttrs (old: rec { scrapy = prev.scrapy.overrideAttrs (_old: rec {
version = "2.11.2"; version = "2.11.2";
src = prev.fetchFromGitHub { src = prev.fetchFromGitHub {
owner = "scrapy"; owner = "scrapy";
@ -42,7 +42,7 @@
packages.x86_64-linux = packages.x86_64-linux =
let let
scriptBin = path: name: pkgs.writeScriptBin name (builtins.readFile path); scriptBin = path: name: pkgs.writeScriptBin name (builtins.readFile path);
pkgsBin = path: name: pkgs.callPackage path { }; pkgsBin = path: _name: pkgs.callPackage path { };
in in
{ {
citra = pkgs.callPackage ./pkgs/citra/default.nix { branch = "nightly"; }; citra = pkgs.callPackage ./pkgs/citra/default.nix { branch = "nightly"; };

View File

@ -45,47 +45,46 @@ stdenv.mkDerivation {
glslang glslang
pkg-config pkg-config
python3 python3
] ++ lib.optionals enableQt [ wrapQtAppsHook ]; ]
++ lib.optionals enableQt [ wrapQtAppsHook ];
buildInputs = buildInputs = [
[ boost
boost libusb1
libusb1 ]
] ++ lib.optionals enableQt [
++ lib.optionals enableQt [ qtbase
qtbase qtmultimedia
qtmultimedia ]
] ++ lib.optional enableSdl2 SDL2
++ lib.optional enableSdl2 SDL2 ++ lib.optional enableQtTranslation qttools
++ lib.optional enableQtTranslation qttools ++ lib.optionals enableCubeb cubeb.passthru.backendLibs
++ lib.optionals enableCubeb cubeb.passthru.backendLibs ++ lib.optional (enableFfmpegAudioDecoder || enableFfmpegVideoDumper) ffmpeg_4
++ lib.optional (enableFfmpegAudioDecoder || enableFfmpegVideoDumper) ffmpeg_4 ++ lib.optional useDiscordRichPresence rapidjson
++ lib.optional useDiscordRichPresence rapidjson ++ lib.optional enableFdk fdk_aac;
++ lib.optional enableFdk fdk_aac;
cmakeFlags = cmakeFlags = [
[ "-DUSE_SYSTEM_BOOST=ON"
"-DUSE_SYSTEM_BOOST=ON" "-DCITRA_WARNINGS_AS_ERRORS=OFF"
"-DCITRA_WARNINGS_AS_ERRORS=OFF" "-DCITRA_USE_BUNDLED_FFMPEG=OFF"
"-DCITRA_USE_BUNDLED_FFMPEG=OFF" "-DCITRA_USE_BUNDLED_QT=OFF"
"-DCITRA_USE_BUNDLED_QT=OFF" "-DUSE_SYSTEM_SDL2=ON"
"-DUSE_SYSTEM_SDL2=ON" "-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DCMAKE_INSTALL_INCLUDEDIR=include" "-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_LIBDIR=lib"
# We dont want to bother upstream with potentially outdated compat reports # We dont want to bother upstream with potentially outdated compat reports
"-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON" "-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON"
"-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
] ]
++ lib.optional (!enableSdl2) "-DENABLE_SDL2=OFF" ++ lib.optional (!enableSdl2) "-DENABLE_SDL2=OFF"
++ lib.optional (!enableQt) "-DENABLE_QT=OFF" ++ lib.optional (!enableQt) "-DENABLE_QT=OFF"
++ lib.optional enableQtTranslation "-DENABLE_QT_TRANSLATION=ON" ++ lib.optional enableQtTranslation "-DENABLE_QT_TRANSLATION=ON"
++ lib.optional (!enableWebService) "-DENABLE_WEB_SERVICE=OFF" ++ lib.optional (!enableWebService) "-DENABLE_WEB_SERVICE=OFF"
++ lib.optional (!enableCubeb) "-DENABLE_CUBEB=OFF" ++ lib.optional (!enableCubeb) "-DENABLE_CUBEB=OFF"
++ lib.optional enableFfmpegAudioDecoder "-DENABLE_FFMPEG_AUDIO_DECODER=ON" ++ lib.optional enableFfmpegAudioDecoder "-DENABLE_FFMPEG_AUDIO_DECODER=ON"
++ lib.optional enableFfmpegVideoDumper "-DENABLE_FFMPEG_VIDEO_DUMPER=ON" ++ lib.optional enableFfmpegVideoDumper "-DENABLE_FFMPEG_VIDEO_DUMPER=ON"
++ lib.optional useDiscordRichPresence "-DUSE_DISCORD_PRESENCE=ON" ++ lib.optional useDiscordRichPresence "-DUSE_DISCORD_PRESENCE=ON"
++ lib.optional enableFdk "-DENABLE_FDK=ON"; ++ lib.optional enableFdk "-DENABLE_FDK=ON";
postPatch = postPatch =
let let

View File

@ -2,7 +2,6 @@
python3Packages, python3Packages,
gallery-dl, gallery-dl,
ffmpeg, ffmpeg,
callPackage,
... ...
}: }:
let let
@ -21,17 +20,16 @@ python3Packages.buildPythonApplication {
build-system = [ python3Packages.setuptools ]; build-system = [ python3Packages.setuptools ];
dependencies = dependencies = [
[ ffmpeg
ffmpeg gallery-dl
gallery-dl # (callPackage ../pkgs_pr/webcomix.nix { })
# (callPackage ../pkgs_pr/webcomix.nix { }) ]
] ++ builtins.attrValues {
++ builtins.attrValues { inherit (python3Packages)
inherit (python3Packages) pyyaml
pyyaml types-pyyaml
types-pyyaml yt-dlp
yt-dlp ;
; };
};
} }

View File

@ -95,7 +95,8 @@ let
cmakeFlags = [ cmakeFlags = [
"-GNinja" "-GNinja"
"-DLauncher_QT_VERSION_MAJOR=${lib.versions.major qt6.qtbase.version}" "-DLauncher_QT_VERSION_MAJOR=${lib.versions.major qt6.qtbase.version}"
] ++ lib.optionals (msaClientID != null) [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]; ]
++ lib.optionals (msaClientID != null) [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ];
postPatch = '' postPatch = ''
# hardcode jdk paths # hardcode jdk paths

View File

@ -22,7 +22,6 @@
lz4, lz4,
python3, python3,
unzip, unzip,
nix-update-script,
nlohmann_json, nlohmann_json,
nv-codec-headers-12, nv-codec-headers-12,
pkg-config, pkg-config,
@ -30,7 +29,6 @@
vulkan-headers, vulkan-headers,
vulkan-loader, vulkan-loader,
yasm, yasm,
simpleini,
zlib, zlib,
vulkan-memory-allocator, vulkan-memory-allocator,
zstd, zstd,

View File

@ -10,15 +10,14 @@ python3Packages.buildPythonApplication {
name = "${pname}-${version}"; name = "${pname}-${version}";
}; };
build-system = [ python3Packages.setuptools ]; build-system = [ python3Packages.setuptools ];
dependencies = dependencies = [
[ sqlite
sqlite ]
] ++ builtins.attrValues {
++ builtins.attrValues { inherit (python3Packages)
inherit (python3Packages) beautifulsoup4
beautifulsoup4 requests
requests matplotlib
matplotlib ;
; };
};
} }

View File

@ -44,35 +44,33 @@ stdenv.mkDerivation rec {
}) })
]; ];
nativeBuildInputs = nativeBuildInputs = [
[ pkg-config
pkg-config sphinx
sphinx scons
scons ]
] ++ lib.optionals withGui [
++ lib.optionals withGui [ makeWrapper
makeWrapper wrapGAppsHook3
wrapGAppsHook3 gobject-introspection
gobject-introspection ];
];
buildInputs = buildInputs = [
[ glib
glib json-glib
json-glib util-linux
util-linux ]
] ++ lib.optionals withGui [
++ lib.optionals withGui [ cairo
cairo gtksourceview3
gtksourceview3 pango
pango polkit
polkit python3
python3 python3.pkgs.pygobject3
python3.pkgs.pygobject3 ]
] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ elfutils
elfutils ];
];
prePatch = '' prePatch = ''
# remove sources of nondeterminism # remove sources of nondeterminism

View File

@ -44,29 +44,28 @@ stdenv.mkDerivation (finalAttrs: {
copyDesktopItems copyDesktopItems
]; ];
buildInputs = buildInputs = [
[ nss
nss cairo
cairo alsa-lib
alsa-lib at-spi2-core
at-spi2-core pango
pango libdrm
libdrm libxkbcommon
libxkbcommon gtk3
gtk3 vivaldi-ffmpeg-codecs
vivaldi-ffmpeg-codecs mesa
mesa libGL
libGL libglvnd
libglvnd ]
] ++ (with xorg; [
++ (with xorg; [ libX11
libX11 libXcomposite
libXcomposite libXdamage
libXdamage libXrandr
libXrandr libXfixes
libXfixes libXcursor
libXcursor ]);
]);
# Required to launch the application and proceed past the zygote_linux fork() process # Required to launch the application and proceed past the zygote_linux fork() process
# Fixes `Zygote could not fork` # Fixes `Zygote could not fork`

View File

@ -16,7 +16,7 @@
gtk4, gtk4,
}: }:
stdenv.mkDerivation (finaAttrs: rec { stdenv.mkDerivation (_finaAttrs: rec {
pname = "aviator"; pname = "aviator";
version = "0.6.0"; version = "0.6.0";
pyproject = true; pyproject = true;

View File

@ -49,23 +49,22 @@ stdenv.mkDerivation rec {
desktop-file-utils desktop-file-utils
]; ];
buildInputs = buildInputs = [
[ cairo
cairo gdk-pixbuf
gdk-pixbuf glib
glib gtk4
gtk4 libadwaita
libadwaita pango
pango ]
] ++ lib.optionals stdenv.isDarwin [
++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.CoreAudio
darwin.apple_sdk.frameworks.CoreAudio ]
] ++ lib.optionals stdenv.isLinux [
++ lib.optionals stdenv.isLinux [ alsa-lib
alsa-lib pulseaudio
pulseaudio pipewire
pipewire ];
];
meta = { meta = {
description = "Timer app for high intensity interval training"; description = "Timer app for high intensity interval training";

View File

@ -2,57 +2,48 @@
lib, lib,
python3, python3,
fetchFromGitHub, fetchFromGitHub,
callPackage,
}: }:
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "qbit-manage"; pname = "qbit-manage";
version = "4.3.0"; version = "4.6.3";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "StuffAnThings"; owner = "StuffAnThings";
repo = "qbit_manage"; repo = "qbit_manage";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Wj1s11PwHfH4hDGEn0jW/REO2gI7+AGyb2B/QKUhlyk="; hash = "sha256-cTxM3nHQQto7lpoNjShYcCbJCSYiwS9bKqw0DWAjw6A=";
}; };
postPatch = '' postPatch = ''
rm LICENSE rm LICENSE
''; '';
build-system = [ build-system = builtins.attrValues {
python3.pkgs.setuptools inherit (python3.pkgs)
python3.pkgs.wheel setuptools
]; wheel
;
};
dependencies = with python3.pkgs; [ propagatedBuildInputs = builtins.attrValues {
croniter inherit (python3.pkgs)
gitpython argon2-cffi
humanize bencode-py
pytimeparse2 croniter
bencode-py fastapi
requests gitpython
retrying humanize
ruamel-yaml pytimeparse2
schedule qbittorrent-api
(callPackage ./qbittorrent-api.nix { requests
inherit lib; retrying
inherit (python3.pkgs) ruamel-yaml
buildPythonPackage slowapi
fetchPypi uvicorn
;
# build-system };
setuptools
setuptools-scm
# dependencies
packaging
requests
urllib3
;
})
];
meta = { 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"; 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

@ -3,17 +3,16 @@
}: }:
pkgs.mkShell { pkgs.mkShell {
packages = packages = [
[ (pkgs.python3.withPackages (
(pkgs.python3.withPackages ( ps:
ps: builtins.attrValues {
builtins.attrValues { inherit (ps) setuptools pyyaml types-pyyaml;
inherit (ps) setuptools pyyaml types-pyyaml; }
} ))
)) ]
] ++ builtins.attrValues {
++ builtins.attrValues { inherit (pkgs) yt-dlp gallery-dl ffmpeg;
inherit (pkgs) yt-dlp gallery-dl ffmpeg; };
};
buildInputs = [ ]; buildInputs = [ ];
} }

View File

@ -1,12 +1,18 @@
let pkgs = import <nixpkgs> { }; let
in pkgs.haskellPackages.developPackage { pkgs = import <nixpkgs> { };
in
pkgs.haskellPackages.developPackage {
root = ./.; root = ./.;
modifier = drv: modifier =
pkgs.haskell.lib.addBuildTools drv (with pkgs.haskellPackages; [ drv:
cabal-install pkgs.haskell.lib.addBuildTools drv (
ghcid with pkgs.haskellPackages;
haskell-language-server [
fourmolu cabal-install
regex ghcid
]); haskell-language-server
fourmolu
regex
]
);
} }

View File

@ -1,18 +1,21 @@
{ pkgs ? import <nixpkgs> { } }: {
pkgs ? import <nixpkgs> { },
}:
with pkgs; with pkgs;
mkShell { mkShell {
packages = [ packages = [
geckodriver geckodriver
(python3.withPackages (ps: (python3.withPackages (
with ps; [ ps: with ps; [
tweepy tweepy
requests requests
beautifulsoup4 beautifulsoup4
selenium selenium
webdriver-manager webdriver-manager
])) ]
))
]; ];
buildInputs = [ ]; buildInputs = [ ];
} }