Merge master into staging-next

Changed files
+381 -133
.github
nixos
modules
services
continuous-integration
hercules-ci-agent
pkgs
applications
misc
terminal-emulators
wezterm
data
themes
qogir
rose-pine-gtk
development
haskell-modules
libraries
egl-wayland
notcurses
python-modules
alembic
graphql-subscription-manager
igraph
lc7001
xdg
tools
misc
coreboot-toolchain
misc
emulators
tools
misc
g933-utils
top-level
+1 -1
.github/PULL_REQUEST_TEMPLATE.md
···
- [ ] aarch64-linux
- [ ] x86_64-darwin
- [ ] aarch64-darwin
-
- [ ] For non-Linux: Is `sandbox = true` set in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/#sec-conf-file))
+
- [ ] For non-Linux: Is `sandbox = true` set in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
- [ ] Tested, as applicable:
- [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- and/or [package tests](https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests)
+66 -11
nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
···
/*
-
This file is for options that NixOS and nix-darwin have in common.
+
This file is for options that NixOS and nix-darwin have in common.
-
Platform-specific code is in the respective default.nix files.
+
Platform-specific code is in the respective default.nix files.
-
*/
+
*/
{ config, lib, options, pkgs, ... }:
let
···
settingsModule = { config, ... }: {
freeformType = format.type;
options = {
+
apiBaseUrl = mkOption {
+
description = ''
+
API base URL that the agent will connect to.
+
+
When using Hercules CI Enterprise, set this to the URL where your
+
Hercules CI server is reachable.
+
'';
+
type = types.str;
+
default = "https://hercules-ci.com";
+
};
baseDirectory = mkOption {
type = types.path;
default = "/var/lib/hercules-ci-agent";
···
type = types.either types.ints.positive (types.enum [ "auto" ]);
default = "auto";
};
+
labels = mkOption {
+
description = ''
+
A key-value map of user data.
+
+
This data will be available to organization members in the dashboard and API.
+
+
The values can be of any TOML type that corresponds to a JSON type, but arrays
+
can not contain tables/objects due to limitations of the TOML library. Values
+
involving arrays of non-primitive types may not be representable currently.
+
'';
+
type = format.type;
+
defaultText = literalExpression ''
+
{
+
agent.source = "..."; # One of "nixpkgs", "flake", "override"
+
lib.version = "...";
+
pkgs.version = "...";
+
}
+
'';
+
};
workDirectory = mkOption {
description = ''
The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation.
···
staticSecretsDirectory = mkOption {
description = ''
This is the default directory to look for statically configured secrets like <literal>cluster-join-token.key</literal>.
+
+
See also <literal>clusterJoinTokenPath</literal> and <literal>binaryCachesPath</literal> for fine-grained configuration.
'';
type = types.path;
default = config.baseDirectory + "/secrets";
···
clusterJoinTokenPath = mkOption {
description = ''
Location of the cluster-join-token.key file.
+
+
You can retrieve the contents of the file when creating a new agent via
+
<link xlink:href="https://hercules-ci.com/dashboard">https://hercules-ci.com/dashboard</link>.
+
+
As this value is confidential, it should not be in the store, but
+
installed using other means, such as agenix, NixOps
+
<literal>deployment.keys</literal>, or manual installation.
+
+
The contents of the file are used for authentication between the agent and the API.
'';
type = types.path;
default = config.staticSecretsDirectory + "/cluster-join-token.key";
defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
-
# internal: It's a bit too detailed to show by default in the docs,
-
# but useful to define explicitly to allow reuse by other modules.
-
internal = true;
};
binaryCachesPath = mkOption {
description = ''
-
Location of the binary-caches.json file.
+
Path to a JSON file containing binary cache secret keys.
+
+
As these values are confidential, they should not be in the store, but
+
copied over using other means, such as agenix, NixOps
+
<literal>deployment.keys</literal>, or manual installation.
+
+
The format is described on <link xlink:href="https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/">https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/</link>.
'';
type = types.path;
default = config.staticSecretsDirectory + "/binary-caches.json";
defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
-
# internal: It's a bit too detailed to show by default in the docs,
-
# but useful to define explicitly to allow reuse by other modules.
-
internal = true;
+
};
+
secretsJsonPath = mkOption {
+
description = ''
+
Path to a JSON file containing secrets for effects.
+
+
As these values are confidential, they should not be in the store, but
+
copied over using other means, such as agenix, NixOps
+
<literal>deployment.keys</literal>, or manual installation.
+
+
The format is described on <link xlink:href="https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/">https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/</link>.
+
+
'';
+
type = types.path;
+
default = config.staticSecretsDirectory + "/secrets.json";
+
defaultText = literalExpression ''staticSecretsDirectory + "/secrets.json"'';
};
};
};
···
These are written as options instead of let binding to allow sharing with
default.nix on both NixOS and nix-darwin.
-
*/
+
*/
tomlFile = mkOption {
type = types.path;
internal = true;
+3 -3
nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
···
/*
-
This file is for NixOS-specific options and configs.
+
This file is for NixOS-specific options and configs.
-
Code that is shared with nix-darwin goes in common.nix.
+
Code that is shared with nix-darwin goes in common.nix.
-
*/
+
*/
{ pkgs, config, lib, ... }:
let
+4 -7
pkgs/applications/misc/joshuto/default.nix
···
-
{ fetchFromGitHub, lib, rustPlatform, stdenv, SystemConfiguration }:
+
{ lib, rustPlatform, fetchFromGitHub, stdenv, SystemConfiguration }:
rustPlatform.buildRustPackage rec {
pname = "joshuto";
-
version = "0.9.1";
+
version = "0.9.2";
src = fetchFromGitHub {
owner = "kamiyaa";
repo = pname;
rev = version;
-
sha256 = "sha256-+qKOvFoEF/gZL4ijL8lIRWE9ZWJM2eBlk29Lk46jAfQ=";
+
sha256 = "sha256-9TGHSGYCzU6uAIO4zZ/6+B4oVPE6SD9Phl4dShylW5o=";
};
-
# upstream includes an outdated Cargo.lock that stops cargo from compiling
-
cargoPatches = [ ./fix-cargo-lock.patch ];
-
-
cargoSha256 = "sha256-JlekxU9pMkHNsIcH3+7b2I6MYUlxRqNX+0wwyVrQMAE=";
+
cargoSha256 = "sha256-g8YYOk2RW4GPdkWlvAxd5KFdV4S1l5yKEzNm9OAc8RI=";
buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;
-11
pkgs/applications/misc/joshuto/fix-cargo-lock.patch
···
-
--- a/Cargo.lock
-
+++ b/Cargo.lock
-
@@ -512,7 +512,7 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
-
[[package]]
-
name = "joshuto"
-
-version = "0.9.0"
-
+version = "0.9.1"
-
dependencies = [
-
"alphanumeric-sort",
-
"chrono",
+4 -1
pkgs/applications/terminal-emulators/wezterm/default.nix
···
, lib
, fetchFromGitHub
, ncurses
+
, perl
, pkg-config
, python3
, fontconfig
···
pkg-config
python3
ncurses # tic for terminfo
-
];
+
] ++ lib.optional stdenv.isDarwin perl;
buildInputs = [
fontconfig
···
license = licenses.mit;
maintainers = with maintainers; [ SuperSandro2000 ];
platforms = platforms.unix;
+
# Fails on missing UserNotifications framework while linking
+
broken = stdenv.isDarwin;
};
}
+26 -6
pkgs/data/themes/qogir/default.nix
···
-
{ lib, stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
{ lib
+
, stdenv
+
, fetchFromGitHub
+
, gdk-pixbuf
+
, gnome-themes-extra
+
, gtk-engine-murrine
+
, librsvg
+
, sassc
+
, which
+
}:
stdenv.mkDerivation rec {
pname = "qogir-theme";
-
version = "2021-08-02";
+
version = "2021-11-17";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
-
sha256 = "sha256-U048qNBfxjx/5iHIXcqAwXfIwmux+sw4hVQkN3TDLzk=";
+
sha256 = "1ri2dh34vw2pfv0lxzk9f4755v0d4ilnr6fzj3raw9b5fp5zzi91";
};
-
buildInputs = [ gdk-pixbuf librsvg ];
+
nativeBuildInputs = [
+
sassc
+
which
+
];
-
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
buildInputs = [
+
gdk-pixbuf # pixbuf engine for Gtk2
+
gnome-themes-extra # adwaita engine for Gtk2
+
librsvg # pixbuf loader for svg
+
];
+
+
propagatedUserEnvPkgs = [
+
gtk-engine-murrine # murrine engine for Gtk2
+
];
installPhase = ''
patchShebangs .
mkdir -p $out/share/themes
-
name= ./install.sh -d $out/share/themes
+
name= ./install.sh -t all -d $out/share/themes
mkdir -p $out/share/doc/${pname}
cp -a src/firefox $out/share/doc/${pname}
rm $out/share/themes/*/{AUTHORS,COPYING}
+44
pkgs/data/themes/rose-pine-gtk/default.nix
···
+
{ stdenv
+
, fetchFromGitHub
+
, lib
+
, gnome-themes-extra
+
, gtk-engine-murrine
+
, gtk_engines
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "rose-pine-gtk-theme";
+
version = "unstable-2021-02-22";
+
+
src = fetchFromGitHub {
+
owner = "rose-pine";
+
repo = "gtk";
+
rev = "9cd2dd449f911973ec549231a57a070d256da9fd";
+
sha256 = "0lqx8dmv754ix3xbg7h440x964n0bg4lb06vbzvsydnbx79h7lvy";
+
};
+
+
buildInputs = [
+
gnome-themes-extra # adwaita engine for Gtk2
+
gtk_engines # pixmap engine for Gtk2
+
];
+
+
propagatedUserEnvPkgs = [
+
gtk-engine-murrine # murrine engine for Gtk2
+
];
+
+
installPhase = ''
+
runHook preInstall
+
mkdir -p $out/share/themes
+
cp -a Rose-Pine $out/share/themes
+
rm $out/share/themes/*/LICENSE
+
runHook postInstall
+
'';
+
+
meta = with lib; {
+
description = "Rosé Pine theme for GTK";
+
homepage = "https://github.com/rose-pine/gtk";
+
license = licenses.gpl3Only;
+
platforms = platforms.linux;
+
maintainers = [ maintainers.romildo ];
+
};
+
}
+2
pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
···
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
}) super.hnix);
+
mime-string = disableOptimization super.mime-string;
+
}
+2
pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
···
# https://github.com/haskellari/time-compat/issues/23
time-compat = dontCheck super.time-compat;
+
mime-string = disableOptimization super.mime-string;
+
}
+2
pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
···
vector = dontCheck super.vector;
ghc-api-compat = doDistribute super.ghc-api-compat_8_6;
+
+
mime-string = disableOptimization super.mime-string;
}
+6 -6
pkgs/development/haskell-modules/hackage-packages.nix
···
mkDerivation {
({ mkDerivation, aeson, base, exceptions, lens, monad-control
-
version = "0.8.3";
-
({ mkDerivation, aeson, base, exceptions, lens, monad-control
+
version = "0.8.4";
+
sha256 = "1w93027i5kddn1rj5dgnmvgsadfv3s6ziyga4k3mp094wx2g6syy";
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
···
mkDerivation {
({ mkDerivation, aeson, base, exceptions, lens, monad-control
-
version = "0.2.3";
-
({ mkDerivation, aeson, base, exceptions, lens, monad-control
+
version = "0.2.4";
+
sha256 = "0imx1srpi518616jif62l542qpw2wcfiq5a622rg5w76k2vz0hpl";
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
···
mkDerivation {
({ mkDerivation, aeson, base, exceptions, lens, monad-control
-
version = "0.2.1.0";
-
({ mkDerivation, aeson, base, exceptions, lens, monad-control
+
version = "0.2.1.1";
+
sha256 = "0cxir973y3hkm34ci7hc5zsp94s31nnrlkgspwwdd2rakyf4525i";
libraryHaskellDepends = [
({ mkDerivation, aeson, base, exceptions, lens, monad-control
({ mkDerivation, aeson, base, exceptions, lens, monad-control
+6 -4
pkgs/development/libraries/egl-wayland/default.nix
···
, meson
, ninja
, wayland-scanner
+
, libGL
, libX11
, mesa
-
, libGL
, wayland
+
, wayland-protocols
}:
let
···
in stdenv.mkDerivation rec {
pname = "egl-wayland";
-
version = "1.1.7";
+
version = "1.1.9";
outputs = [ "out" "dev" ];
···
owner = "Nvidia";
repo = pname;
rev = version;
-
sha256 = "sha256-pqpJ6Uo50BouBU0wGaL21VH5rDiVHKAvJtfzL0YInXU=";
+
sha256 = "sha256-rcmGVEcOtKTR8sVkHV7Xb+8NuKWUapYn+/Fswi4z6Mc=";
};
depsBuildBuild = [
···
buildInputs = [
eglexternalplatform
+
libGL
libX11
mesa
-
libGL
wayland
+
wayland-protocols
];
postFixup = ''
+2 -2
pkgs/development/libraries/notcurses/default.nix
···
stdenv.mkDerivation rec {
pname = "notcurses";
-
version = "2.4.8";
+
version = "2.4.9";
src = fetchFromGitHub {
owner = "dankamongmen";
repo = "notcurses";
rev = "v${version}";
-
sha256 = "sha256-mVSToryo7+zW1mow8eJT8GrXYlGe/BeSheJtJDKAgzo=";
+
sha256 = "sha256-J7yTNMvmcm69B+yF0PYLXFG8kkcnffWyUx3kEFU0ToI=";
};
outputs = [ "out" "dev" ];
+3 -4
pkgs/development/python-modules/alembic/default.nix
···
, importlib-resources
, pytest-xdist
, pytestCheckHook
-
}:
buildPythonPackage rec {
pname = "alembic";
-
version = "1.7.4";
+
version = "1.7.5";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
-
sha256 = "9d33f3ff1488c4bfab1e1a6dfebbf085e8a8e1a3e047a43ad29ad1f67f012a1d";
+
sha256 = "sha256-fDKGlKLmjwPulx5jw72IWEZHA3OltTLPLJ8WAcQTsVM=";
};
propagatedBuildInputs = [
···
];
pytestFlagsArray = [
-
"--numprocesses" "auto"
+
"--numprocesses" "$NIX_BUILD_CORES"
];
meta = with lib; {
+2 -2
pkgs/development/python-modules/graphql-subscription-manager/default.nix
···
buildPythonPackage rec {
pname = "graphql-subscription-manager";
-
version = "0.4.0";
+
version = "0.4.3";
disabled = pythonOlder "3.7";
···
owner = "Danielhiversen";
repo = "PyGraphqlWebsocketManager";
rev = version;
-
sha256 = "1176xzr9fa7gl5cm0pcv5lb45d2ms5awi601rjcr3a0a14a1i8fz";
+
sha256 = "sha256-+LP+MDeHo0svoN/o0in6xtIqrfxs+UCBQRtBe4lZt+4=";
};
propagatedBuildInputs = [
+1 -1
pkgs/development/python-modules/igraph/default.nix
···
}:
buildPythonPackage rec {
-
pname = "python-igraph";
+
pname = "igraph";
version = "0.9.8";
disabled = pythonOlder "3.6";
+42
pkgs/development/python-modules/lc7001/default.nix
···
+
{ lib
+
, buildPythonPackage
+
, cryptography
+
, fetchPypi
+
, pythonOlder
+
, poetry-core
+
}:
+
+
buildPythonPackage rec {
+
pname = "lc7001";
+
version = "1.0.3";
+
format = "pyproject";
+
+
disabled = pythonOlder "3.8";
+
+
src = fetchPypi {
+
inherit pname version;
+
sha256 = "NgnszlgmeUnfWs9onnboFRz3c4OibsNaZHjDINvoMPc=";
+
};
+
+
nativeBuildInputs = [
+
poetry-core
+
];
+
+
propagatedBuildInputs = [
+
cryptography
+
];
+
+
# Project has no tests
+
doCheck = false;
+
+
pythonImportsCheck = [
+
"lc7001"
+
];
+
+
meta = with lib; {
+
description = "Python module for interacting with Legrand LC7001";
+
homepage = "https://github.com/rtyle/lc7001";
+
license = licenses.mit;
+
maintainers = with maintainers; [ fab ];
+
};
+
}
+2 -2
pkgs/development/python-modules/xdg/default.nix
···
}:
buildPythonPackage rec {
-
version = "5.0.2";
+
version = "5.1.1";
pname = "xdg";
disabled = isPy27;
format = "pyproject";
···
owner = "srstevenson";
repo = pname;
rev = version;
-
sha256 = "sha256-wZfihMrq83Bye5CE5p7bTlI9Z7CsCkSd8Art5ws4vsY=";
+
sha256 = "sha256-z/Zvo2WGw9qA+M3Pt9r35DuxtuhL7/I75LlFEdDOJcc=";
};
nativeBuildInputs = [ poetry-core ];
+48 -38
pkgs/development/tools/misc/coreboot-toolchain/default.nix
···
, zlib
}:
-
stdenvNoCC.mkDerivation rec {
-
pname = "coreboot-toolchain";
-
version = "4.15";
+
let
+
common = arch: stdenvNoCC.mkDerivation rec {
+
pname = "coreboot-toolchain-${arch}";
+
version = "4.15";
-
src = fetchgit {
-
url = "https://review.coreboot.org/coreboot";
-
rev = version;
-
sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9";
-
fetchSubmodules = false;
-
leaveDotGit = true;
-
postFetch = ''
-
patchShebangs $out/util/crossgcc/buildgcc
-
PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version
-
rm -rf $out/.git
-
'';
-
};
+
src = fetchgit {
+
url = "https://review.coreboot.org/coreboot";
+
rev = version;
+
sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9";
+
fetchSubmodules = false;
+
leaveDotGit = true;
+
postFetch = ''
+
patchShebangs $out/util/crossgcc/buildgcc
+
PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version
+
rm -rf $out/.git
+
'';
+
};
-
nativeBuildInputs = [ bison curl git perl ];
-
buildInputs = [ flex gnat11 zlib ];
+
nativeBuildInputs = [ bison curl git perl ];
+
buildInputs = [ flex gnat11 zlib ];
-
enableParallelBuilding = true;
-
dontConfigure = true;
-
dontInstall = true;
+
enableParallelBuilding = true;
+
dontConfigure = true;
+
dontInstall = true;
-
postPatch = ''
-
mkdir -p util/crossgcc/tarballs
+
postPatch = ''
+
mkdir -p util/crossgcc/tarballs
-
${lib.concatMapStringsSep "\n" (
-
file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
-
) (callPackage ./stable.nix { })
-
}
+
${lib.concatMapStringsSep "\n" (
+
file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
+
) (callPackage ./stable.nix { })
+
}
-
patchShebangs util/genbuild_h/genbuild_h.sh
-
'';
+
patchShebangs util/genbuild_h/genbuild_h.sh
+
'';
-
buildPhase = ''
-
export CROSSGCC_VERSION=$(cat .crossgcc_version)
-
make crossgcc-i386 CPUS=$NIX_BUILD_CORES DEST=$out
-
'';
+
buildPhase = ''
+
export CROSSGCC_VERSION=$(cat .crossgcc_version)
+
make crossgcc-${arch} CPUS=$NIX_BUILD_CORES DEST=$out
+
'';
-
meta = with lib; {
-
homepage = "https://www.coreboot.org";
-
description = "coreboot toolchain";
-
license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
-
maintainers = with maintainers; [ felixsinger ];
-
platforms = platforms.linux;
+
meta = with lib; {
+
homepage = "https://www.coreboot.org";
+
description = "coreboot toolchain for ${arch} targets";
+
license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
+
maintainers = with maintainers; [ felixsinger ];
+
platforms = platforms.linux;
+
};
};
+
in {
+
i386 = common "i386";
+
x86_64 = common "x64";
+
arm = common "arm";
+
aarch64 = common "aarch64";
+
riscv = common "riscv";
+
ppc64 = common "ppc64";
+
nds32le = common "nds32le";
}
+80 -29
pkgs/misc/emulators/retroarch/default.nix
···
-
{ lib, stdenv, fetchFromGitHub, which, pkg-config, makeWrapper
-
, ffmpeg, libGLU, libGL, freetype, libxml2, python3
-
, libobjc, AppKit, Foundation
-
, alsa-lib ? null
-
, libdrm ? null
-
, libpulseaudio ? null
-
, libv4l ? null
-
, libX11 ? null
-
, libXdmcp ? null
-
, libXext ? null
-
, libXxf86vm ? null
-
, mesa ? null
-
, SDL2 ? null
-
, udev ? null
-
, enableNvidiaCgToolkit ? false, nvidia_cg_toolkit ? null
-
, withVulkan ? stdenv.isLinux, vulkan-loader ? null
+
{ lib
+
, stdenv
+
, enableNvidiaCgToolkit ? false
+
, withVulkan ? stdenv.isLinux
+
, alsa-lib
+
, AppKit
+
, fetchFromGitHub
+
, ffmpeg
+
, Foundation
+
, freetype
+
, libdrm
+
, libGL
+
, libGLU
+
, libobjc
+
, libpulseaudio
+
, libv4l
+
, libX11
+
, libXdmcp
+
, libXext
+
, libxkbcommon
+
, libxml2
+
, libXxf86vm
+
, makeWrapper
+
, mesa
+
, nvidia_cg_toolkit
+
, pkg-config
+
, python3
+
, SDL2
+
, substituteAll
+
, udev
+
, vulkan-loader
, wayland
-
, libxkbcommon
+
, which
}:
with lib;
+
let
+
libretroSuperSrc = fetchFromGitHub {
+
owner = "libretro";
+
repo = "libretro-super";
+
sha256 = "sha256-4WB6/1DDec+smhMJKLCxWb4+LQlZN8v2ik69saKixkE=";
+
rev = "fa70d9843838df719623094965bd447e4db0d1b4";
+
};
+
in
stdenv.mkDerivation rec {
pname = "retroarch-bare";
-
# FIXME: retroarch >=1.9.3 doesn't load the cores
-
version = "1.9.2";
+
version = "1.9.13.2";
src = fetchFromGitHub {
owner = "libretro";
repo = "RetroArch";
-
sha256 = "sha256-Dwv0hl+d99FbVMG4KnkjO1aYfAw0m4x+zvrbyb/wOX8=";
+
sha256 = "sha256-fehHchn+o9QM2wIK6zYamnbFvQda32Gw0rJk8Orx00U=";
rev = "v${version}";
};
-
nativeBuildInputs = [ pkg-config wayland ]
-
++ optional withVulkan makeWrapper;
+
patches = [
+
# FIXME: The `retroarch.cfg` file is created once in the first run and only
+
# updated when needed. However, the file may have out-of-date paths
+
# In case of issues (e.g.: cores are not loading), please delete the
+
# `$XDG_CONFIG_HOME/retroarch/retroarch.cfg` file
+
# See: https://github.com/libretro/RetroArch/issues/13251
+
./fix-config.patch
+
];
-
buildInputs = [ ffmpeg freetype libxml2 libGLU libGL python3 SDL2 which ]
-
++ optional enableNvidiaCgToolkit nvidia_cg_toolkit
-
++ optional withVulkan vulkan-loader
-
++ optionals stdenv.isDarwin [ libobjc AppKit Foundation ]
-
++ optionals stdenv.isLinux [ alsa-lib libdrm libpulseaudio libv4l libX11
-
libXdmcp libXext libXxf86vm mesa udev
-
wayland libxkbcommon ];
+
postPatch = ''
+
substituteInPlace retroarch.cfg \
+
--replace "@libretro_directory@" "$out/lib" \
+
--replace "@libretro_info_path@" "$out/share/libretro/info" \
+
'';
+
+
nativeBuildInputs = [ pkg-config wayland ] ++
+
optional withVulkan makeWrapper;
+
+
buildInputs = [ ffmpeg freetype libxml2 libGLU libGL python3 SDL2 which ] ++
+
optional enableNvidiaCgToolkit nvidia_cg_toolkit ++
+
optional withVulkan vulkan-loader ++
+
optionals stdenv.isDarwin [ libobjc AppKit Foundation ] ++
+
optionals stdenv.isLinux [
+
alsa-lib
+
libdrm
+
libpulseaudio
+
libv4l
+
libX11
+
libXdmcp
+
libXext
+
libXxf86vm
+
mesa
+
udev
+
wayland
+
libxkbcommon
+
];
enableParallelBuilding = true;
configureFlags = lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" ];
postInstall = optionalString withVulkan ''
+
mkdir -p $out/share/libretro/info
+
# TODO: ideally each core should have its own core information
+
cp -r ${libretroSuperSrc}/dist/info/* $out/share/libretro/info
wrapProgram $out/bin/retroarch --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
'';
+26
pkgs/misc/emulators/retroarch/fix-config.patch
···
+
diff --git a/retroarch.cfg b/retroarch.cfg
+
index cdcb199c9f..08b9b1cf10 100644
+
--- a/retroarch.cfg
+
+++ b/retroarch.cfg
+
@@ -681,7 +681,7 @@
+
# menu_show_online_updater = true
+
+
# If disabled, will hide the ability to update cores (and core info files) inside the menu.
+
-# menu_show_core_updater = true
+
+menu_show_core_updater = false
+
+
# If disabled, the libretro core will keep running in the background when we
+
# are in the menu.
+
@@ -823,10 +823,10 @@
+
# rgui_browser_directory =
+
+
# Core directory for libretro core implementations.
+
-# libretro_directory =
+
+libretro_directory = @libretro_directory@
+
+
# Core info directory for libretro core information.
+
-# libretro_info_path =
+
+libretro_info_path = @libretro_info_path@
+
+
# Path to content database directory.
+
# content_database_path =
+4 -4
pkgs/tools/misc/g933-utils/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "g933-utils";
-
version = "unstable-2019-08-04";
+
version = "unstable-2021-11-19";
src = fetchFromGitHub {
owner = "ashkitten";
repo = "g933-utils";
-
rev = "b80cfd59fc41ae5d577c147311376dd7f7882493";
-
sha256 = "06napzpk3nayzixb4l4fzdiwpgmcrsbc5j9m4qip1yn6dfkin3p0";
+
rev = "1fc8cec375ed0d6f72191eadec788a49f51032d1";
+
sha256 = "sha256-kGLMRqZHzRuXQNTjIuLz8JPC1c/ZK38msfkTIVnaomg=";
};
-
cargoSha256 = "00gzfbxr5qzb9w7xkqd9jgfagb4c7p657m21b467pygzvaabbb8d";
+
cargoSha256 = "sha256-FBX5hrS8tNWN83XX+x+s/mYyvO1h6V63bXCx7y0R8bY=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ udev ];
+3 -1
pkgs/top-level/all-packages.nix
···
pscid = nodePackages.pscid;
-
coreboot-toolchain = callPackage ../development/tools/misc/coreboot-toolchain { };
+
coreboot-toolchain = callPackages ../development/tools/misc/coreboot-toolchain { };
remarkable-toolchain = callPackage ../development/tools/misc/remarkable/remarkable-toolchain { };
···
redhat-official-fonts = callPackage ../data/fonts/redhat-official { };
rime-data = callPackage ../data/misc/rime-data { };
+
+
rose-pine-gtk-theme = callPackage ../data/themes/rose-pine-gtk { };
route159 = callPackage ../data/fonts/route159 { };
+2
pkgs/top-level/python-packages.nix
···
lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
+
lc7001 = callPackage ../development/python-modules/lc7001 { };
+
ldap = callPackage ../development/python-modules/ldap {
inherit (pkgs) openldap cyrus_sasl;
};