Merge master into staging-next

This commit is contained in:
github-actions[bot]
2025-01-07 18:04:37 +00:00
committed by GitHub
128 changed files with 4851 additions and 1672 deletions
+3 -3
View File
@@ -28,10 +28,10 @@ stdenv.mkDerivation {
wrapProgram $out/bin/nixpkgs-lint --set PERL5LIB $PERL5LIB
'';
meta = with lib; {
maintainers = [ maintainers.eelco ];
meta = {
maintainers = [ lib.maintainers.eelco ];
description = "A utility for Nixpkgs contributors to check Nixpkgs for common errors";
mainProgram = "nixpkgs-lint";
platforms = platforms.unix;
platforms = lib.platforms.unix;
};
}
@@ -27,6 +27,8 @@
- `nixos-rebuild-ng`, a full rewrite of `nixos-rebuild` in Python, is available for testing. You can enable it by setting [system.rebuild.enableNg](options.html#opt-system.rebuild.enableNg) in your configuration (this will replace the old `nixos-rebuild`), or by adding `nixos-rebuild-ng` to your `environment.systemPackages` (in this case, it will live side-by-side with `nixos-rebuild` as `nixos-rebuild-ng`). It is expected that the next major version of NixOS (25.11) will enable `system.rebuild.enableNg` by default.
- A `nixos-rebuild build-image` sub-command has been added.
- `nixos-option` has been rewritten to a Nix expression called by a simple bash script. This lowers our maintenance threshold, makes eval errors less verbose, adds support for flake-based configurations, descending into `attrsOf` and `listOf` submodule options, and `--show-trace`.
It allows users to build platform-specific (disk) images from their NixOS configurations. `nixos-rebuild build-image` works similar to the popular [nix-community/nixos-generators](https://github.com/nix-community/nixos-generators) project. See new [section on image building in the nixpkgs manual](https://nixos.org/manual/nixpkgs/unstable/#sec-image-nixos-rebuild-build-image).
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+2 -1
View File
@@ -249,6 +249,7 @@ in
ExecReload = "${dhcpcd}/sbin/dhcpcd --rebind";
Restart = "always";
AmbientCapabilities = [ "CAP_NET_ADMIN" "CAP_NET_RAW" "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_ADMIN" "CAP_NET_RAW" "CAP_NET_BIND_SERVICE" ];
ReadWritePaths = [ "/proc/sys/net/ipv4" ]
++ lib.optional cfgN.enableIPv6 "/proc/sys/net/ipv6"
++ lib.optionals useResolvConf ([ "/run/resolvconf" ] ++ config.networking.resolvconf.subscriberFiles);
@@ -276,7 +277,7 @@ in
RestrictSUIDSGID = true;
SystemCallFilter = [
"@system-service"
"~@aio" "~@chown" "~@keyring" "~@memlock"
"~@aio" "~@keyring" "~@memlock" "~@mount" "~@privileged" "~@resources"
];
SystemCallArchitectures = "native";
UMask = "0027";
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
exec = "youtube-music %u";
icon = "youtube-music";
desktopName = "YouTube Music";
startupWMClass = "YouTube Music";
startupWMClass = "com.github.th_ch.youtube_music";
categories = [ "AudioVideo" ];
})
];
@@ -5589,8 +5589,8 @@ let
mktplcRef = {
name = "pretty-ts-errors";
publisher = "yoavbls";
version = "0.5.4";
hash = "sha256-SMEqbpKYNck23zgULsdnsw4PS20XMPUpJ5kYh1fpd14=";
version = "0.6.1";
hash = "sha256-LvX21nEjgayNd9q+uXkahmdYwzfWBZOhQaF+clFUUF4=";
};
meta = {
description = "Make TypeScript errors prettier and human-readable in VSCode";
File diff suppressed because it is too large Load Diff
@@ -67,8 +67,8 @@ in
, glib
, gnum4
, gtk3
, icu72
, icu73
, icu74
, libGL
, libGLU
, libevent
@@ -268,6 +268,12 @@ buildStdenv.mkDerivation {
hash = "sha256-2IpdSyye3VT4VB95WurnyRFtdN1lfVtYpgEiUVhfNjw=";
})
]
++ lib.optionals ((lib.versionAtLeast version "129" && lib.versionOlder version "134") || lib.versionOlder version "128.6.0") [
# Python 3.12.8 compat
# https://bugzilla.mozilla.org/show_bug.cgi?id=1935621
# https://phabricator.services.mozilla.com/D231480
./mozbz-1935621-attachment-9442305.patch
]
++ [
# LLVM 19 turned on WASM reference types by default, exposing a bug
# that broke the Mozilla WASI build. Supposedly, it has been fixed
@@ -286,10 +292,6 @@ buildStdenv.mkDerivation {
url = "https://hg.mozilla.org/integration/autoland/raw-rev/23a9f6555c7c";
hash = "sha256-CRywalJlRMFVLITEYXxpSq3jLPbUlWKNRHuKLwXqQfU=";
})
# Python 3.12.8 compat
# https://bugzilla.mozilla.org/show_bug.cgi?id=1935621
# https://phabricator.services.mozilla.com/D231480
./mozbz-1935621-attachment-9442305.patch
# Fix for missing vector header on macOS
# https://bugzilla.mozilla.org/show_bug.cgi?id=1939405
./firefox-mac-missing-vector-header.patch
@@ -526,11 +528,9 @@ buildStdenv.mkDerivation {
++ lib.optional sndioSupport sndio
++ lib.optionals waylandSupport [ libxkbcommon libdrm ]
))
# icu73 changed how it follows symlinks which breaks in the firefox sandbox
# https://bugzilla.mozilla.org/show_bug.cgi?id=1839287
# icu74 fails to build on 127 and older
# https://bugzilla.mozilla.org/show_bug.cgi?id=1862601
++ [ (if (lib.versionAtLeast version "115") then icu73 else icu72) ]
++ [ (if (lib.versionAtLeast version "134") then icu74 else icu73) ]
++ lib.optional gssSupport libkrb5
++ lib.optional jemallocSupport jemalloc
++ extraBuildInputs;
@@ -9,10 +9,10 @@
buildMozillaMach rec {
pname = "firefox";
version = "128.5.2esr";
version = "128.6.0esr";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "1e5b6bfe63279acc8b7350c08f2767620f01b979057f50ab1952331b6efc05124f7c9530a7cc793b0f3616344334a2903fe5712bbb45418e936684d294c5530a";
sha512 = "49bce966e062766861712bd65cca46a438b339fe31598f69e4fe64da78ef6f8b4581c1d502341ef1c032aafaab2f4f88e69cb93a0b845ba7173fec277ae695b5";
};
meta = {
@@ -9,10 +9,10 @@
buildMozillaMach rec {
pname = "firefox";
version = "133.0.3";
version = "134.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "ce48beaa5bb1717d9b6dbfff035b1bb5de1456df14b6a91adfaf3ccfb7ac550ab7ee854546231424a920e01d981825253609fce2ec326c4aa1ca316bbbdb31f8";
sha512 = "1275a686dc0a27b48df4ae05616511512f676e03474e3095b2521eac25a385d345aa3e8786716dbe812af49e07d72b32772479089d648968e2004ca0c9c35344";
};
meta = {
@@ -171,13 +171,13 @@
"vendorHash": null
},
"bitbucket": {
"hash": "sha256-fvSy0gnSQkpSCfKlmOQW+ItMi6utocsDB6ex4RZMvGo=",
"hash": "sha256-cHuBfF0R/n03Y5KNnbdsWcGeX24+NPT2HnsQpTivCf0=",
"homepage": "https://registry.terraform.io/providers/DrFaust92/bitbucket",
"owner": "DrFaust92",
"repo": "terraform-provider-bitbucket",
"rev": "v2.42.0",
"rev": "v2.45.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-oDMKf39uNMO9/kyiZ1IuZlj2yIF1q5Z3wewxEBh3yso="
"vendorHash": "sha256-iNY6Jz/SKOLynx33smDFbg371Wa31CouNtrOuV7lkcw="
},
"bitwarden": {
"hash": "sha256-zvl9B1RhViJ83/7i9ab1KvQc9Yfpzq3c1JIz+bzwVmM=",
@@ -45,6 +45,12 @@ stdenv.mkDerivation (finalAttrs: rec {
sha256 = "sha256-6+DOJPeVzP4x0UsN9MlZRAyusapBTICX0BuyvVBQBC8=";
};
postPatch = lib.optionals stdenv.hostPlatform.isDarwin ''
# same error as https://github.com/pocoproject/poco/issues/4586
substituteInPlace zlib/zutil.h \
--replace-fail '#if defined(MACOS) || defined(TARGET_OS_MAC)' '#if defined(MACOS)'
'';
nativeBuildInputs = [ jam ];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
+2 -2
View File
@@ -8,11 +8,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "alt-tab-macos";
version = "7.14.1";
version = "7.18.0";
src = fetchurl {
url = "https://github.com/lwouis/alt-tab-macos/releases/download/v${finalAttrs.version}/AltTab-${finalAttrs.version}.zip";
hash = "sha256-62+2N+TjKq+TdJuaOizpiSvGQnkC2+VhBX+3A2QepwI=";
hash = "sha256-9+XK+rDyV2V4RIAfMR2EUcSf6AEpQKAOLDp6RXb5Wb8=";
};
sourceRoot = ".";
+11 -20
View File
@@ -3,7 +3,7 @@
callPackage,
lib,
fetchRepoProject,
writeScript,
nix-update-script,
cmake,
directx-shader-compiler,
glslang,
@@ -27,13 +27,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "amdvlk";
version = "2024.Q4.2";
version = "2024.Q4.3";
src = fetchRepoProject {
name = "amdvlk-src";
manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
rev = "refs/tags/v-${finalAttrs.version}";
hash = "sha256-16eHtdxoSCVEPQNvi7Kuo7CP4yddMsZqpuRsWobEOnw=";
hash = "sha256-PQxTRCSOk8E6y7pXyqxt1QKtRsqnrj/9dQZ8NjnUbhA=";
};
buildInputs =
@@ -102,23 +102,14 @@ stdenv.mkDerivation (finalAttrs: {
# Keep the rpath, otherwise vulkaninfo and vkcube segfault
dontPatchELF = true;
passthru.updateScript = writeScript "update.sh" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils curl gnused jq common-updater-scripts
packagePath="pkgs/by-name/am/amdvlk/package.nix"
function setHash() {
sed -i $packagePath -e 's,sha256 = "[^'"'"'"]*",sha256 = "'"$1"'",'
}
version="$(curl -sL "https://api.github.com/repos/GPUOpen-Drivers/AMDVLK/releases?per_page=1" | jq '.[0].tag_name | split("-") | .[1]' --raw-output)"
sed -i $packagePath -e 's/version = "[^'"'"'"]*"/version = "'"$version"'"/'
setHash "$(nix-instantiate --eval -A lib.fakeSha256 | xargs echo)"
hash="$(nix to-base64 $(nix-build -A amdvlk 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true))"
setHash "$hash"
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--url"
"https://github.com/GPUOpen-Drivers/AMDVLK"
"--version-regex"
"v-(.*)"
];
};
passthru.impureTests = {
amdvlk = callPackage ./test.nix { };
+2 -2
View File
@@ -8,13 +8,13 @@
buildGoModule rec {
pname = "bearer";
version = "1.47.0";
version = "1.48.0";
src = fetchFromGitHub {
owner = "bearer";
repo = "bearer";
tag = "v${version}";
hash = "sha256-yr5ik+DxOcW3UFK6KiPvheGlDdwSz2s7DKm2vAsSwG0=";
hash = "sha256-M9Usz+qQH4QNA/0TgtvjuqwnaCpyxr9OMIc8pJ/FjDE=";
};
vendorHash = "sha256-A0zy5O2+afhn6jAfLd/k7wvL3z1PVI0e6bO39cnYrhM=";
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "boxbuddy";
version = "2.5.1";
version = "2.5.2";
src = fetchFromGitHub {
owner = "Dvlv";
repo = "BoxBuddyRS";
rev = version;
hash = "sha256-W+SeleZsQbHw0sS7du8AylERt1FBxxLUvnxfvS9YQGM=";
hash = "sha256-wtAc5h3bm/X1aCPGjl30NaM7XR602q5NdlamUQvADDo=";
};
cargoHash = "sha256-nFBLhCxHmdF7WvYcmt5aLVhCO/q1LLgMldc7nofX+CU=";
cargoHash = "sha256-oyxO92wXVN7kbIcTy5OAaqK/ySnetpkFwcop34ERpxs=";
# The software assumes it is installed either in flatpak or in the home directory
# so the xdg data path needs to be patched here
-3
View File
@@ -7,7 +7,6 @@
makeWrapper,
pkg-config,
libgit2,
oniguruma,
zlib,
buildPackages,
withClipboard ? true,
@@ -33,11 +32,9 @@ rustPlatform.buildRustPackage rec {
pkg-config
];
# TODO: once https://github.com/Canop/broot/issues/956 is released, oniguruma can be removed.
buildInputs =
[
libgit2
oniguruma
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
zlib
+35
View File
@@ -0,0 +1,35 @@
diff --git a/casadi/interfaces/clang/clang_compiler.hpp b/casadi/interfaces/clang/clang_compiler.hpp
index 7f54853..9f8d4b1 100644
--- a/casadi/interfaces/clang/clang_compiler.hpp
+++ b/casadi/interfaces/clang/clang_compiler.hpp
@@ -52,7 +52,7 @@
#include "llvm/IR/LLVMContext.h"
//#include "llvm/IR/Verifier.h"
#include <llvm/Support/FileSystem.h>
-#include <llvm/Support/Host.h>
+#include <llvm/TargetParser/Host.h>
#include <llvm/Support/ManagedStatic.h>
#include <llvm/Support/Path.h>
#include <llvm/Support/TargetSelect.h>
diff --git a/cmake/FindCLANG.cmake b/cmake/FindCLANG.cmake
index 4edf60b..f23a348 100644
--- a/cmake/FindCLANG.cmake
+++ b/cmake/FindCLANG.cmake
@@ -16,7 +16,7 @@ set(CLANG_CXX_FLAGS "-fPIC -fvisibility-inlines-hidden -ffunction-sections -fdat
set(CLANG_INCLUDE_DIR ${LLVM_INSTALL_PREFIX}/include)
# All clang libraries
-set(CLANG_DEP clangFrontend clangDriver clangCodeGen clangRewriteFrontend clangSerialization clangParse clangSema clangAnalysis clangEdit clangAST clangLex clangBasic ${LLVM_DEP})
+set(CLANG_DEP clangFrontend clangDriver clangCodeGen clangRewriteFrontend clangSerialization clangParse clangSema clangAPINotes clangAnalysis clangEdit clangAST clangLex clangBasic ${LLVM_DEP})
# Get libraries
set(CLANG_LIBRARIES)
@@ -86,7 +86,7 @@ set(CLANG_INCLUDE_DIR ${CLANG_LLVM_INCLUDE_DIR})
# All clang libraries
set(CLANG_DEP clangFrontend clangDriver clangCodeGen clangRewriteFrontend clangSerialization
- clangParse clangSema clangAnalysis clangEdit clangAST clangLex clangBasic)
+ clangParse clangSema clangAPINotes clangAnalysis clangEdit clangAST clangLex clangBasic)
# Get libraries
foreach(D ${CLANG_DEP})
+11 -6
View File
@@ -17,8 +17,9 @@
lib,
ipopt,
lapack,
llvmPackages_17, # llvm/Support/Host.h required by casadi 3.6.5 and not available in llvm 18
llvmPackages,
mumps,
ninja,
osqp,
pkg-config,
pythonSupport ? false,
@@ -52,6 +53,9 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://github.com/casadi/casadi/pull/3899/commits/274f4b23f73e60c5302bec0479fe1e92682b63d2.patch";
hash = "sha256-3GWEWlN8dKLD6htpnOQLChldcT3hE09JWLeuCfAhY+4=";
})
# update include file path and link with clangAPINotes
# https://github.com/casadi/casadi/issues/3969
./clang-19.diff
];
postPatch =
@@ -64,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
# nix provide lib/clang headers in libclang, not in llvm.
substituteInPlace casadi/interfaces/clang/CMakeLists.txt --replace-fail \
'$'{CLANG_LLVM_LIB_DIR} \
${lib.getLib llvmPackages_17.libclang}/lib
${lib.getLib llvmPackages.libclang}/lib
# help casadi find its own libs
substituteInPlace casadi/core/casadi_os.cpp --replace-fail \
@@ -101,6 +105,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
ninja
pkg-config
];
@@ -118,9 +123,9 @@ stdenv.mkDerivation (finalAttrs: {
hpipm
ipopt
lapack
llvmPackages_17.clang
llvmPackages_17.libclang
llvmPackages_17.llvm
llvmPackages.clang
llvmPackages.libclang
llvmPackages.llvm
mumps
osqp
proxsuite
@@ -140,7 +145,7 @@ stdenv.mkDerivation (finalAttrs: {
python3Packages.numpy
python3Packages.python
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages_17.openmp ];
++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.openmp ];
cmakeFlags = [
(lib.cmakeBool "WITH_PYTHON" pythonSupport)
@@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "cinnamon-translations";
version = "6.4.1";
version = "6.4.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-MMUXh8HFvISPZzu6+m/rm0/svLLml4OweZ7c4H9IHco=";
hash = "sha256-By09Y4iHZz3XR7tRd5MyXK5BKOr01yJzTTLQHEZ00q0=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -10,17 +10,17 @@
}:
rustPlatform.buildRustPackage rec {
pname = "codeberg-cli";
version = "0.4.6";
version = "0.4.7";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "Aviac";
repo = "codeberg-cli";
rev = "v${version}";
hash = "sha256-BkWI4FbacgFrbSLNSqe7vdzdLvrrgX1528qFaKCd5tY=";
hash = "sha256-GFUBMriBHKWjgT10Vvpa8FMqB6CvksSPoFBBr3uwrrg=";
};
cargoHash = "sha256-eFS16QzPMLhoVb+hqt/p3ka58rwP5WTgHas2PZT5c/U=";
cargoHash = "sha256-dpK/FddoF6QMqIoUOwabELpfei0EBDjbTlmJCo/rlUk=";
nativeBuildInputs = [
pkg-config
installShellFiles
+3 -3
View File
@@ -5,16 +5,16 @@
buildGoModule rec {
pname = "dblab";
version = "0.29.0";
version = "0.30.0";
src = fetchFromGitHub {
owner = "danvergara";
repo = "dblab";
rev = "v${version}";
hash = "sha256-fLsddW4yPK9hgaQ2oeEcQ2psEclM3pq62xEkm/ad0lY=";
hash = "sha256-TRMzKvJh5+s4+uLdLsORbnJvopHYEi28sIi2wo/eLBQ=";
};
vendorHash = "sha256-bcG3lYZ2Mfp/VCwUeIBPNRlTPXTJxesOu+229E2oa60=";
vendorHash = "sha256-n1Z3sNvNLX1QpfpDSGDygjbC6IE85SBJHvyliy11OjU=";
ldflags = [ "-s -w -X main.version=${version}" ];
@@ -17,11 +17,11 @@ stdenv.mkDerivation rec {
# the wrapped version of Descent 3. Once theres a stable version of Descent
# 3 that supports the -additionaldir command-line option, we can stop using
# an unstable version of Descent 3.
version = "1.5.0-beta-unstable-2024-12-20";
version = "1.5.0-beta-unstable-2025-01-01";
src = fetchFromGitHub {
owner = "DescentDevelopers";
repo = "Descent3";
rev = "4ff0665dc4779c262f6dec4c50fdd4763acdfad3";
rev = "11f93221e71201d51a71650a3b190017328cd721";
fetchSubmodules = true;
leaveDotGit = true;
# Descent 3 is supposed to display its Git commit hash in the bottom right
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
git rev-parse --verify HEAD | tr --delete '\n' > git-hash.txt
rm -r .git
'';
hash = "sha256-8pK+lniWBlsGQvWXwEpBnpDz2CMcCOmdSc4Q9Hedo3U=";
hash = "sha256-L+Y8Eum9SjGpbbLnBH25uUI4UgCGDwrgE5op19GOAtQ=";
};
hardeningDisable = [ "format" ];
+2 -2
View File
@@ -2,7 +2,7 @@
buildGoModule rec {
pname = "doctl";
version = "1.120.0";
version = "1.120.1";
vendorHash = null;
@@ -31,7 +31,7 @@ buildGoModule rec {
owner = "digitalocean";
repo = "doctl";
rev = "v${version}";
sha256 = "sha256-6Zsdod+4eu/O1eQooS4KsZ4Fk3mSnqzgIwmZHV/1z4k=";
sha256 = "sha256-14oBTAE5/bBSYce9esn9gdMW13CUhB5IKkw9v3Gn6Nc=";
};
meta = with lib; {
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "doppler";
version = "3.71.0";
version = "3.71.1";
src = fetchFromGitHub {
owner = "dopplerhq";
repo = "cli";
rev = version;
hash = "sha256-yN+nMHBjXM78ie7DJn7x5litpYOwSaFse2Ewy1ssjDI=";
hash = "sha256-qseFEyIQeD1glNi5lDB5XJAWtC9EMFJbGuSJk+Q5qok=";
};
vendorHash = "sha256-NUHWKPszQH/pvnA+j65+bJ6t+C0FDRRbTviqkYztpE4=";
vendorHash = "sha256-K98cb1AF82jXm5soILO3MQy2LwOGREt8OwGySK299hA=";
ldflags = [
"-s -w"
+1 -3
View File
@@ -13,7 +13,6 @@
libspnav,
libuuid,
libxml2,
llvmPackages_17,
meson,
ninja,
opencascade-occt_7_6,
@@ -24,10 +23,9 @@
}:
let
stdenv' = if stdenv.hostPlatform.isDarwin then llvmPackages_17.stdenv else stdenv;
opencascade-occt = opencascade-occt_7_6;
in
stdenv'.mkDerivation (finalAttrs: {
stdenv.mkDerivation (finalAttrs: {
pname = "dune3d";
version = "1.2.0";
-3
View File
@@ -49,9 +49,6 @@ let
--replace-fail /var/log /test/log
substituteInPlace testing/unit/test_selection.py \
--replace-fail /usr/bin /dev
# don't use /tmp/ in tests
substituteInPlace duplicity/backends/_testbackend.py \
--replace-fail '"/tmp/' 'os.environ.get("TMPDIR")+"/'
'';
disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
+68
View File
@@ -0,0 +1,68 @@
{
lib,
stdenv,
darwin,
fetchFromGitHub,
libusb1,
nix-update-script,
pkg-config,
rustPlatform,
solc,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "foundry";
version = "0.3.0";
src = fetchFromGitHub {
owner = "foundry-rs";
repo = "foundry";
tag = "v${version}";
hash = "sha256-SdxcNbe8/dNZ4JcxKksWmDBAvQorpC8ePvQgnyeKgxU=";
};
cargoHash = "sha256-PQbp9jZZB/dsyKAlckZwl8xOpXks3anqUm+Ld7IhMFI=";
nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.isDarwin [ darwin.DarwinTools ];
buildInputs = [ solc ] ++ lib.optionals stdenv.isDarwin [ libusb1 ];
# Tests are run upstream, and many perform I/O
# incompatible with the nix build sandbox.
doCheck = false;
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/forge";
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
env = {
SVM_RELEASES_LIST_JSON =
if stdenv.isDarwin then
# Confusingly, these are universal binaries, not amd64.
# See: https://github.com/ethereum/solidity/issues/12291#issuecomment-1974771433
"${./svm-lists/macosx-amd64.json}"
else
"${./svm-lists/linux-amd64.json}";
};
meta = {
homepage = "https://github.com/foundry-rs/foundry";
description = "Portable, modular toolkit for Ethereum application development written in Rust.";
changelog = "https://github.com/foundry-rs/foundry/blob/v${version}/CHANGELOG.md";
license = with lib.licenses; [
asl20
mit
];
maintainers = with lib.maintainers; [
mitchmindtree
msanft
];
platforms = lib.platforms.unix;
};
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+47
View File
@@ -0,0 +1,47 @@
#!/usr/bin/env bash
# This script updates the Solidity binary lists required by the svm-rs
# crate.
# TODO: Bundle this into an updater script
set -euo pipefail
# Get the directory of the current script
script_dir=$(dirname "$(realpath "$0")")
# Directory where the files will be downloaded
dir="${script_dir}/svm-lists"
# URLs of the files
urls=(
"https://binaries.soliditylang.org/macosx-amd64/list.json"
"https://binaries.soliditylang.org/linux-amd64/list.json"
)
# Create the directory (no error if it already exists)
mkdir -p "$dir"
# Function to extract filename from URL
extract_filename() {
url=$1
# Extract the parent directory name and append .json
echo "$(basename "$(dirname "$url")").json"
}
# Function to fix line endings and remove trailing newline
ensure_unix_format() {
file=$1
# Convert to Unix LF line endings and ensure there's no trailing newline
tr -d '\r' < "$file" | sed -e '$a\' > "${file}.tmp" && mv "${file}.tmp" "$file"
}
# Iterate over the URLs
for url in "${urls[@]}"; do
# Extract filename from URL
filename=$(extract_filename "$url")
# Download the file and fix line endings
echo "Fetching $url to $dir/$filename"
curl -sL "$url" -o "${dir}/${filename}"
ensure_unix_format "${dir}/${filename}"
done
+5 -5
View File
@@ -10,26 +10,26 @@ let
systemToPlatform = {
"x86_64-linux" = {
name = "linux-amd64";
hash = "sha256-QKrDFCVCWYYX2jM8le2X/OLhNcwxR+liUtXHhW7jcSw=";
hash = "sha256-HDyPQ7/suk6LA6mchwE+LHcO1+9aB7o+60lX6OKFLGQ=";
};
"aarch64-linux" = {
name = "linux-arm64";
hash = "sha256-+l1hBwep/YMP7EOrEIn2xCIiVgWB0JCWz+fj2ZfivNQ=";
hash = "sha256-IfAfduUMAQ53oi2ZgRxc825oMyX6PvATkQpvxmFjMHo=";
};
"x86_64-darwin" = {
name = "darwin-amd64";
hash = "sha256-YFQh4vDtT+mjAIMt0IEtleOFTlxkHMbJq/SrI+IzNjc=";
hash = "sha256-I4EG6T//+YFLOlQMpW1ERpBzR/882lXMPqpO7em/QJY=";
};
"aarch64-darwin" = {
name = "darwin-arm64";
hash = "sha256-qVsItCI3LxPraOLtEvVaoTzhoGEcIySTWooMBSMLvAc=";
hash = "sha256-QtHCvTgfrQilIbd3S3/zkyBLccukGfFckCrZPCIMNMg=";
};
};
platform = systemToPlatform.${system} or throwSystem;
in
stdenv.mkDerivation (finalAttrs: {
pname = "gh-copilot";
version = "1.0.5";
version = "1.0.6";
src = fetchurl {
name = "gh-copilot";
+2 -2
View File
@@ -25,13 +25,13 @@ let
in
stdenvNoCC.mkDerivation rec {
pname = "gh-f";
version = "1.2.0";
version = "1.2.1";
src = fetchFromGitHub {
owner = "gennaro-tedesco";
repo = "gh-f";
rev = "v${version}";
hash = "sha256-rdHQIhrU0nzIURnmPGyzSkew6FVn4Z6J1rn3HvyDpJI=";
hash = "sha256-62FVFW2KLdH0uonIf3OVBFMGLcCteMjydaLAjWtxwUo=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -10,7 +10,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "glasgow";
version = "0-unstable-2024-12-22";
version = "0-unstable-2025-01-05";
# from `pdm show`
realVersion = let
tag = builtins.elemAt (lib.splitString "-" version) 0;
@@ -22,8 +22,8 @@ python3.pkgs.buildPythonApplication rec {
src = fetchFromGitHub {
owner = "GlasgowEmbedded";
repo = "glasgow";
rev = "a477a8729ca0232ca41d1463a1d95f49a5a1dbc9";
sha256 = "sha256-cKQ/qnfGqiLsEy8lkcLPBJZvPDWwuAoCua/L1cfUS1k=";
rev = "5e719a48658a873427ba3dafcf00757cbfcf3aa4";
sha256 = "sha256-el538mYGqe5beOQOV2zp4v3phwzXF3rGK7DXguyf904=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -28,9 +28,9 @@ perlPackages.buildPerlPackage rec {
patchShebangs bin
substituteInPlace lib/GLPI/Agent/Tools/Linux.pm \
--replace-fail "/sbin/ip" $"{iproute2}/sbin/ip"
--replace-fail "/sbin/ip" "${lib.getExe' iproute2 "ip"}"
substituteInPlace lib/GLPI/Agent/Task/Inventory/Linux/Networks.pm \
--replace-fail "/sbin/ip" "${iproute2}/sbin/ip"
--replace-fail "/sbin/ip" "${lib.getExe' iproute2 "ip"}"
'';
nativeBuildInputs = [ makeWrapper ];
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "graphene-hardened-malloc";
version = "2024120400";
version = "2024123000";
src = fetchFromGitHub {
owner = "GrapheneOS";
repo = "hardened_malloc";
rev = finalAttrs.version;
hash = "sha256-VzP7JimAbFcp1HrSS3GArSRhxHaa1s49kFP22iDHt+8=";
hash = "sha256-zsP/ym/MXomqq+t/ckiAzHVR4AuFg+mEwXlICbBbODA=";
};
nativeCheckInputs = [ python3 ];
+3 -3
View File
@@ -6,19 +6,19 @@
buildGoModule rec {
pname = "hilbish";
version = "2.3.3";
version = "2.3.4";
src = fetchFromGitHub {
owner = "Rosettea";
repo = "Hilbish";
tag = "v${version}";
hash = "sha256-rDE9zxkCnnvc1OWd4Baei/Bw9KdFRV7DOorxLSD/KhM";
hash = "sha256-rEBUrDdJBCywuSmsxFLl4+uSwz06km2nztH5aCGcGiE=";
fetchSubmodules = true;
};
subPackages = [ "." ];
vendorHash = "sha256-8t3JBQEAmWcAlgA729IRpiewlgnRd5DQxHLTfwquE3o";
vendorHash = "sha256-8t3JBQEAmWcAlgA729IRpiewlgnRd5DQxHLTfwquE3o=";
ldflags = [
"-s"
+4 -4
View File
@@ -8,22 +8,22 @@
let
pname = "hoppscotch";
version = "24.11.0-0";
version = "24.12.0-0";
src =
fetchurl
{
aarch64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_aarch64.dmg";
hash = "sha256-MvLaAURzcNkG+kHFiMb7vliucJOzfqU3skeUGWiiKBY=";
hash = "sha256-pM9s5rRb/VswJECK44Ku2rSa4a7kpKhJM9t6uR/6B9A=";
};
x86_64-darwin = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_mac_x64.dmg";
hash = "sha256-2LlsBgiu2LWkK8+VAT7FvZ1YPDtNla+t8YDZF0GalxI=";
hash = "sha256-vXZSeogWBJt7ev0bmWB5MWYcePgq1noG3djU8kjZumQ=";
};
x86_64-linux = {
url = "https://github.com/hoppscotch/releases/releases/download/v${version}/Hoppscotch_linux_x64.AppImage";
hash = "sha256-xUtpoKilueiMD+2Yd58jlxq2UPwp9oUzusB9sbJQulk=";
hash = "sha256-iwSqGcaQqFawGhT4vWKQp63ZoHGjssNYJ3ByvKJacU0=";
};
}
.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+3 -3
View File
@@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "httm";
version = "0.44.0";
version = "0.44.1";
src = fetchFromGitHub {
owner = "kimono-koans";
repo = pname;
rev = version;
hash = "sha256-RDz/R2wfB8nEiSUD58YsF1wRgMmJkMxRTfYjSB8fEsM=";
hash = "sha256-vf5wIXYMBB7I6enmCYByoAE+2MWA/iUoq3UY86yRsEU=";
};
cargoHash = "sha256-c4u8/bYkme3iJzuIXIJoclgukTMZ6LZEhezggs/lcro=";
cargoHash = "sha256-o9Ctt5a96vBhh0eB0z9N9qR3txVWdeq2qH9dYaxqtoA=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "hypnotix";
version = "4.8";
version = "4.9";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "hypnotix";
rev = version;
hash = "sha256-/RW7AGEr/cAnEvjKXSqOWtAfVfqGYrGbIiQN3K5WLM4=";
hash = "sha256-mM6NeDtRoPUSQ/smtvpYJ3qqeqiPHquP96ChJgSJWL0=";
};
patches = [
+2 -2
View File
@@ -6,13 +6,13 @@
}:
buildGoModule rec {
pname = "hyprls";
version = "0.3.0";
version = "0.4.1";
src = fetchFromGitHub {
owner = "hyprland-community";
repo = "hyprls";
rev = "v${version}";
hash = "sha256-uNT3sC81pnFqDzmhL20q5YDLBSVJwv0frNGB9wzkRkg=";
hash = "sha256-PW1AXt8swS86Ucxad8R4exKOJ0Kww23Q1UKBmsKlsc8=";
};
vendorHash = "sha256-rG+oGJOABA9ee5nIpC5/U0mMsPhwvVtQvJBlQWfxi5Y=";
@@ -8,17 +8,17 @@
}:
buildNpmPackage rec {
pname = "immich-public-proxy";
version = "1.5.4";
version = "1.5.6";
src = fetchFromGitHub {
owner = "alangrainger";
repo = "immich-public-proxy";
rev = "v${version}";
hash = "sha256-GoAUR8s2tRHpXD/yk42u6DDvkI97XAUlF9Zsq8pb/1M=";
tag = "v${version}";
hash = "sha256-nAXSlzMJNx7QjdHr/Ax8RAcWVcsMgBLbBO0CqpWCsvA=";
};
sourceRoot = "${src.name}/app";
npmDepsHash = "sha256-BN7g+31ijH8r9rsv5zzjnE8PT7ozAswoyZNJ0XqXGyw=";
npmDepsHash = "sha256-rtDd8Gadi3OrnM34Sr2FG6htYeh2G0cYDcv/hKk1TIw=";
# patch in absolute nix store paths so the process doesn't need to cwd in $out
postPatch = ''
@@ -40,6 +40,7 @@ buildNpmPackage rec {
};
meta = {
changelog = "https://github.com/alangrainger/immich-public-proxy/releases/tag/${src.tag}";
description = "Share your Immich photos and albums in a safe way without exposing your Immich instance to the public";
homepage = "https://github.com/alangrainger/immich-public-proxy";
license = lib.licenses.agpl3Only;
+3 -3
View File
@@ -8,16 +8,16 @@
buildNpmPackage rec {
pname = "inshellisense";
version = "0.0.1-rc.18";
version = "0.0.1-rc.20";
src = fetchFromGitHub {
owner = "microsoft";
repo = pname;
tag = version;
hash = "sha256-9cSygGQar2rD3lorehlNmUzd0ZnABNJSJwmoNH3MTmk=";
hash = "sha256-UGF7tARMnRaeIEKUhYa63hBpEoMb6qV209ECPirkgyg=";
};
npmDepsHash = "sha256-/FSzeHPgVb5OB6mjP5GYAYBdTmk93xyWJI+NH7L61Do=";
npmDepsHash = "sha256-ycU0vEMgiKBaGKWMBPzQfIvBx6Q7jIHxgzZyi9VGBhw=";
# Needed for dependency `@homebridge/node-pty-prebuilt-multiarch`
# On Darwin systems the build fails with,
+3 -3
View File
@@ -7,16 +7,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "jnv";
version = "0.4.2";
version = "0.5.0";
src = fetchFromGitHub {
owner = "ynqa";
repo = "jnv";
rev = "v${version}";
hash = "sha256-FkOcNQR/YyCufk7U4gdkmDBwkKns4Yze/T2Wx4PUFa8=";
hash = "sha256-ouWtMos4g9uIFEFeukgq8VgcxlSCzJnSYFNdNmOD5C8=";
};
cargoHash = "sha256-bX/a/GKUph8PocXxfOHQ+XfqFHtbnET0vSAwvSUqQzw=";
cargoHash = "sha256-+/Xk5bb8GpyeKZii5rG/qboIxUqOyxwCSUCL9jtGHys=";
buildInputs = lib.optional stdenv.hostPlatform.isDarwin (
with darwin.apple_sdk.frameworks;
+2 -2
View File
@@ -7,11 +7,11 @@
}:
stdenv.mkDerivation rec {
pname = "jreleaser-cli";
version = "1.15.0";
version = "1.16.0";
src = fetchurl {
url = "https://github.com/jreleaser/jreleaser/releases/download/v${version}/jreleaser-tool-provider-${version}.jar";
hash = "sha256-/FDoAYf+Uy+VcWT9KpW1IEqOCvCOOyV+8/cugpeUR7Y=";
hash = "sha256-86FvsGitzJBGQUZ9cxtnxO/hfplnpLekxrS+k5ToeLM=";
};
nativeBuildInputs = [ makeWrapper ];
+2 -2
View File
@@ -8,11 +8,11 @@
stdenvNoCC.mkDerivation rec {
pname = "karate";
version = "1.5.0";
version = "1.5.1";
src = fetchurl {
url = "https://github.com/karatelabs/karate/releases/download/v${version}/karate-${version}.jar";
sha256 = "sha256-3uz51dQvyvK7gcmRoUjfszghBaPfVc/SJaKSEWkfgr8=";
sha256 = "sha256-Dk7rd9exdTSvauqcAldT3N597TeF+MNoLTx4OmOGcxE=";
};
dontUnpack = true;
+3 -3
View File
@@ -8,13 +8,13 @@
rustPlatform.buildRustPackage rec {
pname = "kubetui";
version = "1.5.4";
version = "1.6.0";
src = fetchFromGitHub {
owner = "sarub0b0";
repo = "kubetui";
tag = "v${version}";
hash = "sha256-Trgc3T+01u1izePfM0wPjer3IrA6PtIGsK+syEzs0V8=";
hash = "sha256-GCtcAoN/RjgaspTIR51TJQV2xT3dcVIFazITKVy7qYY=";
};
checkFlags = [
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
frameworks.AppKit
]
);
cargoHash = "sha256-f9JrowyZx4NvfGJSU/HjyTfWKhkAANNfUgcK9CRPW7I=";
cargoHash = "sha256-rS4P4CJ1V1Bq4lsprYEWhff9b1EqQ/6ytyjJs9DCrY0=";
meta = {
homepage = "https://github.com/sarub0b0/kubetui";
+2 -2
View File
@@ -5,13 +5,13 @@
buildGoModule rec {
pname = "ligolo-ng";
version = "0.7.4";
version = "0.7.5";
src = fetchFromGitHub {
owner = "tnpitsecurity";
repo = "ligolo-ng";
tag = "v${version}";
hash = "sha256-Qsz7eRy+gkmw+ORNlrtstiKjH6Cj6v76GDH3cQ/HoiU=";
hash = "sha256-BU3gBUNOTjpAANkvzPcgsZrly+TkbG86LHtZf93uxeY=";
};
vendorHash = "sha256-v6lHY3s1TJh8u4JaTa9kcCj+1pl01zckvTVeLk8TZ+w=";
@@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "memtier-benchmark";
version = "2.1.2";
version = "2.1.3";
src = fetchFromGitHub {
owner = "redislabs";
repo = "memtier_benchmark";
tag = version;
sha256 = "sha256-a6v+M+r2f3AZImkHmUomViQNlgTdL7JaRayoVvmaMJU=";
sha256 = "sha256-3q+NOdmbOiRq+pUxy3d1UdpUxHsv2XfnScDIfB+xyhk=";
};
patchPhase = ''
+133
View File
@@ -0,0 +1,133 @@
.Dd January 1, 1980
.Dt nixos-option 8
.Os
.Sh NAME
.Nm nixos-option
.Nd inspect a NixOS configuration
.
.
.
.Sh SYNOPSIS
.Nm
.Op Fl r | -recursive
.Op Fl I Ar path
.Op Fl F | -flake Ar flake-uri
.br
.Op Fl -no-flake
.Op Fl -show-trace
.Ar option.name
.
.
.
.Sh DESCRIPTION
This command evaluates the configuration specified in
.Ev NIXOS_CONFIG Ns
,
.Pa nixos-config
in
.Ev NIX_PATH
(which by default is
.Pa /etc/nixos/configuration.nix Ns
),
.Pa /etc/nixos/flake.nix
or the file and attribute specified by the
.Fl I
or
.Fl -flake
parameter, and returns the properties of the option name given as argument.
.
.Pp
When the option name is not an option but an attribute set, the command prints
the list of attributes contained in it. When no option name is given, the
command prints all top-level attributes in given NixOS configuration.
.
.
.
.Sh OPTIONS
.Bl -tag -width indent
.It Fl r , -recursive
Print all the values at or below the specified path recursively.
.
.It Fl I Ar path
Add an entry to the Nix expression search path. This option is passed to the
underlying
.Xr nix-instantiate 1
invocation.
.
.It Fl -show-trace
Print eval trace. This option is passed to the underlying
.Xr nix-instantiate 1
invocation.
.
.It Fl F , -flake Ar flake-uri
Specify the flake containing NixOS configuration. It defaults to
.Pa /etc/nixos/flake.nix Ns
, if the flake exists, it must contain an output named
.Ql nixosConfigurations. Ns Va name Ns
\&. If
.Va name
is omitted, it defaults to the current host name.
.
.It Fl -no-flake
Do not imply
.Fl -flake
if
.Pa /etc/nixos/flake.nix
exists. With this option, it is possible to show options in non-flake NixOS
configurations even if the current NixOS systems uses flakes.
.
.El
.
.
.
.Sh Ev ENVIRONMENT
.Bl -tag -width indent
.It Ev NIXOS_CONFIG
Path to the main NixOS configuration module. Defaults to
.Pa /etc/nixos/configuration.nix Ns
\&.
.El
.
.
.
.Sh EXAMPLES
Investigate option values:
.Bd -literal -offset indent
$ nixos-option boot.loader
This attribute set contains:
generationsDir
grub
initScript
$ nixos-option boot.loader.grub.enable
Value:
true
Default:
true
Type:
boolean
Description:
Whether to enable the GNU GRUB boot loader.
Declared by:
/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix
Defined by:
/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix
.Ed
.
.
.
.Sh SEE ALSO
.Xr configuration.nix 5
.
.
.
.Sh AUTHORS
.An -nosplit
.An Nicolas Pierron
and
.An the Nixpkgs/NixOS contributors
@@ -0,0 +1,167 @@
{
nixos,
# list representing a nixos option path (e.g. ['console' 'enable']), or a
# prefix of such a path (e.g. ['console']), or a string representing the same
# (e.g. 'console.enable')
path,
# whether to recurse down the config attrset and show each set value instead
recursive,
}:
let
inherit (nixos.pkgs) lib;
path' = if lib.isString path then (if path == "" then [ ] else readOption path) else path;
# helper that maps `f` on subslices starting when `predStart x` and
# ending when `predEnd x` (no support for nested occurrences)
flatMapSlices =
predStart: predEnd: f: list:
let
empty = {
result = [ ];
active = [ ];
};
op =
{ result, active }:
x:
if predStart x && predEnd x then
{
result = result ++ active ++ f [ x ];
active = [ ];
}
else if predStart x then
{
result = result ++ active;
active = [ x ];
}
else if predEnd x then
{
result = result ++ f (active ++ [ x ]);
active = [ ];
}
else
{
inherit result;
active = active ++ [ x ];
};
in
(x: x.result ++ x.active) (lib.foldl op empty list);
# tries to invert showOption, taking a written-out option name and splitting
# it into its parts
readOption =
str:
let
unescape = list: lib.replaceStrings (map (c: "\\${c}") list) list;
unescapeNixString = lib.flip lib.pipe [
(lib.concatStringsSep ".")
(unescape [ "$" ])
builtins.fromJSON
];
in
flatMapSlices (lib.hasPrefix "\"") (lib.hasSuffix "\"") (x: [ (unescapeNixString x) ]) (
lib.splitString "." str
);
# like 'mapAttrsRecursiveCond' but handling errors in the attrset tree as leaf
# nodes (which means `f` is expected to handle shallow errors)
safeMapAttrsRecursiveCond =
cond: f: set:
let
recurse =
path:
lib.mapAttrs (
name: value:
let
e = builtins.tryEval value;
path' = path ++ [ name ];
in
if e.success && lib.isAttrs value && cond value then recurse path' value else f path' value
);
in
recurse [ ] set;
# traverse the option tree along `path` from `root`, returning the option or
# attrset at the given location
optionByPath =
path: root:
let
into =
opt: part:
if lib.isOption opt && opt.type.descriptionClass == "composite" then
opt.type.getSubOptions [ ]
else if lib.isOption opt then
throw "Trying to access '${part}' inside ${opt.type.name} option while traversing option path '${lib.showOption path}'"
else if lib.isAttrs opt && lib.hasAttr part opt then
opt.${part}
else
throw "Found neither an attrset nor supported option type near '${part}' while traversing option path '${lib.showOption path}'";
in
lib.foldl into root path;
toPretty = lib.generators.toPretty { multiline = true; };
safeToPretty =
x:
let
e = builtins.tryEval (toPretty x);
in
if e.success then e.value else "«error»";
indent = str: lib.concatStringsSep "\n" (map (x: " " + x) (lib.splitString "\n" str));
optionAttrNames = attrs: lib.filter (x: x != "_module") (lib.attrNames attrs);
## full, non-recursive mode: print an option from `options`
renderAttrs =
attrs: "This attribute set contains:\n${lib.concatStringsSep "\n" (optionAttrNames attrs)}";
renderOption =
option: value:
let
entry =
cond: heading: value:
lib.optional cond "${heading}:\n${indent value}";
in
lib.concatStringsSep "\n\n" (
lib.concatLists [
(entry true "Value" (toPretty value))
(entry (option ? default) "Default" (toPretty option.default))
(entry (option ? type) "Type" (option.type.description))
(entry (option ? description) "Description" (lib.removeSuffix "\n" option.description))
(entry (option ? example) "Example" (toPretty option.example))
(entry (option ? declarations) "Declared by" (lib.concatStringsSep "\n" option.declarations))
(entry (option ? files) "Defined by" (lib.concatStringsSep "\n" option.files))
]
);
renderFull =
entry: configEntry:
if lib.isOption entry then
renderOption entry configEntry
else if lib.isAttrs entry then
renderAttrs entry
else
throw "Found neither an attrset nor option at option path '${lib.showOption path'}'";
## recursive mode: print paths and values from `config`
renderRecursive =
config:
let
renderShort = n: v: "${lib.showOption (path' ++ n)} = ${safeToPretty v};";
mapAttrsRecursive' = safeMapAttrsRecursiveCond (x: !lib.isDerivation x);
in
if lib.isAttrs config then
lib.concatStringsSep "\n" (lib.collect lib.isString (mapAttrsRecursive' renderShort config))
else
renderShort [ ] config;
in
if !lib.hasAttrByPath path' nixos.config then
throw "Couldn't resolve config path '${lib.showOption path'}'"
else
let
optionEntry = optionByPath path' nixos.options;
configEntry = lib.attrByPath path' null nixos.config;
in
if recursive then renderRecursive configEntry else renderFull optionEntry configEntry
@@ -0,0 +1,106 @@
#!/bin/bash
# shellcheck shell=bash
set -eou pipefail
recursive=false
no_flake=false
positional_args=()
nix_args=(--arg nixos "import <nixpkgs/nixos> { }")
flake=""
while [[ $# -gt 0 ]]; do
case "$1" in
--help)
exec man -M @nixosOptionManpage@ 8 nixos-option
;;
-r|--recursive)
recursive=true
shift
;;
-I)
nix_args+=("$1" "$2")
# Not breaking existing usages of it
no_flake=true
shift 2
;;
-F|--flake)
flake=$2
shift 2
;;
--no-flake)
no_flake=true
shift
;;
--show-trace)
nix_args+=("$1")
shift
;;
-*)
echo >&2 "Unsupported option $1"
exit 1
;;
*)
positional_args+=("$1")
shift
;;
esac
done
# Detection order, from high to low:
# `--flake`
# $NIXOS_CONFIG
# nixos-config=<path> in NIX_PATH (normally /etc/nixos/configuration.nix)
# `-I` (implies `--no-flake`)
# `--no-flake`
# /etc/nixos/flake.nix (if exists)
if [[ -z "$flake" ]] && [[ -e /etc/nixos/flake.nix ]] && [[ "$no_flake" == "false" ]]; then
flake="$(dirname "$(realpath /etc/nixos/flake.nix)")"
fi
if [[ -n "$flake" ]]; then
echo >&2 "[WARN] Flake support in nixos-option is experimental and has known issues."
if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then
flake="${BASH_REMATCH[1]}"
flakeAttr="${BASH_REMATCH[2]}"
fi
# Unlike nix cli, builtins.getFlake infer path:// when a path is given
# See https://github.com/NixOS/nix/issues/5836
# Using `git rev-parse --show-toplevel` since we can't assume the flake dir
# itself is a git repo, because the flake could be in a sub directory
if [[ -d "$flake" ]] && git -C "$flake" rev-parse --show-toplevel &>/dev/null; then
flake="git+file://$(realpath "$flake")"
fi
if [[ -z "${flakeAttr:-}" ]]; then
hostname=$(< /proc/sys/kernel/hostname)
if [[ -z "${hostname:-}" ]]; then
hostname=default
fi
flakeAttr="nixosConfigurations.\"$hostname\""
else
flakeAttr="nixosConfigurations.\"$flakeAttr\""
fi
nix_args+=(--arg nixos "(builtins.getFlake \"$flake\").$flakeAttr")
fi
case ${#positional_args[@]} in
0) path= ;;
# Remove trailing dot if exists, match the behavior of
# old nixos-option and make shell completions happy
1) path="${positional_args[0]%.}" ;;
*) echo >&2 "Only one option path can be provided"; exit 1 ;;
esac
nix-instantiate "${nix_args[@]}" --eval --json \
--argstr path "$path" \
--arg recursive "$recursive" \
@nixosOptionNix@ \
| jq -r
+80
View File
@@ -0,0 +1,80 @@
{
lib,
coreutils,
git,
installShellFiles,
jq,
makeWrapper,
man-db,
nix,
nixosTests,
shellcheck,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation {
name = "nixos-option";
src = ./nixos-option.sh;
nativeBuildInputs = [
installShellFiles
makeWrapper
shellcheck
];
env = {
nixosOptionNix = "${./nixos-option.nix}";
nixosOptionManpage = "${placeholder "out"}/share/man";
};
dontUnpack = true;
dontConfigure = true;
dontPatch = true;
dontBuild = true;
installPhase = ''
runHook preInstall
install -Dm555 $src $out/bin/nixos-option
substituteAllInPlace $out/bin/nixos-option
installManPage ${./nixos-option.8}
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
shellcheck $out/bin/nixos-option
runHook postInstallCheck
'';
postFixup = ''
wrapProgram $out/bin/nixos-option \
--prefix PATH : ${
lib.makeBinPath [
coreutils
git
jq
man-db
nix
]
}
'';
passthru.tests.installer-simpleUefiSystemdBoot = nixosTests.installer.simpleUefiSystemdBoot;
meta = {
description = "Evaluate NixOS configuration and return the properties of given option";
license = lib.licenses.mit;
mainProgram = "nixos-option";
maintainers = with lib.maintainers; [
FireyFly
azuwis
aleksana
];
};
}
+2 -2
View File
@@ -8,12 +8,12 @@
stdenv.mkDerivation rec {
pname = "opengrok";
version = "1.13.24";
version = "1.13.25";
# binary distribution
src = fetchurl {
url = "https://github.com/oracle/opengrok/releases/download/${version}/${pname}-${version}.tar.gz";
hash = "sha256-rAiibbNsEH+mjRq2qDKk+8pdAfnCFRpAm1Opgmw+FTY=";
hash = "sha256-8KWpj1iiM5mYWJICXgicVr1RvAT2F7P8hBxCpMUTHIs=";
};
nativeBuildInputs = [ makeWrapper ];
+2 -2
View File
@@ -5,13 +5,13 @@
}:
buildGoModule rec {
pname = "opnborg";
version = "0.1.51";
version = "0.1.54";
src = fetchFromGitHub {
owner = "paepckehh";
repo = "opnborg";
rev = "v${version}";
hash = "sha256-HcQl5R+xzk5HUVBUecI7KsrCfz/WK80hZ4oCOSHOGs8=";
hash = "sha256-N6tZqHyL3bOkXJrn4qMVpUR3tQHa8DiurRqy6BJnK+Y=";
};
vendorHash = "sha256-REXJryUcu+/AdVx1aK0nJ98Wq/EdhrZqL24kC1wK6mc=";
+37
View File
@@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
buildGoModule,
nix-update-script,
}:
buildGoModule rec {
pname = "os-agent";
version = "1.6.0";
src = fetchFromGitHub {
owner = "home-assistant";
repo = "os-agent";
tag = "${version}";
hash = "sha256-euBoRlgYtQmuYyIxD3yxbvXc4Zcke2JXGOlBmY0mRZU=";
};
vendorHash = "sha256-zWvvQsEBtGX2qa6HoG2sYv8q5fi/wM0eDQa8jLjh4+A=";
ldFlags = [
"-X main.version="
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Daemon allowing to control OS features through D-Bus";
homepage = "https://github.com/home-assistant/os-agent";
changelog = "https://github.com/home-assistant/os-agent/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ genga898 ];
mainProgram = "os-agent";
};
}
+3
View File
@@ -43,6 +43,9 @@ stdenv.mkDerivation rec {
++ lib.optional withNetworking "--enable-networking"
++ lib.optional withALSA "--enable-alsa";
# Fix GCC 14 build
env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types";
meta = with lib; {
description = "Emulator for IBM PC computers and clones";
mainProgram = "pcem";
+2 -2
View File
@@ -12,7 +12,7 @@
libbacktrace,
libpcap,
libwebp,
llvmPackages_17,
llvmPackages,
lz4,
makeWrapper,
pkg-config,
@@ -37,7 +37,7 @@ let
wrapQtAppsHook
;
in
llvmPackages_17.stdenv.mkDerivation (finalAttrs: {
llvmPackages.stdenv.mkDerivation (finalAttrs: {
inherit (sources.pcsx2) pname version src;
patches = [
+58
View File
@@ -0,0 +1,58 @@
{
lib,
fetchFromGitHub,
python3Packages,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "phase-cli";
version = "1.18.6";
pyproject = true;
src = fetchFromGitHub {
owner = "phasehq";
repo = "cli";
tag = "v${version}";
hash = "sha256-4DvvTIXTV10euFSFpULcomrAhfZbOBZ0MKb5oR9GX64=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
keyring
questionary
cffi
requests
pynacl
rich
pyyaml
toml
python-hcl2
];
nativeCheckInputs = [
versionCheckHook
python3Packages.pytestCheckHook
];
pytestFlagsArray = [
"tests/*.py"
];
pythonRelaxDeps = true;
versionCheckProgram = "${placeholder "out"}/bin/${meta.mainProgram}";
versionCheckProgramArg = [ "--version" ];
meta = {
description = "Securely manage and sync environment variables with Phase";
homepage = "https://github.com/phasehq/cli";
changelog = "https://github.com/phasehq/cli/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ genga898 ];
mainProgram = "phase";
};
}
+17 -3
View File
@@ -17,14 +17,27 @@ let
# We keep the override around even when the versions match, as
# it's likely to become relevant again after the next Poetry update.
poetry-core = super.poetry-core.overridePythonAttrs (old: rec {
version = "1.9.1";
version = "2.0.0";
src = fetchFromGitHub {
owner = "python-poetry";
repo = "poetry-core";
rev = "refs/tags/${version}";
hash = "sha256-L8lR9sUdRYqjkDCQ0XHXZm5X6xD40t1gxlGiovvb/+8=";
tag = version;
hash = "sha256-3dmvFn2rxtR0SK8oiEHIVJhpJpX4Mm/6kZnIYNSDv90=";
};
patches = [ ];
nativeCheckInputs =
old.nativeCheckInputs
++ (with self; [
trove-classifiers
]);
disabledTests = old.disabledTests ++ [
# relies on git
"test_package_with_include"
# Nix changes timestamp
"test_dist_info_date_time_default_value"
"test_sdist_members_mtime_default"
"test_sdist_mtime_zero"
];
});
}
// (plugins self);
@@ -41,6 +54,7 @@ let
poetry-plugin-export = callPackage ./plugins/poetry-plugin-export.nix { };
poetry-plugin-up = callPackage ./plugins/poetry-plugin-up.nix { };
poetry-plugin-poeblix = callPackage ./plugins/poetry-plugin-poeblix.nix { };
poetry-plugin-shell = callPackage ./plugins/poetry-plugin-shell.nix { };
};
# selector is a function mapping pythonPackages to a list of plugins
@@ -23,15 +23,19 @@ buildPythonPackage rec {
hash = "sha256-kiNtzEup2ygCTk0zk8YV2jxAj6ZzOhP8v0U4FbV15hI=";
};
nativeBuildInputs = [
build-system = [
poetry-core
];
pythonRelaxDeps = [
"poetry"
];
buildInputs = [
poetry
];
propagatedBuildInputs = [
dependencies = [
safety
];
@@ -2,7 +2,11 @@
lib,
buildPythonPackage,
fetchFromGitHub,
poetry,
poetry-core,
pytest-mock,
pytest-xdist,
pytestCheckHook,
}:
buildPythonPackage rec {
@@ -17,17 +21,19 @@ buildPythonPackage rec {
hash = "sha256-ZXhj9FwCCNFMzyoAtQTD8bddOvVM4KzNtd+3sBn9i+w=";
};
postPatch = ''
sed -i '/poetry =/d' pyproject.toml
'';
nativeBuildInputs = [
build-system = [
poetry-core
];
# infinite recursion with poetry
doCheck = false;
pythonImportsCheck = [ ];
buildInputs = [
poetry
];
nativeCheckInputs = [
pytest-mock
pytest-xdist
pytestCheckHook
];
meta = with lib; {
changelog = "https://github.com/python-poetry/poetry-plugin-export/blob/${src.rev}/CHANGELOG.md";
@@ -0,0 +1,50 @@
{
buildPythonPackage,
fetchFromGitHub,
lib,
pexpect,
poetry,
poetry-core,
pytest-mock,
pytest-xdist,
pytestCheckHook,
shellingham,
}:
buildPythonPackage rec {
pname = "poetry-plugin-shell";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "python-poetry";
repo = "poetry-plugin-shell";
tag = version;
hash = "sha256-ynbZCzic6bAIwtG0rGk4oMPc8pm59UFboNAGUb0qJnE=";
};
build-system = [ poetry-core ];
buildInputs = [
poetry
];
dependencies = [
pexpect
shellingham
];
nativeCheckInputs = [
pytest-mock
pytest-xdist
pytestCheckHook
];
meta = {
changelog = "https://github.com/python-poetry/poetry-plugin-shell/blob/${src.tag}/CHANGELOG.md";
description = "Poetry plugin to run subshell with virtual environment activated";
homepage = "https://github.com/python-poetry/poetry-plugin-shell";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dotlambda ];
};
}
@@ -20,14 +20,17 @@ buildPythonPackage rec {
hash = "sha256-PWHbMDGL9CGLRmvFWLOztUW0f/TJioPjQtAgpyCbAqw=";
};
nativeBuildInputs = [
build-system = [
poetry-core
];
buildInputs = [
poetry
];
nativeCheckInputs = [
pytestCheckHook
pytest-mock
poetry
];
preCheck = ''
@@ -40,5 +43,7 @@ buildPythonPackage rec {
changelog = "https://github.com/MousaZeidBaker/poetry-plugin-up/releases/tag/${version}";
license = licenses.mit;
maintainers = [ maintainers.k900 ];
# https://github.com/MousaZeidBaker/poetry-plugin-up/pull/70
broken = lib.versionAtLeast poetry.version "2";
};
}
+14 -11
View File
@@ -4,21 +4,19 @@
buildPythonPackage,
pythonOlder,
fetchFromGitHub,
fetchpatch2,
installShellFiles,
build,
cachecontrol,
cleo,
crashtest,
dulwich,
fastjsonschema,
installer,
keyring,
packaging,
pexpect,
pkginfo,
platformdirs,
poetry-core,
poetry-plugin-export,
pyproject-hooks,
requests,
requests-toolbelt,
@@ -39,18 +37,26 @@
buildPythonPackage rec {
pname = "poetry";
version = "1.8.5";
version = "2.0.0";
pyproject = true;
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "python-poetry";
repo = "poetry";
rev = "refs/tags/${version}";
hash = "sha256-YR0IgDhmpbe8TyTMP1cjUxGRnrfV8CNHkPlZrNcnof0=";
tag = version;
hash = "sha256-r4TK4CKDfCeCW+Y1vUoS4ppXmn5xEvI1ZBVUHqFJLKo=";
};
patches = [
# https://github.com/python-poetry/poetry/pull/9939
(fetchpatch2 {
url = "https://github.com/python-poetry/poetry/commit/89c0d02761229a8aa7ac5afcbc8935387bde4c5b.patch?full_index=1";
hash = "sha256-YuAevkmCSTGuFPfuKrJfcLUye1YGpnHSb9TFSW7F1SU=";
})
];
build-system = [
poetry-core
];
@@ -70,17 +76,14 @@ buildPythonPackage rec {
build
cachecontrol
cleo
crashtest
dulwich
fastjsonschema
installer
keyring
packaging
pexpect
pkginfo
platformdirs
poetry-core
poetry-plugin-export
pyproject-hooks
requests
requests-toolbelt
@@ -136,8 +139,8 @@ buildPythonPackage rec {
disabledTests = [
"test_builder_should_execute_build_scripts"
"test_env_system_packages_are_relative_to_lib"
"test_executor_known_hashes"
"test_install_warning_corrupt_root"
"test_project_plugins_are_installed_in_project_folder"
];
pytestFlagsArray = [
@@ -5,17 +5,17 @@
}:
let
version = "1.3.1";
version = "1.3.2";
src = fetchFromGitHub {
owner = "tynany";
repo = "frr_exporter";
rev = "v${version}";
hash = "sha256-SDtI7CvCeuRL1cXNsWGCl/zupVbgMxv5bzYYqJWTrMw=";
hash = "sha256-Cy9m9ZwYWXelMsr6n6WWjBw4LlEZxkdy5ZMJKoJ8HZI=";
};
in
buildGoModule {
pname = "prometheus-frr-exporter";
vendorHash = "sha256-G+S4XORrg0AEKoAqYdmg+uW6x0Ub5diQTyQGY0iebHg=";
vendorHash = "sha256-A2lLW19+wtHcNC8Du8HRORVp/JHGjWbEgoadlNmgm80=";
inherit src version;
ldflags = [
+2 -2
View File
@@ -9,13 +9,13 @@
buildGoModule rec {
pname = "pscale";
version = "0.218.0";
version = "0.219.0";
src = fetchFromGitHub {
owner = "planetscale";
repo = "cli";
rev = "v${version}";
sha256 = "sha256-9aa/Ly/QGdtgpa+p3RuxdZ/EsV81FNLqLxSWMzY55dM=";
sha256 = "sha256-kiypZpTw2DAF0fB7kqdRgDrvFtenexnVPq3kFNWBEgQ=";
};
vendorHash = "sha256-/BYWAE2VpHy+HTmHOz4GhstcD+Y6R0tjeF9/8+LiZT0=";
+4 -1
View File
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
out="$(env - LANG=C.utf8 HOME=/build ${placeholder "out"}/bin/rabbitmqctl version)"
out="$(env - LANG=C.utf8 HOME=$TMPDIR ${placeholder "out"}/bin/rabbitmqctl version)"
if [[ "$out" != "$version" ]]; then
echo "Rabbitmq should report version $version, but thinks it's version $out" >&2
exit 1
@@ -120,6 +120,9 @@ stdenv.mkDerivation rec {
runHook postInstallCheck
'';
# Needed for the check in installCheckPhase
__darwinAllowLocalNetworking = true;
passthru.tests = {
vm-test = nixosTests.rabbitmq;
};
+3 -3
View File
@@ -12,16 +12,16 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "railway";
version = "3.20.0";
version = "3.20.1";
src = fetchFromGitHub {
owner = "railwayapp";
repo = "cli";
rev = "v${version}";
hash = "sha256-rbgGQrZFytrlEAtyrZlwj/ylNw2rAJ9tfK1NNSaxaT4=";
hash = "sha256-a+p8cJKfkux0GupUuoZGfTFrrkW7fzUwmL4W6tr50ek=";
};
cargoHash = "sha256-vrQwaLJwhdnbltdLYrOxFbcnbUIPpE1fnN+arAYgZvw=";
cargoHash = "sha256-PKUN0scv7J4znaSAC2lc0AO4LzD4l59kuSKvLGRyXME=";
nativeBuildInputs = [ pkg-config ];
+3 -3
View File
@@ -24,14 +24,14 @@
rustPlatform.buildRustPackage rec {
pname = "rbw";
version = "1.13.0";
version = "1.13.2";
src = fetchzip {
url = "https://git.tozt.net/rbw/snapshot/rbw-${version}.tar.gz";
hash = "sha256-m5Ql4QfPnlJXfDNEw0O5kXnkFH7Z5u0OSbmB1chgPDY=";
hash = "sha256-ebLbdIF+BybK7ssNtZacGWmAEwdNZh8b94QYgvcwzmM=";
};
cargoHash = "sha256-/6P0LAdYFByryihRcSLn3s3TMzZJjkSMhnZmevP85Ts=";
cargoHash = "sha256-230jJr2EQua9iI4jz+LxrTZn4TtVAsmPYB8JMLAylzc=";
nativeBuildInputs = [
installShellFiles
+3 -3
View File
@@ -9,17 +9,17 @@
}:
rustPlatform.buildRustPackage rec {
version = "0.9.0";
version = "0.9.1";
pname = "sccache";
src = fetchFromGitHub {
owner = "mozilla";
repo = "sccache";
rev = "v${version}";
sha256 = "sha256-JjXk7mH9XT06qkQDDF2F1zq8m55y7eKTr113iZtrEnA=";
sha256 = "sha256-MR/zfE87Z4TXc3ta3192lG/tD7YiVrn0HCLr5O29Izo=";
};
cargoHash = "sha256-u6wV+AbR3y1V+lkZbhtBE3nxRKZ6XXOqv0MAMm2Dc1E=";
cargoHash = "sha256-tmK+/m1yNQvwbOs05hADmHOwuIbLgGXvPSvXYuye/OY=";
nativeBuildInputs = [
pkg-config
+8 -7
View File
@@ -6,25 +6,26 @@
python3.pkgs.buildPythonApplication rec {
pname = "signal-export";
version = "1.8.2";
version = "3.2.2";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-Hm0BVF2RUsxDacsAB3MJtk1t9FYmBPjeb5JzwaLkZ14=";
inherit version;
pname = "signal_export";
hash = "sha256-QHTix56hdujxWr+pjCg6zu15tCB7YoDSzmNpWwWOHN0=";
};
nativeBuildInputs = with python3.pkgs; [
setuptools-scm
build-system = with python3.pkgs; [
pdm-backend
];
propagatedBuildInputs = with python3.pkgs; [
setuptools
typer
beautifulsoup4
emoji
markdown
pysqlcipher3
pycryptodome
sqlcipher3-wheels
];
passthru.updateScript = nix-update-script { };
@@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "signalbackup-tools";
version = "20241220";
version = "20250106";
src = fetchFromGitHub {
owner = "bepaald";
repo = "signalbackup-tools";
rev = version;
hash = "sha256-uAkoPY42pf3v0yA1oXUf+sAX08cT9/13B17XF89phaI=";
hash = "sha256-sCJA9Rns5kGYHM5D/lCqXk81m0R0T6mAigAogkcfYL0=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "simdjson";
version = "3.11.3";
version = "3.11.4";
src = fetchFromGitHub {
owner = "simdjson";
repo = "simdjson";
rev = "v${version}";
sha256 = "sha256-Gh9/vOfhEh3RXT4cSb6KpDqjYS0d1kje1JDbDiWTR0o=";
sha256 = "sha256-mcsMp9P9+3ACHkykJitHADoZ35kBeUza2LN+EPnq8RU=";
};
nativeBuildInputs = [ cmake ];
+3 -3
View File
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "slumber";
version = "2.4.0";
version = "2.5.0";
src = fetchFromGitHub {
owner = "LucasPickering";
repo = "slumber";
tag = "v${version}";
hash = "sha256-kZAcNQhLlSl3eX1K+NNzkRV8JK/yH3yzYcZPgUBnSBk=";
hash = "sha256-ojHVH/GE2FonqqxpGK6t/AmCaeOS1TkWMt89iUt5i1s=";
};
cargoHash = "sha256-xbMSPnG07hgBuTARa1L2mX3jk/69JkEDswQ9SuQl42o=";
cargoHash = "sha256-qBOZnEhYoTMEzzhf2K6zcXeLCj0rMFs1qERwdUw1fVw=";
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.AppKit ];
-1
View File
@@ -5,7 +5,6 @@
pkgs,
boost,
cmake,
coreutils,
jq,
ncurses,
python3,
+2 -2
View File
@@ -8,11 +8,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "stats";
version = "2.11.22";
version = "2.11.23";
src = fetchurl {
url = "https://github.com/exelban/stats/releases/download/v${finalAttrs.version}/Stats.dmg";
hash = "sha256-b8Yj8YRoiE37cj4NDDdreoPH5BokBBTReFihUnHQ1wU=";
hash = "sha256-tlKiRvLTIt0lKc/fOQBj07lFjgOSkKNE4iNlNwxfTCU=";
};
sourceRoot = ".";
+53
View File
@@ -0,0 +1,53 @@
diff --git a/src/core/debugger/debugger.cpp b/src/core/debugger/debugger.cpp
index e86aae8460..a4dca23770 100644
--- a/src/core/debugger/debugger.cpp
+++ b/src/core/debugger/debugger.cpp
@@ -5,7 +5,13 @@
#include <mutex>
#include <thread>
-#include <boost/asio.hpp>
+// Use basic asio functionality only
+#define BOOST_ASIO_STANDALONE
+#include <boost/asio/basic_io_object.hpp>
+#include <boost/asio/ip/tcp.hpp>
+#include <boost/asio/write.hpp>
+#include <boost/asio/read.hpp>
+
#include <boost/process/async_pipe.hpp>
#include "common/logging/log.h"
@@ -21,17 +27,22 @@
template <typename Readable, typename Buffer, typename Callback>
static void AsyncReceiveInto(Readable& r, Buffer& buffer, Callback&& c) {
- static_assert(std::is_trivial_v<Buffer>);
- auto boost_buffer{boost::asio::buffer(&buffer, sizeof(Buffer))};
- r.async_read_some(
- boost_buffer, [&, c](const boost::system::error_code& error, size_t bytes_read) {
- if (!error.failed()) {
- const u8* buffer_start = reinterpret_cast<const u8*>(&buffer);
- std::span<const u8> received_data{buffer_start, buffer_start + bytes_read};
- c(received_data);
- AsyncReceiveInto(r, buffer, c);
- }
- });
+ try {
+ static_assert(std::is_trivial_v<Buffer>);
+ auto boost_buffer{boost::asio::buffer(&buffer, sizeof(Buffer))};
+ r.async_read_some(
+ boost_buffer,
+ [&, c](const boost::system::error_code& error, size_t bytes_read) {
+ if (!error) {
+ const u8* buffer_start = reinterpret_cast<const u8*>(&buffer);
+ std::span<const u8> received_data{buffer_start, buffer_start + bytes_read};
+ c(received_data);
+ AsyncReceiveInto(r, buffer, c);
+ }
+ });
+ } catch (const std::exception& e) {
+ LOG_ERROR(Debug_GDBStub, "AsyncReceiveInto error: {}", e.what());
+ }
}
template <typename Callback>
+30
View File
@@ -0,0 +1,30 @@
diff --git a/src/input_common/drivers/udp_client.cpp b/src/input_common/drivers/udp_client.cpp
index 60821b31a6..8f9c047218 100644
--- a/src/input_common/drivers/udp_client.cpp
+++ b/src/input_common/drivers/udp_client.cpp
@@ -2,7 +2,15 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include <random>
-#include <boost/asio.hpp>
+// Include only needed asio components
+#include <boost/asio/io_context.hpp>
+#include <boost/asio/ip/udp.hpp>
+#include <boost/asio/basic_waitable_timer.hpp>
+#include <boost/asio/write.hpp>
+#include <boost/asio/buffer.hpp>
+#include <boost/asio/basic_socket.hpp>
+#include <boost/asio/ip/address.hpp>
+#include <boost/asio/ip/address_v4.hpp>
#include <fmt/format.h>
#include "common/logging/log.h"
@@ -113,7 +121,7 @@ private:
}
SocketCallback callback;
- boost::asio::io_service io_service;
+ boost::asio::io_context io_service;
boost::asio::basic_waitable_timer<clock> timer;
udp::socket socket;
@@ -0,0 +1,13 @@
diff --git a/src/input_common/helpers/udp_protocol.h b/src/input_common/helpers/udp_protocol.h
index db08fc62c5..ea223ea937 100644
--- a/src/input_common/helpers/udp_protocol.h
+++ b/src/input_common/helpers/udp_protocol.h
@@ -69,7 +69,7 @@ Message<T> CreateMessage(const u32 magic, const T data, const u32 sender_id) {
};
Message<T> message{header, data};
crc.process_bytes(&message, sizeof(Message<T>));
- message.header.crc = crc.checksum();
+ message.header.crc = static_cast<u32_le>(crc.checksum());
return message;
}
+237
View File
@@ -0,0 +1,237 @@
{
lib,
stdenv,
SDL2,
autoconf,
boost,
catch2_3,
cmake,
fetchFromGitHub,
cpp-jwt,
cubeb,
discord-rpc,
enet,
fetchgit,
fetchurl,
ffmpeg-headless,
fmt,
glslang,
libopus,
libusb1,
libva,
lz4,
unzip,
nix-update-script,
nlohmann_json,
nv-codec-headers-12,
pkg-config,
qt6,
vulkan-headers,
vulkan-loader,
yasm,
simpleini,
zlib,
vulkan-memory-allocator,
zstd,
}:
let
inherit (qt6)
qtbase
qtmultimedia
qtwayland
wrapQtAppsHook
qttools
qtwebengine
;
compat-list = stdenv.mkDerivation {
pname = "yuzu-compatibility-list";
version = "unstable-2024-02-26";
src = fetchFromGitHub {
owner = "flathub";
repo = "org.yuzu_emu.yuzu";
rev = "9c2032a3c7e64772a8112b77ed8b660242172068";
hash = "sha256-ITh/W4vfC9w9t+TJnPeTZwWifnhTNKX54JSSdpgaoBk=";
};
buildCommand = ''
cp $src/compatibility_list.json $out
'';
};
nx_tzdb = stdenv.mkDerivation rec {
pname = "nx_tzdb";
version = "221202";
src = fetchurl {
url = "https://github.com/lat9nq/tzdb_to_nx/releases/download/${version}/${version}.zip";
hash = "sha256-mRzW+iIwrU1zsxHmf+0RArU8BShAoEMvCz+McXFFK3c=";
};
nativeBuildInputs = [ unzip ];
buildCommand = ''
unzip $src -d $out
'';
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "suyu";
version = "0.0.4";
src = fetchgit {
url = "https://git.suyu.dev/suyu/suyu";
tag = "v${finalAttrs.version}";
hash = "sha256-GgLCbQI7u9neFxQq4borNhlg72FIYn+J5XkaK/7hpnQ=";
fetchSubmodules = true;
};
patches = [
# Remove coroutines from debugger to fix boost::asio compatibility issues
./fix-debugger.patch
# Add explicit cast for CRC checksum value
./fix-udp-protocol.patch
# Use specific boost::asio includes and update to modern io_context
./fix-udp-client.patch
];
nativeBuildInputs = [
cmake
glslang
pkg-config
qttools
wrapQtAppsHook
];
buildInputs = [
# vulkan-headers must come first, so the older propagated versions
# don't get picked up by accident
vulkan-headers
boost
catch2_3
cpp-jwt
cubeb
discord-rpc
# intentionally omitted: dynarmic - prefer vendored version for compatibility
enet
# ffmpeg deps (also includes vendored)
# we do not use internal ffmpeg because cuda errors
autoconf
yasm
libva # for accelerated video decode on non-nvidia
nv-codec-headers-12 # for accelerated video decode on nvidia
ffmpeg-headless
# end ffmpeg deps
fmt
# intentionally omitted: gamemode - loaded dynamically at runtime
# intentionally omitted: httplib - upstream requires an older version than what we have
libopus
libusb1
# intentionally omitted: LLVM - heavy, only used for stack traces in the debugger
lz4
nlohmann_json
qtbase
qtmultimedia
qtwayland
qtwebengine
# intentionally omitted: renderdoc - heavy, developer only
SDL2
# intentionally omitted: stb - header only libraries, vendor uses git snapshot
vulkan-memory-allocator
# intentionally omitted: xbyak - prefer vendored version for compatibility
zlib
zstd
];
# This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt`
# making the build fail, as that path does not exist
dontFixCmake = true;
cmakeFlags = [
# actually has a noticeable performance impact
(lib.cmakeBool "SUYU_ENABLE_LTO" true)
(lib.cmakeBool "ENABLE_QT6" true)
(lib.cmakeBool "ENABLE_QT_TRANSLATION" true)
# use system libraries
# NB: "external" here means "from the externals/ directory in the source",
# so "off" means "use system"
(lib.cmakeBool "SUYU_USE_EXTERNAL_SDL2" false)
(lib.cmakeBool "SUYU_USE_EXTERNAL_VULKAN_HEADERS" true)
"-DVulkan_INCLUDE_DIRS=${vulkan-headers}/include"
# # don't use system ffmpeg, suyu uses internal APIs
# (lib.cmakeBool "SUYU_USE_BUNDLED_FFMPEG" true)
# don't check for missing submodules
(lib.cmakeBool "SUYU_CHECK_SUBMODULES" false)
# enable some optional features
(lib.cmakeBool "SUYU_USE_QT_WEB_ENGINE" true)
(lib.cmakeBool "SUYU_USE_QT_MULTIMEDIA" true)
(lib.cmakeBool "USE_DISCORD_PRESENCE" true)
# We dont want to bother upstream with potentially outdated compat reports
(lib.cmakeBool "SUYU_ENABLE_COMPATIBILITY_REPORTING" false)
(lib.cmakeBool "ENABLE_COMPATIBILITY_LIST_DOWNLOAD" false) # We provide this deterministically
];
env = {
# Does some handrolled SIMD
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isx86_64 "-msse4.1";
};
qtWrapperArgs = [
# Fixes vulkan detection.
# FIXME: patchelf --add-rpath corrupts the binary for some reason, investigate
"--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
];
# Setting this through cmakeFlags does not work.
# https://github.com/NixOS/nixpkgs/issues/114044
preConfigure = lib.concatStringsSep "\n" [
''
cmakeFlagsArray+=(
"-DTITLE_BAR_FORMAT_IDLE=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) {}"
"-DTITLE_BAR_FORMAT_RUNNING=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) | {}"
)
''
# provide pre-downloaded tz data
''
mkdir -p build/externals/nx_tzdb
ln -s ${nx_tzdb} build/externals/nx_tzdb/nx_tzdb
''
];
postConfigure = ''
ln -sf ${compat-list} ./dist/compatibility_list/compatibility_list.json
'';
postInstall = "
install -Dm444 $src/dist/72-suyu-input.rules $out/lib/udev/rules.d/72-suyu-input.rules
";
meta = {
description = "Experimental Nintendo Switch emulator written in C++";
homepage = "https://suyu.dev";
mainProgram = "suyu";
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ liberodark ];
license = with lib.licenses; [
gpl3Plus
# Icons
asl20
mit
cc0
];
};
})
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "ticker";
version = "4.7.1";
version = "4.8.0";
src = fetchFromGitHub {
owner = "achannarasappa";
repo = pname;
tag = "v${version}";
hash = "sha256-7yAmwyKIO0bMqNgTcdWcgBXPV/T7753z/x2KAB8W070=";
hash = "sha256-L7vqZVfj7Ns8xCFU0ruhosReM4RMhIbIHXrMbQ8YI6I=";
};
vendorHash = "sha256-XrZdv6QpR1HGN2o/Itbw+7hOkgVjzvx3jwlHeaJ2m0U=";
vendorHash = "sha256-o3hVRHyrJpmYgephoZ2JlVLGSqZtRQAp48OzoIMY3do=";
ldflags = [
"-s"
+264
View File
@@ -0,0 +1,264 @@
{
lib,
stdenv,
stdenvNoCC,
fetchFromGitHub,
fetchurl,
cmake,
pkg-config,
git,
libcxx,
SDL2,
openal,
imagemagick,
libicns,
symlinkJoin,
unar,
rsync,
makeDesktopItem,
copyDesktopItems,
appName,
CMAKE_BUILD_TYPE ? "RelWithDebInfo", # "Choose the type of build, recommended options are: Debug Release RelWithDebInfo"
}:
assert lib.assertOneOf "appName" appName [
"vanillatd"
"vanillara"
];
stdenv.mkDerivation (finalAttrs: {
pname = appName;
version = "0.0.0";
src = fetchFromGitHub {
owner = "TheAssemblyArmada";
repo = "Vanilla-Conquer";
# FIXME: This version has format-security
rev = "ebc8083d5d149f98abc20f460a512a2d16fdc59f";
hash = "sha256-iUF9UFc0FMvOwLkGqSyLYGy5E8YqNySqDp5VVUa+u4o=";
};
# TODO: Remove this. Just add this flag to ignore the format-security error temporarily.
NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
buildInputs = [
libcxx
SDL2
openal
];
nativeBuildInputs =
[
cmake
pkg-config
git
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
libicns
imagemagick
]
++ lib.optionals stdenv.hostPlatform.isLinux [
copyDesktopItems
];
cmakeFlags = [
(lib.cmakeFeature "BUILD_VANILLATD" (if appName == "vanillatd" then "ON" else "OFF"))
(lib.cmakeFeature "BUILD_VANILLARA" (if appName == "vanillara" then "ON" else "OFF"))
(lib.cmakeFeature "BUILD_REMASTERTD" (if appName == "remastertd" then "ON" else "OFF"))
(lib.cmakeFeature "BUILD_REMASTERRA" (if appName == "remasterra" then "ON" else "OFF"))
(lib.cmakeFeature "CMAKE_BUILD_TYPE" CMAKE_BUILD_TYPE)
];
# TODO: Fix this from the upstream
# remove the old FindSDL2.cmake logic, use cmake's built-in SDL2 support
# replace ${SDL2_LIBRARY} to SDL2::SDL2 in CMakeLists.txt
preConfigure = ''
rm cmake/FindSDL2.cmake
sed -i 's/..SDL2_LIBRARY./SDL2::SDL2/g' CMakeLists.txt
'';
installPhase =
if stdenv.isDarwin then
''
runHook preInstall
mkdir -p $out/Applications
mv ${appName}.app $out/Applications
runHook postInstall
''
else
''
runHook preInstall
mkdir -p $out/bin
mv ${appName} $out/bin/${appName}
install -Dm644 ../resources/${appName}_icon.svg $out/share/icons/hicolor/scalable/apps/${appName}.svg
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = appName;
desktopName = appName;
comment =
{
"vanillatd" = "Command & Conquer: Tiberian Dawn";
"vanillara" = "Command & Conquer: Red Alert";
}
."${appName}";
exec = appName;
terminal = false;
icon = appName;
startupWMClass = appName;
categories = [ "Game" ];
})
];
meta = {
description =
{
"vanillatd" =
"Vanilla Conquer is a modern, multi-platform source port of Command & Conquer: Tiberian Dawn";
"vanillara" =
"Vanilla Conquer is a modern, multi-platform source port of Command & Conquer: Red Alert";
}
."${appName}";
homepage = "https://github.com/TheAssemblyArmada/Vanilla-Conquer";
license = with lib.licenses; [ gpl3Only ];
sourceProvenance = with lib.sourceTypes; [ fromSource ];
maintainers = with lib.maintainers; [ xiaoxiangmoe ];
platforms = with lib.platforms; darwin ++ linux;
};
passthru = rec {
packages =
builtins.mapAttrs
(
name: buildPhase:
stdenvNoCC.mkDerivation {
inherit name buildPhase;
phases = [ "buildPhase" ];
nativeBuildInputs = [ unar ];
meta = {
sourceProvenance = with lib.sourceTypes; [
binaryBytecode
];
license = with lib.licenses; [
unfree
];
};
}
)
(
if appName == "vanillatd" then
let
CCDEMO1_ZIP = fetchurl {
url = "https://archive.org/download/CommandConquerDemo/cc1demo1.zip";
hash = "sha256-KdM4SctFCocmJCbMWbJbql4DO5TC40leyU+BPzvAn4c=";
};
CCDEMO2_ZIP = fetchurl {
url = "https://archive.org/download/CommandConquerDemo/cc1demo2.zip";
hash = "sha256-pCgEuE5AFcJur3qUOTmP3GCb/Wp7p7JyVn8Yeq17PEg=";
};
demo = ''
unar -no-directory ${CCDEMO1_ZIP} DEMO.MIX DEMOL.MIX SOUNDS.MIX SPEECH.MIX
unar -no-directory ${CCDEMO2_ZIP} DEMOM.MIX
mkdir -p $out
mv DEMO.MIX $out/demo.mix
mv DEMOL.MIX $out/demol.mix
mv SOUNDS.MIX $out/sounds.mix
mv SPEECH.MIX $out/speech.mix
mv DEMOM.MIX $out/demom.mix
'';
in
# see https://github.com/TheAssemblyArmada/Vanilla-Conquer/wiki/Installing-VanillaTD
{
inherit demo;
}
else if appName == "vanillara" then
let
RA95DEMO_ZIP = fetchurl {
url = "https://archive.org/download/CommandConquerRedAlert_1020/ra95demo.zip";
hash = "sha256-jEi9tTUj6k01OnkU2SNM5OPm9YMu60eztrAFhT6HSNI=";
};
demo = ''
unar -no-directory ${RA95DEMO_ZIP} ra95demo/INSTALL/MAIN.MIX ra95demo/INSTALL/REDALERT.MIX
install -D ra95demo/INSTALL/REDALERT.MIX $out/redalert.mix
install -D ra95demo/INSTALL/MAIN.MIX $out/main.mix
'';
REDALERT_ALLIED_ISO = fetchurl {
url = "https://archive.org/download/cnc-red-alert/redalert_allied.iso";
hash = "sha256-Npx6hSTJetFlcb/Fi3UQEGuP0iLk9LIrRmAI7WgEtdw=";
};
REDALERT_SOVIETS_ISO = fetchurl {
url = "https://archive.org/download/cnc-red-alert/redalert_soviets.iso";
hash = "sha256-aJGr+w1BaGaLwX/pU0lMmu6Cgn9pZ2D/aVafBdtds2Q=";
};
retail-allied = ''
unar -output-directory allied -no-directory ${REDALERT_ALLIED_ISO} MAIN.MIX INSTALL/REDALERT.MIX
mkdir -p $out/allied/
mv allied/INSTALL/REDALERT.MIX $out/redalert.mix
mv allied/MAIN.MIX $out/allied/main.mix
'';
retail-soviet = ''
unar -output-directory soviet -no-directory ${REDALERT_SOVIETS_ISO} MAIN.MIX INSTALL/REDALERT.MIX
mkdir -p $out/soviet/
mv soviet/INSTALL/REDALERT.MIX $out/redalert.mix
mv soviet/MAIN.MIX $out/soviet/main.mix
'';
retail = ''
unar -output-directory allied -no-directory ${REDALERT_ALLIED_ISO} MAIN.MIX INSTALL/REDALERT.MIX
unar -output-directory soviet -no-directory ${REDALERT_SOVIETS_ISO} MAIN.MIX
mkdir -p $out/allied/ $out/soviet/
mv allied/INSTALL/REDALERT.MIX $out/redalert.mix
mv allied/MAIN.MIX $out/allied/main.mix
mv soviet/MAIN.MIX $out/soviet/main.mix
'';
in
# see https://github.com/TheAssemblyArmada/Vanilla-Conquer/wiki/Installing-VanillaRA
{
inherit
demo
retail-allied
retail-soviet
retail
;
}
else
{ }
);
withPackages =
cb:
let
dataDerivation = symlinkJoin {
name = "${appName}-data";
paths = if builtins.isFunction cb then cb packages else cb;
};
in
stdenvNoCC.mkDerivation {
pname = "${appName}-with-packages";
inherit (finalAttrs.finalPackage) version meta;
buildInputs = [ dataDerivation ] ++ finalAttrs.buildInputs;
nativeBuildInputs = [ rsync ];
phases = [ "buildPhase" ];
buildPhase =
let
Default_Data_Path =
if stdenv.isDarwin then
"$out/Applications/${appName}.app/Contents/share/${appName}"
else
"$out/share/${appName}";
in
''
# The default Data_Path() is rely on the Program_Path(), which is the real path of executable, so we need to make executable non symlink here.
rsync --archive --mkpath --chmod=a+w ${finalAttrs.finalPackage}/ $out/
# Symlink the data derivation to the default data path
mkdir -p ${builtins.dirOf Default_Data_Path}
ln -s ${dataDerivation} ${Default_Data_Path}
# Fix `error: suspicious ownership or permission on '/nix/store/xxx-0.0.0' for output 'out'; rejecting this build output`
chmod 755 $out
'';
};
};
})
+48
View File
@@ -0,0 +1,48 @@
{
lib,
fetchFromGitHub,
python3Packages,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "virtnbdbackup";
version = "2.18";
src = fetchFromGitHub {
owner = "abbbi";
repo = "virtnbdbackup";
tag = "v${version}";
hash = "sha256-0ZM3Xu3CbAuN60d0L32odNu9DfnOEDx3X03mFpDFZ6Y=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
libvirt
tqdm
libnbd
lz4
lxml
paramiko
typing-extensions
colorlog
];
nativeCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = [ "-V" ];
meta = {
description = "Backup utility for Libvirt/qemu/kvm";
homepage = "https://github.com/abbbi/virtnbdbackup";
changelog = "https://github.com/abbbi/virtnbdbackup/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ genga898 ];
mainProgram = "virtnbdbackup";
};
}
+4 -5
View File
@@ -28,23 +28,23 @@ let
version =
let
x86_64-darwin = "3.35.4861";
x86_64-darwin = "3.37.5164";
in
{
inherit x86_64-darwin;
aarch64-darwin = x86_64-darwin;
x86_64-linux = "3.36.3462";
x86_64-linux = "3.37.3607";
}
.${system} or throwSystem;
hash =
let
x86_64-darwin = "sha256-QPxslMEz1jOH2LceFOdCyVDtpya1SfJ8GWMIAIhie4U=";
x86_64-darwin = "sha256-xQ6EaZFE6qdpgFj1Lom37wT8URd5FsRwG89YeM/+U7k=";
in
{
inherit x86_64-darwin;
aarch64-darwin = x86_64-darwin;
x86_64-linux = "sha256-tlX15AT4PcrmD2Vna99TGqo0b/8xv2YOAt03aCqSeXg=";
x86_64-linux = "sha256-mckFxxrWnxeVGgJ//efPTdtHt5nVII1lXu/BT61TKxE=";
}
.${system} or throwSystem;
@@ -64,7 +64,6 @@ let
homepage = "https://wire.com/";
downloadPage = "https://wire.com/download/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
knownVulnerabilities = [ "CVE-2024-6775" ];
license = licenses.gpl3Plus;
maintainers = with maintainers; [
arianvp
+3 -3
View File
@@ -4,7 +4,7 @@
lib,
}:
let
version = "0.4.0";
version = "0.4.1";
in
buildGoModule {
pname = "wush";
@@ -14,10 +14,10 @@ buildGoModule {
owner = "coder";
repo = "wush";
rev = "v${version}";
hash = "sha256-0yICcexo5OZ7iNuZaKzWcWjZ34dY24GPosXIz9WlbK8=";
hash = "sha256-K83peIfr1+OHuuq6gdgco0RhfF1tAAewb4pxNT6vV+w=";
};
vendorHash = "sha256-LVqj27e2OcF+XBb6glTV5Zrw3W/vbtG7D7TmjcMQcnw=";
vendorHash = "sha256-3/DDtqVj7NNoJlNmKC+Q+XGS182E9OYkKMZ/2viANNQ=";
ldflags = [
"-s -w -X main.version=${version}"
@@ -22,7 +22,6 @@
withMesa ? !stdenv.hostPlatform.isDarwin,
withWebKit ? stdenv.hostPlatform.isDarwin,
webkitgtk_4_0,
setfile,
libpng,
}:
@@ -62,7 +61,6 @@ stdenv.mkDerivation rec {
++ lib.optional withMesa libGLU
++ lib.optional (withWebKit && !stdenv.hostPlatform.isDarwin) webkitgtk_4_0
++ lib.optionals stdenv.hostPlatform.isDarwin [
setfile
libpng
];
@@ -93,22 +91,14 @@ stdenv.mkDerivation rec {
!stdenv.hostPlatform.isDarwin
) "${libGLU.out}/lib ${libGL.out}/lib ";
preConfigure =
''
substituteInPlace configure --replace \
'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
substituteInPlace configure --replace \
'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
substituteInPlace configure --replace \
/usr /no-such-path
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace configure --replace \
'ac_cv_prog_SETFILE="/Developer/Tools/SetFile"' \
'ac_cv_prog_SETFILE="${setfile}/bin/SetFile"'
substituteInPlace configure --replace \
"-framework System" "-lSystem"
'';
preConfigure = ''
substituteInPlace configure --replace \
'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
substituteInPlace configure --replace \
'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
substituteInPlace configure --replace \
/usr /no-such-path
'';
postInstall = "
pushd $out/include
+148
View File
@@ -0,0 +1,148 @@
{
lib,
stdenv,
curl,
expat,
fetchFromGitHub,
gst_all_1,
gtk3,
libGL,
libGLU,
libSM,
libXinerama,
libXtst,
libXxf86vm,
libpng,
libtiff,
libjpeg_turbo,
zlib,
pcre2,
pkg-config,
xorgproto,
compat28 ? false,
compat30 ? true,
unicode ? true,
withMesa ? !stdenv.hostPlatform.isDarwin,
withWebKit ? true,
webkitgtk_4_0,
}:
let
catch = fetchFromGitHub {
owner = "wxWidgets";
repo = "Catch";
rev = "5f5e4cecd1cafc85e109471356dec29e778d2160";
hash = "sha256-fB/E17tiAicAkq88Je/YFYohJ6EHJOO54oQaqiR/OzY=";
};
nanosvg = fetchFromGitHub {
owner = "wxWidgets";
repo = "nanosvg";
rev = "ccdb1995134d340a93fb20e3a3d323ccb3838dd0";
hash = "sha256-ymziU0NgGqxPOKHwGm0QyEdK/8jL/QYk5UdIQ3Tn8jw=";
};
in
stdenv.mkDerivation rec {
pname = "wxwidgets";
version = "3.2.6";
src = fetchFromGitHub {
owner = "wxWidgets";
repo = "wxWidgets";
rev = "v${version}";
hash = "sha256-7dc7NGiKSonFFaWp3UxLYqDc1Cc6no1Eba0QmtzX5mM=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs =
[
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
libpng
libtiff
libjpeg_turbo
zlib
pcre2
]
++ lib.optionals stdenv.hostPlatform.isLinux [
curl
gtk3
libSM
libXinerama
libXtst
libXxf86vm
xorgproto
]
++ lib.optional withMesa libGLU
++ lib.optional (withWebKit && stdenv.hostPlatform.isLinux) webkitgtk_4_0
++ lib.optionals stdenv.hostPlatform.isDarwin [
expat
];
configureFlags =
[
"--disable-precomp-headers"
# This is the default option, but be explicit
"--disable-monolithic"
"--enable-mediactrl"
"--with-nanosvg"
"--disable-rpath"
"--enable-repro-build"
"--enable-webrequest"
(if compat28 then "--enable-compat28" else "--disable-compat28")
(if compat30 then "--enable-compat30" else "--disable-compat30")
]
++ lib.optional unicode "--enable-unicode"
++ lib.optional withMesa "--with-opengl"
++ lib.optionals stdenv.hostPlatform.isDarwin [
"--with-osx_cocoa"
"--with-libiconv"
"--with-urlsession" # for wxWebRequest
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
"--with-libcurl" # for wxWebRequest
]
++ lib.optionals withWebKit [
"--enable-webview"
"--enable-webviewwebkit"
];
SEARCH_LIB = lib.optionalString (
!stdenv.hostPlatform.isDarwin
) "${libGLU.out}/lib ${libGL.out}/lib";
preConfigure = ''
cp -r ${catch}/* 3rdparty/catch/
cp -r ${nanosvg}/* 3rdparty/nanosvg/
'';
postInstall = "
pushd $out/include
ln -s wx-*/* .
popd
";
enableParallelBuilding = true;
passthru = {
inherit compat28 compat30 unicode;
};
meta = with lib; {
homepage = "https://www.wxwidgets.org/";
description = "Cross-Platform C++ GUI Library";
longDescription = ''
wxWidgets gives you a single, easy-to-use API for writing GUI applications
on multiple platforms that still utilize the native platform's controls
and utilities. Link with the appropriate library for your platform and
compiler, and your application will adopt the look and feel appropriate to
that platform. On top of great GUI functionality, wxWidgets gives you:
online help, network programming, streams, clipboard and drag and drop,
multithreading, image loading and saving in a variety of popular formats,
database support, HTML viewing and printing, and much more.
'';
license = licenses.wxWindows;
maintainers = with maintainers; [ tfmoraes ];
platforms = platforms.unix;
};
}
+2 -2
View File
@@ -24,7 +24,7 @@
stdenv.mkDerivation rec {
pname = "xapp";
version = "2.8.7";
version = "2.8.8";
outputs = [
"out"
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-PMTsaY04rML2vmVIOWArYqWmGvpTtA1DpFw3ZAtu+oU=";
hash = "sha256-vd3uAihOF4dgZ49VVhRjG+Cx7sjMvHI/0oRLvIs2ZaM=";
};
# Recommended by upstream, which enables the build of xapp-debug.
+2 -2
View File
@@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "xed-editor";
version = "3.8.1";
version = "3.8.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "xed";
rev = version;
hash = "sha256-q6lhgax3W51rtgmmROcrzxgaxz5J9r7CcPwhYDt/A5Y=";
hash = "sha256-LSAOo6lPm6CQdTNxfAIthul9I9VnWpbEo1vOnKN7SNU=";
};
patches = [
@@ -0,0 +1,50 @@
From 121ba93b2860b7ee6bbe2430c818bba2da822a8e Mon Sep 17 00:00:00 2001
From: zjeffer <4633209+zjeffer@users.noreply.github.com>
Date: Sun, 29 Dec 2024 20:15:29 +0100
Subject: [PATCH] Fixes & improvements
---
zsh_history_to_fish/command.py | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/zsh_history_to_fish/command.py b/zsh_history_to_fish/command.py
index 4d8a12d..136c553 100644
--- a/zsh_history_to_fish/command.py
+++ b/zsh_history_to_fish/command.py
@@ -19,7 +19,12 @@
def read_history(input_file):
command = ZSH_HISTORY_READER.format(input_file)
- p = subprocess.run(command, capture_output=True, shell=True, encoding='utf8')
+ lines: list[str] = []
+ try:
+ p = subprocess.run(command, capture_output=True, shell=True, encoding='utf8', check=True)
+ except Exception as e:
+ print(f'An exception occurred while reading history: {e}')
+ sys.exit(1)
lines = p.stdout.splitlines()
yield from map(lambda x: x.replace('\\n', '\n'), lines)
@@ -48,11 +53,11 @@ def display_changed(zsh, fish):
def writer_factory(output_file, dry_run):
if dry_run:
yield lambda x: None
- print(f'No file has been written.')
+ print('No file has been written.')
return
- with open(output_file, 'a') as out:
- yield lambda x: out.write(x)
+ with open(output_file, 'a', encoding='utf8') as out:
+ yield out.write
print(f'\nFile "{output_file}" has been written successfully.')
@@ -74,6 +79,7 @@ def exporter(input_file, output_file, dry_run, no_convert):
converter = (lambda x: x) if no_convert else naive_zsh_to_fish
changed = []
with writer_factory(output_file, dry_run) as writer:
+ i = 0
for i, (timestamp, command_zsh) in enumerate(parse_history(input_file)):
command_fish = converter(command_zsh)
fish_history = f'- cmd: {command_fish}\n when: {timestamp}\n'
@@ -25,6 +25,13 @@ python3.pkgs.buildPythonApplication rec {
"zsh_history_to_fish"
];
patches = [
# Patch from currently-unmerged PR, fixing runtime error.
# Should be removed when PR is merged or error is otherwise fixed.
# Check https://github.com/rsalmei/zsh-history-to-fish/pull/15 if you're in the future
./fix-runtime-error.patch
];
meta = with lib; {
description = "Bring your ZSH history to Fish shell";
homepage = "https://github.com/rsalmei/zsh-history-to-fish";
+7
View File
@@ -12,4 +12,11 @@ callPackage ./generic.nix ({
sha256 = "1vyvp2g28ihcgxgxr8nhzyzdmzicsh5djzk8dk1hj5p5f2k3ijqq";
enableParallelBuilding = false; # #32386, https://hydra.nixos.org/build/65600645
extraPatches = lib.optionals stdenv.hostPlatform.isLinux [ ./mono4-glibc.patch ];
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-error=implicit-function-declaration"
"-Wno-error=implicit-int"
"-Wno-error=incompatible-pointer-types"
"-Wno-error=int-conversion"
"-Wno-error=return-mismatch"
];
})
+1
View File
@@ -9,4 +9,5 @@ callPackage ./generic.nix ({
version = "5.20.1.34";
sha256 = "12vw5dkhmp1vk9l658pil8jiqirkpdsc5z8dm5mpj595yr6d94fd";
enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
})
+2 -1
View File
@@ -29,6 +29,7 @@
enableParallelBuilding ? true,
srcArchiveSuffix ? "tar.bz2",
extraPatches ? [ ],
env ? { },
}:
let
@@ -36,7 +37,7 @@ let
in
stdenv.mkDerivation rec {
pname = "mono";
inherit version;
inherit version env;
src = fetchurl {
inherit sha256;
+1 -5
View File
@@ -64,11 +64,7 @@ stdenv.mkDerivation rec {
./bootstrap-${lib.versions.majorMinor version}
'';
env.NIX_CFLAGS_COMPILE = toString (
lib.optionals stdenv.cc.isClang [
"-Wno-error=int-conversion"
]
);
env.NIX_CFLAGS_COMPILE = "-Wno-error=int-conversion";
dontStrip = true;
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
libxml2
];
env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
patches = [
# Fixes MONO_PROFILE_ENTER_LEAVE undeclared when compiling against newer versions of mono.
# @see https://github.com/mono/gtk-sharp/pull/266
@@ -1,146 +0,0 @@
{ lib
, stdenv
, curl
, expat
, fetchFromGitHub
, gst_all_1
, gtk3
, libGL
, libGLU
, libSM
, libXinerama
, libXtst
, libXxf86vm
, libpng
, libtiff
, libjpeg_turbo
, zlib
, pcre2
, pkg-config
, xorgproto
, compat28 ? false
, compat30 ? true
, unicode ? true
, withMesa ? !stdenv.hostPlatform.isDarwin
, withWebKit ? true
, webkitgtk_4_0
, setfile
}:
let
catch = fetchFromGitHub {
owner = "wxWidgets";
repo = "Catch";
rev = "5f5e4cecd1cafc85e109471356dec29e778d2160";
hash = "sha256-fB/E17tiAicAkq88Je/YFYohJ6EHJOO54oQaqiR/OzY=";
};
nanosvg = fetchFromGitHub {
owner = "wxWidgets";
repo = "nanosvg";
rev = "ccdb1995134d340a93fb20e3a3d323ccb3838dd0";
hash = "sha256-ymziU0NgGqxPOKHwGm0QyEdK/8jL/QYk5UdIQ3Tn8jw=";
};
in
stdenv.mkDerivation rec {
pname = "wxwidgets";
version = "3.2.6";
src = fetchFromGitHub {
owner = "wxWidgets";
repo = "wxWidgets";
rev = "v${version}";
hash = "sha256-7dc7NGiKSonFFaWp3UxLYqDc1Cc6no1Eba0QmtzX5mM=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
libpng
libtiff
libjpeg_turbo
zlib
pcre2
] ++ lib.optionals stdenv.hostPlatform.isLinux [
curl
gtk3
libSM
libXinerama
libXtst
libXxf86vm
xorgproto
]
++ lib.optional withMesa libGLU
++ lib.optional (withWebKit && stdenv.hostPlatform.isLinux) webkitgtk_4_0
++ lib.optionals stdenv.hostPlatform.isDarwin [
expat
setfile
];
configureFlags = [
"--disable-precomp-headers"
# This is the default option, but be explicit
"--disable-monolithic"
"--enable-mediactrl"
"--with-nanosvg"
"--disable-rpath"
"--enable-repro-build"
"--enable-webrequest"
(if compat28 then "--enable-compat28" else "--disable-compat28")
(if compat30 then "--enable-compat30" else "--disable-compat30")
] ++ lib.optional unicode "--enable-unicode"
++ lib.optional withMesa "--with-opengl"
++ lib.optionals stdenv.hostPlatform.isDarwin [
"--with-osx_cocoa"
"--with-libiconv"
"--with-urlsession" # for wxWebRequest
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
"--with-libcurl" # for wxWebRequest
] ++ lib.optionals withWebKit [
"--enable-webview"
"--enable-webviewwebkit"
];
SEARCH_LIB = lib.optionalString (!stdenv.hostPlatform.isDarwin) "${libGLU.out}/lib ${libGL.out}/lib";
preConfigure = ''
cp -r ${catch}/* 3rdparty/catch/
cp -r ${nanosvg}/* 3rdparty/nanosvg/
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace configure \
--replace 'ac_cv_prog_SETFILE="/Developer/Tools/SetFile"' 'ac_cv_prog_SETFILE="${setfile}/bin/SetFile"'
substituteInPlace configure \
--replace "-framework System" "-lSystem"
'';
postInstall = "
pushd $out/include
ln -s wx-*/* .
popd
";
enableParallelBuilding = true;
passthru = {
inherit compat28 compat30 unicode;
};
meta = with lib; {
homepage = "https://www.wxwidgets.org/";
description = "Cross-Platform C++ GUI Library";
longDescription = ''
wxWidgets gives you a single, easy-to-use API for writing GUI applications
on multiple platforms that still utilize the native platform's controls
and utilities. Link with the appropriate library for your platform and
compiler, and your application will adopt the look and feel appropriate to
that platform. On top of great GUI functionality, wxWidgets gives you:
online help, network programming, streams, clipboard and drag and drop,
multithreading, image loading and saving in a variety of popular formats,
database support, HTML viewing and printing, and much more.
'';
license = licenses.wxWindows;
maintainers = with maintainers; [ tfmoraes ];
platforms = platforms.unix;
};
}
@@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "folium";
version = "0.19.2";
version = "0.19.4";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "python-visualization";
repo = "folium";
tag = "v${version}";
hash = "sha256-PBrrdFKEYj3yy+qV495It0HB9EVtJpjTY+oyls9Z/J0=";
hash = "sha256-qTTJK12nHIhcMkPu4rb2IYWm96EjRafftacrlfeGqZg=";
};
nativeBuildInputs = [
@@ -26,13 +26,13 @@
buildPythonPackage rec {
pname = "kivy";
version = "2.3.0";
version = "2.3.1";
src = fetchFromGitHub {
owner = "kivy";
repo = "kivy";
rev = version;
hash = "sha256-QJ490vjpEj/JSE9OzSvDpkCruaTFdlThUHIEAMm0BZ4=";
tag = version;
hash = "sha256-q8BoF/pUTW2GMKBhNsqWDBto5+nASanWifS9AcNRc8Q=";
};
nativeBuildInputs = [

Some files were not shown because too many files have changed in this diff Show More