Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-11-09 18:05:32 +00:00
committed by GitHub
18 changed files with 172 additions and 150 deletions
+1 -2
View File
@@ -2312,8 +2312,7 @@ in
environment.etc = lib.mapAttrs' makePAMService enabledServices;
systemd =
lib.optionalAttrs
(lib.any (service: service.updateWtmp) (lib.attrValues config.security.pam.services))
lib.mkIf (lib.any (service: service.updateWtmp) (lib.attrValues config.security.pam.services))
{
tmpfiles.packages = [ pkgs.util-linux.lastlog ]; # /lib/tmpfiles.d/lastlog2-tmpfiles.conf
services.lastlog2-import = {
@@ -0,0 +1,11 @@
1755c55e08aec3872db177464e0bc3f48c89aa40c1ec32605b472d88f6e92963eb08a10aa37bc47e837ae693db18652f40dfbcd6bf26f07278f0566a19c72cd5 poster.jpg
3ec33eae8153b6e2bdfff8157b332e6f0cfbc14d0c30e6a34042deecf0cff01ee19ca54314678b5ad970ae669da8cb91425e96253caf91d95ae01a62917827b7 Sintel.de.srt
ceac1ea59a9224b26946c6683acfaae27e1551c696fb2c632b55151c17f3faa8f930bbd93904cd7a13a896ad3d670b01e2f2bc1a8851060e05fedd85f804ba17 Sintel.en.srt
6efbc68f872c212f6579c5a5d42d6c2a60d775d32be8a7badcd147dbfc07b24cb2cc97e04a796af4002fcd4c8860a7061aed5d59a1280e4352d1bbd701d612a8 Sintel.es.srt
5619ad5bc7ca82e7f1f3b5e9197ab6ef6f5edd7293d396a3c036fef95d5ef592cf9e8d403e8532f4ba71a93fc9556614bfba3473eceae392d2e3175116c06f95 Sintel.fr.srt
fa93c051491b4e11f8e7a643c2138198f795315c942134b94ceace1adda4a5b28dc58b01b507e0da4c26784fc968f47bca1409f985eec2bf80c3e694662ed7c5 Sintel.it.srt
63426110ed7aa60ed3525078fa324cef4276393b4ada55e0a8cf8292500fdd59c2984e299a4e4f65e4f273b8ae2624da22700de4a55054b00e9d987f606c3c7f Sintel.mp4
5fb04c25fda9dada8c808a9f289cec2cca001d60966b69d61ad663240a869c76dd0aff605122823ccbe199e266331f6a4b11a414bba92999a7041c4b534ef432 Sintel.nl.srt
510f052cbbda0b9fc31679b9a26cc16766df9054fc15b66cff475975725a1e8452e69a28a6f90bb965330a49e49bbf42a90efb13de07eaece7d273ef1ca7978a Sintel.pl.srt
510dc0eca608bd0fdd9633ea80365c916f8c4f0fd8e2fdf77534f455f03814401d210df47d940be4fd2fb7ab4c3ff5038a548846c5fa9badbe77b1731b3cae29 Sintel.pt.srt
57c014bd3d781a94850f85fd6c9364421e17cb2c4e25e22c0a8578f50c874e3f2eaf5a0b3da615db7dc95efbe2e6be7c7238e2e1ba27671c818b9e34b05ee1d0 Sintel.ru.srt
Binary file not shown.
+65 -25
View File
@@ -2,15 +2,29 @@
lib,
testers,
fetchtorrent,
emptyDirectory,
...
}:
let
# This meta attribute isn't used anywhere, as the actual derivation
# realizations are only empty directories. It's maintained here as a record
# of the details of the intermediate product that exists briefly while
# building the test derivations.
#
# Ideally we'd use a smaller download, but neither of the Bittorrent backends
# supported by fetchtorrent appear to support torrents that are only reliably
# seeded by HTTP sources rather than other people using Bittorrent clients.
# Sintel was the smallest torrent I could find that had a free license and
# was reliably seeded by other Bittorrent clients.
#
# For more information, see the discussion at
# https://github.com/NixOS/nixpkgs/pull/432091/files/bd13421b2b70f3f125061018c800439ef2d43e8d#r2264073113
sintel.meta = {
description = "An open source short film to show off open source technologies.";
longDescription = ''
An independently produced short film, initiated by the Blender Foundation
as a means to further improve andvalidate the free/open source 3D
as a means to further improve and validate the free/open source 3D
creation suite Blender.
'';
license = lib.licenses.cc-by-30;
@@ -18,74 +32,100 @@ let
};
# Via https://webtorrent.io/free-torrents
http.url = "https://webtorrent.io/torrents/sintel.torrent";
http.url = "${./test-sintel.torrent}";
magnet.url = "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent";
flattened.hash = "sha256-EzbmBiTEWOlFUNaV5R4eDeD9EBbp6d93rfby88ACg0s=";
unflattened.hash = "sha256-lVrlo1AwmFcxwsIsY976VYqb3hAprFH1xWYdmlTuw0U=";
# Sintel isn't a massive download, but it's not small. There's also no real
# value in storing copies of it in Nix caches, which is what happens by
# default when this test succeeds. Avoid that by verifying the downloaded
# files using `sha512sum` in the post-fetch hook, then deleting the files so
# the actual derivation result is an empty directory.
#
# Chain `&&` in the postFetch phase because the transmission backend does not
# run that phase with `errexit` enabled.
flattened.postFetch = ''
pushd "$out" &&
sha512sum --check --strict ${./test-hashes.sha512sum} &&
sed 's/.* //' ${./test-hashes.sha512sum} | xargs rm --verbose &&
popd
'';
unflattened.postFetch = ''
pushd "$out" &&
pushd Sintel &&
sha512sum --check --strict ${./test-hashes.sha512sum} &&
sed 's/.* //' ${./test-hashes.sha512sum} | xargs rm --verbose &&
popd &&
rm --dir --verbose Sintel &&
popd
'';
# Fixed output derivation hash is identical for all derivations: the empty
# directory.
fetchtorrentWithHash =
args:
fetchtorrent (
{
hash = builtins.convertHash {
hash = emptyDirectory.outputHash;
toHashFormat = "sri";
hashAlgo = emptyDirectory.outputHashAlgo;
};
}
// args
);
in
# Seems almost but not quite worth using lib.mapCartesianProduct...
builtins.mapAttrs (n: v: testers.invalidateFetcherByDrvHash fetchtorrent v) {
builtins.mapAttrs (n: v: testers.invalidateFetcherByDrvHash fetchtorrentWithHash v) {
http-link = {
inherit (http) url;
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
http-link-transmission = {
inherit (http) url;
backend = "transmission";
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
magnet-link = {
inherit (magnet) url;
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
magnet-link-transmission = {
inherit (magnet) url;
backend = "transmission";
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
http-link-rqbit = {
inherit (http) url;
backend = "rqbit";
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
magnet-link-rqbit = {
inherit (magnet) url;
backend = "rqbit";
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
http-link-rqbit-flattened = {
inherit (http) url;
backend = "rqbit";
flatten = true;
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
magnet-link-rqbit-flattened = {
inherit (magnet) url;
backend = "rqbit";
flatten = true;
inherit (flattened) hash;
inherit (sintel) meta;
inherit (flattened) postFetch;
};
http-link-rqbit-unflattened = {
inherit (http) url;
backend = "rqbit";
flatten = false;
inherit (unflattened) hash;
inherit (sintel) meta;
inherit (unflattened) postFetch;
};
magnet-link-rqbit-unflattened = {
inherit (magnet) url;
backend = "rqbit";
flatten = false;
inherit (unflattened) hash;
inherit (sintel) meta;
inherit (unflattened) postFetch;
};
}
+2 -2
View File
@@ -1,7 +1,7 @@
{
lib,
stdenv,
rust,
buildPackages,
rustPlatform,
hdr10plus_tool,
cargo-c,
@@ -10,7 +10,7 @@
let
inherit (lib) optionals concatStringsSep;
inherit (rust.envVars) setEnv;
inherit (buildPackages.rust.envVars) setEnv;
in
rustPlatform.buildRustPackage (finalAttrs: {
__structuredAttrs = true;
+4 -4
View File
@@ -3,7 +3,7 @@
rustPlatform,
fetchCrate,
cargo-c,
rust,
buildPackages,
stdenv,
}:
@@ -27,19 +27,19 @@ rustPlatform.buildRustPackage rec {
buildPhase = ''
runHook preBuild
${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postBuild
'';
installPhase = ''
runHook preInstall
${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postInstall
'';
checkPhase = ''
runHook preCheck
${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postCheck
'';
+3 -3
View File
@@ -2,7 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
rust,
buildPackages,
rustPlatform,
cargo-c,
python3,
@@ -37,13 +37,13 @@ rustPlatform.buildRustPackage rec {
postBuild = ''
pushd imagequant-sys
${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
popd
'';
postInstall = ''
pushd imagequant-sys
${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
popd
'';
+4 -4
View File
@@ -1,6 +1,6 @@
{
version = "1.27.10";
hash = "sha256-O/gU5EKeEoyQDsO1aJh3twbZzSnKb1pLt9t4GfYlHEE=";
npmDepsHash = "sha256-r4hategU6aE05fvpXkgMNtFyWTv6eumLzlevjOT0/dM=";
vendorHash = "sha256-TM8b16Y+629gBz5XlXXimDWBAfOq9w8es4v984zVUbk=";
version = "1.27.11";
hash = "sha256-0moTf5DEI+tw6Kx6/6cWzGdgem7rAfsj4iJg9I7Pjbk=";
npmDepsHash = "sha256-P9uTFeJ8ikK3Hp9bFt33mIzqp9duvMs1fYw1ErwXg1A=";
vendorHash = "sha256-MgxpoNj8Rv98AnqvWWewoFgvHWSD16MXLlkkVoQRGTE=";
}
@@ -5,5 +5,6 @@
python3.pkgs.toPythonApplication (
python3.pkgs.pyglossary.override {
enableGui = true;
enableCmd = true;
}
)
+5 -1
View File
@@ -2,4 +2,8 @@
python3,
}:
python3.pkgs.toPythonApplication python3.pkgs.pyglossary
python3.pkgs.toPythonApplication (
python3.pkgs.pyglossary.override {
enableCmd = true;
}
)
+3 -3
View File
@@ -1,6 +1,6 @@
{
lib,
rust,
buildPackages,
stdenv,
rustPlatform,
fetchCrate,
@@ -43,11 +43,11 @@ rustPlatform.buildRustPackage rec {
checkType = "debug";
postBuild = ''
${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
'';
postInstall = ''
${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
'';
passthru = {
+4 -4
View File
@@ -6,7 +6,7 @@
rustPlatform,
cargo-c,
validatePkgConfig,
rust,
buildPackages,
libiconv,
curl,
apacheHttpd,
@@ -42,19 +42,19 @@ stdenv.mkDerivation (finalAttrs: {
buildPhase = ''
runHook preBuild
${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postBuild
'';
installPhase = ''
runHook preInstall
${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postInstall
'';
checkPhase = ''
runHook preCheck
${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postCheck
'';
+54
View File
@@ -0,0 +1,54 @@
{
asciinema,
fetchFromGitHub,
fetchYarnDeps,
lib,
makeWrapper,
nodejs,
stdenv,
versionCheckHook,
yarnBuildHook,
yarnConfigHook,
yarnInstallHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "svg-term";
version = "2.1.1";
src = fetchFromGitHub {
owner = "marionebl";
repo = "svg-term-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-sB4/SM48UmqaYKj6kzfjzITroL0l/QL4Gg5GSrQ+pdk=";
};
yarnOfflineCache = fetchYarnDeps {
inherit (finalAttrs) src;
hash = "sha256-4Q1NP3VhnACcrZ1XUFPtgSlk1Eh8Kp02rOgijoRJFcI=";
};
nativeBuildInputs = [
makeWrapper
nodejs
yarnBuildHook
yarnConfigHook
yarnInstallHook
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
# Some things work without asciinema on the PATH, but --command does not.
postInstall = ''
wrapProgram $out/bin/svg-term --prefix PATH : ${lib.makeBinPath [ asciinema ]}
'';
meta = {
description = "Share terminal sessions as razor-sharp animated SVG everywhere";
homepage = "https://github.com/marionebl/svg-term-cli";
license = lib.licenses.mit;
mainProgram = "svg-term";
maintainers = with lib.maintainers; [ samestep ];
};
})
+3 -3
View File
@@ -1,6 +1,6 @@
{
lib,
rust,
buildPackages,
stdenv,
fetchFromGitHub,
rustPlatform,
@@ -29,11 +29,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
];
postBuild = ''
${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
'';
postInstall = ''
${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd yr \
@@ -29,14 +29,14 @@
buildPythonPackage rec {
pname = "ax-platform";
version = "1.1.2";
version = "1.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "facebook";
repo = "ax";
tag = version;
hash = "sha256-DHB/BcD913gano5N7dlAbB+Tfg1dMTRP3AR1HwJjkLg=";
hash = "sha256-HZRo7jo5f3nnAha3evLTmI3caLhz7kIbP9CA6zaH4Zg=";
};
env.ALLOW_BOTORCH_LATEST = "1";
@@ -21,6 +21,9 @@
# for GUI only
pygobject3,
gtk3,
enableCmd ? false,
prompt-toolkit,
tqdm,
}:
buildPythonPackage rec {
@@ -58,6 +61,10 @@ buildPythonPackage rec {
]
++ lib.optionals enableGui [
pygobject3
]
++ lib.optionals enableCmd [
prompt-toolkit
tqdm
];
buildInputs = lib.optionals enableGui [
@@ -1,93 +0,0 @@
diff --git c/pyproject.toml w/pyproject.toml
index abfb59ac..8f9c2121 100644
--- c/pyproject.toml
+++ w/pyproject.toml
@@ -416,11 +416,10 @@ version = "5.1.1"
description = "A tool for converting dictionary files aka glossaries."
readme = "README.md"
authors = [{ name = "Saeed Rasooli", email = "saeed.gnu@gmail.com" }]
-license = { text = "GPLv3+" }
+license = "GPL-3.0-or-later"
keywords = ["dictionary", "glossary"]
classifiers = [
"Development Status :: 5 - Production/Stable",
- "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Operating System :: OS Independent",
"Typing :: Typed",
"Programming Language :: Python :: 3.11",
@@ -430,6 +429,9 @@ classifiers = [
requires-python = ">= 3.11"
dependencies = []
+[project.scripts]
+pyglossary = "pyglossary.ui.main:main"
+
[project.optional-dependencies]
all = ["PyICU", "lxml", "beautifulsoup4"]
diff --git c/setup.py w/setup.py
index fd38a060..19df9ee3 100755
--- c/setup.py
+++ w/setup.py
@@ -8,8 +8,7 @@ import sys
from glob import glob
from os.path import dirname, exists, isdir, join
-from setuptools import setup
-from setuptools.command.install import install
+from setuptools import setup, find_packages
VERSION = "5.1.1"
log = logging.getLogger("root")
@@ -46,29 +45,6 @@ def getPipSafeVersion() -> str:
return VERSION
-class my_install(install):
- def run(self) -> None:
- install.run(self)
- if os.sep == "/":
- binPath = join(self.install_scripts, "pyglossary")
- log.info(f"creating script file {binPath!r}")
- if not exists(self.install_scripts):
- os.makedirs(self.install_scripts)
- # let it fail on wrong permissions.
- elif not isdir(self.install_scripts):
- raise OSError(
- "installation path already exists "
- f"but is not a directory: {self.install_scripts}",
- )
- open(binPath, "w", encoding="ascii").write("""#!/usr/bin/env -S python3 -O
-import sys
-from os.path import dirname
-sys.path.insert(0, dirname(__file__))
-from pyglossary.ui.main import main
-main()""")
- os.chmod(binPath, 0o755)
-
-
root_data_file_names = [
"about",
"LICENSE",
@@ -146,19 +122,14 @@ setup(
name="pyglossary",
version=getPipSafeVersion(),
python_requires=">=3.10.0",
- cmdclass={
- "install": my_install,
- },
description="A tool for converting dictionary files aka glossaries.",
long_description_content_type="text/markdown",
long_description=long_description,
author="Saeed Rasooli",
author_email="saeed.gnu@gmail.com",
- license="GPLv3+",
+ license="GPL-3.0-or-later",
url="https://github.com/ilius/pyglossary",
- packages=[
- "pyglossary",
- ],
+ packages=find_packages(),
entry_points={
"console_scripts": [
"pyglossary = pyglossary.ui.main:main",
@@ -39,18 +39,17 @@
buildPythonPackage rec {
pname = "scipp";
version = "25.08.0";
version = "25.11.0";
pyproject = true;
src = fetchFromGitHub {
owner = "scipp";
repo = "Scipp";
# https://github.com/scipp/scipp/pull/3722
tag = version;
hash = "sha256-nLccJlFnnVTpamph2oIaMxRD5ljrw6GlCnnTx7LfrO0=";
hash = "sha256-/gCLWRpBnOjNMBEpJe0JSda496iXDFnCE+R+zIaRkWo=";
};
env = {
SKIP_CONAN = "true";
SKIP_REMOTE_SOURCES = "true";
};
build-system = [