3
0
Fork 0
forked from mirrors/nixpkgs

Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2022-03-21 18:07:51 +00:00 committed by GitHub
commit 6ae26bb3c8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 1818 additions and 198 deletions

View file

@ -125,7 +125,7 @@ Reviewing process:
- Type should be appropriate (string related types differs in their merging capabilities, `optionSet` and `string` types are deprecated). - Type should be appropriate (string related types differs in their merging capabilities, `optionSet` and `string` types are deprecated).
- Description, default and example should be provided. - Description, default and example should be provided.
- Ensure that option changes are backward compatible. - Ensure that option changes are backward compatible.
- `mkRenamedOptionModule` and `mkAliasOptionModule` functions provide way to make option changes backward compatible. - `mkRenamedOptionModuleWith` provides a way to make option changes backward compatible.
- Ensure that removed options are declared with `mkRemovedOptionModule` - Ensure that removed options are declared with `mkRemovedOptionModule`
- Ensure that changes that are not backward compatible are mentioned in release notes. - Ensure that changes that are not backward compatible are mentioned in release notes.
- Ensure that documentations affected by the change is updated. - Ensure that documentations affected by the change is updated.

View file

@ -67,7 +67,7 @@ let
inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
importJSON importTOML warn warnIf throwIfNot checkListOfEnum importJSON importTOML warn warnIf throwIfNot checkListOfEnum
info showWarnings nixpkgsVersion version info showWarnings nixpkgsVersion version isInOldestRelease
mod compare splitByAndCompare functionArgs setFunctionArgs isFunction mod compare splitByAndCompare functionArgs setFunctionArgs isFunction
toHexString toBaseDigits; toHexString toBaseDigits;
inherit (self.fixedPoints) fix fix' converge extends composeExtensions inherit (self.fixedPoints) fix fix' converge extends composeExtensions
@ -120,7 +120,8 @@ let
mkOptionDefault mkDefault mkImageMediaOverride mkForce mkVMOverride mkOptionDefault mkDefault mkImageMediaOverride mkForce mkVMOverride
mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions
mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule
mkRenamedOptionModule mkMergedOptionModule mkChangedOptionModule mkRenamedOptionModule mkRenamedOptionModuleWith
mkMergedOptionModule mkChangedOptionModule
mkAliasOptionModule mkDerivedConfig doRename; mkAliasOptionModule mkDerivedConfig doRename;
inherit (self.options) isOption mkEnableOption mkSinkUndeclaredOptions inherit (self.options) isOption mkEnableOption mkSinkUndeclaredOptions
mergeDefaultOption mergeOneOption mergeEqualOption mergeUniqueOption mergeDefaultOption mergeOneOption mergeEqualOption mergeUniqueOption

View file

