Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-03-19 00:14:48 +00:00 committed by GitHub
commit 8fc65225d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
228 changed files with 9065 additions and 1915 deletions

7
.github/CODEOWNERS vendored
View File

@ -238,7 +238,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
# VsCode Extensions
/pkgs/applications/editors/vscode @superherointj
/pkgs/applications/editors/vscode/extensions @jonringer
/pkgs/applications/editors/vscode/extensions @jonringer @superherointj
# Prometheus exporter modules and tests
/nixos/modules/services/monitoring/prometheus/exporters.nix @WilliButz
@ -310,3 +310,8 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
/pkgs/build-support/node/build-npm-package @winterqt
/pkgs/build-support/node/fetch-npm-deps @winterqt
/doc/languages-frameworks/javascript.section.md @winterqt
# OCaml
/pkgs/build-support/ocaml @romildo @superherointj @ulrikstrid
/pkgs/development/compilers/ocaml @romildo @superherointj @ulrikstrid
/pkgs/development/ocaml-modules @romildo @superherointj @ulrikstrid

View File

@ -7712,6 +7712,13 @@
githubId = 87115;
name = "Wael Nasreddine";
};
kalebpace = {
email = "kaleb.pace@pm.me";
matrix = "@kalebpace:matrix.org";
github = "kalebpace";
githubId = 5586615;
name = "Kaleb Pace";
};
kalekseev = {
email = "mail@kalekseev.com";
github = "kalekseev";
@ -7797,7 +7804,6 @@
name = "Claudius Holeksa";
};
ken-matsui = {
email = "nix@kmatsui.me";
github = "ken-matsui";
githubId = 26405363;
name = "Ken Matsui";
@ -9248,6 +9254,12 @@
github = "marius851000";
githubId = 22586596;
};
markbeep = {
email = "mrkswrn@gmail.com";
github = "markbeep";
githubId = 20665331;
name = "Mark";
};
markus1189 = {
email = "markus1189@gmail.com";
github = "markus1189";

View File

@ -127,8 +127,7 @@ echo "$urllist" | xargs wget $wgetargs -nH -r -c --no-parent && {
# TODO fetch only missing tar.xz files
echo "fetching $filecount tar.xz files ..."
urllist="$(echo "$filelist" | while read file; do echo "$BASE_URL/$file"; done)"
echo "$urllist" | xargs wget $wgetargs -nH -r -c --no-parent
echo "$filelist" | xargs wget $wgetargs -nH -r -c --no-parent
echo "generating sha256 files ..."
find . -type f -name '*.tar.xz' | while read src; do

View File

@ -65,6 +65,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [photoprism](https://photoprism.app/), a AI-Powered Photos App for the Decentralized Web. Available as [services.photoprism](options.html#opt-services.photoprism.enable).
- [peroxide](https://github.com/ljanyst/peroxide), a fork of the official [ProtonMail bridge](https://github.com/ProtonMail/proton-bridge) that aims to be similar to [Hydroxide](https://github.com/emersion/hydroxide). Available as [services.peroxide](#opt-services.peroxide.enable).
- [autosuspend](https://github.com/languitar/autosuspend), a python daemon that suspends a system if certain conditions are met, or not met.
- [sharing](https://github.com/parvardegr/sharing), a command-line tool to share directories and files from the CLI to iOS and Android devices without the need of an extra client app. Available as [programs.sharing](#opt-programs.sharing.enable).

View File

@ -338,7 +338,7 @@ in
lidarr = 306;
slurm = 307;
kapacitor = 308;
solr = 309;
# solr = 309; removed 2023-03-16
alerta = 310;
minetest = 311;
rss2email = 312;
@ -648,7 +648,7 @@ in
lidarr = 306;
slurm = 307;
kapacitor = 308;
solr = 309;
# solr = 309; removed 2023-03-16
alerta = 310;
minetest = 311;
rss2email = 312;

View File

@ -950,6 +950,7 @@
./services/networking/owamp.nix
./services/networking/pdns-recursor.nix
./services/networking/pdnsd.nix
./services/networking/peroxide.nix
./services/networking/pixiecore.nix
./services/networking/pleroma.nix
./services/networking/polipo.nix
@ -1061,7 +1062,6 @@
./services/search/meilisearch.nix
./services/search/opensearch.nix
./services/search/qdrant.nix
./services/search/solr.nix
./services/security/aesmd.nix
./services/security/certmgr.nix
./services/security/cfssl.nix

View File

@ -156,7 +156,7 @@ let
};
extra = {};
uploads.storage_path = cfg.statePath;
pages = {
pages = optionalAttrs cfg.pages.enable {
enabled = cfg.pages.enable;
port = 8090;
host = cfg.pages.settings.pages-domain;

View File

@ -0,0 +1,131 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.peroxide;
settingsFormat = pkgs.formats.yaml { };
stateDir = "peroxide";
in
{
options.services.peroxide = {
enable = mkEnableOption (lib.mdDoc "enable");
package = mkPackageOptionMD pkgs "peroxide" {
default = [ "peroxide" ];
};
logLevel = mkOption {
# https://github.com/sirupsen/logrus#level-logging
type = types.enum [ "Panic" "Fatal" "Error" "Warning" "Info" "Debug" "Trace" ];
default = "Warning";
example = "Info";
description = lib.mdDoc "Only log messages of this priority or higher.";
};
settings = mkOption {
type = types.submodule {
freeformType = settingsFormat.type;
options = {
UserPortImap = mkOption {
type = types.port;
default = 1143;
description = lib.mdDoc "The port on which to listen for IMAP connections.";
};
UserPortSmtp = mkOption {
type = types.port;
default = 1025;
description = lib.mdDoc "The port on which to listen for SMTP connections.";
};
ServerAddress = mkOption {
type = types.str;
default = "[::0]";
example = "localhost";
description = lib.mdDoc "The address on which to listen for connections.";
};
};
};
default = { };
description = lib.mdDoc ''
Configuration for peroxide. See
[config.example.yaml](https://github.com/ljanyst/peroxide/blob/master/config.example.yaml)
for an example configuration.
'';
};
};
config = mkIf cfg.enable {
services.peroxide.settings = {
# peroxide deletes the cache directory on startup, which requires write
# permission on the parent directory, so we can't use
# /var/cache/peroxide
CacheDir = "/var/cache/peroxide/cache";
X509Key = mkDefault "/var/lib/${stateDir}/key.pem";
X509Cert = mkDefault "/var/lib/${stateDir}/cert.pem";
CookieJar = "/var/lib/${stateDir}/cookies.json";
CredentialsStore = "/var/lib/${stateDir}/credentials.json";
};
users.users.peroxide = {
isSystemUser = true;
group = "peroxide";
};
users.groups.peroxide = { };
systemd.services.peroxide = {
description = "Peroxide ProtonMail bridge";
requires = [ "network.target" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
restartTriggers = [ config.environment.etc."peroxide.conf".source ];
serviceConfig = {
Type = "simple";
User = "peroxide";
LogsDirectory = "peroxide";
LogsDirectoryMode = "0750";
# Specify just "peroxide" so that the user has write permission, because
# peroxide deletes and recreates the cache directory on startup.
CacheDirectory = [ "peroxide" "peroxide/cache" ];
CacheDirectoryMode = "0700";
StateDirectory = stateDir;
StateDirectoryMode = "0700";
ExecStart = "${cfg.package}/bin/peroxide -log-file=/var/log/peroxide/peroxide.log -log-level ${cfg.logLevel}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
};
preStart = ''
# Create a self-signed certificate if no certificate exists.
if [[ ! -e "${cfg.settings.X509Key}" && ! -e "${cfg.settings.X509Cert}" ]]; then
${cfg.package}/bin/peroxide-cfg -action gen-x509 \
-x509-org 'N/A' \
-x509-cn 'nixos' \
-x509-cert "${cfg.settings.X509Cert}" \
-x509-key "${cfg.settings.X509Key}"
fi
'';
};
# https://github.com/ljanyst/peroxide/blob/master/peroxide.logrotate
services.logrotate.settings.peroxide = {
files = "/var/log/peroxide/peroxide.log";
rotate = 31;
frequency = "daily";
compress = true;
delaycompress = true;
missingok = true;
notifempty = true;
su = "peroxide peroxide";
postrotate = "systemctl reload peroxide";
};
environment.etc."peroxide.conf".source = settingsFormat.generate "peroxide.conf" cfg.settings;
environment.systemPackages = [ cfg.package ];
};
meta.maintainers = with maintainers; [ aanderse aidalgol ];
}

View File

@ -1,110 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.solr;
in
{
options = {
services.solr = {
enable = mkEnableOption (lib.mdDoc "Solr");
package = mkOption {
type = types.package;
default = pkgs.solr;
defaultText = literalExpression "pkgs.solr";
description = lib.mdDoc "Which Solr package to use.";
};
port = mkOption {
type = types.port;
default = 8983;
description = lib.mdDoc "Port on which Solr is ran.";
};
stateDir = mkOption {
type = types.path;
default = "/var/lib/solr";
description = lib.mdDoc "The solr home directory containing config, data, and logging files.";
};
extraJavaOptions = mkOption {
type = types.listOf types.str;
default = [];
description = lib.mdDoc "Extra command line options given to the java process running Solr.";
};
user = mkOption {
type = types.str;
default = "solr";
description = lib.mdDoc "User under which Solr is ran.";
};
group = mkOption {
type = types.str;
default = "solr";
description = lib.mdDoc "Group under which Solr is ran.";
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.services.solr = {
after = [ "network.target" "remote-fs.target" "nss-lookup.target" "systemd-journald-dev-log.socket" ];
wantedBy = [ "multi-user.target" ];
environment = {
SOLR_HOME = "${cfg.stateDir}/data";
LOG4J_PROPS = "${cfg.stateDir}/log4j2.xml";
SOLR_LOGS_DIR = "${cfg.stateDir}/logs";
SOLR_PORT = "${toString cfg.port}";
};
path = with pkgs; [
gawk
procps
];
preStart = ''
mkdir -p "${cfg.stateDir}/data";
mkdir -p "${cfg.stateDir}/logs";
if ! test -e "${cfg.stateDir}/data/solr.xml"; then
install -D -m0640 ${cfg.package}/server/solr/solr.xml "${cfg.stateDir}/data/solr.xml"
install -D -m0640 ${cfg.package}/server/solr/zoo.cfg "${cfg.stateDir}/data/zoo.cfg"
fi
if ! test -e "${cfg.stateDir}/log4j2.xml"; then
install -D -m0640 ${cfg.package}/server/resources/log4j2.xml "${cfg.stateDir}/log4j2.xml"
fi
'';
serviceConfig = {
User = cfg.user;
Group = cfg.group;
ExecStart="${cfg.package}/bin/solr start -f -a \"${concatStringsSep " " cfg.extraJavaOptions}\"";
ExecStop="${cfg.package}/bin/solr stop";
};
};
users.users = optionalAttrs (cfg.user == "solr") {
solr = {
group = cfg.group;
home = cfg.stateDir;
createHome = true;
uid = config.ids.uids.solr;
};
};
users.groups = optionalAttrs (cfg.group == "solr") {
solr.gid = config.ids.gids.solr;
};
};
}

View File

@ -528,6 +528,7 @@ in {
peerflix = handleTest ./peerflix.nix {};
peering-manager = handleTest ./web-apps/peering-manager.nix {};
peertube = handleTestOn ["x86_64-linux"] ./web-apps/peertube.nix {};
peroxide = handleTest ./peroxide.nix {};
pgadmin4 = handleTest ./pgadmin4.nix {};
pgjwt = handleTest ./pgjwt.nix {};
pgmanage = handleTest ./pgmanage.nix {};
@ -623,7 +624,6 @@ in {
soapui = handleTest ./soapui.nix {};
sogo = handleTest ./sogo.nix {};
solanum = handleTest ./solanum.nix {};
solr = handleTest ./solr.nix {};
sonarr = handleTest ./sonarr.nix {};
sourcehut = handleTest ./sourcehut.nix {};
spacecookie = handleTest ./spacecookie.nix {};

View File

@ -3,7 +3,7 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "netdata";
meta = with pkgs.lib.maintainers; {
maintainers = [ cransom ];
maintainers = [ cransom raitobezarius ];
};
nodes = {

16
nixos/tests/peroxide.nix Normal file
View File

@ -0,0 +1,16 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "peroxide";
meta.maintainers = with lib.maintainers; [ aidalgol ];
nodes.machine =
{ config, pkgs, ... }: {
networking.hostName = "nixos";
services.peroxide.enable = true;
};
testScript = ''
machine.wait_for_unit("peroxide.service")
machine.wait_for_open_port(1143) # IMAP
machine.wait_for_open_port(1025) # SMTP
'';
})

View File

@ -20,6 +20,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
}; in {
pomerium = { pkgs, lib, ... }: {
imports = [ (base "192.168.1.1") ];
environment.systemPackages = with pkgs; [ chromium ];
services.pomerium = {
enable = true;
settings = {
@ -98,5 +99,11 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
pomerium.succeed(
"curl -L --resolve login.required:80:127.0.0.1 http://login.required | grep 'hello I am login page'"
)
with subtest("ui"):
pomerium.succeed(
# check for a string that only appears if the UI is displayed correctly
"chromium --no-sandbox --headless --disable-gpu --dump-dom --host-resolver-rules='MAP login.required 127.0.0.1:80' http://login.required/.pomerium | grep 'contact your administrator'"
)
'';
})

View File

@ -1,56 +0,0 @@
import ./make-test-python.nix ({ pkgs, ... }:
{
name = "solr";
meta.maintainers = [ pkgs.lib.maintainers.aanderse ];
nodes.machine =
{ config, pkgs, ... }:
{
# Ensure the virtual machine has enough memory for Solr to avoid the following error:
#
# OpenJDK 64-Bit Server VM warning:
# INFO: os::commit_memory(0x00000000e8000000, 402653184, 0)
# failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 402653184 bytes for committing reserved memory.
virtualisation.memorySize = 2000;
services.solr.enable = true;
};
testScript = ''
start_all()
machine.wait_for_unit("solr.service")
machine.wait_for_open_port(8983)
machine.succeed("curl --fail http://localhost:8983/solr/")
# adapted from pkgs.solr/examples/films/README.txt
machine.succeed("sudo -u solr solr create -c films")
assert '"status":0' in machine.succeed(
"""
curl http://localhost:8983/solr/films/schema -X POST -H 'Content-type:application/json' --data-binary '{
"add-field" : {
"name":"name",
"type":"text_general",
"multiValued":false,
"stored":true
},
"add-field" : {
"name":"initial_release_date",
"type":"pdate",
"stored":true
}
}'
"""
)
machine.succeed(
"sudo -u solr post -c films ${pkgs.solr}/example/films/films.json"
)
assert '"name":"Batman Begins"' in machine.succeed(
"curl http://localhost:8983/solr/films/query?q=name:batman"
)
'';
})

View File

@ -26,7 +26,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
};
testScript = { nodes, ... }: let
user = nodes.machine.config.users.users.alice;
user = nodes.machine.users.users.alice;
in ''
machine.wait_for_x()
machine.wait_for_file("${user.home}/.Xauthority")

View File

@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
rustPlatform,
stdenv,
libusb1,
AppKit,
IOKit,
pkg-config,
}:
rustPlatform.buildRustPackage rec {
pname = "minidsp";
version = "0.1.9";
src = fetchFromGitHub {
owner = "mrene";
repo = "minidsp-rs";
# v0.1.9 tag is out of date, cargo lock fixed in next commit on main
rev = "b03a95a05917f20b9c3153c03e4e99dd943d9f6f";
hash = "sha256-uZBrX3VCCpr7AY82PgR596mncL5wWDK7bpx2m/jCJBE=";
};
cargoHash = "sha256-0PyojyimxnwEtHA98Npf4eHvycjuXdPrrIFilVuEnQk=";
cargoBuildFlags = ["-p minidsp -p minidsp-daemon"];
buildInputs =
lib.optionals stdenv.isLinux [libusb1]
++ lib.optionals stdenv.isDarwin [AppKit IOKit];
nativeBuildInputs = lib.optionals stdenv.isLinux [pkg-config];
meta = with lib; {
description = "A control interface for some MiniDSP products";
homepage = "https://github.com/mrene/minidsp-rs";
license = licenses.asl20;
platforms = platforms.linux ++ platforms.darwin;
maintainers = [maintainers.adamcstephens];
};
}

View File

@ -27,6 +27,7 @@
, help2man
, jq
, json-glib
, kissfft
, libadwaita
, libaudec
, libbacktrace
@ -86,13 +87,13 @@ let
});
in stdenv.mkDerivation rec {
pname = "zrythm";
version = "1.0.0-beta.4.5.62";
version = "1.0.0-beta.4.6.3";
src = fetchFromSourcehut {
owner = "~alextee";
repo = pname;
rev = "v${version}";
hash = "sha256-K93Y4Adh9TqoetSn7nrbbruIri1MKYoSGzoRBGHwbPA=";
hash = "sha256-5GBr8N+GzbptrvP/NisBXT0dsl9vn537B4InB00/N+A=";
};
nativeBuildInputs = [
@ -135,6 +136,7 @@ in stdenv.mkDerivation rec {
gtksourceview5
guile
json-glib
kissfft
libadwaita
libbacktrace
libcyaml
@ -213,7 +215,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://www.zrythm.org";
description = "Automated and intuitive digital audio workstation";
maintainers = with maintainers; [ tshaynik magnetophon ];
maintainers = with maintainers; [ tshaynik magnetophon yuu ];
platforms = platforms.linux;
license = licenses.agpl3Plus;
};

View File

@ -66,9 +66,6 @@ self: let
seq = if lib.versionAtLeast self.emacs.version "27"
then null
else super.seq;
project = if lib.versionAtLeast self.emacs.version "28"
then null
else super.project;
# Compilation instructions for the Ada executables:
# https://www.nongnu.org/ada-mode/
ada-mode = super.ada-mode.overrideAttrs (old: {

View File

@ -796,18 +796,18 @@ self: super: {
sniprun =
let
version = "1.2.8";
version = "1.2.13";
src = fetchFromGitHub {
owner = "michaelb";
repo = "sniprun";
rev = "v${version}";
sha256 = "sha256-iPZ0DPAErkMJIn85t1FIiGhLcMZlL06iNKLqmRu7gXI=";
hash = "sha256-VDLBktZChRgorJt/V/wuFQn/SL4yOZIElmntEQEi8Tc=";
};
sniprun-bin = rustPlatform.buildRustPackage {
pname = "sniprun-bin";
inherit version src;
cargoSha256 = "sha256-HZEh6jtuRqsyjyDbDIV38x2N1unbSu24D8vrPZ17ktE=";
cargoSha256 = "sha256-cJwmuwsC81fSH36TRU7xGzlR4pVdjsw73uRaH1uWY+0=";
nativeBuildInputs = [ makeWrapper ];

View File

@ -12,11 +12,11 @@ in
sha256 = "sha256-vWqGxMbxKqd4UgKK0sOKadMTDf6Y3TQxfWsc93MHjFs=";
};
meta = with lib; {
meta = {
description = ''
Visual Studio Code plugin for automatic time tracking and metrics generated
from your programming activity
'';
license = licenses.bsd3;
license = lib.licenses.bsd3;
};
}

View File

@ -20,10 +20,10 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
ln -s ${rescript-editor-analysis}/bin ${analysisDir}
'';
meta = with lib; {
meta = {
description = "The official VSCode plugin for ReScript";
homepage = "https://github.com/rescript-lang/rescript-vscode";
maintainers = with maintainers; [ dlip jayesh-bhoot ];
license = licenses.mit;
maintainers = [ lib.maintainers.dlip lib.maintainers.jayesh-bhoot ];
license = lib.licenses.mit;
};
}

View File

@ -25,10 +25,10 @@ stdenv.mkDerivation {
install -D -m0555 rescript-editor-analysis.exe $out/bin/rescript-editor-analysis.exe
'';
meta = with lib; {
meta = {
description = "Analysis binary for the ReScript VSCode plugin";
homepage = "https://github.com/rescript-lang/rescript-vscode";
maintainers = with maintainers; [ dlip jayesh-bhoot ];
license = licenses.mit;
maintainers = [ lib.maintainers.dlip lib.maintainers.jayesh-bhoot ];
license = lib.licenses.mit;
};
}

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
substituteInPlace out/serverPath.js --replace TERRAFORM-LS-PATH ${terraform-ls}/bin/terraform-ls
'';
meta = with lib; {
license = licenses.mit;
maintainers = with maintainers; [ rhoriguchi ];
meta = {
license = lib.licenses.mit;
maintainers = [ lib.maintainers.rhoriguchi ];
};
}

View File

@ -13,15 +13,15 @@ vscode-utils.buildVscodeMarketplaceExtension {
jq '.contributes.configuration.properties."plantuml.java".default = "${plantuml}/bin/plantuml"' package.json | sponge package.json
'';
meta = with lib; {
meta = {
description = "A Visual Studio Code extension for supporting Rich PlantUML";
downloadPage =
"https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml";
homepage = "https://github.com/qjebbs/vscode-plantuml";
changelog =
"https://marketplace.visualstudio.com/items/jebbs.plantuml/changelog";
license = licenses.mit;
maintainers = with maintainers; [ victormignot ];
license = lib.licenses.mit;
maintainers = [ lib.maintainers.victormignot ];
};
}

View File

@ -121,11 +121,11 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
'')
vsixInfo.binaries));
meta = with lib; {
meta = {
description = "C# for Visual Studio Code (powered by OmniSharp)";
homepage = "https://github.com/OmniSharp/omnisharp-vscode";
license = licenses.mit;
maintainers = [ maintainers.jraygauthier ];
license = lib.licenses.mit;
maintainers = [ lib.maintainers.jraygauthier ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
}

View File

@ -76,13 +76,13 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
fi
'';
meta = with lib; {
meta = {
description = "A Visual Studio Code extension with rich support for the Python language";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-python.python";
homepage = "https://github.com/Microsoft/vscode-python";
changelog = "https://github.com/microsoft/vscode-python/releases";
license = licenses.mit;
license = lib.licenses.mit;
platforms = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
maintainers = with maintainers; [ jraygauthier jfchevrette ];
maintainers = [ lib.maintainers.jraygauthier lib.maintainers.jfchevrette ];
};
}

View File

@ -30,10 +30,10 @@ vscode-utils.buildVscodeMarketplaceExtension {
jq "$(print_jq_query)" ./package.json | sponge ./package.json
'';
meta = with lib; {
meta = {
description = "Jupyter extension for vscode";
homepage = "https://github.com/microsoft/vscode-jupyter";
license = licenses.mit;
maintainers = with maintainers; [ jraygauthier ];
license = lib.licenses.mit;
maintainers = [ lib.maintainers.jraygauthier ];
};
}

View File

@ -87,9 +87,9 @@ buildVscodeMarketplaceExtension {
--replace '# Start the server\n' '${patch}'
'';
meta = with lib; {
meta = {
description = "Use any remote machine with a SSH server as your development environment.";
license = licenses.unfree;
maintainers = with maintainers; [ SuperSandro2000 tbenst ];
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.SuperSandro2000 lib.maintainers.tbenst ];
};
}

View File

@ -80,11 +80,11 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
wrapProgram $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7 --prefix PATH : ${lib.makeBinPath [ gdb ]}
'';
meta = with lib; {
meta = {
description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.";
homepage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools";
license = licenses.unfree;
maintainers = with maintainers; [ jraygauthier stargate01 ];
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.jraygauthier lib.maintainers.stargate01 ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -44,11 +44,11 @@ in ((vscode-utils.override { stdenv = gccStdenv; }).buildVscodeMarketplaceExtens
--replace "'xsel'" "'${xsel}/bin/xsel'"
'';
meta = with lib; {
meta = {
description = "Live Share lets you achieve greater confidence at speed by streamlining collaborative editing, debugging, and more in real-time during development";
homepage = "https://aka.ms/vsls-docs";
license = licenses.unfree;
maintainers = with maintainers; [ jraygauthier V ];
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.jraygauthier lib.maintainers.V ];
platforms = [ "x86_64-linux" ];
};
})

View File

@ -80,11 +80,11 @@ vscode-utils.buildVscodeExtension {
package.json | sponge package.json
'';
meta = with lib; {
meta = {
description = "An alternative rust language server to the RLS";
homepage = "https://github.com/rust-lang/rust-analyzer";
license = with licenses; [ mit asl20 ];
maintainers = with maintainers; [ ];
platforms = platforms.all;
license = [ lib.licenses.mit lib.licenses.asl20 ];
maintainers = [ ];
platforms = lib.platforms.all;
};
}

View File

@ -18,10 +18,10 @@ vscode-utils.buildVscodeMarketplaceExtension {
$out/$installPrefix/server/bin/lua-language-server
'';
meta = with lib; {
meta = {
description = "The Lua language server provides various language features for Lua to make development easier and faster.";
homepage = "https://marketplace.visualstudio.com/items?itemName=sumneko.lua";
license = licenses.mit;
maintainers = with maintainers; [ lblasc ];
license = lib.licenses.mit;
maintainers = [ lib.maintainers.lblasc ];
};
}

View File

@ -103,11 +103,11 @@ in stdenv.mkDerivation {
updateScript = ./update.sh;
};
meta = with lib; {
meta = {
description = "A native debugger extension for VSCode based on LLDB";
homepage = "https://github.com/vadimcn/vscode-lldb";
license = with licenses; [ mit ];
maintainers = with maintainers; [ nigelgbanks ];
platforms = platforms.all;
license = [ lib.licenses.mit ];
maintainers = [ lib.maintainers.nigelgbanks ];
platforms = lib.platforms.all;
};
}

View File

@ -87,8 +87,8 @@ let
builtins.map extensionFromVscodeMarketplace mktplcExtRefList;
vscodeWithConfiguration = import ./vscodeWithConfiguration.nix {
inherit lib extensionsFromVscodeMarketplace writeShellScriptBin;
vscodeDefault = vscode;
inherit lib extensionsFromVscodeMarketplace writeShellScriptBin;
vscodeDefault = vscode;
};
vscodeExts2nix = import ./vscodeExts2nix.nix {

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, libjpeg }:
{ lib, stdenv, fetchFromGitHub, fetchpatch, libjpeg }:
stdenv.mkDerivation rec {
version = "1.5.2";
@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "sha256-PROQvOqsis8we58OOZ/kuY+L/CoV7XfnY9wvrpsTJu8=";
};
patches = [
(fetchpatch {
name = "CVE-2023-27781.patch";
url = "https://github.com/tjko/jpegoptim/commit/29a073ad297a0954f5e865264e24755d0ffe53ed.patch";
hash = "sha256-YUjVg0cvElhzMG3b4t5bqcqnHAuzDoNvSqe0yvlgX4E=";
})
];
# There are no checks, it seems.
doCheck = false;

View File

@ -24,19 +24,19 @@
stdenv.mkDerivation rec {
pname = "rnote";
version = "0.5.17";
version = "0.5.18";
src = fetchFromGitHub {
owner = "flxzt";
repo = "rnote";
rev = "v${version}";
hash = "sha256-/crqcp0oCq1f/5hnYfIcuSUzF5GmiAh2lLhQh+IzP4o=";
hash = "sha256-N07Y9kmGvMFS0Kq4i2CltJvNTuqbXausZZGjAQRDmNU=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-sfsk67zTmVPPtohJcgQ/OoMPeoNTo/zGs3hdA1D9SwM=";
hash = "sha256-ckYmoZLPPo/3WsdA0ir7iBJDqKn7ZAkN0f110ADSBC0=";
};
patches = [

View File

@ -1,4 +1,4 @@
{ fetchurl, lib, stdenv, erlang, cl, libGL, libGLU, runtimeShell }:
{ lib, stdenv, fetchurl, fetchpatch, erlang, cl, libGL, libGLU, runtimeShell }:
stdenv.mkDerivation rec {
pname = "wings";
@ -9,10 +9,15 @@ stdenv.mkDerivation rec {
sha256 = "1xcmifs4vq2810pqqvsjsm8z3lz24ys4c05xkh82nyppip2s89a3";
};
ERL_LIBS = "${cl}/lib/erlang/lib";
patches = [
(fetchpatch {
url = "https://github.com/dgud/wings/commit/94b3a3c6a0cfdcdbd98edce055d5c83ecb361f37.patch";
hash = "sha256-DHT1TiYoowloIWrdutBu70mL+557cTFr1dRcNgwbkpE=";
})
];
patchPhase = ''
sed -i 's,-Werror ,,' e3d/Makefile
postPatch = ''
find . -type f -name "Makefile" -exec sed -i 's,-Werror ,,' {} \;
sed -i 's,../../wings/,../,' icons/Makefile
find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/src/,../../src/,' {} \;
find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/e3d/,../../e3d/,' {} \;
@ -24,6 +29,8 @@ stdenv.mkDerivation rec {
buildInputs = [ erlang cl libGL libGLU ];
ERL_LIBS = "${cl}/lib/erlang/lib";
# I did not test the *cl* part. I added the -pa just by imitation.
installPhase = ''
mkdir -p $out/bin $out/lib/wings-${version}/ebin

View File

@ -1,6 +1,6 @@
{
mkDerivation, lib, kdepimTeam,
extra-cmake-modules, shared-mime-info, qtbase, accounts-qt,
extra-cmake-modules, shared-mime-info, accounts-qt,
boost, kaccounts-integration, kcompletion, kconfigwidgets, kcrash, kdbusaddons,
kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mariadb,
postgresql, qttools, signond, xz,
@ -17,7 +17,6 @@ mkDerivation {
meta = {
license = [ lib.licenses.lgpl21 ];
maintainers = kdepimTeam;
broken = lib.versionOlder qtbase.version "5.13";
};
patches = [
./0001-akonadi-paths.patch

View File

@ -30,9 +30,6 @@ still shows most of the available features is in `./gwenview.nix`.
}:
let
minQtVersion = "5.15";
broken = lib.versionOlder libsForQt5.qtbase.version minQtVersion;
mirror = "mirror://kde";
srcs = import ./srcs.nix { inherit fetchurl mirror; };
@ -53,7 +50,6 @@ let
meta // {
homepage = meta.homepage or "http://www.kde.org";
platforms = meta.platforms or lib.platforms.linux;
broken = meta.broken or broken;
};
});

View File

@ -5,7 +5,7 @@
kcompletion, kconfig, kcoreaddons, kdbusaddons,
kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
kparts, ktexteditor, kwindowsystem, phonon, solid,
wayland, qtbase, qtwayland
wayland, qtwayland
}:
mkDerivation {
@ -15,7 +15,6 @@ mkDerivation {
description = "KDE file manager";
license = with lib.licenses; [ gpl2Plus fdl12Plus ];
maintainers = [ lib.maintainers.ttuegel ];
broken = lib.versionOlder qtbase.version "5.14";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
propagatedUserEnvPkgs = [ baloo ];

View File

@ -2,7 +2,6 @@
, lib
, extra-cmake-modules
, kdoctools
, qtbase
, qtmultimedia
, qtquickcontrols2
, qtwebsockets
@ -17,7 +16,7 @@
, libvlc
}:
mkDerivation rec {
mkDerivation {
pname = "elisa";
outputs = [ "out" "dev" ];
@ -45,6 +44,5 @@ mkDerivation rec {
description = "A simple media player for KDE";
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
broken = lib.versionOlder qtbase.version "5.15";
};
}

View File

@ -5,7 +5,6 @@
, kio
, kparts
, kxmlgui
, qtbase
, qtscript
, solid
, qtquickcontrols2
@ -21,7 +20,6 @@ mkDerivation {
homepage = "https://apps.kde.org/filelight/";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ fridh vcunat ];
broken = lib.versionOlder qtbase.version "5.13";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
propagatedBuildInputs = [

View File

@ -9,7 +9,6 @@ mkDerivation {
meta = {
license = with lib.licenses; [ gpl2Plus lgpl21Plus fdl12Plus ];
maintainers = kdepimTeam;
broken = lib.versionOlder qtbase.version "5.13.0";
};
output = [ "out" "dev" ];
nativeBuildInputs = [ extra-cmake-modules kdoctools ];

View File

@ -3,7 +3,7 @@
extra-cmake-modules, kdoctools,
gettext,
kcoreaddons, kconfig, kdbusaddons, kwidgetsaddons, kitemviews, kcompletion,
qtbase, python3
python3
}:
mkDerivation {
@ -13,7 +13,6 @@ mkDerivation {
description = "KDE debug settings";
license = with lib.licenses; [ gpl2 ];
maintainers = [ ];
broken = lib.versionOlder qtbase.version "5.13";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [

View File

@ -1,7 +1,7 @@
{
mkDerivation, lib,
extra-cmake-modules, kdoctools,
kcoreaddons, kdeclarative, ki18n, kio, kwidgetsaddons, samba, qtbase,
kcoreaddons, kdeclarative, ki18n, kio, kwidgetsaddons, samba,
}:
mkDerivation {
@ -9,7 +9,6 @@ mkDerivation {
meta = {
license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ];
maintainers = [ lib.maintainers.ttuegel ];
broken = lib.versionOlder qtbase.version "5.13";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [ kcoreaddons kdeclarative ki18n kio kwidgetsaddons samba ];

View File

@ -6,10 +6,9 @@
, qtgraphicaleffects
, qtquickcontrols2
, qttools
, qtbase
}:
mkDerivation rec {
mkDerivation {
pname = "kirigami-gallery";
nativeBuildInputs = [ extra-cmake-modules qttools ];
@ -26,6 +25,5 @@ mkDerivation rec {
description = "View examples of Kirigami components";
license = licenses.lgpl2;
maintainers = with maintainers; [ shadowrz ];
broken = versionOlder qtbase.version "5.15";
};
}

View File

@ -13,5 +13,4 @@ mkDerivation {
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ kcodecs ki18n qtbase ];
outputs = [ "out" "dev" ];
meta.broken = lib.versionOlder qtbase.version "5.15.0";
}

View File

@ -2,7 +2,7 @@
, mkDerivation
, extra-cmake-modules, kdoctools
, kinit, kcmutils, khtml, kdesu
, qtbase, qtwebengine, qtx11extras, qtscript, qtwayland
, qtwebengine, qtx11extras, qtscript, qtwayland
}:
mkDerivation {
@ -25,7 +25,6 @@ mkDerivation {
homepage = "https://apps.kde.org/konqueror/";
description = "Web browser, file manager and viewer";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ ];
broken = lib.versionOlder qtbase.version "5.13";
maintainers = [ ];
};
}

View File

@ -2,7 +2,7 @@
mkDerivation, lib, kdepimTeam,
extra-cmake-modules, kdoctools,
grantlee, kcodecs, kconfigwidgets, kemoticons, ki18n, kiconthemes, kio,
kdesignerplugin, ktextwidgets, sonnet, syntax-highlighting, qtbase, qttools,
kdesignerplugin, ktextwidgets, sonnet, syntax-highlighting, qttools,
qtspeech
}:
@ -11,7 +11,6 @@ mkDerivation {
meta = {
license = with lib.licenses; [ gpl2Plus lgpl21Plus fdl12Plus ];
maintainers = kdepimTeam;
broken = lib.versionOlder qtbase.version "5.13.0";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [

View File

@ -8,7 +8,6 @@ mkDerivation {
meta = {
license = with lib.licenses; [ lgpl21 ];
maintainers = [ lib.maintainers.bkchr ];
broken = lib.versionOlder qtbase.version "5.15";
};
nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
buildInputs = [ qtbase karchive ];

View File

@ -2,7 +2,7 @@
mkDerivation, lib,
extra-cmake-modules, kdoctools, makeWrapper,
kcmutils, kcompletion, kconfig, kdnssd, knotifyconfig, kwallet, kwidgetsaddons,
kwindowsystem, libvncserver, freerdp, qtbase,
kwindowsystem, libvncserver, freerdp,
}:
mkDerivation {
@ -22,6 +22,5 @@ mkDerivation {
license = with licenses; [ gpl2Plus lgpl21Plus fdl12Plus bsd3 ];
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux;
broken = lib.versionOlder qtbase.version "5.14";
};
}

View File

@ -1,6 +1,6 @@
{ mkDerivation, lib, extra-cmake-modules, kdoctools, qtmultimedia, kcompletion, kconfig
, kcrash, kiconthemes, kio, audiofile, libsamplerate, alsa-lib, libpulseaudio, flac, id3lib
, libogg, libmad, libopus, libvorbis, fftw, librsvg, qtbase }:
, libogg, libmad, libopus, libvorbis, fftw, librsvg }:
mkDerivation {
pname = "kwave";
@ -11,7 +11,6 @@ mkDerivation {
maintainers = with maintainers; [ freezeboy ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
broken = lib.versionOlder qtbase.version "5.14";
};
nativeBuildInputs = [
extra-cmake-modules

View File

@ -1,7 +1,7 @@
{
mkDerivation, lib, kdepimTeam,
extra-cmake-modules, kdoctools,
qtbase, qtwebengine, kio, kcalendarcore, kcontacts,
qtwebengine, kio, kcalendarcore, kcontacts,
cyrus_sasl
}:
@ -10,7 +10,6 @@ mkDerivation {
meta = {
license = with lib.licenses; [ gpl2Plus lgpl21Plus fdl12Plus ];
maintainers = kdepimTeam;
broken = lib.versionOlder qtbase.version "5.14.0";
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [ qtwebengine kio kcalendarcore kcontacts cyrus_sasl ];

View File

@ -1,4 +1,4 @@
{ mkDerivation, qtbase
{ mkDerivation
, lib, extra-cmake-modules, gettext, python3
, drumstick, fluidsynth
, kcoreaddons, kcrash, kdoctools
@ -12,7 +12,6 @@ mkDerivation {
description = "Music Education Software";
license = with licenses; [ lgpl21 gpl3 ];
maintainers = with maintainers; [ peterhoeg HaoZeke ];
broken = lib.versionOlder qtbase.version "5.14";
};
nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python3 qtdeclarative ];

View File

@ -3,7 +3,7 @@
, ki18n, xcb-util-cursor
, kconfig, kcoreaddons, kdbusaddons, kdeclarative, kio, kipi-plugins
, knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi
, qtbase, qtx11extras, knewstuff, kwayland, qttools, kcolorpicker, kimageannotator
, qtx11extras, knewstuff, kwayland, qttools, kcolorpicker, kimageannotator
}:
mkDerivation {
@ -23,6 +23,5 @@ mkDerivation {
homepage = "https://apps.kde.org/spectacle/";
description = "Screenshot capture utility";
maintainers = with maintainers; [ ttuegel ];
broken = versionOlder qtbase.version "5.15";
};
}

View File

@ -28,9 +28,6 @@ See also `pkgs/applications/kde` as this is what this is based on.
}:
let
minQtVersion = "5.15";
broken = lib.versionOlder libsForQt5.qtbase.version minQtVersion;
mirror = "mirror://kde";
srcs = import ./srcs.nix { inherit fetchurl mirror; };
@ -51,11 +48,10 @@ let
meta // {
homepage = meta.homepage or "https://mauikit.org/";
platforms = meta.platforms or lib.platforms.linux;
broken = meta.broken or broken;
};
});
packages = self: with self;
packages = self:
let
callPackage = self.newScope {
inherit mkDerivation;

View File

@ -1,8 +1,21 @@
{ lib, stdenv, fetchFromGitHub
, meson, ninja, pkg-config, vala
, gtk3, glib, gtk-layer-shell
, dbus, dbus-glib, librsvg
, gobject-introspection, gdk-pixbuf, wrapGAppsHook
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, vala
, gtk3
, glib
, gtk-layer-shell
, dbus
, dbus-glib
, librsvg
, gobject-introspection
, gdk-pixbuf
, wrapGAppsHook
, pamixer
, brightnessctl
}:
stdenv.mkDerivation rec {
@ -21,10 +34,8 @@ stdenv.mkDerivation rec {
buildInputs = [ dbus dbus-glib gdk-pixbuf glib gtk-layer-shell gtk3 librsvg ];
postInstall = ''
substituteInPlace "$out"/bin/volumectl \
--replace 'avizo-client' "$out/bin/avizo-client"
substituteInPlace "$out"/bin/lightctl \
--replace 'avizo-client' "$out/bin/avizo-client"
wrapProgram $out/bin/volumectl --suffix PATH : $out/bin:${lib.makeBinPath ([ pamixer ])}
wrapProgram $out/bin/lightctl --suffix PATH : $out/bin:${lib.makeBinPath ([ brightnessctl ])}
'';
meta = with lib; {

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation {
'';
nativeBuildInputs = [ makeWrapper ];
propagatedBuildInputs = with python3.pkgs; [ mutagen wxPython_4_1 pillow six ];
propagatedBuildInputs = with python3.pkgs; [ mutagen wxPython_4_2 pillow six ];
makeFlags = [ "PREFIX=$(out)" ];

View File

@ -2,14 +2,14 @@
rustPlatform.buildRustPackage rec {
pname = "oxker";
version = "0.2.4";
version = "0.2.5";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-wYGaBXorAcwFnlUixrOP63s32WV1V7/8SUOBXIeLB7o=";
sha256 = "sha256-w0YLSwRv6uhDwi06q0/mhGc5C6O2xq3vc9Se7/xXkhA=";
};
cargoHash = "sha256-rdzr6oOrJNTX3dCSO3ZdKNFZ31/CHdupKL7QmmuuX7I=";
cargoHash = "sha256-Q0+6YgcdWa4RjNA7ffQJN0uIN8UFuCdbYjTFoM8w8uo=";
meta = with lib; {
description = "A simple tui to view & control docker containers";

View File

@ -61,7 +61,7 @@ let
libs = pkgs: lib.makeLibraryPath [ xorg.libX11 libGL ];
python = python3.withPackages(ps: with ps; [
wxPython_4_1
wxPython_4_2
setuptools
natsort
]);

View File

@ -64,9 +64,6 @@ mkDerivation rec {
license = licenses.lgpl3;
maintainers = with maintainers; [ zraexy peterhoeg ];
platforms = platforms.all;
# 0.5.7 segfaults when opening the main panel with qt 5.7 and fails to compile with qt 5.8
# but qt > 5.6 works when only using the native browser
# https://github.com/sieren/QSyncthingTray/issues/223
broken = (builtins.compareVersions qtbase.version "5.7.0" >= 0 && !preferNative) || stdenv.isDarwin;
broken = !preferNative || stdenv.isDarwin;
};
}

View File

@ -62,9 +62,9 @@ rec {
nomad_1_4 = generic {
buildGoModule = buildGo120Module;
version = "1.4.4";
sha256 = "sha256-mAimuWolTJ3lMY/ArnLZFu+GZv9ADdGsriXsTcEgdYc=";
vendorSha256 = "sha256-QtP7pzsIBd2S79AUcbOeVG71Mb5qK706rq5DkT41VqM=";
version = "1.4.6";
sha256 = "sha256-l4GvQIS5JSSgjBjPivAKAb7gKlVLw4WoZpPR8LxnLNc=";
vendorSha256 = "sha256-05BhKF6kx0wbu74cidpTFhUN668R/AxV6qWmchCm/WE=";
passthru.tests.nomad = nixosTests.nomad;
};
}

View File

@ -46,11 +46,11 @@
"vendorHash": "sha256-JOaw8rKH7eb3RiP/FD+M7VEXCRfVuarTjfEusz1yGmQ="
},
"alicloud": {
"hash": "sha256-g+ksw5Yc3qiCGopxGMX9dEXCa3UDXfa8Evxx9qYjkzU=",
"hash": "sha256-L+KTE97aSrZI8Wn5SDKoNvsFO/con4IsNmrgWQymXno=",
"homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
"owner": "aliyun",
"repo": "terraform-provider-alicloud",
"rev": "v1.201.1",
"rev": "v1.201.2",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -82,13 +82,13 @@
"vendorHash": "sha256-99PwwxVHfRGC0QCQGhifRzqWFOHZ1R7Ge2ou7OjiggQ="
},
"auth0": {
"hash": "sha256-d5zM6FKFT9UFUyrm+5aF2wRvGsdtkq3Z8NvlsvZib7c=",
"hash": "sha256-y2pjk+rSLAM7H4XjwvwZSNFW4+9EhN3fb01cml6RTb0=",
"homepage": "https://registry.terraform.io/providers/auth0/auth0",
"owner": "auth0",
"repo": "terraform-provider-auth0",
"rev": "v0.44.1",
"rev": "v0.45.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-vcKw8G9SqbP0wBnhLKJUz9ua1nGdP5ioZ+5ACxkeCZk="
"vendorHash": "sha256-cMB9iISEoTMFCA7YJQWZMocDlXXn8xNavDvFq9ypGec="
},
"avi": {
"hash": "sha256-mBLdIL4mUI4zA3c9gB4DL1QY0xHW15Q1rO/v1gVYKYU=",
@ -337,13 +337,13 @@
"vendorHash": "sha256-Id1rL/Mu/aES7OFQ/rQRMmm3D/GSbGofZludqbWffKo="
},
"docker": {
"hash": "sha256-M2K4N39vtVDA/vMp/s2KYiS/uoE+STf2e6yh6q0CS28=",
"hash": "sha256-UyHOI8C0eDV5YllAi9clHp/CEldHjIp3FHHMPy1rK58=",
"homepage": "https://registry.terraform.io/providers/kreuzwerker/docker",
"owner": "kreuzwerker",
"repo": "terraform-provider-docker",
"rev": "v3.0.1",
"rev": "v3.0.2",
"spdx": "MPL-2.0",
"vendorHash": "sha256-OdZQb81d7N1TdbDWEImq2U3kLkCPdhRk38+8T8fu+F4="
"vendorHash": "sha256-XxltOTtCgmJ9wZX8Yw39HkwVVZb58kZjAH7jfKPhjKM="
},
"elasticsearch": {
"hash": "sha256-a6kHN3w0sQCP+0+ZtFwcg9erfVBYkhNo+yOrnwweGWo=",
@ -540,11 +540,11 @@
"vendorHash": "sha256-rxh8Me+eOKPCbfHFT3tRsbM7JU67dBqv2JOiWArI/2Y="
},
"huaweicloud": {
"hash": "sha256-5Yw1b7tuGg8tDL1rQhqgFMTgtvc2k0n45dR5xvr7Dmo=",
"hash": "sha256-DYgqq4Joq7R9pljbtKi/Oi150qTxYK4hOLXu3h3ZcMI=",
"homepage": "https://registry.terraform.io/providers/huaweicloud/huaweicloud",
"owner": "huaweicloud",
"repo": "terraform-provider-huaweicloud",
"rev": "v1.45.1",
"rev": "v1.46.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -729,13 +729,13 @@
"vendorHash": "sha256-QxbZv6YMa5/I4bTeQBNdmG3EKtLEmstnH7HMiZzFJrI="
},
"minio": {
"hash": "sha256-zfnldsJcr36RMwEcmoDiwko1f+VR9tlPVUe/OVgX4Bc=",
"hash": "sha256-eF3yT3cI+ODGN4nqf9rTy3PUev09KMGgzvaa4znPIm4=",
"homepage": "https://registry.terraform.io/providers/aminueza/minio",
"owner": "aminueza",
"repo": "terraform-provider-minio",
"rev": "v1.12.0",
"rev": "v1.13.0",
"spdx": "Apache-2.0",
"vendorHash": "sha256-MLhHRMahJjTgQBzYkSaVv6wFm6b+YgpkitBHuj5B6po="
"vendorHash": "sha256-Tps4SoiSmGwPWZgf2Q1MilpLhKnB/TCFe35Hb4DfwaU="
},
"mongodbatlas": {
"hash": "sha256-HkY2X6EbgObgXH2jLhQ96edlxMHytSGfXETQ5oXPI6M=",
@ -765,11 +765,11 @@
"vendorHash": null
},
"newrelic": {
"hash": "sha256-1COn48CDGvRnM4M7tWZd5XxEW0vdeFmpOMEhi3sI2to=",
"hash": "sha256-EJpIITB6OF6TuFgQ4e9UIP7zaaFGc6DgR1fJ1pK2isc=",
"homepage": "https://registry.terraform.io/providers/newrelic/newrelic",
"owner": "newrelic",
"repo": "terraform-provider-newrelic",
"rev": "v3.17.0",
"rev": "v3.17.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-QL9uEO89PwU8UFbLWCytXpzgrVeXKmaPmFm844ABAvI="
},
@ -1099,11 +1099,11 @@
"vendorHash": "sha256-GkmUKSnqkabwGCl22/90529BWb0oJaIJHYHlS/h3KNY="
},
"tencentcloud": {
"hash": "sha256-M1ymjlqA/rynuoGI9v1oO4+vaAWopvFezdPANn4oWNY=",
"hash": "sha256-E1L/xL+8xqNlJamklpgqq9HwdypRIh3jHTdkJtN+WVU=",
"homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
"owner": "tencentcloudstack",
"repo": "terraform-provider-tencentcloud",
"rev": "v1.79.16",
"rev": "v1.79.17",
"spdx": "MPL-2.0",
"vendorHash": null
},

View File

@ -1,17 +1,17 @@
{ stdenv, lib, cmake, pkg-config, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qtimageformats, qttools, boost, openssl, wrapQtAppsHook }:
{ stdenv, lib, cmake, pkg-config, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qtimageformats, qttools, boost, openssl, wrapQtAppsHook, libsecret }:
stdenv.mkDerivation rec {
pname = "chatterino2";
version = "2.4.0";
version = "2.4.2";
src = fetchFromGitHub {
owner = "Chatterino";
repo = pname;
rev = "v${version}";
sha256 = "sha256-6t7Or2heyV0B5zdWZpN80iADe52faNVlIEZYtcixpZo=";
sha256 = "sha256-d/rsY4pgPpA4JcMmoD6AG1DzHovfSERaeuYkMY603kA=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
buildInputs = [ qtbase qtsvg qtmultimedia qtimageformats qttools boost openssl ];
buildInputs = [ qtbase qtsvg qtmultimedia qtimageformats qttools boost openssl libsecret ];
postInstall = lib.optionalString stdenv.isDarwin ''
mkdir -p "$out/Applications"
mv bin/chatterino.app "$out/Applications/"

View File

@ -172,8 +172,7 @@ let
makeWrapper $out/lib/slack/slack $out/bin/slack \
--prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
--suffix PATH : ${lib.makeBinPath [xdg-utils]} \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--add-flags "\''${WAYLAND_DISPLAY:+--enable-features=WebRTCPipeWireCapturer}"
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations,WebRTCPipeWireCapturer}}"
# Fix the desktop link
substituteInPlace $out/share/applications/slack.desktop \

View File

@ -25,11 +25,11 @@ let
pname = "teams";
versions = {
linux = "1.5.00.23861";
darwin = "1.5.00.22362";
darwin = "1.6.00.4464";
};
hashes = {
linux = "sha256-h0YnCeJX//l4TegJVZtavV3HrxjYUF2Fa5KmaYmZW8E=";
darwin = "sha256-fbw6T+k6R5FyQ7XOKzyNYBvXlxH2xpJsBnsR1L+3Jmw=";
darwin = "sha256-DvXMrXotKWUqFCb7rZj8wU7mmZJKuTLGyx8qOB/aQtg=";
};
meta = with lib; {
description = "Microsoft Teams";

View File

@ -54,7 +54,6 @@
, microsoft_gsl
, rlottie
, stdenv
, gcc10Stdenv
}:
# Main reference:
@ -70,10 +69,8 @@ let
cxxStandard = "20";
};
};
# Aarch64 default gcc9 will cause ICE. For reference #108305
env = if stdenv.isAarch64 then gcc10Stdenv else stdenv;
in
env.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "telegram-desktop";
version = "4.6.5";
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py

View File

@ -0,0 +1,41 @@
{ lib
, buildGoModule
, fetchFromGitHub
, nixosTests
}:
buildGoModule rec {
pname = "peroxide";
version = "0.5.0";
src = fetchFromGitHub {
owner = "ljanyst";
repo = "peroxide";
rev = "v${version}";
sha256 = "sha256-6Jb1i4aNjeemiQp9FF/KGyZ+Evom9PPBvARbJWyrhok=";
};
vendorSha256 = "sha256-kuFlkkMkCKO5Rrh1EoyVdaykvxTfchK2l1/THqTBeAY=";
postPatch = ''
# These tests connect to the internet, which does not work in sandboxed
# builds, so skip these.
rm pkg/pmapi/dialer_pinning_test.go \
pkg/pmapi/dialer_proxy_provider_test.go \
pkg/pmapi/dialer_proxy_test.go
'';
passthru.tests.peroxide = nixosTests.peroxide;
meta = with lib; {
homepage = "https://github.com/ljanyst/peroxide";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ aidalgol ];
description = "Unofficial ProtonMail bridge";
longDescription = ''
Peroxide is a fork of the official ProtonMail bridge that aims to be
similar to Hydroxide while reusing as much code from the official bridge
as possible.
'';
};
}

View File

@ -28,9 +28,6 @@ See also `pkgs/applications/kde` as this is what this is based on.
}:
let
minQtVersion = "5.15";
broken = lib.versionOlder libsForQt5.qtbase.version minQtVersion;
mirror = "mirror://kde";
srcs = import ./srcs.nix { inherit fetchurl mirror; };
@ -51,11 +48,10 @@ let
meta // {
homepage = meta.homepage or "https://www.plasma-mobile.org/";
platforms = meta.platforms or lib.platforms.linux;
broken = meta.broken or broken;
};
});
packages = self: with self;
packages = self:
let
callPackage = self.newScope {
inherit mkDerivation;

View File

@ -1,4 +1,6 @@
{ airspy
{ lib
, stdenv
, airspy
, airspyhf
, aptdec
, boost
@ -13,7 +15,6 @@
, glew
, hackrf
, hidapi
, lib
, ffmpeg
, libiio
, libopus
@ -95,7 +96,7 @@ mkDerivation rec {
"-DDAB_LIB=${dab_lib}"
"-DLIBSERIALDV_INCLUDE_DIR:PATH=${serialdv}/include/serialdv"
"-DLIMESUITE_INCLUDE_DIR:PATH=${limesuite}/include"
"-DLIMESUITE_LIBRARY:FILEPATH=${limesuite}/lib/libLimeSuite.so"
"-DLIMESUITE_LIBRARY:FILEPATH=${limesuite}/lib/libLimeSuite${stdenv.hostPlatform.extensions.sharedLibrary}"
"-DSGP4_DIR=${sgp4}"
"-DSOAPYSDR_DIR=${soapysdr-with-plugins}"
];
@ -110,6 +111,6 @@ mkDerivation rec {
homepage = "https://github.com/f4exb/sdrangel";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ alkeryn ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "mafft";
version = "7.508";
version = "7.515";
src = fetchFromGitLab {
owner = "sysimm";
repo = pname;
rev = version;
sha256 = "sha256-XQllmTgLntCBUFJzV2HL4f4oMilcUVTRgcfeZBdD5c0=";
rev = "v${version}";
sha256 = "sha256-ssZvjOHJLsBjB48sKr1U7VrRZUIduFkme22MdVbzoNk=";
};
preBuild = ''

View File

@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "nest";
version = "3.3";
version = "3.4";
src = fetchFromGitHub {
owner = "nest";
repo = "nest-simulator";
rev = "v${version}";
sha256 = "sha256-wmn5LOOHlSuyPdV6O6v7j10dxdcvqpym6MfveZdL+dU=";
hash = "sha256-+wjsZxW2l0WGyGTm/6vyzPEeqCfyxJml9oP/zn6W1L0=";
};
postPatch = ''
@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
postInstall = ''
# Alternative to autoPatchElf, moves libraries where
# Nest expects them to be
find $out/lib/nest -type f -exec ln -s {} $out/lib \;
find $out/lib/nest -exec ln -s {} $out/lib \;
'';
passthru.tests.version = testers.testVersion {
@ -78,7 +78,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "NEST is a command line tool for simulating neural networks";
homepage = "https://www.nest-simulator.org/";
license = licenses.gpl2;
changelog = "https://github.com/nest/nest-simulator/releases/tag/v${version}";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ jiegec davidcromp ];
platforms = platforms.unix;
};

View File

@ -17,13 +17,13 @@ let
in
stdenv.mkDerivation rec {
pname = "openboardview";
version = "9.0.3";
version = "9.95.0";
src = fetchFromGitHub {
owner = "OpenBoardView";
repo = "OpenBoardView";
rev = version;
sha256 = "sha256-0vxWFNM9KQ5zs+VDDV3mVMfHZau4pgNxQ1HhH2vktCM=";
sha256 = "sha256-sKDDOPpCagk7rBRlMlZhx+RYYbtoLzJsrnL8qKZMKW8=";
fetchSubmodules = true;
};

View File

@ -1,13 +1,21 @@
{ lib, stdenv, fetchurl, zlib }:
{ lib
, stdenv
, fetchurl
, zlib
, enableUnfree ? false
}:
stdenv.mkDerivation rec {
pname = "glucose";
pname = "glucose" + lib.optionalString enableUnfree "-syrup";
version = "4.1";
src = fetchurl {
url = "http://www.labri.fr/perso/lsimon/downloads/softwares/glucose-syrup-${version}.tgz";
sha256 = "0aahrkaq7n0z986fpqz66yz946nxardfi6dh8calzcfjpvqiraji";
hash = "sha256-Uaoc8b7SsU8VQ7CZ6FpW3RqSvjfm4+sMSh/Yg9XMUCk=";
};
sourceRoot = "glucose-syrup-${version}/${if enableUnfree then "parallel" else "simp"}";
postPatch = ''
substituteInPlace Main.cc \
--replace "defined(__linux__)" "defined(__linux__) && defined(__x86_64__)"
@ -15,17 +23,22 @@ stdenv.mkDerivation rec {
buildInputs = [ zlib ];
sourceRoot = "glucose-syrup-${version}/simp";
makeFlags = [ "r" ];
installPhase = ''
install -Dm0755 glucose_release $out/bin/glucose
runHook preInstall
install -Dm0755 ${pname}_release $out/bin/${pname}
mkdir -p "$out/share/doc/${pname}-${version}/"
install -Dm0755 ../{LICEN?E,README*,Changelog*} "$out/share/doc/${pname}-${version}/"
runHook postInstall
'';
meta = with lib; {
description = "Modern, parallel SAT solver (sequential version)";
license = licenses.mit;
description = "Modern, parallel SAT solver (${if enableUnfree then "parallel" else "sequential"} version)";
homepage = "https://www.labri.fr/perso/lsimon/research/glucose/";
license = if enableUnfree then licenses.unfreeRedistributable else licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ gebner ];
};

View File

@ -1,24 +0,0 @@
{ lib, stdenv, zlib, glucose }:
stdenv.mkDerivation rec {
pname = "glucose-syrup";
version = glucose.version;
src = glucose.src;
buildInputs = [ zlib ];
sourceRoot = "glucose-syrup-${version}/parallel";
makeFlags = [ "r" ];
installPhase = ''
install -Dm0755 glucose-syrup_release $out/bin/glucose-syrup
mkdir -p "$out/share/doc/${pname}-${version}/"
install -Dm0755 ../{LICEN?E,README*,Changelog*} "$out/share/doc/${pname}-${version}/"
'';
meta = with lib; {
description = "Modern, parallel SAT solver (parallel version)";
license = licenses.unfreeRedistributable;
platforms = platforms.unix;
maintainers = with maintainers; [ gebner ];
};
}

View File

@ -31,7 +31,6 @@ mkDerivation rec {
'';
maintainers = with maintainers; [ gebner j0hax ];
inherit (qtbase.meta) platforms;
# works with qt 5.6 and qt 5.8
broken = builtins.compareVersions qtbase.version "5.7.0" == 0 || stdenv.isDarwin;
broken = stdenv.isDarwin;
};
}

View File

@ -41,7 +41,7 @@ let
substituteInPlace $out/bin/${pname} \
--replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \
--replace "ldd" "${glibc.out}/bin/ldd" \
--replace "ldd" "${glibc.bin}/bin/ldd" \
--replace "/bin/bash" "${runtimeShell}"
# Create symlink bzip2 library

View File

@ -1,44 +1,51 @@
{ lib, stdenv, fetchurl, wxGTK30, subversion, apr, aprutil, python3, fetchpatch }:
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, wxGTK32
, subversion
, apr
, aprutil
, python3
, darwin
}:
stdenv.mkDerivation rec {
pname = "rapidsvn";
version = "0.12.1";
version = "unstable-2021-08-02";
src = fetchurl {
url = "http://www.rapidsvn.org/download/release/${version}/${pname}-${version}.tar.gz";
sha256 = "1bmcqjc12k5w0z40k7fkk8iysqv4fw33i80gvcmbakby3d4d4i4p";
src = fetchFromGitHub {
owner = "RapidSVN";
repo = "RapidSVN";
rev = "3a564e071c3c792f5d733a9433b9765031f8eed0";
hash = "sha256-6bQTHAOZAP+06kZDHjDx9VnGm4vrZUDyLHZdTpiyP08=";
};
buildInputs = [ wxGTK30 subversion apr aprutil python3 ];
postPatch = ''
substituteInPlace configure.ac \
--replace "[3.0.*]" "[3.*]"
'';
env.NIX_CFLAGS_COMPILE = toString [ "-std=c++14" ];
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [
wxGTK32
subversion
apr
aprutil
python3
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Cocoa
];
configureFlags = [
"--with-svn-include=${subversion.dev}/include"
"--with-svn-lib=${subversion.out}/lib"
];
patches = [
./fix-build.patch
# Python 3 compatibility patches
(fetchpatch {
url = "https://github.com/RapidSVN/RapidSVN/pull/44/commits/2e26fd5d6a413d6c3a055c17ac4840b95d1537e9.patch";
hash = "sha256-8acABzscgZh1bfAt35KHfU+nfaiO7P1b+lh34Bj0REI=";
})
(fetchpatch {
url = "https://github.com/RapidSVN/RapidSVN/pull/44/commits/92927af764f92b3731333ed3dba637f98611167a.patch";
hash = "sha256-4PdShGcfFwxjdI3ygbnKFAa8l9dGERq/xSl54WisgKM=";
})
(fetchpatch {
url = "https://github.com/RapidSVN/RapidSVN/pull/44/commits/3e375f11d94cb8faddb8b7417354a9fb51f304ec.patch";
hash = "sha256-BUpCMEH7jctOLtJktDUE52bxexfLemLItZ0IgdAnq9g=";
})
# wxWidgets 3.0 compatibility patches
(fetchpatch {
url = "https://sources.debian.org/data/main/r/rapidsvn/0.12.1dfsg-3.1/debian/patches/wx3.0.patch";
sha256 = "sha256-/07+FoOrNw/Pc+wlVt4sGOITfIIEu8ZbI3/ym0u8bs4=";
})
];
env.NIX_CFLAGS_COMPILE = "-std=c++14";
meta = {
description = "Multi-platform GUI front-end for the Subversion revision system";
@ -46,6 +53,5 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.viric ];
platforms = lib.platforms.unix;
broken = stdenv.isDarwin;
};
}

View File

@ -166,15 +166,20 @@ python3Packages.buildPythonApplication {
HGNAME = "sl";
SAPLING_OSS_BUILD = "true";
SAPLING_VERSION = version;
SAPLING_VERSION_HASH = versionHash;
# Python setuptools version 66 and newer does not support upstream Sapling's
# version numbers (e.g. "0.2.20230124-180750-hf8cd450a"). Change the version
# number to something supported by setuptools (e.g. "0.2.20230124").
# https://github.com/facebook/sapling/issues/571
SAPLING_VERSION = builtins.elemAt (builtins.split "-" version) 0;
# just a simple check phase, until we have a running test suite. this should
# help catch issues like lack of a LOCALE_ARCHIVE setting (see GH PR #202760)
doCheck = true;
installCheckPhase = ''
echo -n "testing sapling version; should be \"${version}\"... "
$out/bin/sl version | grep -qw "${version}"
echo -n "testing sapling version; should be \"$SAPLING_VERSION\"... "
$out/bin/sl version | grep -qw "$SAPLING_VERSION"
echo "OK!"
'';

View File

@ -1,20 +1,21 @@
{ lib, rustPlatform, fetchFromGitHub, stdenv, Security, git }:
{ lib, rustPlatform, fetchFromGitHub, stdenv, darwin, git }:
rustPlatform.buildRustPackage rec {
pname = "srvc";
version = "0.14.1";
version = "0.15.0";
src = fetchFromGitHub {
owner = "insilica";
repo = "rs-srvc";
rev = "v${version}";
sha256 = "sha256-6wA2dnUUgS6HNQo2vMFqoT+seZHqcNLoTN+f5+Ok1AQ=";
hash = "sha256-vShPc+Tz8n2o8E13npr7ZbDzRaAesWBOJQaCO5ljypM=";
};
cargoHash = "sha256-XkRnbfTaCo0J1+yOOvIxhDTjtaZURkjFOPWsFRk8iNU=";
cargoHash = "sha256-fHHJR1OvqCYfJkXe9mVQXJeTETDadR65kf8LMsPdAds=";
buildInputs = lib.optionals stdenv.isDarwin [
Security
darwin.apple_sdk.frameworks.CoreServices
darwin.apple_sdk.frameworks.Security
];
nativeCheckInputs = [ git ];

View File

@ -56,7 +56,6 @@ stdenv.mkDerivation rec {
++ lib.optional withVPX libvpx;
buildCommand = let
qtVersion = "5.${lib.versions.minor qtbase.version}";
wrapWith = makeWrapper: filename:
"${makeWrapper} ${filename} --set ADM_ROOT_DIR $out --prefix LD_LIBRARY_PATH : ${libXext}/lib";
wrapQtApp = wrapWith "wrapQtApp";

View File

@ -26,7 +26,7 @@ let
"unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc"
]);
etcBindFlags = let
etcBindEntries = let
files = [
# NixOS Compatibility
"static"
@ -69,8 +69,7 @@ let
"ca-certificates"
"pki"
];
in concatStringsSep "\n "
(map (file: "--ro-bind-try $(${coreutils}/bin/readlink -m /etc/${file}) /etc/${file}") files);
in map (path: "/etc/${path}") files;
# Create this on the fly instead of linking from /nix
# The container might have to modify it and re-run ldconfig if there are
@ -99,19 +98,20 @@ let
'';
bwrapCmd = { initArgs ? "" }: ''
blacklist=(/nix /dev /proc /etc)
ignored=(/nix /dev /proc /etc)
ro_mounts=()
symlinks=()
etc_ignored=()
for i in ${env}/*; do
path="/''${i##*/}"
if [[ $path == '/etc' ]]; then
:
elif [[ -L $i ]]; then
symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$path")
blacklist+=("$path")
ignored+=("$path")
else
ro_mounts+=(--ro-bind "$i" "$path")
blacklist+=("$path")
ignored+=("$path")
fi
done
@ -124,14 +124,26 @@ let
continue
fi
ro_mounts+=(--ro-bind "$i" "/etc$path")
etc_ignored+=("/etc$path")
done
fi
for i in ${lib.escapeShellArgs etcBindEntries}; do
if [[ "''${etc_ignored[@]}" =~ "$i" ]]; then
continue
fi
if [[ -L $i ]]; then
symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$i")
else
ro_mounts+=(--ro-bind-try "$i" "$i")
fi
done
declare -a auto_mounts
# loop through all directories in the root
for dir in /*; do
# if it is a directory and it is not in the blacklist
if [[ -d "$dir" ]] && [[ ! "''${blacklist[@]}" =~ "$dir" ]]; then
# if it is a directory and it is not ignored
if [[ -d "$dir" ]] && [[ ! "''${ignored[@]}" =~ "$dir" ]]; then
# add it to the mount list
auto_mounts+=(--bind "$dir" "$dir")
fi
@ -179,7 +191,6 @@ let
--symlink /etc/ld.so.cache ${pkgsi686Linux.glibc}/etc/ld.so.cache \
--ro-bind ${pkgsi686Linux.glibc}/etc/rpc ${pkgsi686Linux.glibc}/etc/rpc \
--remount-ro ${pkgsi686Linux.glibc}/etc \
${etcBindFlags}
"''${ro_mounts[@]}"
"''${symlinks[@]}"
"''${auto_mounts[@]}"

View File

@ -1,15 +1,17 @@
{ lib, fetchzip }:
{ lib, fetchzip, fetchurl }:
{ crateName ? args.pname
, pname ? null
, version
, unpack ? true
, ...
} @ args:
assert pname == null || pname == crateName;
fetchzip ({
(if unpack then fetchzip else fetchurl) ({
name = "${crateName}-${version}.tar.gz";
url = "https://crates.io/api/v1/crates/${crateName}/${version}/download";
} // lib.optionalAttrs unpack {
extension = "tar.gz";
} // removeAttrs args [ "crateName" "pname" "version" ])
} // removeAttrs args [ "crateName" "pname" "version" "unpack" ])

View File

@ -1,4 +1,4 @@
{ fetchgit, fetchurl, lib, runCommand, cargo, jq }:
{ fetchgit, fetchurl, lib, writers, python3Packages, runCommand, cargo, jq }:
{
# Cargo lock file
@ -93,6 +93,11 @@ let
sha256 = checksum;
};
# Replaces values inherited by workspace members.
replaceWorkspaceValues = writers.writePython3 "replace-workspace-values"
{ libraries = with python3Packages; [ tomli tomli-w ]; flakeIgnore = [ "E501" ]; }
(builtins.readFile ./replace-workspace-values.py);
# Fetch and unpack a crate.
mkCrate = pkg:
let
@ -171,6 +176,11 @@ let
cp -prvd "$tree/" $out
chmod u+w $out
if grep -q workspace "$out/Cargo.toml"; then
chmod u+w "$out/Cargo.toml"
${replaceWorkspaceValues} "$out/Cargo.toml" "${tree}/Cargo.toml"
fi
# Cargo is happy with empty metadata.
printf '{"files":{},"package":null}' > "$out/.cargo-checksum.json"

View File

@ -0,0 +1,95 @@
# This script implements the workspace inheritance mechanism described
# here: https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table
#
# Please run `mypy --strict`, `black`, and `isort --profile black` on this after editing, thanks!
import sys
from typing import Any
import tomli
import tomli_w
def load_file(path: str) -> dict[str, Any]:
with open(path, "rb") as f:
return tomli.load(f)
def replace_key(
workspace_manifest: dict[str, Any], table: dict[str, Any], section: str, key: str
) -> bool:
if "workspace" in table[key] and table[key]["workspace"] is True:
print("replacing " + key)
replaced = table[key]
del replaced["workspace"]
workspace_copy = workspace_manifest[section][key]
if section == "dependencies":
crate_features = replaced.get("features")
if type(workspace_copy) is str:
replaced["version"] = workspace_copy
else:
replaced.update(workspace_copy)
merged_features = (crate_features or []) + (
workspace_copy.get("features") or []
)
if len(merged_features) > 0:
# Dictionaries are guaranteed to be ordered (https://stackoverflow.com/a/7961425)
replaced["features"] = list(dict.fromkeys(merged_features))
elif section == "package":
table[key] = replaced = workspace_copy
return True
return False
def replace_dependencies(
workspace_manifest: dict[str, Any], root: dict[str, Any]
) -> bool:
changed = False
for key in ["dependencies", "dev-dependencies", "build-dependencies"]:
if key in root:
for k in root[key].keys():
changed |= replace_key(workspace_manifest, root[key], "dependencies", k)
return changed
def main() -> None:
crate_manifest = load_file(sys.argv[1])
workspace_manifest = load_file(sys.argv[2])["workspace"]
if "workspace" in crate_manifest:
return
changed = False
for key in crate_manifest["package"].keys():
changed |= replace_key(
workspace_manifest, crate_manifest["package"], "package", key
)
changed |= replace_dependencies(workspace_manifest, crate_manifest)
if "target" in crate_manifest:
for key in crate_manifest["target"].keys():
changed |= replace_dependencies(
workspace_manifest, crate_manifest["target"][key]
)
if not changed:
return
with open(sys.argv[1], "wb") as f:
tomli_w.dump(crate_manifest, f)
if __name__ == "__main__":
main()

Some files were not shown because too many files have changed in this diff Show More