Merge c9f97ce391 into haskell-updates
This commit is contained in:
@@ -73,7 +73,7 @@ let
|
||||
(lib.unsafeGetAttrPos "pname" drv)
|
||||
(lib.unsafeGetAttrPos "version" drv)
|
||||
]
|
||||
++ lib.optionals (drv.meta.position or null != null) [
|
||||
++ lib.optionals (drv ? meta.position) [
|
||||
# Use ".meta.position" for cases when most of the package is
|
||||
# defined in a "common" section and the only place where
|
||||
# reference to the file with a derivation the "pos"
|
||||
|
||||
@@ -1,329 +0,0 @@
|
||||
Setting up a cross compiler with Nix
|
||||
|
||||
"Cross compilation" means compiling a program on one machine for another
|
||||
type of machine. A typical use of cross compilation is to compile programs
|
||||
for embedded devices. These devices often don't have the computing power
|
||||
and memory to compile programs natively.
|
||||
|
||||
For a fully working cross compiler the following are needed:
|
||||
|
||||
* cross binutils: assembler, archiver, linker, etcetera that understand
|
||||
the format of the target system
|
||||
|
||||
* cross compiler: a compiler that can generate binary code and object files
|
||||
for the target platform
|
||||
|
||||
* cross C library: a library to link object files with to create fully
|
||||
functional programs
|
||||
|
||||
Cross compilers are difficult to set up. A lot of people report that they
|
||||
cannot succeed in building a cross toolchain successfully. The answers
|
||||
usually consist of "download this pre-built toolchain", which is equally
|
||||
unhelpful.
|
||||
|
||||
A toolchain is set up in five steps:
|
||||
|
||||
1. build binutils to that can run on the host platform, but generate code
|
||||
for the target platform
|
||||
|
||||
2. build Linux kernel headers for the target platform
|
||||
|
||||
3. build a minimal C only version of GCC, that can run on the host platform
|
||||
and generate code for the target platform
|
||||
|
||||
4. build a C library for the target platform. This includes the dynamic
|
||||
linker, C library, etc.
|
||||
|
||||
5. build a full GCC
|
||||
|
||||
****
|
||||
NB:
|
||||
|
||||
Keep in mind that many programs are not very well suited for cross
|
||||
compilation. Either they are not intended to run on other platforms,
|
||||
because the code is highly platform specific, or the configuration process
|
||||
is not written with cross compilation in mind.
|
||||
|
||||
Nix will not solve these problems for you!
|
||||
***
|
||||
|
||||
This document describes to set up a cross compiler to generate code for
|
||||
arm-linux with uClibc and runs on i686-linux. The "stdenv" used is the
|
||||
default from the standard Nix packages collection.
|
||||
|
||||
Step 1: build binutils for arm-linux in the stdenv for i686-linux
|
||||
|
||||
---
|
||||
{stdenv, fetchurl, noSysDirs}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "binutils-2.16.1-arm";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = "http://ftp.nluug.nl/gnu/binutils/binutils-2.16.1.tar.bz2";
|
||||
hash = "sha256-14pv+YKrL3NyFwbnv9MoWsZHgEZk5+pHhuZtAfkcVsU=";
|
||||
};
|
||||
inherit noSysDirs;
|
||||
configureFlags = [ "--target=arm-linux" ];
|
||||
}
|
||||
---
|
||||
|
||||
This will compile binutils that will run on i686-linux, but knows the
|
||||
format used by arm-linux.
|
||||
|
||||
Step 2: build kernel headers for the target architecture
|
||||
|
||||
default.nix for kernel-headers-arm:
|
||||
|
||||
---
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
assert stdenv.buildPlatform.system == "i686-linux";
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "linux-headers-2.6.13.1-arm";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.1.tar.bz2";
|
||||
hash = "sha256-qtICDjfiA1HxWBrHqtB5DCv9s9/HyznKV1C6IxCrHYs=";
|
||||
};
|
||||
}
|
||||
---
|
||||
|
||||
builder.sh for kernel-headers-arm:
|
||||
|
||||
---
|
||||
source $stdenv/setup
|
||||
|
||||
|
||||
buildPhase() {
|
||||
make include/linux/version.h
|
||||
}
|
||||
|
||||
buildPhase=buildPhase
|
||||
|
||||
|
||||
installPhase() {
|
||||
mkdir $out
|
||||
mkdir $out/include
|
||||
#cd $out/include
|
||||
#ln -s asm-arm asm
|
||||
make include/asm ARCH=arm
|
||||
cp -prvd include/linux include/asm include/asm-arm include/asm-generic $out/include
|
||||
echo -n > $out/include/linux/autoconf.h
|
||||
}
|
||||
|
||||
installPhase=installPhase
|
||||
|
||||
|
||||
genericBuild
|
||||
---
|
||||
|
||||
Step 3: build a minimal GCC
|
||||
|
||||
Extra/different parameters include the target platform and the kernel
|
||||
headers argument (this needs a major cleanup, as well as the name, it
|
||||
needs to be different!). Profiled compilers are disabled. The tarball
|
||||
used here is just gcc-core. For some reason it doesn't install nicely
|
||||
if the whole tarball is used (or is this some braino on my side? -- AH).
|
||||
|
||||
Only C is used, because for other languages (such as C++) extra libraries
|
||||
need to be compiled, for which libraries compiled for the target system
|
||||
are needed.
|
||||
|
||||
There is a bit of evilness going on. The cross compiled utilities need
|
||||
to be either copied to or be linked from the output tree of the compiler.
|
||||
(Is this really true? Back this up with arguments! -- AH)
|
||||
|
||||
Symbolic links are not something we want inside the Nix store.
|
||||
|
||||
---
|
||||
{ stdenv, fetchurl, noSysDirs
|
||||
, langC ? true, langCC ? true, langF77 ? false
|
||||
, profiledCompiler ? false
|
||||
, binutilsArm
|
||||
, kernelHeadersArm
|
||||
}:
|
||||
|
||||
assert langC;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "gcc-4.0.2-arm";
|
||||
builder = ./builder.sh;
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.nluug.nl/pub/gnu/gcc/gcc-4.0.2/gcc-core-4.0.2.tar.bz2";
|
||||
hash = "sha256-LANmXRS7/fN2zF5JUJVd8OjNA5aCDsGLQKhSpxWA3Qk=";
|
||||
};
|
||||
# !!! apply only if noSysDirs is set
|
||||
patches = [./no-sys-dirs.patch ./gcc-inhibit.patch];
|
||||
inherit noSysDirs langC langCC langF77 profiledCompiler;
|
||||
buildInputs = [binutilsArm];
|
||||
inherit kernelHeadersArm binutilsArm;
|
||||
platform = "arm-linux";
|
||||
}
|
||||
---
|
||||
|
||||
The builder.sh for a cross-compiler. Note that the binutils are prefixed
|
||||
with the architecture name, so arm-linux-ld instead of ld, etc. This is
|
||||
necessary because when we cross-compile a lot of programs look for these
|
||||
tools with these specific names. The standard gcc-wrapper does not take this
|
||||
into account yet.
|
||||
|
||||
---
|
||||
source $stdenv/setup
|
||||
|
||||
|
||||
export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
|
||||
mkdir $NIX_FIXINC_DUMMY
|
||||
|
||||
|
||||
if test "$noSysDirs" = "1"; then
|
||||
|
||||
if test "$noSysDirs" = "1"; then
|
||||
# Figure out what extra flags to pass to the gcc compilers
|
||||
# being generated to make sure that they use our glibc.
|
||||
if test -e $NIX_CC/nix-support/orig-glibc; then
|
||||
glibc=$(cat $NIX_CC/nix-support/orig-glibc)
|
||||
# Ugh. Copied from gcc-wrapper/builder.sh. We can't just
|
||||
# source in $NIX_CC/nix-support/add-flags, since that
|
||||
# would cause *this* GCC to be linked against the
|
||||
# *previous* GCC. Need some more modularity there.
|
||||
extraCFlags="-B$glibc/lib -isystem $glibc/include"
|
||||
extraLDFlags="-B$glibc/lib -L$glibc/lib -Wl,-s \
|
||||
-Wl,-dynamic-linker,$glibc/lib/ld-linux.so.2"
|
||||
|
||||
# Oh, what a hack. I should be shot for this.
|
||||
# In stage 1, we should link against the previous GCC, but
|
||||
# not afterwards. Otherwise we retain a dependency.
|
||||
# However, ld-wrapper, which adds the linker flags for the
|
||||
# previous GCC, is also used in stage 2/3. We can prevent
|
||||
# it from adding them by NIX_GLIBC_FLAGS_SET, but then
|
||||
# gcc-wrapper will also not add them, thereby causing
|
||||
# stage 1 to fail. So we use a trick to only set the
|
||||
# flags in gcc-wrapper.
|
||||
hook=$(pwd)/ld-wrapper-hook
|
||||
echo "NIX_GLIBC_FLAGS_SET=1" > $hook
|
||||
export NIX_LD_WRAPPER_START_HOOK=$hook
|
||||
fi
|
||||
|
||||
export NIX_EXTRA_CFLAGS=$extraCFlags
|
||||
export NIX_EXTRA_LDFLAGS=$extraLDFlags
|
||||
export CFLAGS=$extraCFlags
|
||||
export CXXFLAGS=$extraCFlags
|
||||
export LDFLAGS=$extraLDFlags
|
||||
fi
|
||||
|
||||
else
|
||||
patches=""
|
||||
fi
|
||||
|
||||
|
||||
preConfigure=preConfigure
|
||||
preConfigure() {
|
||||
|
||||
# Determine the frontends to build.
|
||||
langs="c"
|
||||
if test -n "$langCC"; then
|
||||
langs="$langs,c++"
|
||||
fi
|
||||
if test -n "$langF77"; then
|
||||
langs="$langs,f77"
|
||||
fi
|
||||
|
||||
# Cross compiler evilness
|
||||
mkdir -p $out
|
||||
mkdir -p $out/arm-linux
|
||||
mkdir -p $out/arm-linux/bin
|
||||
ln -s $binutilsArm/arm-linux/bin/as $out/arm-linux/bin/as
|
||||
ln -s $binutilsArm/arm-linux/bin/ld $out/arm-linux/bin/ld
|
||||
ln -s $binutilsArm/arm-linux/bin/ar $out/arm-linux/bin/ar
|
||||
ln -s $binutilsArm/arm-linux/bin/ranlib $out/arm-linux/bin/ranlib
|
||||
|
||||
# Perform the build in a different directory.
|
||||
mkdir ../build
|
||||
cd ../build
|
||||
|
||||
configureScript=../$sourceRoot/configure
|
||||
configureFlags="--enable-languages=$langs --target=$platform --disable-threads --disable-libmudflap --disable-shared --with-headers=$kernelHeadersArm/include --disable-multilib"
|
||||
}
|
||||
|
||||
|
||||
postInstall=postInstall
|
||||
postInstall() {
|
||||
# Remove precompiled headers for now. They are very big and
|
||||
# probably not very useful yet.
|
||||
find $out/include -name "*.gch" -exec rm -rf {} \; -prune
|
||||
|
||||
# Remove `fixincl' to prevent a retained dependency on the
|
||||
# previous gcc.
|
||||
rm -rf $out/libexec/gcc/*/*/install-tools
|
||||
}
|
||||
|
||||
|
||||
#if test -z "$profiledCompiler"; then
|
||||
#makeFlags="bootstrap"
|
||||
#else
|
||||
#makeFlags="profiledbootstrap"
|
||||
#fi
|
||||
|
||||
genericBuild
|
||||
---
|
||||
|
||||
Step 4: build a C library for the target platform.
|
||||
|
||||
The previous steps are enough to compile a C library. In our case we take
|
||||
uClibc. It's intended to be a small sized replacement for glibc. It is widely
|
||||
used in embedded environments.
|
||||
|
||||
...
|
||||
|
||||
Step 5: Build a compiler to link with the newly built C library.
|
||||
|
||||
...
|
||||
|
||||
If we restrict the compiler to just C programs it is relatively easy,
|
||||
since we only need to wrap the GCC we built in the previous step with all
|
||||
the right tools and the right C library. Successfully compiled programs with
|
||||
this compiler and verified to be working on a HP Jornada 820 running Linux
|
||||
are "patch", "make" and "wget".
|
||||
|
||||
If we want to build C++ programs it gets a lot more difficult. GCC has a
|
||||
three step compilation process. In the first step a simple compiler, called
|
||||
xgcc, that can compile only C programs is built. With that compiler it
|
||||
compiles itself two more times: one time to build a full compiler, and another
|
||||
time to build a full compiler once again with the freshly built compiler from
|
||||
step 2. In the second and third step support for C++ is compiled, if this
|
||||
is configured.
|
||||
|
||||
One of the libraries that has to be built for C++ support step is libstdc++.
|
||||
This library uses xgcc, even when cross compiling, since libstdc++ has to be
|
||||
compiled for arm-linux.
|
||||
|
||||
One of the compiler flags that GCC uses for this compiler is called X_CFLAGS.
|
||||
This is used by the Nix build process to set the dynamic linker, glibc
|
||||
in the case of i686-linux using the default Nix packages collection.
|
||||
|
||||
Obviously, since we need to compile libstc++ for arm-linux with uClibc linking
|
||||
will not be done correctly: you can't link object files built for arm-linux
|
||||
with a glibc built for i686-linux.
|
||||
|
||||
Setting X_CFLAGS to use the uClibc libraries and dynamic linker will fail
|
||||
too. Earlier on in the build process these flags are used to compile important
|
||||
files like libgcc.a by the host system gcc, which does need to be linked
|
||||
to glibc. To make this work correctly you will need to carefully juggle
|
||||
with compilation flags. This is still work in progress for Nix.
|
||||
|
||||
|
||||
---
|
||||
|
||||
After successfully completing the whole toolchain you can start building
|
||||
packages with the newly built tools. To make everything build correctly
|
||||
you will need a stdenv for your target platform. Setting up this platform
|
||||
will take some effort. Right now there is a very experimental setup for
|
||||
arm-linux, which needs to be cleaned up before it is production ready.
|
||||
|
||||
Please note that many packages are not well suited for cross-compilation.
|
||||
Even though the package itself might be very well portable often the
|
||||
buildscripts are not. One thing that we have seen that causes frequent
|
||||
build failures is the use of the LD variable. This is often set to 'ld'
|
||||
and not $(CROSS)-ld.
|
||||
@@ -30,6 +30,11 @@
|
||||
|
||||
- Everything related to `bower` was removed, as it is deprecated and not used by anything in nixpkgs.
|
||||
|
||||
- `reaction` has been updated to version 2, which includes some breaking changes.
|
||||
For more information, [check the release article](https://blog.ppom.me/en-reaction-v2).
|
||||
|
||||
- `mealie` has been updated to 3.0.2: This update introduces breaking changes in some API endpoints (see the [release changelog](https://github.com/mealie-recipes/mealie/releases/tag/v3.0.0)).
|
||||
|
||||
- The `offrss` package was removed due to lack of upstream maintenance since 2012. It's recommended for users to migrate to another RSS reader
|
||||
|
||||
- `installShellFiles`: Allow installManPage to take a piped input, add the `--name` flag for renaming the file when installed. Can also append `--` to opt-out of all subsequent parsing.
|
||||
@@ -182,6 +187,8 @@
|
||||
|
||||
- `proton-caller` has been removed due to lack of upstream maintenance.
|
||||
|
||||
- `android-udev-rules` has been removed, as it is effectively superseded by built-in uaccess rules in systemd.
|
||||
|
||||
- `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input.
|
||||
|
||||
- `mongodb-6_0` was removed as it is end of life as of 2025-07-31.
|
||||
@@ -265,6 +272,13 @@
|
||||
|
||||
- The systemd initrd will now respect `x-systemd.wants` and `x-systemd.requires` for reliably unlocking multi-disk bcachefs volumes.
|
||||
|
||||
- `neovim`: Added support for the `vim.o.exrc` option, the `VIMINIT` environment variable, and sourcing of `sysinit.vim`.
|
||||
|
||||
See the neovim help page [`:help startup`](https://neovim.io/doc/user/starting.html#startup) for more information, as well as [the nixpkgs neovim wrapper documentation](#neovim-custom-configuration).
|
||||
|
||||
- `cloudflare-ddns`: Added package cloudflare-ddns.
|
||||
|
||||
|
||||
- [`homebox` 0.20.0](https://github.com/sysadminsmedia/homebox/releases/tag/v0.20.0) changed how assets are stored and hashed. It is recommended to back up your database before this update. In particular, `--storage-data` was replaced with `--storage-conn-string` and `--storage-prefix-path`. If your configuration set `HBOX_STORAGE_DATA` manually, you must migrate it to `HBOX_STORAGE_CONN_STRING` and `HBOX_STORAGE_PREFIX_PATH`.
|
||||
|
||||
- GIMP now defaults to version 3. Use `gimp2` for the old version.
|
||||
@@ -289,6 +303,10 @@
|
||||
- `searx` was updated to use `envsubst` instead of `sed` for parsing secrets from environment variables.
|
||||
If your previous configuration included a secret reference like `server.secret_key = "@SEARX_SECRET_KEY@"`, you must migrate to the new envsubst syntax: `server.secret_key = "$SEARX_SECRET_KEY"`.
|
||||
|
||||
- `jellyfin` was updated to `10.11.x`, which includes heavy backend changes.
|
||||
Make sure to backup your data and configuration directories
|
||||
and read the [Jellyfin 10.11.0 release announcement](https://jellyfin.org/posts/jellyfin-release-10.11.0/).
|
||||
|
||||
- A new hardening flag, `glibcxxassertions` was made available, corresponding to the glibc `_GLIBCXX_ASSERTIONS` option.
|
||||
|
||||
- `versionCheckHook`: Packages that previously relied solely on `pname` to locate the program used to version check, but have a differing `meta.mainProgram` entry, might now fail.
|
||||
@@ -324,13 +342,8 @@
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
- `mealie` has been updated to 3.0.2: This update introduces breaking changes in some API endpoints (see the [release changelog](https://github.com/mealie-recipes/mealie/releases/tag/v3.0.0)).
|
||||
|
||||
### Breaking changes {#sec-nixpkgs-release-25.11-lib-breaking}
|
||||
|
||||
- `reaction` has been updated to version 2, which includes some breaking changes.
|
||||
For more information, [check the release article](https://blog.ppom.me/en-reaction-v2).
|
||||
|
||||
- `lib.mapAttrsFlatten` has been removed, following its deprecation in NixOS 24.11. Use `lib.attrsets.mapAttrsToList` instead.
|
||||
|
||||
- `lib.attrsets.cartesianProductOfSets` has been removed, following its deprecation in NixOS 24.11. Use `lib.attrsets.cartesianProduct` instead.
|
||||
@@ -346,9 +359,6 @@
|
||||
and called `setup.py` from the source tree, which is deprecated.
|
||||
The modern alternative is to configure `pyproject = true` with `build-system = [ setuptools ]`.
|
||||
|
||||
- `boot.enableContainers` is only turned on when a declarative NixOS container is defined in `containers`.
|
||||
If you use the `nixos-container` tool for imperative container management, set `boot.enableContainers = true;` explicitly.
|
||||
|
||||
### Deprecations {#sec-nixpkgs-release-25.11-lib-deprecations}
|
||||
|
||||
- `lib.options.mkAliasOptionModuleMD` is now obsolete; use the identical [`lib.options.mkAliasOptionModule`] instead.
|
||||
@@ -365,10 +375,4 @@
|
||||
|
||||
### Additions and Improvements {#sec-nixpkgs-release-25.11-lib-additions-improvements}
|
||||
|
||||
- `neovim`: Added support for the `vim.o.exrc` option, the `VIMINIT` environment variable, and sourcing of `sysinit.vim`.
|
||||
|
||||
See the neovim help page [`:help startup`](https://neovim.io/doc/user/starting.html#startup) for more information, as well as [the nixpkgs neovim wrapper documentation](#neovim-custom-configuration).
|
||||
|
||||
- `cloudflare-ddns`: Added package cloudflare-ddns.
|
||||
|
||||
- `lib.cli.toCommandLine`, `lib.cli.toCommandLineShell`, `lib.cli.toCommandLineGNU` and `lib.cli.toCommandLineShellGNU` have been added to address multiple issues in `lib.cli.toGNUCommandLine` and `lib.cli.toGNUCommandLineShell`.
|
||||
|
||||
@@ -620,11 +620,6 @@ lib.mapAttrs mkLicense (
|
||||
fullName = "Unspecified free software license";
|
||||
};
|
||||
|
||||
freeimage = {
|
||||
spdxId = "FreeImage";
|
||||
fullName = "FreeImage Public License v1.0";
|
||||
};
|
||||
|
||||
fsl11Mit = {
|
||||
fullName = "Functional Source License, Version 1.1, MIT Future License";
|
||||
spdxId = "FSL-1.1-MIT";
|
||||
|
||||
@@ -10956,6 +10956,12 @@
|
||||
githubId = 993484;
|
||||
name = "Greg Hale";
|
||||
};
|
||||
imatpot = {
|
||||
email = "nixpkgs@brnk.vc";
|
||||
github = "imatpot";
|
||||
githubId = 39416660;
|
||||
name = "Mladen Branković";
|
||||
};
|
||||
imgabe = {
|
||||
email = "gabrielpmonte@hotmail.com";
|
||||
github = "ImGabe";
|
||||
@@ -13989,6 +13995,12 @@
|
||||
name = "Tomas Krupka";
|
||||
matrix = "@krupkat:matrix.org";
|
||||
};
|
||||
kruziikrel13 = {
|
||||
github = "kruziikrel13";
|
||||
name = "Michael Petersen";
|
||||
email = "dev@michaelpetersen.io";
|
||||
githubId = 72793125;
|
||||
};
|
||||
krzaczek = {
|
||||
name = "Pawel Krzaczkowski";
|
||||
email = "pawel@printu.pl";
|
||||
@@ -14728,6 +14740,13 @@
|
||||
githubId = 54189319;
|
||||
name = "Lilly Cham";
|
||||
};
|
||||
lilyball = {
|
||||
email = "lily@ballards.net";
|
||||
github = "lilyball";
|
||||
githubId = 714;
|
||||
matrix = "@esperlily:matrix.org";
|
||||
name = "Lily Ballard";
|
||||
};
|
||||
limeytexan = {
|
||||
email = "limeytexan@gmail.com";
|
||||
github = "limeytexan";
|
||||
@@ -23072,6 +23091,11 @@
|
||||
githubId = 99875823;
|
||||
name = "Michael Savedra";
|
||||
};
|
||||
savtrip = {
|
||||
github = "savtrip";
|
||||
githubId = 42227195;
|
||||
name = "Sav Tripodi";
|
||||
};
|
||||
savyajha = {
|
||||
email = "savya.jha@hawkradius.com";
|
||||
github = "savyajha";
|
||||
@@ -28959,6 +28983,11 @@
|
||||
githubId = 1329212;
|
||||
name = "Andy Zhang";
|
||||
};
|
||||
zhaithizaliel = {
|
||||
name = "Zhaith Izaliel";
|
||||
github = "Zhaith-Izaliel";
|
||||
githubId = 39216756;
|
||||
};
|
||||
zhaofengli = {
|
||||
email = "hello@zhaofeng.li";
|
||||
matrix = "@zhaofeng:zhaofeng.li";
|
||||
|
||||
@@ -115,6 +115,7 @@ with lib.maintainers;
|
||||
happysalada
|
||||
minijackson
|
||||
yurrriq
|
||||
savtrip
|
||||
];
|
||||
github = "beam";
|
||||
scope = "Maintain BEAM-related packages and modules.";
|
||||
|
||||
@@ -166,6 +166,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- [twingate](https://docs.twingate.com/docs/linux), a high performance, easy to use zero trust solution that enables access to private resources from any device with better security than a VPN.
|
||||
|
||||
- [iio-niri](https://github.com/Zhaith-Izaliel/iio-niri), a utils that listens to `iio-sensor-proxy` and updates Niri output orientation depending on the accelerometer orientation.
|
||||
|
||||
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
|
||||
|
||||
- The NixOS VM test framework, `pkgs.nixosTest`/`make-test-python.nix` (`pkgs.testers.nixosTest` since 22.05), now requires detaching commands such as `succeed("foo &")` and `succeed("foo | xclip -i")` to close stdout.
|
||||
|
||||
@@ -180,6 +180,9 @@
|
||||
|
||||
- The `services.polipo` module has been removed as `polipo` is unmaintained and archived upstream.
|
||||
|
||||
- `boot.enableContainers` is only turned on when a declarative NixOS container is defined in `containers`.
|
||||
If you use the `nixos-container` tool for imperative container management, set `boot.enableContainers = true;` explicitly.
|
||||
|
||||
- `virtualisation.lxd` has been removed due to lack of Nixpkgs maintenance. Users can migrate to `virtualisation.incus`, a fork of LXD, as a replacement. See [Incus migration documentation](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for migration information.
|
||||
|
||||
- `virtualisation.libvirtd` now uses OVMF images shipped with QEMU for UEFI machines. `virtualisation.libvirtd.qemu.ovmf` has been removed.
|
||||
@@ -238,6 +241,8 @@
|
||||
|
||||
- The `yeahwm` package and `services.xserver.windowManager.yeahwm` module were removed due to the package being broken and unmaintained upstream.
|
||||
|
||||
- `services.nixseparatedebuginfod.enable = true;` has been replaced by `services.nixseparatedebuginfod2.enable = true`. If you only use the official binary cache `https://cache.nixos.org` then no further configuration should be needed. If you have other https substituters, you can add them to `services.nixseparatedebuginfod2.subsituters`. SSH substituters are not supported by nixseparatedebuginfod2. Consider running nixseparatedebuginfod2 on the substituter instead, and pointing to it with the new option `environment.debuginfodServers`.
|
||||
|
||||
- The `services.snapserver` module has been migrated to use the settings option and render a configuration file instead of passing every option over the command line.
|
||||
|
||||
- The `services.meilisearch` module now always defaults to the latest version of meilisearch, as the previous `meilisearch_1_11` package was removed. This is only an issue if you were using the old version.
|
||||
@@ -335,6 +340,8 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325).
|
||||
|
||||
- `services.dnscrypt-proxy` gains a `package` option to specify dnscrypt-proxy package to use.
|
||||
|
||||
- `boot.plymouth` now has a [`package`](#opt-boot.plymouth.package) option to specify the package used in the module.
|
||||
|
||||
- `services.limesurvey` now supports nginx as reverse-proxy. Available through [services.limesurvey.webserver](#opt-services.limesurvey.webserver).
|
||||
|
||||
- `services.nextcloud.configureRedis` now defaults to `true` in accordance with upstream recommendations to have caching for file locking. See the [upstream doc](https://docs.nextcloud.com/server/31/admin_manual/configuration_files/files_locking_transactional.html) for further details.
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./system.nix
|
||||
];
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ mic92 ];
|
||||
|
||||
options.hardware.facter = with lib; {
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
# Internal library functions for hardware.facter modules
|
||||
# Eventually we can think about moving this under lib/
|
||||
# These are facter-specific helpers for querying nixos-facter reports
|
||||
lib:
|
||||
let
|
||||
|
||||
inherit (lib) assertMsg;
|
||||
|
||||
# Query if a facter report contains a CPU with the given vendor name
|
||||
hasCpu =
|
||||
name:
|
||||
{
|
||||
hardware ? { },
|
||||
...
|
||||
}:
|
||||
let
|
||||
cpus = hardware.cpu or [ ];
|
||||
in
|
||||
assert assertMsg (hardware != { }) "no hardware entries found in the report";
|
||||
assert assertMsg (cpus != [ ]) "no cpu entries found in the report";
|
||||
builtins.any (
|
||||
{
|
||||
vendor_name ? null,
|
||||
...
|
||||
}:
|
||||
assert assertMsg (vendor_name != null) "detail.vendor_name not found in cpu entry";
|
||||
vendor_name == name
|
||||
) cpus;
|
||||
|
||||
# Extract all driver_modules from a list of hardware entries
|
||||
collectDrivers = list: lib.catAttrs "driver_modules" list;
|
||||
|
||||
# Convert number to zero-padded 4-digit hex string (for USB device IDs)
|
||||
toZeroPaddedHex =
|
||||
n:
|
||||
let
|
||||
hex = lib.toHexString n;
|
||||
len = builtins.stringLength hex;
|
||||
in
|
||||
if len == 1 then
|
||||
"000${hex}"
|
||||
else if len == 2 then
|
||||
"00${hex}"
|
||||
else if len == 3 then
|
||||
"0${hex}"
|
||||
else
|
||||
hex;
|
||||
in
|
||||
{
|
||||
inherit
|
||||
hasCpu
|
||||
collectDrivers
|
||||
toZeroPaddedHex
|
||||
;
|
||||
|
||||
hasAmdCpu = hasCpu "AuthenticAMD";
|
||||
hasIntelCpu = hasCpu "GenuineIntel";
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
config,
|
||||
options,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# Skip setting hostPlatform in test VMs where it's read-only
|
||||
# Tests have virtualisation.test options and import read-only.nix
|
||||
config.nixpkgs = lib.optionalAttrs (!(options ? virtualisation.test)) {
|
||||
hostPlatform = lib.mkIf (
|
||||
config.hardware.facter.report.system or null != null && !options.nixpkgs.pkgs.isDefined
|
||||
) (lib.mkDefault config.hardware.facter.report.system);
|
||||
};
|
||||
}
|
||||
@@ -8,15 +8,18 @@
|
||||
let
|
||||
cfg = config.hardware.keyboard.qmk;
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
|
||||
in
|
||||
{
|
||||
options.hardware.keyboard.qmk = {
|
||||
enable = mkEnableOption "non-root access to the firmware of QMK keyboards";
|
||||
keychronSupport = mkEnableOption "udev rules for keychron QMK based keyboards";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.udev.packages = [ pkgs.qmk-udev-rules ];
|
||||
services.udev.packages = [
|
||||
pkgs.qmk-udev-rules
|
||||
]
|
||||
++ lib.optionals cfg.keychronSupport [ pkgs.keychron-udev-rules ];
|
||||
users.groups.plugdev = { };
|
||||
};
|
||||
}
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
./programs/iay.nix
|
||||
./programs/iftop.nix
|
||||
./programs/iio-hyprland.nix
|
||||
./programs/iio-niri.nix
|
||||
./programs/immersed.nix
|
||||
./programs/iotop.nix
|
||||
./programs/java.nix
|
||||
@@ -599,7 +600,6 @@
|
||||
./services/development/livebook.nix
|
||||
./services/development/lorri.nix
|
||||
./services/development/nixseparatedebuginfod2.nix
|
||||
./services/development/nixseparatedebuginfod.nix
|
||||
./services/development/rstudio-server/default.nix
|
||||
./services/development/vsmartcard-vpcd.nix
|
||||
./services/development/zammad.nix
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Whether to configure system to use Android Debug Bridge (adb).
|
||||
To grant access to a user, it must be part of adbusers group:
|
||||
`users.users.alice.extraGroups = ["adbusers"];`
|
||||
'';
|
||||
};
|
||||
};
|
||||
@@ -25,8 +23,6 @@
|
||||
|
||||
###### implementation
|
||||
config = lib.mkIf config.programs.adb.enable {
|
||||
services.udev.packages = [ pkgs.android-udev-rules ];
|
||||
environment.systemPackages = [ pkgs.android-tools ];
|
||||
users.groups.adbusers = { };
|
||||
};
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ in
|
||||
services.udev = {
|
||||
enable = true;
|
||||
packages = with pkgs; [
|
||||
android-udev-rules
|
||||
xr-hardware
|
||||
];
|
||||
};
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
mkEnableOption
|
||||
mkPackageOption
|
||||
mkOption
|
||||
types
|
||||
mkIf
|
||||
getExe
|
||||
escapeShellArgs
|
||||
mkDefault
|
||||
;
|
||||
cfg = config.services.iio-niri;
|
||||
in
|
||||
{
|
||||
options.services.iio-niri = {
|
||||
enable = mkEnableOption "IIO-Niri";
|
||||
|
||||
package = mkPackageOption pkgs "iio-niri" { };
|
||||
|
||||
niriUnit = mkOption {
|
||||
type = types.nonEmptyStr;
|
||||
default = "niri.service";
|
||||
description = "The Niri **user** service unit to bind IIO-Niri's **user** service unit to.";
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
description = "Extra arguments to pass to IIO-Niri.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
hardware.sensor.iio.enable = mkDefault true;
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
systemd.user.services.iio-niri = {
|
||||
description = "IIO-Niri";
|
||||
wantedBy = [ cfg.niriUnit ];
|
||||
bindsTo = [ cfg.niriUnit ];
|
||||
partOf = [ cfg.niriUnit ];
|
||||
after = [ cfg.niriUnit ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${getExe cfg.package} ${escapeShellArgs cfg.extraArgs}";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ zhaithizaliel ];
|
||||
}
|
||||
@@ -228,6 +228,9 @@ in
|
||||
"services.morty has been removed from NixOS. As the morty package was unmaintained and removed and searxng, its main consumer, dropped support for it."
|
||||
)
|
||||
(mkRemovedOptionModule [ "services" "mwlib" ] "The corresponding package was removed from nixpkgs.")
|
||||
(mkRemovedOptionModule [ "services" "nixseparatedebuginfod" ]
|
||||
"Use `services.nixseparatedebuginfod2.enable = true;` instead. If you only use the official binary cache, no additional configuration should be needed."
|
||||
)
|
||||
(mkRemovedOptionModule [ "services" "pantheon" "files" ] ''
|
||||
This module was removed, please add pkgs.pantheon.elementary-files to environment.systemPackages directly.
|
||||
'')
|
||||
|
||||
@@ -64,7 +64,7 @@ in
|
||||
];
|
||||
|
||||
# Needs to verify the user of the processes.
|
||||
PrivateUsers = "full";
|
||||
PrivateUsers = false;
|
||||
# Needs to access other processes to modify their scheduling modes.
|
||||
ProcSubset = "all";
|
||||
ProtectProc = "default";
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.nixseparatedebuginfod;
|
||||
url = "127.0.0.1:${toString cfg.port}";
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.nixseparatedebuginfod = {
|
||||
enable = lib.mkEnableOption "separatedebuginfod, a debuginfod server providing source and debuginfo for nix packages";
|
||||
port = lib.mkOption {
|
||||
description = "port to listen";
|
||||
default = 1949;
|
||||
type = lib.types.port;
|
||||
};
|
||||
nixPackage = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.nix;
|
||||
defaultText = lib.literalExpression "pkgs.nix";
|
||||
description = ''
|
||||
The version of nix that nixseparatedebuginfod should use as client for the nix daemon. It is strongly advised to use nix version >= 2.18, otherwise some debug info may go missing.
|
||||
'';
|
||||
};
|
||||
allowOldNix = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Do not fail evaluation when {option}`services.nixseparatedebuginfod.nixPackage` is older than nix 2.18.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.allowOldNix || (lib.versionAtLeast cfg.nixPackage.version "2.18");
|
||||
message = "nixseparatedebuginfod works better when `services.nixseparatedebuginfod.nixPackage` is set to nix >= 2.18 (instead of ${cfg.nixPackage.name}). Set `services.nixseparatedebuginfod.allowOldNix` to bypass.";
|
||||
}
|
||||
];
|
||||
|
||||
systemd.services.nixseparatedebuginfod = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "nix-daemon.service" ];
|
||||
after = [ "nix-daemon.service" ];
|
||||
path = [ cfg.nixPackage ];
|
||||
serviceConfig = {
|
||||
ExecStart = [ "${pkgs.nixseparatedebuginfod}/bin/nixseparatedebuginfod -l ${url}" ];
|
||||
Restart = "on-failure";
|
||||
CacheDirectory = "nixseparatedebuginfod";
|
||||
# nix does not like DynamicUsers in allowed-users
|
||||
User = "nixseparatedebuginfod";
|
||||
Group = "nixseparatedebuginfod";
|
||||
|
||||
# hardening
|
||||
# Filesystem stuff
|
||||
ProtectSystem = "strict"; # Prevent writing to most of /
|
||||
ProtectHome = true; # Prevent accessing /home and /root
|
||||
PrivateTmp = true; # Give an own directory under /tmp
|
||||
PrivateDevices = true; # Deny access to most of /dev
|
||||
ProtectKernelTunables = true; # Protect some parts of /sys
|
||||
ProtectControlGroups = true; # Remount cgroups read-only
|
||||
RestrictSUIDSGID = true; # Prevent creating SETUID/SETGID files
|
||||
PrivateMounts = true; # Give an own mount namespace
|
||||
RemoveIPC = true;
|
||||
UMask = "0077";
|
||||
|
||||
# Capabilities
|
||||
CapabilityBoundingSet = ""; # Allow no capabilities at all
|
||||
NoNewPrivileges = true; # Disallow getting more capabilities. This is also implied by other options.
|
||||
|
||||
# Kernel stuff
|
||||
ProtectKernelModules = true; # Prevent loading of kernel modules
|
||||
SystemCallArchitectures = "native"; # Usually no need to disable this
|
||||
ProtectKernelLogs = true; # Prevent access to kernel logs
|
||||
ProtectClock = true; # Prevent setting the RTC
|
||||
|
||||
# Networking
|
||||
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
|
||||
|
||||
# Misc
|
||||
LockPersonality = true; # Prevent change of the personality
|
||||
ProtectHostname = true; # Give an own UTS namespace
|
||||
RestrictRealtime = true; # Prevent switching to RT scheduling
|
||||
MemoryDenyWriteExecute = true; # Maybe disable this for interpreters like python
|
||||
RestrictNamespaces = true;
|
||||
};
|
||||
};
|
||||
|
||||
users.users.nixseparatedebuginfod = {
|
||||
isSystemUser = true;
|
||||
group = "nixseparatedebuginfod";
|
||||
};
|
||||
|
||||
users.groups.nixseparatedebuginfod = { };
|
||||
|
||||
nix.settings = lib.optionalAttrs (lib.versionAtLeast config.nix.package.version "2.4") {
|
||||
extra-allowed-users = [ "nixseparatedebuginfod" ];
|
||||
};
|
||||
|
||||
environment.debuginfodServers = [ "http://${url}" ];
|
||||
};
|
||||
}
|
||||
@@ -10,20 +10,27 @@ let
|
||||
url = "127.0.0.1:${toString cfg.port}";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRemovedOptionModule [ "services" "nixseparatedebuginfod2" "substituter" ] ''
|
||||
Instead of `services.nixseparatedebuginfod2.substituter = "foo"`, set `services.nixseparatedebuginfod2.substituters = [ "foo" ]` (possibly with mkForce to override the default value).
|
||||
'')
|
||||
];
|
||||
options = {
|
||||
services.nixseparatedebuginfod2 = {
|
||||
enable = lib.mkEnableOption "nixseparatedebuginfod2, a debuginfod server providing source and debuginfo for nix packages";
|
||||
port = lib.mkOption {
|
||||
description = "port to listen";
|
||||
default = 1950;
|
||||
default = 1949;
|
||||
type = lib.types.port;
|
||||
};
|
||||
package = lib.mkPackageOption pkgs "nixseparatedebuginfod2" { };
|
||||
substituter = lib.mkOption {
|
||||
description = "nix substituter to fetch debuginfo from. Either http/https substituters, or `local:` to use debuginfo present in the local store.";
|
||||
default = "https://cache.nixos.org";
|
||||
example = "local:";
|
||||
type = lib.types.str;
|
||||
substituters = lib.mkOption {
|
||||
description = "nix substituter to fetch debuginfo from. Either http/https/file substituters, or `local:` to use debuginfo present in the local store.";
|
||||
default = [
|
||||
"local:"
|
||||
"https://cache.nixos.org"
|
||||
];
|
||||
type = lib.types.listOf lib.types.str;
|
||||
};
|
||||
cacheExpirationDelay = lib.mkOption {
|
||||
description = "keep unused cache entries for this long. A number followed by a unit";
|
||||
@@ -38,15 +45,19 @@ in
|
||||
path = [ config.nix.package ];
|
||||
serviceConfig = {
|
||||
ExecStart = [
|
||||
(utils.escapeSystemdExecArgs [
|
||||
(lib.getExe cfg.package)
|
||||
"--listen-address"
|
||||
url
|
||||
"--substituter"
|
||||
cfg.substituter
|
||||
"--expiration"
|
||||
cfg.cacheExpirationDelay
|
||||
])
|
||||
(utils.escapeSystemdExecArgs (
|
||||
[
|
||||
(lib.getExe cfg.package)
|
||||
"--listen-address"
|
||||
url
|
||||
"--expiration"
|
||||
cfg.cacheExpirationDelay
|
||||
]
|
||||
++ (lib.lists.concatMap (s: [
|
||||
"--substituter"
|
||||
s
|
||||
]) cfg.substituters)
|
||||
))
|
||||
];
|
||||
Restart = "on-failure";
|
||||
CacheDirectory = "nixseparatedebuginfod2";
|
||||
|
||||
@@ -668,6 +668,9 @@ in
|
||||
${artisanWrapper}/bin/librenms-artisan optimize
|
||||
echo "${package}" > ${cfg.dataDir}/package
|
||||
fi
|
||||
|
||||
# to make sure to not read an outdated .env file
|
||||
${artisanWrapper}/bin/librenms-artisan config:cache
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -134,6 +134,6 @@ with lib;
|
||||
];
|
||||
|
||||
meta = {
|
||||
inherit (pkgs.zeronet) maintainers;
|
||||
inherit (pkgs.zeronet.meta) maintainers;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -217,7 +217,6 @@ in
|
||||
};
|
||||
|
||||
services = {
|
||||
udev.packages = with pkgs; [ android-udev-rules ];
|
||||
avahi = {
|
||||
enable = true;
|
||||
publish = {
|
||||
|
||||
@@ -324,7 +324,7 @@ let
|
||||
mapAttrsToList (
|
||||
vhostName: vhost:
|
||||
let
|
||||
onlySSL = vhost.onlySSL || vhost.enableSSL;
|
||||
onlySSL = vhost.onlySSL;
|
||||
hasSSL = onlySSL || vhost.addSSL || vhost.forceSSL;
|
||||
|
||||
# First evaluation of defaultListen based on a set of listen lines.
|
||||
@@ -1324,18 +1324,6 @@ in
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
warnings =
|
||||
let
|
||||
deprecatedSSL =
|
||||
name: config:
|
||||
optional config.enableSSL ''
|
||||
config.services.nginx.virtualHosts.<name>.enableSSL is deprecated,
|
||||
use config.services.nginx.virtualHosts.<name>.onlySSL instead.
|
||||
'';
|
||||
|
||||
in
|
||||
flatten (mapAttrsToList deprecatedSSL virtualHosts);
|
||||
|
||||
assertions =
|
||||
let
|
||||
hostOrAliasIsNull = l: l.root == null || l.alias == null;
|
||||
@@ -1352,7 +1340,7 @@ in
|
||||
with host;
|
||||
count id [
|
||||
addSSL
|
||||
(onlySSL || enableSSL)
|
||||
onlySSL
|
||||
forceSSL
|
||||
rejectSSL
|
||||
] <= 1
|
||||
|
||||
@@ -170,12 +170,6 @@ with lib;
|
||||
'';
|
||||
};
|
||||
|
||||
enableSSL = mkOption {
|
||||
type = types.bool;
|
||||
visible = false;
|
||||
default = false;
|
||||
};
|
||||
|
||||
forceSSL = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
|
||||
@@ -145,6 +145,11 @@ let
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ armelclo ];
|
||||
};
|
||||
|
||||
options = {
|
||||
services.xserver.desktopManager.phosh = {
|
||||
enable = lib.mkOption {
|
||||
@@ -183,8 +188,11 @@ in
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# Inspired by https://gitlab.gnome.org/World/Phosh/phosh/-/blob/main/data/phosh.service
|
||||
# Parts taken from nixos/modules/services/wayland/cage.nix
|
||||
systemd.services.phosh = {
|
||||
wantedBy = [ "graphical.target" ];
|
||||
after = [ "getty@tty1.service" ];
|
||||
conflicts = [ "getty@tty1.service" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/phosh-session";
|
||||
User = cfg.user;
|
||||
@@ -193,7 +201,7 @@ in
|
||||
WorkingDirectory = "~";
|
||||
Restart = "always";
|
||||
|
||||
TTYPath = "/dev/tty7";
|
||||
TTYPath = "/dev/tty1";
|
||||
TTYReset = "yes";
|
||||
TTYVHangup = "yes";
|
||||
TTYVTDisallocate = "yes";
|
||||
@@ -204,7 +212,7 @@ in
|
||||
StandardError = "journal";
|
||||
|
||||
# Log this user with utmp, letting it show up with commands 'w' and 'who'.
|
||||
UtmpIdentifier = "tty7";
|
||||
UtmpIdentifier = "tty1";
|
||||
UtmpMode = "user";
|
||||
};
|
||||
environment = {
|
||||
@@ -224,6 +232,16 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-phosh
|
||||
pkgs.xdg-desktop-portal-gnome
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = lib.mkDefault [ pkgs.phosh ];
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.phoc
|
||||
cfg.package
|
||||
|
||||
@@ -6,13 +6,20 @@
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
plymouth = pkgs.plymouth.override {
|
||||
systemd = config.boot.initrd.systemd.package;
|
||||
};
|
||||
inherit (lib)
|
||||
mkOption
|
||||
mkEnableOption
|
||||
optional
|
||||
mkIf
|
||||
mkBefore
|
||||
mkAfter
|
||||
literalExpression
|
||||
types
|
||||
literalMD
|
||||
getExe'
|
||||
escapeShellArg
|
||||
;
|
||||
|
||||
cfg = config.boot.plymouth;
|
||||
opt = options.boot.plymouth;
|
||||
@@ -53,7 +60,7 @@ let
|
||||
themesEnv = pkgs.buildEnv {
|
||||
name = "plymouth-themes";
|
||||
paths = [
|
||||
plymouth
|
||||
cfg.package
|
||||
plymouthLogos
|
||||
]
|
||||
++ cfg.themePackages;
|
||||
@@ -85,7 +92,7 @@ let
|
||||
preStartQuitFixup = {
|
||||
serviceConfig.ExecStartPre = [
|
||||
""
|
||||
"${plymouth}/bin/plymouth quit --wait"
|
||||
"${getExe' cfg.package "plymouth"} quit --wait"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -99,6 +106,19 @@ in
|
||||
|
||||
enable = mkEnableOption "Plymouth boot splash screen";
|
||||
|
||||
package = mkOption {
|
||||
description = "The plymouth package to use.";
|
||||
type = types.package;
|
||||
default = pkgs.plymouth.override {
|
||||
systemd = config.boot.initrd.systemd.package;
|
||||
};
|
||||
defaultText = literalExpression ''
|
||||
pkgs.plymouth.override {
|
||||
systemd = config.boot.initrd.systemd.package;
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
font = mkOption {
|
||||
default = "${pkgs.dejavu_fonts.minimal}/share/fonts/truetype/DejaVuSans.ttf";
|
||||
defaultText = literalExpression ''"''${pkgs.dejavu_fonts.minimal}/share/fonts/truetype/DejaVuSans.ttf"'';
|
||||
@@ -109,7 +129,7 @@ in
|
||||
};
|
||||
|
||||
themePackages = mkOption {
|
||||
default = lib.optional (cfg.theme == "breeze") nixosBreezePlymouth;
|
||||
default = optional (cfg.theme == "breeze") nixosBreezePlymouth;
|
||||
defaultText = literalMD ''
|
||||
A NixOS branded variant of the breeze theme when
|
||||
`config.${opt.theme} == "breeze"`, otherwise
|
||||
@@ -164,15 +184,15 @@ in
|
||||
boot.kernelParams = [ "splash" ];
|
||||
|
||||
# To be discoverable by systemd.
|
||||
environment.systemPackages = [ plymouth ];
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
environment.etc."plymouth/plymouthd.conf".source = configFile;
|
||||
environment.etc."plymouth/plymouthd.defaults".source =
|
||||
"${plymouth}/share/plymouth/plymouthd.defaults";
|
||||
"${cfg.package}/share/plymouth/plymouthd.defaults";
|
||||
environment.etc."plymouth/logo.png".source = cfg.logo;
|
||||
environment.etc."plymouth/themes".source = "${themesEnv}/share/plymouth/themes";
|
||||
# XXX: Needed because we supply a different set of plugins in initrd.
|
||||
environment.etc."plymouth/plugins".source = "${plymouth}/lib/plymouth";
|
||||
environment.etc."plymouth/plugins".source = "${cfg.package}/lib/plymouth";
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /run/plymouth 0755 root root 0 -"
|
||||
@@ -181,7 +201,7 @@ in
|
||||
"L+ /run/plymouth/plugins - - - - /etc/plymouth/plugins"
|
||||
];
|
||||
|
||||
systemd.packages = [ plymouth ];
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
||||
systemd.services.plymouth-kexec.wantedBy = [ "kexec.target" ];
|
||||
systemd.services.plymouth-halt.wantedBy = [ "halt.target" ];
|
||||
@@ -200,13 +220,13 @@ in
|
||||
systemd.services.emergency = preStartQuitFixup;
|
||||
|
||||
boot.initrd.systemd = {
|
||||
extraBin.plymouth = "${plymouth}/bin/plymouth"; # for the recovery shell
|
||||
extraBin.plymouth = getExe' cfg.package "plymouth"; # for the recovery shell
|
||||
storePaths = [
|
||||
"${lib.getBin config.boot.initrd.systemd.package}/bin/systemd-tty-ask-password-agent"
|
||||
"${plymouth}/bin/plymouthd"
|
||||
"${plymouth}/sbin/plymouthd"
|
||||
(getExe' config.boot.initrd.systemd.package "systemd-tty-ask-password-agent")
|
||||
(getExe' cfg.package "plymouthd")
|
||||
"${cfg.package}/sbin/plymouthd"
|
||||
];
|
||||
packages = [ plymouth ]; # systemd units
|
||||
packages = [ cfg.package ]; # systemd units
|
||||
|
||||
services.rescue = preStartQuitFixup;
|
||||
services.emergency = preStartQuitFixup;
|
||||
@@ -215,7 +235,7 @@ in
|
||||
# Files
|
||||
"/etc/plymouth/plymouthd.conf".source = configFile;
|
||||
"/etc/plymouth/logo.png".source = cfg.logo;
|
||||
"/etc/plymouth/plymouthd.defaults".source = "${plymouth}/share/plymouth/plymouthd.defaults";
|
||||
"/etc/plymouth/plymouthd.defaults".source = "${cfg.package}/share/plymouth/plymouthd.defaults";
|
||||
# Directories
|
||||
"/etc/plymouth/plugins".source = pkgs.runCommand "plymouth-initrd-plugins" { } (
|
||||
checkIfThemeExists
|
||||
@@ -225,7 +245,7 @@ in
|
||||
mkdir -p $out/renderers
|
||||
# module might come from a theme
|
||||
cp ${themesEnv}/lib/plymouth/*.so $out
|
||||
cp ${plymouth}/lib/plymouth/renderers/*.so $out/renderers
|
||||
cp ${cfg.package}/lib/plymouth/renderers/*.so $out/renderers
|
||||
# useless in the initrd, and adds several megabytes to the closure
|
||||
rm $out/renderers/x11.so
|
||||
''
|
||||
@@ -306,10 +326,10 @@ in
|
||||
'')
|
||||
];
|
||||
|
||||
boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) (
|
||||
boot.initrd.extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) (
|
||||
''
|
||||
copy_bin_and_libs ${plymouth}/bin/plymouth
|
||||
copy_bin_and_libs ${plymouth}/bin/plymouthd
|
||||
copy_bin_and_libs ${getExe' cfg.package "plymouth"}
|
||||
copy_bin_and_libs ${getExe' cfg.package "plymouthd"}
|
||||
|
||||
''
|
||||
+ checkIfThemeExists
|
||||
@@ -320,12 +340,12 @@ in
|
||||
mkdir -p $out/lib/plymouth/renderers
|
||||
# module might come from a theme
|
||||
cp ${themesEnv}/lib/plymouth/*.so $out/lib/plymouth
|
||||
cp ${plymouth}/lib/plymouth/renderers/*.so $out/lib/plymouth/renderers
|
||||
cp ${cfg.package}/lib/plymouth/renderers/*.so $out/lib/plymouth/renderers
|
||||
# useless in the initrd, and adds several megabytes to the closure
|
||||
rm $out/lib/plymouth/renderers/x11.so
|
||||
|
||||
mkdir -p $out/share/plymouth/themes
|
||||
cp ${plymouth}/share/plymouth/plymouthd.defaults $out/share/plymouth
|
||||
cp ${cfg.package}/share/plymouth/plymouthd.defaults $out/share/plymouth
|
||||
|
||||
# Copy themes into working directory for patching
|
||||
mkdir themes
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
name = "jellyfin";
|
||||
meta.maintainers = with lib.maintainers; [ minijackson ];
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
{
|
||||
services.jellyfin.enable = true;
|
||||
environment.systemPackages = with pkgs; [ ffmpeg ];
|
||||
};
|
||||
nodes.machine = {
|
||||
services.jellyfin.enable = true;
|
||||
environment.systemPackages = with pkgs; [ ffmpeg ];
|
||||
# Jellyfin fails to start if the data dir doesn't have at least 2GiB of free space
|
||||
virtualisation.diskSize = 3 * 1024;
|
||||
};
|
||||
|
||||
# Documentation of the Jellyfin API: https://api.jellyfin.org/
|
||||
# Beware, this link can be resource intensive
|
||||
@@ -30,6 +30,7 @@
|
||||
|
||||
machine.wait_for_unit("jellyfin.service")
|
||||
machine.wait_for_open_port(8096)
|
||||
machine.wait_until_succeeds("journalctl --since -1m --unit jellyfin --grep 'Startup complete'")
|
||||
machine.succeed("curl --fail http://localhost:8096/")
|
||||
|
||||
machine.wait_until_succeeds("curl --fail http://localhost:8096/health | grep Healthy")
|
||||
@@ -105,7 +106,7 @@
|
||||
folders_str = machine.succeed(api_get("/Library/VirtualFolders"))
|
||||
folders = json.loads(folders_str)
|
||||
print(folders)
|
||||
return all(folder["RefreshStatus"] == "Idle" for folder in folders)
|
||||
return all(folder.get("RefreshStatus") == "Idle" for folder in folders)
|
||||
|
||||
|
||||
retry(is_refreshed)
|
||||
|
||||
@@ -18,7 +18,7 @@ in
|
||||
virtualHosts.${name} = {
|
||||
enableACME = false;
|
||||
forceSSL = false;
|
||||
enableSSL = false;
|
||||
onlySSL = false;
|
||||
|
||||
locations."/_matrix" = {
|
||||
proxyPass = "http://[::1]:6167";
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
secret-key = "key-name:/COlMSRbehSh6YSruJWjL+R0JXQUKuPEn96fIb+pLokEJUjcK/2Gv8Ai96D7JGay5gDeUTx5wdpPgNvum9YtwA==";
|
||||
public-key = "key-name:BCVI3Cv9hr/AIveg+yRmsuYA3lE8ecHaT4Db7pvWLcA=";
|
||||
in
|
||||
{
|
||||
name = "nixseparatedebuginfod";
|
||||
# A binary cache with debug info and source for gnumake
|
||||
nodes.cache =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.nix-serve = {
|
||||
enable = true;
|
||||
secretKeyFile = builtins.toFile "secret-key" secret-key;
|
||||
openFirewall = true;
|
||||
};
|
||||
system.extraDependencies = [
|
||||
pkgs.gnumake.debug
|
||||
pkgs.gnumake.src
|
||||
pkgs.sl
|
||||
];
|
||||
};
|
||||
# the machine where we need the debuginfo
|
||||
nodes.machine = {
|
||||
imports = [
|
||||
../modules/installer/cd-dvd/channel.nix
|
||||
];
|
||||
services.nixseparatedebuginfod.enable = true;
|
||||
nix.settings = {
|
||||
substituters = lib.mkForce [ "http://cache:5000" ];
|
||||
trusted-public-keys = [ public-key ];
|
||||
};
|
||||
environment.systemPackages = [
|
||||
pkgs.valgrind
|
||||
pkgs.gdb
|
||||
pkgs.gnumake
|
||||
(pkgs.writeShellScriptBin "wait_for_indexation" ''
|
||||
set -x
|
||||
while debuginfod-find debuginfo /run/current-system/sw/bin/make |& grep 'File too large'; do
|
||||
sleep 1;
|
||||
done
|
||||
'')
|
||||
];
|
||||
};
|
||||
testScript = ''
|
||||
start_all()
|
||||
cache.wait_for_unit("nix-serve.service")
|
||||
cache.wait_for_open_port(5000)
|
||||
machine.wait_for_unit("nixseparatedebuginfod.service")
|
||||
machine.wait_for_open_port(1949)
|
||||
|
||||
with subtest("show the config to debug the test"):
|
||||
machine.succeed("nix --extra-experimental-features nix-command show-config |& logger")
|
||||
machine.succeed("cat /etc/nix/nix.conf |& logger")
|
||||
with subtest("check that the binary cache works"):
|
||||
machine.succeed("nix-store -r ${pkgs.sl}")
|
||||
|
||||
# nixseparatedebuginfod needs .drv to associate executable -> source
|
||||
# on regular systems this would be provided by nixos-rebuild
|
||||
machine.succeed("nix-instantiate '<nixpkgs>' -A gnumake")
|
||||
|
||||
machine.succeed("timeout 600 wait_for_indexation")
|
||||
|
||||
# test debuginfod-find
|
||||
machine.succeed("debuginfod-find debuginfo /run/current-system/sw/bin/make")
|
||||
|
||||
# test that gdb can fetch source
|
||||
out = machine.succeed("gdb /run/current-system/sw/bin/make --batch -x ${builtins.toFile "commands" ''
|
||||
start
|
||||
l
|
||||
''}")
|
||||
print(out)
|
||||
assert 'main (int argc, char **argv, char **envp)' in out
|
||||
|
||||
# test that valgrind can display location information
|
||||
# this relies on the fact that valgrind complains about gnumake
|
||||
# because we also ask valgrind to show leak kinds
|
||||
# which are usually false positives.
|
||||
out = machine.succeed("valgrind --leak-check=full --show-leak-kinds=all make --version 2>&1")
|
||||
print(out)
|
||||
assert 'main.c' in out
|
||||
'';
|
||||
}
|
||||
@@ -32,7 +32,7 @@
|
||||
nodes.machine = {
|
||||
services.nixseparatedebuginfod2 = {
|
||||
enable = true;
|
||||
substituter = "http://cache";
|
||||
substituters = [ "http://cache" ];
|
||||
};
|
||||
environment.systemPackages = [
|
||||
pkgs.valgrind
|
||||
@@ -45,7 +45,7 @@
|
||||
cache.wait_for_unit("nginx.service")
|
||||
cache.wait_for_open_port(80)
|
||||
machine.wait_for_unit("nixseparatedebuginfod2.service")
|
||||
machine.wait_for_open_port(1950)
|
||||
machine.wait_for_open_port(1949)
|
||||
|
||||
with subtest("check that the binary cache works"):
|
||||
machine.succeed("nix-store --extra-substituters http://cache --option require-sigs false -r ${pkgs.sl}")
|
||||
|
||||
@@ -60,6 +60,7 @@ melpaBuild (finalAttrs: {
|
||||
eafPythonDeps =
|
||||
ps: with ps; [
|
||||
pysocks
|
||||
pycookiecheat
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
@@ -7,20 +7,25 @@
|
||||
gettext,
|
||||
pkg-config,
|
||||
cscope,
|
||||
ruby,
|
||||
ruby_3_4,
|
||||
tcl,
|
||||
perl,
|
||||
luajit,
|
||||
darwin,
|
||||
libiconv,
|
||||
python3,
|
||||
enablePython ? false,
|
||||
rcodesign,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) optional optionals optionalString;
|
||||
in
|
||||
|
||||
# Try to match MacVim's documented script interface compatibility
|
||||
let
|
||||
#perl = perl540;
|
||||
# Ruby 3.3
|
||||
#ruby = ruby_3_3;
|
||||
# Ruby 3.4
|
||||
ruby = ruby_3_4;
|
||||
|
||||
# Building requires a few system tools to be in PATH.
|
||||
# Some of these we could patch into the relevant source files (such as xcodebuild and
|
||||
@@ -35,13 +40,13 @@ in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "macvim";
|
||||
|
||||
version = "179";
|
||||
version = "181";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "macvim-dev";
|
||||
repo = "macvim";
|
||||
rev = "release-${finalAttrs.version}";
|
||||
hash = "sha256-L9LVXyeA09aMtNf+b/Oo+eLpeVEKTD1/oNWCiFn5FbU=";
|
||||
hash = "sha256-Wdq+eXSaGs+y+75ZbxoNAcyopRkWRHHRm05T0SHBrow=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@@ -49,7 +54,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
buildSymlinks
|
||||
];
|
||||
]
|
||||
++ optional stdenv.isAarch64 rcodesign;
|
||||
buildInputs = [
|
||||
gettext
|
||||
ncurses
|
||||
@@ -58,8 +64,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
ruby
|
||||
tcl
|
||||
perl
|
||||
python3
|
||||
];
|
||||
]
|
||||
++ optional enablePython python3;
|
||||
|
||||
patches = [ ./macvim.patch ];
|
||||
|
||||
@@ -71,14 +77,22 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"--enable-multibyte"
|
||||
"--enable-nls"
|
||||
"--enable-luainterp=dynamic"
|
||||
]
|
||||
++ optionals enablePython [
|
||||
"--enable-python3interp=dynamic"
|
||||
]
|
||||
++ [
|
||||
"--enable-perlinterp=dynamic"
|
||||
"--enable-rubyinterp=dynamic"
|
||||
"--enable-tclinterp=yes"
|
||||
"--without-local-dir"
|
||||
"--with-luajit"
|
||||
"--with-lua-prefix=${luajit}"
|
||||
]
|
||||
++ optionals enablePython [
|
||||
"--with-python3-command=${python3}/bin/python3"
|
||||
]
|
||||
++ [
|
||||
"--with-ruby-command=${ruby}/bin/ruby"
|
||||
"--with-tclsh=${tcl}/bin/tclsh"
|
||||
"--with-tlib=ncurses"
|
||||
@@ -92,6 +106,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
postPatch = ''
|
||||
echo "Patching file src/MacVim/MacVim.xcodeproj/project.pbxproj"
|
||||
sed -e '/Sparkle\.framework/d' -i src/MacVim/MacVim.xcodeproj/project.pbxproj
|
||||
''
|
||||
# Xcode 26.0 sets *_DEPLOYMENT_TARGET env vars for all platforms in shell script build phases.
|
||||
# This breaks invocations of clang in those phases, as they target the wrong platform.
|
||||
# Note: The shell script build phase in question uses /bin/zsh.
|
||||
+ ''
|
||||
substituteInPlace src/MacVim/MacVim.xcodeproj/project.pbxproj \
|
||||
--replace-fail 'make \' $'for x in ''${(k)parameters}; do if [[ $x = *_DEPLOYMENT_TARGET ]]; then [[ $x = MACOSX_DEPLOYMENT_TARGET ]] || unset $x; fi; done\nmake \\'
|
||||
'';
|
||||
|
||||
# This is unfortunate, but we need to use the same compiler as Xcode, but Xcode doesn't provide a
|
||||
@@ -101,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
let
|
||||
# ideally we'd recurse, but we don't need that right now
|
||||
inputs = [ ncurses ] ++ perl.propagatedBuildInputs;
|
||||
ldflags = map (drv: "-L${lib.getLib drv}/lib") inputs;
|
||||
ldflags = map (drv: "-L${lib.getLib drv}/lib") inputs ++ [ "-headerpad_max_install_names" ];
|
||||
cppflags = map (drv: "-isystem ${lib.getDev drv}/include") inputs;
|
||||
in
|
||||
''
|
||||
@@ -131,7 +152,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# as the scheme seems to have the wrong default.
|
||||
+ ''
|
||||
configureFlagsArray+=(
|
||||
XCODEFLAGS="-scheme MacVim -derivedDataPath $NIX_BUILD_TOP/derivedData"
|
||||
XCODEFLAGS="-scheme MacVim -derivedDataPath $NIX_BUILD_TOP/derivedData LDFLAGS='\$(inherited) -headerpad_max_install_names' ENABLE_CODE_COVERAGE=NO"
|
||||
--with-xcodecfg="Release"
|
||||
)
|
||||
'';
|
||||
@@ -149,9 +170,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# Xcode project or pass it as a flag to xcodebuild as well.
|
||||
postConfigure = ''
|
||||
substituteInPlace src/auto/config.mk \
|
||||
--replace " -L${stdenv.cc.libc}/lib" "" \
|
||||
--replace " -L${darwin.libunwind}/lib" "" \
|
||||
--replace " -L${libiconv}/lib" ""
|
||||
--replace-warn " -L${stdenv.cc.libc}/lib" "" \
|
||||
--replace-warn " -L${darwin.libunwind}/lib" "" \
|
||||
--replace-warn " -L${libiconv}/lib" ""
|
||||
|
||||
# All the libraries we stripped have -osx- in their name as of this time.
|
||||
# Assert now that this pattern no longer appears in config.mk.
|
||||
@@ -191,12 +212,21 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libperl=$(dirname $(find ${perl} -name "libperl.dylib"))
|
||||
install_name_tool -add_rpath ${luajit}/lib $exe
|
||||
install_name_tool -add_rpath ${tcl}/lib $exe
|
||||
''
|
||||
+ optionalString enablePython ''
|
||||
install_name_tool -add_rpath ${python3}/lib $exe
|
||||
''
|
||||
+ ''
|
||||
install_name_tool -add_rpath $libperl $exe
|
||||
install_name_tool -add_rpath ${ruby}/lib $exe
|
||||
|
||||
# Remove manpages from tools we aren't providing
|
||||
find $out/Applications/MacVim.app/Contents/man -name evim.1 -delete
|
||||
find $out/Applications/MacVim.app/Contents/man \( -name evim.1 -or -name eview.1 \) -delete
|
||||
rm $out/Applications/MacVim.app/Contents/man/man1/mvim.1
|
||||
''
|
||||
+ optionalString stdenv.isAarch64 ''
|
||||
# Resign the binary and set the linker-signed flag.
|
||||
rcodesign sign --code-signature-flags linker-signed $exe
|
||||
'';
|
||||
|
||||
# We rely on the user's Xcode install to build. It may be located in an arbitrary place, and
|
||||
@@ -212,33 +242,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
description = "Vim - the text editor - for macOS";
|
||||
homepage = "https://macvim.org/";
|
||||
license = licenses.vim;
|
||||
maintainers = [ ];
|
||||
maintainers = with maintainers; [ lilyball ];
|
||||
platforms = platforms.darwin;
|
||||
hydraPlatforms = [ ]; # hydra can't build this as long as we rely on Xcode and sandboxProfile
|
||||
# Needs updating to a newer MacVim for Python and Ruby version support
|
||||
broken = true;
|
||||
knownVulnerabilities = [
|
||||
"CVE-2023-46246"
|
||||
"CVE-2023-48231"
|
||||
"CVE-2023-48232"
|
||||
"CVE-2023-48233"
|
||||
"CVE-2023-48234"
|
||||
"CVE-2023-48235"
|
||||
"CVE-2023-48236"
|
||||
"CVE-2023-48237"
|
||||
"CVE-2023-48706"
|
||||
"CVE-2023-5344"
|
||||
"CVE-2023-5441"
|
||||
"CVE-2023-5535"
|
||||
"CVE-2024-22667"
|
||||
"CVE-2024-41957"
|
||||
"CVE-2024-41965"
|
||||
"CVE-2024-43374"
|
||||
"CVE-2024-47814"
|
||||
"CVE-2025-1215"
|
||||
"CVE-2025-22134"
|
||||
"CVE-2025-24014"
|
||||
"CVE-2025-26603"
|
||||
"CVE-2025-29768"
|
||||
"CVE-2025-53905"
|
||||
"CVE-2025-53906"
|
||||
|
||||
@@ -199,16 +199,3 @@ index 6e33142..6185f45 100644
|
||||
#ifdef AMIGA
|
||||
# include "os_amiga.h"
|
||||
#endif
|
||||
diff --git a/src/vimtutor b/src/vimtutor
|
||||
index 3b154f2..e89f260 100755
|
||||
--- a/src/vimtutor
|
||||
+++ b/src/vimtutor
|
||||
@@ -16,7 +16,7 @@ seq="vim vim81 vim80 vim8 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
|
||||
if test "$1" = "-g"; then
|
||||
# Try to use the GUI version of Vim if possible, it will fall back
|
||||
# on Vim if Gvim is not installed.
|
||||
- seq="gvim gvim81 gvim80 gvim8 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
|
||||
+ seq="mvim gvim gvim81 gvim80 gvim8 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
|
||||
shift
|
||||
fi
|
||||
|
||||
|
||||
@@ -18552,6 +18552,19 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
vim-hy = buildVimPlugin {
|
||||
pname = "vim-hy";
|
||||
version = "2024-10-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hylang";
|
||||
repo = "vim-hy";
|
||||
rev = "ab1699bfa636e7355ac0030189331251c49c7d61";
|
||||
sha256 = "09v83a6ybj73043acpm2nps5s56sqg2pz456b4qgz2r7zjlgx5r9";
|
||||
};
|
||||
meta.homepage = "https://github.com/hylang/vim-hy/";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
vim-hybrid = buildVimPlugin {
|
||||
pname = "vim-hybrid";
|
||||
version = "2016-01-05";
|
||||
|
||||
@@ -1424,6 +1424,7 @@ https://github.com/ntk148v/vim-horizon/,,
|
||||
https://github.com/jonsmithers/vim-html-template-literals/,,
|
||||
https://github.com/humanoid-colors/vim-humanoid-colorscheme/,,
|
||||
https://github.com/vim-utils/vim-husk/,,
|
||||
https://github.com/hylang/vim-hy/,HEAD,
|
||||
https://github.com/w0ng/vim-hybrid/,,
|
||||
https://github.com/kristijanhusak/vim-hybrid-material/,,
|
||||
https://github.com/noc7c9/vim-iced-coffee-script/,,
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mame2003";
|
||||
version = "0-unstable-2025-08-26";
|
||||
version = "0-unstable-2025-10-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "mame2003-libretro";
|
||||
rev = "dfddf4db86a3acd5997ce9419c7afd00ff6587a0";
|
||||
hash = "sha256-GJRawFdlHCfBRiErJJ3ZvZDF1gvYVkuQvKXV1qUCCRQ=";
|
||||
rev = "3570605767a447c13b087a5946189bcbafe11e1d";
|
||||
hash = "sha256-BcPiNYEi6uE8aSpPDNgZ8vmzSnZJUparEM3CEdexbPo=";
|
||||
};
|
||||
|
||||
# Fix build with GCC 14
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "ppsspp";
|
||||
version = "0-unstable-2025-10-17";
|
||||
version = "0-unstable-2025-10-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrydgard";
|
||||
repo = "ppsspp";
|
||||
rev = "4ccf013d3b52314b935d8fc49b70f08d546aa48b";
|
||||
hash = "sha256-e1iqnhJQKYXddp3VwpAPg6eHBnDHOFvo1b4evp8f8X4=";
|
||||
rev = "28790c19af7ddfa822c4152a3cae4a7fb6c06bc7";
|
||||
hash = "sha256-m1qmgr92Ni8wAYer6kIdcu+BUiBSROFcSC/M3v/JOmA=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
cmake,
|
||||
ninja,
|
||||
qtbase,
|
||||
@@ -19,13 +20,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "CopyQ";
|
||||
version = "11.0.0";
|
||||
version = "13.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hluk";
|
||||
repo = "CopyQ";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-/t+8YsqeX0tlxwQDDNTalttCDIgGhpLbzYe3UqY04xM=";
|
||||
hash = "sha256-wxjUL5mGXAMNVGP+dAh1NrE9tw71cJW9zmLsaCVphTo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -48,12 +49,21 @@ stdenv.mkDerivation rec {
|
||||
kdePackages.kconfig
|
||||
kdePackages.kstatusnotifieritem
|
||||
kdePackages.knotifications
|
||||
kdePackages.kguiaddons
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "WITH_QT6" true)
|
||||
];
|
||||
|
||||
patches = [
|
||||
# https://github.com/hluk/CopyQ/pull/3268
|
||||
(fetchpatch2 {
|
||||
url = "https://github.com/hluk/CopyQ/commit/103903593c37c9db5406d276e0097fbf18d2a8c4.patch?full_index=1";
|
||||
hash = "sha256-zywE6ntMw+WvTyilXwvd4lfQRAAB9R/AGpwtwwPFZZE=";
|
||||
})
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://hluk.github.io/CopyQ";
|
||||
description = "Clipboard Manager with Advanced Features";
|
||||
|
||||
@@ -25,6 +25,10 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-B3RcYr/b8pZTJV35BWuqmWbq+C2WkkcwBR0oNaUXPRw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./remove-Werror.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
qmake
|
||||
pkg-config
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --git a/kiwix-desktop.pro b/kiwix-desktop.pro
|
||||
index c1f4f93..bf10828 100644
|
||||
--- a/kiwix-desktop.pro
|
||||
+++ b/kiwix-desktop.pro
|
||||
@@ -27,7 +27,6 @@ QMAKE_CXXFLAGS += -std=c++17
|
||||
QMAKE_LFLAGS += -std=c++17
|
||||
|
||||
!win32 {
|
||||
- QMAKE_CXXFLAGS += -Werror
|
||||
equals(QT_MAJOR_VERSION, 6):equals(QT_MINOR_VERSION, 6) {
|
||||
# Fail the build on errors, except for 'template-id-cdtor' due to a problem with Qt headers.
|
||||
# This can be removed when the Ubuntu package is fixed.
|
||||
@@ -353,6 +353,15 @@
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-u/ycUCnEYlCBrDcI0VCkob4CGXrXYdGWwiw5EeJyuiw="
|
||||
},
|
||||
"e-breuninger_netbox": {
|
||||
"hash": "sha256-iCaCt8ZbkxCk43QEyj3PeHYuKPCPVU2oQ78aumH/l6k=",
|
||||
"homepage": "https://registry.terraform.io/providers/e-breuninger/netbox",
|
||||
"owner": "e-breuninger",
|
||||
"repo": "terraform-provider-netbox",
|
||||
"rev": "v5.0.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-Q3H/6mpkWn1Gw0NRMtKtkBRGHjPJZGBFdGwfalyQ4Z0="
|
||||
},
|
||||
"equinix_equinix": {
|
||||
"hash": "sha256-QE8ukiQHZqhSsZyFnInIpnGvsSlFuFMun7paK/Z3HTM=",
|
||||
"homepage": "https://registry.terraform.io/providers/equinix/equinix",
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index d12bd0db..f904000b 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -19,7 +19,7 @@
|
||||
## along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
|
||||
-cmake_minimum_required(VERSION 2.8.6)
|
||||
+cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(DSView)
|
||||
|
||||
@@ -31,6 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
patches = [
|
||||
# Fix absolute install paths
|
||||
./install.patch
|
||||
./cmake4.patch
|
||||
];
|
||||
|
||||
# /build/source/libsigrok4DSL/strutil.c:343:19: error: implicit declaration of function 'strcasecmp'; did you mean 'g_strcasecmp'? []
|
||||
|
||||
@@ -37,7 +37,6 @@ let
|
||||
|
||||
plugins = lib.mergeAttrsList [
|
||||
{ hy3 = import ./hy3.nix; }
|
||||
{ hycov = import ./hycov.nix; }
|
||||
{ hypr-dynamic-cursors = import ./hypr-dynamic-cursors.nix; }
|
||||
{ hyprfocus = import ./hyprfocus.nix; }
|
||||
{ hyprgrass = import ./hyprgrass.nix; }
|
||||
@@ -45,6 +44,7 @@ let
|
||||
{ hyprsplit = import ./hyprsplit.nix; }
|
||||
(import ./hyprland-plugins.nix)
|
||||
(lib.optionalAttrs config.allowAliases {
|
||||
hycov = throw "hyprlandPlugins.hycov has been removed because it has been marked as broken since September 2024."; # Added 2025-10-12
|
||||
hyprscroller = throw "hyprlandPlugins.hyprscroller has been removed as the upstream project is deprecated. Consider using `hyprlandPlugins.hyprscrolling`."; # Added 2025-05-09
|
||||
})
|
||||
];
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
mkHyprlandPlugin,
|
||||
cmake,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
mkHyprlandPlugin (finalAttrs: {
|
||||
pluginName = "hycov";
|
||||
version = "0.41.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DreamMaoMao";
|
||||
repo = "hycov";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-NRnxbkuiq1rQ+uauo7D+CEe73iGqxsWxTQa+1SEPnXQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Clients overview for Hyprland plugin";
|
||||
homepage = "https://github.com/DreamMaoMao/hycov";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ donovanglover ];
|
||||
platforms = lib.platforms.linux;
|
||||
broken = true; # Doesn't work after Hyprland v0.41.2 https://gitee.com/DreamMaoMao/hycov/issues/IANYC8#note_31512295_link
|
||||
};
|
||||
})
|
||||
@@ -1,28 +1,28 @@
|
||||
{
|
||||
"stable": {
|
||||
"linux": {
|
||||
"version": "8.11.12",
|
||||
"version": "8.11.14",
|
||||
"sources": {
|
||||
"x86_64": {
|
||||
"url": "https://downloads.1password.com/linux/tar/stable/x86_64/1password-8.11.12.x64.tar.gz",
|
||||
"hash": "sha256-znzmaEYOLVw6nUBk20oMdSngkO8iiSTHvM1y/t3Z55Y="
|
||||
"url": "https://downloads.1password.com/linux/tar/stable/x86_64/1password-8.11.14.x64.tar.gz",
|
||||
"hash": "sha256-LdGw2AVDiQXwGAz9abEeoCosQUdr5q978OMo+kXATIc="
|
||||
},
|
||||
"aarch64": {
|
||||
"url": "https://downloads.1password.com/linux/tar/stable/aarch64/1password-8.11.12.arm64.tar.gz",
|
||||
"hash": "sha256-ENuvB8GExhHWjJ97JV0qc2cIn9HqXb202dzIxu1fz2A="
|
||||
"url": "https://downloads.1password.com/linux/tar/stable/aarch64/1password-8.11.14.arm64.tar.gz",
|
||||
"hash": "sha256-U+wJEH5NwWuPV+Oy6RJ+dki4lJB2A9aOVjvRSkm6zfY="
|
||||
}
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"version": "8.11.12",
|
||||
"version": "8.11.14",
|
||||
"sources": {
|
||||
"x86_64": {
|
||||
"url": "https://downloads.1password.com/mac/1Password-8.11.12-x86_64.zip",
|
||||
"hash": "sha256-mr7DsYIEh21pHQX0cq9JlTZ4lHhkyYHCmwMaxEiK+5g="
|
||||
"url": "https://downloads.1password.com/mac/1Password-8.11.14-x86_64.zip",
|
||||
"hash": "sha256-GXbwYxFNw6R8UdKxPL6k2lQF4uabFRgaEKNaFzecnZ0="
|
||||
},
|
||||
"aarch64": {
|
||||
"url": "https://downloads.1password.com/mac/1Password-8.11.12-aarch64.zip",
|
||||
"hash": "sha256-34ylS5Xq9By6nuUkEmLoi0wR5hAQx1vBhrYFq4mjSDs="
|
||||
"url": "https://downloads.1password.com/mac/1Password-8.11.14-aarch64.zip",
|
||||
"hash": "sha256-rViZC9b6kOaqkNNJibABmWu0Z5PEtBQE0jGtaUdd4LY="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
pname = "airwindows";
|
||||
version = "0-unstable-2025-10-05";
|
||||
version = "0-unstable-2025-10-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "airwindows";
|
||||
repo = "airwindows";
|
||||
rev = "5889ed48beefd556adca76ed3e4b1b4982531dbd";
|
||||
hash = "sha256-zpuzKpuYGe0xpUrBeWpaCYEBy9mGOX5R3LAeiWPCQ3s=";
|
||||
rev = "1b0b4d56623e464db038e88cb87d1703b5aa0c63";
|
||||
hash = "sha256-u83unbD3qf3OudMeOq20Iw2K3SOsKrGLekYCiVZTzF8=";
|
||||
};
|
||||
|
||||
# we patch helpers because honestly im spooked out by where those variables
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "albert";
|
||||
version = "0.32.1";
|
||||
version = "33.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "albertlauncher";
|
||||
repo = "albert";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-v2SMY0KGFwwybsiMu1W1wBWdyoDEFF3hWd4LeaT8Nts=";
|
||||
hash = "sha256-zHLyvFzLR7Ryk6eoD+Lp+w4bIj7MAeREK0YzRXYnx6c=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
|
||||
let
|
||||
pname = "altair";
|
||||
version = "8.2.5";
|
||||
version = "8.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/imolorhe/altair/releases/download/v${version}/altair_${version}_x86_64_linux.AppImage";
|
||||
sha256 = "sha256-P0CVJFafrsvWzDWyJZEds812m3yUDpo4eocysEIQqrw=";
|
||||
sha256 = "sha256-uLqtrF5WWJ5+6bN/h4u/vdvTlbQtZID1osujfuJad4U=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extract { inherit pname version src; };
|
||||
|
||||
@@ -79,6 +79,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postPatch = ''
|
||||
echo "find_package(Threads)" >> cmake/options.cmake
|
||||
|
||||
substituteInPlace src/libs/ec/abstracts/CMakeLists.txt \
|
||||
--replace-fail "CMAKE_MINIMUM_REQUIRED (VERSION 2.8)" "CMAKE_MINIMUM_REQUIRED (VERSION 3.10)"
|
||||
'';
|
||||
|
||||
# aMule will try to `dlopen' libupnp and libixml, so help it
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
udevCheckHook,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "android-udev-rules";
|
||||
version = "20250525";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "M0Rf30";
|
||||
repo = "android-udev-rules";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-4ODU9EoVYV+iSu6+M9ePed45QkOZgWkDUlFTlWJ8ttQ=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D 51-android.rules $out/lib/udev/rules.d/51-android.rules
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
udevCheckHook
|
||||
];
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/M0Rf30/android-udev-rules";
|
||||
description = "Android udev rules list aimed to be the most comprehensive on the net";
|
||||
longDescription = ''
|
||||
Android udev rules list aimed to be the most comprehensive on the net.
|
||||
To use on NixOS, simply add this package to services.udev.packages:
|
||||
```nix
|
||||
services.udev.packages = [ pkgs.android-udev-rules ];
|
||||
```
|
||||
'';
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = [ ];
|
||||
teams = [ lib.teams.android ];
|
||||
};
|
||||
})
|
||||
@@ -888,5 +888,183 @@
|
||||
"hash": "sha256-o4tCuCAIgAYg/Li3wTs12mVWr5C/4vbwu1zi+kJ9d6w=",
|
||||
"version": "11417.121.6"
|
||||
}
|
||||
},
|
||||
"26.0": {
|
||||
"CarbonHeaders": {
|
||||
"hash": "sha256-nIPXnLr21yVnpBhx9K5q3l/nPARA6JL/dED08MeyhP8=",
|
||||
"version": "18.1"
|
||||
},
|
||||
"CommonCrypto": {
|
||||
"hash": "sha256-+qAwL6+s7di9cX/qXtapLkjCFoDuZaSYltRJEG4qekM=",
|
||||
"version": "600035"
|
||||
},
|
||||
"IOAudioFamily": {
|
||||
"hash": "sha256-A3iiAjjP29VdjMj40tLS5Q/ni4qeh9bBpnmNzeG2pIY=",
|
||||
"version": "700.2"
|
||||
},
|
||||
"IOBDStorageFamily": {
|
||||
"hash": "sha256-OcQUJ3nEfrpvWX/npnedJ4PECIGWFSLiM0PKoiH911w=",
|
||||
"version": "26"
|
||||
},
|
||||
"IOCDStorageFamily": {
|
||||
"hash": "sha256-p/2qM5zjXFDRb/DISpEHxQEdvmuLlRGt/Ygc71Yu2rI=",
|
||||
"version": "62"
|
||||
},
|
||||
"IODVDStorageFamily": {
|
||||
"hash": "sha256-1Sa8aZBGNtqJBNHva+YXxET6Wcdm2PgVrTzYT/8qrN4=",
|
||||
"version": "46"
|
||||
},
|
||||
"IOFWDVComponents": {
|
||||
"hash": "sha256-WkfkWnzRupEh20U7vjsTta89clhus6GTkOpXQWXw/bM=",
|
||||
"version": "208"
|
||||
},
|
||||
"IOFireWireAVC": {
|
||||
"hash": "sha256-qR9lSTa7PN5Z9Nis4tfuXlcZGMIU48dete/NPD0UBbE=",
|
||||
"version": "436"
|
||||
},
|
||||
"IOFireWireFamily": {
|
||||
"hash": "sha256-hmErAXjLWIelqJaCrB8J4IiIxyB7S6EHFY+AY9YhmKQ=",
|
||||
"version": "492"
|
||||
},
|
||||
"IOFireWireSBP2": {
|
||||
"hash": "sha256-Xk+PDnUaO9q46nQwHwTKf/QXtGclfs0wTWiUbcV7e4s=",
|
||||
"version": "454"
|
||||
},
|
||||
"IOFireWireSerialBusProtocolTransport": {
|
||||
"hash": "sha256-cM/VFhVWNVwdJYk+mme0UYttQd7eJwd7Hlo7KNRyHY0=",
|
||||
"version": "262"
|
||||
},
|
||||
"IOGraphics": {
|
||||
"hash": "sha256-iysZE42mOKZbFxSZBNspaBTCRKEKK38DFGBxZWQxZxI=",
|
||||
"version": "599"
|
||||
},
|
||||
"IOHIDFamily": {
|
||||
"hash": "sha256-YLnabX90g4Q8LxjwVuJF6KODCDxychWV+VJaNG9d8fI=",
|
||||
"version": "2222.0.24"
|
||||
},
|
||||
"IOKitUser": {
|
||||
"hash": "sha256-ngwi8YMUqE0q8j7Lr5cqJwi2V+IDu3ie3bduotHIUJU=",
|
||||
"version": "100222.0.4"
|
||||
},
|
||||
"IONetworkingFamily": {
|
||||
"hash": "sha256-ZF5ML41Y1l1liQn32qTkcl4mMvx9Xdizb9VgvTzVTL4=",
|
||||
"version": "186"
|
||||
},
|
||||
"IOSerialFamily": {
|
||||
"hash": "sha256-wVS4QTx6MBOS0VrwyCZ3s5Usezwaf8rWzmNnfdDTXTU=",
|
||||
"version": "93"
|
||||
},
|
||||
"IOStorageFamily": {
|
||||
"hash": "sha256-1FKSF622qeXPGngA3UmQ2M/IU1pdlMoYBPbXytUFDaQ=",
|
||||
"version": "331"
|
||||
},
|
||||
"IOUSBFamily": {
|
||||
"hash": "sha256-Z0E3TfKP49toYo1Fo9kElRap8CZ+mVDHy5RIexgJTpA=",
|
||||
"version": "630.4.5"
|
||||
},
|
||||
"Libc": {
|
||||
"hash": "sha256-k+HQ+qgye0ORFm0hU8WzE4ysbbEoFZ7wcbVl5giDH/E=",
|
||||
"version": "1725.0.11"
|
||||
},
|
||||
"Libinfo": {
|
||||
"hash": "sha256-4InBEPi0n2EMo/8mIBib1Im4iTKRcRJ4IlAcLCigVGk=",
|
||||
"version": "600"
|
||||
},
|
||||
"Libm": {
|
||||
"hash": "sha256-p4BndAag9d0XSMYWQ+c4myGv5qXbKx5E1VghudSbpTk=",
|
||||
"version": "2026"
|
||||
},
|
||||
"Libnotify": {
|
||||
"hash": "sha256-p8cJZlBYOFmI1NDHXGYjgcv8z9Ldc1amZuYlxxJfeVY=",
|
||||
"version": "344.0.1"
|
||||
},
|
||||
"Librpcsvc": {
|
||||
"hash": "sha256-UWYdCQ9QsBqwM01bWr+igINAHSdSluB/FrOclC5AjTI=",
|
||||
"version": "31"
|
||||
},
|
||||
"Libsystem": {
|
||||
"hash": "sha256-/NlSwPaoTVx+bl9hYsfz3C5MuLdqGv4vdAh0KDbDKmY=",
|
||||
"version": "1356"
|
||||
},
|
||||
"OpenDirectory": {
|
||||
"hash": "sha256-6fSl8PasCZSBfe0ftaePcBuSEO3syb6kK+mfDI6iR7A=",
|
||||
"version": "146"
|
||||
},
|
||||
"Security": {
|
||||
"hash": "sha256-oxOvZsDoNYZNiWf+MASHrR4Q2o5oaqvK2We51hH7CO8=",
|
||||
"version": "61901.0.87.0.1"
|
||||
},
|
||||
"architecture": {
|
||||
"hash": "sha256-PRNUrhzSOrwmxSPkKmV0LV7yEIik65sdkfKdBqcwFhU=",
|
||||
"version": "282"
|
||||
},
|
||||
"configd": {
|
||||
"hash": "sha256-58or+OQP788UgQKO7Y8k8pY/enaSqH971ks7xCPu8fA=",
|
||||
"version": "1385.0.7"
|
||||
},
|
||||
"copyfile": {
|
||||
"hash": "sha256-I9uDi5BDQKa7mO3XpHxv0d6PiROW2ueZ3vGfrsG0OJo=",
|
||||
"version": "230.0.1.0.1"
|
||||
},
|
||||
"dtrace": {
|
||||
"hash": "sha256-5HpH6Cg8vWWzOX5ADD//izKDvqGnzV05Giju8lmGeyA=",
|
||||
"version": "413"
|
||||
},
|
||||
"dyld": {
|
||||
"hash": "sha256-jzoFLwbms0rUwzyjYif/r6Rmr4kyn+as/bhc4paEPeY=",
|
||||
"version": "1323.3"
|
||||
},
|
||||
"eap8021x": {
|
||||
"hash": "sha256-17bseWT4OWMA8hF+YSDDjxhVyJpbpP2xwv8dGti1YoM=",
|
||||
"version": "368.0.3"
|
||||
},
|
||||
"hfs": {
|
||||
"hash": "sha256-OkgqZ03gwn2hTuHxZrPDmQOrY4Dwu7MrX+BfG+PTgvE=",
|
||||
"version": "704.0.3.0.2"
|
||||
},
|
||||
"launchd": {
|
||||
"hash": "sha256-8mW9bnuHmRXCx9py8Wy28C5b2QPICW0rlAps5njYa00=",
|
||||
"version": "842.1.4"
|
||||
},
|
||||
"libclosure": {
|
||||
"hash": "sha256-pvwfcbeEJmTEPdt6/lgVswiabLRG+sMN6VT5FwG7C4Q=",
|
||||
"version": "96"
|
||||
},
|
||||
"libdispatch": {
|
||||
"hash": "sha256-L0+Ho9dAlMXVpqFEGIcIMsJc0gULckRulUImNEZe5MU=",
|
||||
"version": "1542.0.4"
|
||||
},
|
||||
"libmalloc": {
|
||||
"hash": "sha256-482hgm1ESr3LWC/JhuQNGNu9smsa2Eap49/eH+YNAio=",
|
||||
"version": "792.1.1"
|
||||
},
|
||||
"libplatform": {
|
||||
"hash": "sha256-wGZ2Im81mRXx6epgj/tbOJpg89CEbAr0Z8oFEpkyNMU=",
|
||||
"version": "359.1.2"
|
||||
},
|
||||
"libpthread": {
|
||||
"hash": "sha256-VuMpQjxuMsdHsFq0q6QIWSWi88gVF2jNzIfti20Gkbw=",
|
||||
"version": "539"
|
||||
},
|
||||
"mDNSResponder": {
|
||||
"hash": "sha256-iRqCpPAQDRjgRbRz3s6q2oyzq6xo+w4FTBai79104Zo=",
|
||||
"version": "2881.0.25"
|
||||
},
|
||||
"objc4": {
|
||||
"hash": "sha256-Nlgr36yLvGkUJIEFQ5w8FAB0r2syEsRTw0KuUShNT8E=",
|
||||
"version": "950"
|
||||
},
|
||||
"ppp": {
|
||||
"hash": "sha256-FzHZ05o7JxwgTqz0e3D68b/DiLu2x2ErzGMh0U78fLo=",
|
||||
"version": "1020.1.1"
|
||||
},
|
||||
"removefile": {
|
||||
"hash": "sha256-Z5UD0mk/s80CQB0PZWDzSl2JWXmnVmwUvlNb28+hR3k=",
|
||||
"version": "84"
|
||||
},
|
||||
"xnu": {
|
||||
"hash": "sha256-Cuf7kPtsn4CPXqyZmxVsJlA5i+Ikryp8ezJyGrvT63c=",
|
||||
"version": "12377.1.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,5 +38,13 @@
|
||||
],
|
||||
"version": "15.5",
|
||||
"hash": "sha256-HBiSJuw1XBUK5R/8Sj65c3rftSEvQl/O9ZZVp/g1Amo="
|
||||
},
|
||||
"26": {
|
||||
"urls": [
|
||||
"https://swcdn.apple.com/content/downloads/27/62/093-35114-A_AAH24ZZQB5/yn87ru9qe9225m8hwq2ic3hjy5yc5vw7h9/CLTools_macOSNMOS_SDK.pkg",
|
||||
"https://web.archive.org/web/20250915230423/https://swcdn.apple.com/content/downloads/27/62/093-35114-A_AAH24ZZQB5/yn87ru9qe9225m8hwq2ic3hjy5yc5vw7h9/CLTools_macOSNMOS_SDK.pkg"
|
||||
],
|
||||
"version": "26.0",
|
||||
"hash": "sha256-54UtisDXHCxs7vO4fZSWOYwxLbdouLxWwGisez+tlAc="
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
louvain-community
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "cmake_minimum_required(VERSION 3.3 FATAL_ERROR)" "cmake_minimum_required(VERSION 3.10)"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "CNF minimizer and minimal independent set calculator";
|
||||
homepage = "https://github.com/meelgroup/arjun";
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 12d6e557c..cc004555d 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -321,11 +321,6 @@ if(NOT TARGET nonstd::span-lite)
|
||||
|
||||
endif()
|
||||
|
||||
-af_dep_check_and_populate(${assets_prefix}
|
||||
- URI https://github.com/arrayfire/assets.git
|
||||
- REF master
|
||||
-)
|
||||
-set(ASSETS_DIR ${${assets_prefix}_SOURCE_DIR})
|
||||
|
||||
# when crosscompiling use the bin2cpp file from the native bin directory
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
@@ -473,18 +468,6 @@ install(FILES ${ArrayFire_BINARY_DIR}/include/af/version.h
|
||||
DESTINATION "${AF_INSTALL_INC_DIR}/af/"
|
||||
COMPONENT headers)
|
||||
|
||||
-# install the examples irrespective of the AF_BUILD_EXAMPLES value
|
||||
-# only the examples source files are installed, so the installation of these
|
||||
-# source files does not depend on AF_BUILD_EXAMPLES
|
||||
-# when AF_BUILD_EXAMPLES is OFF, the examples source is installed without
|
||||
-# building the example executables
|
||||
-install(DIRECTORY examples/ #NOTE The slash at the end is important
|
||||
- DESTINATION ${AF_INSTALL_EXAMPLE_DIR}
|
||||
- COMPONENT examples)
|
||||
-
|
||||
-install(DIRECTORY ${ASSETS_DIR}/examples/ #NOTE The slash at the end is important
|
||||
- DESTINATION ${AF_INSTALL_EXAMPLE_DIR}
|
||||
- COMPONENT examples)
|
||||
|
||||
install(DIRECTORY "${ArrayFire_SOURCE_DIR}/LICENSES/"
|
||||
DESTINATION LICENSES
|
||||
@@ -1,31 +0,0 @@
|
||||
diff --git a/CMakeModules/AFconfigure_deps_vars.cmake b/CMakeModules/AFconfigure_deps_vars.cmake
|
||||
index aac332f5a..e9e711159 100644
|
||||
--- a/CMakeModules/AFconfigure_deps_vars.cmake
|
||||
+++ b/CMakeModules/AFconfigure_deps_vars.cmake
|
||||
@@ -94,7 +94,7 @@ macro(af_dep_check_and_populate dep_prefix)
|
||||
URL ${adcp_args_URI}
|
||||
URL_HASH ${adcp_args_REF}
|
||||
DOWNLOAD_COMMAND \"\"
|
||||
- UPDATE_DISCONNECTED ON
|
||||
+ UPDATE_COMMAND \"\"
|
||||
SOURCE_DIR "${ArrayFire_SOURCE_DIR}/extern/${dep_prefix}-src"
|
||||
BINARY_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-build"
|
||||
SUBBUILD_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-subbuild"
|
||||
@@ -104,7 +104,7 @@ macro(af_dep_check_and_populate dep_prefix)
|
||||
QUIET
|
||||
URL ${adcp_args_URI}
|
||||
DOWNLOAD_COMMAND \"\"
|
||||
- UPDATE_DISCONNECTED ON
|
||||
+ UPDATE_COMMAND \"\"
|
||||
SOURCE_DIR "${ArrayFire_SOURCE_DIR}/extern/${dep_prefix}-src"
|
||||
BINARY_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-build"
|
||||
SUBBUILD_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-subbuild"
|
||||
@@ -116,7 +116,7 @@ macro(af_dep_check_and_populate dep_prefix)
|
||||
GIT_REPOSITORY ${adcp_args_URI}
|
||||
GIT_TAG ${adcp_args_REF}
|
||||
DOWNLOAD_COMMAND \"\"
|
||||
- UPDATE_DISCONNECTED ON
|
||||
+ UPDATE_COMMAND \"\"
|
||||
SOURCE_DIR "${ArrayFire_SOURCE_DIR}/extern/${dep_prefix}-src"
|
||||
BINARY_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-build"
|
||||
SUBBUILD_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-subbuild"
|
||||
@@ -1,248 +0,0 @@
|
||||
{
|
||||
blas,
|
||||
boost,
|
||||
clblast,
|
||||
cmake,
|
||||
config,
|
||||
cudaPackages,
|
||||
fetchFromGitHub,
|
||||
fftw,
|
||||
fftwFloat,
|
||||
fmt_9,
|
||||
forge,
|
||||
freeimage,
|
||||
gtest,
|
||||
lapack,
|
||||
lib,
|
||||
libGL,
|
||||
mesa,
|
||||
ocl-icd,
|
||||
opencl-clhpp,
|
||||
pkg-config,
|
||||
python3,
|
||||
span-lite,
|
||||
stdenv,
|
||||
# NOTE: We disable tests by default, because they cannot be run easily on
|
||||
# non-NixOS systems when either CUDA or OpenCL support is enabled (CUDA and
|
||||
# OpenCL need access to drivers that are installed outside of Nix on
|
||||
# non-NixOS systems).
|
||||
doCheck ? false,
|
||||
cpuSupport ? true,
|
||||
cudaSupport ? config.cudaSupport,
|
||||
# OpenCL needs mesa which is broken on Darwin
|
||||
openclSupport ? !stdenv.hostPlatform.isDarwin,
|
||||
# This argument lets one run CUDA & OpenCL tests on non-NixOS systems by
|
||||
# telling Nix where to find the drivers. If you know the version of the
|
||||
# Nvidia driver that is installed on your system, you can do:
|
||||
#
|
||||
# arrayfire.override {
|
||||
# nvidiaComputeDrivers =
|
||||
# callPackage
|
||||
# (prev.linuxPackages.nvidiaPackages.mkDriver {
|
||||
# version = cudaVersion; # our driver version
|
||||
# sha256_64bit = cudaHash; # sha256 of the .run binary
|
||||
# useGLVND = false;
|
||||
# useProfiles = false;
|
||||
# useSettings = false;
|
||||
# usePersistenced = false;
|
||||
# ...
|
||||
# })
|
||||
# { libsOnly = true; };
|
||||
# }
|
||||
nvidiaComputeDrivers ? null,
|
||||
fetchpatch,
|
||||
}:
|
||||
|
||||
# ArrayFire compiles with 64-bit BLAS, but some tests segfault or throw
|
||||
# exceptions, which means that it isn't really supported yet...
|
||||
assert blas.isILP64 == false;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "arrayfire";
|
||||
version = "3.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "arrayfire";
|
||||
repo = "arrayfire";
|
||||
rev = "v3.9.0";
|
||||
hash = "sha256-80fxdkaeAQ5u0X/UGPaI/900cdkZ/vXNcOn5tkZ+C3Y=";
|
||||
};
|
||||
|
||||
# We cannot use the clfft from Nixpkgs because ArrayFire maintain a fork
|
||||
# of clfft where they've modified the CMake build system, and the
|
||||
# CMakeLists.txt of ArrayFire assumes that we're using that fork.
|
||||
#
|
||||
# This can be removed once ArrayFire upstream their changes.
|
||||
clfft = fetchFromGitHub {
|
||||
owner = "arrayfire";
|
||||
repo = "clfft";
|
||||
rev = "760096b37dcc4f18ccd1aac53f3501a83b83449c";
|
||||
sha256 = "sha256-vJo1YfC2AJIbbRj/zTfcOUmi0Oj9v64NfA9MfK8ecoY=";
|
||||
};
|
||||
glad = fetchFromGitHub {
|
||||
owner = "arrayfire";
|
||||
repo = "glad";
|
||||
rev = "ef8c5508e72456b714820c98e034d9a55b970650";
|
||||
sha256 = "sha256-u9Vec7XLhE3xW9vzM7uuf+b18wZsh/VMtGbB6nMVlno=";
|
||||
};
|
||||
threads = fetchFromGitHub {
|
||||
owner = "arrayfire";
|
||||
repo = "threads";
|
||||
rev = "4d4a4f0384d1ac2f25b2c4fc1d57b9e25f4d6818";
|
||||
sha256 = "sha256-qqsT9woJDtQvzuV323OYXm68pExygYs/+zZNmg2sN34=";
|
||||
};
|
||||
test-data = fetchFromGitHub {
|
||||
owner = "arrayfire";
|
||||
repo = "arrayfire-data";
|
||||
rev = "a5f533d7b864a4d8f0dd7c9aaad5ff06018c4867";
|
||||
sha256 = "sha256-AWzhsrDXyZrQN2bd0Ng/XlE8v02x7QWTiFTyaAuRXSw=";
|
||||
};
|
||||
# ArrayFire fails to compile with newer versions of spdlog, so we can't use
|
||||
# the one in Nixpkgs. Once they upgrade, we can switch to using spdlog from
|
||||
# Nixpkgs.
|
||||
spdlog = fetchFromGitHub {
|
||||
owner = "gabime";
|
||||
repo = "spdlog";
|
||||
rev = "v1.9.2";
|
||||
hash = "sha256-GSUdHtvV/97RyDKy8i+ticnSlQCubGGWHg4Oo+YAr8Y=";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_TESTING=ON"
|
||||
# We do not build examples, because building tests already takes long enough...
|
||||
"-DAF_BUILD_EXAMPLES=OFF"
|
||||
# No need to build forge, because it's a separate package
|
||||
"-DAF_BUILD_FORGE=OFF"
|
||||
"-DAF_COMPUTE_LIBRARY='FFTW/LAPACK/BLAS'"
|
||||
# Prevent ArrayFire from trying to download some matrices from the Internet
|
||||
"-DAF_TEST_WITH_MTX_FILES=OFF"
|
||||
# Have to use the header-only version, because we're not using the version
|
||||
# from Nixpkgs. Otherwise, libaf.so won't be able to find the shared
|
||||
# library, because ArrayFire's CMake files do not run the install step of
|
||||
# spdlog.
|
||||
"-DAF_WITH_SPDLOG_HEADER_ONLY=ON"
|
||||
(if cpuSupport then "-DAF_BUILD_CPU=ON" else "-DAF_BUILD_CPU=OFF")
|
||||
(if openclSupport then "-DAF_BUILD_OPENCL=ON" else "-DAF_BUILD_OPENCL=OFF")
|
||||
(if cudaSupport then "-DAF_BUILD_CUDA=ON" else "-DAF_BUILD_CUDA=OFF")
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
# ArrayFire use deprecated FindCUDA in their CMake files, so we help CMake
|
||||
# locate cudatoolkit.
|
||||
"-DCUDA_LIBRARIES_PATH=${cudaPackages.cudatoolkit}/lib"
|
||||
];
|
||||
|
||||
# ArrayFire have a repo with assets for the examples. Since we don't build
|
||||
# the examples anyway, remove the dependency on assets.
|
||||
patches = [
|
||||
./no-assets.patch
|
||||
./no-download.patch
|
||||
# Fix for newer opencl-clhpp. Remove with the next release.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/arrayfire/arrayfire/pull/3562.patch";
|
||||
hash = "sha256-AdWlpcRTn9waNAaVpZfK6sJ/xBQLiBC4nBeEYiGNN50";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
mkdir -p ./extern/af_glad-src
|
||||
mkdir -p ./extern/af_threads-src
|
||||
mkdir -p ./extern/af_test_data-src
|
||||
mkdir -p ./extern/ocl_clfft-src
|
||||
mkdir -p ./extern/spdlog-src
|
||||
cp -R --no-preserve=mode,ownership ${glad}/* ./extern/af_glad-src/
|
||||
cp -R --no-preserve=mode,ownership ${threads}/* ./extern/af_threads-src/
|
||||
cp -R --no-preserve=mode,ownership ${test-data}/* ./extern/af_test_data-src/
|
||||
cp -R --no-preserve=mode,ownership ${clfft}/* ./extern/ocl_clfft-src/
|
||||
cp -R --no-preserve=mode,ownership ${spdlog}/* ./extern/spdlog-src/
|
||||
|
||||
# libaf.so (the unified backend) tries to load the right shared library at
|
||||
# runtime, and the search paths are hard-coded... We tweak them to point to
|
||||
# the installation directory in the Nix store.
|
||||
substituteInPlace src/api/unified/symbol_manager.cpp \
|
||||
--replace '"/opt/arrayfire-3/lib/",' \
|
||||
"\"$out/lib/\", \"/opt/arrayfire-3/lib/\","
|
||||
'';
|
||||
|
||||
inherit doCheck;
|
||||
checkPhase =
|
||||
let
|
||||
LD_LIBRARY_PATH = builtins.concatStringsSep ":" (
|
||||
[
|
||||
"${forge}/lib"
|
||||
"${freeimage}/lib"
|
||||
]
|
||||
++ lib.optional cudaSupport "${cudaPackages.cudatoolkit}/lib64"
|
||||
# On non-NixOS systems, help the tests find Nvidia drivers
|
||||
++ lib.optional (nvidiaComputeDrivers != null) "${nvidiaComputeDrivers}/lib"
|
||||
);
|
||||
ctestFlags = builtins.concatStringsSep " " (
|
||||
# We have to run with "-j1" otherwise various segfaults occur on non-NixOS systems.
|
||||
[
|
||||
"--output-on-errors"
|
||||
"-j1"
|
||||
]
|
||||
# See https://github.com/arrayfire/arrayfire/issues/3484
|
||||
++ lib.optional openclSupport "-E '(inverse_dense|cholesky_dense)'"
|
||||
);
|
||||
in
|
||||
''
|
||||
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
|
||||
''
|
||||
+
|
||||
# On non-NixOS systems, help the tests find Nvidia drivers
|
||||
lib.optionalString (openclSupport && nvidiaComputeDrivers != null) ''
|
||||
export OCL_ICD_VENDORS=${nvidiaComputeDrivers}/etc/OpenCL/vendors
|
||||
''
|
||||
+ ''
|
||||
# Note: for debugging, enable AF_TRACE=all
|
||||
AF_PRINT_ERRORS=1 ctest ${ctestFlags}
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
blas
|
||||
boost.dev
|
||||
boost.out
|
||||
clblast
|
||||
fftw
|
||||
fftwFloat
|
||||
# We need fmt_9 because ArrayFire fails to compile with newer versions.
|
||||
fmt_9
|
||||
forge
|
||||
freeimage
|
||||
gtest
|
||||
lapack
|
||||
libGL
|
||||
ocl-icd
|
||||
opencl-clhpp
|
||||
span-lite
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
cudaPackages.cudatoolkit
|
||||
cudaPackages.cudnn
|
||||
cudaPackages.cuda_cccl
|
||||
]
|
||||
++ lib.optionals openclSupport [
|
||||
mesa
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
python3
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "General-purpose library for parallel and massively-parallel computations";
|
||||
longDescription = ''
|
||||
A general-purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.";
|
||||
'';
|
||||
license = licenses.bsd3;
|
||||
homepage = "https://arrayfire.com/";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [
|
||||
chessai
|
||||
twesterhout
|
||||
];
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
@@ -40,13 +40,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "art";
|
||||
version = "1.25.9";
|
||||
version = "1.25.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "artpixls";
|
||||
repo = "ART";
|
||||
tag = version;
|
||||
hash = "sha256-dg0msZ0aeyl4L7RqqGur9Lalu1QtE0igEc54WT5F+SQ=";
|
||||
hash = "sha256-qGrkRsdQppfIolxAhxWnJrbYotELKga6X7CFY55xCKk=";
|
||||
};
|
||||
|
||||
# Fix the build with CMake 4.
|
||||
|
||||
@@ -20,6 +20,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
sha256 = "0ipqna7a9mxqm0fl9ggwhbc7i9yxz3jfyi0w3dymjp40v7jw1n20";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
'cmake_minimum_required(VERSION 2.8)' \
|
||||
'cmake_minimum_required(VERSION 3.5)'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
gtk2,
|
||||
gtk3,
|
||||
pkg-config,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "awf";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "valr";
|
||||
repo = "awf";
|
||||
rev = "v${version}";
|
||||
sha256 = "0jl2kxwpvf2n8974zzyp69mqhsbjnjcqm39y0jvijvjb1iy8iman";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk2
|
||||
gtk3
|
||||
];
|
||||
|
||||
autoreconfPhase = ''
|
||||
patchShebangs ./autogen.sh
|
||||
./autogen.sh
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Widget Factory";
|
||||
longDescription = ''
|
||||
A widget factory is a theme preview application for gtk2 and
|
||||
gtk3. It displays the various widget types provided by gtk2/gtk3
|
||||
in a single window allowing to see the visual effect of the
|
||||
applied theme.
|
||||
'';
|
||||
homepage = "https://github.com/valr/awf";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ michalrus ];
|
||||
};
|
||||
}
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "bash-pinyin-completion-rs";
|
||||
version = "0.3.2";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AOSC-Dev";
|
||||
repo = "bash-pinyin-completion-rs";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-r+B11TgMOhwslqygv72S9uhF7v79MAzUu5XHlD/P3HY=";
|
||||
hash = "sha256-VXIIG+ZGb4fS3LSIkGW744ui4AKTdQCjrNlObH/YZVY=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -108,23 +108,23 @@ let
|
||||
if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||
fetchurl {
|
||||
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel_nojdk-${version}-linux-x86_64";
|
||||
hash = "sha256-CYL1paAtzTbfl7TfsqwJry/dkoTO/yZdHrX0NSA1+Ig=";
|
||||
hash = "sha256-94KFvsS7fInXFTQZPzMq6DxnHQrRktljwACyAz8adSw=";
|
||||
}
|
||||
else if stdenv.hostPlatform.system == "aarch64-linux" then
|
||||
fetchurl {
|
||||
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel_nojdk-${version}-linux-arm64";
|
||||
hash = "sha256-6DzTEx218/Qq38eMWvXOX/t9VJDyPczz6Edh4eHdOfg=";
|
||||
hash = "sha256-wfuZLSHa77wr0A4ZLF5DqH7qyOljYNXM2a5imoS+nGQ";
|
||||
}
|
||||
else if stdenv.hostPlatform.system == "x86_64-darwin" then
|
||||
fetchurl {
|
||||
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-darwin-x86_64";
|
||||
hash = "sha256-Ut00wXzJezqlvf49RcTjk4Im8j3Qv7R77t1iWpU/HwU=";
|
||||
hash = "sha256-qAb9s6R5+EbqVfWHUT7sk1sOrbDEPv4EhgXH7nC46Zw=";
|
||||
}
|
||||
else
|
||||
fetchurl {
|
||||
# stdenv.hostPlatform.system == "aarch64-darwin"
|
||||
url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-darwin-arm64";
|
||||
hash = "sha256-ArEXuX0JIa5NT04R0n4sCTA4HfQW43NDXV0EGcaibyQ=";
|
||||
hash = "sha256-4bRp4OvkRIvhpZ2r/eFJdwrByECHy3rncDEM1tClFYo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = defaultShellUtils;
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "beszel";
|
||||
version = "0.13.2";
|
||||
version = "0.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "henrygd";
|
||||
repo = "beszel";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-5akfgX3533NkeszP/by9ZfwTmMPdG5/JKFjswP1FRp8=";
|
||||
hash = "sha256-IQ39OtYG2VDyHIPFRR0VNK56czGlJly66Bwb/NYIBxY=";
|
||||
};
|
||||
|
||||
webui = buildNpmPackage {
|
||||
@@ -48,7 +48,7 @@ buildGoModule rec {
|
||||
|
||||
sourceRoot = "${src.name}/internal/site";
|
||||
|
||||
npmDepsHash = "sha256-7+3K8MhA+FXWRXQR5edUYbL/XcxPmUqWQPxl5k8u1xs=";
|
||||
npmDepsHash = "sha256-Wtq/pesnovOyAnFta/wI+j8rml8XWORvOLz/Q82sy8g=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-IfwgL4Ms5Uho1l0yGCyumbr1N/SN+j5HaFl4hACkTsQ=";
|
||||
@@ -77,7 +77,10 @@ buildGoModule rec {
|
||||
homepage = "https://github.com/henrygd/beszel";
|
||||
changelog = "https://github.com/henrygd/beszel/releases/tag/v${version}";
|
||||
description = "Lightweight server monitoring hub with historical data, docker stats, and alerts";
|
||||
maintainers = with lib.maintainers; [ bot-wxt1221 ];
|
||||
maintainers = with lib.maintainers; [
|
||||
bot-wxt1221
|
||||
arunoruto
|
||||
];
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
|
||||
+16
-13
@@ -1,31 +1,32 @@
|
||||
{
|
||||
mkDerivation,
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
|
||||
cmake,
|
||||
pkg-config,
|
||||
qtbase,
|
||||
qttools,
|
||||
qtx11extras,
|
||||
libsForQt5,
|
||||
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "birdtray";
|
||||
version = "1.11.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gyunaev";
|
||||
repo = "birdtray";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-rj8tPzZzgW0hXmq8c1LiunIX1tO/tGAaqDGJgCQda5M=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-rj8tPzZzgW0hXmq8c1LiunIX1tO/tGAaqDGJgCQda5M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
libsForQt5.wrapQtAppsHook
|
||||
];
|
||||
buildInputs = [
|
||||
buildInputs = with libsForQt5; [
|
||||
qtbase
|
||||
qttools
|
||||
qtx11extras
|
||||
@@ -41,12 +42,14 @@ mkDerivation rec {
|
||||
# https://github.com/gyunaev/birdtray/issues/113#issuecomment-621742315
|
||||
qtWrapperArgs = [ "--set QT_QPA_PLATFORM xcb" ];
|
||||
|
||||
meta = with lib; {
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Mail system tray notification icon for Thunderbird";
|
||||
mainProgram = "birdtray";
|
||||
homepage = "https://github.com/gyunaev/birdtray";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ Flakebi ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ Flakebi ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
@@ -1,62 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
cmake,
|
||||
gfortran,
|
||||
# Whether to build with ILP64 interface
|
||||
blas64 ? false,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "blas";
|
||||
version = "3.12.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.netlib.org/blas/${pname}-${version}.tgz";
|
||||
sha256 = "sha256-zMQbXQiOUNsAMDF66bDJrzdXEME5KsrR/iCWAtpaWq0=";
|
||||
};
|
||||
|
||||
passthru = { inherit blas64; };
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gfortran
|
||||
];
|
||||
|
||||
cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ] ++ lib.optional blas64 "-DBUILD_INDEX64=ON";
|
||||
|
||||
# CMake 4 is no longer retro compatible with versions < 3.5
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
"cmake_minimum_required(VERSION 3.2)" \
|
||||
"cmake_minimum_required(VERSION 3.5)"
|
||||
'';
|
||||
|
||||
postInstall =
|
||||
let
|
||||
canonicalExtension =
|
||||
if stdenv.hostPlatform.isLinux then
|
||||
"${stdenv.hostPlatform.extensions.sharedLibrary}.${lib.versions.major version}"
|
||||
else
|
||||
stdenv.hostPlatform.extensions.sharedLibrary;
|
||||
in
|
||||
lib.optionalString blas64 ''
|
||||
ln -s $out/lib/libblas64${canonicalExtension} $out/lib/libblas${canonicalExtension}
|
||||
'';
|
||||
|
||||
preFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
for fn in $(find $out/lib -name "*.so*"); do
|
||||
if [ -L "$fn" ]; then continue; fi
|
||||
install_name_tool -id "$fn" "$fn"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Basic Linear Algebra Subprograms";
|
||||
license = licenses.publicDomain;
|
||||
maintainers = [ maintainers.markuskowa ];
|
||||
homepage = "http://www.netlib.org/blas/";
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
@@ -44,6 +44,14 @@ stdenv.mkDerivation rec {
|
||||
})
|
||||
];
|
||||
|
||||
# CMake 4 is no longer retro compatible with versions < 3.5
|
||||
# cmake_minimum_required was already to an upper version, but not cmake_policy
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
"cmake_policy(VERSION 3.1)" \
|
||||
""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "bluemap";
|
||||
version = "5.12";
|
||||
version = "5.13";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/BlueMap-Minecraft/BlueMap/releases/download/v${version}/BlueMap-${version}-cli.jar";
|
||||
hash = "sha256-k+tSIlgOj7o7aHPdJzXSW1zxx2pZ67TB3aJ4Fv7U0pM=";
|
||||
hash = "sha256-NDnslNJ3B6Cjxr6qem9xRX71ddHP014cGynJZdiFDpE=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
@@ -28,7 +28,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# TODO: check with other distros and report upstream
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "-m64" ""
|
||||
--replace-fail "-m64" "" \
|
||||
--replace-fail 'cmake_minimum_required(VERSION 3.1 FATAL_ERROR)' \
|
||||
'cmake_minimum_required(VERSION 3.5 FATAL_ERROR)'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -23,6 +23,12 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ zlib ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
'cmake_minimum_required(VERSION 2.8.12)' \
|
||||
'cmake_minimum_required(VERSION 3.5)'
|
||||
'';
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = bustools;
|
||||
command = "bustools version";
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-binstall";
|
||||
version = "1.15.6";
|
||||
version = "1.15.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cargo-bins";
|
||||
repo = "cargo-binstall";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-TzO7xz58nvuT6r8SN0cUKdW0x1yR1FlpsnGhU67SNOA=";
|
||||
hash = "sha256-EQhEI4MqYNwjqb8awROTLfxjGsoPKeT7VHt642uSgCc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-cYjsSPHcWYobosSlB2tLda3NSGUTxE5DyA4AxAF8C/8=";
|
||||
cargoHash = "sha256-a9X8L4AZWhlcQ5lVo0I1GL2wpCjOClNuZLy+GwHJDcA=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -14,16 +14,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "tauri";
|
||||
version = "2.8.4";
|
||||
version = "2.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tauri-apps";
|
||||
repo = "tauri";
|
||||
tag = "tauri-cli-v${finalAttrs.version}";
|
||||
hash = "sha256-fp/ODsbZTQdMkkRu9QqTQfavq0RPfSzZm1l4sE1hacc=";
|
||||
hash = "sha256-MOhcTG8r7kDVTg5PY1rmrkd8U94CqT7RdPSfaakqf2M=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-l1IF9R+KeXAjs8Dy59mZNOCX0eoskotBPbltKU3nHQ8=";
|
||||
cargoHash = "sha256-lWBCMS7xFEqXPpMpBzfZmdwQOq8Yaux83FGFaRyaBNg=";
|
||||
|
||||
nativeBuildInputs = lib.optionals (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isLinux) [
|
||||
pkg-config
|
||||
|
||||
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
;
|
||||
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-7F2vk6WUeXunTuXX9J0rVhl2I0ENYagRdqTy+WAXBB8=";
|
||||
hash = "sha256-gHniZv847JFrmKnTUZcgyWhFl/ovJ5IfKbbM5I21tZc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "chhoto-url";
|
||||
version = "6.3.2";
|
||||
version = "6.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SinTan1729";
|
||||
repo = "chhoto-url";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-k5fxU3HWhlYlBjmHNsj4lin7LHdwswbwm5bCVmCMjg8=";
|
||||
hash = "sha256-IghMhr1ksoTWPvuQ66XfXWrNgPAmS39OqjdhwpElD3U=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/actix";
|
||||
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
--replace-fail "./resources/" "${placeholder "out"}/share/chhoto-url/resources/"
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-oR1SCEbMMDfQyvhoUJzBiK4VHCZwx+o/PaZBfxPB2K8=";
|
||||
cargoHash = "sha256-cxw0Gg80UHvkjBXGt7tKMEinfhS2aT4fZ7oDzNNHnX8=";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/chhoto-url
|
||||
|
||||
@@ -28,6 +28,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postPatch = ''
|
||||
sed -i '/-m64/d;/-m32/d' CMakeLists.txt
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
'cmake_minimum_required( VERSION 2.6 )' \
|
||||
'cmake_minimum_required( VERSION 3.5 ) '
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import ./generic.nix {
|
||||
version = "25.9.2.1-stable";
|
||||
hash = "sha256-BygRxiDhhs91/UPWY7f3jAGyTtyAj98RdDXLwjs8Abo=";
|
||||
version = "25.9.4.58-stable";
|
||||
hash = "sha256-HRbqVSyDuvhkv0+PSgps9AXKdLlukrLA65OLx5gZ3c0=";
|
||||
lts = false;
|
||||
nixUpdateExtraArgs = [
|
||||
"--version-regex"
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "cloudlog";
|
||||
version = "2.7.1";
|
||||
version = "2.7.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "magicbug";
|
||||
repo = "Cloudlog";
|
||||
rev = version;
|
||||
hash = "sha256-My0z4MW/9O0+ErIh7SEWU3KGJ4UQDmhwJICtBgQ4+q8=";
|
||||
hash = "sha256-Lb20SrwFQybMNmxgmztAm2/9PBcukgt03W93C743oM8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cnquery";
|
||||
version = "12.5.1";
|
||||
version = "12.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mondoohq";
|
||||
repo = "cnquery";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-f7P7m+RBrWxvdBMtPXZLNB4/Alr0ByiEhh9mIcVPfLk=";
|
||||
hash = "sha256-f+2E3pG5c/3yrsvBPJp9QUHcDRY4vmmxeosw/jfQ+mY=";
|
||||
};
|
||||
|
||||
subPackages = [ "apps/cnquery" ];
|
||||
|
||||
vendorHash = "sha256-i0atpv6vtbbpTKuh9aJU6oPILCqdshB0MVbgOn6fppw=";
|
||||
vendorHash = "sha256-NI6x1MIdIHK4OfoqRvnyGxJZaCxLclaU4/rNvDx/Fhc=";
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
|
||||
+4
-4
@@ -5,7 +5,7 @@
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"codebuff": "^1.0.501"
|
||||
"codebuff": "^1.0.502"
|
||||
}
|
||||
},
|
||||
"node_modules/chownr": {
|
||||
@@ -18,9 +18,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/codebuff": {
|
||||
"version": "1.0.501",
|
||||
"resolved": "https://registry.npmjs.org/codebuff/-/codebuff-1.0.501.tgz",
|
||||
"integrity": "sha512-ZTvQce7Qj5tjWt63AJujjGkCDLLWAXm3vrKOKlfUKXPXJQfbM8TYljB2+fnMEkjgShZ3Fg+nSEIb1q7hcuBTbQ==",
|
||||
"version": "1.0.502",
|
||||
"resolved": "https://registry.npmjs.org/codebuff/-/codebuff-1.0.502.tgz",
|
||||
"integrity": "sha512-gI1e7Hf+gnZux9O+NjhkGrR9kXltycLEvwMmULJ+2t72mk1bvDrCjRuzIZ5AFWxUeZsCj/rVtBpoJail9Qz7Og==",
|
||||
"cpu": [
|
||||
"x64",
|
||||
"arm64"
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "codebuff";
|
||||
version = "1.0.501";
|
||||
version = "1.0.502";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://registry.npmjs.org/codebuff/-/codebuff-${version}.tgz";
|
||||
hash = "sha256-WW599dxu7LdL2pU0nb4zZb3ek67MlTpJ/H9aa7SWhi8=";
|
||||
hash = "sha256-2bskaDG7T/27Re1X4ZXsUrcu1WBb1+iuVcAOqWBRw8w=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-M8BD9XMnn6ETifLl0j4fe2+UDaAGOA9mN2SsmXSfMPM=";
|
||||
npmDepsHash = "sha256-zqtV6AB2N8M9WqVc1JpfEOIoAyxoVEY3zO7WQiwwpQc=";
|
||||
|
||||
postPatch = ''
|
||||
cp ${./package-lock.json} package-lock.json
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "comrak";
|
||||
version = "0.44.0";
|
||||
version = "0.45.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kivikakk";
|
||||
repo = "comrak";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-qwwROwIFG9/pX8t92EHriaN3O4Z2IpQGylVKhbp/0IU=";
|
||||
sha256 = "sha256-+87K5ITDrF/nH1H4z8zyqQlJnviOlRdNnV8v6xsS0uM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Ybyrk+I0nzHFkEaWDovTOGPC26i7BXcNtFgFjmCHIwM=";
|
||||
cargoHash = "sha256-efUiKSEsD+GguhriTpLmsyUxpQYzwr4rHJAC9FHMzdU=";
|
||||
|
||||
meta = {
|
||||
description = "CommonMark-compatible GitHub Flavored Markdown parser and formatter";
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "cosmic-ext-applet-caffeine";
|
||||
version = "0-unstable-2025-10-16";
|
||||
version = "0-unstable-2025-10-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tropicbliss";
|
||||
repo = "cosmic-ext-applet-caffeine";
|
||||
rev = "0b50a109495d02ab8c99a501d2dd7575c6fabc1b";
|
||||
hash = "sha256-Z84LqsPVGd7PfOUmC1iJWgTGrl6FicaxZHwTZmgmAyk=";
|
||||
rev = "2d27a3dec13ca455975f39927bad040f36576d03";
|
||||
hash = "sha256-4MP1H3U1sr7+h5Psf6wTiQuJJgEtlRrgQKdF7COkosI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-TC7WNJUxGZpfDbDgnifBSZM7SvN2/Iw0HRXWPDXnDBM=";
|
||||
cargoHash = "sha256-89/0XEdQ7MCycAkHhTkA5FCj/eKVLgWDhljKB/Lo4+4=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
libcosmicAppHook
|
||||
|
||||
@@ -21,6 +21,12 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e '/add_subdirectory(tests)/d' lib/CMakeLists.txt
|
||||
|
||||
# CMake 3.2.2 is deprecated and no longer supported by CMake > 4
|
||||
# https://github.com/NixOS/nixpkgs/issues/445447
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
"cmake_minimum_required(VERSION 3.2.2)" \
|
||||
"cmake_minimum_required(VERSION 3.10)"
|
||||
'';
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = "-Wno-error";
|
||||
|
||||
@@ -27,6 +27,14 @@ stdenv.mkDerivation rec {
|
||||
./01-fix-sleep_for.patch
|
||||
];
|
||||
|
||||
# CMake 2.8.7 is deprecated and is no longer supported by CMake > 4
|
||||
# https://github.com/NixOS/nixpkgs/issues/445447
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt tacopie/CMakeLists.txt --replace-fail \
|
||||
"cmake_minimum_required(VERSION 2.8.7)" \
|
||||
"cmake_minimum_required(VERSION 3.10)"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform";
|
||||
homepage = "https://github.com/cpp-redis/cpp_redis";
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGo125Module (finalAttrs: {
|
||||
pname = "crush";
|
||||
version = "0.9.2";
|
||||
version = "0.12.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "charmbracelet";
|
||||
repo = "crush";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-VFAGjNtXKNjkv8Ryi28oFN/uLomXXdw6NFtyjT3pMEY=";
|
||||
hash = "sha256-uESS76cPJ/sYGbsTpaUKlF8g0y2+LYbF4zd7dAoKWWU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-ktF3kIr143uPwiEbgafladZRqIsmG6jI2BeumGSu82U=";
|
||||
vendorHash = "sha256-lqoAPp8EW2tW+QjwCuBgxZDbKT3XMvP3qwx/yES1mx4=";
|
||||
|
||||
# rename TestMain to prevent it from running, as it panics in the sandbox.
|
||||
postPatch = ''
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "crystal-dock";
|
||||
version = "2.14";
|
||||
version = "2.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dangvd";
|
||||
repo = "crystal-dock";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-szW3zIgwy0a9NmEax6xemeCdjs3//r7BRfUDeLv+VxE=";
|
||||
hash = "sha256-XFq4T39El5MjaWRSnaimonjdj+HGOAydNmEOehgGWX4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -55,6 +55,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
cmakeFlags = [ "-DUSE_HAMLIB=ON" ] ++ lib.optional enableDigitalLab "-DENABLE_DIGITAL_LAB=ON";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "cmake_minimum_required (VERSION 2.8)" "cmake_minimum_required (VERSION 3.10)"
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
install_name_tool -change libliquid.dylib ${lib.getLib liquid-dsp}/lib/libliquid.dylib ''${out}/bin/CubicSDR
|
||||
'';
|
||||
|
||||
@@ -2,20 +2,19 @@
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
qtserialport,
|
||||
qt6,
|
||||
cmake,
|
||||
wrapQtAppsHook,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cutecom";
|
||||
version = "0.51.0+patch";
|
||||
version = "0.60.0-RC1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "cutecom";
|
||||
repo = "cutecom";
|
||||
rev = "70d0c497acf8f298374052b2956bcf142ed5f6ca";
|
||||
sha256 = "X8jeESt+x5PxK3rTNC1h1Tpvue2WH09QRnG2g1eMoEE=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-Co0bUW7klSPf1VfBt7oT2DlQmf6CLELS0oapIyjpx8w=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -23,10 +22,11 @@ stdenv.mkDerivation {
|
||||
--replace "/Applications" "$out/Applications"
|
||||
'';
|
||||
|
||||
buildInputs = [ qtserialport ];
|
||||
buildInputs = [ qt6.qtserialport ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
wrapQtAppsHook
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
|
||||
postInstall =
|
||||
@@ -43,12 +43,12 @@ stdenv.mkDerivation {
|
||||
cp cutecom.1 "$out/share/man/man1"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Graphical serial terminal";
|
||||
homepage = "https://gitlab.com/cutecom/cutecom/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ bennofs ];
|
||||
platforms = platforms.unix;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ bennofs ];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "cutecom";
|
||||
};
|
||||
}
|
||||
})
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cytoscape";
|
||||
version = "3.10.3";
|
||||
version = "3.10.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-unix-${version}.tar.gz";
|
||||
sha256 = "sha256-62i3F6uGNoC8z55iUIYQDAimWcQocsZ52USdpruZRLQ=";
|
||||
sha256 = "sha256-gHCU97AfBzo4r+F+Fc5lHd+kQtj/NsoCNipAhv5O7sE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -62,14 +62,14 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "digikam";
|
||||
version = "8.7.0";
|
||||
version = "8.8.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "graphics";
|
||||
repo = "digikam";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-9t6tXrege3A5x5caUEfho23Pin7dON+e6x94rXC8XYE=";
|
||||
hash = "sha256-yUrB0FXUcm+6QtlB7HMqdPpdhrV2iAo1oRkjgsHJiCU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
|
||||
# nativeBuildInputs
|
||||
cmake,
|
||||
@@ -71,6 +72,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
url = "https://github.com/dolphin-emu/dolphin/commit/8edef722ce1aae65d5a39faf58753044de48b6e0.patch?full_index=1";
|
||||
hash = "sha256-QEG0p+AzrExWrOxL0qRPa+60GlL0DlLyVBrbG6pGuog=";
|
||||
})
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ mkDprintPlugin }:
|
||||
mkDprintPlugin {
|
||||
description = "Biome (JS/TS) wrapper plugin";
|
||||
hash = "sha256-GHl8Uo2U6K1yirfjwuD43ixkVtGdbZ2qxk0cySRLXys=";
|
||||
hash = "sha256-Ht63tW4FqykpuNlWtyw3cHD2HXs0b6U6Zo9Rd9AXqD8=";
|
||||
initConfig = {
|
||||
configExcludes = [ "**/node_modules" ];
|
||||
configKey = "biome";
|
||||
@@ -16,6 +16,6 @@ mkDprintPlugin {
|
||||
};
|
||||
pname = "dprint-plugin-biome";
|
||||
updateUrl = "https://plugins.dprint.dev/dprint/biome/latest.json";
|
||||
url = "https://plugins.dprint.dev/biome-0.10.5.wasm";
|
||||
version = "0.10.5";
|
||||
url = "https://plugins.dprint.dev/biome-0.10.6.wasm";
|
||||
version = "0.10.6";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ mkDprintPlugin }:
|
||||
mkDprintPlugin {
|
||||
description = "Dockerfile code formatter";
|
||||
hash = "sha256-gsfMLa4zw8AblOS459ZS9OZrkGCQi5gBN+a3hvOsspk=";
|
||||
hash = "sha256-GaK1sYdZPwQWJmz2ULcsGpWDiKjgPhqNRoGgQfGOkqc=";
|
||||
initConfig = {
|
||||
configExcludes = [ ];
|
||||
configKey = "dockerfile";
|
||||
@@ -9,6 +9,6 @@ mkDprintPlugin {
|
||||
};
|
||||
pname = "dprint-plugin-dockerfile";
|
||||
updateUrl = "https://plugins.dprint.dev/dprint/dockerfile/latest.json";
|
||||
url = "https://plugins.dprint.dev/dockerfile-0.3.2.wasm";
|
||||
version = "0.3.2";
|
||||
url = "https://plugins.dprint.dev/dockerfile-0.3.3.wasm";
|
||||
version = "0.3.3";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ mkDprintPlugin }:
|
||||
mkDprintPlugin {
|
||||
description = "Ruff (Python) wrapper plugin";
|
||||
hash = "sha256-15InHQgF9c0Js4yUJxmZ1oNj1O16FBU12u/GOoaSAJ8=";
|
||||
hash = "sha256-qT+6zPbX3KrONXshwzLoGTWRXM93VKO0lN9ycJujEDM=";
|
||||
initConfig = {
|
||||
configExcludes = [ ];
|
||||
configKey = "ruff";
|
||||
@@ -12,6 +12,6 @@ mkDprintPlugin {
|
||||
};
|
||||
pname = "dprint-plugin-ruff";
|
||||
updateUrl = "https://plugins.dprint.dev/dprint/ruff/latest.json";
|
||||
url = "https://plugins.dprint.dev/ruff-0.3.9.wasm";
|
||||
version = "0.3.9";
|
||||
url = "https://plugins.dprint.dev/ruff-0.6.1.wasm";
|
||||
version = "0.6.1";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ mkDprintPlugin }:
|
||||
mkDprintPlugin {
|
||||
description = "CSS, SCSS, Sass and Less formatter";
|
||||
hash = "sha256-mFlhfqtglKtKNls96PO/2AWLL1fNC5msQCd9EgdKauE=";
|
||||
hash = "sha256-IAIix6c9/GNDZsRk95T/rpvMh7HqFgBoq5KDVYHHOjU=";
|
||||
initConfig = {
|
||||
configExcludes = [ "**/node_modules" ];
|
||||
configKey = "malva";
|
||||
@@ -14,6 +14,6 @@ mkDprintPlugin {
|
||||
};
|
||||
pname = "g-plane-malva";
|
||||
updateUrl = "https://plugins.dprint.dev/g-plane/malva/latest.json";
|
||||
url = "https://plugins.dprint.dev/g-plane/malva-v0.11.2.wasm";
|
||||
version = "0.11.2";
|
||||
url = "https://plugins.dprint.dev/g-plane/malva-v0.14.3.wasm";
|
||||
version = "0.14.3";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ mkDprintPlugin }:
|
||||
mkDprintPlugin {
|
||||
description = "HTML, Vue, Svelte, Astro, Angular, Jinja, Twig, Nunjucks, and Vento formatter";
|
||||
hash = "sha256-fCvurr8f79io/jIjwCfwr/WGjvcKZtptRrx9GFfytSI=";
|
||||
hash = "sha256-TQxHIw5IXZwFA/WzIJ33ZckJNkHwW67lnh0cCGkgmrs=";
|
||||
initConfig = {
|
||||
configExcludes = [ ];
|
||||
configKey = "markup";
|
||||
@@ -19,6 +19,6 @@ mkDprintPlugin {
|
||||
};
|
||||
pname = "g-plane-markup_fmt";
|
||||
updateUrl = "https://plugins.dprint.dev/g-plane/markup_fmt/latest.json";
|
||||
url = "https://plugins.dprint.dev/g-plane/markup_fmt-v0.19.0.wasm";
|
||||
version = "0.19.0";
|
||||
url = "https://plugins.dprint.dev/g-plane/markup_fmt-v0.24.0.wasm";
|
||||
version = "0.24.0";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ mkDprintPlugin }:
|
||||
mkDprintPlugin {
|
||||
description = "GraphQL formatter";
|
||||
hash = "sha256-PlQwpR0tMsghMrOX7is+anN57t9xa9weNtoWpc0E9ec=";
|
||||
hash = "sha256-xEEBnmxxiIPNOePBDS2HG6lfAhR4l53w+QDF2mXdyzg=";
|
||||
initConfig = {
|
||||
configExcludes = [ ];
|
||||
configKey = "graphql";
|
||||
@@ -12,6 +12,6 @@ mkDprintPlugin {
|
||||
};
|
||||
pname = "g-plane-pretty_graphql";
|
||||
updateUrl = "https://plugins.dprint.dev/g-plane/pretty_graphql/latest.json";
|
||||
url = "https://plugins.dprint.dev/g-plane/pretty_graphql-v0.2.1.wasm";
|
||||
version = "0.2.1";
|
||||
url = "https://plugins.dprint.dev/g-plane/pretty_graphql-v0.2.3.wasm";
|
||||
version = "0.2.3";
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ mkDprintPlugin }:
|
||||
mkDprintPlugin {
|
||||
description = "YAML formatter";
|
||||
hash = "sha256-6ua021G7ZW7Ciwy/OHXTA1Joj9PGEx3SZGtvaA//gzo=";
|
||||
hash = "sha256-iSh5SRrjQB1hJoKkkup7R+Durcu+cxePa7GDVjwnexU=";
|
||||
initConfig = {
|
||||
configExcludes = [ ];
|
||||
configKey = "yaml";
|
||||
@@ -12,6 +12,6 @@ mkDprintPlugin {
|
||||
};
|
||||
pname = "g-plane-pretty_yaml";
|
||||
updateUrl = "https://plugins.dprint.dev/g-plane/pretty_yaml/latest.json";
|
||||
url = "https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm";
|
||||
version = "0.5.0";
|
||||
url = "https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.1.wasm";
|
||||
version = "0.5.1";
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i python -p nix 'python3.withPackages (pp: [ pp.requests ])'
|
||||
#!nix-shell -i python3 -p nix 'python3.withPackages (ps: [ ps.requests ])'
|
||||
|
||||
import json
|
||||
import os
|
||||
@@ -138,7 +138,7 @@ def update_plugins():
|
||||
"updateUrl": update_url,
|
||||
"pname": pname,
|
||||
"version": e["version"],
|
||||
"description": e["description"],
|
||||
"description": e["description"].rstrip("."),
|
||||
"initConfig": {
|
||||
"configKey": e["configKey"],
|
||||
"configExcludes": e["configExcludes"],
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user