@ -954,6 +954,26 @@ rec {
use = builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'."; use = builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'.";
}; };
mkRenamedOptionModuleWith = {
/* Old option path as list of strings. */
from,
/* New option path as list of strings. */
to,
/*
Release number of the first release that contains the rename, ignoring backports.
Set it to the upcoming release, matching the nixpkgs/.version file.
*/
sinceRelease,
}: doRename {
inherit from to;
visible = false;
warn = lib.isInOldestRelease sinceRelease;
use = lib.warnIf (lib.isInOldestRelease sinceRelease)
"Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'.";
};
/* Return a module that causes a warning to be shown if any of the "from" /* Return a module that causes a warning to be shown if any of the "from"
option is defined; the defined values can be used in the "mergeFn" to set option is defined; the defined values can be used in the "mergeFn" to set
the "to" value. the "to" value.

View file

@ -166,6 +166,30 @@ rec {
/* Returns the current nixpkgs release number as string. */ /* Returns the current nixpkgs release number as string. */
release = lib.strings.fileContents ../.version; release = lib.strings.fileContents ../.version;
/* The latest release that is supported, at the time of release branch-off,
if applicable.
Ideally, out-of-tree modules should be able to evaluate cleanly with all
supported Nixpkgs versions (master, release and old release until EOL).
So if possible, deprecation warnings should take effect only when all
out-of-tree expressions/libs/modules can upgrade to the new way without
losing support for supported Nixpkgs versions.
This release number allows deprecation warnings to be implemented such that
they take effect as soon as the oldest release reaches end of life. */
oldestSupportedRelease =
# Update on master only. Do not backport.
2111;
/* Whether a feature is supported in all supported releases (at the time of
release branch-off, if applicable). See `oldestSupportedRelease`. */
isInOldestRelease =
/* Release number of feature introduction as an integer, e.g. 2111 for 21.11.
Set it to the upcoming release, matching the nixpkgs/.version file.
*/
release:
release <= lib.trivial.oldestSupportedRelease;
/* Returns the current nixpkgs release code name. /* Returns the current nixpkgs release code name.
On each release the first letter is bumped and a new animal is chosen On each release the first letter is bumped and a new animal is chosen

View file

@ -67,6 +67,14 @@
notes</link> for details. notes</link> for details.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Module authors can use
<literal>mkRenamedOptionModuleWith</literal> to automate the
deprecation cycle without annoying out-of-tree module authors
and their users.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section xml:id="sec-release-22.05-new-services"> <section xml:id="sec-release-22.05-new-services">
@ -1211,7 +1219,8 @@
Legacy options have been mapped to the corresponding Legacy options have been mapped to the corresponding
options under under options under under
<link xlink:href="options.html#opt-nix.settings">nix.settings</link> <link xlink:href="options.html#opt-nix.settings">nix.settings</link>
but may be deprecated in the future. and will be deprecated when NixOS 21.11 reaches end of
life.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>

View file

@ -23,6 +23,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [`kops`](https://kops.sigs.k8s.io) defaults to 1.22.4, which will enable [Instance Metadata Service Version 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the [release notes](https://kops.sigs.k8s.io/releases/1.22-notes/) for details. - [`kops`](https://kops.sigs.k8s.io) defaults to 1.22.4, which will enable [Instance Metadata Service Version 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the [release notes](https://kops.sigs.k8s.io/releases/1.22-notes/) for details.
- Module authors can use `mkRenamedOptionModuleWith` to automate the deprecation cycle without annoying out-of-tree module authors and their users.
## New Services {#sec-release-22.05-new-services} ## New Services {#sec-release-22.05-new-services}
- [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable). - [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable).
@ -452,7 +454,7 @@ In addition to numerous new and upgraded packages, this release has the followin
Similarly [virtualisation.vmVariantWithBootloader](#opt-virtualisation.vmVariantWithBootLoader) was added. Similarly [virtualisation.vmVariantWithBootloader](#opt-virtualisation.vmVariantWithBootLoader) was added.
- The configuration portion of the `nix-daemon` module has been reworked and exposed as [nix.settings](options.html#opt-nix-settings): - The configuration portion of the `nix-daemon` module has been reworked and exposed as [nix.settings](options.html#opt-nix-settings):
* Legacy options have been mapped to the corresponding options under under [nix.settings](options.html#opt-nix.settings) but may be deprecated in the future. * Legacy options have been mapped to the corresponding options under under [nix.settings](options.html#opt-nix.settings) and will be deprecated when NixOS 21.11 reaches end of life.
* [nix.buildMachines.publicHostKey](options.html#opt-nix.buildMachines.publicHostKey) has been added. * [nix.buildMachines.publicHostKey](options.html#opt-nix.buildMachines.publicHostKey) has been added.
- The `writers.writePyPy2`/`writers.writePyPy3` and corresponding `writers.writePyPy2Bin`/`writers.writePyPy3Bin` convenience functions to create executable Python 2/3 scripts using the PyPy interpreter were added. - The `writers.writePyPy2`/`writers.writePyPy3` and corresponding `writers.writePyPy2Bin`/`writers.writePyPy3Bin` convenience functions to create executable Python 2/3 scripts using the PyPy interpreter were added.

View file

@ -112,11 +112,11 @@ in
{ {
imports = [ imports = [
(mkRenamedOptionModule [ "nix" "useChroot" ] [ "nix" "useSandbox" ]) (mkRenamedOptionModuleWith { sinceRelease = 2003; from = [ "nix" "useChroot" ]; to = [ "nix" "useSandbox" ]; })
(mkRenamedOptionModule [ "nix" "chrootDirs" ] [ "nix" "sandboxPaths" ]) (mkRenamedOptionModuleWith { sinceRelease = 2003; from = [ "nix" "chrootDirs" ]; to = [ "nix" "sandboxPaths" ]; })
(mkRenamedOptionModule [ "nix" "daemonIONiceLevel" ] [ "nix" "daemonIOSchedPriority" ]) (mkRenamedOptionModuleWith { sinceRelease = 2205; from = [ "nix" "daemonIONiceLevel" ]; to = [ "nix" "daemonIOSchedPriority" ]; })
(mkRemovedOptionModule [ "nix" "daemonNiceLevel" ] "Consider nix.daemonCPUSchedPolicy instead.") (mkRemovedOptionModule [ "nix" "daemonNiceLevel" ] "Consider nix.daemonCPUSchedPolicy instead.")
] ++ mapAttrsToList (oldConf: newConf: mkRenamedOptionModule [ "nix" oldConf ] [ "nix" "settings" newConf ]) legacyConfMappings; ] ++ mapAttrsToList (oldConf: newConf: mkRenamedOptionModuleWith { sinceRelease = 2205; from = [ "nix" oldConf ]; to = [ "nix" "settings" newConf ]; }) legacyConfMappings;
###### interface ###### interface

View file

@ -4,25 +4,25 @@ let
in { in {
mainline = libsForQt5.callPackage ./base.nix rec { mainline = libsForQt5.callPackage ./base.nix rec {
pname = "yuzu-mainline"; pname = "yuzu-mainline";
version = "882"; version = "953";
branchName = branch; branchName = branch;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yuzu-emu"; owner = "yuzu-emu";
repo = "yuzu-mainline"; repo = "yuzu-mainline";
rev = "mainline-0-${version}"; rev = "mainline-0-${version}";
sha256 = "17j845laxnaq50icwl32yisdivwcnwa59fxdr297yxrz4hmfzhxq"; sha256 = "0p07gybyhr6flzmhz92qlrwcq7l37c2wmcxw8sbrvhj2pgaaw9ic";
fetchSubmodules = true; fetchSubmodules = true;
}; };
}; };
early-access = libsForQt5.callPackage ./base.nix rec { early-access = libsForQt5.callPackage ./base.nix rec {
pname = "yuzu-ea"; pname = "yuzu-ea";
version = "2432"; version = "2557";
branchName = branch; branchName = branch;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pineappleEA"; owner = "pineappleEA";
repo = "pineapple-src"; repo = "pineapple-src";
rev = "EA-${version}"; rev = "EA-${version}";
sha256 = "0zqab61rphgjzyxk52idhr7dqwwxih0f8b9hig3zvrwkdry9wfh4"; sha256 = "013xxgyn8y5fv0xbrm0zfl9xmi0gx4hpflrbjskg1hcvb2bjqyvj";
}; };
}; };
}.${branch} }.${branch}

View file

@ -3,13 +3,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "electron-cash"; pname = "electron-cash";
version = "4.2.5"; version = "4.2.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Electron-Cash"; owner = "Electron-Cash";
repo = "Electron-Cash"; repo = "Electron-Cash";
rev = version; rev = version;
sha256 = "sha256-ALIrNnhpX46xdQdfJdx/9e/QtdyBEgi5xLrbuOBJR7o="; sha256 = "sha256-m8a3x5fPSrnrCH30MToT3aKtX35nFUbeerR7ubWgOOI=";
}; };
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [
@ -40,6 +40,7 @@ python3Packages.buildPythonApplication rec {
keepkey keepkey
btchip btchip
hidapi hidapi
pyopenssl
pyscard pyscard
pysatochip pysatochip
]; ];

View file

@ -0,0 +1,56 @@
{ lib
, rustPlatform
, fetchgit
, makeWrapper
, ffmpeg
, callPackage
, unstableGitUpdater
}:
rustPlatform.buildRustPackage {
pname = "faircamp";
version = "unstable-2022-01-19";
# TODO when switching to a stable release, use fetchFromGitea and add a
# version test. Meanwhile, fetchgit is used to make unstableGitUpdater work.
src = fetchgit {
url = "https://codeberg.org/simonrepp/faircamp.git";
rev = "f8ffc7a35a12251b83966b35c63f72b4912f75a9";
sha256 = "sha256-9t42+813IPLUChbLkcwzoCr7FXSL1g+ZG6I3d+7pmec=";
};
cargoHash = "sha256-24ALBede3W8rjlBRdtL0aazRyK1RmNLdHF/bt5i4S5Y=";
nativeBuildInputs = [
makeWrapper
];
postInstall = ''
wrapProgram $out/bin/faircamp \
--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
'';
passthru.tests.wav = callPackage ./test-wav.nix { };
passthru.updateScript = unstableGitUpdater { };
meta = with lib; {
description = "A self-hostable, statically generated bandcamp alternative";
longDescription = ''
Faircamp takes a directory on your disk - your Catalog - and from it
produces a fancy-looking (and technically simple and completely static)
website, which presents your music in a way similar to how popular
commercial service bandcamp does it.
You can upload the files faircamp generates to any webspace - no database
and no programming language support (PHP or such) is required. If your
webspace supports SSH access, faircamp can be configured to upload your
website for you automatically, otherwise you can use FTP or whichever
means you prefer to do that manually.
'';
homepage = "https://codeberg.org/simonrepp/faircamp";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,14 @@
{ stdenv
, faircamp
, ffmpeg
}:
stdenv.mkDerivation {
name = "faircamp-test-wav";
meta.timeout = 60;
buildCommand = ''
mkdir album
${ffmpeg}/bin/ffmpeg -f lavfi -i "sine=frequency=440:duration=1" album/track.wav
${faircamp}/bin/faircamp --build-dir $out
'';
}

View file

@ -1,11 +1,11 @@
{ {
"packageVersion": "97.0.2-1", "packageVersion": "98.0-1",
"source": { "source": {
"rev": "97.0.2-1", "rev": "98.0-1",
"sha256": "0pk9ci0wvz61879w3fvy8p1w4w8anv5s7rfiimz21m351gcf3d7m" "sha256": "1z42a42d6z0gyc5i0pamcqq5bak6pgg1ldvlrjdyjnpvda74s0fn"
}, },
"firefox": { "firefox": {
"version": "97.0.2", "version": "98.0",
"sha512": "efbf33723f5979025454b6cc183927afb4bc72a51c00b5d45940122da596b8ac99080f3a6a59f5dd85a725e356349ec57e7eba1c36cdab7d55a28b04895d274c" "sha512": "5b9186dd2a5dee5f2d2a2ce156fc06e2073cf71a70891a294cf3358218592f19ec3413d33b68d6f38e3cc5f940213e590a188e2b6efc39f416e90a55f89bfd9b"
} }
} }

View file

@ -12,16 +12,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "himalaya"; pname = "himalaya";
version = "0.5.9"; version = "0.5.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "soywod"; owner = "soywod";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-g+ySsHnJ4FpmJLEjlutuiJmMkKI3Jb+HkWi1WBIo1aw="; sha256 = "sha256-CXchZbXX7NH2ZXeAoPph3qxxdcAdDVZLBmOMwxFu+Yo=";
}; };
cargoSha256 = "sha256-NkkONl57zSilElVAOXUBxWnims4+EIVkkTdExbeBAaQ="; cargoSha256 = "sha256-sSQX7DHDgh1eO1Dwn1f0m51Bl2ZG1daRtrnYvsvPOkg=";
nativeBuildInputs = lib.optionals enableCompletions [ installShellFiles ] nativeBuildInputs = lib.optionals enableCompletions [ installShellFiles ]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkg-config ]; ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkg-config ];

View file

@ -1,76 +1,89 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitLab , fetchFromGitLab
, meson , fetchpatch
, vala
, ninja
, pkg-config
, wrapGAppsHook
, desktop-file-utils
, appstream-glib , appstream-glib
, python3 , dbus
, desktop-file-utils
, git
, glib , glib
, gtk3 , gtk4
, libhandy , libadwaita
, libtransmission , meson
, libb64 , ninja
, libutp
, miniupnpc
, dht
, libnatpmp
, libevent
, curl
, openssl , openssl
, zlib , pkg-config
, python3
, rustPlatform
, sqlite
, transmission
, wrapGAppsHook4
}: }:
stdenv.mkDerivation rec { let
patchedTransmission = transmission.overrideAttrs (oldAttrs: {
patches = (oldAttrs.patches or []) ++ [
(fetchpatch {
url = "https://raw.githubusercontent.com/flathub/de.haeckerfelix.Fragments/2aee477c8e26a24570f8dbbdbd1c49e017ae32eb/transmission_pdeathsig.patch";
sha256 = "sha256-/rCoA566tMmzqcIfffC082Y56TwEyyQJ0knxymtscbA=";
})
];
});
in stdenv.mkDerivation rec {
pname = "fragments"; pname = "fragments";
version = "1.5"; version = "2.0.2";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org";
owner = "World"; owner = "World";
repo = "Fragments"; repo = "Fragments";
rev = version; rev = version;
sha256 = "0x1kafhlgyi65l4w67c24r8mpvasg3q3c4wlgnjc9sxvp6ki7xbn"; sha256 = "sha256-CMa1yka0kOxMhxSuazlJxTk4fzxuuwKYLBpEMwHbBUE=";
}; };
patches = [ postPatch = ''
# Fix dependency resolution patchShebangs build-aux/meson/postinstall.py
./dependency-resolution.patch '';
];
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-/rFZcbpITYkpSCEZp9XH253u90RGmuVLEBGIRNBgI/o=";
};
nativeBuildInputs = [ nativeBuildInputs = [
appstream-glib
desktop-file-utils
git
meson meson
vala
ninja ninja
pkg-config pkg-config
wrapGAppsHook
desktop-file-utils
appstream-glib
python3 python3
]; wrapGAppsHook4
] ++ (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [ buildInputs = [
dbus
glib glib
gtk3 gtk4
libhandy libadwaita
libtransmission
libb64
libutp
miniupnpc
dht
libnatpmp
libevent
curl
openssl openssl
zlib sqlite
]; ];
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${lib.makeBinPath [ patchedTransmission ]}"
)
'';
meta = with lib; { meta = with lib; {
homepage = "https://gitlab.gnome.org/World/Fragments"; homepage = "https://gitlab.gnome.org/World/Fragments";
description = "A GTK3 BitTorrent Client"; description = "Easy to use BitTorrent client for the GNOME desktop environment";
maintainers = with maintainers; [ emilytrau ]; maintainers = with maintainers; [ emilytrau ];
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;

View file

@ -1,25 +0,0 @@
diff --git a/meson.build b/meson.build
index 5030d0c..6de7a20 100644
--- a/meson.build
+++ b/meson.build
@@ -32,10 +32,11 @@ transmission_dep = declare_dependency(
meson.get_compiler('c').find_library('dht'),
meson.get_compiler('c').find_library('natpmp'),
meson.get_compiler('c').find_library('event'),
- meson.get_compiler('c').find_library('libcurl'),
- meson.get_compiler('c').find_library('libcrypto'),
+ meson.get_compiler('c').find_library('curl'),
+ meson.get_compiler('c').find_library('crypto'),
+ meson.get_compiler('c').find_library('ssl'),
meson.get_compiler('c').find_library('libpthread'),
- meson.get_compiler('c').find_library('libz'),
+ meson.get_compiler('c').find_library('z'),
transmission_vapi,
transmission_lib
])
@@ -45,4 +46,4 @@ subdir('data')
subdir('po')
subdir('src')
-meson.add_install_script('build-aux/postinstall.py')
+meson.add_install_script('python3', '../build-aux/postinstall.py')

View file

@ -14,11 +14,11 @@
mkDerivation rec { mkDerivation rec {
pname = "kstars"; pname = "kstars";
version = "3.5.7"; version = "3.5.8";
src = fetchurl { src = fetchurl {
url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz"; url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
sha256 = "sha256-qo8SLum46BM0QzGR6rJ2w2ERK53Lm8+N+ghR6HoQDQY="; sha256 = "sha256-Zg2QKDe3q/OBDW4k9y/YTwREopvX1D4YlrGf7OHIjD8=";
}; };
nativeBuildInputs = [ extra-cmake-modules kdoctools ]; nativeBuildInputs = [ extra-cmake-modules kdoctools ];

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,6 @@
{ stdenv, lib, rustPlatform, fetchgit, runCommand, symlinkJoin { stdenv, lib, rustPlatform, fetchgit
, pkg-config, minijail, dtc, libusb1, libcap, linux , pkg-config, wayland-scanner, libcap, minijail, wayland, wayland-protocols
, linux
}: }:
let let
@ -11,55 +12,26 @@ let
else if isx86_64 then "x86_64" else if isx86_64 then "x86_64"
else throw "no seccomp policy files available for host platform"; else throw "no seccomp policy files available for host platform";
crosvmSrc = fetchgit {
inherit (upstreamInfo.components."chromiumos/platform/crosvm")
url rev sha256 fetchSubmodules;
};
adhdSrc = fetchgit {
inherit (upstreamInfo.components."chromiumos/third_party/adhd")
url rev sha256 fetchSubmodules;
};
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "crosvm"; pname = "crosvm";
inherit (upstreamInfo) version; inherit (upstreamInfo) version;
unpackPhase = '' src = fetchgit (builtins.removeAttrs upstreamInfo.src [ "date" "path" ]);
runHook preUnpack
mkdir -p chromiumos/platform chromiumos/third_party
pushd chromiumos/platform
unpackFile ${crosvmSrc}
mv ${crosvmSrc.name} crosvm
popd
pushd chromiumos/third_party
unpackFile ${adhdSrc}
mv ${adhdSrc.name} adhd
popd
chmod -R u+w -- "$sourceRoot"
runHook postUnpack
'';
sourceRoot = "chromiumos/platform/crosvm";
patches = [ patches = [
./default-seccomp-policy-dir.diff ./default-seccomp-policy-dir.diff
]; ];
cargoSha256 = "0aax0slg59afbyn3ygswwap2anv11k6sr9hfpysb4f8rvymvx7hd"; cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config wayland-scanner ];
buildInputs = [ dtc libcap libusb1 minijail ]; buildInputs = [ libcap minijail wayland wayland-protocols ];
postPatch = '' postPatch = ''
cp ${./Cargo.lock} Cargo.lock
sed -i "s|/usr/share/policy/crosvm/|$out/share/policy/|g" \ sed -i "s|/usr/share/policy/crosvm/|$out/share/policy/|g" \
seccomp/*/*.policy seccomp/*/*.policy
''; '';
@ -77,11 +49,7 @@ in
lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform) lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform)
"${linux}/${stdenv.hostPlatform.linux-kernel.target}"; "${linux}/${stdenv.hostPlatform.linux-kernel.target}";
passthru = { passthru.updateScript = ./update.py;
inherit adhdSrc;
src = crosvmSrc;
updateScript = ./update.py;
};
meta = with lib; { meta = with lib; {
description = "A secure virtual machine monitor for KVM"; description = "A secure virtual machine monitor for KVM";

View file

@ -12,9 +12,7 @@ from lxml import etree
from lxml.etree import HTMLParser from lxml.etree import HTMLParser
from urllib.request import urlopen from urllib.request import urlopen
# ChromiumOS components required to build crosvm. git_path = 'chromiumos/platform/crosvm'
components = ['chromiumos/platform/crosvm', 'chromiumos/third_party/adhd']
git_root = 'https://chromium.googlesource.com/' git_root = 'https://chromium.googlesource.com/'
manifest_versions = f'{git_root}chromiumos/manifest-versions' manifest_versions = f'{git_root}chromiumos/manifest-versions'
buildspecs_url = f'{manifest_versions}/+/refs/heads/master/full/buildspecs/' buildspecs_url = f'{manifest_versions}/+/refs/heads/master/full/buildspecs/'
@ -54,32 +52,27 @@ with urlopen(f'{buildspecs_url}{chrome_major_version}/?format=TEXT') as resp:
buildspecs.sort(reverse=True) buildspecs.sort(reverse=True)
buildspec = splitext(buildspecs[0])[0] buildspec = splitext(buildspecs[0])[0]
revisions = {} # Read the buildspec, and extract the git revision.
# Read the buildspec, and extract the git revisions for each component.
with urlopen(f'{buildspecs_url}{chrome_major_version}/{buildspec}.xml?format=TEXT') as resp: with urlopen(f'{buildspecs_url}{chrome_major_version}/{buildspec}.xml?format=TEXT') as resp:
xml = base64.decodebytes(resp.read()) xml = base64.decodebytes(resp.read())
root = etree.fromstring(xml) root = etree.fromstring(xml)
for project in root.findall('project'): revision = root.find(f'./project[@name="{git_path}"]').get('revision')
revisions[project.get('name')] = project.get('revision')
# Initialize the data that will be output from this script. Leave the # Initialize the data that will be output from this script. Leave the
# rc number in buildspec so nobody else is subject to the same level # rc number in buildspec so nobody else is subject to the same level
# of confusion I have been. # of confusion I have been.
data = {'version': f'{chrome_major_version}.{buildspec}', 'components': {}} data = {'version': f'{chrome_major_version}.{buildspec}'}
# Fill in the 'components' dictionary with the output from # Fill in the 'src' key with the output from nix-prefetch-git, which
# nix-prefetch-git, which can be passed straight to fetchGit when # can be passed straight to fetchGit when imported by Nix.
# imported by Nix. argv = ['nix-prefetch-git',
for component in components: '--fetch-submodules',
argv = ['nix-prefetch-git', '--url', git_root + git_path,
'--url', git_root + component, '--rev', revision]
'--rev', revisions[component]] output = subprocess.check_output(argv)
data['src'] = json.loads(output.decode('utf-8'))
output = subprocess.check_output(argv) # Find the path to crosvm's default.nix, so the src data can be
data['components'][component] = json.loads(output.decode('utf-8'))
# Find the path to crosvm's default.nix, so the srcs data can be
# written into the same directory. # written into the same directory.
argv = ['nix-instantiate', '--eval', '--json', '-A', 'crosvm.meta.position'] argv = ['nix-instantiate', '--eval', '--json', '-A', 'crosvm.meta.position']
position = json.loads(subprocess.check_output(argv).decode('utf-8')) position = json.loads(subprocess.check_output(argv).decode('utf-8'))

View file

@ -1,23 +1,14 @@
{ {
"version": "81.12871.0.0-rc1", "version": "99.14468.0.0-rc1",
"components": { "src": {
"chromiumos/platform/crosvm": { "url": "https://chromium.googlesource.com/chromiumos/platform/crosvm",
"url": "https://chromium.googlesource.com/chromiumos/platform/crosvm", "rev": "410ea3a1980bfe96968a7dfb7a7d203d43b186b2",
"rev": "8b8c01e1ad31718932491e4aee63f56109a138e2", "date": "2022-01-11T00:01:17-08:00",
"date": "2020-01-25T02:28:10+00:00", "path": "/nix/store/y2rpzh1any8c4nwnwkvir7241kbcj8fn-crosvm-410ea3a",
"sha256": "1qmf1k06pwynh15c3nr9m6v90z2pkk930xniwvlvbvnazrk4rllg", "sha256": "1bgwndh2f60ka1f8c8yqnqqkra510ai9miyfvvm0b3dnsdpy77kd",
"fetchSubmodules": false, "fetchLFS": false,
"deepClone": false, "fetchSubmodules": true,
"leaveDotGit": false "deepClone": false,
}, "leaveDotGit": false
"chromiumos/third_party/adhd": {
"url": "https://chromium.googlesource.com/chromiumos/third_party/adhd",
"rev": "f361d5b02623274723bff251dafa1e2a2887b013",
"date": "2020-01-23T18:37:46+00:00",
"sha256": "1p8iwjwgmcgmzri03ik2jaid8l0ch0bzn6z9z64dix1hlrvrlliw",
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false
}
} }
} }

View file

@ -162,5 +162,6 @@ in stdenv.mkDerivation rec {
license = "GPL"; license = "GPL";
maintainers = [ lib.maintainers.sander ]; maintainers = [ lib.maintainers.sander ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
broken = kernel.kernelAtLeast "5.17";
}; };
} }

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "librtprocess"; pname = "librtprocess";
version = "0.11.0"; version = "0.12.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "CarVac"; owner = "CarVac";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1bivy3rymmmkdx5phbxq4qaq15hw633dgpks57z9ara15mh817xx"; sha256 = "sha256-/1o6SWUor+ZBQ6RsK2PoDRu03jcVRG58PNYFttriH2w=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View file

@ -0,0 +1,48 @@
From 823a62ec8aac4fb75e6e281164f3eb56ae47597c Mon Sep 17 00:00:00 2001
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Tue, 1 Mar 2022 18:47:59 +0100
Subject: [PATCH] qemu: segmentation fault in virtqemud executing
qemuDomainUndefineFlags
Commit 5adfb3472342741c443ac91dee0abb18b5a3d038 causes a segmentation fault.
Stack trace of thread 664419:
#0 0x000003ff62ec553c in qemuDomainUndefineFlags (dom=0x3ff6c002810, flags=<optimized out>) at ../src/qemu/qemu_driver.c:6618
#1 0x000003ff876a7e5c in virDomainUndefineFlags (domain=domain@entry=0x3ff6c002810, flags=<optimized out>) at ../src/libvirt-domain.c:6519
#2 0x000002aa2b64a808 in remoteDispatchDomainUndefineFlags (server=0x2aa2c3d7880, msg=0x2aa2c3d2770, args=<optimized out>, rerr=0x3ff8287b950, client=<optimized out>)
at src/remote/remote_daemon_dispatch_stubs.h:13080
#3 remoteDispatchDomainUndefineFlagsHelper (server=0x2aa2c3d7880, client=<optimized out>, msg=0x2aa2c3d2770, rerr=0x3ff8287b950, args=<optimized out>, ret=0x0)
at src/remote/remote_daemon_dispatch_stubs.h:13059
#4 0x000003ff8758bbf4 in virNetServerProgramDispatchCall (msg=0x2aa2c3d2770, client=0x2aa2c3e3050, server=0x2aa2c3d7880, prog=0x2aa2c3d8010)
at ../src/rpc/virnetserverprogram.c:428
#5 virNetServerProgramDispatch (prog=0x2aa2c3d8010, server=server@entry=0x2aa2c3d7880, client=0x2aa2c3e3050, msg=0x2aa2c3d2770) at ../src/rpc/virnetserverprogram.c:302
#6 0x000003ff8758c260 in virNetServerProcessMsg (msg=<optimized out>, prog=<optimized out>, client=<optimized out>, srv=0x2aa2c3d7880) at ../src/rpc/virnetserver.c:140
#7 virNetServerHandleJob (jobOpaque=0x2aa2c3e2d30, opaque=0x2aa2c3d7880) at ../src/rpc/virnetserver.c:160
#8 0x000003ff874c49aa in virThreadPoolWorker (opaque=<optimized out>) at ../src/util/virthreadpool.c:164
#9 0x000003ff874c3f62 in virThreadHelper (data=<optimized out>) at ../src/util/virthread.c:256
#10 0x000003ff86c1cf8c in start_thread () from /lib64/libc.so.6
#11 0x000003ff86c9650e in thread_start () from /lib64/libc.so.6
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index bcd9bdb436..8337eed510 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -6615,7 +6615,7 @@ qemuDomainUndefineFlags(virDomainPtr dom,
}
}
- if (vm->def->os.loader->nvram) {
+ if (vm->def->os.loader && vm->def->os.loader->nvram) {
nvram_path = g_strdup(vm->def->os.loader->nvram);
} else if (vm->def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_EFI) {
qemuDomainNVRAMPathFormat(cfg, vm->def, &nvram_path);
--
2.35.1

View file

@ -130,6 +130,7 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch ./0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
./0001-qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch
]; ];
# remove some broken tests # remove some broken tests

View file

@ -1,28 +1,29 @@
{ lib, buildDunePackage, fetchurl { lib, buildDunePackage, fetchurl
, bos, fpath, rresult, ptime, mirage-crypto, x509, astring, logs , bos, fpath, ptime, mirage-crypto, x509, astring, logs
, cacert, alcotest , cacert, alcotest, fmt
}: }:
buildDunePackage rec { buildDunePackage rec {
pname = "ca-certs"; pname = "ca-certs";
version = "0.2.1"; version = "0.2.2";
minimumOCamlVersion = "4.07"; minimumOCamlVersion = "4.07";
src = fetchurl { src = fetchurl {
url = "https://github.com/mirage/ca-certs/releases/download/v${version}/ca-certs-v${version}.tbz"; url = "https://github.com/mirage/ca-certs/releases/download/v${version}/ca-certs-v${version}.tbz";
sha256 = "d43109496a5129feff967d557c556af96f8b10456896a405c43b7cf0c35d0af3"; sha256 = "sha256-Tx53zBJemZh3ODh/8izahxDoJvXvNFLyAA8LMM1mhlI=";
}; };
useDune2 = true; useDune2 = true;
propagatedBuildInputs = [ bos fpath rresult ptime mirage-crypto x509 astring logs ]; propagatedBuildInputs = [ bos fpath ptime mirage-crypto x509 astring logs ];
# Assumes nss-cacert < 3.74 https://github.com/mirage/ca-certs/issues/21 # Assumes nss-cacert < 3.74 https://github.com/mirage/ca-certs/issues/21
doCheck = false; doCheck = false;
checkInputs = [ checkInputs = [
cacert # for /etc/ssl/certs/ca-bundle.crt cacert # for /etc/ssl/certs/ca-bundle.crt
alcotest alcotest
fmt
]; ];
meta = with lib; { meta = with lib; {

View file

@ -1,14 +1,14 @@
{ mkDerivation, fetchurl, makeWrapper, lib, php }: { mkDerivation, fetchurl, makeWrapper, lib, php }:
let let
pname = "php-cs-fixer"; pname = "php-cs-fixer";
version = "3.7.0"; version = "3.8.0";
in in
mkDerivation { mkDerivation {
inherit pname version; inherit pname version;
src = fetchurl { src = fetchurl {
url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar"; url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
sha256 = "sha256-a7mKM++0iQm9hQFCDfyR6Jdb9h98YNHmbdQso8BU3WE="; sha256 = "sha256-kOdJ2xuS095xVdPxoz4q/XM0BpyJEy6V/CtkuTN/Chk=";
}; };
dontUnpack = true; dontUnpack = true;

View file

@ -19,7 +19,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "simplisafe-python"; pname = "simplisafe-python";
version = "2022.02.1"; version = "2022.03.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -28,7 +28,7 @@ buildPythonPackage rec {
owner = "bachya"; owner = "bachya";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-r+TcSzFkEGRsuTtEHBT/GMNa9r6GsIyvbLaF32cFfeQ="; sha256 = "sha256-B4Tg122S2lJaBXBKUSN2ndt5EOiC5HyORTQXofZKUpw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -37,6 +37,8 @@ stdenv.mkDerivation rec {
postPatch = if stdenv.isDarwin then '' postPatch = if stdenv.isDarwin then ''
substituteInPlace gdb/darwin-nat.c \ substituteInPlace gdb/darwin-nat.c \
--replace '#include "bfd/mach-o.h"' '#include "mach-o.h"' --replace '#include "bfd/mach-o.h"' '#include "mach-o.h"'
'' else if stdenv.hostPlatform.isMusl then ''
substituteInPlace sim/ppc/emul_unix.c --replace sys/termios.h termios.h
'' else null; '' else null;
patches = [ patches = [
@ -50,7 +52,11 @@ stdenv.mkDerivation rec {
}) })
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
./darwin-target-match.patch ./darwin-target-match.patch
]; ] ++ lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
name = "musl-fix-pagesize-page_size.patch";
url = "https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=fd0975b96b16d96010dce439af9620d3dfb65426";
hash = "sha256-M3U7uIIFJnYu0g8/sMLJPhm02q7cGOi6pLjgsUUjeKI=";
});
nativeBuildInputs = [ pkg-config texinfo perl setupDebugInfoDirs ]; nativeBuildInputs = [ pkg-config texinfo perl setupDebugInfoDirs ];

View file

@ -131,7 +131,6 @@ in buildFHSUserEnv rec {
rtmpdump rtmpdump
# dependencies for mesa drivers, needed inside pressure-vessel # dependencies for mesa drivers, needed inside pressure-vessel
mesa.drivers
mesa.llvmPackages.llvm.lib mesa.llvmPackages.llvm.lib
vulkan-loader vulkan-loader
expat expat

View file

@ -550,7 +550,7 @@ let
UPROBE_EVENT = { optional = true; tristate = whenOlder "4.11" "y";}; UPROBE_EVENT = { optional = true; tristate = whenOlder "4.11" "y";};
UPROBE_EVENTS = { optional = true; tristate = whenAtLeast "4.11" "y";}; UPROBE_EVENTS = { optional = true; tristate = whenAtLeast "4.11" "y";};
BPF_SYSCALL = yes; BPF_SYSCALL = yes;
BPF_UNPRIV_DEFAULT_OFF = whenBetween "5.10" "5.15" yes; BPF_UNPRIV_DEFAULT_OFF = whenBetween "5.10" "5.16" yes;
BPF_EVENTS = yes; BPF_EVENTS = yes;
FUNCTION_PROFILER = yes; FUNCTION_PROFILER = yes;
RING_BUFFER_BENCHMARK = no; RING_BUFFER_BENCHMARK = no;

View file

@ -10,7 +10,7 @@ in stdenv.mkDerivation rec {
# This is a mirror. The original website[1] doesn't allow non-interactive # This is a mirror. The original website[1] doesn't allow non-interactive
# downloads, instead emailing you a download link. # downloads, instead emailing you a download link.
# [1] http://www.realtek.com.tw/downloads/downloadsView.aspx?PFid=5&Level=5&Conn=4&DownTypeID=3 # [1] https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
# I've verified manually (`diff -r`) that the source code for version 8.046.00 # I've verified manually (`diff -r`) that the source code for version 8.046.00
# is the same as the one available on the realtek website. # is the same as the one available on the realtek website.
src = fetchFromGitHub { src = fetchFromGitHub {
@ -54,5 +54,6 @@ in stdenv.mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ timokau ]; maintainers = with maintainers; [ timokau ];
broken = kernel.kernelAtLeast "5.17";
}; };
} }

View file

@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ danielfullmer lheckemann ]; maintainers = with maintainers; [ danielfullmer lheckemann ];
broken = kernel.kernelAtLeast "5.17";
}; };
} }

View file

@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/tomaspinho/rtl8821ce"; homepage = "https://github.com/tomaspinho/rtl8821ce";
license = licenses.gpl2Only; license = licenses.gpl2Only;
platforms = platforms.linux; platforms = platforms.linux;
broken = stdenv.isAarch64; broken = stdenv.isAarch64 || kernel.kernelAtLeast "5.17";
maintainers = with maintainers; [ hhm ivar ]; maintainers = with maintainers; [ hhm ivar ];
}; };
} }

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "headscale"; pname = "headscale";
version = "0.14.0"; version = "0.15.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "juanfont"; owner = "juanfont";
repo = "headscale"; repo = "headscale";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-9nBFBvYAhybg97oU4mi899ss4/nzBCY95KfdkSs2f8s="; sha256 = "sha256-ZgChln6jcxyEHbCy89kNnwd9qWcB0yDq05xFkM69WLs=";
}; };
vendorSha256 = "sha256-qFoSK27D6bznksdm7Fl4SsVt13g2LSwuGe0As/MUo5o="; vendorSha256 = "sha256-0jZ37tmBG8E0HS/wbQyQvAKo1UKQdaZDa+OTGfGDAi4=";
ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ]; ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ];

View file

@ -70,6 +70,6 @@ stdenv.mkDerivation {
license = licenses.ipl10; license = licenses.ipl10;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ maggesi spacefrogg ]; maintainers = with maintainers; [ maggesi spacefrogg ];
broken = versionOlder kernel.version "3.18" || kernel.isHardened; broken = kernel.kernelOlder "3.18" || kernel.kernelAtLeast "5.17" || kernel.isHardened;
}; };
} }

View file

@ -31,13 +31,13 @@ with rec {
gccStdenv.mkDerivation rec { gccStdenv.mkDerivation rec {
pname = "astc-encoder"; pname = "astc-encoder";
version = "3.4"; version = "3.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ARM-software"; owner = "ARM-software";
repo = "astc-encoder"; repo = "astc-encoder";
rev = version; rev = version;
sha256 = "sha256-blOfc/H64UErjPjkdZQNp2H/Hw57RbQRFBcUo/C2b0Q="; sha256 = "sha256-vsnU592UDQfBuh9XWzw12wANkQBoUxznpOD9efCUKA0=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "nwipe"; pname = "nwipe";
version = "0.32"; version = "0.33";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "martijnvanbrummelen"; owner = "martijnvanbrummelen";
repo = "nwipe"; repo = "nwipe";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-O3kYiai+5KMHWd2om4+HrTIw9lB2wLJF3Mrr6iY2+I8="; sha256 = "sha256-i+cK2XTdWc3ByG9i+rfwL3Ds8Sl15/wZwEc5nrcWdeY=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -6559,7 +6559,9 @@ with pkgs;
heimdall-gui = heimdall.override { enableGUI = true; }; heimdall-gui = heimdall.override { enableGUI = true; };
headscale = callPackage ../servers/headscale { }; headscale = callPackage ../servers/headscale {
buildGoModule = buildGo118Module;
};
heisenbridge = callPackage ../servers/heisenbridge { }; heisenbridge = callPackage ../servers/heisenbridge { };
@ -25606,6 +25608,8 @@ with pkgs;
f1viewer = callPackage ../applications/video/f1viewer {}; f1viewer = callPackage ../applications/video/f1viewer {};
faircamp = callPackage ../applications/misc/faircamp { };
fasttext = callPackage ../applications/science/machine-learning/fasttext { }; fasttext = callPackage ../applications/science/machine-learning/fasttext { };
fbmenugen = callPackage ../applications/misc/fbmenugen { }; fbmenugen = callPackage ../applications/misc/fbmenugen { };