Merge staging-next into staging
This commit is contained in:
commit
ad17f02de7
|
@ -16183,6 +16183,12 @@
|
||||||
githubId = 39039420;
|
githubId = 39039420;
|
||||||
name = "Quinn Dougherty";
|
name = "Quinn Dougherty";
|
||||||
};
|
};
|
||||||
|
qusic = {
|
||||||
|
email = "qusicx@gmail.com";
|
||||||
|
github = "Qusic";
|
||||||
|
githubId = 2141853;
|
||||||
|
name = "Bang Lee";
|
||||||
|
};
|
||||||
qyliss = {
|
qyliss = {
|
||||||
email = "hi@alyssa.is";
|
email = "hi@alyssa.is";
|
||||||
github = "alyssais";
|
github = "alyssais";
|
||||||
|
|
|
@ -47,7 +47,7 @@ in
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
DynamicUser = true;
|
DynamicUser = true;
|
||||||
ExecStart = "${cfg.package}/bin/libreddit ${args}";
|
ExecStart = "${lib.getExe cfg.package} ${args}";
|
||||||
AmbientCapabilities = lib.mkIf (cfg.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
|
AmbientCapabilities = lib.mkIf (cfg.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
RestartSec = "2s";
|
RestartSec = "2s";
|
||||||
|
|
|
@ -53,9 +53,6 @@ appimageTools.wrapType2 rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
# trezor-suite fails to detect a connected hardware wallet
|
|
||||||
# ref: https://github.com/NixOS/nixpkgs/issues/281975
|
|
||||||
broken = true;
|
|
||||||
description = "Trezor Suite - Desktop App for managing crypto";
|
description = "Trezor Suite - Desktop App for managing crypto";
|
||||||
homepage = "https://suite.trezor.io";
|
homepage = "https://suite.trezor.io";
|
||||||
changelog = "https://github.com/trezor/trezor-suite/releases/tag/v${version}";
|
changelog = "https://github.com/trezor/trezor-suite/releases/tag/v${version}";
|
||||||
|
|
|
@ -38,14 +38,14 @@ let
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "mame";
|
pname = "mame";
|
||||||
version = "0.263";
|
version = "0.264";
|
||||||
srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
|
srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mamedev";
|
owner = "mamedev";
|
||||||
repo = "mame";
|
repo = "mame";
|
||||||
rev = "mame${srcVersion}";
|
rev = "mame${srcVersion}";
|
||||||
hash = "sha256-6MH4dMGOekiiq4yE68dIAiWWfvQvFcvqKtT/Z1SQ1aY=";
|
hash = "sha256-0UWMBKM//XWm8PFl60JvTLGaDBMVZFnVrbX4omy2F4I=";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "tools" ];
|
outputs = [ "out" "tools" ];
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "komikku";
|
pname = "komikku";
|
||||||
version = "1.38.1";
|
version = "1.39.0";
|
||||||
|
|
||||||
format = "other";
|
format = "other";
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
owner = "valos";
|
owner = "valos";
|
||||||
repo = "Komikku";
|
repo = "Komikku";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-eVNW8Iuhee9WBbiXP7ijvd0K44/IpwdrdiT4RkBNcxI=";
|
hash = "sha256-bAk+F81q0sPSgU8LkpniVJyKaQt6cxUaUzNSZ3f5v0Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -58,13 +58,13 @@ let
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bambu-studio";
|
pname = "bambu-studio";
|
||||||
version = "01.08.04.51";
|
version = "01.09.00.60";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bambulab";
|
owner = "bambulab";
|
||||||
repo = "BambuStudio";
|
repo = "BambuStudio";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-rqD1+3Q4ZUBgS57iCItuLX6ZMP7VQuedaJmgKB1szgs=";
|
hash = "sha256-LJK+hGhBXCewbNIBA8CeE01vMQ/n1mO+bervN/y45P0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
, libXdmcp
|
, libXdmcp
|
||||||
, conf ? null
|
, conf ? null
|
||||||
, patches ? [ ]
|
, patches ? [ ]
|
||||||
|
# update script dependencies
|
||||||
|
, gitUpdater
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -36,11 +38,13 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
installFlags = [ "PREFIX=$(out)" ];
|
installFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
|
passthru.updateScript = gitUpdater {};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://tools.suckless.org/slstatus/";
|
homepage = "https://tools.suckless.org/slstatus/";
|
||||||
description = "status monitor for window managers that use WM_NAME like dwm";
|
description = "status monitor for window managers that use WM_NAME like dwm";
|
||||||
license = licenses.isc;
|
license = licenses.isc;
|
||||||
maintainers = with maintainers; [ oxzi ];
|
maintainers = with maintainers; [ oxzi qusic ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
mainProgram = "slstatus";
|
mainProgram = "slstatus";
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,19 +6,19 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "coreth";
|
pname = "coreth";
|
||||||
version = "0.13.1";
|
version = "0.13.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ava-labs";
|
owner = "ava-labs";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-Fdc8U5dN31mfeucmYdi3R+EM5wPvm/i3O1ib3Y30Qng=";
|
hash = "sha256-G3Ovu/tF7gCeddmE91nht/yyqJJtgMyIi7YbTtUFyKo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# go mod vendor has a bug, see: golang/go#57529
|
# go mod vendor has a bug, see: golang/go#57529
|
||||||
proxyVendor = true;
|
proxyVendor = true;
|
||||||
|
|
||||||
vendorHash = "sha256-oJ/oz3PtkzEwZw93eoZV2hoD1uOWg2qdxgsvM+nX7mk=";
|
vendorHash = "sha256-IJFRtoDd0GO8mIx8mmGixaYK5JDQeSpUfk0MPPX6cX8=";
|
||||||
|
|
||||||
ldflags = [
|
ldflags = [
|
||||||
"-s"
|
"-s"
|
||||||
|
|
|
@ -16,13 +16,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "surelog";
|
pname = "surelog";
|
||||||
version = "1.80";
|
version = "1.82";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "chipsalliance";
|
owner = "chipsalliance";
|
||||||
repo = finalAttrs.pname;
|
repo = finalAttrs.pname;
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-jpt/5h0HnkiJowyVDoMSyiuL6/dokB4xg1sdyctHrDs=";
|
hash = "sha256-iW2mQPmKfbAWaiEURyVly5IjJ3YpXjVBkm/UbUuwb6k=";
|
||||||
fetchSubmodules = false; # we use all dependencies from nix
|
fetchSubmodules = false; # we use all dependencies from nix
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -10,13 +10,13 @@
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "UHDM";
|
pname = "UHDM";
|
||||||
# When updating this package, also consider updating science/logic/surelog
|
# When updating this package, also consider updating science/logic/surelog
|
||||||
version = "1.80";
|
version = "1.82";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "chipsalliance";
|
owner = "chipsalliance";
|
||||||
repo = finalAttrs.pname;
|
repo = finalAttrs.pname;
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-/aWiN+DPlIjI89u5kx6QoyrGD4DOJTHXxIZ0qHJNDls=";
|
hash = "sha256-sl83l6nLN/bluED5bnFShviD1Vv8hmRazxIcLUg/ego=";
|
||||||
fetchSubmodules = false; # we use all dependencies from nix
|
fetchSubmodules = false; # we use all dependencies from nix
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gurobi";
|
pname = "gurobi";
|
||||||
version = "9.5.1";
|
version = "11.0.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://packages.gurobi.com/${lib.versions.majorMinor version}/gurobi${version}_linux64.tar.gz";
|
url = "https://packages.gurobi.com/${lib.versions.majorMinor version}/gurobi${version}_linux64.tar.gz";
|
||||||
sha256 = "sha256-+oKFnTPwj7iuudpmsPvZFxjtVzxTT1capSNyyd64kdo=";
|
hash = "sha256-oZ7Oz22e4k6cVF3TDFxp/pE+RuU+3p/CatTWj1ci5ZY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = "gurobi${builtins.replaceStrings ["."] [""] version}/linux64";
|
sourceRoot = "gurobi${builtins.replaceStrings ["."] [""] version}/linux64";
|
||||||
|
@ -52,6 +52,6 @@ stdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
maintainers = with maintainers; [ ];
|
maintainers = with maintainers; [ wegank ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gitstatus";
|
pname = "gitstatus";
|
||||||
version = "1.5.4";
|
version = "1.5.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "romkatv";
|
owner = "romkatv";
|
||||||
repo = "gitstatus";
|
repo = "gitstatus";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-mVfB3HWjvk4X8bmLEC/U8SKBRytTh/gjjuReqzN5qTk=";
|
sha256 = "sha256-b+9bwJ87VV6rbOPobkwMkDXGH34STjYPlt8wCRR5tEc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ (callPackage ./romkatv_libgit2.nix { }) ];
|
buildInputs = [ (callPackage ./romkatv_libgit2.nix { }) ];
|
||||||
|
|
|
@ -62,13 +62,13 @@ in
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "obs-studio";
|
pname = "obs-studio";
|
||||||
version = "30.1.0";
|
version = "30.1.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "obsproject";
|
owner = "obsproject";
|
||||||
repo = finalAttrs.pname;
|
repo = finalAttrs.pname;
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
sha256 = "sha256-9rf3UGazEL5Obd6tqDwM5LOC6D1X6HNzs5sn5z1tOCA=";
|
sha256 = "sha256-1/8SsDAEBT8jEXKKQgA9JjUHM4/8UtcELUGFiHBB31g=";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
, youtube-dl
|
, youtube-dl
|
||||||
, glib
|
, glib
|
||||||
, ffmpeg
|
, ffmpeg
|
||||||
, aria
|
, aria2
|
||||||
}:
|
}:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
|
@ -40,7 +40,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
playsound
|
playsound
|
||||||
ffmpeg
|
ffmpeg
|
||||||
matplotlib
|
matplotlib
|
||||||
aria
|
aria2
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "dwm";
|
pname = "dwm";
|
||||||
version = "6.4";
|
version = "6.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://dl.suckless.org/dwm/${pname}-${version}.tar.gz";
|
url = "https://dl.suckless.org/dwm/${pname}-${version}.tar.gz";
|
||||||
sha256 = "sha256-+pwNaaWESFB2z8GICf1wXlwggNr7E9XnKaNkbKdwOm4=";
|
sha256 = "sha256-Ideev6ny+5MUGDbCZmy4H0eExp1k5/GyNS+blwuglyk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libX11 libXinerama libXft ];
|
buildInputs = [ libX11 libXinerama libXft ];
|
||||||
|
|
|
@ -1,97 +0,0 @@
|
||||||
{ lib
|
|
||||||
, stdenv
|
|
||||||
, fetchFromGitHub
|
|
||||||
, asciidoctor
|
|
||||||
, autoreconfHook
|
|
||||||
, cairo
|
|
||||||
, fontconfig
|
|
||||||
, freetype
|
|
||||||
, fribidi
|
|
||||||
, libSM
|
|
||||||
, libX11
|
|
||||||
, libXcursor
|
|
||||||
, libXft
|
|
||||||
, libXi
|
|
||||||
, libXinerama
|
|
||||||
, libXpm
|
|
||||||
, libXrandr
|
|
||||||
, libXt
|
|
||||||
, libevent
|
|
||||||
, libintl
|
|
||||||
, libpng
|
|
||||||
, librsvg
|
|
||||||
, libstroke
|
|
||||||
, libxslt
|
|
||||||
, perl
|
|
||||||
, pkg-config
|
|
||||||
, python3Packages
|
|
||||||
, readline
|
|
||||||
, sharutils
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "fvwm3";
|
|
||||||
version = "1.1.0";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "fvwmorg";
|
|
||||||
repo = "fvwm3";
|
|
||||||
rev = finalAttrs.version;
|
|
||||||
hash = "sha256-y1buTWO1vHzloh2e4EK1dkD0uQa7lIFUbNMkEe5x6Vo=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
autoreconfHook
|
|
||||||
asciidoctor
|
|
||||||
pkg-config
|
|
||||||
python3Packages.wrapPython
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
cairo
|
|
||||||
fontconfig
|
|
||||||
freetype
|
|
||||||
fribidi
|
|
||||||
libSM
|
|
||||||
libX11
|
|
||||||
libXcursor
|
|
||||||
libXft
|
|
||||||
libXi
|
|
||||||
libXinerama
|
|
||||||
libXpm
|
|
||||||
libXrandr
|
|
||||||
libXt
|
|
||||||
libevent
|
|
||||||
libintl
|
|
||||||
libpng
|
|
||||||
librsvg
|
|
||||||
libstroke
|
|
||||||
libxslt
|
|
||||||
perl
|
|
||||||
python3Packages.python
|
|
||||||
readline
|
|
||||||
sharutils
|
|
||||||
];
|
|
||||||
|
|
||||||
pythonPath = [
|
|
||||||
python3Packages.pyxdg
|
|
||||||
];
|
|
||||||
|
|
||||||
configureFlags = [
|
|
||||||
"--enable-mandoc"
|
|
||||||
];
|
|
||||||
|
|
||||||
postFixup = ''
|
|
||||||
wrapPythonPrograms
|
|
||||||
'';
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "http://fvwm.org";
|
|
||||||
description = "A multiple large virtual desktop window manager - Version 3";
|
|
||||||
license = licenses.gpl2Plus;
|
|
||||||
maintainers = with maintainers; [ AndersonTorres ];
|
|
||||||
inherit (libX11.meta) platforms;
|
|
||||||
};
|
|
||||||
})
|
|
|
@ -1,64 +0,0 @@
|
||||||
{ lib, stdenv, fetchzip
|
|
||||||
, pkg-config, bmake
|
|
||||||
, cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman
|
|
||||||
, libucl, wayland, wayland-protocols, wlroots, mesa
|
|
||||||
, features ? {
|
|
||||||
gammacontrol = true;
|
|
||||||
layershell = true;
|
|
||||||
screencopy = true;
|
|
||||||
xwayland = true;
|
|
||||||
}
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "hikari";
|
|
||||||
version = "2.3.3";
|
|
||||||
|
|
||||||
src = fetchzip {
|
|
||||||
url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
|
|
||||||
sha256 = "sha256-5Ug0U3ESC5F/gj7bahnLYkeY/weSCj0QASwdFuWwdMI=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config bmake ];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
cairo
|
|
||||||
glib
|
|
||||||
libevdev
|
|
||||||
libinput
|
|
||||||
libxkbcommon
|
|
||||||
linux-pam
|
|
||||||
pango
|
|
||||||
pixman
|
|
||||||
libucl
|
|
||||||
mesa # for libEGL
|
|
||||||
wayland
|
|
||||||
wayland-protocols
|
|
||||||
wlroots
|
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
makeFlags = with lib; [ "PREFIX=$(out)" ]
|
|
||||||
++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES"
|
|
||||||
++ mapAttrsToList (feat: enabled:
|
|
||||||
optionalString enabled "WITH_${toUpper feat}=YES"
|
|
||||||
) features;
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
# Can't suid in nix store
|
|
||||||
# Run hikari as root (it will drop privileges as early as possible), or create
|
|
||||||
# a systemd unit to give it the necessary permissions/capabilities.
|
|
||||||
substituteInPlace Makefile --replace '4555' '555'
|
|
||||||
|
|
||||||
sed -i 's@<drm_fourcc.h>@<libdrm/drm_fourcc.h>@' src/*.c
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux";
|
|
||||||
homepage = "https://hikari.acmelabs.space";
|
|
||||||
license = licenses.bsd2;
|
|
||||||
platforms = platforms.linux ++ platforms.freebsd;
|
|
||||||
maintainers = with maintainers; [ jpotier ];
|
|
||||||
};
|
|
||||||
}
|
|
38
pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch
Normal file
38
pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
diff --git a/src/window.py b/src/window.py
|
||||||
|
index adc6d6d..1cb6bec 100644
|
||||||
|
--- a/src/window.py
|
||||||
|
+++ b/src/window.py
|
||||||
|
@@ -34,6 +34,15 @@ import unicodedata
|
||||||
|
import emoji
|
||||||
|
import os
|
||||||
|
|
||||||
|
+def get_data_dir():
|
||||||
|
+ xdg_data_home = os.environ.get('XDG_DATA_HOME')
|
||||||
|
+ if xdg_data_home and xdg_data_home.strip():
|
||||||
|
+ data_dir = os.path.join(xdg_data_home, 'ascii-draw', 'data')
|
||||||
|
+ else:
|
||||||
|
+ home = os.path.expanduser("~")
|
||||||
|
+ data_dir = os.path.join(home, '.local', 'share', 'ascii-draw', 'data')
|
||||||
|
+ return data_dir
|
||||||
|
+
|
||||||
|
@Gtk.Template(resource_path='/io/github/nokse22/asciidraw/ui/window.ui')
|
||||||
|
class AsciiDrawWindow(Adw.ApplicationWindow):
|
||||||
|
__gtype_name__ = 'AsciiDrawWindow'
|
||||||
|
@@ -266,7 +275,7 @@ class AsciiDrawWindow(Adw.ApplicationWindow):
|
||||||
|
|
||||||
|
self.palettes = []
|
||||||
|
|
||||||
|
- directory_path = "/var/data/palettes"
|
||||||
|
+ directory_path = f"{get_data_dir()}/palettes"
|
||||||
|
os.makedirs(directory_path, exist_ok=True)
|
||||||
|
|
||||||
|
for filename in os.listdir(directory_path):
|
||||||
|
@@ -316,7 +325,7 @@ class AsciiDrawWindow(Adw.ApplicationWindow):
|
||||||
|
self.char_carousel_go_next.set_sensitive(True)
|
||||||
|
|
||||||
|
def save_new_palette(self, palette):
|
||||||
|
- with open(f"/var/data/palettes/{palette.name}.txt", 'w') as file:
|
||||||
|
+ with open(f"{get_data_dir()}/palettes/{palette.name}.txt", 'w') as file:
|
||||||
|
file.write(palette.chars)
|
||||||
|
|
||||||
|
@Gtk.Template.Callback("char_pages_go_back")
|
63
pkgs/by-name/as/ascii-draw/package.nix
Normal file
63
pkgs/by-name/as/ascii-draw/package.nix
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
{ lib
|
||||||
|
, python3Packages
|
||||||
|
, fetchFromGitHub
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
, gobject-introspection
|
||||||
|
, wrapGAppsHook4
|
||||||
|
, desktop-file-utils
|
||||||
|
, libadwaita
|
||||||
|
}:
|
||||||
|
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
pname = "ascii-draw";
|
||||||
|
version = "0.3.0";
|
||||||
|
pyproject = false;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Nokse22";
|
||||||
|
repo = "ascii-draw";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-vI+j8OuQ3b6La0+7wWeoUtBal24dazlN/T0Bng5TgMo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Temporary fix for autosaving to flatpak directory
|
||||||
|
# https://github.com/Nokse22/ascii-draw/issues/31
|
||||||
|
patches = [ ./fix_palette_data_dir.patch ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
gobject-introspection
|
||||||
|
wrapGAppsHook4
|
||||||
|
desktop-file-utils
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
libadwaita
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
pygobject3
|
||||||
|
pyfiglet
|
||||||
|
emoji
|
||||||
|
];
|
||||||
|
|
||||||
|
dontWrapGApps = true;
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "An app to draw diagrams or anything using only ASCII";
|
||||||
|
homepage = "https://github.com/Nokse22/ascii-draw";
|
||||||
|
license = lib.licenses.gpl3Plus;
|
||||||
|
mainProgram = "ascii-draw";
|
||||||
|
maintainers = with lib.maintainers; [ aleksana ];
|
||||||
|
# gnulib bindtextdomain is missing on various other unix platforms
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
120
pkgs/by-name/fv/fvwm3/package.nix
Normal file
120
pkgs/by-name/fv/fvwm3/package.nix
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
{ lib
|
||||||
|
, asciidoctor
|
||||||
|
, autoreconfHook
|
||||||
|
, cairo
|
||||||
|
, fetchFromGitHub
|
||||||
|
, fontconfig
|
||||||
|
, freetype
|
||||||
|
, fribidi
|
||||||
|
, libSM
|
||||||
|
, libX11
|
||||||
|
, libXcursor
|
||||||
|
, libXft
|
||||||
|
, libXi
|
||||||
|
, libXinerama
|
||||||
|
, libXpm
|
||||||
|
, libXrandr
|
||||||
|
, libXt
|
||||||
|
, libevent
|
||||||
|
, libintl
|
||||||
|
, libpng
|
||||||
|
, librsvg
|
||||||
|
, libstroke
|
||||||
|
, libxslt
|
||||||
|
, perl
|
||||||
|
, pkg-config
|
||||||
|
, python3Packages
|
||||||
|
, readline
|
||||||
|
, sharutils
|
||||||
|
, stdenv
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "fvwm3";
|
||||||
|
version = "1.1.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "fvwmorg";
|
||||||
|
repo = "fvwm3";
|
||||||
|
rev = finalAttrs.version;
|
||||||
|
hash = "sha256-y1buTWO1vHzloh2e4EK1dkD0uQa7lIFUbNMkEe5x6Vo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoreconfHook
|
||||||
|
asciidoctor
|
||||||
|
pkg-config
|
||||||
|
python3Packages.wrapPython
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
cairo
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
fribidi
|
||||||
|
libSM
|
||||||
|
libX11
|
||||||
|
libXcursor
|
||||||
|
libXft
|
||||||
|
libXi
|
||||||
|
libXinerama
|
||||||
|
libXpm
|
||||||
|
libXrandr
|
||||||
|
libXt
|
||||||
|
libevent
|
||||||
|
libintl
|
||||||
|
libpng
|
||||||
|
librsvg
|
||||||
|
libstroke
|
||||||
|
libxslt
|
||||||
|
perl
|
||||||
|
python3Packages.python
|
||||||
|
readline
|
||||||
|
sharutils
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonPath = [
|
||||||
|
python3Packages.pyxdg
|
||||||
|
];
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
(lib.enableFeature true "mandoc")
|
||||||
|
];
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
wrapPythonPrograms
|
||||||
|
'';
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "http://fvwm.org";
|
||||||
|
description = "A multiple large virtual desktop window manager - Version 3";
|
||||||
|
longDescription = ''
|
||||||
|
Fvwm is a virtual window manager for the X windows system. It was
|
||||||
|
originally a feeble fork of TWM by Robert Nation in 1993 (fvwm history),
|
||||||
|
and has evolved into the fantastic, fabulous, famous, flexible, and so on,
|
||||||
|
window manager we have today.
|
||||||
|
|
||||||
|
Fvwm is a ICCCM/EWMH compliant and highly configurable floating window
|
||||||
|
manager built primarily using Xlib. Fvwm is configured using a
|
||||||
|
configuration file, which is used to configure most aspects of the window
|
||||||
|
manager including window looks, key bindings, menus, window behavior,
|
||||||
|
additional modules, and more. There is a default configuration file that
|
||||||
|
can be used as a starting point for writing one's own configuration file.
|
||||||
|
|
||||||
|
Fvwm is a light weight window manager and can be configured to be anything
|
||||||
|
from a small sleek window manager to a full featured desktop
|
||||||
|
environment. To get the most out of fvwm, one should be willing to read
|
||||||
|
the documents, and take the time to write a custom configuration file that
|
||||||
|
suites their needs. The manual pages and the fvwm wiki can be used to help
|
||||||
|
learn how to configure fvwm.
|
||||||
|
'';
|
||||||
|
changelog = "https://github.com/fvwmorg/fvwm3/blob/${finalAttrs.src.rev}/CHANGELOG.md";
|
||||||
|
license = lib.licenses.gpl2Plus;
|
||||||
|
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||||
|
inherit (libX11.meta) platforms;
|
||||||
|
};
|
||||||
|
})
|
|
@ -6,16 +6,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "mihomo";
|
pname = "mihomo";
|
||||||
version = "1.18.1";
|
version = "1.18.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "MetaCubeX";
|
owner = "MetaCubeX";
|
||||||
repo = "mihomo";
|
repo = "mihomo";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-ezOkDrpytZQdc+Txe4eUyuWY6oipn9jIrmu7aO8lNlQ=";
|
hash = "sha256-/4Tlv6LLT1+CHdjJ1ZlYaZj44TX5y6FEHdKk+OA1vBU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-tvPR5kAta4MlMTwjfxwVOacRr2nVpfalbN08mfxml64=";
|
vendorHash = "sha256-k4xB/jO78VGD+n9HtuoWXoXB+kZCEyPKJTTwj32nGIw=";
|
||||||
|
|
||||||
excludedPackages = [ "./test" ];
|
excludedPackages = [ "./test" ];
|
||||||
|
|
||||||
|
|
46
pkgs/by-name/qu/quarkus/package.nix
Normal file
46
pkgs/by-name/qu/quarkus/package.nix
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchurl
|
||||||
|
, makeWrapper
|
||||||
|
, jdk
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "quarkus-cli";
|
||||||
|
version = "3.8.3";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
|
||||||
|
hash = "sha256-+HUVnd21q2xln58UR1QS0UFCjlY0sbf79ZkvWbRCH7Q=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/{lib,bin}
|
||||||
|
cp ./lib/quarkus-cli-${finalAttrs.version}-runner.jar $out/lib
|
||||||
|
|
||||||
|
makeWrapper ${jdk}/bin/java $out/bin/quarkus \
|
||||||
|
--add-flags "-classpath $out/lib/quarkus-cli-${finalAttrs.version}-runner.jar" \
|
||||||
|
--add-flags "-Dapp.name=quarkus" \
|
||||||
|
--add-flags "-Dapp-pid='\$\$'" \
|
||||||
|
--add-flags "-Dapp.repo=$out/lib" \
|
||||||
|
--add-flags "-Dapp.home=$out" \
|
||||||
|
--add-flags "-Dbasedir=$out" \
|
||||||
|
--add-flags "io.quarkus.cli.Main"
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Quarkus is a Kubernetes-native Java framework tailored for GraalVM and HotSpot, crafted from best-of-breed Java libraries and standards";
|
||||||
|
homepage = "https://quarkus.io";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = [ maintainers.vinetos ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
mainProgram = "quarkus";
|
||||||
|
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
||||||
|
};
|
||||||
|
})
|
46
pkgs/by-name/ra/rabbit/package.nix
Normal file
46
pkgs/by-name/ra/rabbit/package.nix
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{ lib
|
||||||
|
, python3
|
||||||
|
, fetchFromGitHub
|
||||||
|
}:
|
||||||
|
|
||||||
|
python3.pkgs.buildPythonApplication rec {
|
||||||
|
pname = "rabbit";
|
||||||
|
version = "1.0.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "natarajan-chidambaram";
|
||||||
|
repo = "RABBIT";
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-IRG3OcWutkZA4oegeEIDyaIadl3dLaMneqOt/H2/Il4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
pythonRelaxDeps = true;
|
||||||
|
|
||||||
|
build-system = [
|
||||||
|
python3.pkgs.setuptools
|
||||||
|
python3.pkgs.wheel
|
||||||
|
python3.pkgs.pythonRelaxDepsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
dependencies = with python3.pkgs; [
|
||||||
|
numpy
|
||||||
|
pandas
|
||||||
|
pip
|
||||||
|
requests
|
||||||
|
scikit-learn
|
||||||
|
scipy
|
||||||
|
tqdm
|
||||||
|
xgboost
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "rabbit" ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A tool for identifying bot accounts based on their recent GitHub event history";
|
||||||
|
homepage = "https://github.com/natarajan-chidambaram/RABBIT";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
mainProgram = "rabbit";
|
||||||
|
maintainers = with lib.maintainers; [ drupol ];
|
||||||
|
};
|
||||||
|
}
|
58
pkgs/by-name/ro/rockcraft/package.nix
Normal file
58
pkgs/by-name/ro/rockcraft/package.nix
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
{ lib
|
||||||
|
, python3Packages
|
||||||
|
, fetchFromGitHub
|
||||||
|
, dpkg
|
||||||
|
, nix-update-script
|
||||||
|
, python3
|
||||||
|
}:
|
||||||
|
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
pname = "rockcraft";
|
||||||
|
version = "1.2.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "canonical";
|
||||||
|
repo = "rockcraft";
|
||||||
|
rev = "refs/tags/${version}";
|
||||||
|
hash = "sha256-f6qLvk5cebHjZx51nJYYAwILGCTyj6FKlb3HGt6iz4M=";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace rockcraft/__init__.py \
|
||||||
|
--replace-fail "dev" "${version}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
craft-application-1
|
||||||
|
craft-archives
|
||||||
|
spdx-lookup
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = with python3Packages; [
|
||||||
|
pytest-check
|
||||||
|
pytest-mock
|
||||||
|
pytest-subprocess
|
||||||
|
pytestCheckHook
|
||||||
|
] ++ [
|
||||||
|
dpkg
|
||||||
|
];
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
mkdir -p check-phase
|
||||||
|
export HOME="$(pwd)/check-phase"
|
||||||
|
'';
|
||||||
|
|
||||||
|
disabledTests = [ "test_expand_extensions" ];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
mainProgram = "rockcraft";
|
||||||
|
description = "Create OCI images using the language from Snapcraft and Charmcraft";
|
||||||
|
homepage = "https://github.com/canonical/rockcraft";
|
||||||
|
changelog = "https://github.com/canonical/rockcraft/releases/tag/${version}";
|
||||||
|
license = lib.licenses.gpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,7 +1,26 @@
|
||||||
{ lib, stdenv, requireFile, autoPatchelfHook, fetchurl, makeDesktopItem, copyDesktopItems, imagemagick
|
{ lib, stdenv, requireFile, autoPatchelfHook, undmg, fetchurl, makeDesktopItem, copyDesktopItems, imagemagick
|
||||||
, runCommand, libgcc, wxGTK32, innoextract, libGL, SDL2, openal, libmpg123, libxmp }:
|
, runCommand, libgcc, wxGTK32, innoextract, libGL, SDL2, openal, libmpg123, libxmp }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
version = "469d";
|
||||||
|
srcs = {
|
||||||
|
x86_64-linux = fetchurl {
|
||||||
|
url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-Linux-amd64.tar.bz2";
|
||||||
|
hash = "sha256-aoGzWuakwN/OL4+xUq8WEpd2c1rrNN/DkffI2vDVGjs=";
|
||||||
|
};
|
||||||
|
aarch64-linux = fetchurl {
|
||||||
|
url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-Linux-arm64.tar.bz2";
|
||||||
|
hash = "sha256-2e9lHB12jLTR8UYofLWL7gg0qb2IqFk6eND3T5VqAx0=";
|
||||||
|
};
|
||||||
|
i686-linux = fetchurl {
|
||||||
|
url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-Linux-x86.tar.bz2";
|
||||||
|
hash = "sha256-1JsFKuAAj/LtYvOUPFu0Hn+zvY3riW0YlJbLd4UnaKU=";
|
||||||
|
};
|
||||||
|
x86_64-darwin = fetchurl {
|
||||||
|
url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-macOS-Sonoma.dmg";
|
||||||
|
hash = "sha256-TbhJbOH4E5WOb6XR9dmqLkXziK3/CzhNjd1ypBkkmvw=";
|
||||||
|
};
|
||||||
|
};
|
||||||
unpackGog = runCommand "ut1999-gog" {
|
unpackGog = runCommand "ut1999-gog" {
|
||||||
src = requireFile rec {
|
src = requireFile rec {
|
||||||
name = "setup_ut_goty_2.0.0.5.exe";
|
name = "setup_ut_goty_2.0.0.5.exe";
|
||||||
|
@ -15,20 +34,23 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ innoextract ];
|
nativeBuildInputs = [ innoextract ];
|
||||||
} ''
|
} ''
|
||||||
innoextract --extract --exclude-temp "$src"
|
innoextract --extract --exclude-temp "$src"
|
||||||
mkdir $out
|
mkdir $out
|
||||||
cp -r app/* $out
|
cp -r app/* $out
|
||||||
'';
|
'';
|
||||||
in stdenv.mkDerivation rec {
|
systemDir = {
|
||||||
|
x86_64-linux = "System64";
|
||||||
|
aarch64-linux = "SystemARM64";
|
||||||
|
x86_64-darwin = "System";
|
||||||
|
i686-linux = "System";
|
||||||
|
}.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
|
||||||
|
in stdenv.mkDerivation {
|
||||||
name = "ut1999";
|
name = "ut1999";
|
||||||
version = "469d";
|
inherit version;
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
src = fetchurl {
|
src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||||
url = "https://github.com/OldUnreal/UnrealTournamentPatches/releases/download/v${version}/OldUnreal-UTPatch${version}-Linux-amd64.tar.bz2";
|
|
||||||
hash = "sha256-aoGzWuakwN/OL4+xUq8WEpd2c1rrNN/DkffI2vDVGjs=";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libgcc
|
libgcc
|
||||||
|
@ -41,41 +63,50 @@ in stdenv.mkDerivation rec {
|
||||||
stdenv.cc.cc
|
stdenv.cc.cc
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = lib.optionals stdenv.isLinux [
|
||||||
copyDesktopItems
|
copyDesktopItems
|
||||||
autoPatchelfHook
|
autoPatchelfHook
|
||||||
imagemagick
|
imagemagick
|
||||||
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
|
undmg
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = let
|
||||||
|
outPrefix = if stdenv.isDarwin then "$out/UnrealTournament.app/Contents/MacOS" else "$out";
|
||||||
|
in ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp -r ./* $out
|
cp -r ${if stdenv.isDarwin then "UnrealTournament.app" else "./*"} $out
|
||||||
|
|
||||||
# Remove bundled libraries to use native versions instead
|
|
||||||
rm $out/System64/libmpg123.so* \
|
|
||||||
$out/System64/libopenal.so* \
|
|
||||||
$out/System64/libSDL2* \
|
|
||||||
$out/System64/libxmp.so*
|
|
||||||
|
|
||||||
chmod -R 755 $out
|
chmod -R 755 $out
|
||||||
|
cd ${outPrefix}
|
||||||
|
|
||||||
ln -s ${unpackGog}/Music $out
|
rm -rf ./{Music,Sounds,Maps}
|
||||||
ln -s ${unpackGog}/Sounds $out
|
ln -s ${unpackGog}/{Music,Sounds,Maps} .
|
||||||
cp -n ${unpackGog}/Textures/* $out/Textures || true
|
|
||||||
ln -s ${unpackGog}/Maps $out
|
|
||||||
cp -n ${unpackGog}/System/*.{u,int} $out/System || true
|
|
||||||
|
|
||||||
ln -s "$out/System64/ut-bin" "$out/bin/ut1999"
|
cp -n ${unpackGog}/Textures/* ./Textures || true
|
||||||
ln -s "$out/System64/ucc-bin" "$out/bin/ut1999-ucc"
|
cp -n ${unpackGog}/System/*.{u,int} ./System || true
|
||||||
|
'' + lib.optionalString (stdenv.isLinux) ''
|
||||||
|
ln -s "$out/${systemDir}/ut-bin" "$out/bin/ut1999"
|
||||||
|
ln -s "$out/${systemDir}/ucc-bin" "$out/bin/ut1999-ucc"
|
||||||
|
|
||||||
convert "${unpackGog}/gfw_high.ico" "ut1999.png"
|
convert "${unpackGog}/gfw_high.ico" "ut1999.png"
|
||||||
install -D ut1999-5.png "$out/share/icons/hicolor/256x256/apps/ut1999.png"
|
install -D ut1999-5.png "$out/share/icons/hicolor/256x256/apps/ut1999.png"
|
||||||
|
|
||||||
|
# Remove bundled libraries to use native versions instead
|
||||||
|
rm $out/${systemDir}/libmpg123.so* \
|
||||||
|
$out/${systemDir}/libopenal.so* \
|
||||||
|
$out/${systemDir}/libSDL2* \
|
||||||
|
$out/${systemDir}/libxmp.so*
|
||||||
|
'' + ''
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
# .so files in the SystemARM64 directory are not loaded properly on aarch64-linux
|
||||||
|
appendRunpaths = lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
|
||||||
|
"${placeholder "out"}/${systemDir}"
|
||||||
|
];
|
||||||
|
|
||||||
desktopItems = [
|
desktopItems = [
|
||||||
(makeDesktopItem {
|
(makeDesktopItem {
|
||||||
name = "ut1999";
|
name = "ut1999";
|
||||||
|
@ -90,9 +121,9 @@ in stdenv.mkDerivation rec {
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Unreal Tournament GOTY (1999) with the OldUnreal patch.";
|
description = "Unreal Tournament GOTY (1999) with the OldUnreal patch.";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = attrNames srcs;
|
||||||
maintainers = with maintainers; [ eliandoran ];
|
maintainers = with maintainers; [ eliandoran ];
|
||||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||||
mainProgram = "ut1999";
|
mainProgram = "ut1999";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, undmg
|
, _7zz
|
||||||
, dpkg
|
, dpkg
|
||||||
, autoPatchelfHook
|
, autoPatchelfHook
|
||||||
, wrapGAppsHook
|
, wrapGAppsHook
|
||||||
|
@ -23,24 +23,26 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
pname = "yesplaymusic";
|
pname = "yesplaymusic";
|
||||||
version = "0.4.7";
|
version = "0.4.8-2";
|
||||||
|
|
||||||
srcs = {
|
srcs = let
|
||||||
|
version' = lib.head (lib.splitString "-" version);
|
||||||
|
in {
|
||||||
x86_64-linux = fetchurl {
|
x86_64-linux = fetchurl {
|
||||||
url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/yesplaymusic_${version}_amd64.deb";
|
url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/yesplaymusic_${version'}_amd64.deb";
|
||||||
hash = "sha256-nnnHE2OgIqoz3dC+G0219FVBhvnWivLW1BX6+NYo6Ng=";
|
hash = "sha256-iTWi+tZGUQU7J1mcmMdlWXSKpYGy4mMAeq9CN9fhnZ8=";
|
||||||
};
|
};
|
||||||
aarch64-linux = fetchurl {
|
aarch64-linux = fetchurl {
|
||||||
url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/yesplaymusic_${version}_arm64.deb";
|
url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/yesplaymusic_${version'}_arm64.deb";
|
||||||
hash = "sha256-+rrhY5iDDt/nYs0Vz5/Ef0sgpsdBKMtb1aVfCZLgRgg=";
|
hash = "sha256-PP0apybSORqleOBogldgIV1tYZqao8kZ474muAEDpd0";
|
||||||
};
|
};
|
||||||
x86_64-darwin = fetchurl {
|
x86_64-darwin = fetchurl {
|
||||||
url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/YesPlayMusic-mac-${version}-x64.dmg";
|
url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/YesPlayMusic-mac-${version'}-x64.dmg";
|
||||||
hash = "sha256-z8CASZRWKlj1g3mhxTMMeR4klTvQ2ReSrL7Rt18qQbM=";
|
hash = "sha256-UHnEdoXT/vArSRKXPlfDYUUUMDyF2mnDsmJEjACW2vo=";
|
||||||
};
|
};
|
||||||
aarch64-darwin = fetchurl {
|
aarch64-darwin = fetchurl {
|
||||||
url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/YesPlayMusic-mac-${version}-arm64.dmg";
|
url = "https://github.com/qier222/YesPlayMusic/releases/download/v${version}/YesPlayMusic-mac-${version'}-arm64.dmg";
|
||||||
hash = "sha256-McYLczudKG4tRNIw/Ws4rht0n4tiKA2M99yKtJbdlY8=";
|
hash = "sha256-FaeumNmkPQYj9Ae2Xw/eKUuezR4bEdni8li+NRU9i1k=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||||
|
@ -76,13 +78,19 @@ if stdenv.isDarwin
|
||||||
then stdenv.mkDerivation {
|
then stdenv.mkDerivation {
|
||||||
inherit pname version src meta;
|
inherit pname version src meta;
|
||||||
|
|
||||||
nativeBuildInputs = [ undmg ];
|
nativeBuildInputs = [ _7zz makeWrapper ];
|
||||||
|
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/Applications
|
mkdir -p $out/Applications
|
||||||
cp -r *.app $out/Applications
|
cp -r *.app $out/Applications
|
||||||
|
|
||||||
|
makeWrapper $out/Applications/YesPlayMusic.app/Contents/MacOS/YesPlayMusic $out/bin/yesplaymusic
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
else stdenv.mkDerivation {
|
else stdenv.mkDerivation {
|
|
@ -13,7 +13,7 @@
|
||||||
, tcl
|
, tcl
|
||||||
, tk
|
, tk
|
||||||
, xorg
|
, xorg
|
||||||
, yices
|
, yices # bsc uses a patched version of yices
|
||||||
, zlib
|
, zlib
|
||||||
, ghc
|
, ghc
|
||||||
, gmp-static
|
, gmp-static
|
||||||
|
@ -28,13 +28,13 @@ let
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "bluespec";
|
pname = "bluespec";
|
||||||
version = "2023.01";
|
version = "2024.01";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "B-Lang-org";
|
owner = "B-Lang-org";
|
||||||
repo = "bsc";
|
repo = "bsc";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-kFHQtRaQmZiHo+IQ+mwbW23i3kbdAh/XH0OE7P/ibd0=";
|
sha256 = "sha256-yqmtydv94p7qhps0t4EdPaSZNh/9XCuUwOzLqz0gjxE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
yices-src = fetchurl {
|
yices-src = fetchurl {
|
||||||
|
@ -46,7 +46,8 @@ in stdenv.mkDerivation rec {
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
# https://github.com/B-Lang-org/bsc/pull/278
|
# https://github.com/B-Lang-org/bsc/pull/278 is still applicable, but will probably not be applied as such
|
||||||
|
# there is work ongoing: https://github.com/B-Lang-org/bsc/issues/595 https://github.com/B-Lang-org/bsc/pull/600
|
||||||
patches = [ ./libstp_stub_makefile.patch ];
|
patches = [ ./libstp_stub_makefile.patch ];
|
||||||
|
|
||||||
postUnpack = ''
|
postUnpack = ''
|
||||||
|
@ -67,6 +68,10 @@ in stdenv.mkDerivation rec {
|
||||||
|
|
||||||
# allow running bsc to bootstrap
|
# allow running bsc to bootstrap
|
||||||
export LD_LIBRARY_PATH=$PWD/inst/lib/SAT
|
export LD_LIBRARY_PATH=$PWD/inst/lib/SAT
|
||||||
|
|
||||||
|
# use more cores for GHC building, 44 causes heap overflows in ghc, and
|
||||||
|
# there is not much speedup after 8..
|
||||||
|
if [[ $NIX_BUILD_CORES -gt 8 ]] ; then export GHCJOBS=8; else export GHCJOBS=$NIX_BUILD_CORES; fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = yices.buildInputs ++ [
|
buildInputs = yices.buildInputs ++ [
|
||||||
|
@ -96,7 +101,7 @@ in stdenv.mkDerivation rec {
|
||||||
"NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices-src instead of the subrepo)
|
"NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices-src instead of the subrepo)
|
||||||
"NOGIT=1" # https://github.com/B-Lang-org/bsc/issues/12
|
"NOGIT=1" # https://github.com/B-Lang-org/bsc/issues/12
|
||||||
"LDCONFIG=ldconfig" # https://github.com/B-Lang-org/bsc/pull/43
|
"LDCONFIG=ldconfig" # https://github.com/B-Lang-org/bsc/pull/43
|
||||||
"STP_STUB=1"
|
"STP_STUB=1" # uses yices as a SMT solver and stub out STP
|
||||||
];
|
];
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
@ -106,7 +111,7 @@ in stdenv.mkDerivation rec {
|
||||||
verilog
|
verilog
|
||||||
];
|
];
|
||||||
|
|
||||||
checkTarget = "check-smoke";
|
checkTarget = "check-smoke"; # this is the shortest check but "check-suite" tests much more
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
|
|
|
@ -25,13 +25,13 @@ let
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libucl";
|
pname = "libucl";
|
||||||
version = "0.9.0";
|
version = "0.9.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "vstakhov";
|
owner = "vstakhov";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-uMkILLG2SC+Q+w7jb0PMsaTET2z1V9Ar0lQhXS1K2+g=";
|
sha256 = "sha256-udgsgo6bT7WnUYnAzqHxOtdDg6av3XplptS8H5ukxjo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config autoreconfHook ];
|
nativeBuildInputs = [ pkg-config autoreconfHook ];
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchFromGitLab
|
, fetchFromGitLab
|
||||||
, fetchpatch
|
|
||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
, pkg-config
|
, pkg-config
|
||||||
|
@ -113,14 +112,6 @@ let
|
||||||
|
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
wlroots_0_15 = generic {
|
|
||||||
version = "0.15.1";
|
|
||||||
hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
|
|
||||||
extraBuildInputs = [
|
|
||||||
ffmpeg_4
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
wlroots_0_16 = generic {
|
wlroots_0_16 = generic {
|
||||||
version = "0.16.2";
|
version = "0.16.2";
|
||||||
hash = "sha256-JeDDYinio14BOl6CbzAPnJDOnrk4vgGNMN++rcy2ItQ=";
|
hash = "sha256-JeDDYinio14BOl6CbzAPnJDOnrk4vgGNMN++rcy2ItQ=";
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, nix-update-script
|
||||||
|
, craft-cli
|
||||||
|
, craft-parts
|
||||||
|
, craft-providers
|
||||||
|
, pydantic-yaml-0
|
||||||
|
, pyyaml
|
||||||
|
, setuptools
|
||||||
|
, setuptools-scm
|
||||||
|
, pytestCheckHook
|
||||||
|
, pytest-check
|
||||||
|
, pytest-mock
|
||||||
|
, hypothesis
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "craft-application-1";
|
||||||
|
version = "1.2.1";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "canonical";
|
||||||
|
repo = "craft-application";
|
||||||
|
rev = "refs/tags/${version}";
|
||||||
|
hash = "sha256-CXZEWVoE66dlQJp4G8tinufjyaDJaH1Muxz/qd/81oA=";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace craft_application/__init__.py \
|
||||||
|
--replace-fail "dev" "${version}"
|
||||||
|
|
||||||
|
substituteInPlace pyproject.toml \
|
||||||
|
--replace-fail "setuptools==67.7.2" "setuptools"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
setuptools-scm
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
craft-cli
|
||||||
|
craft-parts
|
||||||
|
craft-providers
|
||||||
|
pydantic-yaml-0
|
||||||
|
pyyaml
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"craft_application"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
hypothesis
|
||||||
|
pytest-check
|
||||||
|
pytest-mock
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
export HOME=$(mktemp -d)
|
||||||
|
'';
|
||||||
|
|
||||||
|
pytestFlagsArray = [ "tests/unit" ];
|
||||||
|
|
||||||
|
disabledTests = [
|
||||||
|
"test_to_yaml_file"
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "The basis for Canonical craft applications";
|
||||||
|
homepage = "https://github.com/canonical/craft-application";
|
||||||
|
changelog = "https://github.com/canonical/craft-application/releases/tag/${version}";
|
||||||
|
license = lib.licenses.lgpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
74
pkgs/development/python-modules/craft-archives/default.nix
Normal file
74
pkgs/development/python-modules/craft-archives/default.nix
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, nix-update-script
|
||||||
|
, launchpadlib
|
||||||
|
, lazr-restfulclient
|
||||||
|
, overrides
|
||||||
|
, pydantic_1
|
||||||
|
, setuptools
|
||||||
|
, setuptools-scm
|
||||||
|
, tabulate
|
||||||
|
, pytest-check
|
||||||
|
, pytest-mock
|
||||||
|
, pytestCheckHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "craft-archives";
|
||||||
|
version = "1.1.3";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "canonical";
|
||||||
|
repo = "craft-archives";
|
||||||
|
rev = "refs/tags/${version}";
|
||||||
|
hash = "sha256-ZUqMjbOsHwzZyn0NsSTlZTljzagYEirWKEGatXVL43g=";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace craft_archives/__init__.py \
|
||||||
|
--replace-fail "dev" "${version}"
|
||||||
|
|
||||||
|
substituteInPlace pyproject.toml \
|
||||||
|
--replace-fail "setuptools==67.7.2" "setuptools"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
setuptools-scm
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
launchpadlib
|
||||||
|
lazr-restfulclient
|
||||||
|
overrides
|
||||||
|
pydantic_1
|
||||||
|
tabulate
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"craft_archives"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
pytest-check
|
||||||
|
pytest-mock
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
pytestFlagsArray = [ "tests/unit" ];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A library for handling archives/repositories in Canonical craft applications";
|
||||||
|
homepage = "https://github.com/canonical/craft-archives";
|
||||||
|
changelog = "https://github.com/canonical/craft-archives/releases/tag/${version}";
|
||||||
|
license = lib.licenses.lgpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
69
pkgs/development/python-modules/craft-cli/default.nix
Normal file
69
pkgs/development/python-modules/craft-cli/default.nix
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, nix-update-script
|
||||||
|
, platformdirs
|
||||||
|
, pydantic_1
|
||||||
|
, pyyaml
|
||||||
|
, setuptools
|
||||||
|
, setuptools-scm
|
||||||
|
, pytest-check
|
||||||
|
, pytest-mock
|
||||||
|
, pytestCheckHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "craft-cli";
|
||||||
|
version = "2.5.1";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "canonical";
|
||||||
|
repo = "craft-cli";
|
||||||
|
rev = "refs/tags/${version}";
|
||||||
|
hash = "sha256-yEKF04OPu4paRrghAP78r9hu6cqkUy6z/V7cHNys82I=";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace craft_cli/__init__.py \
|
||||||
|
--replace-fail "dev" "${version}"
|
||||||
|
|
||||||
|
substituteInPlace pyproject.toml \
|
||||||
|
--replace-fail "setuptools==67.7.2" "setuptools"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
setuptools-scm
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
platformdirs
|
||||||
|
pydantic_1
|
||||||
|
pyyaml
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"craft_cli"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
pytest-check
|
||||||
|
pytest-mock
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
pytestFlagsArray = [ "tests/unit" ];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A CLI builder for Canonical's CLI Guidelines";
|
||||||
|
homepage = "https://github.com/canonical/craft-cli";
|
||||||
|
changelog = "https://github.com/canonical/craft-cli/releases/tag/${version}";
|
||||||
|
license = lib.licenses.lgpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
58
pkgs/development/python-modules/craft-grammar/default.nix
Normal file
58
pkgs/development/python-modules/craft-grammar/default.nix
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, nix-update-script
|
||||||
|
, overrides
|
||||||
|
, setuptools
|
||||||
|
, pytest-check
|
||||||
|
, pytest-mock
|
||||||
|
, pytestCheckHook
|
||||||
|
, pydantic_1
|
||||||
|
, pyyaml
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "craft-grammar";
|
||||||
|
version = "1.1.2";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "canonical";
|
||||||
|
repo = "craft-grammar";
|
||||||
|
rev = "refs/tags/${version}";
|
||||||
|
hash = "sha256-23KLIO2yHXGe/zb3B8LirJsh+LY9z0c5ZGtF392Kszo";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
overrides
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"craft_grammar"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
pydantic_1
|
||||||
|
pytestCheckHook
|
||||||
|
pyyaml
|
||||||
|
];
|
||||||
|
|
||||||
|
pytestFlagsArray = [ "tests/unit" ];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Advanced grammar for Canonical's craft-parts library";
|
||||||
|
homepage = "https://github.com/canonical/craft-grammar";
|
||||||
|
changelog = "https://github.com/canonical/craft-grammar/releases/tag/${version}";
|
||||||
|
license = lib.licenses.lgpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
41
pkgs/development/python-modules/craft-parts/bash-path.patch
Normal file
41
pkgs/development/python-modules/craft-parts/bash-path.patch
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
diff --git a/craft_parts/executor/step_handler.py b/craft_parts/executor/step_handler.py
|
||||||
|
index 404df69..f90e2ac 100644
|
||||||
|
--- a/craft_parts/executor/step_handler.py
|
||||||
|
+++ b/craft_parts/executor/step_handler.py
|
||||||
|
@@ -243,8 +243,9 @@ class StepHandler:
|
||||||
|
print(script, file=script_file)
|
||||||
|
script_file.flush()
|
||||||
|
script_file.seek(0)
|
||||||
|
+ import shutil
|
||||||
|
process = subprocess.Popen( # pylint: disable=consider-using-with
|
||||||
|
- ["/bin/bash"],
|
||||||
|
+ [shutil.which("bash")],
|
||||||
|
stdin=script_file,
|
||||||
|
cwd=work_dir,
|
||||||
|
stdout=self._stdout,
|
||||||
|
@@ -394,7 +395,8 @@ def _create_and_run_script(
|
||||||
|
) -> None:
|
||||||
|
"""Create a script with step-specific commands and execute it."""
|
||||||
|
with script_path.open("w") as run_file:
|
||||||
|
- print("#!/bin/bash", file=run_file)
|
||||||
|
+ import shutil
|
||||||
|
+ print(f"#!{shutil.which('bash')}", file=run_file)
|
||||||
|
print("set -euo pipefail", file=run_file)
|
||||||
|
|
||||||
|
if build_environment_script_path:
|
||||||
|
diff --git a/craft_parts/plugins/validator.py b/craft_parts/plugins/validator.py
|
||||||
|
index b8d8f11..fce0e72 100644
|
||||||
|
--- a/craft_parts/plugins/validator.py
|
||||||
|
+++ b/craft_parts/plugins/validator.py
|
||||||
|
@@ -142,9 +142,9 @@ class PluginEnvironmentValidator:
|
||||||
|
print(self._env, file=env_file)
|
||||||
|
print(cmd, file=env_file)
|
||||||
|
env_file.flush()
|
||||||
|
-
|
||||||
|
+ import shutil
|
||||||
|
proc = subprocess.run(
|
||||||
|
- ["/bin/bash", env_file.name],
|
||||||
|
+ [shutil.which("bash"), env_file.name],
|
||||||
|
check=True,
|
||||||
|
capture_output=True,
|
||||||
|
text=True,
|
119
pkgs/development/python-modules/craft-parts/default.nix
Normal file
119
pkgs/development/python-modules/craft-parts/default.nix
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, nix-update-script
|
||||||
|
, overrides
|
||||||
|
, pydantic_1
|
||||||
|
, pydantic-yaml-0
|
||||||
|
, pyxdg
|
||||||
|
, pyyaml
|
||||||
|
, requests
|
||||||
|
, requests-unixsocket
|
||||||
|
, types-pyyaml
|
||||||
|
, urllib3
|
||||||
|
, pytestCheckHook
|
||||||
|
, pytest-check
|
||||||
|
, pytest-mock
|
||||||
|
, pytest-subprocess
|
||||||
|
, requests-mock
|
||||||
|
, hypothesis
|
||||||
|
, git
|
||||||
|
, squashfsTools
|
||||||
|
, setuptools
|
||||||
|
, setuptools-scm
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "craft-parts";
|
||||||
|
version = "1.26.2";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "canonical";
|
||||||
|
repo = "craft-parts";
|
||||||
|
rev = "refs/tags/${version}";
|
||||||
|
hash = "sha256-wHv0JWffS916RK4Kgk+FuRthx+ajh0Ka4DBwGrLdUBs=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./bash-path.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace setup.py \
|
||||||
|
--replace-fail "pydantic-yaml[pyyaml]>=0.11.0,<1.0.0" "pydantic-yaml[pyyaml]" \
|
||||||
|
--replace-fail "urllib3<2" "urllib3"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
setuptools-scm
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
overrides
|
||||||
|
pydantic_1
|
||||||
|
pydantic-yaml-0
|
||||||
|
pyxdg
|
||||||
|
pyyaml
|
||||||
|
requests
|
||||||
|
requests-unixsocket
|
||||||
|
types-pyyaml
|
||||||
|
urllib3
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"craft_parts"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
git
|
||||||
|
hypothesis
|
||||||
|
pytest-check
|
||||||
|
pytest-mock
|
||||||
|
pytest-subprocess
|
||||||
|
pytestCheckHook
|
||||||
|
requests-mock
|
||||||
|
squashfsTools
|
||||||
|
];
|
||||||
|
|
||||||
|
pytestFlagsArray = [ "tests/unit" ];
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
export HOME=$(mktemp -d)
|
||||||
|
'';
|
||||||
|
|
||||||
|
disabledTests = [
|
||||||
|
# Relies upon paths not present in Nix (like /bin/bash)
|
||||||
|
"test_run_builtin_build"
|
||||||
|
"test_run_prime"
|
||||||
|
"test_get_build_packages_with_source_type"
|
||||||
|
"test_get_build_packages"
|
||||||
|
];
|
||||||
|
|
||||||
|
disabledTestPaths = [
|
||||||
|
# Relies upon filesystem extended attributes, and suid/guid bits
|
||||||
|
"tests/unit/sources/test_base.py"
|
||||||
|
"tests/unit/packages/test_base.py"
|
||||||
|
"tests/unit/state_manager"
|
||||||
|
"tests/unit/test_xattrs.py"
|
||||||
|
"tests/unit/packages/test_normalize.py"
|
||||||
|
# Relies upon presence of apt/dpkg.
|
||||||
|
"tests/unit/packages/test_apt_cache.py"
|
||||||
|
"tests/unit/packages/test_deb.py"
|
||||||
|
"tests/unit/packages/test_chisel.py"
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Software artifact parts builder from Canonical";
|
||||||
|
homepage = "https://github.com/canonical/craft-parts";
|
||||||
|
changelog = "https://github.com/canonical/craft-parts/releases/tag/${version}";
|
||||||
|
license = lib.licenses.lgpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
111
pkgs/development/python-modules/craft-providers/default.nix
Normal file
111
pkgs/development/python-modules/craft-providers/default.nix
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, nix-update-script
|
||||||
|
, packaging
|
||||||
|
, platformdirs
|
||||||
|
, pydantic_1
|
||||||
|
, pyyaml
|
||||||
|
, requests-unixsocket
|
||||||
|
, setuptools
|
||||||
|
, setuptools-scm
|
||||||
|
, urllib3
|
||||||
|
, pytest-check
|
||||||
|
, pytest-mock
|
||||||
|
, pytestCheckHook
|
||||||
|
, responses
|
||||||
|
, freezegun
|
||||||
|
, pytest-subprocess
|
||||||
|
, pytest-logdog
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "craft-providers";
|
||||||
|
version = "1.23.0";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "canonical";
|
||||||
|
repo = "craft-providers";
|
||||||
|
rev = "refs/tags/${version}";
|
||||||
|
hash = "sha256-9ZoNgpuGytwozRsw0wnS3d2UBOIsh3VI/uzB1RD2Zac=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./inject-snaps.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace craft_providers/lxd/installer.py \
|
||||||
|
--replace-fail "/var/snap/lxd/common/lxd/unix.socket" "/var/lib/lxd/unix.socket"
|
||||||
|
|
||||||
|
substituteInPlace craft_providers/__init__.py \
|
||||||
|
--replace-fail "dev" "${version}"
|
||||||
|
|
||||||
|
# The urllib3 incompat: https://github.com/msabramo/requests-unixsocket/pull/69
|
||||||
|
# This is already patched in nixpkgs.
|
||||||
|
substituteInPlace pyproject.toml \
|
||||||
|
--replace-fail "setuptools==67.8.0" "setuptools" \
|
||||||
|
--replace-fail "urllib3<2" "urllib3"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
setuptools-scm
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
packaging
|
||||||
|
platformdirs
|
||||||
|
pydantic_1
|
||||||
|
pyyaml
|
||||||
|
requests-unixsocket
|
||||||
|
urllib3
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"craft_providers"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
freezegun
|
||||||
|
pytest-check
|
||||||
|
pytest-mock
|
||||||
|
pytest-subprocess
|
||||||
|
pytest-logdog
|
||||||
|
pytestCheckHook
|
||||||
|
responses
|
||||||
|
];
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
mkdir -p check-phase
|
||||||
|
export HOME="$(pwd)/check-phase"
|
||||||
|
'';
|
||||||
|
|
||||||
|
pytestFlagsArray = [ "tests/unit" ];
|
||||||
|
|
||||||
|
disabledTestPaths = [
|
||||||
|
# Relies upon "logassert" python package which isn't in nixpkgs
|
||||||
|
"tests/unit/bases/test_ubuntu_buildd.py"
|
||||||
|
"tests/unit/bases/test_centos_7.py"
|
||||||
|
"tests/unit/bases/test_almalinux.py"
|
||||||
|
"tests/unit/actions/test_snap_installer.py"
|
||||||
|
# Relies upon "pytest-time" python package which isn't in nixpkgs
|
||||||
|
"tests/unit/multipass"
|
||||||
|
"tests/unit/lxd"
|
||||||
|
"tests/unit/test_base.py"
|
||||||
|
"tests/unit/util/test_retry.py"
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Interfaces for instantiating and controlling a variety of build environments";
|
||||||
|
homepage = "https://github.com/canonical/craft-providers";
|
||||||
|
changelog = "https://github.com/canonical/craft-providers/releases/tag/${version}";
|
||||||
|
license = lib.licenses.lgpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
diff --git a/craft_providers/base.py b/craft_providers/base.py
|
||||||
|
index 3c914a2..d9c2cf9 100644
|
||||||
|
--- a/craft_providers/base.py
|
||||||
|
+++ b/craft_providers/base.py
|
||||||
|
@@ -655,37 +655,22 @@ class Base(ABC):
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
- if snap.channel:
|
||||||
|
- try:
|
||||||
|
- snap_installer.install_from_store(
|
||||||
|
- executor=executor,
|
||||||
|
- snap_name=snap.name,
|
||||||
|
- channel=snap.channel,
|
||||||
|
- classic=snap.classic,
|
||||||
|
- )
|
||||||
|
- except SnapInstallationError as error:
|
||||||
|
- raise BaseConfigurationError(
|
||||||
|
- brief=(
|
||||||
|
- f"failed to install snap {snap.name!r} from store"
|
||||||
|
- f" channel {snap.channel!r} in target environment."
|
||||||
|
- ),
|
||||||
|
- details=error.details,
|
||||||
|
- ) from error
|
||||||
|
- else:
|
||||||
|
- try:
|
||||||
|
- snap_installer.inject_from_host(
|
||||||
|
- executor=executor,
|
||||||
|
- snap_name=snap.name,
|
||||||
|
- classic=snap.classic,
|
||||||
|
- )
|
||||||
|
- except SnapInstallationError as error:
|
||||||
|
- raise BaseConfigurationError(
|
||||||
|
- brief=(
|
||||||
|
- f"failed to inject host's snap {snap.name!r} "
|
||||||
|
- "into target environment."
|
||||||
|
- ),
|
||||||
|
- details=error.details,
|
||||||
|
- ) from error
|
||||||
|
+ try:
|
||||||
|
+ channel = "latest/edge" if snap.name == "rockcraft" else "latest/stable"
|
||||||
|
+ snap_installer.install_from_store(
|
||||||
|
+ executor=executor,
|
||||||
|
+ snap_name=snap.name,
|
||||||
|
+ channel=channel,
|
||||||
|
+ classic=snap.classic,
|
||||||
|
+ )
|
||||||
|
+ except SnapInstallationError as error:
|
||||||
|
+ raise BaseConfigurationError(
|
||||||
|
+ brief=(
|
||||||
|
+ f"failed to install snap {snap.name!r} from store"
|
||||||
|
+ f" channel {channel!r} in target environment."
|
||||||
|
+ ),
|
||||||
|
+ details=error.details,
|
||||||
|
+ ) from error
|
||||||
|
|
||||||
|
def wait_until_ready(self, executor: Executor) -> None:
|
||||||
|
"""Wait until base instance is ready.
|
|
@ -11,14 +11,20 @@ let
|
||||||
pyShortVersion = "cp" + builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
|
pyShortVersion = "cp" + builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
|
||||||
platforms = rec {
|
platforms = rec {
|
||||||
aarch64-darwin = "macosx_10_9_universal2";
|
aarch64-darwin = "macosx_10_9_universal2";
|
||||||
|
aarch64-linux = "manylinux2014_aarch64.manylinux_2_17_aarch64";
|
||||||
x86_64-darwin = aarch64-darwin;
|
x86_64-darwin = aarch64-darwin;
|
||||||
|
x86_64-linux = "manylinux2014_x86_64.manylinux_2_17_x86_64";
|
||||||
};
|
};
|
||||||
platform = platforms.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
|
platform = platforms.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
|
||||||
hashes = rec {
|
hashes = rec {
|
||||||
cp311-aarch64-darwin = "sha256-pMwq4TXvr0mrKxZppeW2MQE/KrplWWFGmjKRLKwbHCI=";
|
cp311-aarch64-darwin = "sha256-pMwq4TXvr0mrKxZppeW2MQE/KrplWWFGmjKRLKwbHCI=";
|
||||||
|
cp311-aarch64-linux = "sha256-fxJSQUt+nk7JBGtkDi+qTl/js0hnWGZGyht4AqD9g60=";
|
||||||
cp311-x86_64-darwin = cp311-aarch64-darwin;
|
cp311-x86_64-darwin = cp311-aarch64-darwin;
|
||||||
|
cp311-x86_64-linux = "sha256-q1nmuWmlDPeNWWw4bX3KECOChNQkwU+6hItYqWcyY4M=";
|
||||||
cp312-aarch64-darwin = "sha256-5+1QxYOhjbs01S3gqhkQ9Bx/0/NhbXEi710BGpiC5kM=";
|
cp312-aarch64-darwin = "sha256-5+1QxYOhjbs01S3gqhkQ9Bx/0/NhbXEi710BGpiC5kM=";
|
||||||
|
cp312-aarch64-linux = "sha256-N7cFtibenj+SrZ7ZtevZtDUdW48DnLC4p5jB9vrWlb8=";
|
||||||
cp312-x86_64-darwin = cp312-aarch64-darwin;
|
cp312-x86_64-darwin = cp312-aarch64-darwin;
|
||||||
|
cp312-x86_64-linux = "sha256-Aw5xxvCwdgfdT7HMrWT/jKWx3RDjs8IuB4in0ZGdqcw=";
|
||||||
};
|
};
|
||||||
hash =
|
hash =
|
||||||
hashes."${pyShortVersion}-${stdenv.system}"
|
hashes."${pyShortVersion}-${stdenv.system}"
|
|
@ -1,29 +0,0 @@
|
||||||
{ lib, buildPythonPackage, python, gurobi }:
|
|
||||||
|
|
||||||
buildPythonPackage {
|
|
||||||
pname = "gurobipy";
|
|
||||||
version = "9.1.2";
|
|
||||||
|
|
||||||
src = gurobi.src;
|
|
||||||
|
|
||||||
setSourceRoot = "sourceRoot=$(echo gurobi*/*64)";
|
|
||||||
|
|
||||||
patches = [ ./no-clever-setup.patch ];
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
mv lib/libgurobi*.so* $out/lib
|
|
||||||
'';
|
|
||||||
|
|
||||||
postFixup = ''
|
|
||||||
patchelf --set-rpath $out/lib \
|
|
||||||
$out/${python.sitePackages}/gurobipy/gurobipy.so
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "The Gurobi Python interface";
|
|
||||||
homepage = "https://www.gurobi.com";
|
|
||||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
|
||||||
license = licenses.unfree;
|
|
||||||
platforms = [ "x86_64-linux" ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
diff -Naur a/setup.py b/setup.py
|
|
||||||
--- a/setup.py 2021-04-24 12:53:18.300255006 -0500
|
|
||||||
+++ b/setup.py 2021-04-24 12:47:51.619052574 -0500
|
|
||||||
@@ -15,29 +15,6 @@
|
|
||||||
from distutils.command.install import install
|
|
||||||
import os,sys,shutil
|
|
||||||
|
|
||||||
-class GurobiClean(Command):
|
|
||||||
- description = "remove the build directory"
|
|
||||||
- user_options = []
|
|
||||||
- def initialize_options(self):
|
|
||||||
- self.cwd = None
|
|
||||||
- def finalize_options(self):
|
|
||||||
- self.cwd = os.path.dirname(os.path.realpath(__file__))
|
|
||||||
- def run(self):
|
|
||||||
- build_dir = os.path.join(os.getcwd(), "build")
|
|
||||||
- if os.path.exists(build_dir):
|
|
||||||
- print('removing %s' % build_dir)
|
|
||||||
- shutil.rmtree(build_dir)
|
|
||||||
-
|
|
||||||
-class GurobiInstall(install):
|
|
||||||
-
|
|
||||||
- # Calls the default run command, then deletes the build area
|
|
||||||
- # (equivalent to "setup clean --all").
|
|
||||||
- def run(self):
|
|
||||||
- install.run(self)
|
|
||||||
- c = GurobiClean(self.distribution)
|
|
||||||
- c.finalize_options()
|
|
||||||
- c.run()
|
|
||||||
-
|
|
||||||
License = """
|
|
||||||
This software is covered by the Gurobi End User License Agreement.
|
|
||||||
By completing the Gurobi installation process and using the software,
|
|
||||||
@@ -78,7 +55,5 @@
|
|
||||||
packages = ['gurobipy'],
|
|
||||||
package_dir={'gurobipy' : srcpath },
|
|
||||||
package_data = {'gurobipy' : [srcfile] },
|
|
||||||
- cmdclass={'install' : GurobiInstall,
|
|
||||||
- 'clean' : GurobiClean }
|
|
||||||
)
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "llama-index-agent-openai";
|
pname = "llama-index-agent-openai";
|
||||||
version = "0.2.0";
|
version = "0.2.1";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
|
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
pname = "llama_index_agent_openai";
|
pname = "llama_index_agent_openai";
|
||||||
inherit version;
|
inherit version;
|
||||||
hash = "sha256-iDHuNk1TeBNAG6LK38JnAdPRrVODhQ9+fdytL1aNlO8=";
|
hash = "sha256-ydCixD0vdSuA99PdflbhEsSd3b0Gl0lzFTz9uTdLYrQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonRelaxDeps = [
|
pythonRelaxDeps = [
|
||||||
|
|
|
@ -4,18 +4,20 @@
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, poetry-core
|
, poetry-core
|
||||||
, poetry-dynamic-versioning
|
, poetry-dynamic-versioning
|
||||||
, pydantic
|
, typing-extensions
|
||||||
, pytestCheckHook
|
, pytestCheckHook
|
||||||
, pytest-benchmark
|
, pytest-benchmark
|
||||||
, typing-extensions
|
, pytest-cov
|
||||||
|
, pydantic
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pure-protobuf";
|
pname = "pure-protobuf";
|
||||||
version = "3.0.1"; # Komikku not launching w/ 3.0.0, #280551
|
version = "3.0.1";
|
||||||
|
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
disabled = pythonOlder "3.7";
|
# < 3.10 requires get-annotations which isn't packaged yet
|
||||||
|
disabled = pythonOlder "3.10";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "eigenein";
|
owner = "eigenein";
|
||||||
|
@ -24,13 +26,10 @@ buildPythonPackage rec {
|
||||||
hash = "sha256-sGKnta+agrpJkQB0twFkqRreD5WB2O/06g75N0ic4mc=";
|
hash = "sha256-sGKnta+agrpJkQB0twFkqRreD5WB2O/06g75N0ic4mc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
sed -i "/addopts =/d" pyproject.toml
|
|
||||||
'';
|
|
||||||
|
|
||||||
build-system = [
|
build-system = [
|
||||||
poetry-core
|
poetry-core
|
||||||
poetry-dynamic-versioning
|
poetry-dynamic-versioning
|
||||||
|
typing-extensions
|
||||||
];
|
];
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
@ -41,6 +40,7 @@ buildPythonPackage rec {
|
||||||
pydantic
|
pydantic
|
||||||
pytestCheckHook
|
pytestCheckHook
|
||||||
pytest-benchmark
|
pytest-benchmark
|
||||||
|
pytest-cov
|
||||||
];
|
];
|
||||||
|
|
||||||
pytestFlagsArray = [
|
pytestFlagsArray = [
|
||||||
|
|
68
pkgs/development/python-modules/pydantic-yaml-0/default.nix
Normal file
68
pkgs/development/python-modules/pydantic-yaml-0/default.nix
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, nix-update-script
|
||||||
|
, deprecated
|
||||||
|
, importlib-metadata
|
||||||
|
, pydantic_1
|
||||||
|
, ruamel-yaml
|
||||||
|
, semver
|
||||||
|
, types-deprecated
|
||||||
|
, setuptools
|
||||||
|
, setuptools-scm
|
||||||
|
, pytest-mock
|
||||||
|
, pytestCheckHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "pydantic_yaml-0";
|
||||||
|
version = "0.11.2";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "NowanIlfideme";
|
||||||
|
repo = "pydantic-yaml";
|
||||||
|
rev = "refs/tags/v${version}";
|
||||||
|
hash = "sha256-AeUyVav0/k4Fz69Qizn4hcJKoi/CDR9eUan/nJhWsDY=";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace src/pydantic_yaml/version.py \
|
||||||
|
--replace-fail "0.0.0" "${version}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
setuptools-scm
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
deprecated
|
||||||
|
importlib-metadata
|
||||||
|
pydantic_1
|
||||||
|
ruamel-yaml
|
||||||
|
semver
|
||||||
|
types-deprecated
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"pydantic_yaml"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
pytest-mock
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A small helper library that adds some YAML capabilities to pydantic";
|
||||||
|
homepage = "https://github.com/NowanIlfideme/pydantic-yaml";
|
||||||
|
changelog = "https://github.com/NowanIlfideme/pydantic-yaml/releases/tag/v${version}";
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -7,14 +7,12 @@
|
||||||
, async-upnp-client
|
, async-upnp-client
|
||||||
, attrs
|
, attrs
|
||||||
, click
|
, click
|
||||||
, importlib-metadata
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "python-songpal";
|
pname = "python-songpal";
|
||||||
version = "0.16.1";
|
version = "0.16.2";
|
||||||
|
pyproject = true;
|
||||||
format = "pyproject";
|
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
|
|
||||||
|
@ -22,19 +20,18 @@ buildPythonPackage rec {
|
||||||
owner = "rytilahti";
|
owner = "rytilahti";
|
||||||
repo = "python-songpal";
|
repo = "python-songpal";
|
||||||
rev = "refs/tags/release/${version}";
|
rev = "refs/tags/release/${version}";
|
||||||
hash = "sha256-qlypUGrObvn6YyzFhJe2rJvVdI6v+PkWLfjMpc1Lm2k=";
|
hash = "sha256-PYw6xlUtBrxl+YeVO/2Njt5LYWEprzGPVNk1Mlr83HM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
build-system = [
|
||||||
poetry-core
|
poetry-core
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
dependencies = [
|
||||||
aiohttp
|
aiohttp
|
||||||
async-upnp-client
|
async-upnp-client
|
||||||
attrs
|
attrs
|
||||||
click
|
click
|
||||||
importlib-metadata
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# no tests implemented
|
# no tests implemented
|
||||||
|
|
|
@ -20,7 +20,9 @@ buildPythonPackage rec {
|
||||||
sha256 = "8IZQY6qB4r1SUPItDlTDnVQuPs0I38K3yJ6LiPJuwbU=";
|
sha256 = "8IZQY6qB4r1SUPItDlTDnVQuPs0I38K3yJ6LiPJuwbU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ zbar pillow numpy ];
|
buildInputs = [ zbar ];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ pillow numpy ];
|
||||||
|
|
||||||
nativeCheckInputs = [ pytestCheckHook ];
|
nativeCheckInputs = [ pytestCheckHook ];
|
||||||
|
|
||||||
|
|
52
pkgs/development/python-modules/snap-helpers/default.nix
Normal file
52
pkgs/development/python-modules/snap-helpers/default.nix
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, nix-update-script
|
||||||
|
, pyyaml
|
||||||
|
, setuptools
|
||||||
|
, pytestCheckHook
|
||||||
|
, pytest-mock
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "snap-helpers";
|
||||||
|
version = "0.4.2";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "albertodonato";
|
||||||
|
repo = "snap-helpers";
|
||||||
|
rev = "refs/tags/${version}";
|
||||||
|
hash = "sha256-7JBvrD4WNOcFSVx3xauk4JgiVGKWuUEdUMRlH7mudE4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
pyyaml
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"snaphelpers"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
pytest-mock
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Interact with snap configuration and properties from inside a snap.";
|
||||||
|
homepage = "https://github.com/albertodonato/snap-helpers";
|
||||||
|
changelog = "https://github.com/albertodonato/snap-helpers/releases/tag/${version}";
|
||||||
|
license = lib.licenses.lgpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
37
pkgs/development/python-modules/spdx-lookup/default.nix
Normal file
37
pkgs/development/python-modules/spdx-lookup/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, buildPythonPackage
|
||||||
|
, nix-update-script
|
||||||
|
, spdx
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "spdx-lookup";
|
||||||
|
version = "0.3.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "bbqsrc";
|
||||||
|
repo = "spdx-lookup-python";
|
||||||
|
rev = "refs/tags/v${version}";
|
||||||
|
hash = "sha256-jtzhqRAj1BWdU8AuR7Gr343mL5alLXhi+SyCkCI5AAU=";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
spdx
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"spdx_lookup"
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "SPDX license list query tool";
|
||||||
|
homepage = "https://github.com/bbqsrc/spdx-lookup-python";
|
||||||
|
changelog = "https://github.com/bbqsrc/spdx-lookup-python/releases/tag/v${version}";
|
||||||
|
license = lib.licenses.bsd2;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
32
pkgs/development/python-modules/spdx/default.nix
Normal file
32
pkgs/development/python-modules/spdx/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{ lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, buildPythonPackage
|
||||||
|
, nix-update-script
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "spdx";
|
||||||
|
version = "2.5";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "bbqsrc";
|
||||||
|
repo = "spdx-python";
|
||||||
|
rev = "refs/tags/v${version}";
|
||||||
|
hash = "sha256-lfTgAX4Wl01xrvLA12ZUqjah7ZiLafMAU+yNNdVkRk0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"spdx"
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru.updateScript = nix-update-script { };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "SPDX license list database";
|
||||||
|
homepage = "https://github.com/bbqsrc/spdx-python";
|
||||||
|
changelog = "https://github.com/bbqsrc/spdx-python/releases/tag/v${version}";
|
||||||
|
license = lib.licenses.cc0;
|
||||||
|
maintainers = with lib.maintainers; [ jnsgruk ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -5,14 +5,14 @@
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "checkov";
|
pname = "checkov";
|
||||||
version = "3.2.49";
|
version = "3.2.50";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bridgecrewio";
|
owner = "bridgecrewio";
|
||||||
repo = "checkov";
|
repo = "checkov";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-lO1NMK+tIj/riNt5JVjqgQDAfDlApENi0waj5pfjubc=";
|
hash = "sha256-XOH4RrkyjTZY1N5XSR71GEGofPgqI7XkE8c3/ojoHGI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.12.1";
|
version = "0.12.2";
|
||||||
in
|
in
|
||||||
crystal.buildCrystalPackage {
|
crystal.buildCrystalPackage {
|
||||||
pname = "crystalline";
|
pname = "crystalline";
|
||||||
|
@ -17,7 +17,7 @@ crystal.buildCrystalPackage {
|
||||||
owner = "elbywan";
|
owner = "elbywan";
|
||||||
repo = "crystalline";
|
repo = "crystalline";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-b/j1V5JlT+rjWYAA8nrE0PWHrzQq4rUZxZlADMmtpBk=";
|
hash = "sha256-9CXWw7Jye5XZzPdzz+Dnvyy7Wk1ENM0an8vOFrPbESA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
format = "crystal";
|
format = "crystal";
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "svd2rust";
|
pname = "svd2rust";
|
||||||
version = "0.32.0";
|
version = "0.33.0";
|
||||||
|
|
||||||
src = fetchCrate {
|
src = fetchCrate {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
hash = "sha256-XA0zSMZTeEOiAKgzU6/znZIoJr4VtGjxWjOqDE7TFbk=";
|
hash = "sha256-EdU/Hr1OQ02Jeq4OgJPOS//4wltBPoYdUcFMvlOjIBY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-94oSlnTZdGkYLAn5uShIDg2UAMPVu580ofVcgHZvI2M=";
|
cargoHash = "sha256-T4QRrSBjf47wGJIVfxZNGig8k7KWvQQIvV8zwRUP/38=";
|
||||||
|
|
||||||
# error: linker `aarch64-linux-gnu-gcc` not found
|
# error: linker `aarch64-linux-gnu-gcc` not found
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -54,6 +54,11 @@ let
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
name = null; # Appimage sets it to "appimage-env"
|
name = null; # Appimage sets it to "appimage-env"
|
||||||
|
|
||||||
|
profile = ''
|
||||||
|
# anki vendors QT and mixing QT versions usually causes crashes
|
||||||
|
unset QT_PLUGIN_PATH
|
||||||
|
'';
|
||||||
|
|
||||||
# Dependencies of anki
|
# Dependencies of anki
|
||||||
targetPkgs = pkgs: (with pkgs; [ xorg.libxkbfile xcb-util-cursor-HEAD krb5 ]);
|
targetPkgs = pkgs: (with pkgs; [ xorg.libxkbfile xcb-util-cursor-HEAD krb5 ]);
|
||||||
|
|
||||||
|
|
|
@ -17,13 +17,13 @@ let
|
||||||
in
|
in
|
||||||
mavenJdk17.buildMavenPackage rec {
|
mavenJdk17.buildMavenPackage rec {
|
||||||
pname = "runelite";
|
pname = "runelite";
|
||||||
version = "2.6.13";
|
version = "2.7.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "runelite";
|
owner = "runelite";
|
||||||
repo = "launcher";
|
repo = "launcher";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-KE0UMtm1rypyV5FIxxiJeoP/IeSEzpzqfUyQ9UnxA0o=";
|
hash = "sha256-7T9n23qMl4IJQL7yWLXKvRzYcMeXDUwkY8MBFc2t3Rw=";
|
||||||
};
|
};
|
||||||
mvnHash = "sha256-bsJlsIXIIVzZyVgEF/SN+GgpZt6v0u800arO1c5QYHk=";
|
mvnHash = "sha256-bsJlsIXIIVzZyVgEF/SN+GgpZt6v0u800arO1c5QYHk=";
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "yabai";
|
pname = "yabai";
|
||||||
version = "7.0.3";
|
version = "7.0.4";
|
||||||
|
|
||||||
src = finalAttrs.passthru.sources.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
src = finalAttrs.passthru.sources.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||||
|
|
||||||
|
@ -85,14 +85,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
# See the comments on https://github.com/NixOS/nixpkgs/pull/188322 for more information.
|
# See the comments on https://github.com/NixOS/nixpkgs/pull/188322 for more information.
|
||||||
"aarch64-darwin" = fetchzip {
|
"aarch64-darwin" = fetchzip {
|
||||||
url = "https://github.com/koekeishiya/yabai/releases/download/v${finalAttrs.version}/yabai-v${finalAttrs.version}.tar.gz";
|
url = "https://github.com/koekeishiya/yabai/releases/download/v${finalAttrs.version}/yabai-v${finalAttrs.version}.tar.gz";
|
||||||
hash = "sha256-EvtKYYjEmLkJTnc9q6f37hMD1T3DBO+I1LfBvPjCgfc=";
|
hash = "sha256-eOgdCW3BEB9vn9lui7Ib6uWl5MSAnHh3ztqHCWshCv8=";
|
||||||
};
|
};
|
||||||
"x86_64-darwin" = fetchFromGitHub
|
"x86_64-darwin" = fetchFromGitHub
|
||||||
{
|
{
|
||||||
owner = "koekeishiya";
|
owner = "koekeishiya";
|
||||||
repo = "yabai";
|
repo = "yabai";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-oxQsCvTZqfKZoTuY1NC6h+Fzvyl0gJDhljFY2KrjRQ8=";
|
hash = "sha256-yj7ISrBzVIDGsDQ1D+vDm9PapsZmi5fk1m3cGuzBR7w=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ buildGoModule, fetchFromGitLab, lib }:
|
{ buildGoModule, fetchFromGitLab, lib }:
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "gnss-share";
|
pname = "gnss-share";
|
||||||
version = "0.8.0";
|
version = "0.8.1";
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
owner = "postmarketOS";
|
owner = "postmarketOS";
|
||||||
repo = "gnss-share";
|
repo = "gnss-share";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-XNKX7eIv3wKNWbVsa6w/ODDRiiBArpGNY0T/sHC5ItY=";
|
hash = "sha256-4X1oiQWn2oZPw/14hNyZ0a6FEwoykotBisY6lk6lj2k=";
|
||||||
};
|
};
|
||||||
vendorHash = "sha256-dmE6hfKUqEr7BMNi/HMUOk4jDB0dPXEMkWQyWj6XpY4=";
|
vendorHash = "sha256-dmE6hfKUqEr7BMNi/HMUOk4jDB0dPXEMkWQyWj6XpY4=";
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -21,16 +21,16 @@ let
|
||||||
in
|
in
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "minio";
|
pname = "minio";
|
||||||
version = "2024-03-15T01-07-19Z";
|
version = "2024-03-26T22-10-45Z";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "minio";
|
owner = "minio";
|
||||||
repo = "minio";
|
repo = "minio";
|
||||||
rev = "RELEASE.${version}";
|
rev = "RELEASE.${version}";
|
||||||
hash = "sha256-El4ddYmd6cVAFS0/s7QcTR9kcZcmNtlXEOpaqmTRdzk=";
|
hash = "sha256-JdmeURCci8deQH4+7HCHkMbUzhjZBGi3dm3IHkp3XRE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-lo91BVswJZl1FI1W4doNvOBXreLQco3/UjQ90HP46FY=";
|
vendorHash = "sha256-oQatc6/s1kGOZI3XetID0xmABG5XrpD0cW7aWJxWK84=";
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "neo4j";
|
pname = "neo4j";
|
||||||
version = "5.18.0";
|
version = "5.18.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
|
url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
|
||||||
hash = "sha256-XPpX6alLb81o5IBX16eHHkJMi8V/R/2YXWOCxEHKdU0=";
|
hash = "sha256-jNi8SK1Z8k6ZSc9aa+L+PhAKyes0Tv6mFuoKspZBEIk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
|
@ -81,6 +81,14 @@ rec {
|
||||||
name = "texlive-test-context";
|
name = "texlive-test-context";
|
||||||
format = "context";
|
format = "context";
|
||||||
texLive = texliveConTeXt;
|
texLive = texliveConTeXt;
|
||||||
|
# check that the PDF has been created: we have hit cases of context
|
||||||
|
# failing with exit status 0 due to a misconfigured texlive
|
||||||
|
postTest = ''
|
||||||
|
if [[ ! -f "$name".pdf ]] ; then
|
||||||
|
echo "ConTeXt test failed: file '$name.pdf' not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
'';
|
||||||
text = ''
|
text = ''
|
||||||
\starttext
|
\starttext
|
||||||
\startsection[title={ConTeXt test document}]
|
\startsection[title={ConTeXt test document}]
|
||||||
|
@ -333,18 +341,6 @@ rec {
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# test that fmtutil.cnf is fully regenerated on scheme-full
|
|
||||||
fmtutilCnf = runCommand "texlive-test-fmtutil.cnf" {
|
|
||||||
kpathsea = texlive.pkgs.kpathsea.tex;
|
|
||||||
schemeFull = texliveFull;
|
|
||||||
} ''
|
|
||||||
mkdir -p "$out"
|
|
||||||
|
|
||||||
diff --ignore-matching-lines='^# Generated by ' -u \
|
|
||||||
{"$kpathsea","$schemeFull"/share/texmf-var}/web2c/fmtutil.cnf \
|
|
||||||
| tee "$out/fmtutil.cnf.patch"
|
|
||||||
'';
|
|
||||||
|
|
||||||
# verify that the restricted mode gets enabled when
|
# verify that the restricted mode gets enabled when
|
||||||
# needed (detected by checking if it disallows --gscmd)
|
# needed (detected by checking if it disallows --gscmd)
|
||||||
repstopdf = runCommand "texlive-test-repstopdf" {
|
repstopdf = runCommand "texlive-test-repstopdf" {
|
||||||
|
|
|
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
|
||||||
homepage = "https://constexpr.org/innoextract/";
|
homepage = "https://constexpr.org/innoextract/";
|
||||||
license = licenses.zlib;
|
license = licenses.zlib;
|
||||||
maintainers = with maintainers; [ abbradar ];
|
maintainers = with maintainers; [ abbradar ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.unix;
|
||||||
mainProgram = "innoextract";
|
mainProgram = "innoextract";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{
|
{
|
||||||
|
"optifine_1_20_4": {
|
||||||
|
"version": "1.20.4_HD_U_I7",
|
||||||
|
"sha256": "1zgz5cd2v299hayk5qx639nknd3mcz58y59rpik8srx48da8jw14"
|
||||||
|
},
|
||||||
"optifine_1_20_1": {
|
"optifine_1_20_1": {
|
||||||
"version": "1.20.1_HD_U_I6",
|
"version": "1.20.1_HD_U_I6",
|
||||||
"sha256": "0l66pz4hy42qxv9a2jlq1hd7jiiysnv54g9gk1dfbwpd19kwnrqb"
|
"sha256": "0l66pz4hy42qxv9a2jlq1hd7jiiysnv54g9gk1dfbwpd19kwnrqb"
|
||||||
|
@ -148,7 +152,7 @@
|
||||||
"sha256": "18lzyh639mi7r2hzwnmxv0a6v1ay7dk9bzasvwff82dxq0y9zi7m"
|
"sha256": "18lzyh639mi7r2hzwnmxv0a6v1ay7dk9bzasvwff82dxq0y9zi7m"
|
||||||
},
|
},
|
||||||
"optifine-latest": {
|
"optifine-latest": {
|
||||||
"version": "1.20.1_HD_U_I6",
|
"version": "1.20.4_HD_U_I7",
|
||||||
"sha256": "0l66pz4hy42qxv9a2jlq1hd7jiiysnv54g9gk1dfbwpd19kwnrqb"
|
"sha256": "1zgz5cd2v299hayk5qx639nknd3mcz58y59rpik8srx48da8jw14"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,13 +17,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gfxreconstruct";
|
pname = "gfxreconstruct";
|
||||||
version = "1.0.2";
|
version = "1.0.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "LunarG";
|
owner = "LunarG";
|
||||||
repo = "gfxreconstruct";
|
repo = "gfxreconstruct";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-4jFHnDiLO2BrfXzxKXU3FGhvcmkUXCT2k/7A+DJPz90=";
|
hash = "sha256-4qNAMPswsYtzHmTKr+waDLoWa9xex5hvX1Og/KibiBg=";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ xorg,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.42.2";
|
version = "1.42.3";
|
||||||
|
|
||||||
rpath = lib.makeLibraryPath [
|
rpath = lib.makeLibraryPath [
|
||||||
alsa-lib
|
alsa-lib
|
||||||
|
@ -82,7 +82,7 @@ let
|
||||||
if stdenv.hostPlatform.system == "x86_64-linux" then
|
if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
|
url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
|
||||||
sha256 = "sha256-NvHFsB+wXNq2XmHb2tYI1P9vUXwVcwbhR645LjHM0/Y=";
|
sha256 = "sha256-/ED/irfT4b8S5tqEl4AqLQKUimkl52WYBMJDsgUPQ88=";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
|
throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
, stdenv
|
, stdenv
|
||||||
, buildPythonApplication
|
, buildPythonApplication
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, aria
|
, aria2
|
||||||
, ffmpeg
|
, ffmpeg
|
||||||
, libnotify
|
, libnotify
|
||||||
, pulseaudio
|
, pulseaudio
|
||||||
|
@ -67,7 +67,7 @@ buildPythonApplication rec {
|
||||||
|
|
||||||
# feed args to wrapPythonApp
|
# feed args to wrapPythonApp
|
||||||
makeWrapperArgs = [
|
makeWrapperArgs = [
|
||||||
"--prefix PATH : ${lib.makeBinPath [ aria ffmpeg libnotify ]}"
|
"--prefix PATH : ${lib.makeBinPath [ aria2 ffmpeg libnotify ]}"
|
||||||
"\${qtWrapperArgs[@]}"
|
"\${qtWrapperArgs[@]}"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -24,13 +24,13 @@
|
||||||
assert (!withFirefox && !withChromium) -> throw "Either `withFirefox` or `withChromium` must be enabled.";
|
assert (!withFirefox && !withChromium) -> throw "Either `withFirefox` or `withChromium` must be enabled.";
|
||||||
buildNpmPackage rec {
|
buildNpmPackage rec {
|
||||||
pname = "sitespeed-io";
|
pname = "sitespeed-io";
|
||||||
version = "33.3.0";
|
version = "33.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "sitespeedio";
|
owner = "sitespeedio";
|
||||||
repo = "sitespeed.io";
|
repo = "sitespeed.io";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-voH0/F11fSMpEccyjcX3YUKaXjegJRwQwlRoa8R8sDg=";
|
hash = "sha256-Yjp6sbMi4s23CecCYXxnUDQ9dc4SgnUnbBV8kLhv58U=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nodejs = nodejs_18;
|
nodejs = nodejs_18;
|
||||||
|
@ -46,7 +46,7 @@ buildNpmPackage rec {
|
||||||
|
|
||||||
dontNpmBuild = true;
|
dontNpmBuild = true;
|
||||||
npmInstallFlags = [ "--omit=dev" ];
|
npmInstallFlags = [ "--omit=dev" ];
|
||||||
npmDepsHash = "sha256-IiDfvID3h6kBue54p6J9qpjwwO5LwKkK0fw7TNptsxA=";
|
npmDepsHash = "sha256-OT0dKF6dLuAZ5SgMVbrOyirJnpPNL5ygPjwvXqjKF1Q=";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mv $out/bin/sitespeed{.,-}io
|
mv $out/bin/sitespeed{.,-}io
|
||||||
|
|
|
@ -5,16 +5,16 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "trippy";
|
pname = "trippy";
|
||||||
version = "0.9.0";
|
version = "0.10.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "fujiapple852";
|
owner = "fujiapple852";
|
||||||
repo = "trippy";
|
repo = "trippy";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-Q5WPpCm1RNLlNX8G1U160O2wJz+y+KMScApjx6gIBCg=";
|
hash = "sha256-IKGtnWRjrVof+2cq41TPfjhFrkn10yhY6j63dYwTzPA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-brvfAZZ3L0loZQowcRfkS7o7ZYQB9hr5o1rgMSWaljU=";
|
cargoHash = "sha256-OCbrg1uSot0uNFx7uSlN5Bh6bl34ng9xO6lo9wks6nY=";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A network diagnostic tool";
|
description = "A network diagnostic tool";
|
||||||
|
|
|
@ -8,13 +8,13 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "2024.1.2b";
|
version = "2024.3.0";
|
||||||
|
|
||||||
bw_web_builds = fetchFromGitHub {
|
bw_web_builds = fetchFromGitHub {
|
||||||
owner = "dani-garcia";
|
owner = "dani-garcia";
|
||||||
repo = "bw_web_builds";
|
repo = "bw_web_builds";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-p5UsI8T2cV5uQnQmOi5WBo2UirLLS83NHoaljxcRkqo=";
|
hash = "sha256-nlFs0cOehbGhk/XxWAuNJNhImHDZA3pvci1WdcBy6Ro=";
|
||||||
};
|
};
|
||||||
|
|
||||||
in buildNpmPackage rec {
|
in buildNpmPackage rec {
|
||||||
|
@ -25,10 +25,10 @@ in buildNpmPackage rec {
|
||||||
owner = "bitwarden";
|
owner = "bitwarden";
|
||||||
repo = "clients";
|
repo = "clients";
|
||||||
rev = "web-v${lib.removeSuffix "b" version}";
|
rev = "web-v${lib.removeSuffix "b" version}";
|
||||||
hash = "sha256-hzAkVzaCjwoZ/PMnsnSmsqUBWLhqfPWuWVujChy0V38=";
|
hash = "sha256-/YpqGyDesz4ZyIaLGWbxJZkEGFW7IsTfuy/74NuiOS0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
npmDepsHash = "sha256-KTqPf8jy8cgGz0+1GssSzEfPVSSQlLenLPgHggNoGfc=";
|
npmDepsHash = "sha256-iwYzxvLPebQiU20TafzdFgQXnNNHK8s0Jwo83VKy4u8=";
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
ln -s ${bw_web_builds}/{patches,resources} ..
|
ln -s ${bw_web_builds}/{patches,resources} ..
|
||||||
|
|
|
@ -38,6 +38,12 @@ lib.fix (self: {
|
||||||
}@args:
|
}@args:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
### buildEnv with custom attributes
|
||||||
|
buildEnv' = args: (buildEnv
|
||||||
|
({ inherit (args) name paths; })
|
||||||
|
// lib.optionalAttrs (args ? extraOutputsToInstall) { inherit (args) extraOutputsToInstall; })
|
||||||
|
.overrideAttrs (removeAttrs args [ "extraOutputsToInstall" "name" "paths" "pkgs" ]);
|
||||||
|
|
||||||
### texlive.combine backward compatibility
|
### texlive.combine backward compatibility
|
||||||
# if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets
|
# if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets
|
||||||
isOldPkgList = p: ! p.outputSpecified or false && p ? pkgs && builtins.all (p: p ? tlType) p.pkgs;
|
isOldPkgList = p: ! p.outputSpecified or false && p ? pkgs && builtins.all (p: p ? tlType) p.pkgs;
|
||||||
|
@ -78,7 +84,7 @@ let
|
||||||
otherOutputs = lib.genAttrs otherOutputNames (n: builtins.catAttrs n specified.wrong);
|
otherOutputs = lib.genAttrs otherOutputNames (n: builtins.catAttrs n specified.wrong);
|
||||||
outputsToInstall = builtins.catAttrs "key" (builtins.genericClosure {
|
outputsToInstall = builtins.catAttrs "key" (builtins.genericClosure {
|
||||||
startSet = map (key: { inherit key; })
|
startSet = map (key: { inherit key; })
|
||||||
([ "out" ] ++ lib.optional (splitOutputs ? man) "man"
|
([ "out" ] ++ lib.optional (otherOutputs ? man) "man"
|
||||||
++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong)));
|
++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong)));
|
||||||
operator = _: [ ];
|
operator = _: [ ];
|
||||||
});
|
});
|
||||||
|
@ -103,6 +109,14 @@ let
|
||||||
|
|
||||||
# outputs that do not become part of the environment
|
# outputs that do not become part of the environment
|
||||||
nonEnvOutputs = lib.subtractLists [ "out" "tex" "texdoc" "texsource" "tlpkg" ] otherOutputNames;
|
nonEnvOutputs = lib.subtractLists [ "out" "tex" "texdoc" "texsource" "tlpkg" ] otherOutputNames;
|
||||||
|
|
||||||
|
# packages that contribute to config files and formats
|
||||||
|
fontMaps = lib.filter (p: p ? fontMaps && (p.tlOutputName or p.outputName == "tex")) nonbin;
|
||||||
|
sortedFontMaps = builtins.sort (a: b: a.pname < b.pname) fontMaps;
|
||||||
|
hyphenPatterns = lib.filter (p: p ? hyphenPatterns && (p.tlOutputName or p.outputName == "tex")) nonbin;
|
||||||
|
sortedHyphenPatterns = builtins.sort (a: b: a.pname < b.pname) hyphenPatterns;
|
||||||
|
formatPkgs = lib.filter (p: p ? formats && (p.outputSpecified or false -> p.tlOutputName or p.outputName == "tex") && builtins.any (f: f.enabled or true) p.formats) all;
|
||||||
|
sortedFormatPkgs = builtins.sort (a: b: a.pname < b.pname) formatPkgs;
|
||||||
};
|
};
|
||||||
|
|
||||||
# list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts`
|
# list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts`
|
||||||
|
@ -113,7 +127,7 @@ let
|
||||||
name = if __combine then "texlive-${__extraName}-${bin.texliveYear}${__extraVersion}" # texlive.combine: old name name
|
name = if __combine then "texlive-${__extraName}-${bin.texliveYear}${__extraVersion}" # texlive.combine: old name name
|
||||||
else "texlive-${bin.texliveYear}-env";
|
else "texlive-${bin.texliveYear}-env";
|
||||||
|
|
||||||
texmfdist = (buildEnv {
|
texmfdist = buildEnv' {
|
||||||
name = "${name}-texmfdist";
|
name = "${name}-texmfdist";
|
||||||
|
|
||||||
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
|
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
|
||||||
|
@ -126,14 +140,14 @@ let
|
||||||
''
|
''
|
||||||
mktexlsr "$out"
|
mktexlsr "$out"
|
||||||
'';
|
'';
|
||||||
}).overrideAttrs (_: { allowSubstitutes = true; });
|
};
|
||||||
|
|
||||||
tlpkg = (buildEnv {
|
tlpkg = buildEnv {
|
||||||
name = "${name}-tlpkg";
|
name = "${name}-tlpkg";
|
||||||
|
|
||||||
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
|
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
|
||||||
paths = builtins.catAttrs "outPath" pkgList.tlpkg;
|
paths = builtins.catAttrs "outPath" pkgList.tlpkg;
|
||||||
}).overrideAttrs (_: { allowSubstitutes = true; });
|
};
|
||||||
|
|
||||||
# the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist
|
# the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist
|
||||||
# and sometimes look into $TEXMFROOT/tlpkg (notably fmtutil, updmap look for perl modules in both)
|
# and sometimes look into $TEXMFROOT/tlpkg (notably fmtutil, updmap look for perl modules in both)
|
||||||
|
@ -170,12 +184,10 @@ let
|
||||||
(requiredTeXPackages tl);
|
(requiredTeXPackages tl);
|
||||||
};
|
};
|
||||||
|
|
||||||
# emulate split output derivation
|
# other outputs
|
||||||
splitOutputs = {
|
nonEnvOutputs = lib.genAttrs pkgList.nonEnvOutputs (outName: buildEnv' {
|
||||||
texmfdist = texmfdist // { outputSpecified = true; };
|
|
||||||
texmfroot = texmfroot // { outputSpecified = true; };
|
|
||||||
} // (lib.genAttrs pkgList.nonEnvOutputs (outName: (buildEnv {
|
|
||||||
inherit name;
|
inherit name;
|
||||||
|
outputs = [ outName ];
|
||||||
paths = builtins.catAttrs "outPath"
|
paths = builtins.catAttrs "outPath"
|
||||||
(pkgList.otherOutputs.${outName} or [ ] ++ pkgList.specifiedOutputs.${outName} or [ ]);
|
(pkgList.otherOutputs.${outName} or [ ] ++ pkgList.specifiedOutputs.${outName} or [ ]);
|
||||||
# force the output to be ${outName} or nix-env will not work
|
# force the output to be ${outName} or nix-env will not work
|
||||||
|
@ -183,11 +195,9 @@ let
|
||||||
export out="''${${outName}-}"
|
export out="''${${outName}-}"
|
||||||
'') ];
|
'') ];
|
||||||
inherit meta passthru;
|
inherit meta passthru;
|
||||||
}).overrideAttrs { outputs = [ outName ]; } // { outputSpecified = true; }));
|
});
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
# these are not part of pkgList.nonEnvOutputs and must be exported in passthru
|
|
||||||
inherit (splitOutputs) texmfdist texmfroot;
|
|
||||||
# This is set primarily to help find-tarballs.nix to do its job
|
# This is set primarily to help find-tarballs.nix to do its job
|
||||||
requiredTeXPackages = builtins.filter lib.isDerivation (pkgList.bin ++ pkgList.nonbin
|
requiredTeXPackages = builtins.filter lib.isDerivation (pkgList.bin ++ pkgList.nonbin
|
||||||
++ lib.optionals (! __fromCombineWrapper)
|
++ lib.optionals (! __fromCombineWrapper)
|
||||||
|
@ -201,13 +211,57 @@ let
|
||||||
withPackages = reqs: self (args // { requiredTeXPackages = ps: requiredTeXPackages ps ++ reqs ps; __fromCombineWrapper = false; });
|
withPackages = reqs: self (args // { requiredTeXPackages = ps: requiredTeXPackages ps ++ reqs ps; __fromCombineWrapper = false; });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# TeXLive::TLOBJ::fmtutil_cnf_lines
|
||||||
|
fmtutilLine = { name, engine, enabled ? true, patterns ? [ "-" ], options ? "", ... }:
|
||||||
|
lib.optionalString (! enabled) "#! " + "${name} ${engine} ${lib.concatStringsSep "," patterns} ${options}";
|
||||||
|
fmtutilLines = { pname, formats, ...}:
|
||||||
|
[ "#" "# from ${pname}:" ] ++ map fmtutilLine formats;
|
||||||
|
|
||||||
|
# TeXLive::TLOBJ::language_dat_lines
|
||||||
|
langDatLine = { name, file, synonyms ? [ ], ... }:
|
||||||
|
[ "${name} ${file}" ] ++ map (s: "=" + s) synonyms;
|
||||||
|
langDatLines = { pname, hyphenPatterns, ... }:
|
||||||
|
[ "% from ${pname}:" ] ++ builtins.concatMap langDatLine hyphenPatterns;
|
||||||
|
|
||||||
|
# TeXLive::TLOBJ::language_def_lines
|
||||||
|
# see TeXLive::TLUtils::parse_AddHyphen_line for default values
|
||||||
|
langDefLine = { name, file, lefthyphenmin ? "", righthyphenmin ? "", synonyms ? [ ], ... }:
|
||||||
|
map (n: "\\addlanguage{${n}}{${file}}{}{${if lefthyphenmin == "" then "2" else lefthyphenmin}}{${if righthyphenmin == "" then "3" else righthyphenmin}}")
|
||||||
|
([ name ] ++ synonyms);
|
||||||
|
langDefLines = { pname, hyphenPatterns, ... }:
|
||||||
|
[ "% from ${pname}:" ] ++ builtins.concatMap langDefLine hyphenPatterns;
|
||||||
|
|
||||||
|
# TeXLive::TLOBJ::language_lua_lines
|
||||||
|
# see TeXLive::TLUtils::parse_AddHyphen_line for default values
|
||||||
|
langLuaLine = { name, file, lefthyphenmin ? "", righthyphenmin ? "", synonyms ? [ ], ... }@args: ''
|
||||||
|
''\t['${name}'] = {
|
||||||
|
''\t''\tloader = '${file}',
|
||||||
|
''\t''\tlefthyphenmin = ${if lefthyphenmin == "" then "2" else lefthyphenmin},
|
||||||
|
''\t''\trighthyphenmin = ${if righthyphenmin == "" then "3" else righthyphenmin},
|
||||||
|
''\t''\tsynonyms = { ${lib.concatStringsSep ", " (map (s: "'${s}'") synonyms)} },
|
||||||
|
''
|
||||||
|
+ lib.optionalString (args ? file_patterns) "\t\tpatterns = '${args.file_patterns}',\n"
|
||||||
|
+ lib.optionalString (args ? file_exceptions) "\t\thyphenation = '${args.file_exceptions}',\n"
|
||||||
|
+ lib.optionalString (args ? luaspecial) "\t\tspecial = '${args.luaspecial}',\n"
|
||||||
|
+ "\t},";
|
||||||
|
langLuaLines = { pname, hyphenPatterns, ... }:
|
||||||
|
[ "-- from ${pname}:" ] ++ map langLuaLine hyphenPatterns;
|
||||||
|
|
||||||
|
assembleConfigLines = f: packages:
|
||||||
|
builtins.concatStringsSep "\n" (builtins.concatMap f packages);
|
||||||
|
|
||||||
|
updmapLines = { pname, fontMaps, ...}:
|
||||||
|
[ "# from ${pname}:" ] ++ fontMaps;
|
||||||
|
|
||||||
out =
|
out =
|
||||||
# no indent for git diff purposes
|
# no indent for git diff purposes
|
||||||
(buildEnv {
|
buildEnv' {
|
||||||
|
|
||||||
inherit name;
|
inherit name;
|
||||||
|
|
||||||
ignoreCollisions = false;
|
# use attrNames, attrValues to ensure the two lists are sorted in the same way
|
||||||
|
outputs = [ "out" ] ++ lib.optionals (! __combine) (builtins.attrNames nonEnvOutputs);
|
||||||
|
otherOutputs = lib.optionals (! __combine) (builtins.attrValues nonEnvOutputs);
|
||||||
|
|
||||||
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
|
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
|
||||||
paths = builtins.catAttrs "outPath" pkgList.bin
|
paths = builtins.catAttrs "outPath" pkgList.bin
|
||||||
|
@ -230,219 +284,26 @@ let
|
||||||
perl
|
perl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
buildInputs = [ coreutils gawk gnugrep gnused ] ++ lib.optional needsGhostscript ghostscript;
|
||||||
|
|
||||||
inherit meta passthru;
|
inherit meta passthru;
|
||||||
|
|
||||||
postBuild =
|
inherit texmfdist texmfroot;
|
||||||
# create outputs
|
|
||||||
lib.optionalString (! __combine) ''
|
|
||||||
for otherOutputName in $outputs ; do
|
|
||||||
if [[ "$otherOutputName" == 'out' ]] ; then continue ; fi
|
|
||||||
otherOutput="otherOutput_$otherOutputName"
|
|
||||||
ln -s "''${!otherOutput}" "''${!otherOutputName}"
|
|
||||||
done
|
|
||||||
'' +
|
|
||||||
# environment variables (note: only export the ones that are used in the wrappers)
|
|
||||||
''
|
|
||||||
TEXMFROOT="${texmfroot}"
|
|
||||||
TEXMFDIST="${texmfdist}"
|
|
||||||
export PATH="$out/bin:$PATH"
|
|
||||||
TEXMFSYSCONFIG="$out/share/texmf-config"
|
|
||||||
TEXMFSYSVAR="$out/share/texmf-var"
|
|
||||||
export TEXMFCNF="$TEXMFSYSVAR/web2c"
|
|
||||||
'' +
|
|
||||||
# wrap executables with required env vars as early as possible
|
|
||||||
# 1. we use the wrapped binaries in the scripts below, to catch bugs
|
|
||||||
# 2. we do not want to wrap links generated by texlinks
|
|
||||||
''
|
|
||||||
enable -f '${bash}/lib/bash/realpath' realpath
|
|
||||||
declare -i wrapCount=0
|
|
||||||
for link in "$out"/bin/*; do
|
|
||||||
target="$(realpath "$link")"
|
|
||||||
if [[ "''${target##*/}" != "''${link##*/}" ]] ; then
|
|
||||||
# detected alias with different basename, use immediate target of $link to preserve $0
|
|
||||||
# relevant for mktexfmt, repstopdf, ...
|
|
||||||
target="$(readlink "$link")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# skip non-executable files (such as context.lua)
|
fontconfigFile = makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; };
|
||||||
if [[ ! -x "$target" ]] ; then continue ; fi
|
|
||||||
|
|
||||||
rm "$link"
|
fmtutilCnf = assembleConfigLines fmtutilLines pkgList.sortedFormatPkgs;
|
||||||
makeWrapper "$target" "$link" \
|
updmapCfg = assembleConfigLines updmapLines pkgList.sortedFontMaps;
|
||||||
--inherit-argv0 \
|
|
||||||
--prefix PATH : "${
|
|
||||||
# very common dependencies that are not detected by tests.texlive.binaries
|
|
||||||
lib.makeBinPath ([ coreutils gawk gnugrep gnused ] ++ lib.optional needsGhostscript ghostscript)}:$out/bin" \
|
|
||||||
--set-default TEXMFCNF "$TEXMFCNF" \
|
|
||||||
--set-default FONTCONFIG_FILE "${
|
|
||||||
# necessary for XeTeX to find the fonts distributed with texlive
|
|
||||||
makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; }
|
|
||||||
}"
|
|
||||||
wrapCount=$((wrapCount + 1))
|
|
||||||
done
|
|
||||||
echo "wrapped $wrapCount binaries and scripts"
|
|
||||||
'' +
|
|
||||||
# patch texmf-dist -> $TEXMFDIST
|
|
||||||
# patch texmf-local -> $out/share/texmf-local
|
|
||||||
# patch texmf.cnf -> $TEXMFSYSVAR/web2c/texmf.cnf
|
|
||||||
# TODO: perhaps do lua actions?
|
|
||||||
# tried inspiration from install-tl, sub do_texmf_cnf
|
|
||||||
''
|
|
||||||
mkdir -p "$TEXMFCNF"
|
|
||||||
if [ -e "$TEXMFDIST/web2c/texmfcnf.lua" ]; then
|
|
||||||
sed \
|
|
||||||
-e "s,\(TEXMFOS[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFROOT\",g" \
|
|
||||||
-e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFDIST\",g" \
|
|
||||||
-e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSVAR\",g" \
|
|
||||||
-e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSCONFIG\",g" \
|
|
||||||
-e "s,\(TEXMFLOCAL[ ]*=[ ]*\)[^\,]*,\1\"$out/share/texmf-local\",g" \
|
|
||||||
-e "s,\$SELFAUTOLOC,$out,g" \
|
|
||||||
-e "s,selfautodir:/,$out/share/,g" \
|
|
||||||
-e "s,selfautodir:,$out/share/,g" \
|
|
||||||
-e "s,selfautoparent:/,$out/share/,g" \
|
|
||||||
-e "s,selfautoparent:,$out/share/,g" \
|
|
||||||
"$TEXMFDIST/web2c/texmfcnf.lua" > "$TEXMFCNF/texmfcnf.lua"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sed \
|
languageDat = assembleConfigLines langDatLines pkgList.sortedHyphenPatterns;
|
||||||
-e "s,\(TEXMFROOT[ ]*=[ ]*\)[^\,]*,\1$TEXMFROOT,g" \
|
languageDef = assembleConfigLines langDefLines pkgList.sortedHyphenPatterns;
|
||||||
-e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1$TEXMFDIST,g" \
|
languageLua = assembleConfigLines langLuaLines pkgList.sortedHyphenPatterns;
|
||||||
-e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSVAR,g" \
|
|
||||||
-e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSCONFIG,g" \
|
|
||||||
-e "s,\$SELFAUTOLOC,$out,g" \
|
|
||||||
-e "s,\$SELFAUTODIR,$out/share,g" \
|
|
||||||
-e "s,\$SELFAUTOPARENT,$out/share,g" \
|
|
||||||
-e "s,\$SELFAUTOGRANDPARENT,$out/share,g" \
|
|
||||||
-e "/^mpost,/d" `# CVE-2016-10243` \
|
|
||||||
"$TEXMFDIST/web2c/texmf.cnf" > "$TEXMFCNF/texmf.cnf"
|
|
||||||
'' +
|
|
||||||
# now filter hyphenation patterns and formats
|
|
||||||
(let
|
|
||||||
hyphens = lib.filter (p: p.hasHyphens or false && p.tlOutputName or p.outputName == "tex") pkgList.nonbin;
|
|
||||||
hyphenPNames = map (p: p.pname) hyphens;
|
|
||||||
formats = lib.filter (p: p ? formats && p.tlOutputName or p.outputName == "tex") pkgList.nonbin;
|
|
||||||
formatPNames = map (p: p.pname) formats;
|
|
||||||
# sed expression that prints the lines in /start/,/end/ except for /end/
|
|
||||||
section = start: end: "/${start}/,/${end}/{ /${start}/p; /${end}/!p; };\n";
|
|
||||||
script =
|
|
||||||
writeText "hyphens.sed" (
|
|
||||||
# document how the file was generated (for language.dat)
|
|
||||||
"1{ s/^(% Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; p; }\n"
|
|
||||||
# pick up the header
|
|
||||||
+ "2,/^% from/{ /^% from/!p; };\n"
|
|
||||||
# pick up all sections matching packages that we combine
|
|
||||||
+ lib.concatMapStrings (pname: section "^% from ${pname}:$" "^% from|^%%% No changes may be made beyond this point.$") hyphenPNames
|
|
||||||
# pick up the footer (for language.def)
|
|
||||||
+ "/^%%% No changes may be made beyond this point.$/,$p;\n"
|
|
||||||
);
|
|
||||||
scriptLua =
|
|
||||||
writeText "hyphens.lua.sed" (
|
|
||||||
"1{ s/^(-- Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; p; }\n"
|
|
||||||
+ "2,/^-- END of language.us.lua/p;\n"
|
|
||||||
+ lib.concatMapStrings (pname: section "^-- from ${pname}:$" "^}$|^-- from") hyphenPNames
|
|
||||||
+ "$p;\n"
|
|
||||||
);
|
|
||||||
# formats not being installed must be disabled by prepending #! (see man fmtutil)
|
|
||||||
# sed expression that enables the formats in /start/,/end/
|
|
||||||
enableFormats = pname: "/^# from ${pname}:$/,/^# from/{ s/^#! //; };\n";
|
|
||||||
fmtutilSed =
|
|
||||||
writeText "fmtutil.sed" (
|
|
||||||
# document how file was generated
|
|
||||||
"1{ s/^(# Generated by .*)$/\\1, modified by ${if __combine then "texlive.combine" else "Nixpkgs"}/; }\n"
|
|
||||||
# disable all formats, even those already disabled
|
|
||||||
+ "s/^([^#]|#! )/#! \\1/;\n"
|
|
||||||
# enable the formats from the packages being installed
|
|
||||||
+ lib.concatMapStrings enableFormats formatPNames
|
|
||||||
# clean up formats that have been disabled twice
|
|
||||||
+ "s/^#! #! /#! /;\n"
|
|
||||||
);
|
|
||||||
in ''
|
|
||||||
mkdir -p "$TEXMFSYSVAR/tex/generic/config"
|
|
||||||
for fname in tex/generic/config/language.{dat,def}; do
|
|
||||||
[[ -e "$TEXMFDIST/$fname" ]] && sed -E -n -f '${script}' "$TEXMFDIST/$fname" > "$TEXMFSYSVAR/$fname"
|
|
||||||
done
|
|
||||||
[[ -e "$TEXMFDIST"/tex/generic/config/language.dat.lua ]] && sed -E -n -f '${scriptLua}' \
|
|
||||||
"$TEXMFDIST"/tex/generic/config/language.dat.lua > "$TEXMFSYSVAR"/tex/generic/config/language.dat.lua
|
|
||||||
[[ -e "$TEXMFDIST"/web2c/fmtutil.cnf ]] && sed -E -f '${fmtutilSed}' "$TEXMFDIST"/web2c/fmtutil.cnf > "$TEXMFCNF"/fmtutil.cnf
|
|
||||||
|
|
||||||
# create $TEXMFSYSCONFIG database, make new $TEXMFSYSVAR files visible to kpathsea
|
postactionScripts = builtins.catAttrs "postactionScript" pkgList.tlpkg;
|
||||||
mktexlsr "$TEXMFSYSCONFIG" "$TEXMFSYSVAR"
|
|
||||||
'') +
|
|
||||||
# generate format links (reads fmtutil.cnf to know which ones) *after* the wrappers have been generated
|
|
||||||
''
|
|
||||||
texlinks --quiet "$out/bin"
|
|
||||||
'' +
|
|
||||||
# temporarily patch mtxrun.lua to generate uuid's deterministically from SOURCE_DATE_EPOCH
|
|
||||||
''
|
|
||||||
if [[ -e "$out/bin/mtxrun" ]]; then
|
|
||||||
mv "$out"/bin/mtxrun.lua{,.orig}
|
|
||||||
substitute "$TEXMFDIST"/scripts/context/lua/mtxrun.lua "$out"/bin/mtxrun.lua \
|
|
||||||
--replace-fail 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)"
|
|
||||||
fi
|
|
||||||
'' +
|
|
||||||
# texlive postactions (see TeXLive::TLUtils::_do_postaction_script)
|
|
||||||
# this step includes generating the ConTeXt file databases since TL 2023
|
|
||||||
(lib.concatMapStrings (pkg: ''
|
|
||||||
postaction='${pkg.postactionScript}'
|
|
||||||
case "$postaction" in
|
|
||||||
*.pl) postInterp=perl ;;
|
|
||||||
*.texlua) postInterp=texlua ;;
|
|
||||||
*) postInterp= ;;
|
|
||||||
esac
|
|
||||||
echo "postaction install script for ${pkg.pname}: ''${postInterp:+$postInterp }$postaction install $TEXMFROOT"
|
|
||||||
FORCE_SOURCE_DATE=1 TZ= $postInterp "$TEXMFROOT"/$postaction install "$TEXMFROOT"
|
|
||||||
'') (lib.filter (pkg: pkg ? postactionScript) pkgList.tlpkg)) +
|
|
||||||
# restore the original mtxrun.lua
|
|
||||||
''
|
|
||||||
if [[ -e "$out/bin/mtxrun" ]]; then
|
|
||||||
mv "$out"/bin/mtxrun.lua{.orig,}
|
|
||||||
fi
|
|
||||||
'' +
|
|
||||||
# generate formats
|
|
||||||
# TODO generate ConTeXt formats (based on fmtutil.cnf?)
|
|
||||||
''
|
|
||||||
# many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1
|
|
||||||
# libfaketime fixes non-determinism related to timestamps ignoring FORCE_SOURCE_DATE
|
|
||||||
# we cannot fix further randomness caused by luatex; for further details, see
|
|
||||||
# https://salsa.debian.org/live-team/live-build/-/blob/master/examples/hooks/reproducible/2006-reproducible-texlive-binaries-fmt-files.hook.chroot#L52
|
|
||||||
# note that calling faketime and fmtutil is fragile (faketime uses LD_PRELOAD, fmtutil calls /bin/sh, causing potential glibc issues on non-NixOS)
|
|
||||||
# so we patch fmtutil to use faketime, rather than calling faketime fmtutil
|
|
||||||
substitute "$TEXMFDIST"/scripts/texlive/fmtutil.pl fmtutil \
|
|
||||||
--replace-fail 'my $cmdline = "$eng -ini ' 'my $cmdline = "faketime -f '"'"'\@1980-01-01 00:00:00 x0.001'"'"' $eng -ini '
|
|
||||||
FORCE_SOURCE_DATE=1 TZ= perl fmtutil --sys --all | grep '^fmtutil' # too verbose
|
|
||||||
|
|
||||||
# Disable unavailable map files
|
postBuild = ''
|
||||||
echo y | updmap --sys --syncwithtrees --force 2>&1 | grep '^\(updmap\| /\)'
|
. "${./build-tex-env.sh}"
|
||||||
# Regenerate the map files (this is optional)
|
'';
|
||||||
updmap --sys --force 2>&1 | grep '^\(updmap\| /\)'
|
};
|
||||||
|
# outputsToInstall must be set *after* overrideAttrs (used in buildEnv') or it fails the checkMeta tests
|
||||||
# sort entries to improve reproducibility
|
in if __combine then out else lib.addMetaAttrs { inherit (pkgList) outputsToInstall; } out)
|
||||||
[[ -f "$TEXMFSYSCONFIG"/web2c/updmap.cfg ]] && sort -o "$TEXMFSYSCONFIG"/web2c/updmap.cfg "$TEXMFSYSCONFIG"/web2c/updmap.cfg
|
|
||||||
|
|
||||||
mktexlsr "$TEXMFSYSCONFIG" "$TEXMFSYSVAR" # to make sure (of what?)
|
|
||||||
'' +
|
|
||||||
# remove *-sys scripts since /nix/store is readonly
|
|
||||||
''
|
|
||||||
rm "$out"/bin/*-sys
|
|
||||||
'' +
|
|
||||||
# Get rid of all log files. They are not needed, but take up space
|
|
||||||
# and render the build unreproducible by their embedded timestamps
|
|
||||||
# and other non-deterministic diagnostics.
|
|
||||||
''
|
|
||||||
find "$TEXMFSYSVAR"/web2c -name '*.log' -delete
|
|
||||||
'' +
|
|
||||||
# link TEXMFDIST in $out/share for backward compatibility
|
|
||||||
''
|
|
||||||
ln -s "$TEXMFDIST" "$out"/share/texmf
|
|
||||||
''
|
|
||||||
;
|
|
||||||
}).overrideAttrs (prev:
|
|
||||||
{ allowSubstitutes = true; }
|
|
||||||
// lib.optionalAttrs (! __combine) ({
|
|
||||||
outputs = [ "out" ] ++ pkgList.nonEnvOutputs;
|
|
||||||
meta = prev.meta // { inherit (pkgList) outputsToInstall; };
|
|
||||||
} // builtins.listToAttrs
|
|
||||||
(map (out: { name = "otherOutput_" + out; value = splitOutputs.${out}; }) pkgList.nonEnvOutputs)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
in out)
|
|
||||||
|
|
328
pkgs/tools/typesetting/tex/texlive/build-tex-env.sh
Normal file
328
pkgs/tools/typesetting/tex/texlive/build-tex-env.sh
Normal file
|
@ -0,0 +1,328 @@
|
||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
|
# Replicate the post install phase of the upstream TeX Live installer.
|
||||||
|
#
|
||||||
|
# This script is based on the install-tl script and the TeXLive::TLUtils perl
|
||||||
|
# module, down to using the same (prefixed) function names and log messages.
|
||||||
|
#
|
||||||
|
# When updating to the next TeX Live release, review install-tl for changes and
|
||||||
|
# update this script accordingly.
|
||||||
|
|
||||||
|
### install-tl
|
||||||
|
|
||||||
|
# adjust texmf.cnf and texmfcnf.lua
|
||||||
|
installtl_do_texmf_cnf () {
|
||||||
|
# unlike install-tl, we make a copy of the entire texmf.cnf
|
||||||
|
# and point the binaries at $TEXMFCNF/texmf.cnf via wrappers
|
||||||
|
|
||||||
|
mkdir -p "$TEXMFCNF"
|
||||||
|
if [[ -e $texmfdist/web2c/texmfcnf.lua ]]; then
|
||||||
|
tlutils_info "writing texmfcnf.lua to $TEXMFCNF/texmfcnf.lua"
|
||||||
|
sed -e "s,\(TEXMFOS[ ]*=[ ]*\)[^\,]*,\1\"$texmfroot\",g" \
|
||||||
|
-e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1\"$texmfdist\",g" \
|
||||||
|
-e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSVAR\",g" \
|
||||||
|
-e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1\"$TEXMFSYSCONFIG\",g" \
|
||||||
|
-e "s,\(TEXMFLOCAL[ ]*=[ ]*\)[^\,]*,\1\"$out/share/texmf-local\",g" \
|
||||||
|
-e "s,\$SELFAUTOLOC,$out,g" \
|
||||||
|
-e "s,selfautodir:/,$out/share/,g" \
|
||||||
|
-e "s,selfautodir:,$out/share/,g" \
|
||||||
|
-e "s,selfautoparent:/,$out/share/,g" \
|
||||||
|
-e "s,selfautoparent:,$out/share/,g" \
|
||||||
|
"$texmfdist/web2c/texmfcnf.lua" > "$TEXMFCNF/texmfcnf.lua"
|
||||||
|
fi
|
||||||
|
|
||||||
|
tlutils_info "writing texmf.cnf to $TEXMFCNF/texmf.cnf"
|
||||||
|
sed -e "s,\(TEXMFROOT[ ]*=[ ]*\)[^\,]*,\1$texmfroot,g" \
|
||||||
|
-e "s,\(TEXMFDIST[ ]*=[ ]*\)[^\,]*,\1$texmfdist,g" \
|
||||||
|
-e "s,\(TEXMFSYSVAR[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSVAR,g" \
|
||||||
|
-e "s,\(TEXMFSYSCONFIG[ ]*=[ ]*\)[^\,]*,\1$TEXMFSYSCONFIG,g" \
|
||||||
|
-e "s,\$SELFAUTOLOC,$out,g" \
|
||||||
|
-e "s,\$SELFAUTODIR,$out/share,g" \
|
||||||
|
-e "s,\$SELFAUTOPARENT,$out/share,g" \
|
||||||
|
-e "s,\$SELFAUTOGRANDPARENT,$out/share,g" \
|
||||||
|
"$texmfdist/web2c/texmf.cnf" > "$TEXMFCNF/texmf.cnf"
|
||||||
|
}
|
||||||
|
|
||||||
|
# run postaction scripts from texlive.tlpdb
|
||||||
|
# note that the other postactions (fileassoc, ...) are Windows only
|
||||||
|
installtl_do_tlpdb_postactions () {
|
||||||
|
local postaction postInterp
|
||||||
|
if [[ -n $postactionScripts ]] ; then
|
||||||
|
tlutils_info "running package-specific postactions"
|
||||||
|
for postaction in $postactionScripts ; do
|
||||||
|
# see TeXLive::TLUtils::_installtl_do_postaction_script
|
||||||
|
case "$postaction" in
|
||||||
|
*.pl)
|
||||||
|
postInterp=perl ;;
|
||||||
|
*.texlua)
|
||||||
|
postInterp=texlua ;;
|
||||||
|
*)
|
||||||
|
postInterp= ;;
|
||||||
|
esac
|
||||||
|
tlutils_info "${postInterp:+$postInterp }$postaction install $texmfroot"
|
||||||
|
FORCE_SOURCE_DATE=1 $postInterp "$texmfroot/$postaction" install "$texmfroot" >>"$TEXMFSYSVAR/postaction-${postaction##*/}.log"
|
||||||
|
done
|
||||||
|
tlutils_info "finished with package-specific postactions"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
installtl_do_path_adjustments () {
|
||||||
|
# here install-tl would add a system symlink to the man pages
|
||||||
|
# instead we run other nixpkgs related adjustments
|
||||||
|
|
||||||
|
# generate wrappers
|
||||||
|
tlutils_info "wrapping binaries"
|
||||||
|
|
||||||
|
local bash cmd extraPaths link path target wrapCount
|
||||||
|
bash="$(command -v bash)"
|
||||||
|
enable -f "${bash%/bin/bash}"/lib/bash/realpath realpath
|
||||||
|
|
||||||
|
# common runtime dependencies
|
||||||
|
for cmd in cat awk sed grep gs ; do
|
||||||
|
# do not fail if gs is absent
|
||||||
|
path="$(PATH="$HOST_PATH" command -v "$cmd" || :)"
|
||||||
|
if [[ -n $path ]] ; then
|
||||||
|
extraPaths="${extraPaths:+$extraPaths:}${path%/"$cmd"}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
declare -i wrapCount=0
|
||||||
|
for link in "$out"/bin/* ; do
|
||||||
|
target="$(realpath "$link")"
|
||||||
|
|
||||||
|
# skip non-executable files (such as context.lua)
|
||||||
|
if [[ ! -x $target ]] ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${target##*/} != "${link##*/}" ]] ; then
|
||||||
|
# detected alias with different basename, use immediate target of $link to preserve $0
|
||||||
|
# relevant for mktexfmt, repstopdf, ...
|
||||||
|
target="$(readlink "$link")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm "$link"
|
||||||
|
makeWrapper "$target" "$link" \
|
||||||
|
--inherit-argv0 \
|
||||||
|
--prefix PATH : "$extraPaths:$out/bin" \
|
||||||
|
--set-default TEXMFCNF "$TEXMFCNF" \
|
||||||
|
--set-default FONTCONFIG_FILE "$fontconfigFile"
|
||||||
|
wrapCount=$((wrapCount + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
tlutils_info "wrapped $wrapCount binaries and scripts"
|
||||||
|
|
||||||
|
# generate format symlinks (using fmtutil.cnf)
|
||||||
|
tlutils_info "generating format symlinks"
|
||||||
|
texlinks --quiet "$out/bin"
|
||||||
|
|
||||||
|
# remove *-sys scripts since /nix/store is readonly
|
||||||
|
rm "$out"/bin/*-sys
|
||||||
|
|
||||||
|
# link TEXMFDIST in $out/share for backward compatibility
|
||||||
|
ln -s "$texmfdist" "$out"/share/texmf
|
||||||
|
|
||||||
|
# generate other outputs
|
||||||
|
local otherOutput otherOutputName
|
||||||
|
local otherOutputs="$otherOutputs"
|
||||||
|
for otherOutputName in $outputs ; do
|
||||||
|
if [[ $otherOutputName == out ]] ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
otherOutput="${otherOutputs%% *}"
|
||||||
|
otherOutputs="${otherOutputs#* }"
|
||||||
|
ln -s "$otherOutput" "${!otherOutputName}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# run all post install parts
|
||||||
|
installtl_do_postinst_stuff () {
|
||||||
|
installtl_do_texmf_cnf
|
||||||
|
|
||||||
|
# create various config files
|
||||||
|
# in principle, we could use writeText and share them across different
|
||||||
|
# environments, but the eval & build overhead is not worth the savings
|
||||||
|
tlutils_create_fmtutil
|
||||||
|
tlutils_create_updmap
|
||||||
|
tlutils_create_language_dat
|
||||||
|
tlutils_create_language_def
|
||||||
|
tlutils_create_language_lua
|
||||||
|
|
||||||
|
# make new files available
|
||||||
|
tlutils_info "running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG"
|
||||||
|
mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG"
|
||||||
|
|
||||||
|
# update font maps
|
||||||
|
tlutils_info "generating font maps"
|
||||||
|
updmap-sys --quiet --force --nohash 2>&1
|
||||||
|
# configure the paper size
|
||||||
|
# tlmgr --no-execute-actions paper letter
|
||||||
|
# install-tl: "rerun mktexlsr for updmap-sys and tlmgr paper updates"
|
||||||
|
tlutils_info "re-running mktexlsr $TEXMFSYSVAR $TEXMFSYSCONFIG"
|
||||||
|
mktexlsr "$TEXMFSYSVAR" "$TEXMFSYSCONFIG"
|
||||||
|
|
||||||
|
tlutils_update_context_cache
|
||||||
|
|
||||||
|
# generate formats
|
||||||
|
# install-tl would run fmtutil-sys $common_fmtutil_args --no-strict --all
|
||||||
|
# instead, we want fmtutil to exit with error on failure
|
||||||
|
if [[ -n $fmtutilCnf ]] ; then
|
||||||
|
tlutils_info "pre-generating all format files, be patient..."
|
||||||
|
# many formats still ignore SOURCE_DATE_EPOCH even when FORCE_SOURCE_DATE=1
|
||||||
|
# libfaketime fixes non-determinism related to timestamps ignoring FORCE_SOURCE_DATE
|
||||||
|
# we cannot fix further randomness caused by luatex; for further details, see
|
||||||
|
# https://salsa.debian.org/live-team/live-build/-/blob/master/examples/hooks/reproducible/2006-reproducible-texlive-binaries-fmt-files.hook.chroot#L52
|
||||||
|
# note that calling faketime and fmtutil is fragile (faketime uses LD_PRELOAD, fmtutil calls /bin/sh, causing potential glibc issues on non-NixOS)
|
||||||
|
# so we patch fmtutil to use faketime, rather than calling faketime fmtutil
|
||||||
|
substitute "$texmfdist"/scripts/texlive/fmtutil.pl fmtutil \
|
||||||
|
--replace-fail "my \$cmdline = \"\$eng -ini " "my \$cmdline = \"faketime -f '\@$(date +'%F %T' --date=@"$SOURCE_DATE_EPOCH") x0.001' \$eng -ini "
|
||||||
|
FORCE_SOURCE_DATE=1 perl fmtutil --quiet --strict --sys --all 2>&1 | grep '^fmtutil' # too verbose
|
||||||
|
fi
|
||||||
|
|
||||||
|
installtl_do_path_adjustments
|
||||||
|
|
||||||
|
installtl_do_tlpdb_postactions
|
||||||
|
|
||||||
|
# remove log files to improve reproducibility
|
||||||
|
find "$TEXMFSYSVAR" -name '*.log' -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
### TeXLive::TLUtils
|
||||||
|
|
||||||
|
tlutils_info () {
|
||||||
|
printf '%s\n' "texlive: $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
tlutils_create_fmtutil () {
|
||||||
|
# fmtutil.cnf created by install-tl already exists readonly in $texmfdist
|
||||||
|
# so here we need to *disable* the entries that are not in $fmtutilCnf
|
||||||
|
# and write the output in the writeable $TEXMFSYSVAR
|
||||||
|
|
||||||
|
local engine fmt line outFile sedExpr
|
||||||
|
outFile="$TEXMFSYSVAR"/web2c/fmtutil.cnf
|
||||||
|
|
||||||
|
tlutils_info "writing fmtutil.cnf to $outFile"
|
||||||
|
|
||||||
|
while IFS= read -r line ; do
|
||||||
|
# a line is 'fmt engine ...' or '#! fmt engine ...'
|
||||||
|
# (see fmtutil.pl::read_fmtutil_file)
|
||||||
|
line="${line#\#! }"
|
||||||
|
read -r fmt engine _ <<<"$line"
|
||||||
|
# if a line for the ($fmt,$engine) pair exists, remove it to avoid
|
||||||
|
# pointless warnings from fmtutil
|
||||||
|
sedExpr="$sedExpr /^(#! )?$fmt $engine /d;"
|
||||||
|
done <<<"$fmtutilCnf"
|
||||||
|
|
||||||
|
# disable all the remaining formats
|
||||||
|
sedExpr="$sedExpr /^[^#]/{ s/^/#! /p };"
|
||||||
|
|
||||||
|
{
|
||||||
|
echo "# Generated by nixpkgs"
|
||||||
|
sed -E -n -e "$sedExpr" "$texmfdist"/web2c/fmtutil.cnf
|
||||||
|
[[ -z $fmtutilCnf ]] || printf '%s' "$fmtutilCnf"
|
||||||
|
} >"$outFile"
|
||||||
|
}
|
||||||
|
|
||||||
|
tlutils_create_updmap () {
|
||||||
|
# updmap.cfg created by install-tl already exists readonly in $texmfdist
|
||||||
|
# so here we need to *disable* the entries that are not in $updmapCfg
|
||||||
|
# and write the output in the writeable $TEXMFSYSVAR
|
||||||
|
|
||||||
|
local line map outFile sedExpr
|
||||||
|
outFile="$TEXMFSYSVAR"/web2c/updmap.cfg
|
||||||
|
|
||||||
|
tlutils_info "writing updmap.cfg to $outFile"
|
||||||
|
|
||||||
|
while IFS= read -r line ; do
|
||||||
|
# a line is 'type map' or '#! type map'
|
||||||
|
# (see fmtutil.pl::read_updmap_file)
|
||||||
|
read -r _ map <<<"$line"
|
||||||
|
# if a line for $map exists, remove it to avoid
|
||||||
|
# pointless warnings from updmap
|
||||||
|
sedExpr="$sedExpr /^(#! )?[^ ]*Map $map$/d;"
|
||||||
|
done <<<"$updmapCfg"
|
||||||
|
|
||||||
|
# disable all the remaining font maps
|
||||||
|
sedExpr="$sedExpr /^[^ ]*Map/{ s/^/#! /p };"
|
||||||
|
|
||||||
|
{
|
||||||
|
echo "# Generated by nixpkgs"
|
||||||
|
sed -E -n -e "$sedExpr" "$texmfdist"/web2c/updmap.cfg
|
||||||
|
[[ -z $updmapCfg ]] || printf '%s' "$updmapCfg"
|
||||||
|
} >"$outFile"
|
||||||
|
}
|
||||||
|
|
||||||
|
tlutils__create_config_files () {
|
||||||
|
# simplified arguments
|
||||||
|
local header="$1"
|
||||||
|
local dest="$2"
|
||||||
|
local prefix="$3"
|
||||||
|
local lines="$4"
|
||||||
|
local suffix="$5"
|
||||||
|
if [[ -z "$header" || -e "$header" ]] ; then
|
||||||
|
tlutils_info "writing ${dest##*/} to $dest"
|
||||||
|
{
|
||||||
|
[[ -z $prefix ]] || printf '%s\n' "$prefix"
|
||||||
|
[[ ! -e $header ]] || cat "$header"
|
||||||
|
[[ -z $lines ]] || printf '%s\n' "$lines"
|
||||||
|
[[ -z $suffix ]] || printf '%s\n' "$suffix"
|
||||||
|
} >"$dest"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
tlutils_create_language_dat () {
|
||||||
|
tlutils__create_config_files \
|
||||||
|
"$texmfdist"/tex/generic/config/language.us \
|
||||||
|
"$TEXMFSYSVAR"/tex/generic/config/language.dat \
|
||||||
|
'% Generated by nixpkgs' \
|
||||||
|
"$languageDat" \
|
||||||
|
''
|
||||||
|
}
|
||||||
|
|
||||||
|
tlutils_create_language_def () {
|
||||||
|
tlutils__create_config_files \
|
||||||
|
"$texmfdist"/tex/generic/config/language.us.def \
|
||||||
|
"$TEXMFSYSVAR"/tex/generic/config/language.def \
|
||||||
|
'' \
|
||||||
|
"$languageDef" \
|
||||||
|
'%%% No changes may be made beyond this point.
|
||||||
|
|
||||||
|
\uselanguage {USenglish} %%% This MUST be the last line of the file.'
|
||||||
|
}
|
||||||
|
|
||||||
|
tlutils_create_language_lua () {
|
||||||
|
tlutils__create_config_files \
|
||||||
|
"$texmfdist"/tex/generic/config/language.us.lua \
|
||||||
|
"$TEXMFSYSVAR"/tex/generic/config/language.dat.lua \
|
||||||
|
'-- Generated by nixpkgs' \
|
||||||
|
"$languageLua" \
|
||||||
|
'}'
|
||||||
|
}
|
||||||
|
|
||||||
|
tlutils_update_context_cache () {
|
||||||
|
if [[ -x $out/bin/mtxrun ]] ; then
|
||||||
|
tlutils_info "setting up ConTeXt cache"
|
||||||
|
|
||||||
|
# temporarily patch mtxrun.lua to generate uuid's deterministically from SOURCE_DATE_EPOCH
|
||||||
|
mv "$out"/bin/mtxrun.lua{,.orig}
|
||||||
|
substitute "$out"/bin/mtxrun.lua.orig "$out"/bin/mtxrun.lua \
|
||||||
|
--replace-fail 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)"
|
||||||
|
|
||||||
|
# this is very verbose, save the output for debugging purposes
|
||||||
|
{
|
||||||
|
mtxrun --generate
|
||||||
|
context --luatex --generate
|
||||||
|
[[ ! -x $out/bin/luajittex ]] || context --luajittex --generate
|
||||||
|
} >"$TEXMFSYSVAR"/context-cache.log
|
||||||
|
|
||||||
|
mv "$out"/bin/mtxrun.lua{.orig,}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# init variables (export only the ones that are used in the wrappers)
|
||||||
|
export PATH="$out/bin:$PATH"
|
||||||
|
TEXMFSYSCONFIG="$out/share/texmf-config"
|
||||||
|
TEXMFSYSVAR="$out/share/texmf-var"
|
||||||
|
export TEXMFCNF="$TEXMFSYSVAR/web2c"
|
||||||
|
|
||||||
|
installtl_do_postinst_stuff
|
|
@ -82,8 +82,9 @@ let
|
||||||
outputSpecified = true;
|
outputSpecified = true;
|
||||||
inherit tex;
|
inherit tex;
|
||||||
} // lib.optionalAttrs (args ? deps) { tlDeps = args.deps; }
|
} // lib.optionalAttrs (args ? deps) { tlDeps = args.deps; }
|
||||||
|
// lib.optionalAttrs (args ? fontMaps) { inherit (args) fontMaps; }
|
||||||
// lib.optionalAttrs (args ? formats) { inherit (args) formats; }
|
// lib.optionalAttrs (args ? formats) { inherit (args) formats; }
|
||||||
// lib.optionalAttrs hasHyphens { inherit hasHyphens; }
|
// lib.optionalAttrs (args ? hyphenPatterns) { inherit (args) hyphenPatterns; }
|
||||||
// lib.optionalAttrs (args ? postactionScript) { inherit (args) postactionScript; }
|
// lib.optionalAttrs (args ? postactionScript) { inherit (args) postactionScript; }
|
||||||
// lib.optionalAttrs hasDocfiles { texdoc = texdoc; }
|
// lib.optionalAttrs hasDocfiles { texdoc = texdoc; }
|
||||||
// lib.optionalAttrs hasSource { texsource = texsource; }
|
// lib.optionalAttrs hasSource { texsource = texsource; }
|
||||||
|
|
|
@ -80,6 +80,22 @@ $a}
|
||||||
D # restart cycle from the current line
|
D # restart cycle from the current line
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# extract font maps
|
||||||
|
/^execute add.*Map /{
|
||||||
|
# open a list
|
||||||
|
i\ fontMaps = [
|
||||||
|
|
||||||
|
# loop through following map lines
|
||||||
|
:next-map
|
||||||
|
s/^\n?execute add(.*Map .*)$/ "\1"/p # print map
|
||||||
|
s/^.*$// # clear pattern space
|
||||||
|
N; /^\nexecute add.*Map /b next-map
|
||||||
|
|
||||||
|
# close the string
|
||||||
|
i\ ];
|
||||||
|
D # restart cycle from the current line
|
||||||
|
}
|
||||||
|
|
||||||
# detect presence of notable files
|
# detect presence of notable files
|
||||||
/^docfiles /{
|
/^docfiles /{
|
||||||
s/^.*$// # ignore the first line
|
s/^.*$// # ignore the first line
|
||||||
|
@ -129,9 +145,36 @@ $a}
|
||||||
# extract postaction scripts (right now, at most one per package, so a string suffices)
|
# extract postaction scripts (right now, at most one per package, so a string suffices)
|
||||||
s/^postaction script file=(.*)$/ postactionScript = "\1";/p
|
s/^postaction script file=(.*)$/ postactionScript = "\1";/p
|
||||||
|
|
||||||
# extract hyphenation patterns and formats
|
# extract hyphenation patterns
|
||||||
# (this may create duplicate lines, use uniq to remove them)
|
/^execute\sAddHyphen\s/{
|
||||||
/^execute\sAddHyphen/i\ hasHyphens = true;
|
# open a list
|
||||||
|
i\ hyphenPatterns = [
|
||||||
|
|
||||||
|
# create one attribute set per hyphenation pattern
|
||||||
|
|
||||||
|
# plain keys: name, lefthyphenmin, righthyphenmin, file, file_patterns, file_exceptions, comment
|
||||||
|
# optionally double quoted key: luaspecial, comment
|
||||||
|
# comma-separated lists: databases, synonyms
|
||||||
|
:next-hyphen
|
||||||
|
s/(^|\n)execute\sAddHyphen/ {/
|
||||||
|
s/\s+luaspecial="([^"]+)"/\n luaspecial = "\1";/
|
||||||
|
s/\s+(name|lefthyphenmin|righthyphenmin|file|file_patterns|file_exceptions|luaspecial|comment)=([^ \t\n]*)/\n \1 = "\2";/g
|
||||||
|
s/\s+(databases|synonyms)=([^ \t\n]+)/\n \1 = [ "\2" ];/g
|
||||||
|
s/$/\n }/
|
||||||
|
|
||||||
|
:split-hyphens
|
||||||
|
s/"([^,]+),([^"]+)" ]/"\1" "\2" ]/;
|
||||||
|
t split-hyphens # repeat until there are no commas
|
||||||
|
|
||||||
|
p
|
||||||
|
s/^.*$// # clear pattern space
|
||||||
|
N
|
||||||
|
/^\nexecute\sAddHyphen\s/b next-hyphen
|
||||||
|
|
||||||
|
# close the list
|
||||||
|
i\ ];
|
||||||
|
D # restart cycle from the current line
|
||||||
|
}
|
||||||
|
|
||||||
# extract format details
|
# extract format details
|
||||||
/^execute\sAddFormat\s/{
|
/^execute\sAddFormat\s/{
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -79,6 +79,7 @@ mapAliases ({
|
||||||
arcanPackages = throw "arcanPackages was removed and its sub-attributes were promoted to top-level"; # Added 2023-11-26
|
arcanPackages = throw "arcanPackages was removed and its sub-attributes were promoted to top-level"; # Added 2023-11-26
|
||||||
archiveopteryx = throw "archiveopteryx depended on an unsupported version of OpenSSL and was unmaintained"; # Added 2024-01-03
|
archiveopteryx = throw "archiveopteryx depended on an unsupported version of OpenSSL and was unmaintained"; # Added 2024-01-03
|
||||||
ardour_6 = throw "ardour_6 has been removed in favor of newer versions"; # Added 2023-10-13
|
ardour_6 = throw "ardour_6 has been removed in favor of newer versions"; # Added 2023-10-13
|
||||||
|
aria = aria2; # Added 2024-03-26
|
||||||
aseprite-unfree = aseprite; # Added 2023-08-26
|
aseprite-unfree = aseprite; # Added 2023-08-26
|
||||||
asls = throw "asls has been removed: abandoned by upstream"; # Added 2023-03-16
|
asls = throw "asls has been removed: abandoned by upstream"; # Added 2023-03-16
|
||||||
asterisk_16 = throw "asterisk_16: Asterisk 16 is end of life and has been removed"; # Added 2023-04-19
|
asterisk_16 = throw "asterisk_16: Asterisk 16 is end of life and has been removed"; # Added 2023-04-19
|
||||||
|
@ -501,6 +502,7 @@ mapAliases ({
|
||||||
haxe_3_2 = throw "'haxe_3_2' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
|
haxe_3_2 = throw "'haxe_3_2' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
|
||||||
haxe_3_4 = throw "'haxe_3_4' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
|
haxe_3_4 = throw "'haxe_3_4' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
|
||||||
hepmc = throw "'hepmc' has been renamed to/replaced by 'hepmc2'"; # Converted to throw 2023-09-10
|
hepmc = throw "'hepmc' has been renamed to/replaced by 'hepmc2'"; # Converted to throw 2023-09-10
|
||||||
|
hikari = throw "hikari has been removed from nixpkgs, it was unmaintained and required wlroots_0_15 at the time of removal"; # Added 2024-03-28
|
||||||
hip = throw "'hip' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
|
hip = throw "'hip' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
|
||||||
hipcc = throw "'hipcc' has been replaced with 'rocmPackages.hipcc'"; # Added 2023-10-08
|
hipcc = throw "'hipcc' has been replaced with 'rocmPackages.hipcc'"; # Added 2023-10-08
|
||||||
hipchat = throw "'hipchat' has been discontinued since 2019; upstream recommends Slack."; # Added 2023-12-02
|
hipchat = throw "'hipchat' has been discontinued since 2019; upstream recommends Slack."; # Added 2023-12-02
|
||||||
|
@ -1287,6 +1289,7 @@ mapAliases ({
|
||||||
win-virtio = virtio-win; # Added 2023-10-17
|
win-virtio = virtio-win; # Added 2023-10-17
|
||||||
win-signed-gplpv-drivers = throw "win-signed-gplpv-drivers has been removed from nixpkgs, as it's unmaintained: https://help.univention.com/t/installing-signed-gplpv-drivers/21828"; # Added 2023-08-17
|
win-signed-gplpv-drivers = throw "win-signed-gplpv-drivers has been removed from nixpkgs, as it's unmaintained: https://help.univention.com/t/installing-signed-gplpv-drivers/21828"; # Added 2023-08-17
|
||||||
wlroots_0_14 = throw "'wlroots_0_14' has been removed in favor of newer versions"; # Added 2023-07-29
|
wlroots_0_14 = throw "'wlroots_0_14' has been removed in favor of newer versions"; # Added 2023-07-29
|
||||||
|
wlroots_0_15 = throw "'wlroots_0_15' has been removed in favor of newer versions"; # Added 2024-03-28
|
||||||
wordpress6_1 = throw "'wordpress6_1' has been removed in favor of the latest version"; # Added 2023-10-10
|
wordpress6_1 = throw "'wordpress6_1' has been removed in favor of the latest version"; # Added 2023-10-10
|
||||||
wordpress6_2 = throw "'wordpress6_2' has been removed in favor of the latest version"; # Added 2023-10-10
|
wordpress6_2 = throw "'wordpress6_2' has been removed in favor of the latest version"; # Added 2023-10-10
|
||||||
wormhole-rs = magic-wormhole-rs; # Added 2022-05-30. preserve, reason: Arch package name, main binary name
|
wormhole-rs = magic-wormhole-rs; # Added 2022-05-30. preserve, reason: Arch package name, main binary name
|
||||||
|
|
|
@ -4194,7 +4194,6 @@ with pkgs;
|
||||||
aria2 = callPackage ../tools/networking/aria2 {
|
aria2 = callPackage ../tools/networking/aria2 {
|
||||||
inherit (darwin.apple_sdk.frameworks) Security;
|
inherit (darwin.apple_sdk.frameworks) Security;
|
||||||
};
|
};
|
||||||
aria = aria2;
|
|
||||||
|
|
||||||
as-tree = callPackage ../tools/misc/as-tree { };
|
as-tree = callPackage ../tools/misc/as-tree { };
|
||||||
|
|
||||||
|
@ -31074,8 +31073,6 @@ with pkgs;
|
||||||
};
|
};
|
||||||
|
|
||||||
fvwm = fvwm2;
|
fvwm = fvwm2;
|
||||||
fvwm2 = callPackage ../applications/window-managers/fvwm/2.6.nix { };
|
|
||||||
fvwm3 = callPackage ../applications/window-managers/fvwm/3.nix { };
|
|
||||||
|
|
||||||
ganttproject-bin = callPackage ../applications/misc/ganttproject-bin {
|
ganttproject-bin = callPackage ../applications/misc/ganttproject-bin {
|
||||||
jre = openjdk17.override {
|
jre = openjdk17.override {
|
||||||
|
@ -32056,7 +32053,6 @@ with pkgs;
|
||||||
super-productivity = callPackage ../applications/office/super-productivity { };
|
super-productivity = callPackage ../applications/office/super-productivity { };
|
||||||
|
|
||||||
inherit (callPackages ../development/libraries/wlroots {})
|
inherit (callPackages ../development/libraries/wlroots {})
|
||||||
wlroots_0_15
|
|
||||||
wlroots_0_16
|
wlroots_0_16
|
||||||
wlroots_0_17
|
wlroots_0_17
|
||||||
wlroots;
|
wlroots;
|
||||||
|
@ -32087,10 +32083,6 @@ with pkgs;
|
||||||
|
|
||||||
wbg = callPackage ../applications/misc/wbg { };
|
wbg = callPackage ../applications/misc/wbg { };
|
||||||
|
|
||||||
hikari = callPackage ../applications/window-managers/hikari {
|
|
||||||
wlroots = wlroots_0_15;
|
|
||||||
};
|
|
||||||
|
|
||||||
i3 = callPackage ../applications/window-managers/i3 {
|
i3 = callPackage ../applications/window-managers/i3 {
|
||||||
xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
|
xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
|
||||||
};
|
};
|
||||||
|
@ -38502,9 +38494,7 @@ with pkgs;
|
||||||
|
|
||||||
getdp = callPackage ../applications/science/math/getdp { };
|
getdp = callPackage ../applications/science/math/getdp { };
|
||||||
|
|
||||||
gurobi = callPackage ../applications/science/math/gurobi {
|
gurobi = callPackage ../applications/science/math/gurobi { };
|
||||||
python3 = python310;
|
|
||||||
};
|
|
||||||
|
|
||||||
jags = callPackage ../applications/science/math/jags { };
|
jags = callPackage ../applications/science/math/jags { };
|
||||||
|
|
||||||
|
@ -41324,8 +41314,6 @@ with pkgs;
|
||||||
|
|
||||||
xmcp = callPackage ../tools/X11/xmcp { };
|
xmcp = callPackage ../tools/X11/xmcp { };
|
||||||
|
|
||||||
yesplaymusic = callPackage ../applications/audio/yesplaymusic { };
|
|
||||||
|
|
||||||
ymuse = callPackage ../applications/audio/ymuse { };
|
ymuse = callPackage ../applications/audio/ymuse { };
|
||||||
|
|
||||||
zeyple = callPackage ../misc/zeyple { };
|
zeyple = callPackage ../misc/zeyple { };
|
||||||
|
|
|
@ -12099,10 +12099,10 @@ with self; {
|
||||||
|
|
||||||
HTTPBody = buildPerlPackage {
|
HTTPBody = buildPerlPackage {
|
||||||
pname = "HTTP-Body";
|
pname = "HTTP-Body";
|
||||||
version = "1.22";
|
version = "1.23";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.22.tar.gz";
|
url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.23.tar.gz";
|
||||||
hash = "sha256-/A0sWFs70VMtkmCZZdWJ4Mh804DnzKQvua0KExEicpc=";
|
hash = "sha256-7OmB9BYWNaL7piFdAlcZXlOMTyNDhFMFAd/bahvY1jY=";
|
||||||
};
|
};
|
||||||
buildInputs = [ TestDeep ];
|
buildInputs = [ TestDeep ];
|
||||||
propagatedBuildInputs = [ HTTPMessage ];
|
propagatedBuildInputs = [ HTTPMessage ];
|
||||||
|
|
|
@ -2463,6 +2463,18 @@ self: super: with self; {
|
||||||
|
|
||||||
cpyparsing = callPackage ../development/python-modules/cpyparsing { };
|
cpyparsing = callPackage ../development/python-modules/cpyparsing { };
|
||||||
|
|
||||||
|
craft-application-1 = callPackage ../development/python-modules/craft-application-1 { };
|
||||||
|
|
||||||
|
craft-archives = callPackage ../development/python-modules/craft-archives { };
|
||||||
|
|
||||||
|
craft-cli = callPackage ../development/python-modules/craft-cli { };
|
||||||
|
|
||||||
|
craft-grammar = callPackage ../development/python-modules/craft-grammar { };
|
||||||
|
|
||||||
|
craft-parts = callPackage ../development/python-modules/craft-parts { };
|
||||||
|
|
||||||
|
craft-providers = callPackage ../development/python-modules/craft-providers { };
|
||||||
|
|
||||||
cram = callPackage ../development/python-modules/cram { };
|
cram = callPackage ../development/python-modules/cram { };
|
||||||
|
|
||||||
cramjam = callPackage ../development/python-modules/cramjam { };
|
cramjam = callPackage ../development/python-modules/cramjam { };
|
||||||
|
@ -5131,12 +5143,7 @@ self: super: with self; {
|
||||||
|
|
||||||
guppy3 = callPackage ../development/python-modules/guppy3 { };
|
guppy3 = callPackage ../development/python-modules/guppy3 { };
|
||||||
|
|
||||||
gurobipy = if stdenv.hostPlatform.isDarwin then
|
gurobipy = callPackage ../development/python-modules/gurobipy { };
|
||||||
callPackage ../development/python-modules/gurobipy/darwin.nix { }
|
|
||||||
else if stdenv.hostPlatform.system == "x86_64-linux" then
|
|
||||||
callPackage ../development/python-modules/gurobipy/linux.nix { }
|
|
||||||
else
|
|
||||||
throw "gurobipy not yet supported on ${stdenv.hostPlatform.system}";
|
|
||||||
|
|
||||||
guzzle-sphinx-theme = callPackage ../development/python-modules/guzzle-sphinx-theme { };
|
guzzle-sphinx-theme = callPackage ../development/python-modules/guzzle-sphinx-theme { };
|
||||||
|
|
||||||
|
@ -10628,6 +10635,8 @@ self: super: with self; {
|
||||||
|
|
||||||
pydantic-settings = callPackage ../development/python-modules/pydantic-settings { };
|
pydantic-settings = callPackage ../development/python-modules/pydantic-settings { };
|
||||||
|
|
||||||
|
pydantic-yaml-0 = callPackage ../development/python-modules/pydantic-yaml-0 { };
|
||||||
|
|
||||||
pydash = callPackage ../development/python-modules/pydash { };
|
pydash = callPackage ../development/python-modules/pydash { };
|
||||||
|
|
||||||
pydata-google-auth = callPackage ../development/python-modules/pydata-google-auth { };
|
pydata-google-auth = callPackage ../development/python-modules/pydata-google-auth { };
|
||||||
|
@ -13853,6 +13862,8 @@ self: super: with self; {
|
||||||
|
|
||||||
snakeviz = callPackage ../development/python-modules/snakeviz { };
|
snakeviz = callPackage ../development/python-modules/snakeviz { };
|
||||||
|
|
||||||
|
snap-helpers = callPackage ../development/python-modules/snap-helpers { };
|
||||||
|
|
||||||
snapcast = callPackage ../development/python-modules/snapcast { };
|
snapcast = callPackage ../development/python-modules/snapcast { };
|
||||||
|
|
||||||
snapshottest = callPackage ../development/python-modules/snapshottest { };
|
snapshottest = callPackage ../development/python-modules/snapshottest { };
|
||||||
|
@ -13977,6 +13988,10 @@ self: super: with self; {
|
||||||
|
|
||||||
spatial-image = callPackage ../development/python-modules/spatial-image { };
|
spatial-image = callPackage ../development/python-modules/spatial-image { };
|
||||||
|
|
||||||
|
spdx = callPackage ../development/python-modules/spdx { };
|
||||||
|
|
||||||
|
spdx-lookup = callPackage ../development/python-modules/spdx-lookup { };
|
||||||
|
|
||||||
spdx-tools = callPackage ../development/python-modules/spdx-tools { };
|
spdx-tools = callPackage ../development/python-modules/spdx-tools { };
|
||||||
|
|
||||||
speaklater = callPackage ../development/python-modules/speaklater { };
|
speaklater = callPackage ../development/python-modules/speaklater { };
|
||||||
|
|
Loading…
Reference in New Issue
Block a user