Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-11-20 06:01:21 +00:00 committed by GitHub
commit 0373476c4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 387 additions and 139 deletions

View File

@ -20,7 +20,7 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-
- [ ] aarch64-linux - [ ] aarch64-linux
- [ ] x86_64-darwin - [ ] x86_64-darwin
- [ ] aarch64-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: - [ ] 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)) - [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) - and/or [package tests](https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests)

View File

@ -1,10 +1,10 @@
/* /*
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, ... }: { config, lib, options, pkgs, ... }:
let let
@ -27,6 +27,16 @@ let
settingsModule = { config, ... }: { settingsModule = { config, ... }: {
freeformType = format.type; freeformType = format.type;
options = { 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 { baseDirectory = mkOption {
type = types.path; type = types.path;
default = "/var/lib/hercules-ci-agent"; default = "/var/lib/hercules-ci-agent";
@ -55,6 +65,25 @@ let
type = types.either types.ints.positive (types.enum [ "auto" ]); type = types.either types.ints.positive (types.enum [ "auto" ]);
default = "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 { workDirectory = mkOption {
description = '' description = ''
The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation. The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation.
@ -66,6 +95,8 @@ let
staticSecretsDirectory = mkOption { staticSecretsDirectory = mkOption {
description = '' description = ''
This is the default directory to look for statically configured secrets like <literal>cluster-join-token.key</literal>. 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; type = types.path;
default = config.baseDirectory + "/secrets"; default = config.baseDirectory + "/secrets";
@ -74,24 +105,48 @@ let
clusterJoinTokenPath = mkOption { clusterJoinTokenPath = mkOption {
description = '' description = ''
Location of the cluster-join-token.key file. 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; type = types.path;
default = config.staticSecretsDirectory + "/cluster-join-token.key"; default = config.staticSecretsDirectory + "/cluster-join-token.key";
defaultText = literalExpression ''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 { binaryCachesPath = mkOption {
description = '' 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; type = types.path;
default = config.staticSecretsDirectory + "/binary-caches.json"; default = config.staticSecretsDirectory + "/binary-caches.json";
defaultText = literalExpression ''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. secretsJsonPath = mkOption {
internal = true; 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"'';
}; };
}; };
}; };
@ -177,7 +232,7 @@ in
These are written as options instead of let binding to allow sharing with These are written as options instead of let binding to allow sharing with
default.nix on both NixOS and nix-darwin. default.nix on both NixOS and nix-darwin.
*/ */
tomlFile = mkOption { tomlFile = mkOption {
type = types.path; type = types.path;
internal = true; internal = true;

View File

@ -1,10 +1,10 @@
/* /*
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, ... }: { pkgs, config, lib, ... }:
let let

View File

@ -1,20 +1,17 @@
{ fetchFromGitHub, lib, rustPlatform, stdenv, SystemConfiguration }: { lib, rustPlatform, fetchFromGitHub, stdenv, SystemConfiguration }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "joshuto"; pname = "joshuto";
version = "0.9.1"; version = "0.9.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kamiyaa"; owner = "kamiyaa";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-+qKOvFoEF/gZL4ijL8lIRWE9ZWJM2eBlk29Lk46jAfQ="; sha256 = "sha256-9TGHSGYCzU6uAIO4zZ/6+B4oVPE6SD9Phl4dShylW5o=";
}; };
# upstream includes an outdated Cargo.lock that stops cargo from compiling cargoSha256 = "sha256-g8YYOk2RW4GPdkWlvAxd5KFdV4S1l5yKEzNm9OAc8RI=";
cargoPatches = [ ./fix-cargo-lock.patch ];
cargoSha256 = "sha256-JlekxU9pMkHNsIcH3+7b2I6MYUlxRqNX+0wwyVrQMAE=";
buildInputs = lib.optional stdenv.isDarwin SystemConfiguration; buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;

View File

@ -1,11 +0,0 @@
--- 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",

View File

@ -3,6 +3,7 @@
, lib , lib
, fetchFromGitHub , fetchFromGitHub
, ncurses , ncurses
, perl
, pkg-config , pkg-config
, python3 , python3
, fontconfig , fontconfig
@ -48,7 +49,7 @@ rustPlatform.buildRustPackage rec {
pkg-config pkg-config
python3 python3
ncurses # tic for terminfo ncurses # tic for terminfo
]; ] ++ lib.optional stdenv.isDarwin perl;
buildInputs = [ buildInputs = [
fontconfig fontconfig
@ -102,5 +103,7 @@ rustPlatform.buildRustPackage rec {
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ SuperSandro2000 ]; maintainers = with maintainers; [ SuperSandro2000 ];
platforms = platforms.unix; platforms = platforms.unix;
# Fails on missing UserNotifications framework while linking
broken = stdenv.isDarwin;
}; };
} }

View File

@ -1,24 +1,44 @@
{ 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 { stdenv.mkDerivation rec {
pname = "qogir-theme"; pname = "qogir-theme";
version = "2021-08-02"; version = "2021-11-17";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vinceliuice"; owner = "vinceliuice";
repo = pname; repo = pname;
rev = version; 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 = '' installPhase = ''
patchShebangs . patchShebangs .
mkdir -p $out/share/themes 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} mkdir -p $out/share/doc/${pname}
cp -a src/firefox $out/share/doc/${pname} cp -a src/firefox $out/share/doc/${pname}
rm $out/share/themes/*/{AUTHORS,COPYING} rm $out/share/themes/*/{AUTHORS,COPYING}

View File

@ -0,0 +1,44 @@
{ 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 ];
};
}

View File

@ -88,4 +88,6 @@ self: super: {
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ]; executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
}) super.hnix); }) super.hnix);
mime-string = disableOptimization super.mime-string;
} }

View File

@ -106,4 +106,6 @@ self: super: {
# https://github.com/haskellari/time-compat/issues/23 # https://github.com/haskellari/time-compat/issues/23
time-compat = dontCheck super.time-compat; time-compat = dontCheck super.time-compat;
mime-string = disableOptimization super.mime-string;
} }

View File

@ -129,4 +129,6 @@ self: super: {
vector = dontCheck super.vector; vector = dontCheck super.vector;
ghc-api-compat = doDistribute super.ghc-api-compat_8_6; ghc-api-compat = doDistribute super.ghc-api-compat_8_6;
mime-string = disableOptimization super.mime-string;
} }

View File

@ -128820,8 +128820,8 @@ self: {
}: }:
mkDerivation { mkDerivation {
pname = "hercules-ci-agent"; pname = "hercules-ci-agent";
version = "0.8.3"; version = "0.8.4";
sha256 = "0gwbks6yrjjrys39043wdyx1v0fg8ailv3149b2xi4d49p4jin40"; sha256 = "1w93027i5kddn1rj5dgnmvgsadfv3s6ziyga4k3mp094wx2g6syy";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
libraryHaskellDepends = [ libraryHaskellDepends = [
@ -128959,8 +128959,8 @@ self: {
}: }:
mkDerivation { mkDerivation {
pname = "hercules-ci-cli"; pname = "hercules-ci-cli";
version = "0.2.3"; version = "0.2.4";
sha256 = "10scykaf8kadvgvc5pxjdyn8zvxqmp5gkdy0n82p4mmf2chmdzqz"; sha256 = "0imx1srpi518616jif62l542qpw2wcfiq5a622rg5w76k2vz0hpl";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
libraryHaskellDepends = [ libraryHaskellDepends = [
@ -129016,8 +129016,8 @@ self: {
}: }:
mkDerivation { mkDerivation {
pname = "hercules-ci-cnix-store"; pname = "hercules-ci-cnix-store";
version = "0.2.1.0"; version = "0.2.1.1";
sha256 = "18165kwcklp6hg9sh5rmqprnc0ixiq8l9w4y87c9m54dbpwdp4na"; sha256 = "0cxir973y3hkm34ci7hc5zsp94s31nnrlkgspwwdd2rakyf4525i";
libraryHaskellDepends = [ libraryHaskellDepends = [
base bytestring conduit containers inline-c inline-c-cpp protolude base bytestring conduit containers inline-c inline-c-cpp protolude
template-haskell unix unliftio-core vector template-haskell unix unliftio-core vector

View File

@ -5,10 +5,11 @@
, meson , meson
, ninja , ninja
, wayland-scanner , wayland-scanner
, libGL
, libX11 , libX11
, mesa , mesa
, libGL
, wayland , wayland
, wayland-protocols
}: }:
let let
@ -41,7 +42,7 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "egl-wayland"; pname = "egl-wayland";
version = "1.1.7"; version = "1.1.9";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -49,7 +50,7 @@ in stdenv.mkDerivation rec {
owner = "Nvidia"; owner = "Nvidia";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-pqpJ6Uo50BouBU0wGaL21VH5rDiVHKAvJtfzL0YInXU="; sha256 = "sha256-rcmGVEcOtKTR8sVkHV7Xb+8NuKWUapYn+/Fswi4z6Mc=";
}; };
depsBuildBuild = [ depsBuildBuild = [
@ -65,10 +66,11 @@ in stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
eglexternalplatform eglexternalplatform
libGL
libX11 libX11
mesa mesa
libGL
wayland wayland
wayland-protocols
]; ];
postFixup = '' postFixup = ''

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "notcurses"; pname = "notcurses";
version = "2.4.8"; version = "2.4.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dankamongmen"; owner = "dankamongmen";
repo = "notcurses"; repo = "notcurses";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-mVSToryo7+zW1mow8eJT8GrXYlGe/BeSheJtJDKAgzo="; sha256 = "sha256-J7yTNMvmcm69B+yF0PYLXFG8kkcnffWyUx3kEFU0ToI=";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];

View File

@ -9,19 +9,18 @@
, importlib-resources , importlib-resources
, pytest-xdist , pytest-xdist
, pytestCheckHook , pytestCheckHook
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "alembic"; pname = "alembic";
version = "1.7.4"; version = "1.7.5";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "9d33f3ff1488c4bfab1e1a6dfebbf085e8a8e1a3e047a43ad29ad1f67f012a1d"; sha256 = "sha256-fDKGlKLmjwPulx5jw72IWEZHA3OltTLPLJ8WAcQTsVM=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -44,7 +43,7 @@ buildPythonPackage rec {
]; ];
pytestFlagsArray = [ pytestFlagsArray = [
"--numprocesses" "auto" "--numprocesses" "$NIX_BUILD_CORES"
]; ];
meta = with lib; { meta = with lib; {

View File

@ -8,7 +8,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "graphql-subscription-manager"; pname = "graphql-subscription-manager";
version = "0.4.0"; version = "0.4.3";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -16,7 +16,7 @@ buildPythonPackage rec {
owner = "Danielhiversen"; owner = "Danielhiversen";
repo = "PyGraphqlWebsocketManager"; repo = "PyGraphqlWebsocketManager";
rev = version; rev = version;
sha256 = "1176xzr9fa7gl5cm0pcv5lb45d2ms5awi601rjcr3a0a14a1i8fz"; sha256 = "sha256-+LP+MDeHo0svoN/o0in6xtIqrfxs+UCBQRtBe4lZt+4=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -9,7 +9,7 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-igraph"; pname = "igraph";
version = "0.9.8"; version = "0.9.8";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";

View File

@ -0,0 +1,42 @@
{ 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 ];
};
}

View File

@ -5,7 +5,7 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
version = "5.0.2"; version = "5.1.1";
pname = "xdg"; pname = "xdg";
disabled = isPy27; disabled = isPy27;
format = "pyproject"; format = "pyproject";
@ -14,7 +14,7 @@ buildPythonPackage rec {
owner = "srstevenson"; owner = "srstevenson";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-wZfihMrq83Bye5CE5p7bTlI9Z7CsCkSd8Art5ws4vsY="; sha256 = "sha256-z/Zvo2WGw9qA+M3Pt9r35DuxtuhL7/I75LlFEdDOJcc=";
}; };
nativeBuildInputs = [ poetry-core ]; nativeBuildInputs = [ poetry-core ];

View File

@ -12,51 +12,61 @@
, zlib , zlib
}: }:
stdenvNoCC.mkDerivation rec { let
pname = "coreboot-toolchain"; common = arch: stdenvNoCC.mkDerivation rec {
version = "4.15"; pname = "coreboot-toolchain-${arch}";
version = "4.15";
src = fetchgit { src = fetchgit {
url = "https://review.coreboot.org/coreboot"; url = "https://review.coreboot.org/coreboot";
rev = version; rev = version;
sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9"; sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9";
fetchSubmodules = false; fetchSubmodules = false;
leaveDotGit = true; leaveDotGit = true;
postFetch = '' postFetch = ''
patchShebangs $out/util/crossgcc/buildgcc patchShebangs $out/util/crossgcc/buildgcc
PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version
rm -rf $out/.git rm -rf $out/.git
'';
};
nativeBuildInputs = [ bison curl git perl ];
buildInputs = [ flex gnat11 zlib ];
enableParallelBuilding = true;
dontConfigure = true;
dontInstall = true;
postPatch = ''
mkdir -p util/crossgcc/tarballs
${lib.concatMapStringsSep "\n" (
file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
) (callPackage ./stable.nix { })
}
patchShebangs util/genbuild_h/genbuild_h.sh
''; '';
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 for ${arch} targets";
license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
maintainers = with maintainers; [ felixsinger ];
platforms = platforms.linux;
};
}; };
in {
nativeBuildInputs = [ bison curl git perl ]; i386 = common "i386";
buildInputs = [ flex gnat11 zlib ]; x86_64 = common "x64";
arm = common "arm";
enableParallelBuilding = true; aarch64 = common "aarch64";
dontConfigure = true; riscv = common "riscv";
dontInstall = true; ppc64 = common "ppc64";
nds32le = common "nds32le";
postPatch = ''
mkdir -p util/crossgcc/tarballs
${lib.concatMapStringsSep "\n" (
file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
) (callPackage ./stable.nix { })
}
patchShebangs util/genbuild_h/genbuild_h.sh
'';
buildPhase = ''
export CROSSGCC_VERSION=$(cat .crossgcc_version)
make crossgcc-i386 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;
};
} }

View File

@ -1,53 +1,104 @@
{ lib, stdenv, fetchFromGitHub, which, pkg-config, makeWrapper { lib
, ffmpeg, libGLU, libGL, freetype, libxml2, python3 , stdenv
, libobjc, AppKit, Foundation , enableNvidiaCgToolkit ? false
, alsa-lib ? null , withVulkan ? stdenv.isLinux
, libdrm ? null , alsa-lib
, libpulseaudio ? null , AppKit
, libv4l ? null , fetchFromGitHub
, libX11 ? null , ffmpeg
, libXdmcp ? null , Foundation
, libXext ? null , freetype
, libXxf86vm ? null , libdrm
, mesa ? null , libGL
, SDL2 ? null , libGLU
, udev ? null , libobjc
, enableNvidiaCgToolkit ? false, nvidia_cg_toolkit ? null , libpulseaudio
, withVulkan ? stdenv.isLinux, vulkan-loader ? null , libv4l
, wayland , libX11
, libXdmcp
, libXext
, libxkbcommon , libxkbcommon
, libxml2
, libXxf86vm
, makeWrapper
, mesa
, nvidia_cg_toolkit
, pkg-config
, python3
, SDL2
, substituteAll
, udev
, vulkan-loader
, wayland
, which
}: }:
with lib; with lib;
let
libretroSuperSrc = fetchFromGitHub {
owner = "libretro";
repo = "libretro-super";
sha256 = "sha256-4WB6/1DDec+smhMJKLCxWb4+LQlZN8v2ik69saKixkE=";
rev = "fa70d9843838df719623094965bd447e4db0d1b4";
};
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "retroarch-bare"; pname = "retroarch-bare";
# FIXME: retroarch >=1.9.3 doesn't load the cores version = "1.9.13.2";
version = "1.9.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "libretro"; owner = "libretro";
repo = "RetroArch"; repo = "RetroArch";
sha256 = "sha256-Dwv0hl+d99FbVMG4KnkjO1aYfAw0m4x+zvrbyb/wOX8="; sha256 = "sha256-fehHchn+o9QM2wIK6zYamnbFvQda32Gw0rJk8Orx00U=";
rev = "v${version}"; rev = "v${version}";
}; };
nativeBuildInputs = [ pkg-config wayland ] patches = [
++ optional withVulkan makeWrapper; # 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 ] postPatch = ''
++ optional enableNvidiaCgToolkit nvidia_cg_toolkit substituteInPlace retroarch.cfg \
++ optional withVulkan vulkan-loader --replace "@libretro_directory@" "$out/lib" \
++ optionals stdenv.isDarwin [ libobjc AppKit Foundation ] --replace "@libretro_info_path@" "$out/share/libretro/info" \
++ optionals stdenv.isLinux [ alsa-lib libdrm libpulseaudio libv4l libX11 '';
libXdmcp libXext libXxf86vm mesa udev
wayland libxkbcommon ]; 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; enableParallelBuilding = true;
configureFlags = lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" ]; configureFlags = lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" ];
postInstall = optionalString withVulkan '' 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 wrapProgram $out/bin/retroarch --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
''; '';

View File

@ -0,0 +1,26 @@
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 =

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "g933-utils"; pname = "g933-utils";
version = "unstable-2019-08-04"; version = "unstable-2021-11-19";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ashkitten"; owner = "ashkitten";
repo = "g933-utils"; repo = "g933-utils";
rev = "b80cfd59fc41ae5d577c147311376dd7f7882493"; rev = "1fc8cec375ed0d6f72191eadec788a49f51032d1";
sha256 = "06napzpk3nayzixb4l4fzdiwpgmcrsbc5j9m4qip1yn6dfkin3p0"; sha256 = "sha256-kGLMRqZHzRuXQNTjIuLz8JPC1c/ZK38msfkTIVnaomg=";
}; };
cargoSha256 = "00gzfbxr5qzb9w7xkqd9jgfagb4c7p657m21b467pygzvaabbb8d"; cargoSha256 = "sha256-FBX5hrS8tNWN83XX+x+s/mYyvO1h6V63bXCx7y0R8bY=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ udev ]; buildInputs = [ udev ];

View File

@ -12068,7 +12068,7 @@ with pkgs;
pscid = nodePackages.pscid; 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 { }; remarkable-toolchain = callPackage ../development/tools/misc/remarkable/remarkable-toolchain { };
@ -23554,6 +23554,8 @@ with pkgs;
rime-data = callPackage ../data/misc/rime-data { }; rime-data = callPackage ../data/misc/rime-data { };
rose-pine-gtk-theme = callPackage ../data/themes/rose-pine-gtk { };
route159 = callPackage ../data/fonts/route159 { }; route159 = callPackage ../data/fonts/route159 { };
sampradaya = callPackage ../data/fonts/sampradaya { }; sampradaya = callPackage ../data/fonts/sampradaya { };

View File

@ -4248,6 +4248,8 @@ in {
lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { }; lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
lc7001 = callPackage ../development/python-modules/lc7001 { };
ldap = callPackage ../development/python-modules/ldap { ldap = callPackage ../development/python-modules/ldap {
inherit (pkgs) openldap cyrus_sasl; inherit (pkgs) openldap cyrus_sasl;
}; };