Merge master into haskell-updates
This commit is contained in:
commit
8fc65225d4
7
.github/CODEOWNERS
vendored
7
.github/CODEOWNERS
vendored
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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).
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
131
nixos/modules/services/networking/peroxide.nix
Normal file
131
nixos/modules/services/networking/peroxide.nix
Normal 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 ];
|
||||
}
|
@ -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;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
@ -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 {};
|
||||
|
@ -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
16
nixos/tests/peroxide.nix
Normal 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
|
||||
'';
|
||||
})
|
@ -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'"
|
||||
)
|
||||
'';
|
||||
})
|
||||
|
@ -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"
|
||||
)
|
||||
'';
|
||||
})
|
@ -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")
|
||||
|
40
pkgs/applications/audio/minidsp/default.nix
Normal file
40
pkgs/applications/audio/minidsp/default.nix
Normal 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];
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
|
@ -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: {
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
}
|
@ -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
@ -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 ];
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -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" ];
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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" ];
|
||||
};
|
||||
}
|
@ -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" ];
|
||||
};
|
||||
})
|
@ -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;
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
}
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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 = [
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
};
|
||||
});
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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 = [
|
||||
|
@ -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 ];
|
||||
|
@ -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 = [
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
}
|
||||
|
@ -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 = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -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 = [
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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; {
|
||||
|
@ -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)" ];
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
]);
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
},
|
||||
|
@ -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/"
|
||||
|
@ -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 \
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
41
pkgs/applications/networking/peroxide/default.nix
Normal file
41
pkgs/applications/networking/peroxide/default.nix
Normal 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.
|
||||
'';
|
||||
};
|
||||
}
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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 = ''
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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!"
|
||||
'';
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
|
@ -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[@]}"
|
||||
|
@ -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" ])
|
||||
|
@ -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"
|
||||
|
||||
|
95
pkgs/build-support/rust/replace-workspace-values.py
Normal file
95
pkgs/build-support/rust/replace-workspace-values.py
Normal 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
Loading…
Reference in New Issue
Block a user