Merge branch 'master' into waagent-module

This commit is contained in:
codgician
2024-12-08 12:59:45 +08:00
committed by GitHub
523 changed files with 8994 additions and 10367 deletions
+30
View File
@@ -0,0 +1,30 @@
name: "Building Nixpkgs lib-tests"
permissions:
contents: read
on:
pull_request_target:
paths:
- 'lib/**'
jobs:
get-merge-commit:
uses: ./.github/workflows/get-merge-commit.yml
nixpkgs-lib-tests:
name: nixpkgs-lib-tests
runs-on: ubuntu-latest
needs: get-merge-commit
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
if: needs.get-merge-commit.outputs.mergedSha
with:
# pull_request_target checks out the base branch by default
ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- name: Building Nixpkgs lib-tests
run: |
nix-build --arg pkgs "(import ./ci/. {}).pkgs" ./lib/tests/release.nix
+22
View File
@@ -0,0 +1,22 @@
queue_rules:
# This rule is for https://docs.mergify.com/commands/queue/
# and can be triggered with: @mergifyio queue
- name: default
merge_conditions:
# all github action checks in this list are required to merge a pull request
- check-success=Attributes
- check-success=Check
- check-success=Outpaths (aarch64-darwin)
- check-success=Outpaths (aarch64-linux)
- check-success=Outpaths (x86_64-darwin)
- check-success=Outpaths (x86_64-linux)
- check-success=Process
- check-success=Request
- check-success=Tag
- check-success=editorconfig-check
- check-success=label-pr
- check-success=nix-files-parseable-check
- check-success=nixfmt-check
- check-success=nixpkgs-vet
# queue up to 5 pull requests at a time
batch_size: 5
+3 -2
View File
@@ -157,6 +157,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @NixOS/nix-team @raitobeza
# Python-related code and docs
/doc/languages-frameworks/python.section.md @mweinelt @natsukium
/maintainers/scripts/update-python-libraries @mweinelt @natsukium
/pkgs/by-name/up/update-python-libraries @mweinelt @natsukium
/pkgs/development/interpreters/python @mweinelt @natsukium
/pkgs/top-level/python-packages.nix @natsukium
/pkgs/top-level/release-python.nix @natsukium
@@ -206,8 +207,8 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @NixOS/nix-team @raitobeza
# Browsers
/pkgs/applications/networking/browsers/firefox @mweinelt
/pkgs/applications/networking/browsers/chromium @emilylange
/nixos/tests/chromium.nix @emilylange
/pkgs/applications/networking/browsers/chromium @emilylange @networkException
/nixos/tests/chromium.nix @emilylange @networkException
# Certificate Authorities
pkgs/data/misc/cacert/ @ajs124 @lukegb @mweinelt
+21 -1
View File
@@ -4668,6 +4668,13 @@
name = "Carl Richard Theodor Schneider";
keys = [ { fingerprint = "2017 E152 BB81 5C16 955C E612 45BC C1E2 709B 1788"; } ];
};
cryo = {
email = "cryo@disroot.org";
github = "cry0ice";
githubId = 176274027;
name = "Cryo";
keys = [ { fingerprint = "2CF7 F8E8 2258 5751 2591 F97F 4B12 E34A 25A9 AB35"; } ];
};
Cryolitia = {
name = "Cryolitia PukNgae";
email = "Cryolitia@gmail.com";
@@ -4800,6 +4807,12 @@
github = "d4ilyrun";
githubId = 34611103;
};
d4rk = {
name = "Anoop Menon";
email = "d4rk@blackvoltage.org";
github = "d4rk";
githubId = 22163;
};
d4rkstar = {
name = "Bruno Salzano";
email = "d4rkstar@gmail.com";
@@ -18091,6 +18104,13 @@
githubId = 4579165;
name = "Danny Bautista";
};
pyrotelekinetic = {
name = "Clover";
email = "carter@isons.org";
github = "pyrotelekinetic";
githubId = 29682759;
keys = [ { fingerprint = "5963 78DB 25AA 608D 2743 D466 5D6A D9AE 71B3 F983"; } ];
};
pyrox0 = {
name = "Pyrox";
email = "pyrox@pyrox.dev";
@@ -22782,7 +22802,7 @@
githubId = 332418;
};
tsandrini = {
email = "tomas.sandrini@seznam.cz";
email = "t@tsandrini.sh";
name = "Tomáš Sandrini";
github = "tsandrini";
githubId = 21975189;
+1 -1
View File
@@ -1,3 +1,3 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=channel:nixpkgs-unstable -i bash -p "python3.withPackages (ps: with ps; [ packaging requests ])" -p nix-prefetch-git
exec python3 pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py $@
exec python3 pkgs/by-name/up/update-python-libraries/update-python-libraries.py $@
@@ -122,7 +122,7 @@ The primary benefit of this is to remove a dependency on perl.
This is experimental.
:::
Like systemd-sysusers, Userborn adoesn't depend on Perl but offers some more
Like systemd-sysusers, Userborn doesn't depend on Perl but offers some more
advantages over systemd-sysusers:
1. It can create "normal" users (with a GID >= 1000).
@@ -24,6 +24,10 @@
- [waagent](https://github.com/Azure/WALinuxAgent), the Microsoft Azure Linux Agent (waagent) manages Linux provisioning and VM interaction with the Azure Fabric Controller. Available with [services.waagent](options.html#opt-services.waagent.enable).
- [mqtt-exporter](https://github.com/kpetremann/mqtt-exporter/), a Prometheus exporter for exposing messages from MQTT. Available as [services.prometheus.exporters.mqtt](#opt-services.prometheus.exporters.mqtt.enable).
- [Buffyboard](https://gitlab.postmarketos.org/postmarketOS/buffybox/-/tree/master/buffyboard), a framebuffer on-screen keyboard. Available as [services.buffyboard](option.html#opt-services.buffyboard).
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Backward Incompatibilities {#sec-release-25.05-incompatibilities}
@@ -50,6 +54,10 @@
- `nodePackages.webpack-dev-server` has been removed, as it should be installed in projects that use it instead.
- `racket_7_9` has been removed, as it is insecure. It is recommended to use Racket 8 instead.
- `fluxus` has been removed, as it depends on `racket_7_9` and had no updates in 9 years.
- The behavior of the `networking.nat.externalIP` and `networking.nat.externalIPv6` options has been changed. `networking.nat.forwardPorts` now only forwards packets destined for the specified IP addresses.
- `nodePackages.meshcommander` has been removed, as the package was deprecated by Intel.
@@ -64,7 +72,7 @@
files have changed from `$out/share/fonts/{opentype,truetype}/NerdFonts` to
`$out/share/fonts/{opentype,truetype}/NerdFonts/<fontDirName>`, where `<fontDirName>` can be found in the
[official website](https://www.nerdfonts.com/font-downloads) as the titles in preview images, with the "Nerd Font"
suffix and any whitespaces trimmed.
suffix and any whitespaces trimmed. Configuration changes are required, see build output.
- `retroarch` has been refactored and the older `retroarch.override { cores = [ ... ]; }` to create a RetroArch derivation with custom cores doesn't work anymore, use `retroarch.withCores (cores: [ ... ])` instead. If you need more customization (e.g.: custom settings), use `wrapRetroArch` instead.
@@ -85,6 +93,11 @@
add `vimPlugins.notmuch-vim` to your (Neo)vim configuration if you want the
vim plugin.
- `prisma` and `prisma-engines` have been updated to version 6.0.1, which
introduces several breaking changes. See the
[Prisma ORM upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6)
for more information.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Other Notable Changes {#sec-release-25.05-notable-changes}
@@ -93,6 +106,8 @@
- Cinnamon has been updated to 6.4.
- `services.avahi.ipv6` now defaults to true.
- `bind.cacheNetworks` now only controls access for recursive queries, where it previously controlled access for all queries.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+15 -1
View File
@@ -278,11 +278,23 @@ in
PRUNE_BIND_MOUNTS = if cfg.pruneBindMounts then "yes" else "no";
};
serviceConfig = {
CapabilityBoundingSet = "CAP_DAC_READ_SEARCH CAP_CHOWN";
Nice = 19;
IOSchedulingClass = "idle";
IPAddressDeny = "any";
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateTmp = "yes";
PrivateDevices = true;
PrivateNetwork = "yes";
NoNewPrivileges = "yes";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHostname = true;
RestrictAddressFamilies = "AF_UNIX";
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
ReadOnlyPaths = "/";
# Use dirOf cfg.output because mlocate creates temporary files next to
# the actual database. We could specify and create them as well,
@@ -290,6 +302,8 @@ in
# NOTE: If /var/cache does not exist, this leads to the misleading error message:
# update-locatedb.service: Failed at step NAMESPACE spawning …/update-locatedb-start: No such file or directory
ReadWritePaths = dirOf cfg.output;
SystemCallArchitectures = "native";
SystemCallFilter = "@system-service @chown";
};
};
+1
View File
@@ -588,6 +588,7 @@
./services/hardware/bluetooth.nix
./services/hardware/bolt.nix
./services/hardware/brltty.nix
./services/hardware/buffyboard.nix
./services/hardware/ddccontrol.nix
./services/hardware/display.nix
./services/hardware/fancontrol.nix
+1 -1
View File
@@ -210,5 +210,5 @@ in
};
};
meta.maintainers = with lib.maintainers; [ julm ];
meta.maintainers = with lib.maintainers; [ julm grimmauld ];
}
+14 -11
View File
@@ -170,15 +170,6 @@ static int make_caps_ambient(const char *self_path) {
"MALLOC_ARENA_TEST\0"
int main(int argc, char **argv) {
ASSERT(argc >= 1);
// argv[0] goes into a lot of places, to a far greater degree than other elements
// of argv. glibc has had buffer overflows relating to argv[0], eg CVE-2023-6246.
// Since we expect the wrappers to be invoked from either $PATH or /run/wrappers/bin,
// there should be no reason to pass any particularly large values here, so we can
// be strict for strictness' sake.
ASSERT(strlen(argv[0]) < 512);
int debug = getenv(wrapper_debug) != NULL;
// Drop insecure environment variables explicitly
@@ -209,10 +200,22 @@ int main(int argc, char **argv) {
return 1;
}
char *replacement_argv[2] = {SOURCE_PROG, NULL};
char *old_argv0;
// Replace untrusted or missing argv[0] by the wrapped program path.
// This mitigates vulnerabilities caused by incorrect handling in privileged code.
if (argv[0]) {
old_argv0 = argv[0];
argv[0] = SOURCE_PROG;
} else {
old_argv0 = "«nullptr»";
argv = replacement_argv;
}
execve(SOURCE_PROG, argv, environ);
fprintf(stderr, "%s: cannot run `%s': %s\n",
argv[0], SOURCE_PROG, strerror(errno));
old_argv0, SOURCE_PROG, strerror(errno));
return 1;
}
@@ -6,5 +6,5 @@
./github-runner/service.nix
];
meta.maintainers = with lib.maintainers; [ veehaitch newam ];
meta.maintainers = with lib.maintainers; [ veehaitch ];
}
@@ -90,6 +90,7 @@ in
lomiri-filemanager-app
lomiri-gallery-app
lomiri-history-service
lomiri-mediaplayer-app
lomiri-polkit-agent
lomiri-schemas # exposes some required dbus interfaces
lomiri-session # wrappers to properly launch the session
@@ -0,0 +1,138 @@
# INTEGRATION NOTES:
# Buffyboard integrates as a virtual device in /dev/input
# which reads touch or pointer events from other input devices
# and generates events based on where those map to the keys it renders to the framebuffer.
#
# Buffyboard generates these events whether or not its onscreen keyboard is actually visible.
# Hence special care is needed if running anything which claims ownership of the display (such as a desktop environment),
# to avoid unwanted input events being triggered during normal desktop operation.
#
# Desktop users are recommended to either:
# 1. Stop buffyboard once your DE is started.
# e.g. `services.buffyboard.unitConfig.Conflicts = [ "my-de.service" ];`
# 2. Configure your DE to ignore input events from buffyboard (product-id=25209; vendor-id=26214; name=rd)
# e.g. `echo 'input "26214:25209:rd" events disabled' > ~/.config/sway/config`
{
config,
lib,
pkgs,
utils,
...
}:
let
cfg = config.services.buffyboard;
ini = pkgs.formats.ini { };
in
{
meta.maintainers = with lib.maintainers; [ colinsane ];
options = {
services.buffyboard = with lib; {
enable = mkEnableOption "buffyboard framebuffer keyboard (on-screen keyboard)";
package = mkPackageOption pkgs "buffybox" { };
extraFlags = mkOption {
type = types.listOf types.str;
default = [ ];
description = ''
Extra CLI arguments to pass to buffyboard.
'';
example = [
"--geometry=1920x1080@640,0"
"--dpi=192"
"--rotate=2"
"--verbose"
];
};
configFile = mkOption {
type = lib.types.path;
default = ini.generate "buffyboard.conf" (lib.filterAttrsRecursive (_: v: v != null) cfg.settings);
defaultText = lib.literalExpression ''ini.generate "buffyboard.conf" cfg.settings'';
description = ''
Path to an INI format configuration file to provide Buffyboard.
By default, this is generated from whatever you've set in `settings`.
If specified manually, then `settings` is ignored.
For an example config file see [here](https://gitlab.postmarketos.org/postmarketOS/buffybox/-/blob/master/buffyboard/buffyboard.conf)
'';
};
settings = mkOption {
description = ''
Settings to include in /etc/buffyboard.conf.
Every option here is strictly optional:
Buffyboard will use its own baked-in defaults for those options left unset.
'';
type = types.submodule {
freeformType = ini.type;
options.input.pointer = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Enable or disable the use of a hardware mouse or other pointing device.
'';
};
options.input.touchscreen = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Enable or disable the use of the touchscreen.
'';
};
options.theme.default = mkOption {
type = types.either types.str (
types.enum [
null
"adwaita-dark"
"breezy-dark"
"breezy-light"
"nord-dark"
"nord-light"
"pmos-dark"
"pmos-light"
]
);
default = null;
description = ''
Selects the default theme on boot. Can be changed at runtime to the alternative theme.
'';
};
options.quirks.fbdev_force_refresh = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
If true and using the framebuffer backend, this triggers a display refresh after every draw operation.
This has a negative performance impact.
'';
};
};
default = { };
};
};
};
config = lib.mkIf cfg.enable {
systemd.packages = [ cfg.package ];
systemd.services.buffyboard = {
# upstream provides the service (including systemd hardening): we just configure it to start by default
# and override ExecStart so as to optionally pass extra arguments
serviceConfig.ExecStart = [
"" # clear default ExecStart
(utils.escapeSystemdExecArgs (
[
(lib.getExe' cfg.package "buffyboard")
"--config-override"
cfg.configFile
]
++ cfg.extraFlags
))
];
wantedBy = [ "getty.target" ];
before = [ "getty.target" ];
};
};
}
@@ -13,7 +13,13 @@ let
// lib.optionalAttrs (cfg.ddUrl != null) { dd_url = cfg.ddUrl; }
// lib.optionalAttrs (cfg.site != null) { site = cfg.site; }
// lib.optionalAttrs (cfg.tags != null ) { tags = lib.concatStringsSep ", " cfg.tags; }
// lib.optionalAttrs (cfg.enableLiveProcessCollection) { process_config = { enabled = "true"; }; }
// lib.optionalAttrs (cfg.enableLiveProcessCollection) {
process_config = {
dd_agent_bin = "${datadogPkg}/bin/agent";
process_collection.enabled = "true";
container_collection.enabled = "true";
};
}
// lib.optionalAttrs (cfg.enableTraceAgent) { apm_config = { enabled = true; }; }
// cfg.extraConfig;
@@ -58,6 +58,7 @@ let
"mikrotik"
"modemmanager"
"mongodb"
"mqtt"
"mysqld"
"nats"
"nextcloud"
@@ -0,0 +1,140 @@
{
config,
lib,
pkgs,
options,
utils,
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
types
;
cfg = config.services.prometheus.exporters.mqtt;
toConfigBoolean = x: if x then "True" else "False";
toConfigList = builtins.concatStringsSep ",";
in
{
# https://github.com/kpetremann/mqtt-exporter/tree/master?tab=readme-ov-file#configuration
port = 9000;
extraOpts = {
keepFullTopic = mkEnableOption "Keep entire topic instead of the first two elements only. Usecase: Shelly 3EM";
logLevel = mkOption {
type = types.enum [
"CRITICAL"
"ERROR"
"WARNING"
"INFO"
"DEBUG"
];
default = "INFO";
example = "DEBUG";
description = "Logging level";
};
logMqttMessage = mkEnableOption "Log MQTT original message, only if `LOG_LEVEL` is set to DEBUG.";
mqttIgnoredTopics = mkOption {
type = types.listOf types.str;
default = [ ];
description = "Lists of topics to ignore. Accepts wildcards.";
};
mqttAddress = mkOption {
type = types.str;
default = "127.0.0.1";
description = "IP or hostname of MQTT broker.";
};
mqttPort = mkOption {
type = types.port;
default = 1883;
description = "TCP port of MQTT broker.";
};
mqttTopic = mkOption {
type = types.str;
default = "#";
description = "Topic path to subscribe to.";
};
mqttKeepAlive = mkOption {
type = types.int;
default = 60;
example = 30;
description = "Keep alive interval to maintain connection with MQTT broker.";
};
mqttUsername = mkOption {
type = types.nullOr types.str;
default = null;
example = "mqttexporter";
description = "Username which should be used to authenticate against the MQTT broker.";
};
mqttV5Protocol = mkEnableOption "Force to use MQTT protocol v5 instead of 3.1.1.";
mqttClientId = mkOption {
type = types.nullOr types.str;
default = null;
description = "Set client ID manually for MQTT connection";
};
mqttExposeClientId = mkEnableOption "Expose the client ID as a label in Prometheus metrics.";
prometheusPrefix = mkOption {
type = types.str;
default = "mqtt_";
description = "Prefix added to the metric name.";
};
topicLabel = mkOption {
type = types.str;
default = "topic";
description = "Define the Prometheus label for the topic.";
};
zigbee2MqttAvailability = mkEnableOption "Normalize sensor name for device availability metric added by Zigbee2MQTT.";
zwaveTopicPrefix = mkOption {
type = types.str;
default = "zwave/";
description = "MQTT topic used for Zwavejs2Mqtt messages.";
};
esphomeTopicPrefixes = mkOption {
type = types.listOf types.str;
default = [ ];
description = "MQTT topic used for ESPHome messages.";
};
hubitatTopicPrefixes = mkOption {
type = types.listOf types.str;
default = [ "hubitat/" ];
description = "MQTT topic used for Hubitat messages.";
};
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
example = [ "/run/secrets/mqtt-exporter" ];
description = ''
File to load as environment file. Useful for e.g. setting `MQTT_PASSWORD`
without putting any secrets into the Nix store.
'';
};
};
serviceOpts = {
environment = {
KEEP_FULL_TOPIC = toConfigBoolean cfg.keepFullTopic;
LOG_LEVEL = cfg.logLevel;
LOG_MQTT_MESSAGE = toConfigBoolean cfg.logMqttMessage;
MQTT_IGNORED_TOPIC = toConfigList cfg.mqttIgnoredTopics;
MQTT_ADDRESS = cfg.mqttAddress;
MQTT_PORT = toString cfg.mqttPort;
MQTT_TOPIC = cfg.mqttTopic;
MQTT_KEEPALIVE = toString cfg.mqttKeepAlive;
MQTT_USERNAME = cfg.mqttUsername;
MQTT_V5_PROTOCOL = toConfigBoolean cfg.mqttV5Protocol;
MQTT_CLIENT_ID = mkIf (cfg.mqttClientId != null) cfg.mqttClientId;
PROMETHEUS_ADDRESS = cfg.listenAddress;
PROMETHEUS_PORT = toString cfg.port;
PROMETHEUS_PREFIX = cfg.prometheusPrefix;
TOPIC_LABEL = cfg.topicLabel;
ZIGBEE2MQTT_AVAILABILITY = toConfigBoolean cfg.zigbee2MqttAvailability;
ZWAVE_TOPIC_PREFIX = cfg.zwaveTopicPrefix;
ESPHOME_TOPIC_PREFIXES = toConfigList cfg.esphomeTopicPrefixes;
HUBITAT_TOPIC_PREFIXES = toConfigList cfg.hubitatTopicPrefixes;
};
serviceConfig = {
EnvironmentFile = mkIf (cfg.environmentFile != null) cfg.environmentFile;
ExecStart = lib.getExe pkgs.mqtt-exporter;
};
};
}
@@ -91,7 +91,7 @@ in
ipv6 = lib.mkOption {
type = lib.types.bool;
default = false;
default = true;
description = "Whether to use IPv6.";
};
@@ -300,7 +300,7 @@ in {
capabilities = mkOption {
type = types.listOf types.str;
default = ["HT40" "HT40-" "SHORT-GI-20" "SHORT-GI-40"];
default = ["HT40" "SHORT-GI-20" "SHORT-GI-40"];
example = ["LDPC" "HT40+" "HT40-" "GF" "SHORT-GI-20" "SHORT-GI-40" "TX-STBC" "RX-STBC1"];
description = ''
HT (High Throughput) capabilities given as a list of flags.
+5 -3
View File
@@ -4,7 +4,7 @@ with lib;
let
inherit (pkgs) cups-pk-helper cups-filters xdg-utils;
inherit (pkgs) cups-pk-helper libcupsfilters cups-filters xdg-utils;
cfg = config.services.printing;
cups = cfg.package;
@@ -35,7 +35,7 @@ let
bindir = pkgs.buildEnv {
name = "cups-progs";
paths =
[ cups.out additionalBackends cups-filters pkgs.ghostscript ]
[ cups.out additionalBackends libcupsfilters cups-filters pkgs.ghostscript ]
++ cfg.drivers;
pathsToLink = [ "/lib" "/share/cups" "/bin" ];
postBuild = cfg.bindirCmds;
@@ -278,6 +278,8 @@ in
'';
};
browsed.package = lib.mkPackageOption pkgs "cups-browsed" {};
browsedConf = mkOption {
type = types.lines;
default = "";
@@ -436,7 +438,7 @@ in
path = [ cups ];
serviceConfig.ExecStart = "${cups-filters}/bin/cups-browsed";
serviceConfig.ExecStart = "${cfg.browsed.package}/bin/cups-browsed";
restartTriggers = [ browsedFile ];
};
+3 -1
View File
@@ -41,6 +41,8 @@ in {
'';
};
options.services.cage.package = mkPackageOption pkgs "cage" { };
config = mkIf cfg.enable {
# The service is partially based off of the one provided in the
@@ -64,7 +66,7 @@ in {
unitConfig.ConditionPathExists = "/dev/tty1";
serviceConfig = {
ExecStart = ''
${pkgs.cage}/bin/cage \
${cfg.package}/bin/cage \
${escapeShellArgs cfg.extraArguments} \
-- ${cfg.program}
'';
+5 -1
View File
@@ -204,7 +204,6 @@ in
};
"/" = {
# mixed frontend and backend requests, based on the request headers
recommendedProxySettings = true;
extraConfig = ''
set $proxpass "${ui}";
if ($http_accept = "application/activity+json") {
@@ -221,6 +220,11 @@ in
rewrite ^(.+)/+$ $1 permanent;
proxy_pass $proxpass;
# Proxied `Host` header is required to validate ActivityPub HTTP signatures for incoming events.
# The other headers are optional, for the sake of better log data.
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
'';
};
};
@@ -135,6 +135,17 @@ in
};
environment.systemPackages = with pkgs; ([
# Teach nemo-desktop how to launch file browser.
# https://github.com/linuxmint/nemo/blob/6.4.0/src/nemo-desktop-application.c#L398
(writeTextFile {
name = "x-cinnamon-mimeapps";
destination = "/share/applications/x-cinnamon-mimeapps.list";
text = ''
[Default Applications]
inode/directory=nemo.desktop
'';
})
desktop-file-utils
# common-files
+1
View File
@@ -761,6 +761,7 @@ in
lib.nameValuePair "zfs-sync-${pool}" {
description = "Sync ZFS pool \"${pool}\"";
wantedBy = [ "shutdown.target" ];
before = [ "final.target" ];
unitConfig = {
DefaultDependencies = false;
};
+1
View File
@@ -563,6 +563,7 @@ in {
lomiri-clock-app = runTest ./lomiri-clock-app.nix;
lomiri-docviewer-app = runTest ./lomiri-docviewer-app.nix;
lomiri-filemanager-app = runTest ./lomiri-filemanager-app.nix;
lomiri-mediaplayer-app = runTest ./lomiri-mediaplayer-app.nix;
lomiri-gallery-app = runTest ./lomiri-gallery-app.nix;
lomiri-system-settings = handleTest ./lomiri-system-settings.nix {};
lorri = handleTest ./lorri/default.nix {};
+1 -1
View File
@@ -1,6 +1,6 @@
import ./make-test-python.nix ({ pkgs, lib, ... } : {
name = "apparmor";
meta.maintainers = with lib.maintainers; [ julm ];
meta.maintainers = with lib.maintainers; [ julm grimmauld ];
nodes.machine =
{ lib, pkgs, config, ... }:
+77
View File
@@ -0,0 +1,77 @@
{ lib, ... }:
let
ocrContent = "Video Test";
videoFile = "test.webm";
in
{
name = "lomiri-mediaplayer-app-standalone";
meta.maintainers = lib.teams.lomiri.members;
nodes.machine =
{ config, pkgs, ... }:
{
imports = [ ./common/x11.nix ];
services.xserver.enable = true;
environment = {
# Setup video
etc."${videoFile}".source =
pkgs.runCommand videoFile
{
nativeBuildInputs = with pkgs; [
ffmpeg # produce video for OCR
(imagemagick.override { ghostscriptSupport = true; }) # produce OCR-able image
];
}
''
magick -size 400x400 canvas:white -pointsize 40 -fill black -annotate +100+100 '${ocrContent}' output.png
ffmpeg -re -loop 1 -i output.png -c:v libvpx -b:v 100K -t 120 $out -loglevel fatal
'';
systemPackages = with pkgs.lomiri; [
suru-icon-theme
lomiri-mediaplayer-app
];
variables = {
UITK_ICON_THEME = "suru";
};
};
i18n.supportedLocales = [ "all" ];
fonts = {
packages = with pkgs; [
# Intended font & helps with OCR
ubuntu-classic
];
};
};
enableOCR = true;
testScript = ''
machine.wait_for_x()
with subtest("lomiri mediaplayer launches"):
machine.succeed("lomiri-mediaplayer-app >&2 &")
machine.wait_for_text("Choose from")
machine.screenshot("lomiri-mediaplayer_open")
machine.succeed("pkill -f lomiri-mediaplayer-app")
with subtest("lomiri mediaplayer plays video"):
machine.succeed("lomiri-mediaplayer-app /etc/${videoFile} >&2 &")
machine.wait_for_text("${ocrContent}")
machine.screenshot("lomiri-mediaplayer_playback")
machine.succeed("pkill -f lomiri-mediaplayer-app")
with subtest("lomiri mediaplayer localisation works"):
# OCR struggles with finding identifying the translated window title, and lomiri-content-hub QML isn't translated
# Cause an error, and look for the error popup
machine.succeed("touch invalid.mp4")
machine.succeed("env LANG=de_DE.UTF-8 lomiri-mediaplayer-app invalid.mp4 >&2 &")
machine.wait_for_text("Fehler")
machine.screenshot("lomiri-mediaplayer_localised")
'';
}
+32
View File
@@ -804,6 +804,38 @@ let
'';
};
mqtt = {
exporterConfig = {
enable = true;
environmentFile = pkgs.writeText "mqtt-exporter-envfile" ''
MQTT_PASSWORD=testpassword
'';
};
metricProvider = {
services.mosquitto = {
enable = true;
listeners = [{
users.exporter = {
acl = [ "read #" ];
passwordFile = pkgs.writeText "mosquitto-password" "testpassword";
};
}];
};
systemd.services.prometheus-mqtt-exporter ={
wants = [ "mosquitto.service" ];
after = [ "mosquitto.service" ];
};
};
exporterTest = ''
wait_for_unit("mosquitto.service")
wait_for_unit("prometheus-mqtt-exporter.service")
wait_for_open_port(9000)
succeed(
"curl -sSf http://localhost:9000/metrics | grep '^python_info'"
)
'';
};
mysqld = {
exporterConfig = {
enable = true;
+2 -2
View File
@@ -22,7 +22,7 @@
, libcdio-paranoia, withCD ? true
, keybinder3, withKeybinder ? false
, libnotify, withLibnotify ? false
, libsoup, withLibsoup ? false
, libsoup_2_4, withLibsoup ? false
, libgudev, withGudev ? false # experimental
, libmtp, withMtp ? false # experimental
, xfce, withXfce4ui ? false
@@ -73,7 +73,7 @@ mkDerivation rec {
++ lib.optional withLibnotify libnotify
++ lib.optional withLastfm liblastfmSF
++ lib.optional withGlyr glyr
++ lib.optional withLibsoup libsoup
++ lib.optional withLibsoup libsoup_2_4
++ lib.optional withMtp libmtp
++ lib.optional withXfce4ui xfce.libxfce4ui
++ lib.optional withTotemPlParser totem-pl-parser
@@ -20,8 +20,7 @@
libappindicator-gtk3,
libmodplug,
librsvg,
libsoup,
webkitgtk_4_0,
libsoup_3,
# optional features
withDbusPython ? false,
@@ -89,8 +88,7 @@ python3.pkgs.buildPythonApplication {
keybinder3
libappindicator-gtk3
libmodplug
libsoup
webkitgtk_4_0
libsoup_3
]
++ lib.optionals (withXineBackend) [ xine-lib ]
++ lib.optionals (withGstreamerBackend) (
+30 -26
View File
@@ -1,32 +1,36 @@
{ callPackage
, timeshift-unwrapped
, rsync
, coreutils
, mount
, umount
, psmisc
, cron
, btrfs-progs
, grubPackage
{
callPackage,
btrfs-progs,
coreutils,
cron,
grubPackage,
mount,
psmisc,
rsync,
timeshift-unwrapped,
umount,
}:
let
timeshift-wrapper = callPackage ./wrapper.nix { };
in
(timeshift-wrapper timeshift-unwrapped ([
rsync
coreutils
mount
umount
psmisc
cron
(timeshift-wrapper timeshift-unwrapped [
btrfs-progs
coreutils
cron
grubPackage
])).overrideAttrs (oldAttrs: {
meta = oldAttrs.meta // {
description = oldAttrs.meta.description;
longDescription = oldAttrs.meta.longDescription + ''
This package comes with runtime dependencies of command utilities provided by rsync, coreutils, mount, umount, psmisc, cron and (optionally) btrfs.
If you want to use the commands provided by the system, override the propagatedBuildInputs or use timeshift-minimal instead
'';
};
})
mount
psmisc
rsync
umount
]).overrideAttrs
(oldAttrs: {
meta = oldAttrs.meta // {
description = oldAttrs.meta.description;
longDescription =
oldAttrs.meta.longDescription
+ ''
This package comes with runtime dependencies of command utilities provided by rsync, coreutils, mount, umount, psmisc, cron and btrfs.
If you want to use the commands provided by the system, use timeshift-minimal instead.
'';
};
})
@@ -1,5 +1,6 @@
{ callPackage
, timeshift-unwrapped
{
callPackage,
timeshift-unwrapped,
}:
let
timeshift-wrapper = callPackage ./wrapper.nix { };
@@ -7,9 +8,11 @@ in
(timeshift-wrapper timeshift-unwrapped [ ]).overrideAttrs (oldAttrs: {
meta = oldAttrs.meta // {
description = oldAttrs.meta.description + " (without runtime dependencies)";
longDescription = oldAttrs.meta.longDescription + ''
This package is a wrapped version of timeshift-unwrapped
without runtime dependencies of command utilities.
'';
longDescription =
oldAttrs.meta.longDescription
+ ''
This package is a wrapped version of timeshift-unwrapped
without runtime dependencies of command utilities.
'';
};
})
@@ -1,29 +1,30 @@
{ lib
, stdenv
, fetchFromGitHub
, gettext
, help2man
, meson
, ninja
, pkg-config
, vala
, gtk3
, json-glib
, libgee
, util-linux
, vte
, xapp
{
lib,
stdenv,
fetchFromGitHub,
gettext,
help2man,
meson,
ninja,
pkg-config,
vala,
gtk3,
json-glib,
libgee,
util-linux,
vte,
xapp,
}:
stdenv.mkDerivation rec {
pname = "timeshift";
version = "24.06.3";
version = "24.06.5";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "timeshift";
rev = version;
hash = "sha256-npYiUSAPzr6g29ilQ1JELxqR1VbOR7TNMkdx37n92kk=";
hash = "sha256-2qNLgUZLMcfoemdLvvjdkR7Ln5loSKGqbd402y5Id8k=";
};
patches = [
@@ -65,6 +66,9 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/linuxmint/timeshift";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ShamrockLee bobby285271 ];
maintainers = with maintainers; [
ShamrockLee
bobby285271
];
};
}
+17 -11
View File
@@ -1,22 +1,22 @@
{ stdenvNoCC
, lib
, wrapGAppsHook3
, gdk-pixbuf
, librsvg
, xorg
, shared-mime-info
{
stdenvNoCC,
lib,
wrapGAppsHook3,
gdk-pixbuf,
librsvg,
xorg,
shared-mime-info,
}:
timeshift-unwrapped:
runtimeDeps:
timeshift-unwrapped: runtimeDeps:
stdenvNoCC.mkDerivation {
inherit (timeshift-unwrapped) pname version;
dontUnpack = true;
nativeBuildInputs = [
xorg.lndir
wrapGAppsHook3
xorg.lndir
];
installPhase = ''
@@ -34,7 +34,13 @@ stdenvNoCC.mkDerivation {
)
gappsWrapperArgs+=(
# Thumbnailers
--prefix XDG_DATA_DIRS : "${lib.makeSearchPath "share" [ gdk-pixbuf librsvg shared-mime-info ]}"
--prefix XDG_DATA_DIRS : "${
lib.makeSearchPath "share" [
gdk-pixbuf
librsvg
shared-mime-info
]
}"
"''${makeWrapperArgs[@]}"
)
wrapProgram "$out/bin/timeshift" "''${makeWrapperArgs[@]}"
@@ -11,16 +11,16 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "electrs";
version = "0.10.6";
version = "0.10.7";
src = fetchFromGitHub {
owner = "romanz";
repo = pname;
rev = "v${version}";
hash = "sha256-yp9fKD7zH9Ne2+WQUupaxvUx39RWE8RdY4U6lHuDGSc=";
hash = "sha256-KDl+SV5U2aqsl3UMK8WWZiwkcqLpaRGmH/J8vBKTZcQ=";
};
cargoHash = "sha256-J+6aek1PcW7G6f4h6cQcx5CyliryZeSxkSIQUX3yz6s=";
cargoHash = "sha256-vcn+94KklWlYQw4fbH8KxhBnovk0dJc8Hkj+jJ+SeB0=";
# needed for librocksdb-sys
nativeBuildInputs = [ rustPlatform.bindgenHook ];
@@ -7,13 +7,13 @@
melpaBuild {
pname = "isearch-prop";
version = "0-unstable-2022-12-30";
version = "0-unstable-2024-10-13";
src = fetchFromGitHub {
owner = "emacsmirror";
repo = "isearch-prop";
rev = "5787fd57977c0d6c416ce71471c3b9da246dfb78";
hash = "sha256-Xli7TxBenl5cDMJv3Qz7ZELFpvJKStMploLpf9a+uoA=";
rev = "7b32697c16541036abadbbb4d65dd67a4f1d2812";
hash = "sha256-NmFkbxiRFAqi1TaOFfmAOgIs1QZMKXkJfMmXL9fsV14=";
};
passthru.updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
@@ -7,12 +7,12 @@
nix-update-script,
}:
let
version = "0.7.1";
version = "0.7.3";
src = fetchFromGitHub {
owner = "Saghen";
repo = "blink.cmp";
rev = "refs/tags/v${version}";
hash = "sha256-IHl+XIldo2kculpbiOuLIJ6RJbFODiRlQU4x8hvE7pI=";
hash = "sha256-nxiODLKgGeXzN5sqkLWU0PcsuSSB1scSzTC5qyCxLCI=";
};
libExt = if stdenv.hostPlatform.isDarwin then "dylib" else "so";
blink-fuzzy-lib = rustPlatform.buildRustPackage {
@@ -1037,6 +1037,18 @@ final: prev:
meta.homepage = "https://github.com/yetone/avante.nvim/";
};
aw-watcher-vim = buildVimPlugin {
pname = "aw-watcher-vim";
version = "2023-10-09";
src = fetchFromGitHub {
owner = "ActivityWatch";
repo = "aw-watcher-vim";
rev = "4ba86d05a940574000c33f280fd7f6eccc284331";
sha256 = "0kzpr2dgn80lcqbbf9ig6vx7azz6vbvadi31mxb0qyd91fyiidi3";
};
meta.homepage = "https://github.com/ActivityWatch/aw-watcher-vim/";
};
awesome-vim-colorschemes = buildVimPlugin {
pname = "awesome-vim-colorschemes";
version = "2024-05-18";
@@ -258,6 +258,15 @@ in
}
);
aw-watcher-vim = super.aw-watcher-vim.overrideAttrs {
patches = [
(substituteAll {
src = ./patches/aw-watcher-vim/program_paths.patch;
curl = lib.getExe curl;
})
];
};
bamboo-nvim = super.bamboo-nvim.overrideAttrs {
nvimSkipModule = [
# Requires config table
@@ -0,0 +1,13 @@
diff --git a/plugin/activitywatch.vim b/plugin/activitywatch.vim
index 6986553..7462b02 100644
--- a/plugin/activitywatch.vim
+++ b/plugin/activitywatch.vim
@@ -29,7 +29,7 @@ let s:heartbeat_apiurl = printf('%s/heartbeat?pulsetime=30', s:bucket_apiurl)
let s:http_response_code = {}
function! HTTPPostJson(url, data)
- let l:req = ['curl', '-s', a:url,
+ let l:req = ['@curl@', '-s', a:url,
\ '-H', 'Content-Type: application/json',
\ '-X', 'POST',
\ '-d', json_encode(a:data),
@@ -2312,8 +2312,8 @@ let
mktplcRef = {
name = "haskell";
publisher = "haskell";
version = "2.2.2";
hash = "sha256-zWdIVdz+kZg7KZQ7LeBCB4aB9wg8dUbkWfzGlM0Fq7Q=";
version = "2.4.4";
hash = "sha256-O7tfZ1bQmlMgZGoWuECjSno6DLCO0+CCteRhT6PjZBY=";
};
meta = {
license = lib.licenses.mit;
@@ -2706,8 +2706,8 @@ let
mktplcRef = {
name = "nix-ide";
publisher = "jnoortheen";
version = "0.3.1";
hash = "sha256-05oMDHvFM/dTXB6T3rcDK3EiNG2T0tBN9Au9b+Bk7rI=";
version = "0.3.5";
hash = "sha256-hiyFZVsZkxpc2Kh0zi3NGwA/FUbetAS9khWxYesxT4s=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/jnoortheen.nix-ide/changelog";
@@ -48,7 +48,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
+ lib.optionalString pythonUseFixed ''
# Patch `packages.json` so that nix's *python* is used as default value for `python.pythonPath`.
substituteInPlace "./package.json" \
--replace "\"default\": \"python\"" "\"default\": \"${python3.interpreter}\""
--replace-fail "\"default\":\"python\"" "\"default\":\"${python3.interpreter}\""
'';
passthru.updateScript = writeScript "update" ''
@@ -11,7 +11,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
name = "tinymist";
publisher = "myriad-dreamin";
inherit (tinymist) version;
hash = "sha256-dHxeyqVe7cA/xK0RpprWRt5xPViyLHHal0pO6xhq4aE=";
hash = "sha256-vkVH+CBGSEWqSIDel+Y2O+B17LvLZbOjpHzbGAvEmWg=";
};
nativeBuildInputs = [
@@ -6,28 +6,28 @@
}:
let
version = "0.13.0";
version = "0.13.1";
sources = {
"x86_64-linux" = {
arch = "linux-x64";
url = "https://download.visualjj.com/visualjj-linux-x64-${version}.vsix";
hash = "sha256-mhfn/Lw/W1T2PaIglwrO/7VacDutT6Tgs133ePHL7W4=";
hash = "sha256-vKlsRxqtEvx4Gu6tkBjERYHl4Xx0K9xnYkh1SMDOYl0=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
url = "https://download.visualjj.com/visualjj-darwin-x64-${version}.vsix";
hash = "sha256-feghMmcqzFM/Ttk8s4fp8et9Suw2kKLocptzwEcB2Sw=";
hash = "sha256-hzKZYPL/ZCRP2a4EaZGRXmzVpUNlGh4gOQt7NvGkn4M=";
};
"aarch64-linux" = {
arch = "linux-arm64";
url = "https://download.visualjj.com/visualjj-linux-arm64-${version}.vsix";
hash = "sha256-bfBj/A41FFMwMAEVw77nEDyk0+fYvi2Tg1Ufihxi9F8=";
hash = "sha256-nvVeme/qRG1ObSeisIBQHka5zG2f7Bqsjmva5EevXxw=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
url = "https://download.visualjj.com/visualjj-darwin-arm64-${version}.vsix";
hash = "sha256-xzf3WrH7BTiaX6NC2n9nLCKuBlFzRDYaSR73VGM7Ldc=";
hash = "sha256-mW6zJq0XvliCAWuslHdnlMX7bgO0mS9kH7CIYXjlaCE=";
};
};
in
@@ -29,13 +29,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dosbox-x";
version = "2024.10.01";
version = "2024.12.04";
src = fetchFromGitHub {
owner = "joncampbell123";
repo = "dosbox-x";
rev = "dosbox-x-v${finalAttrs.version}";
hash = "sha256-qfrEy7OndhJ/UnfFDCp7qlIhYWANkUBy2ejYVvRrG3k=";
hash = "sha256-wZCLwEInUfzuOCcUsz8W+Gi00lp4Nwc0QZjLF8/e9iM=";
};
# sips is unavailable in sandbox, replacing with imagemagick breaks build due to wrong Foundation propagation(?) so don't generate resolution variants
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
mainProgram = "winetricks";
license = lib.licenses.lgpl21;
homepage = "https://github.com/Winetricks/winetricks";
platforms = with lib.platforms; linux;
platforms = with lib.platforms; linux ++ darwin;
};
}
+3 -3
View File
@@ -8,13 +8,13 @@
python3Packages.buildPythonApplication rec {
pname = "eddy";
version = "1.2.1";
version = "3.6";
src = fetchFromGitHub {
owner = "obdasystems";
repo = pname;
rev = "v${version}";
sha256 = "12j77bbva5py9bd57c80cmjvf8vll40h19n81h16lvv2r2r7jynh";
rev = "refs/tags/v${version}";
sha256 = "sha256-vRmLUIqU0qfcnKzymBGb9gfM/uQiAcUHUnyz8iH/GrM=";
};
propagatedBuildInputs = [
@@ -27,7 +27,7 @@
, librevenge
, librsvg
, libsigcxx
, libsoup
, libsoup_2_4
, libvisio
, libwpg
, libXft
@@ -155,7 +155,7 @@ stdenv.mkDerivation rec {
librevenge
librsvg # for loading icons
libsigcxx
libsoup
libsoup_2_4
libvisio
libwpg
libXft
@@ -1,64 +0,0 @@
{ lib, stdenv, fetchurl, makeDesktopItem
, ghostscript, atk, gtk2, glib, fontconfig, freetype
, libgnomecanvas
, pango, libX11, xorgproto, zlib, poppler
, autoconf, automake, libtool, pkg-config}:
let
isGdkQuartzBackend = (gtk2.gdktarget == "quartz");
in
stdenv.mkDerivation rec {
version = "0.4.8.2016";
pname = "xournal";
src = fetchurl {
url = "mirror://sourceforge/xournal/xournal-${version}.tar.gz";
sha256 = "09i88v3wacmx7f96dmq0l3afpyv95lh6jrx16xzm0jd1szdrhn5j";
};
buildInputs = [
ghostscript atk gtk2 glib fontconfig freetype
libgnomecanvas
pango libX11 xorgproto zlib poppler
];
nativeBuildInputs = [ autoconf automake libtool pkg-config ];
NIX_LDFLAGS = "-lz"
+ lib.optionalString (!isGdkQuartzBackend) " -lX11";
desktopItem = makeDesktopItem {
name = "xournal-${version}";
exec = "xournal";
icon = "xournal";
desktopName = "Xournal";
comment = meta.description;
categories = [ "Office" "Graphics" ];
mimeTypes = [ "application/pdf" "application/x-xoj" ];
genericName = "PDF Editor";
};
postInstall=''
mkdir --parents $out/share/mime/packages
cat << EOF > $out/share/mime/packages/xournal.xml
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/x-xoj">
<comment>Xournal Document</comment>
<glob pattern="*.xoj"/>
</mime-type>
</mime-info>
EOF
cp --recursive ${desktopItem}/share/applications $out/share
mkdir --parents $out/share/icons
cp $out/share/xournal/pixmaps/xournal.png $out/share/icons
'';
meta = with lib; {
homepage = "https://xournal.sourceforge.net/";
description = "Note-taking application (supposes stylus)";
maintainers = [ maintainers.guibert ];
license = licenses.gpl2;
platforms = with platforms; linux ++ darwin;
mainProgram = "xournal";
};
}
@@ -30,13 +30,13 @@
stdenv.mkDerivation rec {
pname = "xournalpp";
version = "1.2.4";
version = "1.2.5";
src = fetchFromGitHub {
owner = "xournalpp";
repo = "xournalpp";
rev = "v${version}";
hash = "sha256-72e47fVP0c8KioRHUqyEQIUgrLm+xMPE2Mm6+2v7pZk=";
hash = "sha256-Hm3NDVELOnwjg6NiV5VBbt/15slHAgOVZLTV3zBMkLI=";
};
postPatch = ''
+2 -2
View File
@@ -17,13 +17,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "gpxsee";
version = "13.26";
version = "13.32";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = finalAttrs.version;
hash = "sha256-EIeUcSHJXpd1/90fAPrP9F/DVyZhkcZk8MJd9VO1D70=";
hash = "sha256-wz5cYZe7OHfIgoHrYRj0DKNFjYjb+CGlLnDItRNu+bk=";
};
buildInputs = [
@@ -84,6 +84,8 @@ mkChromiumDerivation (base: rec {
homepage = if ungoogled
then "https://github.com/ungoogled-software/ungoogled-chromium"
else "https://www.chromium.org/";
# Maintainer pings for this derivation are highly unreliable.
# If you add yourself as maintainer here, please also add yourself as CODEOWNER.
maintainers = with lib.maintainers; if ungoogled
then [ networkexception emilylange ]
else [ networkexception emilylange ];
@@ -663,12 +663,7 @@ let
} // lib.optionalAttrs (!isElectron) {
inherit chromiumDeps npmDeps;
};
}
# overwrite `version` with the exact same `version` from the same source,
# except it internally points to `upstream-info.nix` for
# `builtins.unsafeGetAttrPos`, which is used by ofborg to decide
# which maintainers need to be pinged.
// builtins.removeAttrs upstream-info (builtins.filter (e: e != "version") (builtins.attrNames upstream-info));
};
# Remove some extraAttrs we supplied to the base attributes already.
in stdenv.mkDerivation (base // removeAttrs extraAttrs [
@@ -178,9 +178,3 @@ in stdenv.mkDerivation {
inherit sandboxExecutableName;
};
}
# the following is a complicated and long-winded variant of
# `inherit (chromium.browser) version`, with the added benefit
# that it keeps the pointer to upstream-info.nix for
# builtins.unsafeGetAttrPos, which is what ofborg uses to
# decide which maintainers need to be pinged.
// builtins.removeAttrs chromium.browser (builtins.filter (e: e != "version") (builtins.attrNames chromium.browser))
@@ -766,7 +766,7 @@
}
},
"ungoogled-chromium": {
"version": "131.0.6778.85",
"version": "131.0.6778.108",
"deps": {
"depot_tools": {
"rev": "20b9bdcace7ed561d6a75728c85373503473cb6b",
@@ -777,16 +777,16 @@
"hash": "sha256-a8yCdBsl0nBMPS+pCLwrkAvQNP/THx/z/GySyOgx4Jk="
},
"ungoogled-patches": {
"rev": "131.0.6778.85-1",
"hash": "sha256-mcSshjdfUEH4ur4z+0P0oWCjlV8EhFMc+7rdfIIPASI="
"rev": "131.0.6778.108-1",
"hash": "sha256-xFtxgZRbtG8qxvTyt++wa69dQvr61K29mTubkxoI1Y8="
},
"npmHash": "sha256-b1l8SwjAfoColoa3zhTMPEF/rRuxzT3ATHE77rWU5EA="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d",
"hash": "sha256-fREToEHVbTD0IVGx/sn7csSju4BYajWZ+LDCiKWV4cI=",
"rev": "3b014839fbc4fb688b2f5af512d6ce312ad208b1",
"hash": "sha256-ypzu3LveMFcOFm7+JlaERjzs3SK/n9+sfm5wOKB8/zw=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -886,8 +886,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "7e742cac42c29a14ab7f54b134b2f17592711267",
"hash": "sha256-K2gwKNwonzCIu4hnlYuOaYyKaRV11hwDzF4oykiKsl0="
"rev": "740d2502dbbd719a76c5a8d3fb4dac1b5363f42e",
"hash": "sha256-R41YVv4uWCU6SsACXPRppeCDguTs+/NVJckvMGGTgJE="
},
"src/third_party/dawn/third_party/glfw": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@@ -1366,8 +1366,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "94631d9b9a10697325589e1642af63a0137cac94",
"hash": "sha256-SKKLOxjimQWt8W+Q3wlCJaUC/lxw6EIZDFBuVQKmnVY="
"rev": "f14f6b1ab7cf544c0190074488d17821281cfa4d",
"hash": "sha256-0p57otDuIShl6MngYs22XA1QYxptDVa3vCwJsH59H34="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -1491,8 +1491,8 @@
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "8445abdf8069cadcbd134369b70d0ebd436ef477",
"hash": "sha256-EitEjXNtm0gB9wtAwIYHBHkU7paHg5zvsTz171hRmK4="
"rev": "79aff54b0fa9238ce3518dd9eaf9610cd6f22e82",
"hash": "sha256-xkMnUduSG88EWiwq6PITN0KgAKjFd4QOis3dgxedK30="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -1526,8 +1526,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "bd2671b973062afc614b852ec190524b80aaef8a",
"hash": "sha256-uq0CE7Chqzy2d+iifC3hV9RTnDVinpwjl1pOzyNGbSo="
"rev": "e38771cb283b9689683c5ac0b5831dd89f8ec690",
"hash": "sha256-csSDnepYxil0R3PD/LVxW7JBcasOKG4l6q6vj8zHV/I="
}
}
}
@@ -29,26 +29,31 @@ const flush_to_file_proxy = {
},
}
const lockfile = new Proxy(structuredClone(lockfile_initial), flush_to_file_proxy)
const ungoogled_rev = argv['ungoogled-chromium-rev']
for (const attr_path of Object.keys(lockfile)) {
if (!argv[attr_path]) {
const ungoogled = attr_path === 'ungoogled-chromium'
if (!argv[attr_path] && !(ungoogled && ungoogled_rev)) {
console.log(`[${attr_path}] Skipping ${attr_path}. Pass --${attr_path} as argument to update.`)
continue
}
const ungoogled = attr_path === 'ungoogled-chromium'
const version_nixpkgs = !ungoogled ? lockfile[attr_path].version : lockfile[attr_path].deps['ungoogled-patches'].rev
const version_upstream = !ungoogled ? await get_latest_chromium_release() : await get_latest_ungoogled_release()
const version_upstream = !ungoogled ? await get_latest_chromium_release() :
ungoogled_rev ?? await get_latest_ungoogled_release()
console.log(`[${attr_path}] ${chalk.red(version_nixpkgs)} (nixpkgs)`)
console.log(`[${attr_path}] ${chalk.green(version_upstream)} (upstream)`)
if (version_greater_than(version_upstream, version_nixpkgs)) {
if (ungoogled_rev || version_greater_than(version_upstream, version_nixpkgs)) {
console.log(`[${attr_path}] ${chalk.green(version_upstream)} from upstream is newer than our ${chalk.red(version_nixpkgs)}...`)
// unconditionally remove ungoogled-chromium's epoch/sub-version (e.g. 130.0.6723.116-1 -> 130.0.6723.116)
const version_chromium = version_upstream.split('-')[0]
let ungoogled_patches = ungoogled ? await fetch_ungoogled(version_upstream) : undefined
// For ungoogled-chromium we need to remove the patch revision (e.g. 130.0.6723.116-1 -> 130.0.6723.116)
// by just using the chromium_version.txt content from the patches checkout (to also work with commit revs).
const version_chromium = ungoogled_patches?.chromium_version ?? version_upstream
const chromium_rev = await chromium_resolve_tag_to_rev(version_chromium)
@@ -58,7 +63,10 @@ for (const attr_path of Object.keys(lockfile)) {
deps: {
depot_tools: {},
gn: {},
'ungoogled-patches': ungoogled ? await fetch_ungoogled(version_upstream) : undefined,
'ungoogled-patches': !ungoogled ? undefined : {
rev: ungoogled_patches.rev,
hash: ungoogled_patches.hash,
},
npmHash: dummy_hash,
},
DEPS: {},
@@ -187,13 +195,19 @@ async function fetch_ungoogled(rev) {
const expr = (hash) => [`(import ./. {}).fetchFromGitHub { owner = "ungoogled-software"; repo = "ungoogled-chromium"; rev = "${rev}"; hash = "${hash}"; }`]
const hash = await prefetch_FOD('--expr', expr(''))
const checkout = await $nixpkgs`nix-build --expr ${expr(hash)}`
const checkout = await $nixpkgs`nix-build --expr ${expr(hash)}`
const checkout_path = checkout.stdout.trim()
await fs.copy(`${checkout.stdout.trim()}/flags.gn`, './ungoogled-flags.toml')
await fs.copy(path.join(checkout_path, 'flags.gn'), './ungoogled-flags.toml')
const chromium_version = (await fs.readFile(path.join(checkout_path, 'chromium_version.txt'))).toString().trim()
console.log(`[ungoogled-chromium] ${chalk.green(rev)} patch revision resolves to chromium version ${chalk.green(chromium_version)}`)
return {
rev,
hash,
chromium_version,
}
}
@@ -20,7 +20,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "palemoon-bin";
version = "33.4.1";
version = "33.5.0";
src = finalAttrs.passthru.sources."gtk${if withGTK3 then "3" else "2"}";
@@ -158,11 +158,11 @@ stdenv.mkDerivation (finalAttrs: {
in {
gtk3 = fetchzip {
urls = urlRegionVariants "gtk3";
hash = "sha256-pjOzU8atFNzYujxxoVihn0Cvq4Xvh7U2auSznE29Wpc=";
hash = "sha256-TlmDsZKHolTS+y+1BymyY49+AvqUv8zmUXCGNHCRPL0=";
};
gtk2 = fetchzip {
urls = urlRegionVariants "gtk2";
hash = "sha256-ikgO0vVTySw3I6gdSu5k2e35xZ95bJY4f18Fjh+c0rA=";
hash = "sha256-f6vLHbpmvVfkjZr7x0DiCFoGGvfxHfFZ3KTagq2Mwp4=";
};
};
@@ -1,6 +1,6 @@
{ lib, stdenv, fetchgit
, pkg-config, wrapGAppsHook3
, glib, gcr, glib-networking, gsettings-desktop-schemas, gtk, libsoup, webkitgtk_4_0
, glib, gcr, glib-networking, gsettings-desktop-schemas, gtk, libsoup_2_4, webkitgtk_4_0
, xorg, dmenu, findutils, gnused, coreutils, gst_all_1
, patches ? null
}:
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
glib-networking
gsettings-desktop-schemas
gtk
libsoup
libsoup_2_4
webkitgtk_4_0
] ++ (with gst_all_1; [
# Audio & video support for webkitgtk WebView
@@ -63,13 +63,13 @@
"vendorHash": "sha256-OAd8SeTqTrH0kMoM2LsK3vM2PI23b3gl57FaJYM9hM0="
},
"archive": {
"hash": "sha256-Xm9BT8O18aTIa1h166dElYaTq4PlC4u7TgFgCfcC6jI=",
"hash": "sha256-q2Ougw8U6kapeGWBLhsvrRMW8/kGhE0eTV35kPHrN5g=",
"homepage": "https://registry.terraform.io/providers/hashicorp/archive",
"owner": "hashicorp",
"repo": "terraform-provider-archive",
"rev": "v2.6.0",
"rev": "v2.7.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-b8yGtOUZezGRgURXigv8ySaxxHN/vCCDPgoDC5EBlok="
"vendorHash": "sha256-51bLi7cqy7iUt9Aocog7OOKYWSdGbQEoZzasUpDuHu4="
},
"argocd": {
"hash": "sha256-3a/g1SbgeMWFMNTY/sYrItyE1rRimdNro8nu9wPTf6M=",
@@ -552,13 +552,13 @@
"vendorHash": "sha256-TZxiDRVZPfg3jSflZsSbVaVcfUNqJ2U+ymHIm01pgkI="
},
"hcloud": {
"hash": "sha256-td1R2Xeo1QfsNJOwE7cCuzF5OjW4XUQJOVd0LPAXfuE=",
"hash": "sha256-nkp4XTFRBSxqRAURL0O4H/l7oDF/OEXmew0MkmyQryc=",
"homepage": "https://registry.terraform.io/providers/hetznercloud/hcloud",
"owner": "hetznercloud",
"repo": "terraform-provider-hcloud",
"rev": "v1.48.1",
"rev": "v1.49.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-t9nXq30jRSlx9gMR+s8irDVdSE5tg9ZvMp47HZwEm7w="
"vendorHash": "sha256-TFH5tHOTRNPUMGYeYQ1ZbM6FjcojYnkB2NwnQOacTvg="
},
"helm": {
"hash": "sha256-8cYhbxbjTfloDd3cLYNPv98TzeC0XVrb4DQ2ScZDYvI=",
@@ -651,13 +651,13 @@
"vendorHash": null
},
"incus": {
"hash": "sha256-VHoEUcFwsERC3EKfobTEoWOxuiOEBzEaWXL+mzlTe44=",
"hash": "sha256-Dva5bFyJpxifsQl62xnjvqEQ5SknUmCLfGX4fFx5FAE=",
"homepage": "https://registry.terraform.io/providers/lxc/incus",
"owner": "lxc",
"repo": "terraform-provider-incus",
"rev": "v0.1.4",
"rev": "v0.2.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-7MQi9gJU0RAm9jTiY/YjkEU5QsxSX2lbUC7qvT20mes="
"vendorHash": "sha256-xr54yCVGOJbj0612wiljUkx1wEOSuXB1qrGbF/vCwN8="
},
"infoblox": {
"hash": "sha256-x5WGCYvsXby2O8J15fvoRNsYnBCaYdjx6LuDkYAfIlU=",
@@ -1174,13 +1174,13 @@
"vendorHash": "sha256-YFV+qXD78eajSeagJPgPu+qIktx1Vh/ZT0fUPOBuZyo="
},
"spacelift": {
"hash": "sha256-HJ+QlbmMvn45l9KjmVzoK/jETIosOSlcLtw4B1kdEIo=",
"hash": "sha256-RWrhVeXPEgFYFGh34vFargTrZH+3CxY36+i0lmFSjXg=",
"homepage": "https://registry.terraform.io/providers/spacelift-io/spacelift",
"owner": "spacelift-io",
"repo": "terraform-provider-spacelift",
"rev": "v1.16.1",
"rev": "v1.19.0",
"spdx": "MIT",
"vendorHash": "sha256-m/J390su2nUpYMXrrYcOfKSjZb5Y23+g24rroLRss4U="
"vendorHash": "sha256-c3R/7k7y7XS2Qli00nSj7gh/3Mj88PY4WybBTq/+pPs="
},
"spotinst": {
"hash": "sha256-Yq52eCxT+XWoTONcLTDlIpy/jnU76JajsoqKYXFK8AM=",
@@ -3,16 +3,16 @@
buildGoModule rec {
pname = "discordo";
version = "0-unstable-2024-10-13";
version = "0-unstable-2024-11-30";
src = fetchFromGitHub {
owner = "ayn2op";
repo = pname;
rev = "26b77d9385daa2dc056930fa302a3c06595680ba";
hash = "sha256-zXqYj8IBDVeDKjm0m8CYEX+tmHLpY2u7A4g38IiDNZk=";
rev = "3286ebecaab3c05ddbab9e6b502a750d07cea5aa";
hash = "sha256-DaD6Rv/dzky3gjjqtjObTFZp7EJ8+UK6CoFpqZ/HO9U=";
};
vendorHash = "sha256-68NGcdyKuabSdW6CKAJUaJ0k2dpO0bm3OfNQ7qEVcqk=";
vendorHash = "sha256-66Y5hmEEQUBsSfYaj6UzCsFhDkwCDs6y2WOsnYby1gE=";
CGO_ENABLED = 0;
@@ -3,7 +3,7 @@
, vala, cmake, ninja, wrapGAppsHook4, pkg-config, gettext
, gobject-introspection, glib, gdk-pixbuf, gtk4, glib-networking
, libadwaita
, libnotify, libsoup, libgee
, libnotify, libsoup_2_4, libgee
, libsignal-protocol-c
, libgcrypt
, sqlite
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
libnotify
gpgme
libgcrypt
libsoup
libsoup_2_4
pcre2
icu
libsignal-protocol-c
@@ -90,7 +90,7 @@ stdenv.mkDerivation (finalAttrs: {
"-DXGETTEXT_EXECUTABLE=${lib.getBin buildPackages.gettext}/bin/xgettext"
"-DMSGFMT_EXECUTABLE=${lib.getBin buildPackages.gettext}/bin/msgfmt"
"-DGLIB_COMPILE_RESOURCES_EXECUTABLE=${lib.getDev buildPackages.glib}/bin/glib-compile-resources"
"-DSOUP_VERSION=${lib.versions.major libsoup.version}"
"-DSOUP_VERSION=${lib.versions.major libsoup_2_4.version}"
];
# Undefined symbols for architecture arm64: "_gpg_strerror"
@@ -10,16 +10,16 @@ let
if stdenv.hostPlatform.isLinux then
{
stable = "0.0.76";
ptb = "0.0.118";
canary = "0.0.528";
development = "0.0.50";
ptb = "0.0.121";
canary = "0.0.535";
development = "0.0.53";
}
else
{
stable = "0.0.327";
ptb = "0.0.148";
canary = "0.0.639";
development = "0.0.65";
stable = "0.0.328";
ptb = "0.0.151";
canary = "0.0.647";
development = "0.0.67";
};
version = versions.${branch};
srcs = rec {
@@ -30,33 +30,33 @@ let
};
ptb = fetchurl {
url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
hash = "sha256-msheT6PXTkIq7EwowYwL7g0kgOdLBZHeI5w2kijJUtw=";
hash = "sha256-Zaf6Pg6xeSyiIFJMlT+VkE/sXJULSqGzGHmK5MpBuhg=";
};
canary = fetchurl {
url = "https://canary.dl2.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
hash = "sha256-ajQHWSpjpuadFlT5WVXsSZf5Ng8ta4SyGbZp7TTb+8Q=";
hash = "sha256-YUuqkhb04nTTdL6W6VB0ampp3qEi0Gj5iz3lCt7AfMA=";
};
development = fetchurl {
url = "https://development.dl2.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
hash = "sha256-Ygwneo9GY1iVKBl3y6jSj81sexUsSY2J7i/DKxmJJyA=";
hash = "sha256-4FxdZsVTQTr5yzuzV6IZYZ6qk7sa9WZ27zCtVA1/uOg=";
};
};
x86_64-darwin = {
stable = fetchurl {
url = "https://stable.dl2.discordapp.net/apps/osx/${version}/Discord.dmg";
hash = "sha256-5XzjJv2IebVMVml/e+VTVKrlbHTCj+t0lYsq1CwvLi0=";
hash = "sha256-yYQHoBv3Cco07WQhS8+BruV1gjGZti+bTS+jlRg0u14=";
};
ptb = fetchurl {
url = "https://ptb.dl2.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
hash = "sha256-YW6wgiplt+ue59i5+2Ap5tVAEhO1xgeP8jVOffkSWj4=";
hash = "sha256-R8R3r2i/+ru+82OBGBmF+Kn502RK/64VwtbdRVSwj0g=";
};
canary = fetchurl {
url = "https://canary.dl2.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
hash = "sha256-C+2Cr8D2ZqfdRp0m996p8HvOjkPzN82ywgbx2KMBqAE=";
hash = "sha256-GbR6XLK+2jBHGdvWeZv3HXbCr4mylBrdY/3rCFCkeCY=";
};
development = fetchurl {
url = "https://development.dl2.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
hash = "sha256-IckTw2wKTwGMGvQAOYG85yU1w9E6PdWA1G0f2BaXJ1Q=";
hash = "sha256-nyOQhSjlARvIjFc3uDi7IFtKxxIpO/V6M1eIg56dMdU=";
};
};
aarch64-darwin = x86_64-darwin;
@@ -1,6 +1,6 @@
{ lib, stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook3, which, more
, file, atk, alsa-lib, cairo, fontconfig, gdk-pixbuf, glib, webkitgtk_4_0, gtk2-x11, gtk3
, heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
, heimdal, krb5, libsoup_2_4, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
, gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
, libjpeg, libredirect, tzdata, cacert, systemd, libcxx, symlinkJoin
, libpulseaudio, pcsclite, glib-networking, llvmPackages_12, opencv4
@@ -103,7 +103,7 @@ stdenv.mkDerivation rec {
libpng12
libpulseaudio
libsecret
libsoup
libsoup_2_4
libvorbis
libxml2
llvmPackages_12.libunwind
+2 -2
View File
@@ -6,7 +6,7 @@
, libofx
, intltool
, wrapGAppsHook3
, libsoup
, libsoup_2_4
, adwaita-icon-theme
}:
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
gtk
libgsf
libofx
libsoup
libsoup_2_4
adwaita-icon-theme
];
@@ -62,6 +62,7 @@ let
url = "https://github.com/Reactive-Extensions/RxCpp/archive/v${rxcppVersion}.tar.gz";
sha256 = "sha256-UOc5WrG8KgAA3xJsaSCjbdPE7gSnFJay9MEK31DWUXg=";
};
gtest = fetchurl {
url = "https://github.com/google/googletest/archive/release-${gtestVersion}.tar.gz";
sha256 = "sha256-WKb0J3yivIVlIis7vVihd2CenEiOinJkk1m6UUUNt9g=";
@@ -69,7 +70,7 @@ let
};
in
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
inherit pname version;
outputs = [ "out" "dev" "doc" ];
@@ -132,32 +133,39 @@ stdenv.mkDerivation rec {
++ lib.optional opencvSupport opencv;
cmakeFlags = let
enableIf = cond: if cond then "ON" else "OFF";
excludeTestsRegex = lib.concatStringsSep "|" [
# sporadic segfault
# segfault
"SerializationXML"
"TrainedModelSerialization"
# broken by openblas 0.3.21
"mathematics_lapack"
# fails on aarch64
"LinearTimeMMD"
"QuadraticTimeMMD"
"SGVectorTest"
"Statistics"
# hangs on aarch64
"PRange"
# these take too long on CI
"evaluation_cross_validation"
"modelselection_combined_kernel"
"modelselection_grid_search"
];
in [
"-DBUILD_META_EXAMPLES=ON"
"-DCMAKE_DISABLE_FIND_PACKAGE_ARPACK=ON"
"-DCMAKE_DISABLE_FIND_PACKAGE_ARPREC=ON"
"-DCMAKE_DISABLE_FIND_PACKAGE_CPLEX=ON"
"-DCMAKE_DISABLE_FIND_PACKAGE_Mosek=ON"
"-DCMAKE_DISABLE_FIND_PACKAGE_TFLogger=ON"
"-DCMAKE_DISABLE_FIND_PACKAGE_ViennaCL=ON"
"-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;'${excludeTestsRegex}'"
"-DENABLE_TESTING=${enableIf doCheck}"
"-DDISABLE_META_INTEGRATION_TESTS=ON"
"-DTRAVIS_DISABLE_META_CPP=ON"
"-DINTERFACE_PYTHON=${enableIf pythonSupport}"
"-DOpenCV=${enableIf opencvSupport}"
"-DUSE_SVMLIGHT=${enableIf withSvmLight}"
(lib.cmakeBool "BUILD_META_EXAMPLES" true)
(lib.cmakeBool "CMAKE_DISABLE_FIND_PACKAGE_ARPACK" true)
(lib.cmakeBool "CMAKE_DISABLE_FIND_PACKAGE_ARPREC" true)
(lib.cmakeBool "CMAKE_DISABLE_FIND_PACKAGE_CPLEX" true)
(lib.cmakeBool "CMAKE_DISABLE_FIND_PACKAGE_Mosek" true)
(lib.cmakeBool "CMAKE_DISABLE_FIND_PACKAGE_TFLogger" true)
(lib.cmakeBool "CMAKE_DISABLE_FIND_PACKAGE_ViennaCL" true)
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'${excludeTestsRegex}'")
(lib.cmakeBool "ENABLE_TESTING" finalAttrs.doCheck)
(lib.cmakeBool "DISABLE_META_INTEGRATION_TESTS" true)
(lib.cmakeBool "TRAVIS_DISABLE_META_CPP" true)
(lib.cmakeBool "INTERFACE_PYTHON" pythonSupport)
(lib.cmakeBool "OpenCV" opencvSupport)
(lib.cmakeBool "USE_SVMLIGHT" withSvmLight)
];
CXXFLAGS = "-faligned-new";
@@ -196,7 +204,7 @@ stdenv.mkDerivation rec {
postFixup = ''
# CMake incorrectly calculates library path from dev prefix
substituteInPlace $dev/lib/cmake/shogun/ShogunTargets-release.cmake \
--replace "\''${_IMPORT_PREFIX}/lib/" "$out/lib/"
--replace-fail "\''${_IMPORT_PREFIX}/lib/" "$out/lib/"
'';
meta = with lib; {
@@ -205,4 +213,4 @@ stdenv.mkDerivation rec {
license = if withSvmLight then licenses.unfree else licenses.gpl3Plus;
maintainers = with maintainers; [ edwtjo smancill ];
};
}
})
@@ -1,30 +1,34 @@
{ lib
, stdenv
, buildGoModule
, fetchFromGitHub
, installShellFiles
, qemu
, sigtool
, makeWrapper
, nix-update-script
, apple-sdk_15
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
qemu,
sigtool,
makeWrapper,
nix-update-script,
apple-sdk_15,
lima,
}:
buildGoModule rec {
pname = "lima";
version = "1.0.1";
version = "1.0.2";
src = fetchFromGitHub {
owner = "lima-vm";
repo = pname;
repo = "lima";
rev = "v${version}";
sha256 = "sha256-XYB8Nxbs76xmiiZ7IYfgn+UgUr6CLOalQrl6Ibo+DRc=";
hash = "sha256-LNsxMrbEgdosGDDUNvMZq/hpP5azNiIHjKTp0Iw/PC0=";
};
vendorHash = "sha256-nNSBwvhKSWs6to37+RLziYQqVOYfvjYib3fRRALACho=";
vendorHash = "sha256-taozyQBJvkCsJAaOHg1gFK4qOnepRbzIn4jHzxfAn6A=";
nativeBuildInputs = [ makeWrapper installShellFiles ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ sigtool ];
nativeBuildInputs = [
makeWrapper
installShellFiles
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ sigtool ];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_15 ];
@@ -48,23 +52,34 @@ buildGoModule rec {
export LIMA_HOME="$(mktemp -d)"
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r _output/* $out
wrapProgram $out/bin/limactl \
--prefix PATH : ${lib.makeBinPath [ qemu ]}
'' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd limactl \
--bash <($out/bin/limactl completion bash) \
--fish <($out/bin/limactl completion fish) \
--zsh <($out/bin/limactl completion zsh)
'' + ''
runHook postInstall
'';
installPhase =
''
runHook preInstall
mkdir -p $out
cp -r _output/* $out
wrapProgram $out/bin/limactl \
--prefix PATH : ${lib.makeBinPath [ qemu ]}
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd limactl \
--bash <($out/bin/limactl completion bash) \
--fish <($out/bin/limactl completion fish) \
--zsh <($out/bin/limactl completion zsh)
''
+ ''
runHook postInstall
'';
doInstallCheck = true;
# Workaround for: "panic: $HOME is not defined" at https://github.com/lima-vm/lima/blob/v1.0.2/pkg/limayaml/defaults.go#L52
# Don't use versionCheckHook for this package. It cannot inject environment variables.
installCheckPhase = ''
if [[ "$(HOME="$(mktemp -d)" "$out/bin/limactl" --version | cut -d ' ' -f 3)" == "${version}" ]]; then
echo '${pname} smoke check passed'
else
echo '${pname} smoke check failed'
return 1
fi
USER=nix $out/bin/limactl validate templates/default.yaml
'';
@@ -1,32 +1,34 @@
{ lib
, stdenv
, callPackage
, runCommandLocal
, writeShellScript
, glibc
, pkgsHostTarget
, runCommandCC
, coreutils
, bubblewrap
{
lib,
stdenv,
callPackage,
runCommandLocal,
writeShellScript,
glibc,
pkgsHostTarget,
runCommandCC,
coreutils,
bubblewrap,
}:
{ runScript ? "bash"
, nativeBuildInputs ? []
, extraInstallCommands ? ""
, meta ? {}
, passthru ? {}
, extraPreBwrapCmds ? ""
, extraBwrapArgs ? []
, unshareUser ? false
, unshareIpc ? false
, unsharePid ? false
, unshareNet ? false
, unshareUts ? false
, unshareCgroup ? false
, privateTmp ? false
, dieWithParent ? true
, ...
} @ args:
{
runScript ? "bash",
nativeBuildInputs ? [ ],
extraInstallCommands ? "",
meta ? { },
passthru ? { },
extraPreBwrapCmds ? "",
extraBwrapArgs ? [ ],
unshareUser ? false,
unshareIpc ? false,
unsharePid ? false,
unshareNet ? false,
unshareUts ? false,
unshareCgroup ? false,
privateTmp ? false,
dieWithParent ? true,
...
}@args:
assert (!args ? pname || !args ? version) -> (args ? name); # You must provide name if pname or version (preferred) is missing.
@@ -49,59 +51,82 @@ let
name = args.name or "${args.pname}-${args.version}";
executableName = args.pname or args.name;
# we don't know which have been supplied, and want to avoid defaulting missing attrs to null. Passed into runCommandLocal
nameAttrs = lib.filterAttrs (key: value: builtins.elem key [ "name" "pname" "version" ]) args;
nameAttrs = lib.filterAttrs (
key: value:
builtins.elem key [
"name"
"pname"
"version"
]
) args;
buildFHSEnv = callPackage ./buildFHSEnv.nix { };
fhsenv = buildFHSEnv (removeAttrs args [
"runScript" "extraInstallCommands" "meta" "passthru" "extraPreBwrapCmds" "extraBwrapArgs" "dieWithParent"
"unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc" "privateTmp"
]);
fhsenv = buildFHSEnv (
removeAttrs args [
"runScript"
"extraInstallCommands"
"meta"
"passthru"
"extraPreBwrapCmds"
"extraBwrapArgs"
"dieWithParent"
"unshareUser"
"unshareCgroup"
"unshareUts"
"unshareNet"
"unsharePid"
"unshareIpc"
"privateTmp"
]
);
etcBindEntries = let
files = [
# NixOS Compatibility
"static"
"nix" # mainly for nixUnstable users, but also for access to nix/netrc
# Shells
"shells"
"bashrc"
"zshenv"
"zshrc"
"zinputrc"
"zprofile"
# Users, Groups, NSS
"passwd"
"group"
"shadow"
"hosts"
"resolv.conf"
"nsswitch.conf"
# User profiles
"profiles"
# Sudo & Su
"login.defs"
"sudoers"
"sudoers.d"
# Time
"localtime"
"zoneinfo"
# Other Core Stuff
"machine-id"
"os-release"
# PAM
"pam.d"
# Fonts
"fonts"
# ALSA
"alsa"
"asound.conf"
# SSL
"ssl/certs"
"ca-certificates"
"pki"
];
in map (path: "/etc/${path}") files;
etcBindEntries =
let
files = [
# NixOS Compatibility
"static"
"nix" # mainly for nixUnstable users, but also for access to nix/netrc
# Shells
"shells"
"bashrc"
"zshenv"
"zshrc"
"zinputrc"
"zprofile"
# Users, Groups, NSS
"passwd"
"group"
"shadow"
"hosts"
"resolv.conf"
"nsswitch.conf"
# User profiles
"profiles"
# Sudo & Su
"login.defs"
"sudoers"
"sudoers.d"
# Time
"localtime"
"zoneinfo"
# Other Core Stuff
"machine-id"
"os-release"
# PAM
"pam.d"
# Fonts
"fonts"
# ALSA
"alsa"
"asound.conf"
# SSL
"ssl/certs"
"ca-certificates"
"pki"
];
in
map (path: "/etc/${path}") files;
# Here's the problem case:
# - we need to run bash to run the init script
@@ -119,182 +144,208 @@ let
#
# Also, the real init is placed strategically at /init, so we don't
# have to recompile this every time.
containerInit = runCommandCC "container-init" {
buildInputs = [ stdenv.cc.libc.static or null ];
} ''
$CXX -static -s -o $out ${./container-init.cc}
'';
containerInit =
runCommandCC "container-init"
{
buildInputs = [ stdenv.cc.libc.static or null ];
}
''
$CXX -static -s -o $out ${./container-init.cc}
'';
realInit = run: writeShellScript "${name}-init" ''
source /etc/profile
exec ${run} "$@"
'';
realInit =
run:
writeShellScript "${name}-init" ''
source /etc/profile
exec ${run} "$@"
'';
indentLines = str: concatLines (map (s: " " + s) (filter (s: s != "") (splitString "\n" str)));
bwrapCmd = { initArgs ? "" }: ''
ignored=(/nix /dev /proc /etc ${optionalString privateTmp "/tmp"})
ro_mounts=()
symlinks=()
etc_ignored=()
bwrapCmd =
{
initArgs ? "",
}:
''
ignored=(/nix /dev /proc /etc ${optionalString privateTmp "/tmp"})
ro_mounts=()
symlinks=()
etc_ignored=()
${extraPreBwrapCmds}
${extraPreBwrapCmds}
# loop through all entries of root in the fhs environment, except its /etc.
for i in ${fhsenv}/*; do
path="/''${i##*/}"
if [[ $path == '/etc' ]]; then
:
elif [[ -L $i ]]; then
symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$path")
ignored+=("$path")
else
ro_mounts+=(--ro-bind "$i" "$path")
ignored+=("$path")
fi
done
# loop through the entries of /etc in the fhs environment.
if [[ -d ${fhsenv}/etc ]]; then
for i in ${fhsenv}/etc/*; do
# loop through all entries of root in the fhs environment, except its /etc.
for i in ${fhsenv}/*; do
path="/''${i##*/}"
# NOTE: we're binding /etc/fonts and /etc/ssl/certs from the host so we
# don't want to override it with a path from the FHS environment.
if [[ $path == '/fonts' || $path == '/ssl' ]]; then
if [[ $path == '/etc' ]]; then
:
elif [[ -L $i ]]; then
symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$path")
ignored+=("$path")
else
ro_mounts+=(--ro-bind "$i" "$path")
ignored+=("$path")
fi
done
# loop through the entries of /etc in the fhs environment.
if [[ -d ${fhsenv}/etc ]]; then
for i in ${fhsenv}/etc/*; do
path="/''${i##*/}"
# NOTE: we're binding /etc/fonts and /etc/ssl/certs from the host so we
# don't want to override it with a path from the FHS environment.
if [[ $path == '/fonts' || $path == '/ssl' ]]; then
continue
fi
if [[ -L $i ]]; then
symlinks+=(--symlink "$i" "/etc$path")
else
ro_mounts+=(--ro-bind "$i" "/etc$path")
fi
etc_ignored+=("/etc$path")
done
fi
# propagate /etc from the actual host if nested
if [[ -e /.host-etc ]]; then
ro_mounts+=(--ro-bind /.host-etc /.host-etc)
else
ro_mounts+=(--ro-bind /etc /.host-etc)
fi
# link selected etc entries from the actual root
for i in ${escapeShellArgs etcBindEntries}; do
if [[ "''${etc_ignored[@]}" =~ "$i" ]]; then
continue
fi
if [[ -L $i ]]; then
symlinks+=(--symlink "$i" "/etc$path")
else
ro_mounts+=(--ro-bind "$i" "/etc$path")
if [[ -e $i ]]; then
symlinks+=(--symlink "/.host-etc/''${i#/etc/}" "$i")
fi
etc_ignored+=("/etc$path")
done
fi
# propagate /etc from the actual host if nested
if [[ -e /.host-etc ]]; then
ro_mounts+=(--ro-bind /.host-etc /.host-etc)
else
ro_mounts+=(--ro-bind /etc /.host-etc)
fi
# link selected etc entries from the actual root
for i in ${escapeShellArgs etcBindEntries}; do
if [[ "''${etc_ignored[@]}" =~ "$i" ]]; then
continue
fi
if [[ -e $i ]]; then
symlinks+=(--symlink "/.host-etc/''${i#/etc/}" "$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 ignored
if [[ -d "$dir" ]] && [[ ! "''${ignored[@]}" =~ "$dir" ]]; then
# add it to the mount list
auto_mounts+=(--bind "$dir" "$dir")
fi
done
declare -a x11_args
# Always mount a tmpfs on /tmp/.X11-unix
# Rationale: https://github.com/flatpak/flatpak/blob/be2de97e862e5ca223da40a895e54e7bf24dbfb9/common/flatpak-run.c#L277
x11_args+=(--tmpfs /tmp/.X11-unix)
# Try to guess X socket path. This doesn't cover _everything_, but it covers some things.
if [[ "$DISPLAY" == *:* ]]; then
# recover display number from $DISPLAY formatted [host]:num[.screen]
display_nr=''${DISPLAY/#*:} # strip host
display_nr=''${display_nr/%.*} # strip screen
local_socket=/tmp/.X11-unix/X$display_nr
x11_args+=(--ro-bind-try "$local_socket" "$local_socket")
fi
${optionalString privateTmp ''
# sddm places XAUTHORITY in /tmp
if [[ "$XAUTHORITY" == /tmp/* ]]; then
x11_args+=(--ro-bind-try "$XAUTHORITY" "$XAUTHORITY")
fi
# dbus-run-session puts the socket in /tmp
IFS=";" read -ra addrs <<<"$DBUS_SESSION_BUS_ADDRESS"
for addr in "''${addrs[@]}"; do
[[ "$addr" == unix:* ]] || continue
IFS="," read -ra parts <<<"''${addr#unix:}"
for part in "''${parts[@]}"; do
printf -v part '%s' "''${part//\\/\\\\}"
printf -v part '%b' "''${part//%/\\x}"
[[ "$part" == path=/tmp/* ]] || continue
x11_args+=(--ro-bind-try "''${part#path=}" "''${part#path=}")
declare -a auto_mounts
# loop through all directories in the root
for dir in /*; do
# 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
done
done
''}
cmd=(
${bubblewrap}/bin/bwrap
--dev-bind /dev /dev
--proc /proc
--chdir "$(pwd)"
${optionalString unshareUser "--unshare-user"}
${optionalString unshareIpc "--unshare-ipc"}
${optionalString unsharePid "--unshare-pid"}
${optionalString unshareNet "--unshare-net"}
${optionalString unshareUts "--unshare-uts"}
${optionalString unshareCgroup "--unshare-cgroup"}
${optionalString dieWithParent "--die-with-parent"}
--ro-bind /nix /nix
${optionalString privateTmp "--tmpfs /tmp"}
# Our glibc will look for the cache in its own path in `/nix/store`.
# As such, we need a cache to exist there, because pressure-vessel
# depends on the existence of an ld cache. However, adding one
# globally proved to be a bad idea (see #100655), the solution we
# settled on being mounting one via bwrap.
# Also, the cache needs to go to both 32 and 64 bit glibcs, for games
# of both architectures to work.
--tmpfs ${glibc}/etc \
--tmpfs /etc \
--symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \
--symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
--ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
--remount-ro ${glibc}/etc \
--symlink ${realInit runScript} /init \
'' + optionalString fhsenv.isMultiBuild (indentLines ''
declare -a x11_args
# Always mount a tmpfs on /tmp/.X11-unix
# Rationale: https://github.com/flatpak/flatpak/blob/be2de97e862e5ca223da40a895e54e7bf24dbfb9/common/flatpak-run.c#L277
x11_args+=(--tmpfs /tmp/.X11-unix)
# Try to guess X socket path. This doesn't cover _everything_, but it covers some things.
if [[ "$DISPLAY" == *:* ]]; then
# recover display number from $DISPLAY formatted [host]:num[.screen]
display_nr=''${DISPLAY/#*:} # strip host
display_nr=''${display_nr/%.*} # strip screen
local_socket=/tmp/.X11-unix/X$display_nr
x11_args+=(--ro-bind-try "$local_socket" "$local_socket")
fi
${optionalString privateTmp ''
# sddm places XAUTHORITY in /tmp
if [[ "$XAUTHORITY" == /tmp/* ]]; then
x11_args+=(--ro-bind-try "$XAUTHORITY" "$XAUTHORITY")
fi
# dbus-run-session puts the socket in /tmp
IFS=";" read -ra addrs <<<"$DBUS_SESSION_BUS_ADDRESS"
for addr in "''${addrs[@]}"; do
[[ "$addr" == unix:* ]] || continue
IFS="," read -ra parts <<<"''${addr#unix:}"
for part in "''${parts[@]}"; do
printf -v part '%s' "''${part//\\/\\\\}"
printf -v part '%b' "''${part//%/\\x}"
[[ "$part" == path=/tmp/* ]] || continue
x11_args+=(--ro-bind-try "''${part#path=}" "''${part#path=}")
done
done
''}
cmd=(
${bubblewrap}/bin/bwrap
--dev-bind /dev /dev
--proc /proc
--chdir "$(pwd)"
${optionalString unshareUser "--unshare-user"}
${optionalString unshareIpc "--unshare-ipc"}
${optionalString unsharePid "--unshare-pid"}
${optionalString unshareNet "--unshare-net"}
${optionalString unshareUts "--unshare-uts"}
${optionalString unshareCgroup "--unshare-cgroup"}
${optionalString dieWithParent "--die-with-parent"}
--ro-bind /nix /nix
${optionalString privateTmp "--tmpfs /tmp"}
# Our glibc will look for the cache in its own path in `/nix/store`.
# As such, we need a cache to exist there, because pressure-vessel
# depends on the existence of an ld cache. However, adding one
# globally proved to be a bad idea (see #100655), the solution we
# settled on being mounting one via bwrap.
# Also, the cache needs to go to both 32 and 64 bit glibcs, for games
# of both architectures to work.
--tmpfs ${glibc}/etc \
--tmpfs /etc \
--symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \
--symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
--ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
--remount-ro ${glibc}/etc \
--symlink ${realInit runScript} /init \
''
+ optionalString fhsenv.isMultiBuild (indentLines ''
--tmpfs ${pkgsi686Linux.glibc}/etc \
--symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \
--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 \
'') + ''
"''${ro_mounts[@]}"
"''${symlinks[@]}"
"''${auto_mounts[@]}"
"''${x11_args[@]}"
${concatStringsSep "\n " extraBwrapArgs}
${containerInit} ${initArgs}
)
exec "''${cmd[@]}"
'';
bin = writeShellScript "${name}-bwrap" (bwrapCmd { initArgs = ''"$@"''; });
in runCommandLocal name (nameAttrs // {
inherit nativeBuildInputs meta;
passthru = passthru // {
env = runCommandLocal "${name}-shell-env" {
shellHook = bwrapCmd {};
} ''
echo >&2 ""
echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
echo >&2 ""
exit 1
'')
+ ''
"''${ro_mounts[@]}"
"''${symlinks[@]}"
"''${auto_mounts[@]}"
"''${x11_args[@]}"
${concatStringsSep "\n " extraBwrapArgs}
${containerInit} ${initArgs}
)
exec "''${cmd[@]}"
'';
inherit args fhsenv;
};
}) ''
mkdir -p $out/bin
ln -s ${bin} $out/bin/${executableName}
${extraInstallCommands}
''
bin = writeShellScript "${name}-bwrap" (bwrapCmd {
initArgs = ''"$@"'';
});
in
runCommandLocal name
(
nameAttrs
// {
inherit nativeBuildInputs;
passthru = passthru // {
env =
runCommandLocal "${name}-shell-env"
{
shellHook = bwrapCmd { };
}
''
echo >&2 ""
echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
echo >&2 ""
exit 1
'';
inherit args fhsenv;
};
meta = {
mainProgram = executableName;
} // meta;
}
)
''
mkdir -p $out/bin
ln -s ${bin} $out/bin/${executableName}
${extraInstallCommands}
''
@@ -52,8 +52,7 @@
{
name = "dotnet-fixup-hook";
substitutions = {
# this is used for DOTNET_ROOT, so we need unwrapped
dotnetRuntime = if (dotnet-runtime != null) then dotnet-runtime.unwrapped else null;
dotnetRuntime = if (dotnet-runtime != null) then dotnet-runtime else null;
wrapperPath = lib.makeBinPath [ which coreutils ];
};
}
+2 -2
View File
@@ -6,13 +6,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "abcmidi";
version = "2024.10.10";
version = "2024.12.06";
src = fetchFromGitHub {
owner = "sshlien";
repo = "abcmidi";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-dAxr1RJrYppt/Gw6ZF3fL0lDhwJNG5v75M6VA1okrtw=";
hash = "sha256-uSmkRoAy2tCvSy/jE0wxg2nhiQRF62zCwnr41YpRkXE=";
};
meta = {
+2 -2
View File
@@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "ad-miner";
version = "1.6.1";
version = "1.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Mazars-Tech";
repo = "AD_Miner";
rev = "refs/tags/v${version}";
hash = "sha256-/TIG1UUfLct9MxCmahWk7F6KlypNan+zk/02zVpPV+w=";
hash = "sha256-Uzt7tKRj+iq4UR0gUpfhiTzMjecVBcp7jsXC7lSADeg=";
};
# All requirements are pinned
+2 -2
View File
@@ -8,7 +8,7 @@
glib-networking,
google-fonts,
lib,
libsoup,
libsoup_2_4,
nodejs,
npmHooks,
openssl,
@@ -70,7 +70,7 @@ rustPlatform.buildRustPackage {
[ openssl ]
++ lib.optionals stdenv.hostPlatform.isLinux [
glib-networking
libsoup
libsoup_2_4
webkitgtk_4_0
]
++ dotnetSdk.packages
+3 -5
View File
@@ -23,19 +23,17 @@
let
suffix = if stdenv.system == "x86_64-linux" then "64" else "32";
# Fix https://github.com/NixOS/nixpkgs/issues/348903 until the glslang update to 15.0.0 is merged into master
glslang_fixed = glslang.overrideAttrs (finalAttrs: oldAttrs: { cmakeFlags = [ ]; });
in
stdenv.mkDerivation (finalAttrs: {
pname = "amdvlk";
version = "2024.Q3.3";
version = "2024.Q4.2";
src = fetchRepoProject {
name = "amdvlk-src";
manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
rev = "refs/tags/v-${finalAttrs.version}";
hash = "sha256-wIPubMsSaNGTykD/K0gxdba128TqW5nu4CjXoLkprc0=";
hash = "sha256-16eHtdxoSCVEPQNvi7Kuo7CP4yddMsZqpuRsWobEOnw=";
};
buildInputs =
@@ -61,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
[
cmake
directx-shader-compiler
glslang_fixed
glslang
ninja
patchelf
perl
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "ananicy-rules-cachyos";
version = "0-unstable-2024-10-25";
version = "0-unstable-2024-11-22";
src = fetchFromGitHub {
owner = "CachyOS";
repo = "ananicy-rules";
rev = "707b16506be2c54028546181461ebf47cfe72d83";
hash = "sha256-189eHlSLGgSgT2KIkj+c5pKpPZ34vacZzlYOFGfwEFM=";
rev = "7b660e4c0e3dccec7ddc4c4dafc1717cb06b7e1e";
hash = "sha256-7MwAveke3GL8tmOCxCgKRbllChST22FKWdbGsewCJdM=";
};
dontConfigure = true;
+3 -3
View File
@@ -5,15 +5,15 @@
}:
let
pname = "ankama-launcher";
version = "3.12.24";
version = "3.12.26";
# The original URL for the launcher is:
# https://launcher.cdn.ankama.com/installers/production/Ankama%20Launcher-Setup-x86_64.AppImage
# As it does not encode the version, we use the wayback machine (web.archive.org) to get a fixed URL.
# To update the client, head to web.archive.org and create a new snapshot of the download page.
src = fetchurl {
url = "https://web.archive.org/web/20241202103051/https://launcher.cdn.ankama.com/installers/production/Ankama%20Launcher-Setup-x86_64.AppImage";
hash = "sha256-jI/qcIIrNU9ViaZ/LKMkUETXZpintDsofSgiRfe4GOU=";
url = "https://web.archive.org/web/20241206172526/https://launcher.cdn.ankama.com/installers/production/Ankama%20Launcher-Setup-x86_64.AppImage";
hash = "sha256-K/qe/qxMfcGWU5gyEfPdl0ptjTCWaqIXMCy4O8WEKCQ=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
+2 -2
View File
@@ -44,7 +44,7 @@
, isocodes
, libpsl
, libepoxy
, libsoup
, libsoup_2_4
, exiv2
, libXtst
, libthai
@@ -138,7 +138,7 @@ stdenv.mkDerivation {
libsecret
libselinux
libsepol
libsoup
libsoup_2_4
libsysprof-capture
libthai
libwebp
+79
View File
@@ -0,0 +1,79 @@
{
buildGoModule,
lib,
fetchFromGitHub,
pnpm,
nodejs,
fetchpatch,
stdenv,
}:
buildGoModule rec {
pname = "apache-answer";
version = "1.4.1";
src = fetchFromGitHub {
owner = "apache";
repo = "incubator-answer";
rev = "refs/tags/v${version}";
hash = "sha256-nS3ZDwY221axzo1HAz369f5jWZ/mpCn4r3OPPqjiohI=";
};
webui = stdenv.mkDerivation {
pname = pname + "-webui";
inherit version src;
sourceRoot = "${src.name}/ui";
pnpmDeps = pnpm.fetchDeps {
inherit src version pname;
sourceRoot = "${src.name}/ui";
hash = "sha256-/se6IWeHdazqS7PzOpgtT4IxCJ1WptqBzZ/BdmGb4BA=";
};
nativeBuildInputs = [
pnpm.configHook
nodejs
];
buildPhase = ''
runHook preBuild
pnpm build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r build/* $out
runHook postInstall
'';
};
vendorHash = "sha256-nvXr1YAqVCyhCgPtABTOtzDH+FCQhN9kSEhxKw7ipsE=";
preBuild = ''
cp -r ${webui}/* ui/build/
'';
patches = [
(fetchpatch {
url = "https://github.com/apache/incubator-answer/commit/57b0d0e84dd0e0bf3c8a05a38a7f55eddc5f0dda.patch";
hash = "sha256-TfF+PtrcMYYgNjgU4lGpnshdII8xECTT2L7M26uebn0=";
})
];
meta = {
homepage = "https://answer.apache.org/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ bot-wxt1221 ];
platforms = lib.platforms.unix;
mainProgram = "answer";
changelog = "https://github.com/apache/incubator-answer/releases/tag/v${version}";
description = "Q&A platform software for teams at any scales";
};
}
+2 -2
View File
@@ -10,7 +10,7 @@
, gettext
, gtk3
, libmpdclient
, libsoup
, libsoup_2_4
, libxml2
, taglib
, wrapGAppsHook3
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
dbus-glib
gtk3
libmpdclient
libsoup
libsoup_2_4
libxml2
taglib
];
+2 -2
View File
@@ -9,11 +9,11 @@
stdenv.mkDerivation rec {
pname = "astyle";
version = "3.6.4";
version = "3.6.5";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
hash = "sha256-HpS2T08GRh+QOdCUrv6dSyjGbTSRayekVgVefWLXNwI=";
hash = "sha256-8jHNZBBHrbbAGtslEVczJqi7eik9F7VMdwVQmT3q3os=";
};
nativeBuildInputs = [ cmake ];
+3 -3
View File
@@ -2,20 +2,20 @@
buildGoModule rec {
pname = "atlantis";
version = "0.28.5";
version = "0.30.0";
src = fetchFromGitHub {
owner = "runatlantis";
repo = "atlantis";
rev = "v${version}";
hash = "sha256-oyECtP/YeEhvsltWZq52YNq+Gbbpko9bbbUTh5NA/9c=";
hash = "sha256-hM4IycRE3/jiwFLqkU/jz9sPP9KTfeu8ouIJlqgPxmk=";
};
ldflags = [
"-X=main.version=${version}"
"-X=main.date=1970-01-01T00:00:00Z"
];
vendorHash = "sha256-oiRpmGfuc37s3ZD8R7L9EFieqJP7mYvDsiJBzruCSkA=";
vendorHash = "sha256-uH+Q5NXBL1+LFa6tw3x2CE1B5QElqK9KuFeYQpCFAW0=";
subPackages = [ "." ];
+5 -5
View File
@@ -1,9 +1,9 @@
{
"owner": "advplyr",
"repo": "audiobookshelf",
"rev": "f850db23fe37dfe5044c2f5f641931528b291bf2",
"hash": "sha256-iboQnPmWIk/bYjEF+opjKU+XJVSD5DGCfqp6BJQRW3w=",
"version": "2.17.2",
"depsHash": "sha256-W56EG5SCiAcjHhR5WR1UBY9Xt0D0p8duEiUzx+luLfc=",
"clientDepsHash": "sha256-gEgd2PCFWqNuRXhnFZylGS0GTMJUD0KeHbRgYxMUMPM="
"rev": "890b0b949ee758102fd05ba26c5ed5c3ebbd747f",
"hash": "sha256-sMtUO2ltlxipjNXqcHLVXlZZ8QOAGND77hItwcxx27Q=",
"version": "2.17.4",
"depsHash": "sha256-b2mcJ+Qh+VEYaZcy4LGCFPK9dFYsy48wUaEAJGYtBwc=",
"clientDepsHash": "sha256-CfRG7GqvtLL675Bkzi/WOERwp0EKzmC3u0ozxHoj9rI="
}
+55
View File
@@ -0,0 +1,55 @@
{
python3Packages,
lib,
fetchFromGitHub,
awscli,
}:
python3Packages.buildPythonApplication rec {
pname = "aws-shell";
version = "0.2.2";
src = fetchFromGitHub {
owner = "awslabs";
repo = "aws-shell";
rev = "refs/tags/${version}";
hash = "sha256-m96XaaFDFQaD2YPjw8D1sGJ5lex4Is4LQ5RhGzVPvH4=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
botocore
pygments
mock
configobj
awscli
(prompt-toolkit.overrideAttrs (old: {
src = fetchFromGitHub {
owner = "prompt-toolkit";
repo = "python-prompt-toolkit";
rev = "refs/tags/1.0.18"; # Need >=1.0.0,<1.1.0
hash = "sha256-mt/fIubkpeVc7vhAaTk0pXZXI8JzB7n2MzXqgqK0wE4=";
};
}))
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
];
preCheck = ''
export HOME=$(mktemp -d)
'';
meta = {
homepage = "https://github.com/awslabs/aws-shell";
description = "Integrated shell for working with the AWS CLI";
platforms = lib.platforms.unix;
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ bot-wxt1221 ];
mainProgram = "aws-shell";
};
}
+2 -2
View File
@@ -14,7 +14,7 @@
, webkitgtk_4_0
, librsvg
, gdk-pixbuf
, libsoup
, libsoup_2_4
, glib-networking
, graphicsmagick_q16
, libva
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
webkitgtk_4_0
librsvg
gdk-pixbuf
libsoup
libsoup_2_4
glib-networking
graphicsmagick_q16
hiredis
+33 -34
View File
@@ -2,34 +2,31 @@
lib,
python3,
fetchFromGitHub,
fetchPypi,
git,
}:
let
changeVersion =
overrideFunc: version: hash:
overrideFunc (oldAttrs: rec {
inherit version;
src = oldAttrs.src.override {
inherit version hash;
};
});
localPython = python3.override {
self = localPython;
python = python3.override {
packageOverrides = self: super: {
cement =
changeVersion super.cement.overridePythonAttrs "2.10.14"
"sha256-NC4n21SmYW3RiS7QuzWXoifO4z3C2FVgQm3xf8qQcFg=";
cement = super.cement.overridePythonAttrs (old: rec {
pname = "cement";
version = "2.10.14";
src = fetchPypi {
inherit pname version;
hash = "sha256-NC4n21SmYW3RiS7QuzWXoifO4z3C2FVgQm3xf8qQcFg=";
};
build-system = old.build-system or [ ] ++ (with python.pkgs; [ setuptools ]);
doCheck = false;
});
};
};
in
localPython.pkgs.buildPythonApplication rec {
python.pkgs.buildPythonApplication rec {
pname = "awsebcli";
version = "3.21";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "aws";
@@ -38,12 +35,23 @@ localPython.pkgs.buildPythonApplication rec {
hash = "sha256-VU8bXvS4m4eIamjlgGmHE2qwDXWAXvWTa0QHomXR5ZE=";
};
pythonRelaxDeps = [
"botocore"
"colorama"
"pathspec"
"PyYAML"
"six"
"termcolor"
"urllib3"
];
postPatch = ''
# https://github.com/aws/aws-elastic-beanstalk-cli/pull/469
substituteInPlace setup.py --replace-fail "scripts=['bin/eb']," ""
substituteInPlace setup.py \
--replace-fail "scripts=['bin/eb']," ""
'';
propagatedBuildInputs = with localPython.pkgs; [
dependencies = with python.pkgs; [
blessed
botocore
cement
@@ -59,20 +67,11 @@ localPython.pkgs.buildPythonApplication rec {
websocket-client
];
pythonRelaxDeps = [
"botocore"
"colorama"
"pathspec"
"PyYAML"
"six"
"termcolor"
];
nativeCheckInputs = with localPython.pkgs; [
pytestCheckHook
pytest-socket
mock
nativeCheckInputs = with python.pkgs; [
git
mock
pytest-socket
pytestCheckHook
];
pytestFlagsArray = [
@@ -92,11 +91,11 @@ localPython.pkgs.buildPythonApplication rec {
];
meta = with lib; {
homepage = "https://aws.amazon.com/elasticbeanstalk/";
description = "Command line interface for Elastic Beanstalk";
homepage = "https://aws.amazon.com/elasticbeanstalk/";
changelog = "https://github.com/aws/aws-elastic-beanstalk-cli/blob/${version}/CHANGES.rst";
maintainers = with maintainers; [ kirillrdy ];
license = licenses.asl20;
maintainers = with maintainers; [ kirillrdy ];
mainProgram = "eb";
};
}
+3 -3
View File
@@ -15,16 +15,16 @@
buildNpmPackage rec {
pname = "balena-cli";
version = "19.0.13";
version = "20.0.9";
src = fetchFromGitHub {
owner = "balena-io";
repo = "balena-cli";
rev = "v${version}";
hash = "sha256-2U+P3LsxaRpktNbDn8iNhHQVjokiWZADYVDpJsDosZU=";
hash = "sha256-UmtTFSUCxz9oAep9+k0GBCxfFkHNDwoKvThIkFq93PQ=";
};
npmDepsHash = "sha256-CA6qs9Gk19dEK2yCFMVVKmJSoZVLdpnf4V6P5fv2Bcc=";
npmDepsHash = "sha256-hie3ZWbqBKB4CRZG46oXyiYC8A/JLjdHkTh6VdZe1Qo=";
postPatch = ''
ln -s npm-shrinkwrap.json package-lock.json
+2 -2
View File
@@ -6,12 +6,12 @@
}:
let
pname = "bazecor";
version = "1.5.4";
version = "1.6.1";
src = appimageTools.extract {
inherit pname version;
src = fetchurl {
url = "https://github.com/Dygmalab/Bazecor/releases/download/v${version}/Bazecor-${version}-x64.AppImage";
hash = "sha256-gu3XPl4gKL+k9hX9OVJYGvG3R81c5lZauRJdUFrqtqk=";
hash = "sha256-Qf9FqHgTSCD2rYp8PC/gYHyiYcfFTJJmG4oRK/bch8Y=";
};
# Workaround for https://github.com/Dygmalab/Bazecor/issues/370
+2 -2
View File
@@ -5,13 +5,13 @@
buildGoModule rec {
pname = "bazel-gazelle";
version = "0.39.1";
version = "0.40.0";
src = fetchFromGitHub {
owner = "bazelbuild";
repo = pname;
rev = "v${version}";
hash = "sha256-Y+k8ObfMwN6fLR2+Lwn64xHljDf3kxw2xp0YpJKbrDM=";
hash = "sha256-cGRE+AX62U6lZbUEid0QWb9zMTiIemop6Gqrqvz5+nk=";
};
vendorHash = null;
+6 -11
View File
@@ -2,21 +2,21 @@
lib,
stdenv,
fetchurl,
electron_30,
electron,
dpkg,
makeWrapper,
commandLineArgs ? "",
}:
let
version = "1.14.0-2";
version = "1.15.2-2";
srcs = {
x86_64-linux = fetchurl {
url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_amd64.deb";
hash = "sha256-QQMdEpKE7r/fPMaX/yEoaa7KjilhiPMYLRvGPkv1jds=";
hash = "sha256-juAhvdeLzjHDs59eS+wwUn3OmnDecC17Vclp0Q0LtJw=";
};
aarch64-linux = fetchurl {
url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_arm64.deb";
hash = "sha256-UaGI4BLhfoYluZpARsj+I0iEmFXYYNfl4JWhBWOOip0=";
hash = "sha256-8o0MX0Ih07KQ9wE+nonSZaupSOuUVyuoIbdHYmR29mc=";
};
};
src =
@@ -25,11 +25,6 @@ in
stdenv.mkDerivation {
pname = "bilibili";
inherit src version;
unpackPhase = ''
runHook preUnpack
dpkg -x $src ./
runHook postUnpack
'';
nativeBuildInputs = [
makeWrapper
@@ -43,7 +38,7 @@ stdenv.mkDerivation {
cp -r usr/share $out/share
sed -i "s|Exec=.*|Exec=$out/bin/bilibili|" $out/share/applications/*.desktop
cp -r opt/apps/io.github.msojocs.bilibili/files/bin/app $out/opt
makeWrapper ${lib.getExe electron_30} $out/bin/bilibili \
makeWrapper ${lib.getExe electron} $out/bin/bilibili \
--argv0 "bilibili" \
--add-flags "$out/opt/app.asar" \
--add-flags ${lib.escapeShellArg commandLineArgs}
@@ -67,7 +62,7 @@ stdenv.mkDerivation {
"x86_64-linux"
"aarch64-linux"
];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
mainProgram = "bilibili";
};
}
+2 -2
View File
@@ -8,13 +8,13 @@
buildDotnetModule rec {
pname = "Boogie";
version = "3.2.5";
version = "3.4.2";
src = fetchFromGitHub {
owner = "boogie-org";
repo = "boogie";
rev = "v${version}";
hash = "sha256-36aGVJEzaAwQgR11NI+v8c4cXm24iiXtiwjW6qd3qsE=";
hash = "sha256-IWtYbb1IFB6DLIYYTP+q7q+h/0aqonxr/mWwf+83aRo=";
};
dotnet-sdk = dotnetCorePackages.sdk_6_0;
@@ -7,13 +7,9 @@
, pkg-config
, libgit2
, oniguruma
, libiconv
, Foundation
, Security
, xorg
, zlib
, buildPackages
, withClipboard ? !stdenv.hostPlatform.isDarwin
, withClipboard ? true
, withTrash ? !stdenv.hostPlatform.isDarwin
}:
@@ -36,10 +32,8 @@ rustPlatform.buildRustPackage rec {
pkg-config
];
buildInputs = [ libgit2 oniguruma xorg.libxcb ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
Foundation
libiconv
Security
# TODO: once https://github.com/Canop/broot/issues/956 is released, oniguruma can be removed.
buildInputs = [ libgit2 oniguruma ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
zlib
];
+60
View File
@@ -0,0 +1,60 @@
{
fetchFromGitLab,
inih,
lib,
libdrm,
libinput,
libxkbcommon,
meson,
ninja,
pkg-config,
scdoc,
stdenv,
unstableGitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "buffybox";
version = "3.2.0-unstable-2024-11-10";
src = fetchFromGitLab {
domain = "gitlab.postmarketos.org";
owner = "postmarketOS";
repo = "buffybox";
fetchSubmodules = true; # to use its vendored lvgl
rev = "07e324c17564cb9aab573259a8e0824a6806a751";
hash = "sha256-JY9WqtRjDsQf1UVFnM6oTwyAuhlJvrhcSNJdEZ0zIus=";
};
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
ninja
pkg-config
scdoc
];
buildInputs = [
inih
libdrm
libinput
libxkbcommon
];
env.PKG_CONFIG_SYSTEMD_SYSTEMD_SYSTEM_UNIT_DIR = "${placeholder "out"}/lib/systemd/system";
strictDeps = true;
passthru.updateScript = unstableGitUpdater { };
meta = with lib; {
description = "A suite of graphical applications for the terminal";
homepage = "https://gitlab.postmarketos.org/postmarketOS/buffybox";
license = licenses.gpl3Plus;
maintainers = with lib.maintainers; [ colinsane ];
platforms = platforms.linux;
};
})
@@ -1,4 +1,4 @@
{ lib, stdenv, rustPlatform, fetchFromGitHub, Security }:
{ lib, stdenv, rustPlatform, fetchFromGitHub, apple-sdk_11 }:
rustPlatform.buildRustPackage rec {
pname = "cargo-deadlinks";
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
# assumes the target is x86_64-unknown-linux-gnu
"--skip simple_project::it_checks_okay_project_correctly";
buildInputs = lib.optional stdenv.hostPlatform.isDarwin Security;
buildInputs = lib.optional stdenv.hostPlatform.isDarwin apple-sdk_11;
meta = with lib; {
description = "Cargo subcommand to check rust documentation for broken links";
+3 -3
View File
@@ -2,14 +2,14 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-hack";
version = "0.6.32";
version = "0.6.33";
src = fetchCrate {
inherit pname version;
hash = "sha256-XjubvjK+FySm0nqlzFsRhDQOI9M0enonwwPhZ/KFFlk=";
hash = "sha256-/O05q4osyQ30rHKe84oBQJTFuVmPGB5KKy6UM/TzY5Q=";
};
cargoHash = "sha256-sWXeGohH9iLMkmBgNjSfg25eDzZHSzWrOGgccuWPBLM=";
cargoHash = "sha256-vkvna8+1+qQh+ZXtQ/HJa8UnstuH1sKlFc4CEUZYc5E=";
# some necessary files are absent in the crate version
doCheck = false;
+3 -3
View File
@@ -9,14 +9,14 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-show-asm";
version = "0.2.41";
version = "0.2.42";
src = fetchCrate {
inherit pname version;
hash = "sha256-U9i/xp9WxMYf4GMsZB7qYOpuuuEw4mWZp+ZEyguGtQQ=";
hash = "sha256-3KdHEmoGdtfc5b5H7EQ1q5vqra0hRrROJYCIpiqxshk=";
};
cargoHash = "sha256-eUaEpex9x9bdqPJ4p5QvkWKaxs3ih4Gb9+4deGBZgXU=";
cargoHash = "sha256-GwzGdy6aWnKyaQbtgRB6t0cnWWiirN9j/GqhdBc5fHU=";
nativeBuildInputs = [
installShellFiles
+2 -2
View File
@@ -6,7 +6,7 @@
cargo-tauri,
cargo-tauri_1,
gtk3,
libsoup,
libsoup_2_4,
openssl,
webkitgtk_4_0,
}:
@@ -40,7 +40,7 @@ cargo-tauri.overrideAttrs (
[ openssl ]
++ lib.optionals stdenv.hostPlatform.isLinux [
gtk3
libsoup
libsoup_2_4
webkitgtk_4_0
];
@@ -8,7 +8,7 @@
cairo,
stdenv,
librsvg,
libsoup,
libsoup_2_4,
fetchzip,
openssl_3,
webkitgtk_4_0,
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
gtk3
cairo
gdk-pixbuf
libsoup
libsoup_2_4
glib
dbus
openssl_3
+39 -25
View File
@@ -1,31 +1,29 @@
{ lib, stdenv, autoreconfHook, pkg-config, SDL2, SDL2_mixer, SDL2_net
, fetchFromGitHub, fetchpatch, python3 }:
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
libpng,
libsamplerate,
pkg-config,
python3,
SDL2,
SDL2_mixer,
SDL2_net,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "chocolate-doom";
version = "3.0.1";
version = "3.1.0";
src = fetchFromGitHub {
owner = "chocolate-doom";
repo = pname;
rev = "${pname}-${version}";
sha256 = "1zlcqhd49c5n8vaahgaqrc2y10z86xng51sbd82xm3rk2dly25jp";
repo = "chocolate-doom";
rev = "refs/tags/chocolate-doom-${finalAttrs.version}";
hash = "sha256-yDPfqCuzRbDhOQisIDAGo2bmmMjT+0lds5xc9C2pqoU=";
};
patches = [
# Pull upstream patch to fix builx against gcc-10:
# https://github.com/chocolate-doom/chocolate-doom/pull/1257
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/chocolate-doom/chocolate-doom/commit/a8fd4b1f563d24d4296c3e8225c8404e2724d4c2.patch";
sha256 = "1dmbygn952sy5n8qqp0asg11pmygwgygl17lrj7i0fxa0nrhixhj";
})
];
outputs = [ "out" "man" ];
postPatch = ''
sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
patchShebangs --build man/{simplecpp,docgen}
'';
@@ -35,15 +33,31 @@ stdenv.mkDerivation rec {
# for documentation
python3
];
buildInputs = [ SDL2 SDL2_mixer SDL2_net ];
buildInputs = [
libpng
libsamplerate
SDL2
SDL2_mixer
SDL2_net
];
outputs = [
"out"
"man"
];
enableParallelBuilding = true;
strictDeps = true;
meta = {
homepage = "http://chocolate-doom.org/";
homepage = "https://www.chocolate-doom.org";
changelog = "https://github.com/chocolate-doom/chocolate-doom/releases/tag/chocolate-doom-${finalAttrs.version}";
description = "Doom source port that accurately reproduces the experience of Doom as it was played in the 1990s";
mainProgram = "chocolate-doom";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
hydraPlatforms = lib.platforms.linux; # darwin times out
maintainers = [ ];
maintainers = with lib.maintainers; [ Gliczy ];
};
}
})
@@ -0,0 +1,14 @@
diff --git a/Makefile b/Makefile
index 99065da..2415738 100644
--- a/Makefile
+++ b/Makefile
@@ -16,9 +16,6 @@ endif
ifeq ($(CC), clang)
CFLAGS += $(CLANG_FLAGS)
endif
-ifeq ($(shell uname), Linux)
- CFLAGS += -static
-endif
Target = chsrc
+46
View File
@@ -0,0 +1,46 @@
{
lib,
fetchFromGitHub,
stdenv,
texinfo,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "chsrc";
version = "0.1.9";
src = fetchFromGitHub {
owner = "RubyMetric";
repo = finalAttrs.pname;
rev = "v${finalAttrs.version}";
hash = "sha256-MwT6SuDisJ2ynxlOqAUA8WjhrTeUcyoAMArehnby8Yw=";
};
nativeBuildInputs = [ texinfo ];
patches = [
./disable-static-compiling.patch
];
installPhase = ''
runHook preInstall
install -Dm755 chsrc $out/bin/chsrc
install -Dm644 doc/chsrc.1 -t $out/share/man/man1/
makeinfo doc/chsrc.texi --output=chsrc.info
install -Dm 644 chsrc.info -t $out/share/info/
runHook postInstall
'';
meta = {
description = "Change Source everywhere for every software";
homepage = "https://chsrc.run/";
changelog = "https://github.com/RubyMetric/chsrc/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [
gpl3Plus
mit
];
maintainers = with lib.maintainers; [ cryo ];
platforms = lib.platforms.all;
mainProgram = "chsrc";
};
})
+5 -5
View File
@@ -11,16 +11,16 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "clouddrive2";
version = "0.8.3";
version = "0.8.5";
src = fetchurl {
url = "https://github.com/cloud-fs/cloud-fs.github.io/releases/download/v${finalAttrs.version}/clouddrive-2-${os}-${arch}-${finalAttrs.version}.tgz";
hash =
{
x86_64-linux = "sha256-5vyWMoDASzRa9m2UueoyMbmK8JPUpplqk0/uv8fHPAU=";
aarch64-linux = "sha256-zfar/dZkSVSrnrRpfF4RnwvkPVzmdLJa4W9Ds8NNNaI=";
x86_64-darwin = "sha256-3jab0NxGH+cac2Ughq/l2ZAQLISD7z+WBtFFyiFc+5A=";
aarch64-darwin = "sha256-SO5L9aBMN5pYloBeVH1uQO0QeiHzDK+6kHVEg8uYnTo=";
x86_64-linux = "sha256-6zdP0d5XyBYG7+SGqb2DSaD6rJrBn8OjGr9BXfP1Ctc=";
aarch64-linux = "sha256-7u/AKZGL/AkUsakZexC/oxgjoayaxH7OiRE+xnH+Gus=";
x86_64-darwin = "sha256-/uDxZVlULl3PnuAaF7kWAyukaQoF7DV8m5gowTFdMEQ=";
aarch64-darwin = "sha256-xZ60pi2JYSLDLaR0Qe/fyEhzyu17U2fbDp1lo2qViIs=";
}
.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
};
+14 -4
View File
@@ -1,6 +1,8 @@
{ lib
, buildGoModule
, fetchFromGitHub
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
}:
buildGoModule rec {
@@ -16,17 +18,25 @@ buildGoModule rec {
vendorHash = "sha256-6J9AWONLP/FvR0dXt5Zx4n+kTpmnxF79HcWVFp9OZ0g=";
subPackages = [ "cmd/cloudlist/" ];
ldflags = [
"-w"
"-s"
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = [ "--version" ];
meta = with lib; {
description = "Tool for listing assets from multiple cloud providers";
mainProgram = "cloudlist";
homepage = "https://github.com/projectdiscovery/cloudlist";
changelog = "https://github.com/projectdiscovery/cloudlist/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "cloudlist";
};
}

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