Merge master into staging-next
This commit is contained in:
@@ -4261,12 +4261,6 @@
|
||||
github = "carlthome";
|
||||
githubId = 1595907;
|
||||
};
|
||||
cartr = {
|
||||
email = "carter.sande@duodecima.technology";
|
||||
github = "cartr";
|
||||
githubId = 5241813;
|
||||
name = "Carter Sande";
|
||||
};
|
||||
casaca = {
|
||||
name = "J McNutt";
|
||||
email = "jmacasac@hotmail.com";
|
||||
@@ -11612,7 +11606,7 @@
|
||||
name = "jasonxue";
|
||||
keys = [
|
||||
{
|
||||
fingerprint = "067A 9B58 DAC4 1C31 D688 81A9 EC23 DBDD B617 6861";
|
||||
fingerprint = "D6D8 A0A8 6FAC 3D8E D85C 523D F7BA 32A3 FCB0 260A";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
@@ -254,6 +254,7 @@ in
|
||||
ayatana-indicators = runTest ./ayatana-indicators.nix;
|
||||
babeld = runTest ./babeld.nix;
|
||||
bazarr = runTest ./bazarr.nix;
|
||||
bcache = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./bcache.nix;
|
||||
bcachefs = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./bcachefs.nix;
|
||||
beanstalkd = runTest ./beanstalkd.nix;
|
||||
bees = runTest ./bees.nix;
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
name = "bcache";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ pineapplehunter ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
virtualisation.emptyDiskImages = [ 4096 ];
|
||||
networking.hostId = "deadbeef";
|
||||
boot.supportedFilesystems = [ "ext4" ];
|
||||
environment.systemPackages = [ pkgs.parted ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.succeed("modprobe bcache")
|
||||
machine.succeed("bcache version")
|
||||
machine.succeed("ls /dev")
|
||||
|
||||
machine.succeed(
|
||||
"mkdir /tmp/mnt",
|
||||
"udevadm settle",
|
||||
"parted --script /dev/vdb mklabel gpt",
|
||||
"parted --script /dev/vdb mkpart primary 0% 50% mkpart primary 50% 100%",
|
||||
"udevadm settle",
|
||||
"bcache make -C /dev/vdb1",
|
||||
"bcache make -B /dev/vdb2",
|
||||
"udevadm settle",
|
||||
"bcache attach /dev/vdb1 /dev/vdb2",
|
||||
"bcache set-cachemode /dev/vdb2 writeback",
|
||||
"udevadm settle",
|
||||
"bcache show",
|
||||
"ls /sys/fs/bcache",
|
||||
"mkfs.ext4 /dev/bcache0",
|
||||
"mount /dev/bcache0 /tmp/mnt",
|
||||
"umount /tmp/mnt",
|
||||
"udevadm settle",
|
||||
)
|
||||
'';
|
||||
}
|
||||
@@ -1096,7 +1096,7 @@ let
|
||||
${
|
||||
if systemdStage1 then
|
||||
''
|
||||
target.wait_for_text("Enter key for rpool/root")
|
||||
target.wait_for_text("Enter key for rpool${optionalString (!parentDataset) "/root"}")
|
||||
''
|
||||
else
|
||||
''
|
||||
|
||||
@@ -18,18 +18,18 @@
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
version = "1.3.18";
|
||||
version = "1.3.19";
|
||||
src = fetchFromGitHub {
|
||||
owner = "michaelb";
|
||||
repo = "sniprun";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-2Q7Jnt7pVCuNne442KPh2cSjA6V6WSZkgUj99UpmnOM=";
|
||||
hash = "sha256-a2hEV83NOnt+9BwDk94Ns+rIC9DeHFdu2dZG1XPtdnY=";
|
||||
};
|
||||
sniprun-bin = rustPlatform.buildRustPackage {
|
||||
pname = "sniprun-bin";
|
||||
inherit version src;
|
||||
|
||||
cargoHash = "sha256-cu7wn75rQcwPLjFl4v05kVMsiCD0mAlIBt49mvIaPPU=";
|
||||
cargoHash = "sha256-Ps9Ugq8ISbuXO3Dxo1WQUVPCxf24oSHvem2Xg0sIgOQ=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mednafen-pce-fast";
|
||||
version = "0-unstable-2025-08-01";
|
||||
version = "0-unstable-2025-09-19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "beetle-pce-fast-libretro";
|
||||
rev = "c95e401e1dd37522b6d84d0017702cfece2be840";
|
||||
hash = "sha256-xCjavWWWyNTnJyzCr+N2l3On2iflg+HzXCxOxLZvSew=";
|
||||
rev = "1524cc63104aece5a90ed7dd181b444a16313134";
|
||||
hash = "sha256-hNcYdkqZauoCrNMHy4YaH0ZsqUofoYb8USi0r5bbmkk=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pineapple-pictures";
|
||||
version = "1.1.1";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BLumia";
|
||||
repo = "pineapple-pictures";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-bJOBqxJ5pl1O0QEFQtkPn55y4g5I7Zwb3S0PTJ1SoFk=";
|
||||
hash = "sha256-QQ0lWYwfCCQUtVQxC6koORiQ3px99+Uy8qHtRx3fbSg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -534,11 +534,11 @@
|
||||
"vendorHash": "sha256-HavrYEqMGuJnZBQlVwZfZiXTISqALjjOHB8z1EpNkOE="
|
||||
},
|
||||
"google-beta": {
|
||||
"hash": "sha256-l08jmxkWsTrk32cJM28OuwSZgSKIB3EPODaUf7821uY=",
|
||||
"hash": "sha256-HDTjSxx3TE69B7DvJbn/b67IH/S4IXvXGVTFwrgAWZE=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/google-beta",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-google-beta",
|
||||
"rev": "v7.1.1",
|
||||
"rev": "v7.3.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-9tXElUSD6WSfEn6Urt0GZFkxGXj/iUO83ZkKw3GfAgo="
|
||||
},
|
||||
@@ -885,11 +885,11 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"newrelic": {
|
||||
"hash": "sha256-Lmt3ZIrFW/NPLlWlOlXH/sxh4CpBPAJfsJOjjQy9uZA=",
|
||||
"hash": "sha256-4pDuH+baDAR9cIXeiKtXlr2KCYGUS+UuV27SARUDYmw=",
|
||||
"homepage": "https://registry.terraform.io/providers/newrelic/newrelic",
|
||||
"owner": "newrelic",
|
||||
"repo": "terraform-provider-newrelic",
|
||||
"rev": "v3.68.0",
|
||||
"rev": "v3.69.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-7eRDz/MAKYnUsBAJOSssqzdSfsRSboQX4E/8qBjnGDk="
|
||||
},
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 8f525118..ba8027c2 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -9,22 +9,15 @@ add_project_dependencies(incdir_dep, language: 'c')
|
||||
cc = meson.get_compiler('c')
|
||||
dir_base = meson.current_source_dir()
|
||||
builddir_base = meson.current_build_dir()
|
||||
-# FIXME: make art install a pkgconfig file
|
||||
-libart_dep = [
|
||||
- cc.find_library('art', dirs : [ '/usr' / get_option('libdir') / 'art', '/usr/local' / get_option('libdir') / 'art', get_option('prefix') / get_option('libdir') / 'art' ]),
|
||||
- cc.find_library('nativebridge', dirs : [ '/usr' / get_option('libdir') / 'art', '/usr/local' / get_option('libdir') / 'art', get_option('prefix') / get_option('libdir') / 'art' ])
|
||||
-]
|
||||
+libart_dep = dependency('art-standalone')
|
||||
libdl_bio_dep = [
|
||||
cc.find_library('dl_bio')
|
||||
]
|
||||
libc_bio_dep = [
|
||||
cc.find_library('c_bio')
|
||||
]
|
||||
-libandroidfw_dep = [
|
||||
- cc.find_library('androidfw', dirs : [ '/usr' / get_option('libdir') / 'art', '/usr/local' / get_option('libdir') / 'art', get_option('prefix') / get_option('libdir') / 'art' ]),
|
||||
-]
|
||||
-if fs.is_file('/usr' / get_option('libdir') / 'java/core-all_classes.jar')
|
||||
- bootclasspath_dir = '/usr' / get_option('libdir') / 'java'
|
||||
+if fs.is_file('@artStandalonePackageDir@' / get_option('libdir') / 'java/core-all_classes.jar')
|
||||
+ bootclasspath_dir = '@artStandalonePackageDir@' / get_option('libdir') / 'java'
|
||||
elif fs.is_file('/usr/local' / get_option('libdir') / 'java/core-all_classes.jar')
|
||||
bootclasspath_dir = '/usr/local' / get_option('libdir') / 'java'
|
||||
elif fs.is_file(get_option('prefix') / get_option('libdir') / 'java/core-all_classes.jar')
|
||||
@@ -179,7 +172,7 @@ libtranslationlayer_so = shared_library('translation_layer_main', [
|
||||
dependency('gtk4', version: '>=4.14'), dependency('gl'), dependency('egl'), dependency('wayland-client'), dependency('jni'),
|
||||
dependency('libportal'), dependency('sqlite3'), dependency('libavcodec', version: '>=59'), dependency('libdrm'),
|
||||
dependency('gudev-1.0'), dependency('libswscale'), dependency('webkitgtk-6.0'),
|
||||
- libandroidfw_dep, wayland_protos_dep
|
||||
+ libart_dep, wayland_protos_dep
|
||||
],
|
||||
link_with: [ libandroid_so ],
|
||||
link_args: [
|
||||
@@ -0,0 +1,16 @@
|
||||
diff --git a/src/main-executable/main.c b/src/main-executable/main.c
|
||||
index 545da00f..2f87447d 100644
|
||||
--- a/src/main-executable/main.c
|
||||
+++ b/src/main-executable/main.c
|
||||
@@ -390,7 +390,10 @@ static void open(GtkApplication *app, GFile **files, gint nfiles, const gchar *h
|
||||
|
||||
ret = stat(MICROG_APK_PATH_LOCAL, &dont_care);
|
||||
errno_localdir = errno;
|
||||
- if (!ret) {
|
||||
+ char *env_microg = getenv("MICROG_APK_PATH");
|
||||
+ if (env_microg && access(env_microg, F_OK) == 0) {
|
||||
+ microg_apk = strdup(env_microg);
|
||||
+ } else if (stat(MICROG_APK_PATH_LOCAL, &dont_care) == 0) {
|
||||
microg_apk = strdup(MICROG_APK_PATH_LOCAL); // for running out of builddir; using strdup so we can always safely call free on this
|
||||
} else {
|
||||
char *microg_install_dir = malloc(strlen(dex_install_dir) + strlen(REL_MICROG_APK_INSTALL_PATH) + 1); // +1 for NULL
|
||||
@@ -30,27 +30,24 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "android-translation-layer";
|
||||
version = "0-unstable-2025-08-06";
|
||||
version = "0-unstable-2025-09-14";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "android_translation_layer";
|
||||
repo = "android_translation_layer";
|
||||
rev = "d52985a6df81d73a8f6dfbdee337f7ff90b724cb";
|
||||
hash = "sha256-fJ8S04YucoCzHiIQdiQd+Il0YGNFsOkSiGWjZKNMTIM=";
|
||||
rev = "9de91586994af5078decda17db92ce50c5673951";
|
||||
hash = "sha256-iRjP++WzLsV7oDGNdF3m9JJJS7zLrG5W46U3h39H5uk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# meson: use pkg-config from art-standalone instead of manual library search
|
||||
# See: https://gitlab.com/android_translation_layer/android_translation_layer/-/merge_requests/164
|
||||
(replaceVars ./configure-art-path.patch {
|
||||
artStandalonePackageDir = "${art-standalone}";
|
||||
})
|
||||
|
||||
# Required gio-unix dependency is missing in meson.build
|
||||
./add-gio-unix-dep.patch
|
||||
|
||||
# Patch custon Dex install dir
|
||||
./configure-dex-install-dir.patch
|
||||
|
||||
# Patch atl to load microg apk from custom path
|
||||
./configure-microg-path.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
@@ -85,10 +82,20 @@ stdenv.mkDerivation {
|
||||
webkitgtk_6_0
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -D $src/com.google.android.gms.apk $out/share/com.google.android.gms.apk
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/android-translation-layer \
|
||||
--prefix LD_LIBRARY_PATH : ${art-standalone}/lib/art \
|
||||
--prefix PATH : ${lib.makeBinPath [ bintools ]}
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
art-standalone # dex2oat
|
||||
bintools # addr2line
|
||||
]
|
||||
} \
|
||||
--set MICROG_APK_PATH "$out/share/com.google.android.gms.apk"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
|
||||
@@ -23,28 +23,25 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "art-standalone";
|
||||
version = "0-unstable-2025-07-09";
|
||||
version = "0-unstable-2025-09-03";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "android_translation_layer";
|
||||
repo = "art_standalone";
|
||||
rev = "1eee3dce3ba6f324bb7a32a170b2da14889af39d";
|
||||
hash = "sha256-OAO0k/LkQ+MKqR4HkFXD18LSXQZNPogjjRot4UVoE5A=";
|
||||
rev = "10d60509c9073791f9eca1d2b8443d40a40edc05";
|
||||
hash = "sha256-Xg6s58jymma1sNb6P7pwWFpYq1O6GoynrgPeLZRD+rI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Do not hardocde addr2line binary path
|
||||
./no-hardcode-path-addr2line.patch
|
||||
|
||||
# Add support for pkg-config
|
||||
# See: https://gitlab.com/android_translation_layer/art_standalone/-/merge_requests/37
|
||||
./pkg-config-support.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x dalvik/dx/etc/{dx,dexmerger}
|
||||
patchShebangs .
|
||||
sed -i "s|/bin/bash|${runtimeShell}|" build/core/config.mk build/core/main.mk
|
||||
substituteInPlace build/core/config.mk build/core/main.mk \
|
||||
--replace-fail "/bin/bash" "${runtimeShell}"
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@@ -102,7 +99,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
homepage = "https://gitlab.com/android_translation_layer/art_standalone";
|
||||
# No license specified yet
|
||||
license = lib.licenses.unfree;
|
||||
platforms = lib.platforms.all;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with lib.maintainers; [ onny ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 42df5b18..3321adae 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -32,6 +32,8 @@ ____dalvikvm_bin_64 := $(____TOPDIR)/out/host/linux-x86/bin/dalvikvm64
|
||||
__RPATH_BIN := \$${ORIGIN}/../$(____LIBDIR)/art/:\$${ORIGIN}/../$(____LIBDIR)/java/dex/art/natives
|
||||
__RPATH_LIB := \$${ORIGIN}
|
||||
|
||||
+__VERSION ?= 0.0.0
|
||||
+
|
||||
# Jack compiler was google's first attempt at a solution for desugaring Java 8 and newer bytecode into bytecode compatible with older dex file formats.
|
||||
# Thankfully, google realized that this was a bad idea, and in a typical google fashion, axed the project.
|
||||
# They experimented with other approaches, but currently (2022) the way to do this is to use d8/r8 instead of dx;
|
||||
@@ -112,6 +114,15 @@ install:
|
||||
# our stable C API for libandroidfw, used by ATL
|
||||
install -Dt $(____INSTALL_INCLUDEDIR)/androidfw $(____TOPDIR)/libandroidfw/include/androidfw/androidfw_c_api.h
|
||||
|
||||
+ # install pkg-config file
|
||||
+ mkdir -p $(____INSTALL_LIBDIR)/pkgconfig
|
||||
+ sed -e 's|@prefix@|$(____PREFIX)|g' \
|
||||
+ -e 's|@libdir@|$(____LIBDIR)|g' \
|
||||
+ -e 's|@includedir@|$(____INCLUDEDIR)|g' \
|
||||
+ -e 's|@version@|$(__VERSION)|g' \
|
||||
+ art-standalone.pc.in > $(____INSTALL_LIBDIR)/pkgconfig/art-standalone.pc
|
||||
+
|
||||
+
|
||||
# TODO: figure out sharing dependencies and have this in a separate repo
|
||||
install_adbd:
|
||||
install -Dt $(____INSTALL_BINDIR) $(____TOPDIR)/out/host/linux-x86/bin/adbd
|
||||
diff --git a/art-standalone.pc.in b/art-standalone.pc.in
|
||||
new file mode 100644
|
||||
index 00000000..210cd031
|
||||
--- /dev/null
|
||||
+++ b/art-standalone.pc.in
|
||||
@@ -0,0 +1,10 @@
|
||||
+prefix=@prefix@
|
||||
+exec_prefix=${prefix}
|
||||
+libdir=${prefix}/@libdir@
|
||||
+includedir=${prefix}/@includedir@
|
||||
+
|
||||
+Name: art-standalone
|
||||
+Description: Android ART runtime (standalone build, minimal ATL deps)
|
||||
+Version: @version@
|
||||
+Libs: -L${libdir}/art -lart -lnativebridge -landroidfw
|
||||
+Cflags: -I${includedir} -I${includedir}/androidfw
|
||||
@@ -1,42 +0,0 @@
|
||||
This patch does two things:
|
||||
1) Drops probe-bcache, so now util-linux detecting functionality is used.
|
||||
2) Drops bcache-register, moving registering device functionality into rule
|
||||
using 'sh'.
|
||||
This reduces things that need to be present in initrd, replacing them with
|
||||
already existing functionality and reducing overall initrd size.
|
||||
|
||||
diff --git a/69-bcache.rules b/69-bcache.rules
|
||||
index 9cc7f0d..6a52893 100644
|
||||
--- a/69-bcache.rules
|
||||
+++ b/69-bcache.rules
|
||||
@@ -10,16 +10,11 @@ KERNEL=="fd*|sr*", GOTO="bcache_end"
|
||||
# It recognised bcache (util-linux 2.24+)
|
||||
ENV{ID_FS_TYPE}=="bcache", GOTO="bcache_backing_found"
|
||||
# It recognised something else; bail
|
||||
-ENV{ID_FS_TYPE}=="?*", GOTO="bcache_backing_end"
|
||||
-
|
||||
-# Backing devices: scan, symlink, register
|
||||
-IMPORT{program}="probe-bcache -o udev $tempnode"
|
||||
-ENV{ID_FS_TYPE}!="bcache", GOTO="bcache_backing_end"
|
||||
-ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
|
||||
+GOTO="bcache_backing_end"
|
||||
|
||||
LABEL="bcache_backing_found"
|
||||
RUN{builtin}+="kmod load bcache"
|
||||
-RUN+="bcache-register $tempnode"
|
||||
+RUN+="@shell@ -c 'echo $tempnode > /sys/fs/bcache/register_quiet'"
|
||||
LABEL="bcache_backing_end"
|
||||
|
||||
# Cached devices: symlink
|
||||
diff --git a/Makefile b/Makefile
|
||||
index c824ae3..c5f7309 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -9,7 +9,6 @@ all: make-bcache probe-bcache bcache-super-show bcache-register
|
||||
|
||||
install: make-bcache probe-bcache bcache-super-show
|
||||
$(INSTALL) -m0755 make-bcache bcache-super-show $(DESTDIR)${PREFIX}/sbin/
|
||||
- $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
|
||||
$(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
|
||||
$(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
|
||||
$(INSTALL) -D -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
|
||||
@@ -1,22 +0,0 @@
|
||||
diff --git a/bcache.c b/bcache.c
|
||||
index 8f37445..79806d8 100644
|
||||
--- a/bcache.c
|
||||
+++ b/bcache.c
|
||||
@@ -26,7 +26,7 @@
|
||||
* x^7 + x^4 + x + 1
|
||||
*/
|
||||
|
||||
-static const uint64_t crc_table[256] = {
|
||||
+const uint64_t crc_table[256] = {
|
||||
0x0000000000000000ULL, 0x42F0E1EBA9EA3693ULL, 0x85E1C3D753D46D26ULL,
|
||||
0xC711223CFA3E5BB5ULL, 0x493366450E42ECDFULL, 0x0BC387AEA7A8DA4CULL,
|
||||
0xCCD2A5925D9681F9ULL, 0x8E224479F47CB76AULL, 0x9266CC8A1C85D9BEULL,
|
||||
@@ -115,7 +115,7 @@ static const uint64_t crc_table[256] = {
|
||||
0x9AFCE626CE85B507ULL
|
||||
};
|
||||
|
||||
-inline uint64_t crc64(const void *_data, size_t len)
|
||||
+uint64_t crc64(const void *_data, size_t len)
|
||||
{
|
||||
uint64_t crc = 0xFFFFFFFFFFFFFFFFULL;
|
||||
const unsigned char *data = _data;
|
||||
@@ -1,23 +1,22 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchgit,
|
||||
pkg-config,
|
||||
util-linux,
|
||||
bash,
|
||||
replaceVars,
|
||||
udevCheckHook,
|
||||
nixosTests,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bcache-tools";
|
||||
version = "1.0.8";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "g2p";
|
||||
repo = "bcache-tools";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-6gy0ymecMgEHXbwp/nXHlrUEeDFnmFXWZZPlzP292g4=";
|
||||
src = fetchgit {
|
||||
url = "https://git.kernel.org/pub/scm/linux/kernel/git/colyli/bcache-tools.git";
|
||||
rev = "bcache-tools-${version}";
|
||||
hash = "sha256-8BiHC8qxk4otFPyKnvGNk57JSZytEOy51AGertWo2O0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -28,34 +27,36 @@ stdenv.mkDerivation rec {
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
# * Remove broken install rules (they ignore $PREFIX) for stuff we don't need
|
||||
# anyway (it's distro specific stuff).
|
||||
# * Fixup absolute path to modprobe.
|
||||
prePatch = ''
|
||||
# * Remove distro specific install rules which are not used in NixOS.
|
||||
# * Remove binaries for udev which are not needed on modern systems.
|
||||
sed -e "/INSTALL.*initramfs\/hook/d" \
|
||||
-e "/INSTALL.*initcpio\/install/d" \
|
||||
-e "/INSTALL.*dracut\/module-setup.sh/d" \
|
||||
-e "s/pkg-config/$PKG_CONFIG/" \
|
||||
-e "/INSTALL.*probe-bcache/d" \
|
||||
-i Makefile
|
||||
# * Remove probe-bcache which is handled by util-linux
|
||||
sed -e "/probe-bcache/d" \
|
||||
-i 69-bcache.rules
|
||||
# * Replace bcache-register binary with a write to sysfs
|
||||
substituteInPlace 69-bcache.rules \
|
||||
--replace-fail "bcache-register \$tempnode" "${bash}/bin/sh -c 'echo \$tempnode > /sys/fs/bcache/register'"
|
||||
'';
|
||||
|
||||
patches = [
|
||||
(replaceVars ./bcache-udev-modern.patch {
|
||||
shell = "${bash}/bin/sh";
|
||||
})
|
||||
./fix-static.patch
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
"UDEVLIBDIR=${placeholder "out"}/lib/udev/"
|
||||
"PREFIX="
|
||||
"DESTDIR=$(out)"
|
||||
];
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p "$out/sbin" "$out/lib/udev/rules.d" "$out/share/man/man8"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) bcache;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "User-space tools required for bcache (Linux block layer cache)";
|
||||
longDescription = ''
|
||||
Bcache is a Linux kernel block layer cache. It allows one or more fast
|
||||
@@ -67,9 +68,13 @@ stdenv.mkDerivation rec {
|
||||
User documentation is in Documentation/bcache.txt in the Linux kernel
|
||||
tree.
|
||||
'';
|
||||
homepage = "https://bcache.evilpiepirate.org/";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
homepage = "https://www.kernel.org/doc/html/latest/admin-guide/bcache.html";
|
||||
license = lib.licenses.gpl2Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
bjornfor
|
||||
pineapplehunter
|
||||
];
|
||||
mainProgram = "bcache-tools";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
}:
|
||||
|
||||
let
|
||||
openShiftVersion = "4.19.3";
|
||||
okdVersion = "4.19.0-okd-scos.1";
|
||||
microshiftVersion = "4.19.0";
|
||||
openShiftVersion = "4.19.8";
|
||||
okdVersion = "4.19.0-okd-scos.15";
|
||||
microshiftVersion = "4.19.7";
|
||||
writeKey = "$(MODULEPATH)/pkg/crc/segment.WriteKey=cvpHsNcmGCJqVzf6YxrSnVlwFSAZaYtp";
|
||||
gitCommit = "a6f712ab378699f42208db01a49a9ec96887bede";
|
||||
gitHash = "sha256-Iw+pR7BUj3geNa6rWIPtTTFCLWcIsADTmlPBCgFcKa0=";
|
||||
gitCommit = "5d2dd491c18f39e1edd91b9bc6d5f12a1f0d9ba5";
|
||||
gitHash = "sha256-7kgZUU582Zu2kpYSRdbAEfFud0gxlj/DWfmtN4sps2w=";
|
||||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "crc";
|
||||
version = "2.53.0";
|
||||
version = "2.54.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crc-org";
|
||||
|
||||
@@ -48,7 +48,7 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ipxe";
|
||||
version = "1.21.1-unstable-2025-08-29";
|
||||
version = "1.21.1-unstable-2025-09-18";
|
||||
|
||||
nativeBuildInputs = [
|
||||
mtools
|
||||
@@ -66,8 +66,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "ipxe";
|
||||
repo = "ipxe";
|
||||
rev = "969ce2c559a6841a949a1b73a3967b1889e0c999";
|
||||
hash = "sha256-a9Nmo9ZAzbsePwS/LFh3qMMfsezu0194WV98BXhiT0Y=";
|
||||
rev = "6464f2edb855274cd3e311eff0aa718935b3eef6";
|
||||
hash = "sha256-K1BiZqthdkIbRiBHUYTu7aIJ8LJ1xpGmVCa255GkFmM=";
|
||||
};
|
||||
|
||||
# Calling syslinux on a FAT image isn't going to work on Aarch64.
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "iw4x-launcher";
|
||||
version = "1.0.2-2";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iw4x";
|
||||
repo = "launcher";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-XX4NXBNavOjq+PiEYP5inwBxvajbJdgQz7cUx2ia/H4=";
|
||||
hash = "sha256-HALxUqfTGB7sQhp0G1vXAtxmh6CHRb143Wws6G6gvBY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-jNj9l5IX/E6PNGGVukX+gJXZiZhv8FxPM7bCeMFZWFA=";
|
||||
cargoHash = "sha256-LS+b3ViCIuSVaoaXqwuPrZsvWlntheScrVPf+wtP7Io=";
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "klog-rs";
|
||||
version = "0.5.0";
|
||||
version = "0.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tobifroe";
|
||||
repo = "klog";
|
||||
rev = version;
|
||||
hash = "sha256-dPFxjSq5P7MyXUAugZqPEYRJ2VcFuVs774f3AKdH7kk=";
|
||||
hash = "sha256-VyUUzhVwJ1tNLICXwy7f85queH+pn4vL5HTL8IHcQ7w=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-9dJ2MCAd6DhNaqgUtuBifMbTTZoCoLNLjyR9b0fwfcc=";
|
||||
cargoHash = "sha256-KJxssCN9/WoRR1Cv67CK5muVy+cqEEfzSioQtptplQs=";
|
||||
checkFlags = [
|
||||
# this integration test depends on a running kubernetes cluster
|
||||
"--skip=k8s::tests::test_get_pod_list"
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "lazyssh";
|
||||
version = "0.2.0";
|
||||
version = "0.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Adembc";
|
||||
repo = "lazyssh";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-0R/H+HaJ13dQhLbFgLAvv4MhXADT3UqWeyTgegKjFxM=";
|
||||
hash = "sha256-g+arg/fB8YUmMtgVv5dmaYvj0uI1OeFngrHJAcKJkLU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-/RgjcAy2H9sWMWDA3QxMkT4LkzxvZqOZzKeR9u9bsH0=";
|
||||
vendorHash = "sha256-OMlpqe7FJDqgppxt4t8lJ1KnXICOh6MXVXoKkYJ74Ks=";
|
||||
|
||||
ldflags = [
|
||||
"-X=main.version=${finalAttrs.version}"
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "namespace-cli";
|
||||
version = "0.0.438";
|
||||
version = "0.0.439";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "namespacelabs";
|
||||
repo = "foundation";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Va4DFAsFgJLffuFauZfujOYQhAn0dtR4oPP4zAWBkTo=";
|
||||
hash = "sha256-BWFKMHFf3bS8gjm96g4/TdEpE/gEDY/UeW8gck12hNo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-WKRKwzpB6+bp/RSrb67ZcQjZXVGQe7xvTHGShebh3l4=";
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "nvme-rs";
|
||||
version = "0.1.1";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "liberodark";
|
||||
repo = "nvme-rs";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-lkuOPe5gYhboK9zylTCVN1DFWCFRHhfJa7tNEHH/GQM=";
|
||||
hash = "sha256-S0zQPLl9B6Nu5qAzV5/3eKuRXx/4P6paOIr7uQ+znc8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-MNEG6GGfMg1FXodD8yEMqvm8lYkQgYXMc/vR4lV166I=";
|
||||
cargoHash = "sha256-MQ6iSadHLNioYNy8MTACQ05tdsdxY8/LUcoOKARqoT8=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "obs-do";
|
||||
version = "0.1.10";
|
||||
version = "0.1.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jonhoo";
|
||||
repo = "obs-do";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-eTcDczrneif2ITeZ0ihx2VRFcsqL0LupvA+neOyHQLU=";
|
||||
hash = "sha256-EbwgYBvHsfUNmv3y5r6nfK6C4sqZ7ZkG4HTb3+0cA3o=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-CyzlPfkjoaveRX8kNCVfZY9O50zoXtjgc23ytuHu8Qg=";
|
||||
cargoHash = "sha256-LOoMtzIRaoAg02gY7EWj9A8vsjdUyEnxNy38Z5dFs+4=";
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "--version";
|
||||
|
||||
@@ -117,13 +117,13 @@ in
|
||||
goBuild (finalAttrs: {
|
||||
pname = "ollama";
|
||||
# don't forget to invalidate all hashes each update
|
||||
version = "0.11.10";
|
||||
version = "0.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ollama";
|
||||
repo = "ollama";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-F5Us1w+QCnWK32noi8vfRwgMofHP9vGiRFfN2UAf1vw=";
|
||||
hash = "sha256-CRlrq2vFdk+YlxCSg6FNVg6YpAZ4PSMHeAaGwkx9QFw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-SlaDsu001TUW+t9WRp7LqxUSQSGDF1Lqu9M1bgILoX4=";
|
||||
@@ -228,6 +228,15 @@ goBuild (finalAttrs: {
|
||||
(allow iokit-open (iokit-user-client-class "AGXDeviceUserClient"))
|
||||
'';
|
||||
|
||||
checkFlags =
|
||||
let
|
||||
# Skip tests that require network access
|
||||
skippedTests = [
|
||||
"TestPushHandler/unauthorized_push" # Writes to $HOME, se https://github.com/ollama/ollama/pull/12307#pullrequestreview-3249128660
|
||||
];
|
||||
in
|
||||
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
inherit ollama;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "openapi-python-client";
|
||||
version = "0.26.0";
|
||||
version = "0.26.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
|
||||
owner = "openapi-generators";
|
||||
repo = "openapi-python-client";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-kDULsu9mGxMu23kczVadwXLchYJiATJ2j6qU/8AKOSo=";
|
||||
hash = "sha256-+9Tm4othdBtSubffrzK6ufjq69woSytiOEi+S+tqAxw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
stdenv,
|
||||
}:
|
||||
let
|
||||
version = "0.24.0";
|
||||
version = "0.24.2";
|
||||
|
||||
parca-src = fetchFromGitHub {
|
||||
owner = "parca-dev";
|
||||
repo = "parca";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-MyI3pyfsdw17K03FOSckVzLSRNbwSm3FwYIHMr/SbWo=";
|
||||
hash = "sha256-gzQIgpouCsoMkQtjWubH7IGLiTUS6oX7oAboU8IuEOs=";
|
||||
};
|
||||
|
||||
ui = stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -25,7 +25,7 @@ let
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname src version;
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-gczEkCU9xESn9T1eVOmGAufh+24mOsYCMO6f5tcbdmQ=";
|
||||
hash = "sha256-5cn3fAvOXCQyiqlA0trIi/hCIfgB6xNO1pc5ZMBfouc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -57,7 +57,7 @@ buildGoModule rec {
|
||||
pname = "parca";
|
||||
src = parca-src;
|
||||
|
||||
vendorHash = "sha256-2CVXXCWKa21cToe5flxIMtSBPc3HkxWDNkJAWCI4ORw=";
|
||||
vendorHash = "sha256-uQuurwrrhs+JM72/Nd4xOLampIKwwpOehQ7dqMZi3v0=";
|
||||
|
||||
ldflags = [
|
||||
"-X=main.version=${version}"
|
||||
|
||||
@@ -22,14 +22,14 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pkcs11-provider";
|
||||
version = "1.0";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "latchset";
|
||||
repo = "pkcs11-provider";
|
||||
tag = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-Q9dmzYDBco+LLVWdORFTjRyk0RX8qhmZ1m+Kgfeyr04=";
|
||||
hash = "sha256-QXEwDl6pk8G5ba8lD4uYw2QuD3qS/sgd1od8crHct2s=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -10,13 +10,13 @@ let
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "process-compose";
|
||||
version = "1.75.1";
|
||||
version = "1.75.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "F1bonacc1";
|
||||
repo = "process-compose";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-4Frcslk0QBRl3OuWt4+erXoZhIUut8G0op91+1U1bfI=";
|
||||
hash = "sha256-BKf8FrgpGhYzuukAFP+OCjvp5bMCQL6BmZ+Tk/E8RIY=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rpiboot";
|
||||
version = "20250227-132106";
|
||||
version = "20250908-162618-bookworm";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raspberrypi";
|
||||
repo = "usbboot";
|
||||
tag = version;
|
||||
hash = "sha256-WccnaIUF5M080M4vg5NzBCLpLVcE7ts/oJJE8CLRi8A=";
|
||||
hash = "sha256-BJOm8VBEbrUasYwuV8NqwmsolJzmaqIaxYqj9EkU5hc=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -37,7 +37,6 @@ stdenv.mkDerivation rec {
|
||||
mainProgram = "rpiboot";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
cartr
|
||||
flokli
|
||||
stv0g
|
||||
];
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "stackit-cli";
|
||||
version = "0.41.0";
|
||||
version = "0.42.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stackitcloud";
|
||||
repo = "stackit-cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-eBnuarXh8F4P7RdKo6GA1vFhTTRMwI+1Sbb4gGOKDeA=";
|
||||
hash = "sha256-iFspixuPe/zGue/jGsky2D/sieduISwP1V+sXZrhPeY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-LZXIAQqRTGbSKWQ2csLK/7Q80jRhKk1bw8dSoZaFetk=";
|
||||
vendorHash = "sha256-m71w0nCJMEHOUbHYMX0vfgynZgl8SPoaLr+r8mFemio=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -2,27 +2,37 @@
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitLab,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "swaysome";
|
||||
version = "2.1.2";
|
||||
version = "2.3.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "hyask";
|
||||
repo = "swaysome";
|
||||
rev = version;
|
||||
hash = "sha256-2Q88/XgPN+byEo3e1yvwcwSQxPgPTtgy/rNc/Yduo3U=";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-/GJXZFa4HX98qJZw1CNM6PsP06EO8inIWDY6BWzQb8U=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-/TW1rPg/1t3n4XPBOEhgr1hd5PJMLwghLvQGBbZPZ34=";
|
||||
cargoHash = "sha256-+KjT5bako7l7lg2LW7Kxes7fIEnYQKUGGOMC56moO5g=";
|
||||
|
||||
meta = with lib; {
|
||||
# failed to execute sway: Os { code: 2, kind: NotFound, message: "No such file or directory" }
|
||||
doCheck = false;
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
versionCheckProgramArg = "--version";
|
||||
|
||||
meta = {
|
||||
description = "Helper to make sway behave more like awesomewm";
|
||||
homepage = "https://gitlab.com/hyask/swaysome";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ esclear ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ esclear ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "swaysome";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -50,12 +50,17 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
pythonImportsCheck = [ "tebreak" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Find and characterise transposable element insertions";
|
||||
mainProgram = "tebreak";
|
||||
homepage = "https://github.com/adamewing/tebreak";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ jbedo ];
|
||||
platforms = platforms.x86_64;
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ jbedo ];
|
||||
platforms = lib.platforms.x86_64;
|
||||
# Several tests are failing:
|
||||
# - AttributeError: module 'skbio.alignment' has no attribute 'local_pairwise_align_ssw'.
|
||||
# Did you mean: 'local_pairwise_align'?
|
||||
# - AssertionError: 6 != 0
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,46 +8,35 @@
|
||||
libtool,
|
||||
libxkbcommon,
|
||||
nspr,
|
||||
mesa,
|
||||
libtiff,
|
||||
udev,
|
||||
gtk3,
|
||||
libgbm,
|
||||
libusb1,
|
||||
libsForQt5,
|
||||
xorg,
|
||||
cups,
|
||||
pango,
|
||||
libjpeg,
|
||||
gtk2,
|
||||
gdk-pixbuf,
|
||||
libpulseaudio,
|
||||
libbsd,
|
||||
libusb1,
|
||||
bzip2,
|
||||
libmysqlclient,
|
||||
llvmPackages,
|
||||
dbus,
|
||||
gcc-unwrapped,
|
||||
freetype,
|
||||
curl,
|
||||
makeWrapper,
|
||||
runCommandLocal,
|
||||
cacert,
|
||||
curl,
|
||||
coreutils,
|
||||
cacert,
|
||||
}:
|
||||
let
|
||||
pkgVersion = "12.1.0.17900";
|
||||
url = "https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2023/${lib.last (lib.splitVersion pkgVersion)}/wps-office_${pkgVersion}_amd64.deb";
|
||||
hash = "sha256-i2EVCmDLE2gx7l2aAo+fW8onP/z+xlPIbQYwKhQ46+o=";
|
||||
uri = builtins.replaceStrings [ "https://wps-linux-personal.wpscdn.cn" ] [ "" ] url;
|
||||
securityKey = "7f8faaaa468174dc1c9cd62e5f218a5b";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wpsoffice-cn";
|
||||
version = pkgVersion;
|
||||
|
||||
src =
|
||||
runCommandLocal "wps-office_${version}_amd64.deb"
|
||||
let
|
||||
pname = "wpsoffice-cn";
|
||||
sources = import ./sources.nix;
|
||||
version = sources.version;
|
||||
|
||||
fetch =
|
||||
{
|
||||
url,
|
||||
uri,
|
||||
hash,
|
||||
}:
|
||||
runCommandLocal "wpsoffice-cn-${version}-src"
|
||||
{
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = hash;
|
||||
|
||||
@@ -60,108 +49,95 @@ stdenv.mkDerivation rec {
|
||||
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||
}
|
||||
''
|
||||
readonly SECURITY_KEY="7f8faaaa468174dc1c9cd62e5f218a5b"
|
||||
|
||||
timestamp10=$(date '+%s')
|
||||
md5hash=($(echo -n "${securityKey}${uri}$timestamp10" | md5sum))
|
||||
curl \
|
||||
--retry 3 --retry-delay 3 \
|
||||
"${url}?t=$timestamp10&k=$md5hash" \
|
||||
> $out
|
||||
md5hash=($(printf '%s' "$SECURITY_KEY${uri}$timestamp10" | md5sum))
|
||||
|
||||
curl --retry 3 --retry-delay 3 "${url}?t=$timestamp10&k=$md5hash" > $out
|
||||
'';
|
||||
|
||||
srcs = {
|
||||
x86_64-linux = fetch sources.x86_64;
|
||||
};
|
||||
|
||||
src =
|
||||
srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
inherit pname src version;
|
||||
|
||||
unpackCmd = "dpkg -x $src .";
|
||||
sourceRoot = ".";
|
||||
|
||||
nativeBuildInputs = [
|
||||
dpkg
|
||||
autoPatchelfHook
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
at-spi2-core
|
||||
libtool
|
||||
libjpeg
|
||||
libxkbcommon
|
||||
nspr
|
||||
mesa
|
||||
libtiff
|
||||
udev
|
||||
gtk3
|
||||
libsForQt5.qt5.qtbase
|
||||
libgbm
|
||||
libusb1
|
||||
libsForQt5.qtbase
|
||||
xorg.libXdamage
|
||||
xorg.libXtst
|
||||
xorg.libXv
|
||||
gtk2
|
||||
gdk-pixbuf
|
||||
libpulseaudio
|
||||
xorg.libXScrnSaver
|
||||
xorg.libXxf86vm
|
||||
libbsd
|
||||
libusb1
|
||||
libmysqlclient
|
||||
llvmPackages.openmp
|
||||
dbus
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
stripAllList = [ "opt" ];
|
||||
|
||||
runtimeDependencies = map lib.getLib [
|
||||
cups
|
||||
pango
|
||||
freetype
|
||||
gcc-unwrapped.lib
|
||||
];
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [
|
||||
# distribution is missing libkappessframework.so
|
||||
"libkappessframework.so"
|
||||
# qt4 support is deprecated
|
||||
"libQtCore.so.4"
|
||||
"libQtNetwork.so.4"
|
||||
"libQtXml.so.4"
|
||||
# file manager integration. Not needed
|
||||
"libnautilus-extension.so.1"
|
||||
"libcaja-extension.so.1"
|
||||
"libpeony.so.3"
|
||||
# libuof.so is a exclusive library in WPS. No need to repatch it
|
||||
"libuof.so"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
prefix=$out/opt/kingsoft/wps-office
|
||||
|
||||
mkdir -p $out
|
||||
|
||||
cp -r opt $out
|
||||
cp -r usr/* $out
|
||||
for i in wps wpp et wpspdf; do
|
||||
substituteInPlace $out/bin/$i \
|
||||
--replace /opt/kingsoft/wps-office $prefix
|
||||
done
|
||||
for i in $out/share/applications/*;do
|
||||
cp -r usr/{bin,share} $out
|
||||
|
||||
for i in $out/bin/*; do
|
||||
substituteInPlace $i \
|
||||
--replace /usr/bin $out/bin
|
||||
--replace-fail /opt/kingsoft/wps-office $out/opt/kingsoft/wps-office
|
||||
done
|
||||
# need system freetype and gcc lib to run properly
|
||||
for i in wps wpp et wpspdf wpsoffice; do
|
||||
wrapProgram $out/opt/kingsoft/wps-office/office6/$i \
|
||||
--set LD_PRELOAD "${freetype}/lib/libfreetype.so" \
|
||||
--set LD_LIBRARY_PATH "${lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
|
||||
|
||||
for i in $out/share/applications/*; do
|
||||
substituteInPlace $i \
|
||||
--replace-fail /usr/bin $out/bin
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
# The following libraries need libtiff.so.5, but nixpkgs provides libtiff.so.6
|
||||
patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/kingsoft/wps-office/office6/{libpdfmain.so,libqpdfpaint.so,qt/plugins/imageformats/libqtiff.so,addons/pdfbatchcompression/libpdfbatchcompressionapp.so}
|
||||
patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/kingsoft/wps-office/office6/addons/ksplitmerge/libksplitmergeapp.so
|
||||
patchelf --add-needed libtiff.so $out/opt/kingsoft/wps-office/office6/libwpsmain.so
|
||||
# Fix: Wrong JPEG library version: library is 62, caller expects 80
|
||||
patchelf --add-needed libjpeg.so $out/opt/kingsoft/wps-office/office6/libwpsmain.so
|
||||
# libbz2 dangling symlink
|
||||
ln -sf ${bzip2.out}/lib/libbz2.so $out/opt/kingsoft/wps-office/office6/libbz2.so
|
||||
# dlopen dependency
|
||||
patchelf --add-needed libudev.so.1 $out/opt/kingsoft/wps-office/office6/addons/cef/libcef.so
|
||||
# libmysqlclient dependency
|
||||
patchelf --replace-needed libmysqlclient.so.18 libmysqlclient.so $out/opt/kingsoft/wps-office/office6/libFontWatermark.so
|
||||
patchelf --add-rpath ${libmysqlclient}/lib/mariadb $out/opt/kingsoft/wps-office/office6/libFontWatermark.so
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Office suite, formerly Kingsoft Office";
|
||||
homepage = "https://www.wps.com";
|
||||
@@ -174,6 +150,7 @@ stdenv.mkDerivation rec {
|
||||
th0rgal
|
||||
wineee
|
||||
pokon548
|
||||
chillcicada
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# Generated by ./update.sh - do not update manually!
|
||||
# Last updated: 2025-09-15
|
||||
{
|
||||
version = "12.1.2.22571";
|
||||
x86_64 = {
|
||||
url = "https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2023/22571/wps-office_12.1.2.22571.AK.preread.sw_480057_amd64.deb";
|
||||
uri = "/wps/download/ep/Linux2023/22571/wps-office_12.1.2.22571.AK.preread.sw_480057_amd64.deb";
|
||||
hash = "sha256-aB1EWP0Ev5WuAuzih3ybD23qaRRTUjlES1emas+sUDA=";
|
||||
};
|
||||
}
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p nix curl cacert
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
export SSL_CERT_FILE=$NIX_SSL_CERT_FILE
|
||||
|
||||
readonly SECURITY_KEY="7f8faaaa468174dc1c9cd62e5f218a5b"
|
||||
prefix="https://wps-linux-personal.wpscdn.cn"
|
||||
|
||||
payload=$(curl -s "https://www.wps.cn/product/wpslinux")
|
||||
|
||||
version=$(echo "$payload" | grep -oP '(?<=banner_txt">)[^<]+')
|
||||
|
||||
amd64_url=$(echo "$payload" | grep -oP "downLoad\('[^']*'" | head -1 | sed "s/downLoad('//;s/'$//")
|
||||
amd64_uri="${amd64_url#$prefix}"
|
||||
|
||||
timestamp10=$(date '+%s')
|
||||
md5hash=($(printf '%s' "$SECURITY_KEY$amd64_uri$timestamp10" | md5sum))
|
||||
|
||||
amd64_hash=$(nix-prefetch-url --name "wpsoffice-cn-$version.deb" "$amd64_url?t=$timestamp10&k=$md5hash")
|
||||
|
||||
amd64_hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$amd64_hash")
|
||||
|
||||
cat > sources.nix << EOF
|
||||
# Generated by ./update.sh - do not update manually!
|
||||
# Last updated: $(date +%F)
|
||||
{
|
||||
version = "$version";
|
||||
x86_64 = {
|
||||
url = "$amd64_url";
|
||||
uri = "$amd64_uri";
|
||||
hash = "$amd64_hash";
|
||||
};
|
||||
}
|
||||
EOF
|
||||
@@ -89,7 +89,7 @@ let
|
||||
in
|
||||
buildPythonApplication rec {
|
||||
pname = "xpra";
|
||||
version = "6.3.2";
|
||||
version = "6.3.3";
|
||||
format = "setuptools";
|
||||
|
||||
stdenv = if withNvenc then cudaPackages.backendStdenv else args.stdenv;
|
||||
@@ -98,7 +98,7 @@ buildPythonApplication rec {
|
||||
owner = "Xpra-org";
|
||||
repo = "xpra";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Grtr9d3+ywGFlLdAwEmBiaFJCZQBK2LTuqQ0mg0I0Lk=";
|
||||
hash = "sha256-hk+C6I/QS6ihwmuNlnoNFipJ98SW6LO+Qa3Uh1h1Ji8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "ytdl-sub";
|
||||
version = "2025.09.09";
|
||||
version = "2025.09.13";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jmbannon";
|
||||
repo = "ytdl-sub";
|
||||
tag = version;
|
||||
hash = "sha256-M3dLXVvueMPIqqOd0s/w6ItHE/sgkup7YGjk3GPmcIw=";
|
||||
hash = "sha256-Qcf4hZ1MWH2FHWIvaQGjsd5uwNEaV+MTAFaQm0mwLNs=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -99,7 +99,7 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "zed-editor";
|
||||
version = "0.204.3";
|
||||
version = "0.204.4";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -112,7 +112,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
owner = "zed-industries";
|
||||
repo = "zed";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-nEaV6VQk294zlkkooe1Xh78GHBNzRizopiN9TjRoZNU=";
|
||||
hash = "sha256-uK3Efx9MBvNM2fXSLq05SdLjtI+He11qgsw8r1mWUWo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -143,7 +143,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
--replace-fail '$CARGO_ABOUT_VERSION' '${cargo-about.version}'
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-vbnFXLWgKljlkdQg30tPOX6Kz8EXZoj0I8diwFh//3s=";
|
||||
cargoHash = "sha256-CyzitGBfZoKQKhCs09Q1skIGX+syMV7OPfQPNvX01ow=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
fontconfig,
|
||||
freetype,
|
||||
openssl,
|
||||
openxr-loader,
|
||||
sqlite,
|
||||
gst-plugins-base,
|
||||
gst-plugins-bad,
|
||||
@@ -80,7 +81,7 @@
|
||||
# https://webkitgtk.org/2024/10/04/webkitgtk-2.46.html recommends building with clang.
|
||||
clangStdenv.mkDerivation (finalAttrs: {
|
||||
pname = "webkitgtk";
|
||||
version = "2.48.6";
|
||||
version = "2.50.0";
|
||||
name = "${finalAttrs.pname}-${finalAttrs.version}+abi=${
|
||||
if lib.versionAtLeast gtk3.version "4.0" then
|
||||
"6.0"
|
||||
@@ -100,7 +101,7 @@ clangStdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-2awwNLejnCqqVn5hErMSSxWOWRp0Q55Gl0oDHdDkTiQ=";
|
||||
hash = "sha256-5WS4CZ+aOuMkCVObKQu9KtCE6ZttItSqxeUeRVTfi8I=";
|
||||
};
|
||||
|
||||
patches = lib.optionals clangStdenv.hostPlatform.isLinux [
|
||||
@@ -189,6 +190,8 @@ clangStdenv.mkDerivation (finalAttrs: {
|
||||
++ lib.optionals enableExperimental [
|
||||
# For ENABLE_WEB_RTC
|
||||
openssl
|
||||
# For ENABLE_WEBXR
|
||||
openxr-loader
|
||||
]
|
||||
++ lib.optionals withLibsecret [
|
||||
libsecret
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
hatchling,
|
||||
uv-build,
|
||||
|
||||
# non-propagates
|
||||
django,
|
||||
@@ -19,17 +19,17 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-bootstrap4";
|
||||
version = "25.1";
|
||||
version = "25.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zostera";
|
||||
repo = "django-bootstrap4";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-WIz7T2f3xvsT2rSq1MUFwHpvzgHyLgTRpzb9z98sUmo=";
|
||||
hash = "sha256-+G9UHW4eUGl00A/kDj+iTP7ehjj/dwUENKffvGxE6/4=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
build-system = [ uv-build ];
|
||||
|
||||
dependencies = [ beautifulsoup4 ];
|
||||
|
||||
@@ -48,7 +48,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
description = "Bootstrap 4 integration with Django";
|
||||
homepage = "https://github.com/zostera/django-bootstrap4";
|
||||
changelog = "https://github.com/zostera/django-bootstrap4/blob/${src.rev}/CHANGELOG.md";
|
||||
changelog = "https://github.com/zostera/django-bootstrap4/blob/${src.tag}/CHANGELOG.md";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ hexa ];
|
||||
};
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "elasticsearch8";
|
||||
version = "8.19.0";
|
||||
version = "8.19.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-7D4M4iw+d2Ok21twUxX/PKDxtC6++bPicYI18jrHlY0=";
|
||||
hash = "sha256-/JkH60q7zk792R3IRo/DylOd8xVSqEgH1/KmXFPdy2U=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
datasets,
|
||||
fastapi,
|
||||
mlx,
|
||||
mlx-lm,
|
||||
numpy,
|
||||
opencv-python,
|
||||
pillow,
|
||||
requests,
|
||||
scipy,
|
||||
soundfile,
|
||||
tqdm,
|
||||
transformers,
|
||||
uvicorn,
|
||||
|
||||
# tests
|
||||
psutil,
|
||||
pytestCheckHook,
|
||||
rich,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mlx-vlm";
|
||||
version = "0.3.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Blaizzy";
|
||||
repo = "mlx-vlm";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-KhppKqIJPmtjgSXSC3n5HTMm3fDUJaoYJEiGfQ5vGNQ=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"opencv-python"
|
||||
];
|
||||
dependencies = [
|
||||
datasets
|
||||
fastapi
|
||||
mlx
|
||||
mlx-lm
|
||||
numpy
|
||||
opencv-python
|
||||
pillow
|
||||
requests
|
||||
scipy
|
||||
soundfile
|
||||
tqdm
|
||||
transformers
|
||||
uvicorn
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "mlx_vlm" ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
psutil
|
||||
pytestCheckHook
|
||||
rich
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# Fatal Python error: Aborted
|
||||
# mlx_vlm/models/multi_modality/vision.py", line 174 in __call__
|
||||
"test_multi_modality"
|
||||
|
||||
# RuntimeError: [metal_kernel] No GPU back-end
|
||||
"test_glm4v_moe"
|
||||
"test_kimi_vl"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# ImportError: cannot import name 'get_class_predicate' from 'mlx_vlm.utils'
|
||||
# This function is indeed not exposed by `mlx_vlm.utils`
|
||||
"mlx_vlm/tests/test_utils.py"
|
||||
|
||||
# fixture 'model_path' not found
|
||||
"mlx_vlm/tests/test_smoke.py"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Inference and fine-tuning of Vision Language Models (VLMs) on your Mac using MLX";
|
||||
homepage = "https://github.com/Blaizzy/mlx-vlm";
|
||||
changelog = "https://github.com/Blaizzy/mlx-vlm/releases/tag/v${version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ GaetanLepage ];
|
||||
};
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
setuptools,
|
||||
pkg-config,
|
||||
swig,
|
||||
@@ -42,6 +43,10 @@ buildPythonPackage rec {
|
||||
|
||||
enabledTestPaths = [ "test/test-*.py" ];
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [ "--version=branch" ];
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.gnu.org/software/libcdio/";
|
||||
changelog = "https://github.com/rocky/pycdio/blob/${src.rev}/ChangeLog";
|
||||
|
||||
@@ -55,6 +55,12 @@ buildPythonPackage {
|
||||
|
||||
pythonImportsCheck = [ "waymax" ];
|
||||
|
||||
disabledTests = [
|
||||
# AssertionError: Not equal to tolerance rtol=1e-07, atol=0
|
||||
"test_obs_from_state_for_different_coordinate_system0"
|
||||
"test_obs_from_state_for_different_coordinate_system1"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Disable visualization tests that require a GUI
|
||||
# waymax/visualization/viz_test.py Fatal Python error: Aborted
|
||||
|
||||
@@ -9506,6 +9506,8 @@ self: super: with self; {
|
||||
|
||||
mlx-lm = callPackage ../development/python-modules/mlx-lm { };
|
||||
|
||||
mlx-vlm = callPackage ../development/python-modules/mlx-vlm { };
|
||||
|
||||
mlxtend = callPackage ../development/python-modules/mlxtend { };
|
||||
|
||||
mmcif-pdbx = callPackage ../development/python-modules/mmcif-pdbx { };
|
||||
|
||||
Reference in New Issue
Block a user