Merge staging-next into staging
This commit is contained in:
@@ -140,6 +140,8 @@
|
||||
retained for packages that have not completed migration. `asio_1_10` has been removed as no packages depend on it anymore.
|
||||
`asio` also no longer propagates `boost` as it is used independent from `boost` in most cases.
|
||||
|
||||
- `docker-color-output` has been updated from major version 2 to 3. One breaking change is, that they switched to [YAML-based configuration files](https://github.com/devemio/docker-color-output?tab=readme-ov-file#configuration).
|
||||
|
||||
- `stalwart-mail` has been renamed to `stalwart`
|
||||
|
||||
- Ethercalc and its associated module have been removed, as the package is unmaintained and cannot be installed from source with npm now.
|
||||
|
||||
@@ -3576,6 +3576,12 @@
|
||||
githubId = 77934086;
|
||||
keys = [ { fingerprint = "4CA3 48F6 8FE1 1777 8EDA 3860 B9A2 C1B0 25EC 2C55"; } ];
|
||||
};
|
||||
blemouzy = {
|
||||
email = "blemouzy.ml@gmail.com";
|
||||
github = "blemouzy";
|
||||
githubId = 124877155;
|
||||
name = "Benjamin Lemouzy";
|
||||
};
|
||||
blenderfreaky = {
|
||||
name = "blenderfreaky";
|
||||
email = "nix@blenderfreaky.de";
|
||||
@@ -3625,6 +3631,12 @@
|
||||
githubId = 535135;
|
||||
name = "Brennon Loveless";
|
||||
};
|
||||
Blu3 = {
|
||||
name = "Blu3";
|
||||
email = "Blu3SoulsIT@gmail.com";
|
||||
github = "Blu3SoulsIT";
|
||||
githubId = 96670566;
|
||||
};
|
||||
blusk = {
|
||||
email = "bluskript@gmail.com";
|
||||
github = "bluskript";
|
||||
@@ -3649,6 +3661,12 @@
|
||||
github = "bmwalters";
|
||||
githubId = 4380777;
|
||||
};
|
||||
bnjmnt4n = {
|
||||
name = "Benjamin Tan";
|
||||
github = "bnjmnt4n";
|
||||
githubId = 813865;
|
||||
email = "benjamin@dev.ofcr.se";
|
||||
};
|
||||
bnlrnz = {
|
||||
github = "bnlrnz";
|
||||
githubId = 11310385;
|
||||
@@ -5177,6 +5195,13 @@
|
||||
email = "codenil@proton.me";
|
||||
name = "Dan Lock";
|
||||
};
|
||||
CodeF53 = {
|
||||
github = "CodeF53";
|
||||
githubId = 37855219;
|
||||
matrix = "@codef53:matrix.org";
|
||||
email = "fseusb@gmail.com";
|
||||
name = "cassie";
|
||||
};
|
||||
CodeLongAndProsper90 = {
|
||||
github = "CodeLongAndProsper90";
|
||||
githubId = 50145141;
|
||||
@@ -15267,6 +15292,12 @@
|
||||
githubId = 591860;
|
||||
name = "Lionello Lunesu";
|
||||
};
|
||||
lisanna-dettwyler = {
|
||||
email = "lisanna.dettwyler@gmail.com";
|
||||
github = "lisanna-dettwyler";
|
||||
githubId = 72424138;
|
||||
name = "Lisanna Dettwyler";
|
||||
};
|
||||
litchipi = {
|
||||
email = "litchi.pi@proton.me";
|
||||
github = "litchipi";
|
||||
@@ -18791,6 +18822,11 @@
|
||||
githubId = 50854675;
|
||||
name = "Nelson Jeppesen";
|
||||
};
|
||||
nemeott = {
|
||||
github = "nemeott";
|
||||
githubId = 123220311;
|
||||
name = "Nathan Emeott";
|
||||
};
|
||||
nemin = {
|
||||
name = "Nemin";
|
||||
github = "Nemin32";
|
||||
@@ -19594,6 +19630,12 @@
|
||||
github = "nullishamy";
|
||||
githubId = 99221043;
|
||||
};
|
||||
nullstring1 = {
|
||||
email = "nullstring1+nixpkgs@nullstring.one";
|
||||
name = "nullstring1";
|
||||
github = "nullstring1";
|
||||
githubId = 53035336;
|
||||
};
|
||||
numbleroot = {
|
||||
email = "hello@lennartoldenburg.de";
|
||||
name = "Lennart Oldenburg";
|
||||
@@ -24863,7 +24905,7 @@
|
||||
name = "Johannes Klein";
|
||||
};
|
||||
sith-lord-vader = {
|
||||
email = "abhiayush23@gmail.com";
|
||||
email = "nixpkgs@xpertsre.rocks";
|
||||
github = "sith-lord-vader";
|
||||
githubId = 24388085;
|
||||
name = "Abhishek Adhikari";
|
||||
@@ -25209,6 +25251,12 @@
|
||||
githubId = 13762043;
|
||||
matrix = "@sophie:nue.soopy.moe";
|
||||
};
|
||||
sophronesis = {
|
||||
email = "oleksandr.buzynnyi@gmail.com";
|
||||
github = "sophronesis";
|
||||
githubId = 13190573;
|
||||
name = "Oleksandr Buzynnyi";
|
||||
};
|
||||
sophrosyne = {
|
||||
email = "joshuaortiz@tutanota.com";
|
||||
github = "sophrosyne97";
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
|
||||
- [bentopdf](https://github.com/alam00000/bentopdf), a privacy-first PDF toolkit running completely in-browser. Available as [services.bentopdf](#opt-services.bentopdf.enable).
|
||||
|
||||
- [hyprwhspr-rs](https://github.com/better-slop/hyprwhspr-rs), a keybind activated speech-to-text voice dictation utility built for use with Hyprland. Available as `services.hyprwhspr-rs`
|
||||
|
||||
- [DankMaterialShell](https://danklinux.com), a complete desktop shell for Wayland compositors built with Quickshell. Available as [programs.dms-shell](#opt-programs.dms-shell.enable).
|
||||
|
||||
- [dms-greeter](https://danklinux.com), a modern display manager greeter for DankMaterialShell that works with greetd and supports multiple Wayland compositors. Available as [services.displayManager.dms-greeter](#opt-services.displayManager.dms-greeter.enable).
|
||||
@@ -64,6 +66,8 @@
|
||||
|
||||
- [Shoko](https://shokoanime.com), an anime management system. Available as [services.shoko](#opt-services.shoko.enable).
|
||||
|
||||
- [Drasl](https://github.com/unmojang/drasl), an alternative authentication server for Minecraft. Available as [services.drasl](#opt-services.drasl.enable).
|
||||
|
||||
## Backward Incompatibilities {#sec-release-26.05-incompatibilities}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
@@ -124,6 +128,8 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
|
||||
|
||||
The way keybinds and actions are handled have been completely revamped. Please refer to the [default config](https://raw.githubusercontent.com/abenz1267/walker/refs/heads/master/resources/config.toml).
|
||||
|
||||
- [services.portunus](#opt-services.portunus.enable) has been upgraded to 2.2.0, which includes a bug fix that may cause existing databases to be rejected if user accounts are configured with malformed email addresses. Please refer to [the upstream release announcement](https://github.com/majewsky/portunus/releases/tag/v2.2.0) for details and instructions on how to fix problematic database entries.
|
||||
|
||||
- Support for `reiserfs` in nixpkgs has been removed, following the removal in Linux 6.13.
|
||||
|
||||
- `services.tor` no longer bind mounts Unix sockets of onion services into its chroot
|
||||
|
||||
@@ -122,6 +122,31 @@ in
|
||||
};
|
||||
|
||||
config = lib.mkIf (cfg.provider != "libc") {
|
||||
# Legacy (LLVM < 13) Scudo uses CamelCase options.
|
||||
# Standalone (LLVM >= 13) Scudo uses snake_case options.
|
||||
# NixOS switched in 25.11: https://github.com/NixOS/nixpkgs/pull/444605
|
||||
warnings =
|
||||
let
|
||||
scudoOpts = config.environment.variables.SCUDO_OPTIONS;
|
||||
|
||||
legacyOptionNames = [
|
||||
"QuarantineSizeKb"
|
||||
"QuarantineChunksUpToSize"
|
||||
"ThreadLocalQuarantineSizeKb"
|
||||
"DeallocationTypeMismatch"
|
||||
"DeleteSizeMismatch"
|
||||
"ZeroContents"
|
||||
];
|
||||
|
||||
# Check which legacy options are in SCUDO_OPTIONS,
|
||||
# so we can warn the user about the change.
|
||||
legacyOptionsUsed = lib.lists.filter (opt: lib.strings.hasInfix opt scudoOpts) legacyOptionNames;
|
||||
in
|
||||
lib.optional (cfg.provider == "scudo" && legacyOptionsUsed != [ ]) ''
|
||||
environment.variables.SCUDO_OPTIONS: ${lib.concatStringsSep ", " legacyOptionsUsed} is/are no longer valid Scudo options.
|
||||
Use snake_case instead of CamelCase: https://llvm.org/docs/ScudoHardenedAllocator.html#options
|
||||
'';
|
||||
|
||||
environment.etc."ld-nix.so.preload".text = ''
|
||||
${providerLibPath}
|
||||
'';
|
||||
|
||||
@@ -25,7 +25,9 @@ let
|
||||
Type=Application
|
||||
Exec=${ibusPackage}/bin/ibus-daemon --daemonize --xim ${impanel}
|
||||
# GNOME will launch ibus using systemd
|
||||
NotShowIn=GNOME;
|
||||
# ibus complains loudly when launched from this autoStart file under KDE
|
||||
# KDE will launch ibus from kwin if enabled in keyboard -> virtual keyboard
|
||||
NotShowIn=GNOME;KDE;
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
@@ -873,6 +873,7 @@
|
||||
./services/misc/headphones.nix
|
||||
./services/misc/heisenbridge.nix
|
||||
./services/misc/homepage-dashboard.nix
|
||||
./services/misc/hyprwhspr-rs.nix
|
||||
./services/misc/ihaskell.nix
|
||||
./services/misc/iio-niri.nix
|
||||
./services/misc/input-remapper.nix
|
||||
@@ -1621,6 +1622,7 @@
|
||||
./services/web-apps/docuseal.nix
|
||||
./services/web-apps/dokuwiki.nix
|
||||
./services/web-apps/dolibarr.nix
|
||||
./services/web-apps/drasl.nix
|
||||
./services/web-apps/drupal.nix
|
||||
./services/web-apps/echoip.nix
|
||||
./services/web-apps/eintopf.nix
|
||||
|
||||
@@ -254,7 +254,7 @@ in
|
||||
lib.mapAttrs (name: path: ''export ${name}="$(< ${lib.escapeShellArg path})"'') cfg.environmentFiles
|
||||
)
|
||||
)}
|
||||
exec ${pkgs.patroni}/bin/patroni ${configFile}
|
||||
exec ${lib.getExe pkgs.patroni} ${configFile}
|
||||
'';
|
||||
|
||||
serviceConfig = lib.mkMerge [
|
||||
|
||||
@@ -9,11 +9,53 @@ let
|
||||
cfg = config.services.tuned;
|
||||
|
||||
moduleFromName = name: lib.getAttrFromPath (lib.splitString "." name) config;
|
||||
|
||||
settingsFormat = pkgs.formats.iniWithGlobalSection { };
|
||||
profileFormat = pkgs.formats.ini { };
|
||||
ppdSettingsFormat = pkgs.formats.ini { };
|
||||
profileFormat = pkgs.formats.ini { };
|
||||
recommendFormat = pkgs.formats.ini { };
|
||||
settingsFormat = pkgs.formats.iniWithGlobalSection { };
|
||||
|
||||
ppdSettingsSubmodule = {
|
||||
freeformType = ppdSettingsFormat.type;
|
||||
|
||||
options = {
|
||||
main = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
options = {
|
||||
default = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "balanced";
|
||||
description = "Default PPD profile.";
|
||||
example = "performance";
|
||||
};
|
||||
|
||||
battery_detection = lib.mkEnableOption "battery detection" // {
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
description = "Core configuration for power-profiles-daemon support.";
|
||||
};
|
||||
|
||||
profiles = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = {
|
||||
power-saver = "powersave";
|
||||
balanced = "balanced";
|
||||
performance = "throughput-performance";
|
||||
};
|
||||
description = "Map of PPD profiles to native TuneD profiles.";
|
||||
};
|
||||
|
||||
battery = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = {
|
||||
balanced = "balanced-battery";
|
||||
};
|
||||
description = "Map of PPD battery states to TuneD profiles.";
|
||||
};
|
||||
};
|
||||
};
|
||||
settingsSubmodule = {
|
||||
freeformType = settingsFormat.type;
|
||||
|
||||
@@ -61,66 +103,23 @@ let
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ppdSettingsSubmodule = {
|
||||
freeformType = ppdSettingsFormat.type;
|
||||
|
||||
options = {
|
||||
main = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
options = {
|
||||
default = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "balanced";
|
||||
description = "Default PPD profile.";
|
||||
example = "performance";
|
||||
};
|
||||
|
||||
battery_detection = lib.mkEnableOption "battery detection" // {
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
description = "Core configuration for power-profiles-daemon support.";
|
||||
};
|
||||
|
||||
profiles = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = {
|
||||
power-saver = "powersave";
|
||||
balanced = "balanced";
|
||||
performance = "throughput-performance";
|
||||
};
|
||||
description = "Map of PPD profiles to native TuneD profiles.";
|
||||
};
|
||||
|
||||
battery = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = {
|
||||
balanced = "balanced-battery";
|
||||
};
|
||||
description = "Map of PPD battery states to TuneD profiles.";
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
options.services.tuned = {
|
||||
enable = lib.mkEnableOption "TuneD";
|
||||
|
||||
package = lib.mkPackageOption pkgs "tuned" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule settingsSubmodule;
|
||||
ppdSettings = lib.mkOption {
|
||||
type = lib.types.submodule ppdSettingsSubmodule;
|
||||
default = { };
|
||||
description = ''
|
||||
Configuration for TuneD.
|
||||
See {manpage}`tuned-main.conf(5)`.
|
||||
Settings for TuneD's power-profiles-daemon compatibility service.
|
||||
'';
|
||||
};
|
||||
|
||||
ppdSupport = lib.mkEnableOption "translation of power-profiles-daemon API calls to TuneD" // {
|
||||
default = true;
|
||||
};
|
||||
profiles = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule {
|
||||
@@ -130,7 +129,7 @@ in
|
||||
default = { };
|
||||
description = ''
|
||||
Profiles for TuneD.
|
||||
See {manpage}`tuned.conf(5)`.
|
||||
See {manpage}`tuned.conf(5)` for details.
|
||||
'';
|
||||
example = {
|
||||
my-cool-profile = {
|
||||
@@ -146,16 +145,44 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ppdSupport = lib.mkEnableOption "translation of power-profiles-daemon API calls to TuneD" // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
ppdSettings = lib.mkOption {
|
||||
type = lib.types.submodule ppdSettingsSubmodule;
|
||||
recommend = lib.mkOption {
|
||||
type = recommendFormat.type;
|
||||
default = { };
|
||||
description = ''
|
||||
Settings for TuneD's power-profiles-daemon compatibility service.
|
||||
TuneD rules for `recommend_profile`, written to
|
||||
`/etc/tuned/recommend.conf`.
|
||||
|
||||
At startup, the daemon evaluates the file in alphabetical order.
|
||||
The first matching entry is applied. Empty profile rules always match.
|
||||
|
||||
If `services.tuned.ppdSupport` is `true`, settings in
|
||||
`services.tuned.ppdSettings` take precedence over both the default
|
||||
behaviour and `services.tuned.recommend`. For example:
|
||||
`services.tuned.ppdSettings.main.default = "performance";` ensures
|
||||
the corresponding PPD profile is applied regardless of
|
||||
`services.tuned.recommend` setting.
|
||||
|
||||
If `ppdSupport` is `false`, only `services.tuned.recommend` is used;
|
||||
if `recommend` is empty, TuneD's default behaviour applies.
|
||||
|
||||
See {manpage}`tuned-main.conf(5)` for more details.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
# Enable `virtual-guest` profile for VM guests
|
||||
virtual-guest = {
|
||||
virt = ".+";
|
||||
};
|
||||
|
||||
# Default to the `desktop` profile for all other systems
|
||||
desktop = { };
|
||||
'';
|
||||
};
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule settingsSubmodule;
|
||||
default = { };
|
||||
description = ''
|
||||
Configuration for TuneD.
|
||||
See {manpage}`tuned-main.conf(5)` for details.
|
||||
'';
|
||||
};
|
||||
};
|
||||
@@ -186,6 +213,7 @@ in
|
||||
message = "`services.tuned` conflicts with `${name}`.";
|
||||
})
|
||||
[
|
||||
"hardware.system76.power-daemon"
|
||||
"services.auto-cpufreq"
|
||||
"services.power-profiles-daemon"
|
||||
"services.tlp"
|
||||
@@ -198,11 +226,14 @@ in
|
||||
sections = { };
|
||||
globalSection = cfg.settings;
|
||||
};
|
||||
|
||||
"tuned/ppd.conf".source = lib.mkIf cfg.ppdSupport (
|
||||
ppdSettingsFormat.generate "ppd.conf" cfg.ppdSettings
|
||||
);
|
||||
}
|
||||
(lib.mkIf cfg.ppdSupport {
|
||||
"tuned/ppd.conf".source = ppdSettingsFormat.generate "ppd.conf" cfg.ppdSettings;
|
||||
})
|
||||
|
||||
(lib.mkIf (cfg.settings.recommend_command && cfg.recommend != { }) {
|
||||
"tuned/recommend.conf".source = recommendFormat.generate "recommend.conf" cfg.recommend;
|
||||
})
|
||||
|
||||
(lib.mapAttrs' (
|
||||
name: value:
|
||||
|
||||
@@ -105,12 +105,21 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
security.wrappers.smtpctl = {
|
||||
owner = "root";
|
||||
group = "smtpq";
|
||||
setuid = false;
|
||||
setgid = true;
|
||||
source = "${cfg.package}/bin/smtpctl";
|
||||
security.wrappers = {
|
||||
makemap = {
|
||||
owner = "root";
|
||||
group = "smtpq";
|
||||
setuid = false;
|
||||
setgid = true;
|
||||
source = "${cfg.package}/bin/smtpctl";
|
||||
};
|
||||
smtpctl = {
|
||||
owner = "root";
|
||||
group = "smtpq";
|
||||
setuid = false;
|
||||
setgid = true;
|
||||
source = "${cfg.package}/bin/smtpctl";
|
||||
};
|
||||
};
|
||||
|
||||
services.mail.sendmailSetuidWrapper = lib.mkIf cfg.setSendmail (
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
mkEnableOption
|
||||
mkPackageOption
|
||||
mkOption
|
||||
;
|
||||
cfg = config.services.hyprwhspr-rs;
|
||||
in
|
||||
{
|
||||
options.services.hyprwhspr-rs = {
|
||||
enable = mkEnableOption "hyprwhspr-rs";
|
||||
package = mkPackageOption pkgs "hyprwhspr-rs" { };
|
||||
|
||||
environmentFile = mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
example = "/path/to/hyprwhspr_secret_file";
|
||||
description = "File containing API keys (GROQ_API_KEY, GEMINI_API_KEY) for remote transcription.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.user.services.hyprwhspr-rs = {
|
||||
description = "Native speech-to-text voice dictation for Hyprland";
|
||||
|
||||
after = [
|
||||
"graphical-session.target"
|
||||
"pipewire.service"
|
||||
];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
partOf = [ "graphical-session.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
Restart = "on-failure";
|
||||
LoadCredential = lib.optional (cfg.environmentFile != null) cfg.environmentFile;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -44,7 +44,19 @@ in
|
||||
};
|
||||
|
||||
environment = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
type = lib.types.submodule {
|
||||
freeformType = lib.types.attrsOf lib.types.str;
|
||||
options = {
|
||||
SKIP_SYSTEMD = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to disable systemd service monitoring.
|
||||
Enabling this option will skip systemd tracking and its setup in NixOS.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
description = ''
|
||||
Environment variables for configuring the beszel-agent service.
|
||||
@@ -75,6 +87,36 @@ in
|
||||
KERNEL=="nvme[0-9]*", GROUP="disk", MODE="0660"
|
||||
'';
|
||||
|
||||
# Add D-Bus policy for systemd service monitoring following https://beszel.dev/guide/systemd#services-not-appearing
|
||||
services.dbus.packages = lib.optionals (!cfg.environment.SKIP_SYSTEMD) [
|
||||
(pkgs.writeTextDir "share/dbus-1/system.d/beszel-agent.conf" ''
|
||||
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
|
||||
|
||||
<!DOCTYPE busconfig PUBLIC
|
||||
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
|
||||
|
||||
<busconfig>
|
||||
<policy user="beszel-agent">
|
||||
<allow
|
||||
send_destination="org.freedesktop.systemd1"
|
||||
send_type="method_call"
|
||||
send_path="/org/freedesktop/systemd1"
|
||||
send_interface="org.freedesktop.systemd1.Manager"
|
||||
send_member="ListUnits"
|
||||
/>
|
||||
</policy>
|
||||
</busconfig>
|
||||
'')
|
||||
];
|
||||
|
||||
users.users.beszel-agent = lib.mkIf (!cfg.environment.SKIP_SYSTEMD) {
|
||||
isSystemUser = true;
|
||||
group = "beszel-agent";
|
||||
};
|
||||
|
||||
users.groups.beszel-agent = lib.mkIf (!cfg.environment.SKIP_SYSTEMD) { };
|
||||
|
||||
systemd.services.beszel-agent = {
|
||||
description = "Beszel Server Monitoring Agent";
|
||||
|
||||
@@ -82,7 +124,10 @@ in
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
|
||||
environment = cfg.environment;
|
||||
environment = lib.mapAttrs (
|
||||
_: value: if lib.isBool value then (lib.boolToString value) else value
|
||||
) cfg.environment;
|
||||
|
||||
path =
|
||||
cfg.extraPath
|
||||
++ lib.optionals cfg.smartmon.enable [ cfg.smartmon.package ]
|
||||
@@ -133,7 +178,7 @@ in
|
||||
NoNewPrivileges = !cfg.smartmon.enable;
|
||||
PrivateDevices = !cfg.smartmon.enable;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = !cfg.smartmon.enable;
|
||||
PrivateUsers = !cfg.smartmon.enable && !cfg.environment.SKIP_SYSTEMD;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = "strict";
|
||||
ProtectHome = "read-only";
|
||||
|
||||
@@ -36,9 +36,7 @@ in
|
||||
configFile = mkOption {
|
||||
type = path;
|
||||
default = settingsFormat.generate "gatus.yaml" cfg.settings;
|
||||
defaultText = literalExpression ''
|
||||
let settingsFormat = pkgs.formats.yaml { }; in settingsFormat.generate "gatus.yaml" cfg.settings;
|
||||
'';
|
||||
defaultText = literalExpression ''(pkgs.formats.yaml { }).generate "gatus.yaml" config.services.gatus.settings'';
|
||||
description = ''
|
||||
Path to the Gatus configuration file.
|
||||
Overrides any configuration made using the `settings` option.
|
||||
|
||||
@@ -886,6 +886,7 @@ in
|
||||
"internal_hashed"
|
||||
"cyrus"
|
||||
"anonymous"
|
||||
"ldap"
|
||||
];
|
||||
default = "internal_hashed";
|
||||
example = "internal_plain";
|
||||
|
||||
@@ -89,6 +89,8 @@ in
|
||||
"${lib.getExe cfg.package} -D \${STATE_DIRECTORY} -C \${RUNTIME_DIRECTORY} run"
|
||||
];
|
||||
};
|
||||
# After= is specified by upstream
|
||||
requires = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
|
||||
|
||||
@@ -231,7 +231,7 @@ in
|
||||
after = [ "crowdsec.service" ];
|
||||
wants = after;
|
||||
script = ''
|
||||
cscli=/run/current-system/sw/bin/cscli
|
||||
cscli=${lib.getExe' config.services.crowdsec.package "cscli"}
|
||||
if $cscli bouncers list --output json | ${lib.getExe pkgs.jq} -e -- ${lib.escapeShellArg "any(.[]; .name == \"${cfg.registerBouncer.bouncerName}\")"} >/dev/null; then
|
||||
# Bouncer already registered. Verify the API key is still present
|
||||
if [ ! -f ${apiKeyFile} ]; then
|
||||
@@ -257,12 +257,7 @@ in
|
||||
User = config.services.crowdsec.user;
|
||||
Group = config.services.crowdsec.group;
|
||||
|
||||
StateDirectory = "crowdsec-firewall-bouncer-register";
|
||||
|
||||
ReadWritePaths = [
|
||||
# Needs write permissions to add the bouncer
|
||||
"/var/lib/crowdsec"
|
||||
];
|
||||
StateDirectory = "crowdsec-firewall-bouncer-register crowdsec";
|
||||
|
||||
DynamicUser = true;
|
||||
LockPersonality = true;
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.drasl;
|
||||
format = pkgs.formats.toml { };
|
||||
filterAttrs = x: lib.filterAttrs (n: v: n != "ClientSecretFile" || v != null) x;
|
||||
getIndex =
|
||||
item:
|
||||
builtins.toString (lib.lists.findFirstIndex (x: x == item) null cfg.settings.RegistrationOIDC);
|
||||
secretFiles = lib.filter (
|
||||
x: lib.hasAttr "ClientSecretFile" (filterAttrs x)
|
||||
) cfg.settings.RegistrationOIDC;
|
||||
settings = format.generate "drasl-config.toml" (
|
||||
if cfg.settings.RegistrationOIDC == [ ] then
|
||||
lib.filterAttrs (n: v: n != "RegistrationOIDC" || v != [ ]) cfg.settings
|
||||
else
|
||||
lib.recursiveUpdate cfg.settings {
|
||||
RegistrationOIDC = map (
|
||||
x:
|
||||
if lib.hasAttr "ClientSecretFile" (filterAttrs x) then
|
||||
lib.recursiveUpdate (filterAttrs x) {
|
||||
ClientSecretFile = "$CREDENTIALS_DIRECTORY/${getIndex x}";
|
||||
}
|
||||
else
|
||||
filterAttrs x
|
||||
) cfg.settings.RegistrationOIDC;
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
options.services.drasl = {
|
||||
enable = lib.mkEnableOption "Drasl";
|
||||
package = lib.mkPackageOption pkgs "drasl" { };
|
||||
enableDebug = lib.mkEnableOption "debugging";
|
||||
settings = lib.mkOption {
|
||||
description = ''
|
||||
Configuration for Drasl. See the
|
||||
[Drasl documentation](https://github.com/unmojang/drasl/blob/master/doc/configuration.md)
|
||||
for possible options.
|
||||
'';
|
||||
type = lib.types.submodule {
|
||||
freeformType = format.type;
|
||||
options = {
|
||||
RegistrationOIDC = lib.mkOption {
|
||||
default = [ ];
|
||||
description = "List of OpenID connect providers.";
|
||||
type = lib.types.listOf (
|
||||
lib.types.submodule {
|
||||
freeformType = format.type;
|
||||
options = {
|
||||
ClientSecretFile = lib.mkOption {
|
||||
default = null;
|
||||
description = ''
|
||||
Path to a file containing the OIDC client secret.
|
||||
|
||||
::: {.note}
|
||||
The NixOS module will automatically load this file using
|
||||
systemd's LoadCredential. Make sure this file is only
|
||||
readable by the root user.
|
||||
:::
|
||||
'';
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = lib.allUnique cfg.settings.RegistrationOIDC;
|
||||
message = "All items in `services.drasl.settings.RegistrationOIDC` must be unique.";
|
||||
}
|
||||
{
|
||||
assertion = lib.all (
|
||||
x: (lib.hasAttr "ClientSecretFile" (filterAttrs x)) -> !(lib.hasAttr "ClientSecret" (filterAttrs x))
|
||||
) cfg.settings.RegistrationOIDC;
|
||||
message =
|
||||
"Do not set both `services.drasl.settings.RegistrationOIDC.*.ClientSecret` "
|
||||
+ "and `services.drasl.settings.RegistrationOIDC.*.ClientSecretFile`";
|
||||
}
|
||||
];
|
||||
systemd.services.drasl = {
|
||||
description = "Drasl";
|
||||
after = [
|
||||
"network-online.target"
|
||||
"nss-lookup.target"
|
||||
];
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment = lib.mkIf cfg.enableDebug { DRASL_DEBUG = "1"; };
|
||||
serviceConfig = {
|
||||
ExecStart = "${lib.getExe cfg.package} -config ${settings}";
|
||||
DynamicUser = true;
|
||||
RuntimeDirectory = "drasl";
|
||||
RuntimeDirectoryMode = "0700";
|
||||
StateDirectory = "drasl";
|
||||
LoadCredential = lib.mkIf (secretFiles != [ ]) (
|
||||
map (x: "${getIndex x}:${x.ClientSecretFile}") secretFiles
|
||||
);
|
||||
# Hardening
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateMounts = true;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
RemoveIPC = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
CapabilityBoundingSet = "CAP_NET_BIND_SERVICE";
|
||||
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
||||
PrivateTmp = "disconnected";
|
||||
ProcSubset = "pid";
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
];
|
||||
RestrictNamespaces = [
|
||||
"~cgroup"
|
||||
"~ipc"
|
||||
"~mnt"
|
||||
"~net"
|
||||
"~pid"
|
||||
"~user"
|
||||
"~uts"
|
||||
];
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [
|
||||
"~@clock"
|
||||
"~@cpu-emulation"
|
||||
"~@debug"
|
||||
"~@module"
|
||||
"~@mount"
|
||||
"~@obsolete"
|
||||
"~@privileged"
|
||||
"~@raw-io"
|
||||
"~@reboot"
|
||||
"~@resources"
|
||||
"~@swap"
|
||||
];
|
||||
UMask = "0077";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
evan-goode
|
||||
ungeskriptet
|
||||
];
|
||||
}
|
||||
@@ -123,129 +123,141 @@ let
|
||||
checkPhase = ''
|
||||
${cfg.phpPackage}/bin/php --syntax-check "$target"
|
||||
'';
|
||||
text = ''
|
||||
<?php
|
||||
# Protect against web entry
|
||||
if ( !defined( 'MEDIAWIKI' ) ) {
|
||||
exit;
|
||||
}
|
||||
text =
|
||||
let
|
||||
dbSettings =
|
||||
if cfg.database.type == "sqlite" then
|
||||
''
|
||||
$wgSQLiteDataDir = "${cfg.database.path}";
|
||||
''
|
||||
else
|
||||
''
|
||||
$wgDBserver = "${dbAddr}";
|
||||
$wgDBport = "${toString cfg.database.port}";
|
||||
$wgDBuser = "${cfg.database.user}";
|
||||
${optionalString (
|
||||
cfg.database.passwordFile != null
|
||||
) "$wgDBpassword = file_get_contents(\"${cfg.database.passwordFile}\");"}
|
||||
|
||||
$wgSitename = "${cfg.name}";
|
||||
$wgMetaNamespace = false;
|
||||
${optionalString (cfg.database.type == "mysql" && cfg.database.tablePrefix != null) ''
|
||||
# MySQL specific settings
|
||||
$wgDBprefix = "${cfg.database.tablePrefix}";
|
||||
''}
|
||||
|
||||
## The URL base path to the directory containing the wiki;
|
||||
## defaults for all runtime URL paths are based off of this.
|
||||
## For more information on customizing the URLs
|
||||
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
|
||||
## https://www.mediawiki.org/wiki/Manual:Short_URL
|
||||
$wgScriptPath = "${lib.optionalString (cfg.webserver == "nginx") "/w"}";
|
||||
${optionalString (cfg.database.type == "mysql") ''
|
||||
# MySQL table options to use during installation or update
|
||||
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
|
||||
''}
|
||||
'';
|
||||
in
|
||||
''
|
||||
<?php
|
||||
# Protect against web entry
|
||||
if ( !defined( 'MEDIAWIKI' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
## The protocol and server name to use in fully-qualified URLs
|
||||
$wgServer = "${cfg.url}";
|
||||
$wgSitename = "${cfg.name}";
|
||||
$wgMetaNamespace = false;
|
||||
|
||||
## The URL path to static resources (images, scripts, etc.)
|
||||
$wgResourceBasePath = $wgScriptPath;
|
||||
## The URL base path to the directory containing the wiki;
|
||||
## defaults for all runtime URL paths are based off of this.
|
||||
## For more information on customizing the URLs
|
||||
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
|
||||
## https://www.mediawiki.org/wiki/Manual:Short_URL
|
||||
$wgScriptPath = "${lib.optionalString (cfg.webserver == "nginx") "/w"}";
|
||||
|
||||
${lib.optionalString (cfg.webserver == "nginx") ''
|
||||
$wgArticlePath = "/wiki/$1";
|
||||
$wgUsePathInfo = true;
|
||||
''}
|
||||
## The protocol and server name to use in fully-qualified URLs
|
||||
$wgServer = "${cfg.url}";
|
||||
|
||||
## The URL path to the logo. Make sure you change this from the default,
|
||||
## or else you'll overwrite your logo when you upgrade!
|
||||
$wgLogo = "$wgResourceBasePath/resources/assets/wiki.png";
|
||||
## The URL path to static resources (images, scripts, etc.)
|
||||
$wgResourceBasePath = $wgScriptPath;
|
||||
|
||||
## UPO means: this is also a user preference option
|
||||
${lib.optionalString (cfg.webserver == "nginx") ''
|
||||
$wgArticlePath = "/wiki/$1";
|
||||
$wgUsePathInfo = true;
|
||||
''}
|
||||
|
||||
$wgEnableEmail = true;
|
||||
$wgEnableUserEmail = true; # UPO
|
||||
## The URL path to the logo. Make sure you change this from the default,
|
||||
## or else you'll overwrite your logo when you upgrade!
|
||||
$wgLogo = "$wgResourceBasePath/resources/assets/wiki.png";
|
||||
|
||||
$wgPasswordSender = "${cfg.passwordSender}";
|
||||
## UPO means: this is also a user preference option
|
||||
|
||||
$wgEnotifUserTalk = false; # UPO
|
||||
$wgEnotifWatchlist = false; # UPO
|
||||
$wgEmailAuthentication = true;
|
||||
$wgEnableEmail = true;
|
||||
$wgEnableUserEmail = true; # UPO
|
||||
|
||||
## Database settings
|
||||
$wgDBtype = "${cfg.database.type}";
|
||||
$wgDBserver = "${dbAddr}";
|
||||
$wgDBport = "${toString cfg.database.port}";
|
||||
$wgDBname = "${cfg.database.name}";
|
||||
$wgDBuser = "${cfg.database.user}";
|
||||
${optionalString (
|
||||
cfg.database.passwordFile != null
|
||||
) "$wgDBpassword = file_get_contents(\"${cfg.database.passwordFile}\");"}
|
||||
$wgPasswordSender = "${cfg.passwordSender}";
|
||||
|
||||
${optionalString (cfg.database.type == "mysql" && cfg.database.tablePrefix != null) ''
|
||||
# MySQL specific settings
|
||||
$wgDBprefix = "${cfg.database.tablePrefix}";
|
||||
''}
|
||||
$wgEnotifUserTalk = false; # UPO
|
||||
$wgEnotifWatchlist = false; # UPO
|
||||
$wgEmailAuthentication = true;
|
||||
|
||||
${optionalString (cfg.database.type == "mysql") ''
|
||||
# MySQL table options to use during installation or update
|
||||
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
|
||||
''}
|
||||
## Database settings
|
||||
$wgDBtype = "${cfg.database.type}";
|
||||
$wgDBname = "${cfg.database.name}";
|
||||
${dbSettings}
|
||||
|
||||
## Shared memory settings
|
||||
$wgMainCacheType = CACHE_NONE;
|
||||
$wgMemCachedServers = [];
|
||||
## Shared memory settings
|
||||
$wgMainCacheType = CACHE_NONE;
|
||||
$wgMemCachedServers = [];
|
||||
|
||||
${optionalString (cfg.uploadsDir != null) ''
|
||||
$wgEnableUploads = true;
|
||||
$wgUploadDirectory = "${cfg.uploadsDir}";
|
||||
''}
|
||||
${optionalString (cfg.uploadsDir != null) ''
|
||||
$wgEnableUploads = true;
|
||||
$wgUploadDirectory = "${cfg.uploadsDir}";
|
||||
''}
|
||||
|
||||
$wgUseImageMagick = true;
|
||||
$wgUseImageMagick = true;
|
||||
|
||||
# InstantCommons allows wiki to use images from https://commons.wikimedia.org
|
||||
$wgUseInstantCommons = false;
|
||||
# InstantCommons allows wiki to use images from https://commons.wikimedia.org
|
||||
$wgUseInstantCommons = false;
|
||||
|
||||
# Periodically send a pingback to https://www.mediawiki.org/ with basic data
|
||||
# about this MediaWiki instance. The Wikimedia Foundation shares this data
|
||||
# with MediaWiki developers to help guide future development efforts.
|
||||
$wgPingback = true;
|
||||
# Periodically send a pingback to https://www.mediawiki.org/ with basic data
|
||||
# about this MediaWiki instance. The Wikimedia Foundation shares this data
|
||||
# with MediaWiki developers to help guide future development efforts.
|
||||
$wgPingback = true;
|
||||
|
||||
## If you use ImageMagick (or any other shell command) on a
|
||||
## Linux server, this will need to be set to the name of an
|
||||
## available UTF-8 locale
|
||||
$wgShellLocale = "C.UTF-8";
|
||||
## If you use ImageMagick (or any other shell command) on a
|
||||
## Linux server, this will need to be set to the name of an
|
||||
## available UTF-8 locale
|
||||
$wgShellLocale = "C.UTF-8";
|
||||
|
||||
## Set $wgCacheDirectory to a writable directory on the web server
|
||||
## to make your wiki go slightly faster. The directory should not
|
||||
## be publicly accessible from the web.
|
||||
$wgCacheDirectory = "${cacheDir}";
|
||||
## Set $wgCacheDirectory to a writable directory on the web server
|
||||
## to make your wiki go slightly faster. The directory should not
|
||||
## be publicly accessible from the web.
|
||||
$wgCacheDirectory = "${cacheDir}";
|
||||
|
||||
# Site language code, should be one of the list in ./languages/data/Names.php
|
||||
$wgLanguageCode = "en";
|
||||
# Site language code, should be one of the list in ./languages/data/Names.php
|
||||
$wgLanguageCode = "en";
|
||||
|
||||
$wgSecretKey = file_get_contents("${stateDir}/secret.key");
|
||||
$wgSecretKey = file_get_contents("${stateDir}/secret.key");
|
||||
|
||||
# Changing this will log out all existing sessions.
|
||||
$wgAuthenticationTokenVersion = "";
|
||||
# Changing this will log out all existing sessions.
|
||||
$wgAuthenticationTokenVersion = "";
|
||||
|
||||
## For attaching licensing metadata to pages, and displaying an
|
||||
## appropriate copyright notice / icon. GNU Free Documentation
|
||||
## License and Creative Commons licenses are supported so far.
|
||||
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
|
||||
$wgRightsUrl = "";
|
||||
$wgRightsText = "";
|
||||
$wgRightsIcon = "";
|
||||
## For attaching licensing metadata to pages, and displaying an
|
||||
## appropriate copyright notice / icon. GNU Free Documentation
|
||||
## License and Creative Commons licenses are supported so far.
|
||||
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
|
||||
$wgRightsUrl = "";
|
||||
$wgRightsText = "";
|
||||
$wgRightsIcon = "";
|
||||
|
||||
# Enable APCU caching
|
||||
$wgMainCacheType = CACHE_ACCEL;
|
||||
# Enable APCU caching
|
||||
$wgMainCacheType = CACHE_ACCEL;
|
||||
|
||||
# Enabled skins.
|
||||
${concatStringsSep "\n" (mapAttrsToList (k: v: "wfLoadSkin('${k}');") cfg.skins)}
|
||||
# Enabled skins.
|
||||
${concatStringsSep "\n" (mapAttrsToList (k: v: "wfLoadSkin('${k}');") cfg.skins)}
|
||||
|
||||
# Enabled extensions.
|
||||
${concatStringsSep "\n" (mapAttrsToList (k: v: "wfLoadExtension('${k}');") cfg.extensions)}
|
||||
# Enabled extensions.
|
||||
${concatStringsSep "\n" (mapAttrsToList (k: v: "wfLoadExtension('${k}');") cfg.extensions)}
|
||||
|
||||
|
||||
# End of automatically generated settings.
|
||||
# Add more configuration options below.
|
||||
# End of automatically generated settings.
|
||||
# Add more configuration options below.
|
||||
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
};
|
||||
|
||||
withTrailingSlash = str: if lib.hasSuffix "/" str then str else "${str}/";
|
||||
@@ -400,22 +412,30 @@ in
|
||||
"postgres"
|
||||
"mssql"
|
||||
"oracle"
|
||||
"sqlite"
|
||||
];
|
||||
default = "mysql";
|
||||
description = "Database engine to use. MySQL/MariaDB is the database of choice by MediaWiki developers.";
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = "Database host address.";
|
||||
type = types.nullOr types.str;
|
||||
default = if cfg.database.type == "sqlite" then null else "localhost";
|
||||
defaultText = ''"localhost"'';
|
||||
description = "Database host address. Used only if database type is not SQLite.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = if cfg.database.type == "mysql" then 3306 else 5432;
|
||||
type = types.nullOr types.port;
|
||||
default =
|
||||
if cfg.database.type == "mysql" then
|
||||
3306
|
||||
else if cfg.database.type != "sqlite" then
|
||||
5432
|
||||
else
|
||||
null;
|
||||
defaultText = literalExpression "3306";
|
||||
description = "Database host port.";
|
||||
description = "Database host port. Used only if database type is not SQLite.";
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
@@ -425,9 +445,17 @@ in
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "mediawiki";
|
||||
description = "Database user.";
|
||||
type = types.nullOr types.str;
|
||||
default = if cfg.database.type != "sqlite" then "mediawiki" else null;
|
||||
defaultText = literalExpression ''"mediawiki"'';
|
||||
description = "Database user. Used only if database type is not SQLite.";
|
||||
};
|
||||
|
||||
path = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = if cfg.database.type == "sqlite" then "${stateDir}/data" else null;
|
||||
defaultText = literalExpression ''"${stateDir}/data"'';
|
||||
description = "Path to store the MediaWiki database in if using SQLite.";
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
@@ -436,7 +464,7 @@ in
|
||||
example = "/run/keys/mediawiki-dbpassword";
|
||||
description = ''
|
||||
A file containing the password corresponding to
|
||||
{option}`database.user`.
|
||||
{option}`database.user`. Used only if database type is not SQLite.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -447,7 +475,7 @@ in
|
||||
If you only have access to a single database and wish to install more than
|
||||
one version of MediaWiki, or have other applications that also use the
|
||||
database, you can give the table names a unique prefix to stop any naming
|
||||
conflicts or confusion.
|
||||
conflicts or confusion. Only used if database type is MySQL.
|
||||
See <https://www.mediawiki.org/wiki/Manual:$wgDBprefix>.
|
||||
'';
|
||||
};
|
||||
@@ -462,7 +490,7 @@ in
|
||||
else
|
||||
null;
|
||||
defaultText = literalExpression "/run/mysqld/mysqld.sock";
|
||||
description = "Path to the unix socket file to use for authentication.";
|
||||
description = "Path to the unix socket file to use for authentication. Used only if database type is not SQLite.";
|
||||
};
|
||||
|
||||
createLocally = mkOption {
|
||||
@@ -570,6 +598,28 @@ in
|
||||
}
|
||||
];
|
||||
|
||||
warnings =
|
||||
lib.optional
|
||||
(
|
||||
cfg.database.type == "sqlite"
|
||||
&& (
|
||||
cfg.database.host != null
|
||||
|| cfg.database.port != null
|
||||
|| cfg.database.user != null
|
||||
|| cfg.database.passwordFile != null
|
||||
|| cfg.database.socket != null
|
||||
)
|
||||
)
|
||||
''
|
||||
The services.mediawiki.database options host, port, user, passwordFile, and socket will be ignored because services.mediawiki.database.type is "sqlite".
|
||||
''
|
||||
++ lib.optional (cfg.database.type != "sqlite" && cfg.database.path != null) ''
|
||||
The services.mediawiki.database.path option will be ignored because services.mediawiki.database.type is not "sqlite".
|
||||
''
|
||||
++ lib.optional (cfg.database.type == "mysql" && cfg.database.tablePrefix != null) ''
|
||||
The services.mediawiki.database.tablePrefix option has no effect when the services.mediawiki.database.type is not "mysql".
|
||||
'';
|
||||
|
||||
services.mediawiki = {
|
||||
path = with pkgs; [
|
||||
diffutils
|
||||
@@ -728,37 +778,52 @@ in
|
||||
after =
|
||||
optional (cfg.database.type == "mysql" && cfg.database.createLocally) "mysql.service"
|
||||
++ optional (cfg.database.type == "postgres" && cfg.database.createLocally) "postgresql.target";
|
||||
script = ''
|
||||
if ! test -e "${stateDir}/secret.key"; then
|
||||
tr -dc A-Za-z0-9 </dev/urandom 2>/dev/null | head -c 64 > ${stateDir}/secret.key
|
||||
fi
|
||||
script =
|
||||
let
|
||||
dbOptions =
|
||||
if cfg.database.type == "sqlite" then
|
||||
''
|
||||
--dbpath ${lib.escapeShellArg cfg.database.path} \
|
||||
--dbname ${lib.escapeShellArg cfg.database.name} \
|
||||
''
|
||||
else
|
||||
''
|
||||
--dbserver ${lib.escapeShellArg dbAddr} \
|
||||
--dbport ${toString cfg.database.port} \
|
||||
--dbname ${lib.escapeShellArg cfg.database.name} \
|
||||
${
|
||||
optionalString (
|
||||
cfg.database.tablePrefix != null
|
||||
) "--dbprefix ${lib.escapeShellArg cfg.database.tablePrefix}"
|
||||
} \
|
||||
--dbuser ${lib.escapeShellArg cfg.database.user} \
|
||||
${
|
||||
optionalString (
|
||||
cfg.database.passwordFile != null
|
||||
) "--dbpassfile ${lib.escapeShellArg cfg.database.passwordFile}"
|
||||
} \
|
||||
'';
|
||||
in
|
||||
''
|
||||
if ! test -e "${stateDir}/secret.key"; then
|
||||
tr -dc A-Za-z0-9 </dev/urandom 2>/dev/null | head -c 64 > ${stateDir}/secret.key
|
||||
fi
|
||||
|
||||
echo "exit( \$this->getPrimaryDB()->tableExists( 'user' ) ? 1 : 0 );" | \
|
||||
${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/run.php eval --conf ${mediawikiConfig} && \
|
||||
${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/run.php ${pkg}/share/mediawiki/maintenance/install.php \
|
||||
--confpath /tmp \
|
||||
--scriptpath / \
|
||||
--dbserver ${lib.escapeShellArg dbAddr} \
|
||||
--dbport ${toString cfg.database.port} \
|
||||
--dbname ${lib.escapeShellArg cfg.database.name} \
|
||||
${
|
||||
optionalString (
|
||||
cfg.database.tablePrefix != null
|
||||
) "--dbprefix ${lib.escapeShellArg cfg.database.tablePrefix}"
|
||||
} \
|
||||
--dbuser ${lib.escapeShellArg cfg.database.user} \
|
||||
${
|
||||
optionalString (
|
||||
cfg.database.passwordFile != null
|
||||
) "--dbpassfile ${lib.escapeShellArg cfg.database.passwordFile}"
|
||||
} \
|
||||
--passfile ${lib.escapeShellArg cfg.passwordFile} \
|
||||
--dbtype ${cfg.database.type} \
|
||||
${lib.escapeShellArg cfg.name} \
|
||||
admin
|
||||
${optionalString (cfg.database.type == "sqlite") "mkdir -p ${cfg.database.path}"}
|
||||
|
||||
${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/update.php --conf ${mediawikiConfig} --quick --skip-external-dependencies
|
||||
'';
|
||||
echo "exit( \$this->getPrimaryDB()->tableExists( 'user' ) ? 1 : 0 );" | \
|
||||
${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/run.php eval --conf ${mediawikiConfig} && \
|
||||
${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/run.php ${pkg}/share/mediawiki/maintenance/install.php \
|
||||
--confpath /tmp \
|
||||
--scriptpath / \
|
||||
${dbOptions} \
|
||||
--dbtype ${cfg.database.type} \
|
||||
--passfile ${lib.escapeShellArg cfg.passwordFile} \
|
||||
${lib.escapeShellArg cfg.name} \
|
||||
admin
|
||||
|
||||
${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/update.php --conf ${mediawikiConfig} --quick --skip-external-dependencies
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
|
||||
@@ -1218,6 +1218,7 @@ in
|
||||
owi = runTest ./owi.nix;
|
||||
owncast = runTest ./owncast.nix;
|
||||
oxidized = handleTest ./oxidized.nix { };
|
||||
oxwm = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./oxwm.nix;
|
||||
pacemaker = runTest ./pacemaker.nix;
|
||||
packagekit = runTest ./packagekit.nix;
|
||||
pairdrop = runTest ./web-apps/pairdrop.nix;
|
||||
|
||||
@@ -57,6 +57,21 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
sqlite = makeTest {
|
||||
name = "mediawiki-sqlite";
|
||||
nodes.machine = {
|
||||
services.mediawiki.database.type = "sqlite";
|
||||
};
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
machine.wait_for_unit("phpfpm-mediawiki.service")
|
||||
|
||||
page = machine.succeed("curl -fL http://localhost/")
|
||||
assert "MediaWiki has been installed" in page
|
||||
'';
|
||||
};
|
||||
|
||||
nohttpd = makeTest {
|
||||
name = "mediawiki-nohttpd";
|
||||
nodes.machine = {
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "oxwm";
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [
|
||||
sigmanificient
|
||||
tonybanters
|
||||
];
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
./common/x11.nix
|
||||
./common/user-account.nix
|
||||
];
|
||||
test-support.displayManager.auto.user = "alice";
|
||||
services.displayManager.defaultSession = lib.mkForce "oxwm";
|
||||
services.xserver.windowManager.oxwm.enable = true;
|
||||
|
||||
environment.systemPackages = [ pkgs.alacritty ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
with subtest("ensure x starts"):
|
||||
machine.wait_for_x()
|
||||
machine.wait_for_file("/home/alice/.Xauthority")
|
||||
machine.succeed("xauth merge ~alice/.Xauthority")
|
||||
|
||||
with subtest("ensure we can open a new terminal"):
|
||||
machine.sleep(2)
|
||||
machine.send_key("meta_l-ret")
|
||||
machine.wait_for_window(r"alice.*?machine")
|
||||
machine.sleep(2)
|
||||
machine.screenshot("terminal")
|
||||
'';
|
||||
}
|
||||
@@ -83,7 +83,7 @@ let
|
||||
|
||||
wait.until_not(EC.title_contains("Join organization"))
|
||||
|
||||
# NOTE: When testing this locally, the extensions must not be installed, otherwise this screen does not appear
|
||||
# NOTE: When testing this locally, the Bitwarden browser extension must not be installed, otherwise this screen does not appear
|
||||
click_when_unobstructed((By.XPATH, "//button[contains(., 'Add it later')]"))
|
||||
|
||||
click_when_unobstructed((By.XPATH, "//a[contains(., 'Skip to web app')]"))
|
||||
@@ -198,7 +198,6 @@ let
|
||||
{
|
||||
nodes,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
@@ -526,11 +526,11 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"hashicorp_azurerm": {
|
||||
"hash": "sha256-eVdx5W4kwC3SxLp3HbAHHKSP6afmqdeUSXwnIeyRw10=",
|
||||
"hash": "sha256-iaPwUzwoyxRrb8K6oqIlZxvJ0qiDmWvdh0pgQeDWn6I=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-azurerm",
|
||||
"rev": "v4.61.0",
|
||||
"rev": "v4.62.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
@@ -1238,13 +1238,13 @@
|
||||
"vendorHash": "sha256-E9e4+n12uSc12F428D8Oqe0iquTMywAY4DYWhSC+hmk="
|
||||
},
|
||||
"splunk-terraform_signalfx": {
|
||||
"hash": "sha256-dPhHzWOkNgIxlHSZm88zKkrgaXaXJ6RFdYeqX5zYSfU=",
|
||||
"hash": "sha256-lDFwuSZdc0gI5LotTSJk0FSBc9jn7WN43hXEsVHiwG0=",
|
||||
"homepage": "https://registry.terraform.io/providers/splunk-terraform/signalfx",
|
||||
"owner": "splunk-terraform",
|
||||
"repo": "terraform-provider-signalfx",
|
||||
"rev": "v9.24.0",
|
||||
"rev": "v9.25.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-/zsslNR7GDLFrtL4T0GLYhKTBof51ODavb/+PHdziS4="
|
||||
"vendorHash": "sha256-EOr4Ps0IYYOtRq19tt87NFfCEvJTaFBGb5B4mKMll7c="
|
||||
},
|
||||
"spotinst_spotinst": {
|
||||
"hash": "sha256-yDwEtptwNXu/IpoKUK98UkpivTgJaY1FfsshsVpaaOk=",
|
||||
@@ -1274,11 +1274,11 @@
|
||||
"vendorHash": "sha256-IR6KjFW5GbsOIm3EEFyx3ctwhbifZlcNaZeGhbeK/Wo="
|
||||
},
|
||||
"sysdiglabs_sysdig": {
|
||||
"hash": "sha256-BovhCb+01LJUE62geNJmDwpzV0ucQLpVWjXwfxsClyI=",
|
||||
"hash": "sha256-mzDVPOEu5nIOYykKvudGmByt0sY0Xl+FuSuQruQXTi0=",
|
||||
"homepage": "https://registry.terraform.io/providers/sysdiglabs/sysdig",
|
||||
"owner": "sysdiglabs",
|
||||
"repo": "terraform-provider-sysdig",
|
||||
"rev": "v3.4.0",
|
||||
"rev": "v3.4.3",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-rWiafaFE1RolO9JUN1WoW4EWJjR7kpfeVEOTLf21j50="
|
||||
},
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
fmt,
|
||||
libpsl,
|
||||
miniupnpc,
|
||||
crc32c,
|
||||
dht,
|
||||
libnatpmp,
|
||||
libiconv,
|
||||
@@ -48,7 +47,6 @@ let
|
||||
|
||||
apparmorRules = apparmorRulesFromClosure { name = "transmission-daemon"; } (
|
||||
[
|
||||
crc32c
|
||||
curl
|
||||
libdeflate
|
||||
libevent
|
||||
@@ -66,13 +64,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "transmission";
|
||||
version = "4.1.0";
|
||||
version = "4.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "transmission";
|
||||
repo = "transmission";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-glmwa06+jCyL9G2Rc58Yrvzo+/6Qu3bqwqy02RWgG64=";
|
||||
hash = "sha256-c3BOQ25xWIj4bLDQDnfzw9ZyuPemyHrK2Ua0jbOSuOw=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -99,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# Excluding gtest since it is hardcoded to vendored version. The rest of the listed libraries are not packaged.
|
||||
pushd third-party
|
||||
for f in *; do
|
||||
if [[ ! $f =~ googletest|wildmat|wide-integer|jsonsl ]]; then
|
||||
if [[ ! $f =~ googletest|wildmat|wide-integer|jsonsl|madler-crcany ]]; then
|
||||
rm -r "$f"
|
||||
fi
|
||||
done
|
||||
@@ -126,7 +124,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildInputs = [
|
||||
curl
|
||||
crc32c
|
||||
dht
|
||||
fast-float
|
||||
fmt
|
||||
|
||||
@@ -138,6 +138,8 @@ in
|
||||
description = "ZNC FiSH module";
|
||||
homepage = "https://github.com/oilslump/znc-fish";
|
||||
maintainers = [ ];
|
||||
# has no license
|
||||
license = lib.licenses.unfree;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -215,6 +217,8 @@ in
|
||||
meta = {
|
||||
description = "ZNC privmsg module";
|
||||
homepage = "https://github.com/kylef/znc-contrib";
|
||||
# has no license
|
||||
license = lib.licenses.unfree;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -7,18 +7,19 @@
|
||||
defusedxml,
|
||||
packaging,
|
||||
psutil,
|
||||
pyinstrument,
|
||||
setuptools,
|
||||
nixosTests,
|
||||
pytestCheckHook,
|
||||
which,
|
||||
podman,
|
||||
selenium,
|
||||
python-jose,
|
||||
# Optional dependencies:
|
||||
fastapi,
|
||||
jinja2,
|
||||
pysnmp,
|
||||
hddtemp,
|
||||
netifaces2, # IP module
|
||||
uvicorn,
|
||||
requests,
|
||||
prometheus-client,
|
||||
@@ -27,7 +28,7 @@
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "glances";
|
||||
version = "4.3.3";
|
||||
version = "4.5.0.5";
|
||||
pyproject = true;
|
||||
|
||||
disabled = isPyPy;
|
||||
@@ -36,7 +37,7 @@ buildPythonApplication rec {
|
||||
owner = "nicolargo";
|
||||
repo = "glances";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-RmGbd8Aa2jJ2DMrBUUoa8mPBa6bGnQd0s0y3p/zP0ng=";
|
||||
hash = "sha256-IHgMZw+X7C/72w4vXaP37GgnhLVg7EF5/sd9QlmE0NM=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
@@ -56,14 +57,15 @@ buildPythonApplication rec {
|
||||
|
||||
dependencies = [
|
||||
defusedxml
|
||||
netifaces2
|
||||
packaging
|
||||
psutil
|
||||
pyinstrument
|
||||
pysnmp
|
||||
fastapi
|
||||
uvicorn
|
||||
requests
|
||||
jinja2
|
||||
python-jose
|
||||
which
|
||||
prometheus-client
|
||||
shtab
|
||||
@@ -86,6 +88,20 @@ buildPythonApplication rec {
|
||||
"tests/test_webui.py"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# Upstream bug: diskio plugin doesn't check if args is None before accessing attributes
|
||||
# Bug report: https://github.com/nicolargo/glances/issues/3429
|
||||
"test_msg_curse_returns_list"
|
||||
"test_msg_curse_with_max_width"
|
||||
# Network test expects visible network interfaces
|
||||
# Default config hides loopback and interfaces without IP (glances.conf)
|
||||
# In Nix sandbox environment, this results in zero visible interfaces
|
||||
"test_glances_api_plugin_network"
|
||||
# Test always returns 3 plugin updates, but needs >=5 to not fail
|
||||
# May be an upstream bug, see: https://github.com/nicolargo/glances/issues/3430
|
||||
"test_perf_update"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://nicolargo.github.io/glances/";
|
||||
description = "Cross-platform curses-based monitoring tool";
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
_7zip-zstd,
|
||||
}:
|
||||
_7zip-zstd.override {
|
||||
enableUnfree = true;
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
asmc-linux,
|
||||
useAsmc ? !useUasm && stdenv.hostPlatform.isx86 && stdenv.hostPlatform.isLinux,
|
||||
uasm,
|
||||
useUasm ?
|
||||
enableUnfree
|
||||
&& stdenv.hostPlatform.isx86
|
||||
&& (stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isWindows),
|
||||
_experimental-update-script-combinators,
|
||||
nix-update-script,
|
||||
enableUnfree ? false,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "7zip-zstd";
|
||||
version = "25.01-v1.5.7-R4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mcmilk";
|
||||
repo = "7-Zip-zstd";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash =
|
||||
if enableUnfree then
|
||||
"sha256-qP4L5PIG7CHsmYbRock+cbCOGdgujUFG4LHenvvlqzw="
|
||||
else
|
||||
"sha256-R9AUWL35TPh0anyRDhnF28ZYG9FeOxntVIwnnW9e2xA=";
|
||||
# remove the unRAR related code from the src drv
|
||||
# > the license requires that you agree to these use restrictions,
|
||||
# > or you must remove the software (source and binary) from your hard disks
|
||||
# https://fedoraproject.org/wiki/Licensing:Unrar
|
||||
postFetch = lib.optionalString (!enableUnfree) ''
|
||||
rm -r $out/CPP/7zip/Compress/Rar*
|
||||
'';
|
||||
};
|
||||
|
||||
nativeBuildInputs =
|
||||
lib.optionals (!stdenv.hostPlatform.isWindows) [
|
||||
makeWrapper
|
||||
]
|
||||
++ lib.optionals useAsmc [ asmc-linux ]
|
||||
++ lib.optionals useUasm [ uasm ];
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"doc"
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"CC=${stdenv.cc.targetPrefix}cc"
|
||||
"CXX=${stdenv.cc.targetPrefix}c++"
|
||||
]
|
||||
++ lib.optionals useAsmc [
|
||||
"MY_ASM=asmc"
|
||||
]
|
||||
++ lib.optionals useUasm [
|
||||
"MY_ASM=uasm"
|
||||
]
|
||||
++ lib.optionals (stdenv.hostPlatform.isx86 && !useAsmc && !useUasm) [
|
||||
"USE_ASM="
|
||||
]
|
||||
# it's the compression code with the restriction, see DOC/License.txt
|
||||
++ lib.optionals (!enableUnfree) [ "DISABLE_RAR_COMPRESS=true" ]
|
||||
++ lib.optionals (stdenv.cc.isClang) [ "FLAGS_FLTO=-flto=thin" ]
|
||||
++ lib.optionals (stdenv.hostPlatform.isMinGW) [
|
||||
"IS_MINGW=1"
|
||||
"MSYSTEM=1"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postPatch = ''
|
||||
sed -i 's/-Werror//g' CPP/7zip/7zip_gcc.mak
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isMinGW ''
|
||||
substituteInPlace CPP/7zip/7zip_gcc.mak C/7zip_gcc_c.mak \
|
||||
--replace windres.exe ${stdenv.cc.targetPrefix}windres
|
||||
'';
|
||||
|
||||
buildPhase =
|
||||
let
|
||||
makefile = "../../cmpl_${
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
"mac"
|
||||
else if stdenv.cc.isClang then
|
||||
"clang"
|
||||
else
|
||||
"gcc"
|
||||
}${
|
||||
if stdenv.hostPlatform.isx86_64 then
|
||||
"_x64"
|
||||
else if stdenv.hostPlatform.isAarch64 then
|
||||
"_arm64"
|
||||
else if stdenv.hostPlatform.isi686 then
|
||||
"_x86"
|
||||
else
|
||||
""
|
||||
}.mak";
|
||||
in
|
||||
''
|
||||
runHook preBuild
|
||||
|
||||
for component in Bundles/{Alone,Alone2,Alone7z,Format7zF,SFXCon} UI/Console; do
|
||||
make -j $NIX_BUILD_CORES -C CPP/7zip/$component -f ${makefile} $makeFlags
|
||||
done
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase =
|
||||
let
|
||||
inherit (stdenv.hostPlatform) extensions isWindows;
|
||||
in
|
||||
''
|
||||
runHook preInstall
|
||||
|
||||
install -Dt "$out/${if isWindows then "bin" else "lib"}/7zip" \
|
||||
CPP/7zip/Bundles/Alone/b/*/7za${extensions.executable} \
|
||||
CPP/7zip/Bundles/Alone2/b/*/7zz${extensions.executable} \
|
||||
CPP/7zip/Bundles/Alone7z/b/*/7zr${extensions.executable} \
|
||||
CPP/7zip/Bundles/Format7zF/b/*/7z${extensions.sharedLibrary} \
|
||||
CPP/7zip/UI/Console/b/*/7z${extensions.executable}
|
||||
install -D CPP/7zip/Bundles/SFXCon/b/*/7zCon${extensions.executable} "$out/lib/7zip/7zCon.sfx"
|
||||
|
||||
${lib.optionalString (!isWindows) ''
|
||||
mkdir -p "$out/bin"
|
||||
for prog in 7za 7zz 7zr 7z; do
|
||||
makeWrapper "$out/lib/7zip/$prog" \
|
||||
"$out/bin/$prog"
|
||||
done
|
||||
''}
|
||||
|
||||
install -Dt "$out/share/doc/7zip" DOC/*.txt
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
passthru.updateScript = _experimental-update-script-combinators.sequence [
|
||||
(nix-update-script {
|
||||
attrPath = "_7zip-zstd";
|
||||
extraArgs = [ "--use-github-releases" ];
|
||||
})
|
||||
(nix-update-script {
|
||||
attrPath = "_7zip-zstd-rar";
|
||||
extraArgs = [ "--version=skip" ];
|
||||
})
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mcmilk/7-Zip-zstd";
|
||||
description = "7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard";
|
||||
changelog = "https://github.com/mcmilk/7-Zip-zstd/releases/tag/v${finalAttrs.version}";
|
||||
license =
|
||||
with lib.licenses;
|
||||
# p7zip code is largely lgpl2Plus
|
||||
# CPP/7zip/Compress/LzfseDecoder.cpp is bsd3
|
||||
[
|
||||
lgpl2Plus # and
|
||||
bsd3
|
||||
]
|
||||
++
|
||||
# and CPP/7zip/Compress/Rar* are unfree with the unRAR license restriction
|
||||
# the unRAR compression code is disabled by default
|
||||
lib.optionals enableUnfree [ unfreeRedistributable ];
|
||||
maintainers = with lib.maintainers; [
|
||||
ccicnce113424
|
||||
];
|
||||
platforms = lib.platforms.unix ++ lib.platforms.windows;
|
||||
broken = stdenv.hostPlatform.isWindows; # waiting for fixes in 26.00
|
||||
mainProgram = "7z";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,12 @@
|
||||
unpackCmdHooks+=(_try7zip)
|
||||
unpackCmdHooks+=(_tryUnpackDmg)
|
||||
|
||||
_try7zip() {
|
||||
if ! [[ $curSrc =~ \.7z$ ]]; then return 1; fi
|
||||
7z x "$curSrc"
|
||||
}
|
||||
|
||||
_tryUnpackDmg() {
|
||||
if ! [[ $curSrc =~ \.dmg$ ]]; then return 1; fi
|
||||
7z x "$curSrc"
|
||||
}
|
||||
@@ -1,182 +0,0 @@
|
||||
--- a/C/7zip_gcc_c.mak
|
||||
+++ b/C/7zip_gcc_c.mak
|
||||
@@ -106,7 +106,7 @@
|
||||
endif
|
||||
|
||||
|
||||
-LIB2 = -lOle32 -loleaut32 -luuid -ladvapi32 -lUser32 -lShell32
|
||||
+LIB2 = -lole32 -loleaut32 -luuid -ladvapi32 -luser32 -lshell32
|
||||
|
||||
CFLAGS_EXTRA = -DUNICODE -D_UNICODE
|
||||
# -Wno-delete-non-virtual-dtor
|
||||
--- a/C/7zVersion.rc
|
||||
+++ b/C/7zVersion.rc
|
||||
@@ -5,7 +5,7 @@
|
||||
#define MY_VFT_APP 0x00000001L
|
||||
#define MY_VFT_DLL 0x00000002L
|
||||
|
||||
-// #include <WinVer.h>
|
||||
+// #include <winver.h>
|
||||
|
||||
#ifndef MY_VERSION
|
||||
#include "7zVersion.h"
|
||||
--- a/C/Util/7zipInstall/resource.rc
|
||||
+++ b/C/Util/7zipInstall/resource.rc
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <windows.h>
|
||||
// #include <winnt.h>
|
||||
// #include <WinUser.h>
|
||||
-#include <CommCtrl.h>
|
||||
+#include <commctrl.h>
|
||||
|
||||
#define USE_COPYRIGHT_CR
|
||||
#include "../../7zVersion.rc"
|
||||
--- a/C/Util/7zipInstall/resource.rc.rej
|
||||
+++ b/C/Util/7zipInstall/resource.rc.rej
|
||||
@@ -0,0 +1,10 @@
|
||||
+--- C/Util/7zipInstall/resource.rc
|
||||
++++ C/Util/7zipInstall/resource.rc
|
||||
+@@ -1,6 +1,6 @@
|
||||
+ #include <winnt.h>
|
||||
+ #include <WinUser.h>
|
||||
+-#include <CommCtrl.h>
|
||||
++#include <commctrl.h>
|
||||
+
|
||||
+ #define USE_COPYRIGHT_CR
|
||||
+ #include "../../7zVersion.rc"
|
||||
--- a/C/Util/7zipUninstall/resource.rc
|
||||
+++ b/C/Util/7zipUninstall/resource.rc
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <windows.h>
|
||||
// #include <winnt.h>
|
||||
// #include <WinUser.h>
|
||||
-#include <CommCtrl.h>
|
||||
+#include <commctrl.h>
|
||||
|
||||
#define USE_COPYRIGHT_CR
|
||||
#include "../../7zVersion.rc"
|
||||
--- a/C/Util/7zipUninstall/resource.rc.rej
|
||||
+++ b/C/Util/7zipUninstall/resource.rc.rej
|
||||
@@ -0,0 +1,10 @@
|
||||
+--- C/Util/7zipUninstall/resource.rc
|
||||
++++ C/Util/7zipUninstall/resource.rc
|
||||
+@@ -1,6 +1,6 @@
|
||||
+ #include <winnt.h>
|
||||
+ #include <WinUser.h>
|
||||
+-#include <CommCtrl.h>
|
||||
++#include <commctrl.h>
|
||||
+
|
||||
+ #define USE_COPYRIGHT_CR
|
||||
+ #include "../../7zVersion.rc"
|
||||
--- a/CPP/7zip/7zip_gcc.mak
|
||||
+++ b/CPP/7zip/7zip_gcc.mak
|
||||
@@ -142,8 +142,8 @@
|
||||
DEL_OBJ_EXE = -$(RM) $(O)\*.o $(O)\$(PROG).exe $(O)\$(PROG).dll
|
||||
endif
|
||||
|
||||
-LIB2_GUI = -lOle32 -lGdi32 -lComctl32 -lComdlg32 -lShell32 $(LIB_HTMLHELP)
|
||||
-LIB2 = -loleaut32 -luuid -ladvapi32 -lUser32 $(LIB2_GUI)
|
||||
+LIB2_GUI = -lole32 -lgdi32 -lcomctl32 -lcomdlg32 -lshell32 $(LIB_HTMLHELP)
|
||||
+LIB2 = -loleaut32 -luuid -ladvapi32 -luser32 $(LIB2_GUI)
|
||||
|
||||
# v24.00: -DUNICODE and -D_UNICODE are defined in precompilation header files
|
||||
# CXXFLAGS_EXTRA = -DUNICODE -D_UNICODE
|
||||
--- a/CPP/7zip/Crypto/RandGen.cpp
|
||||
+++ b/CPP/7zip/Crypto/RandGen.cpp
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#ifdef USE_STATIC_RtlGenRandom
|
||||
|
||||
-// #include <NTSecAPI.h>
|
||||
+// #include <ntsecapi.h>
|
||||
|
||||
EXTERN_C_BEGIN
|
||||
#ifndef RtlGenRandom
|
||||
--- a/CPP/7zip/GuiCommon.rc
|
||||
+++ b/CPP/7zip/GuiCommon.rc
|
||||
@@ -4,7 +4,7 @@
|
||||
// #include <WinUser.h>
|
||||
|
||||
// for Windows CE:
|
||||
-#include <CommCtrl.h>
|
||||
+#include <commctrl.h>
|
||||
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
--- a/CPP/7zip/UI/FileManager/PanelItemOpen.cpp
|
||||
+++ b/CPP/7zip/UI/FileManager/PanelItemOpen.cpp
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
#include "../../../Common/MyWindows.h"
|
||||
|
||||
-#include <TlHelp32.h>
|
||||
+#include <tlhelp32.h>
|
||||
|
||||
#include "../../../Common/IntToString.h"
|
||||
|
||||
--- a/CPP/7zip/UI/FileManager/SysIconUtils.h
|
||||
+++ b/CPP/7zip/UI/FileManager/SysIconUtils.h
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "../../../Common/MyWindows.h"
|
||||
|
||||
-#include <CommCtrl.h>
|
||||
+#include <commctrl.h>
|
||||
|
||||
#include "../../../Common/MyString.h"
|
||||
|
||||
--- a/CPP/Windows/Control/ComboBox.h
|
||||
+++ b/CPP/Windows/Control/ComboBox.h
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "../../Common/MyWindows.h"
|
||||
|
||||
-#include <CommCtrl.h>
|
||||
+#include <commctrl.h>
|
||||
|
||||
#include "../Window.h"
|
||||
|
||||
--- a/CPP/Windows/Control/ImageList.h
|
||||
+++ b/CPP/Windows/Control/ImageList.h
|
||||
@@ -3,7 +3,7 @@
|
||||
#ifndef ZIP7_INC_WINDOWS_CONTROL_IMAGE_LIST_H
|
||||
#define ZIP7_INC_WINDOWS_CONTROL_IMAGE_LIST_H
|
||||
|
||||
-#include <CommCtrl.h>
|
||||
+#include <commctrl.h>
|
||||
|
||||
#include "../Defs.h"
|
||||
|
||||
--- a/CPP/Windows/Control/ListView.h
|
||||
+++ b/CPP/Windows/Control/ListView.h
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "../../Common/MyWindows.h"
|
||||
|
||||
-#include <CommCtrl.h>
|
||||
+#include <commctrl.h>
|
||||
|
||||
#include "../Window.h"
|
||||
|
||||
--- a/CPP/Windows/Control/ProgressBar.h
|
||||
+++ b/CPP/Windows/Control/ProgressBar.h
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "../../Common/MyWindows.h"
|
||||
|
||||
-#include <CommCtrl.h>
|
||||
+#include <commctrl.h>
|
||||
|
||||
#include "../Window.h"
|
||||
|
||||
--- a/CPP/Windows/SecurityUtils.h
|
||||
+++ b/CPP/Windows/SecurityUtils.h
|
||||
@@ -3,7 +3,7 @@
|
||||
#ifndef ZIP7_INC_WINDOWS_SECURITY_UTILS_H
|
||||
#define ZIP7_INC_WINDOWS_SECURITY_UTILS_H
|
||||
|
||||
-#include <NTSecAPI.h>
|
||||
+#include <ntsecapi.h>
|
||||
|
||||
#include "Defs.h"
|
||||
|
||||
@@ -3,9 +3,16 @@
|
||||
lib,
|
||||
fetchzip,
|
||||
|
||||
# Only useful on Linux x86/x86_64, and brings in non‐free Open Watcom
|
||||
# Free MASM-compatible assembler
|
||||
asmc-linux,
|
||||
useAsmc ? !useUasm && stdenv.hostPlatform.isx86 && stdenv.hostPlatform.isLinux,
|
||||
|
||||
# Unfree Open-Watcom licensed assembler
|
||||
uasm,
|
||||
useUasm ? false,
|
||||
useUasm ?
|
||||
enableUnfree
|
||||
&& stdenv.hostPlatform.isx86
|
||||
&& (stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isWindows),
|
||||
|
||||
# RAR code is under non-free unRAR license
|
||||
# see the meta.license section below for more details
|
||||
@@ -16,26 +23,34 @@
|
||||
}:
|
||||
|
||||
let
|
||||
makefile =
|
||||
{
|
||||
aarch64-darwin = "../../cmpl_mac_arm64.mak";
|
||||
x86_64-darwin = "../../cmpl_mac_x64.mak";
|
||||
aarch64-linux = "../../cmpl_gcc_arm64.mak";
|
||||
i686-linux = "../../cmpl_gcc_x86.mak";
|
||||
x86_64-linux = "../../cmpl_gcc_x64.mak";
|
||||
}
|
||||
.${stdenv.hostPlatform.system} or "../../cmpl_gcc.mak"; # generic build
|
||||
makefile = "../../cmpl_${
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
"mac"
|
||||
else if stdenv.cc.isClang then
|
||||
"clang"
|
||||
else
|
||||
"gcc"
|
||||
}${
|
||||
if stdenv.hostPlatform.isx86_64 then
|
||||
"_x64"
|
||||
else if stdenv.hostPlatform.isAarch64 then
|
||||
"_arm64"
|
||||
else if stdenv.hostPlatform.isi686 then
|
||||
"_x86"
|
||||
else
|
||||
""
|
||||
}.mak";
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "7zz";
|
||||
version = "25.01";
|
||||
version = "26.00";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://7-zip.org/a/7z${lib.replaceStrings [ "." ] [ "" ] finalAttrs.version}-src.tar.xz";
|
||||
hash =
|
||||
{
|
||||
free = "sha256-A1BBdSGepobpguzokL1zpjce5EOl0zqABYciv9zCOac=";
|
||||
unfree = "sha256-Jkj6T4tMols33uyJSOCcVmxh5iBYYCO/rq9dF4NDMko=";
|
||||
free = "sha256-p914FrQPb+h1a+7YIL8ms2YoIfoS1hTCeLLeBF4DjwY=";
|
||||
unfree = "sha256-CIgPhjRSE9A0ABQQx1YTZgO+DNb3BDxRo5xOQmuzBuI=";
|
||||
}
|
||||
.${if enableUnfree then "unfree" else "free"};
|
||||
stripRoot = false;
|
||||
@@ -48,10 +63,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
};
|
||||
|
||||
patches = [
|
||||
./fix-cross-mingw-build.patch
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString stdenv.hostPlatform.isMinGW ''
|
||||
substituteInPlace CPP/7zip/7zip_gcc.mak C/7zip_gcc_c.mak \
|
||||
--replace windres.exe ${stdenv.cc.targetPrefix}windres
|
||||
@@ -88,8 +99,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"CC=${stdenv.cc.targetPrefix}cc"
|
||||
"CXX=${stdenv.cc.targetPrefix}c++"
|
||||
]
|
||||
++ lib.optionals useUasm [ "MY_ASM=uasm" ]
|
||||
++ lib.optionals (!useUasm && stdenv.hostPlatform.isx86) [ "USE_ASM=" ]
|
||||
++ lib.optionals useAsmc [
|
||||
"MY_ASM=asmc"
|
||||
]
|
||||
++ lib.optionals useUasm [
|
||||
"MY_ASM=uasm"
|
||||
]
|
||||
++ lib.optionals (stdenv.hostPlatform.isx86 && !useAsmc && !useUasm) [
|
||||
"USE_ASM="
|
||||
]
|
||||
# it's the compression code with the restriction, see DOC/License.txt
|
||||
++ lib.optionals (!enableUnfree) [ "DISABLE_RAR_COMPRESS=true" ]
|
||||
++ lib.optionals (stdenv.hostPlatform.isMinGW) [
|
||||
@@ -97,7 +115,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"MSYSTEM=1"
|
||||
];
|
||||
|
||||
nativeBuildInputs = lib.optionals useUasm [ uasm ];
|
||||
nativeBuildInputs = lib.optionals useAsmc [ asmc-linux ] ++ lib.optionals useUasm [ uasm ];
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"doc"
|
||||
];
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
@@ -136,7 +159,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++
|
||||
# and CPP/7zip/Compress/Rar* are unfree with the unRAR license restriction
|
||||
# the unRAR compression code is disabled by default
|
||||
lib.optionals enableUnfree [ unfree ];
|
||||
lib.optionals enableUnfree [ unfreeRedistributable ];
|
||||
maintainers = with lib.maintainers; [
|
||||
anna328p
|
||||
jk
|
||||
|
||||
+509
@@ -0,0 +1,509 @@
|
||||
[
|
||||
{
|
||||
"pname": "AtkSharp",
|
||||
"version": "3.24.24.34",
|
||||
"hash": "sha256-GrOzO4YDMKJNHAnqLF+c44iGYlvazGTOuRLUnuLbwco="
|
||||
},
|
||||
{
|
||||
"pname": "CairoSharp",
|
||||
"version": "3.24.24.34",
|
||||
"hash": "sha256-/80xbYSPU8+6twoXRjES8PtV7dKB6fQoe6EqBmawzV8="
|
||||
},
|
||||
{
|
||||
"pname": "DebounceThrottle",
|
||||
"version": "2.0.0",
|
||||
"hash": "sha256-STqGsbo9T4Xb7LywHwZei9hTVD2kqaxStobW+KWebIg="
|
||||
},
|
||||
{
|
||||
"pname": "Eto.Forms",
|
||||
"version": "2.6.1",
|
||||
"hash": "sha256-Dhp61n6aIgp6TYUhxgyM9ujSb0OfBsIMKi14Zo32jF0=",
|
||||
"url": "https://www.myget.org/F/eto/api/v3/flatcontainer/eto.forms/2.6.1/eto.forms.2.6.1.nupkg"
|
||||
},
|
||||
{
|
||||
"pname": "Eto.Platform.Gtk",
|
||||
"version": "2.6.1",
|
||||
"hash": "sha256-Shn2PnJVM77ki3C4STwQeA2nmXFUXvm4ffmhz/xLXXY=",
|
||||
"url": "https://www.myget.org/F/eto/api/v3/flatcontainer/eto.platform.gtk/2.6.1/eto.platform.gtk.2.6.1.nupkg"
|
||||
},
|
||||
{
|
||||
"pname": "GdkSharp",
|
||||
"version": "3.24.24.34",
|
||||
"hash": "sha256-pQOp2jft19vVN+gSjD0tHfNGucss7ruy1xyys6IHHWQ="
|
||||
},
|
||||
{
|
||||
"pname": "GioSharp",
|
||||
"version": "3.24.24.34",
|
||||
"hash": "sha256-/fZBfaKXlrdBuNh1/h0s1++5Ek4OnznXvzJx0uTbHQo="
|
||||
},
|
||||
{
|
||||
"pname": "GLibSharp",
|
||||
"version": "3.24.24.34",
|
||||
"hash": "sha256-eAYUYNHF37nIJnk7aRffzBj8b/rluqXERYy358YAd08="
|
||||
},
|
||||
{
|
||||
"pname": "GtkSharp",
|
||||
"version": "3.24.24.34",
|
||||
"hash": "sha256-i0XZfzUt9GNaZD1uXNd8x+pb1mPJqYrxQd15XOuHSAA="
|
||||
},
|
||||
{
|
||||
"pname": "Gw2Sharp",
|
||||
"version": "0.6.0",
|
||||
"hash": "sha256-+AOhGe9T+Cpxf1bBxca8vpHCqLh0ayOeCJz/1yVM1Rw="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.NETCore.Platforms",
|
||||
"version": "1.1.0",
|
||||
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.NETCore.Platforms",
|
||||
"version": "1.1.1",
|
||||
"hash": "sha256-8hLiUKvy/YirCWlFwzdejD2Db3DaXhHxT7GSZx/znJg="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.NETCore.Targets",
|
||||
"version": "1.1.0",
|
||||
"hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Win32.Primitives",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg="
|
||||
},
|
||||
{
|
||||
"pname": "Newtonsoft.Json",
|
||||
"version": "13.0.2",
|
||||
"hash": "sha256-ESyjt/R7y9dDvvz5Sftozk+e/3Otn38bOcLGGh69Ot0="
|
||||
},
|
||||
{
|
||||
"pname": "PangoSharp",
|
||||
"version": "3.24.24.34",
|
||||
"hash": "sha256-/KdH3SA/11bkwPe/AXRph4v4a2cjbUjDvo4+OhkJEOQ="
|
||||
},
|
||||
{
|
||||
"pname": "RestSharp",
|
||||
"version": "106.12.0",
|
||||
"hash": "sha256-NGzveByJvCRtHlI2C8d/mLs3akyMm77NER8TUG6HiD4="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Collections",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Diagnostics.Tracing",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-dsmTLGvt8HqRkDWP8iKVXJCS+akAzENGXKPV18W2RgI="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Globalization",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Globalization.Calendars",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-AYh39tgXJVFu8aLi9Y/4rK8yWMaza4S4eaxjfcuEEL4="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.IO",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Reflection",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Reflection.Primitives",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Resources.ResourceManager",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Runtime",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Runtime.Handles",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Runtime.InteropServices",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Text.Encoding",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Text.Encoding.Extensions",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-6MYj0RmLh4EVqMtO/MRqBi0HOn5iG4x9JimgCCJ+EFM="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.any.System.Threading.Tasks",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-EbnOqPOrAgI9eNheXLR++VnY4pHzMsEKw1dFPJ/Fl2c="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-mVg02TNvJc1BuHU03q3fH3M6cMgkKaQPBxraSHl/Btg="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-g9Uiikrl+M40hYe0JMlGHe/lrR0+nN05YF64wzLmBBA="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.native.System",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.native.System.IO.Compression",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-DWnXs4vlKoU6WxxvCArTJupV6sX3iBbZh8SbqfHace8="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.native.System.Net.Http",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-c556PyheRwpYhweBjSfIwEyZHnAUB8jWioyKEcp/2dg="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.native.System.Security.Cryptography.Apple",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-2IhBv0i6pTcOyr8FFIyfPEaaCHUmJZ8DYwLUwJ+5waw="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-xqF6LbbtpzNC9n1Ua16PnYgXHU0LvblEROTfK4vIxX8="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-aJBu6Frcg6webvzVcKNoUP1b462OAqReF2giTSyBzCQ="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-Mpt7KN2Kq51QYOEVesEjhWcCGTqWckuPf8HlQ110qLY="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-serkd4A7F6eciPiPJtUyJyxzdAtupEcWIZQ9nptEzIM="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-JvMltmfVC53mCZtKDHE69G3RT6Id28hnskntP9MMP9U="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-QfFxWTVRNBhN4Dm1XRbCf+soNQpy81PsZed3x6op/bI="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-EaJHVc9aDZ6F7ltM2JwlIuiJvqM67CKRq682iVSo+pU="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-PHR0+6rIjJswn89eoiWYY1DuU8u6xRJLrtjykAMuFmA="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.2",
|
||||
"hash": "sha256-LFkh7ua7R4rI5w2KGjcHlGXLecsncCy6kDXLuy4qD/Q="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.unix.Microsoft.Win32.Primitives",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-LZb23lRXzr26tRS5aA0xyB08JxiblPDoA7HBvn6awXg="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.unix.System.Diagnostics.Debug",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.unix.System.IO.FileSystem",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-Pf4mRl6YDK2x2KMh0WdyNgv0VUNdSKVDLlHqozecy5I="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.unix.System.Net.Primitives",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-pHJ+I6i16MV6m77uhTC6GPY6jWGReE3SSP3fVB59ti0="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.unix.System.Private.Uri",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs="
|
||||
},
|
||||
{
|
||||
"pname": "runtime.unix.System.Runtime.Extensions",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4="
|
||||
},
|
||||
{
|
||||
"pname": "System.Buffers",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk="
|
||||
},
|
||||
{
|
||||
"pname": "System.Collections",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc="
|
||||
},
|
||||
{
|
||||
"pname": "System.Collections.Concurrent",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI="
|
||||
},
|
||||
{
|
||||
"pname": "System.ComponentModel.Annotations",
|
||||
"version": "5.0.0",
|
||||
"hash": "sha256-0pST1UHgpeE6xJrYf5R+U7AwIlH3rVC3SpguilI/MAg="
|
||||
},
|
||||
{
|
||||
"pname": "System.Diagnostics.Debug",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM="
|
||||
},
|
||||
{
|
||||
"pname": "System.Diagnostics.DiagnosticSource",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw="
|
||||
},
|
||||
{
|
||||
"pname": "System.Diagnostics.Tracing",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q="
|
||||
},
|
||||
{
|
||||
"pname": "System.Globalization",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="
|
||||
},
|
||||
{
|
||||
"pname": "System.Globalization.Calendars",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc="
|
||||
},
|
||||
{
|
||||
"pname": "System.Globalization.Extensions",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk="
|
||||
},
|
||||
{
|
||||
"pname": "System.IO",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY="
|
||||
},
|
||||
{
|
||||
"pname": "System.IO.Compression",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA="
|
||||
},
|
||||
{
|
||||
"pname": "System.IO.FileSystem",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw="
|
||||
},
|
||||
{
|
||||
"pname": "System.IO.FileSystem.Primitives",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg="
|
||||
},
|
||||
{
|
||||
"pname": "System.Linq",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A="
|
||||
},
|
||||
{
|
||||
"pname": "System.Net.Http",
|
||||
"version": "4.3.4",
|
||||
"hash": "sha256-FMoU0K7nlPLxoDju0NL21Wjlga9GpnAoQjsFhFYYt00="
|
||||
},
|
||||
{
|
||||
"pname": "System.Net.Primitives",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE="
|
||||
},
|
||||
{
|
||||
"pname": "System.Private.Uri",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM="
|
||||
},
|
||||
{
|
||||
"pname": "System.Reflection",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY="
|
||||
},
|
||||
{
|
||||
"pname": "System.Reflection.Primitives",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM="
|
||||
},
|
||||
{
|
||||
"pname": "System.Resources.ResourceManager",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo="
|
||||
},
|
||||
{
|
||||
"pname": "System.Runtime",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg="
|
||||
},
|
||||
{
|
||||
"pname": "System.Runtime.Extensions",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o="
|
||||
},
|
||||
{
|
||||
"pname": "System.Runtime.Handles",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms="
|
||||
},
|
||||
{
|
||||
"pname": "System.Runtime.InteropServices",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI="
|
||||
},
|
||||
{
|
||||
"pname": "System.Runtime.Numerics",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.Cryptography.Algorithms",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-tAJvNSlczYBJ3Ed24Ae27a55tq/n4D3fubNQdwcKWA8="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.Cryptography.Cng",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-u17vy6wNhqok91SrVLno2M1EzLHZm6VMca85xbVChsw="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.Cryptography.Csp",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-oefdTU/Z2PWU9nlat8uiRDGq/PGZoSPRgkML11pmvPQ="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.Cryptography.Encoding",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-Yuge89N6M+NcblcvXMeyHZ6kZDfwBv3LPMDiF8HhJss="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.Cryptography.OpenSsl",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-DL+D2sc2JrQiB4oAcUggTFyD8w3aLEjJfod5JPe+Oz4="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.Cryptography.Primitives",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-fnFi7B3SnVj5a+BbgXnbjnGNvWrCEU6Hp/wjsjWz318="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.Cryptography.X509Certificates",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-MG3V/owDh273GCUPsGGraNwaVpcydupl3EtPXj6TVG0="
|
||||
},
|
||||
{
|
||||
"pname": "System.Text.Encoding",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg="
|
||||
},
|
||||
{
|
||||
"pname": "System.Text.Encoding.Extensions",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc="
|
||||
},
|
||||
{
|
||||
"pname": "System.Threading",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc="
|
||||
},
|
||||
{
|
||||
"pname": "System.Threading.Tasks",
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
lib,
|
||||
buildDotnetModule,
|
||||
fetchFromGitHub,
|
||||
dotnetCorePackages,
|
||||
wrapGAppsHook3,
|
||||
gtk3,
|
||||
libnotify,
|
||||
icoutils,
|
||||
nix-update-script,
|
||||
copyDesktopItems,
|
||||
makeDesktopItem,
|
||||
}:
|
||||
buildDotnetModule (finalAttrs: {
|
||||
pname = "arcdps-log-manager";
|
||||
version = "1.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gw2scratch";
|
||||
repo = "evtc";
|
||||
tag = "manager-v${finalAttrs.version}";
|
||||
hash = "sha256-z7SuE+MPhN4/XW3CtYabbAd2ZjL2M/ii+VCdyUUukoA=";
|
||||
};
|
||||
|
||||
nugetDeps = ./deps.json;
|
||||
|
||||
projectFile = "ArcdpsLogManager.Gtk/ArcdpsLogManager.Gtk.csproj";
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_8_0;
|
||||
dotnet-runtime = dotnetCorePackages.runtime_8_0;
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapGAppsHook3
|
||||
icoutils
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
runtimeDeps = [
|
||||
gtk3
|
||||
libnotify
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/icons/hicolor/128x128/apps
|
||||
icotool -x $src/ArcdpsLogManager/Images/program_icon.ico
|
||||
cp program_icon_1_128x128x32.png $out/share/icons/hicolor/128x128/apps/arcdps-log-manager.png
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
desktopName = "arcdps Log Manager";
|
||||
genericName = "arcdps Log Manager";
|
||||
exec = "GW2Scratch.ArcdpsLogManager.Gtk";
|
||||
name = "arcdps Log Manager";
|
||||
icon = "arcdps-log-manager";
|
||||
})
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [ "--version-regex=manager-v(.*)" ];
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Manager for Guild Wars 2 log files";
|
||||
longDescription = ''
|
||||
Manager for all your recorded logs. Filter logs, upload them with one click, find interesting statistics.
|
||||
'';
|
||||
homepage = "https://gw2scratch.com/tools/manager";
|
||||
changelog = "https://github.com/gw2scratch/evtc/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.Blu3 ];
|
||||
mainProgram = "GW2Scratch.ArcdpsLogManager.Gtk";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
pname = "asmc-linux";
|
||||
version = "2.36.25";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nidud";
|
||||
repo = "asmc_linux";
|
||||
rev = "4ee70bde4439bdd9c772d08527dba6d50f2e5a88";
|
||||
hash = "sha256-/yJC1OQGRgy9T/U2VB0MohSsD1ImLnHYM/8Y8fIWhVE=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dt $out/bin ./asmc
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "MASM-compatible assembler";
|
||||
homepage = "https://github.com/nidud/asmc_linux";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ ccicnce113424 ];
|
||||
platforms = with lib.systems.inspect; patternLogicalAnd patterns.isx86_64 patterns.isLinux;
|
||||
mainProgram = "asmc";
|
||||
};
|
||||
}
|
||||
@@ -32,6 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
./bootstrap --gnulib-srcdir=.gnulib
|
||||
'';
|
||||
|
||||
configureFlags = lib.optionals stdenv.buildPlatform.isDarwin [ "--disable-gnulib-tests" ];
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
bison
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cardinal";
|
||||
version = "26.01";
|
||||
version = "26.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/DISTRHO/Cardinal/releases/download/${finalAttrs.version}/cardinal+deps-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-KWQc+pcSMebP85yOtQ812qHAwaB6ZOvPpwsxG+myzDo=";
|
||||
hash = "sha256-4xjRCYN6Y7YtFc4gCd8F7CQxB02PLZQ6DN59rZVPYh0=";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# This file was generated by swiftpm2nix.
|
||||
{
|
||||
workspaceStateFile = ./workspace-state.json;
|
||||
hashes = {
|
||||
"swift-argument-parser" = "sha256-lWQ9mzfRxHcy00Cqyrsm9rOlQzkpU1lNBmiK7MMp6dU=";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"object": {
|
||||
"artifacts": [],
|
||||
"dependencies": [
|
||||
{
|
||||
"basedOn": null,
|
||||
"packageRef": {
|
||||
"identity": "swift-argument-parser",
|
||||
"kind": "remoteSourceControl",
|
||||
"location": "https://github.com/apple/swift-argument-parser",
|
||||
"name": "swift-argument-parser"
|
||||
},
|
||||
"state": {
|
||||
"checkoutState": {
|
||||
"revision": "f3c9084a71ef4376f2fabbdf1d3d90a49f1fabdb",
|
||||
"version": "1.1.2"
|
||||
},
|
||||
"name": "sourceControlCheckout"
|
||||
},
|
||||
"subpath": "swift-argument-parser"
|
||||
}
|
||||
]
|
||||
},
|
||||
"version": 6
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
nix-update-script,
|
||||
stdenv,
|
||||
swift,
|
||||
swiftPackages,
|
||||
swiftpm,
|
||||
swiftpm2nix,
|
||||
}:
|
||||
let
|
||||
generated = swiftpm2nix.helpers ./generated;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cgtcalc";
|
||||
version = "0-unstable-2025-10-11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattjgalloway";
|
||||
repo = "cgtcalc";
|
||||
# Repo has no tags or releases.
|
||||
# This is the last commit before requiring Swift 6
|
||||
rev = "1cf63741ddc0a5070680cb1339ad0abff0b7d69b";
|
||||
hash = "sha256-+qgvl5y9ipVQIZlLZbkzkqb9bO7X9VGDvVsloOLZU/k=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
swift
|
||||
swiftpm
|
||||
];
|
||||
|
||||
configurePhase = generated.configure;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
cp $(swiftpmBinPath)/cgtcalc $out/bin/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
swiftPackages.XCTest
|
||||
];
|
||||
|
||||
# libIndexStore.so: cannot open shared object file: No such file or directory
|
||||
# https://github.com/NixOS/nixpkgs/issues/379859
|
||||
doCheck = false;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "UK capital gains tax calculator written in Swift";
|
||||
homepage = "https://github.com/mattjgalloway/cgtcalc";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.dwoffinden ];
|
||||
mainProgram = "cgtcalc";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
})
|
||||
@@ -18,18 +18,19 @@
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cinny-desktop";
|
||||
# We have to be using the same version as cinny-web or this isn't going to work.
|
||||
version = "4.10.2";
|
||||
version = "4.10.5";
|
||||
|
||||
# nixpkgs-update: no auto update
|
||||
src = fetchFromGitHub {
|
||||
owner = "cinnyapp";
|
||||
repo = "cinny-desktop";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-M1p8rwdNEsKvZ1ssxsFyfiIBS8tKrXhuz85CKM4dSRw=";
|
||||
hash = "sha256-DRSafPNED9fpm3w5K4a9r8581xMpttfo7BEDBIJ87Kc=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src-tauri";
|
||||
|
||||
cargoHash = "sha256-Ie6xq21JoJ37j/BjdVrsiJ3JULVEV5ZwN3hf9NhfXVA=";
|
||||
cargoHash = "sha256-q6YMAjK+BBYBpk8menA1sM3x/FCnAh40t70fs9knnRo=";
|
||||
|
||||
postPatch =
|
||||
let
|
||||
@@ -87,6 +88,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
homepage = "https://github.com/cinnyapp/cinny-desktop";
|
||||
maintainers = with lib.maintainers; [
|
||||
qyriad
|
||||
rebmit
|
||||
ryand56
|
||||
];
|
||||
license = lib.licenses.agpl3Only;
|
||||
|
||||
@@ -14,18 +14,20 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "cinny-unwrapped";
|
||||
version = "4.10.3";
|
||||
# Remember to update cinny-desktop when bumping this version.
|
||||
version = "4.10.5";
|
||||
|
||||
# nixpkgs-update: no auto update
|
||||
src = fetchFromGitHub {
|
||||
owner = "cinnyapp";
|
||||
repo = "cinny";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ZztZ/znJUwgYlvv5h9uxNZvQrkUMVbMG6R+HbRtSXHM=";
|
||||
hash = "sha256-Napy3AcsLRDZPcBh3oq1U30FNtvoNtob0+AZtZSvcbM=";
|
||||
};
|
||||
|
||||
nodejs = nodejs_22;
|
||||
|
||||
npmDepsHash = "sha256-Spt2+sQcoPwy1tU8ztqJHZS9ITX9avueYDVKE7BFYy4=";
|
||||
npmDepsHash = "sha256-2Lrd0jAwAH6HkwLHyivqwaEhcpFAIALuno+MchSIfxo=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3
|
||||
@@ -50,7 +52,10 @@ buildNpmPackage rec {
|
||||
meta = {
|
||||
description = "Yet another Matrix client for the web";
|
||||
homepage = "https://cinny.in/";
|
||||
maintainers = with lib.maintainers; [ abbe ];
|
||||
maintainers = with lib.maintainers; [
|
||||
abbe
|
||||
rebmit
|
||||
];
|
||||
license = lib.licenses.agpl3Only;
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
cargo,
|
||||
cmake,
|
||||
common-updater-scripts,
|
||||
fetchFromGitHub,
|
||||
nix-update,
|
||||
qt6,
|
||||
ripgrep,
|
||||
rustPlatform,
|
||||
rustc,
|
||||
writeShellScript,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cutecosmic";
|
||||
version = "0.1-unstable-2026-01-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "IgKh";
|
||||
repo = "cutecosmic";
|
||||
rev = "8e584418f69eeeaee8574c4a48cc92ef27fd610e";
|
||||
hash = "sha256-jKiO+WlNHM1xavKdB6PrGd3HmTgnyL1vjh0Ps1HcWx4=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) src;
|
||||
name = "${finalAttrs.pname}-${finalAttrs.version}";
|
||||
sourceRoot = "${finalAttrs.src.name}/bindings";
|
||||
hash = "sha256-+1z0VoxDeOYSmb7BoFSdrwrfo1mmwkxeuEGP+CGFc8Y=";
|
||||
};
|
||||
|
||||
cargoRoot = "bindings";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
qt6.wrapQtAppsHook
|
||||
rustPlatform.cargoSetupHook
|
||||
cargo
|
||||
rustc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qt6.qtbase
|
||||
qt6.qtdeclarative
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CORROSION" "${finalAttrs.passthru.sources.corrosion}")
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace platformtheme/CMakeLists.txt \
|
||||
--replace-fail "\''${QT_INSTALL_PLUGINS}/platformthemes" \
|
||||
"${qt6.qtbase.qtPluginPrefix}/platformthemes"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
sources = {
|
||||
# rev from source/bindings/CMakeLists.txt
|
||||
corrosion = fetchFromGitHub {
|
||||
owner = "corrosion-rs";
|
||||
repo = "corrosion";
|
||||
rev = "v0.5.2";
|
||||
hash = "sha256-sO2U0llrDOWYYjnfoRZE+/ofg3kb+ajFmqvaweRvT7c=";
|
||||
};
|
||||
};
|
||||
|
||||
updateScript = writeShellScript "update-cutecosmic" ''
|
||||
set -euo pipefail
|
||||
|
||||
${lib.getExe nix-update} cutecosmic --version branch=HEAD
|
||||
src=$(nix-build -A cutecosmic.src --no-out-link)
|
||||
|
||||
# Corrosion-rs dependency
|
||||
tag=$(${lib.getExe ripgrep} --multiline --pcre2 --only-matching \
|
||||
'FetchContent_Declare\(\s*Corrosion[^)]*GIT_TAG\s+(v[\d.]+)' \
|
||||
--replace '$1' \
|
||||
"$src/bindings/CMakeLists.txt")
|
||||
|
||||
${lib.getExe' common-updater-scripts "update-source-version"} \
|
||||
cutecosmic.sources.corrosion \
|
||||
"$tag" \
|
||||
--source-key=out \
|
||||
--version-key=rev \
|
||||
--file=${lib.escapeShellArg (toString ./.) + "/package.nix"}
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/IgKh/cutecosmic";
|
||||
description = "Qt platform theme for COSMIC Desktop environment";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
amozeo
|
||||
thefossguy
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -8,14 +8,13 @@
|
||||
common-updater-scripts,
|
||||
writeShellApplication,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "daisydisk";
|
||||
version = "4.32";
|
||||
version = "4.33.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://daisydiskapp.com/download/DaisyDisk.zip";
|
||||
hash = "sha256-HRW851l3zCq43WmLkElvVlIEmfCsCUMFw/LL2cPa2Xk=";
|
||||
hash = "sha256-YkXjaDbnwkQUsfhzCA5xQ6C6NGjQV6qj7znyjcKgwIg=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -7,20 +7,20 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "docker-color-output";
|
||||
version = "2.6.1";
|
||||
version = "3.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "devemio";
|
||||
repo = "docker-color-output";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-r11HNRXnmTC1CJR871sX7xW9ts9KAu1+azwIwXH09qg=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Rpym9YckgJ583zgPpC/mQW1IGgQUppemFhAecgy3M8A=";
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/cli $out/bin/docker-color-output
|
||||
'';
|
||||
|
||||
vendorHash = null;
|
||||
vendorHash = "sha256-g+yaVIx4jxpAQ/+WrGKxhVeliYx7nLQe/zsGpxV4Fn4=";
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
dockmate,
|
||||
fetchFromGitHub,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dockmate";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shubh-io";
|
||||
repo = "DockMate";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-kepv8jY/hddRpJMhwr55k0R8CPBKtifjrGiRxoIUDXw=";
|
||||
};
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
vendorHash = "sha256-/votTA5Rn8beq1PgHpC01D01VjBIwciPVN5eNc8iZRM=";
|
||||
|
||||
# Skip tests that require a Docker daemon or interactive filesystem access,
|
||||
# as these are unavailable in the restricted Nix build sandbox.
|
||||
checkFlags = [
|
||||
"-skip=TestDockerComposeCommandNoFiles|TestDockerComposeCommandSingleFile|TestDockerComposeCommandMultipleFiles|TestWritingToConfigFile"
|
||||
];
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/shubh-io/DockMate/releases/tag/${src.tag}";
|
||||
description = "Terminal-based Docker container manager that actually works";
|
||||
homepage = "https://github.com/shubh-io/DockMate";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
sith-lord-vader
|
||||
];
|
||||
mainProgram = "dockmate";
|
||||
};
|
||||
}
|
||||
@@ -1,26 +1,29 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
icu,
|
||||
lib,
|
||||
buildGoModule,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "dolt";
|
||||
version = "1.59.10";
|
||||
version = "1.81.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dolthub";
|
||||
repo = "dolt";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-DfocUOHpPdNeMcL7kVm7ggm2cVgWp/ifvCFyFosxhcs=";
|
||||
hash = "sha256-dL6WJvApRGC8ADFowms81YbJpLbbTyNQfI/RIotgTdc=";
|
||||
};
|
||||
|
||||
modRoot = "./go";
|
||||
subPackages = [ "cmd/dolt" ];
|
||||
vendorHash = "sha256-yZ+q4KNfIiR2gpk10dpZOMiEN3V/Lk/pzhgaqp7lKag=";
|
||||
vendorHash = "sha256-wufwBlRiRiNVZgkBFRqZIB6vNeWBBaCDdV2tcynhatk=";
|
||||
proxyVendor = true;
|
||||
doCheck = false;
|
||||
|
||||
buildInputs = [ icu ];
|
||||
|
||||
meta = {
|
||||
description = "Relational database with version control and CLI a-la Git";
|
||||
mainProgram = "dolt";
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
fetchNpmDeps,
|
||||
npmHooks,
|
||||
go-swag,
|
||||
nodejs,
|
||||
nix-update-script,
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "drasl";
|
||||
version = "3.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "unmojang";
|
||||
repo = "drasl";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-SOH6WXhBBx5JShr18Q0SyDFYVE7LMRUONdCJ1NB2HRQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
go-swag
|
||||
nodejs
|
||||
npmHooks.npmConfigHook
|
||||
];
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit (finalAttrs) src;
|
||||
hash = "sha256-L0y04zLgno5kKUACyokma8uk/fNY2mwdMwsq217SCqI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-4Rk59bnDFYpraoGvkBUW6Z5fiXUmm2RLwS1wxScWAMQ=";
|
||||
|
||||
overrideModAttrs = oldAttrs: {
|
||||
nativeBuildInputs = lib.filter (drv: drv != npmHooks.npmConfigHook) oldAttrs.nativeBuildInputs;
|
||||
preBuild = null;
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace build_config.go --replace-fail "\"/usr/share/drasl\"" "\"$out/share/drasl\""
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
make prebuild
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p "$out/share/drasl"
|
||||
cp -R ./{assets,view,public,locales} "$out/share/drasl"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Yggdrasil-compatible API server for Minecraft";
|
||||
homepage = "https://github.com/unmojang/drasl";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
evan-goode
|
||||
ungeskriptet
|
||||
];
|
||||
mainProgram = "drasl";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
bash,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "envoluntary";
|
||||
version = "0.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dfrankland";
|
||||
repo = "envoluntary";
|
||||
tag = "envoluntary-v${version}";
|
||||
hash = "sha256-ccMXrR7PnV3aCehJtsJyXx5ZiCz/KrHkKDLQSV3sMYU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-AXWOU8UduQZxZWcTaOyxilbdz4BMnZlrJEFTUakFa4w=";
|
||||
|
||||
preCheck = ''
|
||||
export NIX_BIN_BASH="${bash}/bin/bash"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Automatic Nix development environments for your shell";
|
||||
longDescription = ''
|
||||
Envoluntary seamlessly loads and unloads Nix development environments based on directory
|
||||
patterns, eliminating the need for per-project .envrc / flake.nix files while giving you
|
||||
centralized control over your development tooling.
|
||||
'';
|
||||
homepage = "https://github.com/dfrankland/envoluntary";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ blemouzy ];
|
||||
mainProgram = "envoluntary";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
stdenv,
|
||||
# linux dependencies
|
||||
makeWrapper,
|
||||
bubblewrap,
|
||||
socat,
|
||||
bpftrace,
|
||||
installShellFiles,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "fence";
|
||||
version = "0.1.32";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Use-Tusk";
|
||||
repo = "fence";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-D+mAwmeOGSuKqO72atjvlhg2ez4MXtrjlnHEXPX34jI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-8v6B39TCwzu6DgFr1nuaGBEQ9s06rbBCENiGUIVw9Rk=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X=main.version=${finalAttrs.version}"
|
||||
"-X=main.buildTime=1970-01-01T00:00:00Z"
|
||||
"-X=main.gitCommit=${finalAttrs.src.rev}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ makeWrapper ];
|
||||
|
||||
# Tests want to create sandbox profiles on darwin.
|
||||
# Nested sandboxes are unsupported by seatbelt, which means we cannot execute the tests inside the nix build sandbox.
|
||||
doCheck = stdenv.hostPlatform.isLinux;
|
||||
|
||||
nativeCheckInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
bubblewrap
|
||||
socat
|
||||
bpftrace
|
||||
];
|
||||
|
||||
postInstall =
|
||||
lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd ${finalAttrs.meta.mainProgram} \
|
||||
--bash <($out/bin/${finalAttrs.meta.mainProgram} completion bash) \
|
||||
--fish <($out/bin/${finalAttrs.meta.mainProgram} completion fish) \
|
||||
--zsh <($out/bin/${finalAttrs.meta.mainProgram} completion zsh)
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
wrapProgram $out/bin/${finalAttrs.meta.mainProgram} \
|
||||
--suffix PATH : ${
|
||||
lib.makeBinPath [
|
||||
bubblewrap
|
||||
socat
|
||||
bpftrace
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Lightweight, container-free sandbox for running commands with network and filesystem restrictions";
|
||||
homepage = "https://github.com/Use-Tusk/fence";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ dwt ];
|
||||
mainProgram = "fence";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "figtree";
|
||||
version = "2.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "erikdkennedy";
|
||||
repo = "figtree";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-owzoM0zfKYxLJCQbL1eUE0cdSLVmm+QNRUGxbsNJ37I=";
|
||||
};
|
||||
|
||||
sourceRoot = "fonts";
|
||||
|
||||
setSourceRoot = "sourceRoot=$(pwd)";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
find . -type f -iname '*.ttf' | while read f; do
|
||||
d="$out/share/fonts/truetype/figtree/$(basename "$f")"
|
||||
install -Dm644 -D "$f" "$d"
|
||||
done
|
||||
find . -type f -iname '*.otf' | while read f; do
|
||||
d="$out/share/fonts/opentype/figtree/$(basename "$f")"
|
||||
install -Dm644 -D "$f" "$d"
|
||||
done
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/erikdkennedy/figtree";
|
||||
description = "Simple and friendly geometric sans serif font";
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ mrcjkb ];
|
||||
license = lib.licenses.ofl;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
buildGoModule,
|
||||
installShellFiles,
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "git-pkgs";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "git-pkgs";
|
||||
repo = "git-pkgs";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-XjW3qwybTmzW2CNgu1Edgs5ZZ9xl3+uS4sT8VWD3jyQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-/LJwq17f7SAjSV2ZcLrdaKZYf9RVJ9wtYqEsW0ubT1Q=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
ldflags = [
|
||||
"-X github.com/git-pkgs/git-pkgs/cmd.version=${version}"
|
||||
];
|
||||
|
||||
# Tries to access the internet.
|
||||
doCheck = false;
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postBuild = ''
|
||||
go run scripts/generate-man.go
|
||||
installManPage man/*.1
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd git-pkgs \
|
||||
--bash <($out/bin/git-pkgs completion bash) \
|
||||
--fish <($out/bin/git-pkgs completion fish) \
|
||||
--zsh <($out/bin/git-pkgs completion zsh)
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/git-pkgs/git-pkgs";
|
||||
description = "Git subcommand for analyzing package/dependency usage in git repositories over time";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ bnjmnt4n ];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "git-pkgs";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
{
|
||||
godot_4_6,
|
||||
makeWrapper,
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "godsvg";
|
||||
version = "1.0-alpha14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MewPurPur";
|
||||
repo = "GodSVG";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Bo45Zu13RRPxf5tZhCxAulTe61o9kwqX1nEFJDaeBng=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
godot_4_6
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildPhase =
|
||||
let
|
||||
# https://github.com/MewPurPur/GodSVG/blob/main/export_presets.cfg
|
||||
preset =
|
||||
{
|
||||
"x86_64-linux" = "Linux";
|
||||
"aarch64-darwin" = "macOS";
|
||||
}
|
||||
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
in
|
||||
''
|
||||
runHook preBuild
|
||||
|
||||
# Cannot create file `/homeless-shelter/.config/godot_4_5/projects/...`
|
||||
export HOME=$TMPDIR
|
||||
# Link the export-templates to the expected location. The `--export` option expects the templates in the home directory.
|
||||
mkdir -p $HOME/.local/share/godot_4_5
|
||||
ln -s ${godot_4_6}/share/godot_4_5/templates $HOME/.local/share/godot_4_5
|
||||
|
||||
godot4 --headless --export-pack ${preset} godsvg.pck
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm444 godsvg.pck $out/share/godsvg/godsvg.pck
|
||||
|
||||
makeWrapper ${godot_4_6}/bin/godot4 $out/bin/godsvg \
|
||||
--add-flag "--main-pack" \
|
||||
--add-flag "$out/share/godsvg/godsvg.pck"
|
||||
|
||||
install -Dm444 ./assets/logos/icon.svg $out/share/icons/hicolor/scalable/apps/godsvg.svg
|
||||
install -Dm444 ./assets/logos/icon.png $out/share/icons/hicolor/256x256/apps/godsvg.png
|
||||
install -Dm444 ./assets/GodSVG.desktop $out/share/applications/GodSVG.desktop
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# currently, all tags are marked as pre-release
|
||||
passthru.updateScript = nix-update-script { extraArgs = [ "--version=unstable" ]; };
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.godsvg.com/";
|
||||
description = "A vector graphics application for structured SVG editing";
|
||||
changelog = "https://www.godsvg.com/article/${lib.replaceString "." "-" finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
mainProgram = "godsvg";
|
||||
maintainers = [ lib.maintainers.mochienya ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
gitUpdater,
|
||||
libnotify,
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "golazo";
|
||||
version = "0.21.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "0xjuanma";
|
||||
repo = "golazo";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-TWpaW8MTkYEOp+7dd3LiDs05tCB3riUPmFRzhMiAeZI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-M2gfqU5rOfuiVSZnH/Dr8OVmDhyU2jYkgW7RuIUTd+E=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libnotify ];
|
||||
|
||||
ldflags = [
|
||||
"-X github.com/0xjuanma/golazo/cmd.Version=v${finalAttrs.version}"
|
||||
];
|
||||
|
||||
passthru.updateScript = gitUpdater {
|
||||
rev-prefix = "v";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Minimal TUI app to keep up with live & recent football/soccer matches written in Go";
|
||||
homepage = "https://github.com/0xjuanma/golazo";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.all;
|
||||
mainProgram = "golazo";
|
||||
maintainers = with lib.maintainers; [ rafaelrc ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
lib,
|
||||
stdenv,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "hcloud-upload-image";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "apricote";
|
||||
repo = "hcloud-upload-image";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-1u9tpzciYjB/EgBI81pg9w0kez7hHZON7+AHvfKW7k0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-IdOAUBPg0CEuHd2rdc7jOlw0XtnAhr3PVPJbnFs2+x4=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X main.version=${version}"
|
||||
];
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
for shell in bash fish zsh; do
|
||||
$out/bin/hcloud-upload-image completion $shell > hcloud.$shell
|
||||
installShellCompletion hcloud.$shell
|
||||
done
|
||||
'';
|
||||
|
||||
env.GOWORK = "off";
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/apricote/hcloud-upload-image/releases/tag/v${version}";
|
||||
description = "Quickly upload any raw disk images into your Hetzner Cloud projects";
|
||||
mainProgram = "hcloud-upload-image";
|
||||
homepage = "https://github.com/apricote/hcloud-upload-image";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
sshine
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -14,16 +14,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "hdr10plus_tool";
|
||||
version = "1.7.1";
|
||||
version = "1.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "quietvoid";
|
||||
repo = "hdr10plus_tool";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Lpm770Eb81L+eEzHUD+0+J3iS9CFdSP3odhw6KDtgAI=";
|
||||
hash = "sha256-LFfb6B0LPa+kqqluDssuQaGdaBLgD9rs51Cqb09BK7g=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Qkl02HAC6PVCHW226R6StmzrGZv/IHcE88kEg9BpObs=";
|
||||
cargoHash = "sha256-gAD+rCZ2Z+TutrUpOXFhvzh60W2Usz41QpXgBZ6SjiE=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
openssl,
|
||||
pkg-config,
|
||||
alsa-lib,
|
||||
systemdLibs,
|
||||
libxkbcommon,
|
||||
makeWrapper,
|
||||
versionCheckHook,
|
||||
# hardware acceleration can be enabled by overriding whisper-cpp/onnxruntime or by editing config.cudaSupport/config.rocmSupport globals
|
||||
whisper-cpp,
|
||||
onnxruntime,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "hyprwhspr-rs";
|
||||
version = "0.3.20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "better-slop";
|
||||
repo = "hyprwhspr-rs";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-QCOzTbLBoygOLLN90840HHHFEaHdorf0CQOCuGpCIfo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-hLjWHMY2wpEfPfLIdfxDI21FrrC1QOWGRkTezkmzmGY=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openssl
|
||||
alsa-lib
|
||||
onnxruntime
|
||||
systemdLibs
|
||||
libxkbcommon
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/hyprwhspr-rs \
|
||||
--prefix PATH : ${lib.makeBinPath [ whisper-cpp ]}
|
||||
# default voice activation sounds
|
||||
install -Dm644 assets/* -t $out/share/assets
|
||||
'';
|
||||
|
||||
# provide onnx runtime libraries to prevent default behavior of downloading them during the build step
|
||||
env = {
|
||||
ORT_STRATEGY = "system";
|
||||
ORT_LIB_LOCATION = "${lib.getLib onnxruntime}/lib";
|
||||
ORT_PREFER_DYNAMIC_LINK = "1";
|
||||
};
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "Native speech-to-text voice dictation for Hyprland";
|
||||
homepage = "https://github.com/better-slop/hyprwhspr-rs";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "hyprwhspr-rs";
|
||||
maintainers = with lib.maintainers; [ CodeF53 ];
|
||||
};
|
||||
})
|
||||
@@ -19,7 +19,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "intel-graphics-compiler";
|
||||
version = "2.24.8";
|
||||
version = "2.27.10";
|
||||
|
||||
# See the repository for expected versions:
|
||||
# <https://github.com/intel/intel-graphics-compiler/blob/v2.16.0/documentation/build_ubuntu.md#revision-table>
|
||||
@@ -42,22 +42,22 @@ stdenv.mkDerivation rec {
|
||||
name = "vc-intrinsics";
|
||||
owner = "intel";
|
||||
repo = "vc-intrinsics";
|
||||
tag = "v0.24.1";
|
||||
hash = "sha256-IpScRc+sWEcD8ZH5TinMPVFq1++vIVp774TJsg8mUMY=";
|
||||
tag = "v0.24.2";
|
||||
hash = "sha256-ypHFqgc96m+im7DCe5ZOGMGIhB7mtRYPhEmMSg2+pyc=";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
name = "opencl-clang";
|
||||
owner = "intel";
|
||||
repo = "opencl-clang";
|
||||
tag = "v16.0.6";
|
||||
hash = "sha256-qxMnKQWQ32yF2rZGGOel2ynZJKfbAlk9U+ttWuzYRog=";
|
||||
tag = "v16.0.7";
|
||||
hash = "sha256-MaL4DRmIdnBA/DZZezNzbsjWh5mz99mOTUJoqcXE1/c=";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
name = "llvm-spirv";
|
||||
owner = "KhronosGroup";
|
||||
repo = "SPIRV-LLVM-Translator";
|
||||
tag = "v16.0.19";
|
||||
hash = "sha256-GTTEThCNPyq0CpD6Vp4L0ZEEqOZ7uLbt9sdgXLs7MUg=";
|
||||
tag = "v16.0.20";
|
||||
hash = "sha256-3ymwHSNqCdMIgzPYIYUIHMjJHSxdcGK11DF8qPM6nMs=";
|
||||
})
|
||||
];
|
||||
|
||||
|
||||
@@ -1,110 +1,110 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
unstableGitUpdater,
|
||||
|
||||
# Native Build Inputs
|
||||
cmake,
|
||||
python3,
|
||||
pkg-config,
|
||||
|
||||
# Build Inputs
|
||||
libxrender,
|
||||
libxrandr,
|
||||
libxi,
|
||||
libxinerama,
|
||||
libxfixes,
|
||||
libxext,
|
||||
libxcursor,
|
||||
libx11,
|
||||
wayland,
|
||||
libxkbcommon,
|
||||
wayland-protocols,
|
||||
glew,
|
||||
qt6,
|
||||
alsa-lib,
|
||||
sdl3,
|
||||
iniparser,
|
||||
|
||||
# Options
|
||||
imguiDebug ? false,
|
||||
addrSan ? false,
|
||||
emscriptenHost ? "",
|
||||
callPackage,
|
||||
requireFile,
|
||||
runCommand,
|
||||
makeBinaryWrapper,
|
||||
symlinkJoin,
|
||||
isle-portable-unwrapped ? callPackage ./unwrapped.nix { },
|
||||
_7zz,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
strictDeps = true;
|
||||
pname = "isle-portable";
|
||||
version = "0-unstable-2025-11-15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "isledecomp";
|
||||
repo = "isle-portable";
|
||||
rev = "d182a8057c5c0827c33639367b7e00e9ab389e78";
|
||||
hash = "sha256-V3jmUUzTkLKUwa/mCtp+UbJNAmHlrrDIKGimKOJOJss=";
|
||||
fetchSubmodules = true;
|
||||
let
|
||||
legoIslandIso = requireFile {
|
||||
name = "LEGO_ISLANDI.ISO";
|
||||
hash = "sha256-pefu/XcvGKcWYzaFldWeFEYdc7OUBgbmlgWyH2CnZec=";
|
||||
message = "ISO file of Lego Island 1.1";
|
||||
};
|
||||
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace packaging/macos/CMakeLists.txt \
|
||||
--replace-fail "fixup_bundle" "#fixup_bundle"
|
||||
unpackedIso = runCommand "LEGO_ISLANDI-unpacked" { nativeBuildInputs = [ _7zz ]; } ''
|
||||
mkdir "$out"
|
||||
7zz x ${legoIslandIso} -o"$out"
|
||||
'';
|
||||
in
|
||||
symlinkJoin (
|
||||
finalAttrs:
|
||||
let
|
||||
# INI file with the LEGO Island Disk files in it
|
||||
iniWithDisk = lib.recursiveUpdate finalAttrs.passthru.iniConfig {
|
||||
isle = {
|
||||
diskpath = "${unpackedIso}/DATA/disk";
|
||||
cdpath = "${unpackedIso}";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"lib"
|
||||
];
|
||||
# Properly quoted INI file
|
||||
quotedIni = lib.mapAttrsRecursiveCond (as: (!lib.isDerivation as)) (
|
||||
_: value: ''"${toString value}"''
|
||||
) iniWithDisk;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
qt6.wrapQtAppsHook
|
||||
python3
|
||||
pkg-config
|
||||
];
|
||||
# Make a config ini file
|
||||
iniFile =
|
||||
runCommand "isle.ini"
|
||||
{
|
||||
passAsFile = [ "iniFile" ];
|
||||
|
||||
buildInputs = [
|
||||
qt6.qtbase
|
||||
sdl3
|
||||
iniparser
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
libx11
|
||||
libxext
|
||||
libxrandr
|
||||
libxrender
|
||||
libxfixes
|
||||
libxi
|
||||
libxinerama
|
||||
libxcursor
|
||||
wayland
|
||||
libxkbcommon
|
||||
wayland-protocols
|
||||
glew
|
||||
alsa-lib
|
||||
];
|
||||
# Set the ISO path.
|
||||
iniFile = lib.generators.toINI { } quotedIni;
|
||||
}
|
||||
''
|
||||
cp "$iniFilePath" "$out"
|
||||
'';
|
||||
in
|
||||
{
|
||||
inherit (isle-portable-unwrapped) version;
|
||||
pname = "isle-portable-wrapped";
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "DOWNLOAD_DEPENDENCIES" false)
|
||||
(lib.cmakeBool "ISLE_DEBUG" imguiDebug)
|
||||
(lib.cmakeFeature "ISLE_EMSCRIPTEN_HOST" emscriptenHost)
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
|
||||
|
||||
meta = {
|
||||
description = "Portable decompilation of Lego Island";
|
||||
homepage = "https://github.com/isledecomp/isle-portable";
|
||||
license = with lib.licenses; [
|
||||
# The original code for the portable project
|
||||
lgpl3Plus
|
||||
# The decompilation code
|
||||
mit
|
||||
unfree
|
||||
paths = [
|
||||
isle-portable-unwrapped
|
||||
];
|
||||
platforms = with lib.platforms; windows ++ linux ++ darwin;
|
||||
mainProgram = "isle";
|
||||
maintainers = with lib.maintainers; [
|
||||
RossSmyth
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeBinaryWrapper
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
postBuild = ''
|
||||
wrapProgram "$out/bin/isle" \
|
||||
--add-flags "--ini ${iniFile}"
|
||||
'';
|
||||
|
||||
passthru.unwrapped = isle-portable-unwrapped;
|
||||
|
||||
passthru.iniConfig = {
|
||||
isle = {
|
||||
diskpath = null;
|
||||
cdpath = null;
|
||||
mediapath = isle-portable-unwrapped;
|
||||
savepath = "~/.local/share/isledecomp/isle";
|
||||
"flip surfaces" = "false";
|
||||
"full screen" = "true";
|
||||
"exclusive full screen" = "true";
|
||||
"wide view angle" = "true";
|
||||
"3dsound" = "true";
|
||||
"music" = "true";
|
||||
"cursor sensitivity" = "4.000000";
|
||||
"back buffers in video ram" = "-1";
|
||||
"island quality" = "2";
|
||||
"island texture" = "1";
|
||||
"max lod" = "3.600000";
|
||||
"max allowed extras" = "20";
|
||||
"transition type" = "3";
|
||||
"touch scheme" = "2";
|
||||
"haptic" = "true";
|
||||
"horizontal resolution" = "640";
|
||||
"vertical resolution" = "480";
|
||||
"exclusive x resolution" = "640";
|
||||
"exclusive y resolution" = "480";
|
||||
"exclusive framerate" = "60";
|
||||
"frame delta" = "10";
|
||||
"msaa" = "0";
|
||||
"anisotropic" = "";
|
||||
};
|
||||
|
||||
extensions = {
|
||||
"texture loader" = "false";
|
||||
"si loader" = "false";
|
||||
};
|
||||
};
|
||||
|
||||
meta = removeAttrs isle-portable-unwrapped.meta [ "position" ];
|
||||
}
|
||||
)
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
callPackage,
|
||||
unstableGitUpdater,
|
||||
|
||||
# Native Build Inputs
|
||||
cmake,
|
||||
ninja,
|
||||
python3,
|
||||
pkg-config,
|
||||
|
||||
# Build Inputs
|
||||
libxrender,
|
||||
libxrandr,
|
||||
libxi,
|
||||
libxinerama,
|
||||
libxfixes,
|
||||
libxext,
|
||||
libxcursor,
|
||||
libx11,
|
||||
wayland,
|
||||
libxkbcommon,
|
||||
wayland-protocols,
|
||||
glew,
|
||||
qt6,
|
||||
alsa-lib,
|
||||
sdl3,
|
||||
iniparser,
|
||||
libweaver,
|
||||
|
||||
# Options
|
||||
imguiDebug ? false,
|
||||
emscriptenHost ? "",
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
strictDeps = true;
|
||||
pname = "isle-portable";
|
||||
version = "0-unstable-2026-01-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "isledecomp";
|
||||
repo = "isle-portable";
|
||||
rev = "03cb40190a1aedea23b857942d14359c86ad3857";
|
||||
hash = "sha256-YGj+2FzotNmHrYBHmlMt6xuSXgXWa6j3rmukjUyGegA=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace packaging/macos/CMakeLists.txt \
|
||||
--replace-fail "fixup_bundle" "#fixup_bundle"
|
||||
'';
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"lib"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
qt6.wrapQtAppsHook
|
||||
python3
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qt6.qtbase
|
||||
sdl3
|
||||
iniparser
|
||||
libweaver
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
libx11
|
||||
libxext
|
||||
libxrandr
|
||||
libxrender
|
||||
libxfixes
|
||||
libxi
|
||||
libxinerama
|
||||
libxcursor
|
||||
wayland
|
||||
libxkbcommon
|
||||
wayland-protocols
|
||||
glew
|
||||
alsa-lib
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "DOWNLOAD_DEPENDENCIES" false)
|
||||
(lib.cmakeBool "ISLE_DEBUG" imguiDebug)
|
||||
(lib.cmakeFeature "ISLE_EMSCRIPTEN_HOST" emscriptenHost)
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
|
||||
wrapped = callPackage ./package.nix {
|
||||
isle-portable-unwrapped = finalAttrs.finalPackage;
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Portable decompilation of Lego Island";
|
||||
homepage = "https://github.com/isledecomp/isle-portable";
|
||||
license = with lib.licenses; [
|
||||
# The original code for the portable project
|
||||
lgpl3Plus
|
||||
# The decompilation code
|
||||
mit
|
||||
unfree
|
||||
];
|
||||
platforms = with lib.platforms; windows ++ linux ++ darwin;
|
||||
mainProgram = "isle";
|
||||
maintainers = with lib.maintainers; [
|
||||
RossSmyth
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -1,33 +1,46 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
fetchPnpmDeps,
|
||||
fetchNpmDeps,
|
||||
nodejs,
|
||||
writableTmpDirAsHomeHook,
|
||||
pnpmConfigHook,
|
||||
pnpm,
|
||||
unzip,
|
||||
patchelf,
|
||||
autoPatchelfHook,
|
||||
ripgrep,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "kilocode-cli";
|
||||
version = "0.18.0";
|
||||
version = "0.25.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Kilo-Org";
|
||||
repo = "kilocode";
|
||||
tag = "cli-v${finalAttrs.version}";
|
||||
hash = "sha256-zEhv/tcKMR9D+aTVxaw3LBjbEBpuy4o0cpV/vowOFSY=";
|
||||
hash = "sha256-XlJ9/9FABLpKVJXdIRzbzOpJVXdIzgFvPPeER1LRsuk=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-fTCuTAEYNyqitBvOafQyi3BDqI/O7u7yEhSPH7FVDUg=";
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-Q/LamZwVaIQVILtXRi1RQrYtpxYJWEKPAt3knwm47S0=";
|
||||
};
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
name = "${finalAttrs.pname}-npm-deps";
|
||||
inherit (finalAttrs) src;
|
||||
sourceRoot = "${finalAttrs.src.name}/cli";
|
||||
postPatch = ''
|
||||
cp ./npm-shrinkwrap.dist.json ./npm-shrinkwrap.json
|
||||
'';
|
||||
hash = "sha256-wH4Gyd5nv8sCSQStFqIidoICvlXXEs2xNNX+DH133wA=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@@ -41,7 +54,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
nodejs
|
||||
unzip
|
||||
patchelf
|
||||
];
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isElf [ autoPatchelfHook ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -50,6 +64,36 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
mkdir -p ./cli/.dist/
|
||||
find ./cli -maxdepth 1 -type f -name "*.dist.*" -print0 | while IFS= read -r -d "" file; do
|
||||
cp "$file" "./cli/.dist/$(basename "$file" | sed 's/\.dist\././')"
|
||||
done
|
||||
|
||||
if ! diff "$PWD/cli/npm-shrinkwrap.dist.json" "$npmDeps/package-lock.json"; then
|
||||
echo "npm-shrinkwrap.json is out of date"
|
||||
echo "The npm-shrinkwrap.json in src is not the same as the in $npmDeps."
|
||||
echo "To fix the issue:"
|
||||
echo '1. Use `lib.fakeHash` as the npmDepsHash value'
|
||||
echo "2. Build the derivation and wait for it to fail with a hash mismatch"
|
||||
echo "3. Copy the 'got: sha256-' value back into the npmDepsHash field"
|
||||
exit 1
|
||||
fi
|
||||
export npm_config_cache="$npmDeps"
|
||||
export npm_config_offline="true"
|
||||
export npm_config_progress="false"
|
||||
(
|
||||
cd ./cli/.dist
|
||||
npm ci --omit=dev --ignore-scripts
|
||||
patchShebangs node_modules
|
||||
if [ -d node_modules/@vscode/ripgrep ]; then
|
||||
mkdir -p node_modules/@vscode/ripgrep/bin
|
||||
ln -s ${lib.getExe ripgrep} node_modules/@vscode/ripgrep/bin/rg
|
||||
fi
|
||||
npm rebuild
|
||||
)
|
||||
substituteInPlace cli/package.json \
|
||||
--replace-fail 'npm install --omit=dev --prefix ./dist' 'mv ./.dist/node_modules ./dist/node_modules'
|
||||
|
||||
node --run cli:bundle
|
||||
touch ./cli/dist/.env
|
||||
|
||||
@@ -64,11 +108,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
ln -s $out/lib/node_modules/@kilocode/cli/index.js $out/bin/kilocode
|
||||
chmod +x $out/bin/kilocode
|
||||
|
||||
pushd $out/lib/node_modules/@kilocode/cli
|
||||
rm node_modules/@vscode/ripgrep/bin/rg
|
||||
ln -s ${ripgrep}/bin/rg node_modules/@vscode/ripgrep/bin/rg
|
||||
popd
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
ninja,
|
||||
testers,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libweaver";
|
||||
version = "0-unstable-2025-12-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "isledecomp";
|
||||
repo = "SIEdit";
|
||||
rev = "2c32d65dbab577bf3a8701bc8bcae9034a7815d9";
|
||||
hash = "sha256-qtE7c/LCQBhVWgbdmu4e5mCo+4Pz6QkAY29dHG/Fi/U=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "LIBWEAVER_BUILD_APP" false)
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = unstableGitUpdater { harcodeZeroVersion = true; };
|
||||
tests.cmake-config = testers.hasCmakeConfigModules {
|
||||
package = finalAttrs.finalPackage;
|
||||
moduleNames = [ "libweaver" ];
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "library for interacting with SI files";
|
||||
homepage = "https://github.com/isledecomp/SIEdit/tree/master/include/libweaver";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = [
|
||||
lib.maintainers.RossSmyth
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -67,6 +67,8 @@ stdenv.mkDerivation rec {
|
||||
addDriverRunpath.driverLink
|
||||
];
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [ "librockchip_mpp.so.1" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
|
||||
index e67e5c8f5c..a4c6dd61fd 100644
|
||||
--- a/main/CMakeLists.txt
|
||||
+++ b/main/CMakeLists.txt
|
||||
@@ -499,15 +499,6 @@ if (APPLE)
|
||||
../fonts/finalebroadway/FinaleBroadwayText.otf
|
||||
DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME}fonts
|
||||
)
|
||||
- install(DIRECTORY
|
||||
- ${QT_INSTALL_QML}
|
||||
- DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME}
|
||||
- REGEX ".*QtWebkit.*" EXCLUDE
|
||||
- REGEX ".*QtTest.*" EXCLUDE
|
||||
- REGEX ".*QtSensors.*" EXCLUDE
|
||||
- REGEX ".*QtMultimedia.*" EXCLUDE
|
||||
- REGEX ".*QtAudioEngine.*" EXCLUDE
|
||||
- REGEX ".*_debug\\.dylib" EXCLUDE)
|
||||
endif (APPLE)
|
||||
|
||||
if (MSCORE_OUTPUT_NAME)
|
||||
diff --git a/mscore/CMakeLists.txt b/mscore/CMakeLists.txt
|
||||
index 8daa49b517..471cedf06d 100644
|
||||
--- a/mscore/CMakeLists.txt
|
||||
+++ b/mscore/CMakeLists.txt
|
||||
@@ -142,6 +142,7 @@ if (APPLE)
|
||||
cocoabridge STATIC
|
||||
macos/cocoabridge.mm
|
||||
)
|
||||
+ set_source_files_properties(macos/cocoabridge.mm PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
|
||||
else (APPLE)
|
||||
set(INCS "")
|
||||
set(COCOABRIDGE "")
|
||||
diff --git a/mscore/macos/cocoabridge.h b/mscore/macos/cocoabridge.h
|
||||
index d6a217ad99..0c61197bbb 100644
|
||||
--- a/mscore/macos/cocoabridge.h
|
||||
+++ b/mscore/macos/cocoabridge.h
|
||||
@@ -20,6 +20,10 @@
|
||||
#ifndef __COCOABRIDGE_H__
|
||||
#define __COCOABRIDGE_H__
|
||||
|
||||
+#include <functional>
|
||||
+
|
||||
+#include <QString>
|
||||
+
|
||||
class CocoaBridge {
|
||||
CocoaBridge() {};
|
||||
public:
|
||||
diff --git a/mscore/qml/msqmlengine.cpp b/mscore/qml/msqmlengine.cpp
|
||||
index 77c94b593c..ffd066d41d 100644
|
||||
--- a/mscore/qml/msqmlengine.cpp
|
||||
+++ b/mscore/qml/msqmlengine.cpp
|
||||
@@ -37,9 +37,9 @@ MsQmlEngine::MsQmlEngine(QObject* parent)
|
||||
setImportPathList(importPaths);
|
||||
#endif
|
||||
#ifdef Q_OS_MAC
|
||||
- QStringList importPaths;
|
||||
+ QStringList importPaths = importPathList();
|
||||
QDir dir(mscoreGlobalShare + QString("/qml"));
|
||||
- importPaths.append(dir.absolutePath());
|
||||
+ importPaths.prepend(dir.absolutePath());
|
||||
setImportPathList(importPaths);
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
wrapGAppsHook3,
|
||||
pkg-config,
|
||||
ninja,
|
||||
alsa-lib,
|
||||
alsa-plugins,
|
||||
freetype,
|
||||
libjack2,
|
||||
lame,
|
||||
libogg,
|
||||
libpulseaudio,
|
||||
libsndfile,
|
||||
libvorbis,
|
||||
portaudio,
|
||||
portmidi,
|
||||
flac,
|
||||
libopusenc,
|
||||
libopus,
|
||||
tinyxml-2,
|
||||
qt5, # Needed for musescore 3.X
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "musescore-evolution";
|
||||
version = "3.7.0-unstable-2026-01-12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Jojo-Schmitz";
|
||||
repo = "MuseScore";
|
||||
rev = "0b4543baca9b1b70d54cecb33cbf846dabc073d1";
|
||||
hash = "sha256-piOXHKlnfCO1n0kAgeszqa6JVoHgF8B2OF7agpadGKQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./musescore-evolution-pch-fix.patch
|
||||
];
|
||||
|
||||
# From top-level CMakeLists.txt:
|
||||
# - DOWNLOAD_SOUNDFONT defaults ON and tries to fetch from the network.
|
||||
# Download manually at Help > Manage Resources
|
||||
cmakeFlags = [
|
||||
"-DDOWNLOAD_SOUNDFONT=OFF"
|
||||
];
|
||||
|
||||
qtWrapperArgs = [
|
||||
# MuseScore JACK backend loads libjack at runtime.
|
||||
"--prefix ${lib.optionalString stdenv.hostPlatform.isDarwin "DY"}LD_LIBRARY_PATH : ${
|
||||
lib.makeLibraryPath [ libjack2 ]
|
||||
}"
|
||||
]
|
||||
++ lib.optionals (stdenv.hostPlatform.isLinux) [
|
||||
"--set ALSA_PLUGIN_DIR ${alsa-plugins}/lib/alsa-lib"
|
||||
]
|
||||
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
|
||||
# There are some issues with using the wayland backend, see:
|
||||
# https://musescore.org/en/node/321936
|
||||
"--set-default QT_QPA_PLATFORM xcb"
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
|
||||
# Recreate correct symlinks (let fixupPhase handle compression)
|
||||
if [ -e "$manDir/mscore-evo.1" ]; then
|
||||
ln -sf "mscore-evo.1" "$manDir/musescore-evo.1"
|
||||
fi
|
||||
'';
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
qt5.wrapQtAppsHook
|
||||
cmake
|
||||
qt5.qttools
|
||||
pkg-config
|
||||
ninja
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
# Since https://github.com/musescore/MuseScore/pull/13847/commits/685ac998
|
||||
# GTK3 is needed for file dialogs. Fixes crash with No GSettings schemas error.
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libjack2
|
||||
freetype
|
||||
lame
|
||||
libogg
|
||||
libpulseaudio
|
||||
libsndfile
|
||||
libvorbis
|
||||
portaudio
|
||||
portmidi
|
||||
flac
|
||||
libopusenc
|
||||
libopus
|
||||
tinyxml-2
|
||||
qt5.qtbase
|
||||
qt5.qtdeclarative
|
||||
qt5.qtsvg
|
||||
qt5.qtxmlpatterns
|
||||
qt5.qtquickcontrols2
|
||||
qt5.qtgraphicaleffects
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
alsa-lib
|
||||
];
|
||||
|
||||
# Avoid depending on insecure QtWebEngine (and having to compile it (huge))
|
||||
# Because we don't use this, we need to patch the CMakeLists and install scripts to not try to bundle it.
|
||||
postPatch = ''
|
||||
# Disable Qt bundling logic in the source CMakeLists.
|
||||
sed -i '/QT_INSTALL_PREFIX/d' main/CMakeLists.txt
|
||||
sed -i '/QtWebEngineProcess/d' main/CMakeLists.txt
|
||||
'';
|
||||
|
||||
# Patch the generated install script to drop Qt resource / QtWebEngine installs.
|
||||
preInstall = ''
|
||||
sed -i '
|
||||
/QtWebEngineProcess/d
|
||||
/resources\"/d
|
||||
/qtwebengine_locales/d
|
||||
/qtwebengine/d
|
||||
/QT_INSTALL_PREFIX/d
|
||||
' main/cmake_install.cmake
|
||||
'';
|
||||
|
||||
# On macOS, move the .app into Applications/ and symlink the binary to bin/
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p "$out/Applications"
|
||||
mv "$out/mscore.app" "$out/Applications/mscore-evo.app"
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/Applications/mscore-evo.app/Contents/MacOS/mscore $out/bin/mscore-evo
|
||||
'';
|
||||
|
||||
# On Linux, let CMake + wrapQtAppsHook install/wrap "mscore", then rename it
|
||||
# and adjust the .desktop file so it doesn't clash with the main musescore package.
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
mv "$out/bin/mscore" "$out/bin/mscore-evo"
|
||||
|
||||
# 2) Fix desktop entry to point to mscore-evo and avoid ID clash
|
||||
desktop="$out/share/applications/mscore.desktop"
|
||||
substitute "$desktop" "$out/share/applications/mscore-evo.desktop" \
|
||||
--replace "Exec=mscore" "Exec=mscore-evo" \
|
||||
--replace "Name=MuseScore 3.7" "Name=MuseScore 3.7 (Evolution)" \
|
||||
--replace "Icon=mscore" "Icon=mscore-evo"
|
||||
rm $desktop
|
||||
|
||||
# 3) Rename app icons (apps/)
|
||||
for sizeDir in "$out"/share/icons/hicolor/*/apps/; do
|
||||
for ext in png svg xpm; do
|
||||
if [ -f "$sizeDir/mscore.$ext" ]; then
|
||||
mv "$sizeDir/mscore.$ext" "$sizeDir/mscore-evo.$ext"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# 3b) Rename mimetype icons (mimetypes/) to unique names
|
||||
for icon in "$out"/share/icons/hicolor/*/mimetypes/application-x-musescore.* \
|
||||
"$out"/share/icons/hicolor/*/mimetypes/application-x-musescore+xml.*; do
|
||||
dir="''${icon%/*}"; base="''${icon##*/}"; ext="''${base##*.}"
|
||||
case "$base" in
|
||||
application-x-musescore.*) mv "$icon" "$dir/application-x-musescore-evo.$ext" ;;
|
||||
application-x-musescore+xml.*) mv "$icon" "$dir/application-x-musescore-evo+xml.$ext" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# 4) Rename MIME XML and point icons to the new names
|
||||
mv "$out/share/mime/packages/musescore.xml" "$out/share/mime/packages/musescore-evo.xml"
|
||||
sed -i \
|
||||
-e 's|<icon>application-x-musescore\(\+xml\)\?</icon>|<icon>application-x-musescore-evo\1</icon>|g' \
|
||||
-e 's|<icon>musescore</icon>|<icon>mscore-evo</icon>|g' \
|
||||
"$out/share/mime/packages/musescore-evo.xml"
|
||||
|
||||
# 5) Rename man pages to match mscore-evo and remove legacy symlinks
|
||||
manDir="$out/share/man/man1"
|
||||
|
||||
# Remove all old musescore/mscore symlinks first (gzip may have created them)
|
||||
find "$manDir" -type l \
|
||||
\( -name 'mscore.1*' -o -name 'musescore.1*' \) \
|
||||
-exec rm -f {} +
|
||||
|
||||
# Rename real files
|
||||
find "$manDir" \( -name 'mscore.1*' -o -name 'musescore.1*' \) -type f |
|
||||
while IFS= read -r man; do
|
||||
base="$(basename "$man")"
|
||||
newname=$(echo "$base" | sed -e 's/^mscore/mscore-evo/' -e 's/^musescore/mscore-evo/')
|
||||
mv "$man" "$manDir/$newname"
|
||||
done
|
||||
|
||||
# 6) Rename AppStream metadata and its IDs
|
||||
meta="$out/share/metainfo/org.musescore.MuseScore.appdata.xml"
|
||||
new="$out/share/metainfo/org.musescore.MuseScoreEvolution.appdata.xml"
|
||||
mv "$meta" "$new"
|
||||
sed -i \
|
||||
-e 's|<id>org\.musescore\.MuseScore</id>|<id>org.musescore.MuseScoreEvolution</id>|' \
|
||||
-e 's|mscore\.desktop|mscore-evo.desktop|' \
|
||||
"$new"
|
||||
'';
|
||||
|
||||
# Don't run bundled upstreams tests, as they require a running X window system.
|
||||
doCheck = false;
|
||||
|
||||
passthru.updateScript.command = [ ./update.sh ];
|
||||
|
||||
meta = {
|
||||
description = "Music notation and composition software";
|
||||
homepage = "https://github.com/Jojo-Schmitz/MuseScore";
|
||||
license = lib.licenses.gpl2Only;
|
||||
maintainers = with lib.maintainers; [ nemeott ];
|
||||
mainProgram = "mscore-evo";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p jq nix-update coreutils
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Run nix-update on the default branch (updates rev and sha256)
|
||||
nix-update musescore-evolution --version=branch
|
||||
|
||||
# Now we need to update the version name
|
||||
|
||||
# Find the new version generated from the nix-update command (e.g. "0-unstable-2026-01-12")
|
||||
generated_version=$(nix eval --raw -f . ${UPDATE_NIX_ATTR_PATH}.version)
|
||||
|
||||
# Extract only the date part (after the last dash) (e.g. 0-unstable-2026-01-12)
|
||||
parts=(${generated_version//-/ }) # Split up by dashes
|
||||
clean_date="${parts[2]}-${parts[3]}-${parts[4]}" # Get clean date in YYYY-MM-DD format (e.g. "2026-01-12")
|
||||
|
||||
# Compute version prefix based on previous version
|
||||
old_version="$UPDATE_NIX_OLD_VERSION"
|
||||
prefix="${old_version%-*}" # e.g. "3.7.0-unstable"
|
||||
|
||||
new_version="${prefix}-${clean_date}"
|
||||
|
||||
# Patch version in nix file
|
||||
# Strip any existing version line and replace with new one
|
||||
sed -i "s/version = \".*\"/version = \"${new_version}\"/" $(nix eval --raw -f . ${UPDATE_NIX_ATTR_PATH}.meta.position | cut -d: -f1)
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "nbted";
|
||||
version = "1.5.2-unstable-2026-02-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "C4K3";
|
||||
repo = "nbted";
|
||||
rev = "ce89021a2d84e80331ef7fdc84fa9c53fa80a671";
|
||||
hash = "sha256-TCllGon6x4gWlZYIxzcH0GXs/+M57VepyyGz8RyG1o8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-IMF5vc9p/+M/gMrUxOE3eojdATfera5dD62kcJEpzd8=";
|
||||
|
||||
env.VERGEN_GIT_SHA = finalAttrs.src.rev;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Command-line NBT editor";
|
||||
homepage = "https://github.com/C4K3/nbted";
|
||||
license = lib.licenses.cc0;
|
||||
maintainers = with lib.maintainers; [ jaredmontoya ];
|
||||
mainProgram = "nbted";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
lib,
|
||||
nix,
|
||||
meson,
|
||||
cmake,
|
||||
ninja,
|
||||
boost,
|
||||
pkg-config,
|
||||
nlohmann_json,
|
||||
curl,
|
||||
openpbs,
|
||||
symlinkJoin,
|
||||
slurm,
|
||||
}:
|
||||
let
|
||||
restclient-cpp = fetchFromGitHub {
|
||||
owner = "mrtazz";
|
||||
repo = "restclient-cpp";
|
||||
rev = "3356f816b161279cfbe318c45cb07c07fb8de6df";
|
||||
hash = "sha256-9//KssNRD7OJFNFdXgzsu7rKP/Nlb4wtmBjfhOt2Vgw=";
|
||||
};
|
||||
slurmJoined = symlinkJoin {
|
||||
name = "slurm";
|
||||
paths = [
|
||||
slurm
|
||||
slurm.dev
|
||||
];
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nix-scheduler-hook";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lisanna-dettwyler";
|
||||
repo = "nix-scheduler-hook";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-pB42rjqkASgdYQJD9nPqFSM0JAUIko1FN4d0J52BUsc=";
|
||||
};
|
||||
|
||||
sourceRoot = "source/src";
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
curl
|
||||
nix.libs.nix-util
|
||||
nix.libs.nix-store
|
||||
nix.libs.nix-main
|
||||
nlohmann_json
|
||||
openpbs
|
||||
slurmJoined
|
||||
];
|
||||
|
||||
postUnpack = ''
|
||||
mkdir $sourceRoot/subprojects
|
||||
cp -r ${restclient-cpp} $sourceRoot/subprojects/restclient-cpp
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mv nsh $out/bin
|
||||
mkdir -p $out/lib
|
||||
mv subprojects/restclient-cpp/librestclient_cpp.so $out/lib
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Nix build hook that forwards builds to job schedulers";
|
||||
homepage = "https://github.com/lisanna-dettwyler/nix-scheduler-hook";
|
||||
license = lib.licenses.lgpl21;
|
||||
mainProgram = "nsh";
|
||||
maintainers = with lib.maintainers; [ lisanna-dettwyler ];
|
||||
inherit (nix.meta) platforms;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
frida-tools,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "objection";
|
||||
version = "1.12.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sensepost";
|
||||
repo = "objection";
|
||||
tag = version;
|
||||
hash = "sha256-xOqBYwpq46czRZggTNmNcqGqTA8omTLiOeZaF7zSvxo=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
frida-tools
|
||||
];
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
frida-python
|
||||
prompt-toolkit
|
||||
click
|
||||
tabulate
|
||||
semver
|
||||
delegator-py
|
||||
requests
|
||||
flask
|
||||
pygments
|
||||
setuptools
|
||||
packaging
|
||||
litecli
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"objection"
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
pythonRuntimeDepsCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "Runtime mobile exploration toolkit, powered by Frida";
|
||||
longDescription = ''
|
||||
objection is a runtime mobile exploration toolkit, powered by Frida,
|
||||
built to help you assess the security posture of your mobile applications,
|
||||
without needing a jailbreak.
|
||||
'';
|
||||
homepage = "https://github.com/sensepost/objection";
|
||||
changelog = "https://github.com/sensepost/objection/releases/tag/${version}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ nullstring1 ];
|
||||
mainProgram = "objection";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
From 236aa3fa2f5ee68a8be21a5cc3a729fb90539f1e Mon Sep 17 00:00:00 2001
|
||||
From: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
|
||||
Date: Sun, 25 May 2025 20:38:53 +0900
|
||||
Subject: [PATCH] fix: fix -Wincompatible-pointer-types
|
||||
|
||||
fix #2679
|
||||
---
|
||||
src/include/pbs_nodes.h | 4 ++--
|
||||
src/include/svrfunc.h | 2 +-
|
||||
src/include/work_task.h | 2 +-
|
||||
src/lib/Libattr/attr_fn_acl.c | 2 +-
|
||||
src/lib/Libnet/net_server.c | 2 +-
|
||||
src/server/hook_func.c | 2 +-
|
||||
src/server/issue_request.c | 6 +++---
|
||||
src/server/node_manager.c | 2 +-
|
||||
src/server/req_jobobit.c | 2 +-
|
||||
src/server/req_manager.c | 2 +-
|
||||
src/server/svr_movejob.c | 2 +-
|
||||
11 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/src/include/pbs_nodes.h b/src/include/pbs_nodes.h
|
||||
index bc206fdb77..5dbf1a3268 100644
|
||||
--- a/src/include/pbs_nodes.h
|
||||
+++ b/src/include/pbs_nodes.h
|
||||
@@ -391,7 +391,7 @@ extern void set_vnode_state(struct pbsnode *, unsigned long, enum vnode_state_op
|
||||
extern struct resvinfo *find_vnode_in_resvs(struct pbsnode *, enum vnode_degraded_op);
|
||||
extern void free_rinf_list(struct resvinfo *);
|
||||
extern void degrade_offlined_nodes_reservations(void);
|
||||
-extern void degrade_downed_nodes_reservations(void);
|
||||
+extern void degrade_downed_nodes_reservations(struct work_task *);
|
||||
|
||||
extern int mod_node_ncpus(struct pbsnode *pnode, long ncpus, int actmode);
|
||||
extern int initialize_pbsnode(struct pbsnode *, char *, int);
|
||||
@@ -461,7 +461,7 @@ struct pbsnode *node_recov_db(char *nd_name, struct pbsnode *pnode);
|
||||
extern int add_mom_to_pool(mominfo_t *);
|
||||
extern void reset_pool_inventory_mom(mominfo_t *);
|
||||
extern vnpool_mom_t *find_vnode_pool(mominfo_t *pmom);
|
||||
-extern void mcast_msg();
|
||||
+extern void mcast_msg(struct work_task *);
|
||||
int get_job_share_type(struct job *pjob);
|
||||
#endif
|
||||
|
||||
diff --git a/src/include/svrfunc.h b/src/include/svrfunc.h
|
||||
index cc555fa88d..34f9958035 100644
|
||||
--- a/src/include/svrfunc.h
|
||||
+++ b/src/include/svrfunc.h
|
||||
@@ -311,7 +311,7 @@ extern int svr_connect(pbs_net_t, unsigned int, void (*)(int), enum conn_type, i
|
||||
#ifdef _WORK_TASK_H
|
||||
extern void release_req(struct work_task *);
|
||||
#ifdef _BATCH_REQUEST_H
|
||||
-extern int issue_Drequest(int, struct batch_request *, void (*)(), struct work_task **, int);
|
||||
+extern int issue_Drequest(int, struct batch_request *, void (*)(struct work_task *), struct work_task **, int);
|
||||
#endif /* _BATCH_REQUEST_H */
|
||||
#endif /* _WORK_TASK_H */
|
||||
|
||||
diff --git a/src/include/work_task.h b/src/include/work_task.h
|
||||
index 3cceb659b0..4d81795a41 100644
|
||||
--- a/src/include/work_task.h
|
||||
+++ b/src/include/work_task.h
|
||||
@@ -90,7 +90,7 @@ struct work_task {
|
||||
int wt_aux2; /* optional info 2: e.g. *real* child pid (windows), tpp msgid etc */
|
||||
};
|
||||
|
||||
-extern struct work_task *set_task(enum work_type, long event, void (*func)(), void *param);
|
||||
+extern struct work_task *set_task(enum work_type, long event, void (*func)(struct work_task *), void *param);
|
||||
extern int convert_work_task(struct work_task *ptask, enum work_type);
|
||||
extern void clear_task(struct work_task *ptask);
|
||||
extern void dispatch_task(struct work_task *);
|
||||
diff --git a/src/lib/Libattr/attr_fn_acl.c b/src/lib/Libattr/attr_fn_acl.c
|
||||
index 0ef2d5328e..b0373eafeb 100644
|
||||
--- a/src/lib/Libattr/attr_fn_acl.c
|
||||
+++ b/src/lib/Libattr/attr_fn_acl.c
|
||||
@@ -97,7 +97,7 @@ static int user_order(char *old, char *new);
|
||||
static int group_order(char *old, char *new);
|
||||
static int
|
||||
set_allacl(attribute *, attribute *, enum batch_op,
|
||||
- int (*order_func)());
|
||||
+ int (*order_func)(char *, char *));
|
||||
|
||||
/* for all decode_*acl() - use decode_arst() */
|
||||
/* for all encode_*acl() - use encode_arst() */
|
||||
diff --git a/src/lib/Libnet/net_server.c b/src/lib/Libnet/net_server.c
|
||||
index 045acd303d..b9f6470dbd 100644
|
||||
--- a/src/lib/Libnet/net_server.c
|
||||
+++ b/src/lib/Libnet/net_server.c
|
||||
@@ -104,7 +104,7 @@ static char logbuf[256];
|
||||
/* Private function within this file */
|
||||
static int conn_find_usable_index(int);
|
||||
static int conn_find_actual_index(int);
|
||||
-static void accept_conn();
|
||||
+static void accept_conn(int);
|
||||
static void cleanup_conn(int);
|
||||
|
||||
/**
|
||||
diff --git a/src/server/hook_func.c b/src/server/hook_func.c
|
||||
index b9534dfb9a..e0d0e52745 100644
|
||||
--- a/src/server/hook_func.c
|
||||
+++ b/src/server/hook_func.c
|
||||
@@ -229,7 +229,7 @@ extern pbs_list_head svr_execjob_preresume_hooks;
|
||||
extern time_t time_now;
|
||||
extern struct python_interpreter_data svr_interp_data;
|
||||
extern pbs_list_head task_list_event;
|
||||
-extern struct work_task *add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(), char *msgid, void *parm1, void *parm2);
|
||||
+extern struct work_task *add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(struct work_task *), char *msgid, void *parm1, void *parm2);
|
||||
|
||||
extern char *path_rescdef;
|
||||
extern char *path_hooks_rescdef;
|
||||
diff --git a/src/server/issue_request.c b/src/server/issue_request.c
|
||||
index 6bef14553b..6cf28dab76 100644
|
||||
--- a/src/server/issue_request.c
|
||||
+++ b/src/server/issue_request.c
|
||||
@@ -201,7 +201,7 @@ reissue_to_svr(struct work_task *pwt)
|
||||
/* either timed-out or got hard error, tell post-function */
|
||||
pwt->wt_aux = -1; /* seen as error by post function */
|
||||
pwt->wt_event = -1; /* seen as connection by post func */
|
||||
- ((void (*)()) pwt->wt_parm2)(pwt);
|
||||
+ ((void (*)(struct work_task *)) pwt->wt_parm2)(pwt);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -326,7 +326,7 @@ release_req(struct work_task *pwt)
|
||||
*
|
||||
*/
|
||||
struct work_task *
|
||||
-add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(), char *msgid, void *parm1, void *parm2)
|
||||
+add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(struct work_task *), char *msgid, void *parm1, void *parm2)
|
||||
{
|
||||
struct work_task *ptask = NULL;
|
||||
|
||||
@@ -394,7 +394,7 @@ add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(), char *msgid,
|
||||
*
|
||||
*/
|
||||
int
|
||||
-issue_Drequest(int conn, struct batch_request *request, void (*func)(), struct work_task **ppwt, int prot)
|
||||
+issue_Drequest(int conn, struct batch_request *request, void (*func)(struct work_task *), struct work_task **ppwt, int prot)
|
||||
{
|
||||
struct attropl *patrl;
|
||||
struct work_task *ptask;
|
||||
diff --git a/src/server/node_manager.c b/src/server/node_manager.c
|
||||
index a6fbf5805e..62661a2361 100644
|
||||
--- a/src/server/node_manager.c
|
||||
+++ b/src/server/node_manager.c
|
||||
@@ -7923,7 +7923,7 @@ degrade_offlined_nodes_reservations(void)
|
||||
* @par MT-safe: No
|
||||
*/
|
||||
void
|
||||
-degrade_downed_nodes_reservations(void)
|
||||
+degrade_downed_nodes_reservations(struct work_task *)
|
||||
{
|
||||
int i;
|
||||
struct pbsnode *pn;
|
||||
diff --git a/src/server/req_jobobit.c b/src/server/req_jobobit.c
|
||||
index 37581cead4..034c3c0680 100644
|
||||
--- a/src/server/req_jobobit.c
|
||||
+++ b/src/server/req_jobobit.c
|
||||
@@ -1337,7 +1337,7 @@ job_obit(ruu *pruu, int stream)
|
||||
job *pjob;
|
||||
svrattrl *patlist;
|
||||
struct work_task *ptask;
|
||||
- void (*eojproc)();
|
||||
+ void (*eojproc)(struct work_task *);
|
||||
char *mailmsg = NULL;
|
||||
char *msg = NULL;
|
||||
|
||||
diff --git a/src/server/req_manager.c b/src/server/req_manager.c
|
||||
index 14a50de62e..ac617d7be8 100644
|
||||
--- a/src/server/req_manager.c
|
||||
+++ b/src/server/req_manager.c
|
||||
@@ -3612,7 +3612,7 @@ check_resource_set_on_jobs_or_resvs(struct batch_request *preq, resource_def *pr
|
||||
* helper function to send/update resourcedef file.
|
||||
*/
|
||||
static void
|
||||
-timed_send_rescdef()
|
||||
+timed_send_rescdef(struct work_task *)
|
||||
{
|
||||
send_rescdef(1); /* forcing with 1 to avoid failures due to intermittent file stamp race issues */
|
||||
rescdef_wt_g = NULL;
|
||||
diff --git a/src/server/svr_movejob.c b/src/server/svr_movejob.c
|
||||
index c438d5d739..8947dc8c85 100644
|
||||
--- a/src/server/svr_movejob.c
|
||||
+++ b/src/server/svr_movejob.c
|
||||
@@ -122,7 +122,7 @@ extern time_t time_now;
|
||||
extern int svr_create_tmp_jobscript(job *pj, char *script_name);
|
||||
extern int scheduler_jobs_stat;
|
||||
extern char *path_hooks_workdir;
|
||||
-extern struct work_task *add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(), char *msgid, void *parm1, void *parm2);
|
||||
+extern struct work_task *add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(struct work_task *), char *msgid, void *parm1, void *parm2);
|
||||
|
||||
/**
|
||||
* @brief
|
||||
@@ -0,0 +1,58 @@
|
||||
diff --git a/src/cmds/qstat.c b/src/cmds/qstat.c
|
||||
index 440e37cb..cb7fe62c 100644
|
||||
--- a/src/cmds/qstat.c
|
||||
+++ b/src/cmds/qstat.c
|
||||
@@ -76,7 +76,6 @@ extern char *tcl_atrsep;
|
||||
/* default server */
|
||||
char *def_server;
|
||||
|
||||
-static void states();
|
||||
static char *cvtResvstate(char *);
|
||||
static int cmp_est_time(struct batch_status *a, struct batch_status *b);
|
||||
char *cnvt_est_start_time(char *start_time, int shortform);
|
||||
diff --git a/src/cmds/qsub.c b/src/cmds/qsub.c
|
||||
index f02bb5ef..54871a08 100644
|
||||
--- a/src/cmds/qsub.c
|
||||
+++ b/src/cmds/qsub.c
|
||||
@@ -89,6 +89,7 @@
|
||||
#include <assert.h>
|
||||
#include <sys/un.h>
|
||||
#include <syslog.h>
|
||||
+#include <unistd.h>
|
||||
#include "pbs_ifl.h"
|
||||
#include "cmds.h"
|
||||
#include "libpbs.h"
|
||||
@@ -1944,7 +1945,6 @@ job_env_basic(void)
|
||||
struct utsname uns;
|
||||
#endif
|
||||
int len = 0;
|
||||
- char *getcwd();
|
||||
|
||||
/* Calculate how big to make the variable string. */
|
||||
len = 0;
|
||||
diff --git a/src/include/qmgr.h b/src/include/qmgr.h
|
||||
index eb021c53..17ae6522 100644
|
||||
--- a/src/include/qmgr.h
|
||||
+++ b/src/include/qmgr.h
|
||||
@@ -143,7 +143,7 @@ struct objname {
|
||||
/* prototypes */
|
||||
struct objname *commalist2objname(char *, int);
|
||||
struct server *find_server(char *);
|
||||
-struct server *make_connection();
|
||||
+struct server *make_connection(char *);
|
||||
struct server *new_server();
|
||||
struct objname *new_objname();
|
||||
struct objname *strings2objname(char **, int, int);
|
||||
diff --git a/src/tools/pbs_tclWrap.c b/src/tools/pbs_tclWrap.c
|
||||
index 558528ad..1a9dd1d4 100644
|
||||
--- a/src/tools/pbs_tclWrap.c
|
||||
+++ b/src/tools/pbs_tclWrap.c
|
||||
@@ -273,7 +273,7 @@ int
|
||||
GetREQ(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
|
||||
{
|
||||
int fd;
|
||||
- char *ret, *getreq();
|
||||
+ char *ret;
|
||||
char *cmd;
|
||||
|
||||
cmd = Tcl_GetStringFromObj(objv[0], NULL);
|
||||
@@ -0,0 +1,116 @@
|
||||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
autoconf,
|
||||
automake,
|
||||
libtool,
|
||||
gnum4,
|
||||
symlinkJoin,
|
||||
tcl-8_5,
|
||||
tk-8_5,
|
||||
swig,
|
||||
pkg-config,
|
||||
cjson,
|
||||
openssl,
|
||||
zlib,
|
||||
libxt,
|
||||
libx11,
|
||||
libpq,
|
||||
python3,
|
||||
expat,
|
||||
libedit,
|
||||
hwloc,
|
||||
libical,
|
||||
krb5,
|
||||
munge,
|
||||
findutils,
|
||||
gawk,
|
||||
}:
|
||||
let
|
||||
tclWithTk = symlinkJoin {
|
||||
name = "tcl-with-tk";
|
||||
paths = [
|
||||
tcl-8_5
|
||||
tk-8_5
|
||||
tk-8_5.dev
|
||||
];
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "openpbs";
|
||||
version = "23.06.06-unstable-2026-01-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openpbs";
|
||||
repo = "openpbs";
|
||||
rev = "cfd431b703e8cbe3bc99db6fbbcdd970625ef032";
|
||||
hash = "sha256-NZoSZmcl9a/6YWHO7qRNknB6ii0JBLo5bOpHDRKeuwI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
gnum4
|
||||
tclWithTk
|
||||
swig
|
||||
pkg-config
|
||||
cjson
|
||||
];
|
||||
buildInputs = [
|
||||
openssl
|
||||
zlib
|
||||
libxt
|
||||
libx11
|
||||
libpq
|
||||
python3
|
||||
expat
|
||||
libedit
|
||||
hwloc
|
||||
libical
|
||||
krb5
|
||||
munge
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = [
|
||||
./2709.patch
|
||||
./2711.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/cmds/scripts/Makefile.am --replace-fail "/etc/profile.d" "$out/etc/profile.d"
|
||||
substituteInPlace m4/pbs_systemd_unitdir.m4 --replace-fail "/usr/lib/systemd/system" "$out/lib/systemd/system"
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
./autogen.sh
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-tcl=${tclWithTk}"
|
||||
"--with-swig=${swig}"
|
||||
"--sysconfdir=$out/etc"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
cp src/scheduler/pbs_{dedicated,holidays,resource_group,sched_config} $out/etc/
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
substituteInPlace $out/libexec/pbs_habitat --replace-fail /bin/ls ls
|
||||
find $out/bin/ $out/sbin/ $out/libexec/ $out/lib/ -type f -exec file "{}" + |
|
||||
awk -F: '/ELF/ {print $1}' |
|
||||
xargs patchelf --add-needed libmunge.so --add-rpath ${munge}/lib
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "HPC workload manager and job scheduler for desktops, clusters, and clouds";
|
||||
homepage = "https://www.openpbs.org/";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [ lisanna-dettwyler ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
Commit ID: 0527fcb65d6af4271a33dbd425f30d457fc7ab4f
|
||||
Change ID: puqrnyuutmspqxqtkkqqrsmsxnyqvomm
|
||||
Author : Ricardo Correia <someplaceguy@wizy.org> (2026-02-18 23:51:00)
|
||||
Committer: Ricardo Correia <someplaceguy@wizy.org> (2026-02-19 00:43:47)
|
||||
|
||||
(no description set)
|
||||
|
||||
diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c
|
||||
index 2365b1ee46..b9e40e1417 100644
|
||||
--- a/usr.sbin/smtpd/smtpd.c
|
||||
+++ b/usr.sbin/smtpd/smtpd.c
|
||||
@@ -1806,7 +1806,7 @@
|
||||
envp[1] = (char *)NULL;
|
||||
environ = envp;
|
||||
|
||||
- execvp(PATH_SMTPCTL, args.list);
|
||||
+ execvp(@@PATH_SENDMAIL@@, args.list);
|
||||
_exit(1);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
pam,
|
||||
libxcrypt,
|
||||
nixosTests,
|
||||
binPath ? "/run/wrappers/bin",
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -43,11 +44,20 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
patches = [
|
||||
./proc_path.diff # TODO: upstream to OpenSMTPD, see https://github.com/NixOS/nixpkgs/issues/54045
|
||||
./offline.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace mk/smtpctl/Makefile.am --replace "chgrp" "true"
|
||||
substituteInPlace mk/smtpctl/Makefile.am --replace "chmod 2555" "chmod 0555"
|
||||
substituteInPlace mk/smtpctl/Makefile.am \
|
||||
--replace-fail "chgrp" "true" \
|
||||
--replace "chmod 2555" "chmod 0555"
|
||||
substituteInPlace mk/pathnames \
|
||||
--replace-fail "-DPATH_SMTPCTL=\\\"\$(sbindir)" \
|
||||
"-DPATH_SMTPCTL=\\\"${binPath}" \
|
||||
--replace-fail "-DPATH_MAKEMAP=\\\"\$(sbindir)" \
|
||||
"-DPATH_MAKEMAP=\\\"${binPath}"
|
||||
substituteInPlace usr.sbin/smtpd/smtpd.c \
|
||||
--replace-fail "@@PATH_SENDMAIL@@" "\"${binPath}/sendmail\""
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
|
||||
@@ -1,34 +1,38 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
zig,
|
||||
pkg-config,
|
||||
libx11,
|
||||
libxft,
|
||||
libxrender,
|
||||
libxinerama,
|
||||
lua5_4,
|
||||
freetype,
|
||||
fontconfig,
|
||||
versionCheckHook,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "oxwm";
|
||||
version = "0.9.0";
|
||||
version = "0.11.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tonybanters";
|
||||
repo = "oxwm";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-zVYYRGe5ZIR1AJgKZi9s403NKM7hKAqhEbNWYSkgpT0=";
|
||||
hash = "sha256-W6muqajSk9UR646ZmLkx/wWfiaWLo+d1lJMiLm82NC8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Rs8eGR8WY7qOPM0rfu6lTNDl6TVMR+rrIc6Ub+M7vfs=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [
|
||||
zig.hook
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libx11
|
||||
libxft
|
||||
libxrender
|
||||
libxinerama
|
||||
lua5_4
|
||||
freetype
|
||||
fontconfig
|
||||
];
|
||||
@@ -36,8 +40,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
# tests require a running X server
|
||||
doCheck = false;
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
versionCheckProgramArg = "--version";
|
||||
versionCheckKeepEnvironment = [ "HOME" ];
|
||||
nativeInstallCheckInputs = [
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 resources/oxwm.desktop -t $out/share/xsessions
|
||||
@@ -48,7 +56,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
passthru.providedSessions = [ "oxwm" ];
|
||||
|
||||
meta = {
|
||||
description = "Dynamic window manager written in Rust, inspired by dwm";
|
||||
description = "Dynamic window manager written in Zig, inspired by dwm";
|
||||
homepage = "https://github.com/tonybanters/oxwm";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ tonybanters ];
|
||||
|
||||
@@ -9,15 +9,15 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "paqet";
|
||||
version = "1.0.0-alpha.15";
|
||||
version = "1.0.0-alpha.18";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hanselime";
|
||||
repo = "paqet";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-ryspYKbnDT7emEftRWCZLVNFDEOvAv7IhdM4VBRQjKc=";
|
||||
hash = "sha256-FuCbQz+Lhbw/xHJYhZo4uxH2ODV/uVFR7XDOK5DKZkU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Vf3bKdhlM4vqzBv5RAwHeShGHudEh1VNTCFxAL/cwLw=";
|
||||
vendorHash = "sha256-olyjpzHZKgD5fhXSyCmEuwYmcJGMUS+b+Hglm2JF1NY=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
buildInputs = [ libpcap ];
|
||||
|
||||
@@ -1,55 +1,84 @@
|
||||
{
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
versionCheckHook,
|
||||
nixosTests,
|
||||
lib,
|
||||
nix-update-script,
|
||||
writableTmpDirAsHomeHook,
|
||||
nixosTests,
|
||||
python3Packages,
|
||||
versionCheckHook,
|
||||
|
||||
extras ? [
|
||||
# upstream requires one of: psycopg, psycopg2
|
||||
"psycopg2"
|
||||
|
||||
# distributed configuration stores
|
||||
"consul"
|
||||
"etcd"
|
||||
"etcd3"
|
||||
"exhibitor"
|
||||
"kubernetes"
|
||||
"raft"
|
||||
"zookeeper"
|
||||
],
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "patroni";
|
||||
version = "4.1.0";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zalando";
|
||||
repo = "patroni";
|
||||
tag = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-iY5QLbJXfQtfkzpQxvqSOzYQwgfFsBh8HPYujqxU44k=";
|
||||
hash = "sha256-iY5QLbJXfQtfkzpQxvqSOzYQwgfFsBh8HPYujqxU44k=";
|
||||
};
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
boto3
|
||||
click
|
||||
consul
|
||||
dnspython
|
||||
kazoo
|
||||
kubernetes
|
||||
prettytable
|
||||
psutil
|
||||
psycopg2
|
||||
pysyncobj
|
||||
python-dateutil
|
||||
python-etcd
|
||||
pyyaml
|
||||
tzlocal
|
||||
urllib3
|
||||
ydiff
|
||||
build-system = with python3Packages; [ setuptools ];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"ydiff" # requires <1.5
|
||||
];
|
||||
|
||||
dependencies =
|
||||
(with python3Packages; [
|
||||
click
|
||||
consul
|
||||
prettytable
|
||||
psutil
|
||||
python-dateutil
|
||||
pyyaml
|
||||
urllib3
|
||||
ydiff
|
||||
])
|
||||
++ lib.attrVals extras finalAttrs.passthru.optional-dependencies;
|
||||
|
||||
optional-dependencies = with python3Packages; {
|
||||
aws = [ boto3 ];
|
||||
consul = [ consul ];
|
||||
etcd = [ python-etcd ];
|
||||
etcd3 = [ python-etcd ];
|
||||
exhibitor = [ kazoo ];
|
||||
jsonlogger = [ python-json-logger ];
|
||||
kubernetes = [ ];
|
||||
psycopg2 = [ psycopg2 ];
|
||||
psycopg2-binary = [ psycopg2-binary ];
|
||||
psycopg3 = [ psycopg ];
|
||||
raft = [
|
||||
cryptography
|
||||
pysyncobj
|
||||
];
|
||||
systemd = [ systemd-python ];
|
||||
zookeeper = [ kazoo ];
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "patroni" ];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
flake8
|
||||
mock
|
||||
pytestCheckHook
|
||||
pytest-cov-stub
|
||||
requests
|
||||
versionCheckHook
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
nativeCheckInputs =
|
||||
(with python3Packages; [
|
||||
pytestCheckHook
|
||||
versionCheckHook
|
||||
])
|
||||
++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies;
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
@@ -60,14 +89,15 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://patroni.readthedocs.io/en/latest/";
|
||||
changelog = "https://github.com/patroni/patroni/blob/${finalAttrs.src.tag}/docs/releases.rst";
|
||||
description = "Template for PostgreSQL HA with ZooKeeper, etcd or Consul";
|
||||
changelog = "https://github.com/patroni/patroni/blob/v${finalAttrs.version}/docs/releases.rst";
|
||||
homepage = "https://patroni.readthedocs.io/en/latest/";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "patroni";
|
||||
maintainers = with lib.maintainers; [
|
||||
de11n
|
||||
despsyched
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
fetchPnpmDeps,
|
||||
|
||||
nodejs,
|
||||
pnpm_10,
|
||||
pnpmConfigHook,
|
||||
cargo-tauri,
|
||||
jq,
|
||||
moreutils,
|
||||
pkg-config,
|
||||
wrapGAppsHook3,
|
||||
makeBinaryWrapper,
|
||||
|
||||
openssl,
|
||||
webkitgtk_4_1,
|
||||
gst_all_1,
|
||||
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
let
|
||||
pnpm = pnpm_10;
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "pawn-appetit";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Pawn-Appetit";
|
||||
repo = "pawn-appetit";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-WJ/tFOizESDqdLy4maMKUZ79mgyyxqLuwCxWZ0+NVX4=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs)
|
||||
pname
|
||||
version
|
||||
src
|
||||
;
|
||||
inherit pnpm;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-amXrz/ZzvjvNYlqxzTtQXiZw/NnUVJ7PhqG8oHsEe88=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
jq '.plugins.updater.endpoints = [ ] | .bundle.createUpdaterArtifacts = false' src-tauri/tauri.conf.json | sponge src-tauri/tauri.conf.json
|
||||
'';
|
||||
|
||||
cargoRoot = "src-tauri";
|
||||
|
||||
cargoHash = "sha256-UKaW+NiNA398nyGs9+SjY+tUvLjCPrSxX6bZLSl7/EQ=";
|
||||
|
||||
buildAndTestSubdir = finalAttrs.cargoRoot;
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
pnpm
|
||||
pnpmConfigHook
|
||||
|
||||
cargo-tauri.hook
|
||||
jq
|
||||
moreutils
|
||||
pkg-config
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook3 ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ makeBinaryWrapper ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
openssl
|
||||
webkitgtk_4_1
|
||||
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gst-plugins-bad
|
||||
];
|
||||
|
||||
doCheck = false; # many scoring tests fail
|
||||
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
makeWrapper "$out"/Applications/pawn-appetit.app/Contents/MacOS/pawn-appetit $out/bin/pawn-appetit
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Ultimate Chess Toolkit (fork of en-croissant)";
|
||||
homepage = "https://github.com/Pawn-Appetit/pawn-appetit/";
|
||||
license = lib.licenses.gpl3Only;
|
||||
mainProgram = "pawn-appetit";
|
||||
maintainers = with lib.maintainers; [ snu ];
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
})
|
||||
@@ -3,6 +3,7 @@
|
||||
stdenv,
|
||||
config,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
|
||||
# nativeBuildInputs
|
||||
cmake,
|
||||
@@ -42,6 +43,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-+KyaajJM0I5CAcr8AiOLC4TkGV3Gm73a0/X8LQWFZMI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# see https://github.com/NixOS/nixpkgs/issues/485826 to be removed at next release after 1.15.1
|
||||
name = "boost-1.89.patch";
|
||||
url = "https://github.com/PointCloudLibrary/pcl/commit/99333442ac63971297b4cdd05fab9d2bd2ff57a4.patch";
|
||||
hash = "sha256-5vg8VjxoAfEOx9n7Tby1DXe1u4rn+zharkefUovLHv0=";
|
||||
})
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
# remove attempt to prevent (x86/x87-specific) extended precision use
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "portunus";
|
||||
version = "2.1.4";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "majewsky";
|
||||
repo = "portunus";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-xZb2+IIZkZd/yGr0+FK7Bi3sZpPMfGz/QmUKn/clrwE=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PvsqI0kwO0pA2xOouI3DmhwzDCrtyBXCBXyWDy4bEmI=";
|
||||
};
|
||||
|
||||
buildInputs = [ libxcrypt ];
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "pyzy";
|
||||
version = "1.1-unstable-2023-02-28";
|
||||
version = "1.1-unstable-2026-02-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openSUSE";
|
||||
repo = "pyzy";
|
||||
rev = "ec719d053bd491ec64fe68fe0d1699ca6039ad80";
|
||||
hash = "sha256-wU7EgP/CPNhBx9N7mOu0WdnoLazzpQtbRxmBKrTUbKM=";
|
||||
rev = "5ac51d833777a881e80f0b23d704345cf0feb0d0";
|
||||
hash = "sha256-OiFdog34kjmgF2DCnA8LjlZseZPQ8iCYQD4HZKNnCVU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
python3Packages,
|
||||
testers,
|
||||
nix-update-script,
|
||||
qbit-manage,
|
||||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "qbit-manage";
|
||||
version = "4.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StuffAnThings";
|
||||
repo = "qbit_manage";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-JCsbf2mPRhs7Mbekl946G/y/CSNSSvQBLvlwVy/Avcg=";
|
||||
};
|
||||
|
||||
pyproject = true;
|
||||
build-system = [ python3Packages.setuptools ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace "==" ">=" \
|
||||
--replace "bencodepy" "bencode.py"
|
||||
'';
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
argon2-cffi
|
||||
bencode-py
|
||||
croniter
|
||||
fastapi
|
||||
gitpython
|
||||
humanize
|
||||
pytimeparse2
|
||||
qbittorrent-api
|
||||
requests
|
||||
retrying
|
||||
ruamel-yaml
|
||||
slowapi
|
||||
uvicorn
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"fastapi"
|
||||
"gitpython"
|
||||
"humanize"
|
||||
"ruamel.yaml"
|
||||
"uvicorn"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
tests = {
|
||||
version = testers.testVersion {
|
||||
package = qbit-manage;
|
||||
command = "env HOME=$TMPDIR qbit-manage --version";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "This tool will help manage tedious tasks in qBittorrent and automate them";
|
||||
homepage = "https://github.com/StuffAnThings/qbit_manage";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ flyingpeakock ];
|
||||
platforms = lib.platforms.all;
|
||||
mainProgram = "qbit-manage";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
alsa-lib,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
openssl,
|
||||
pkg-config,
|
||||
protobuf,
|
||||
rustPlatform,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "qobuz-player";
|
||||
version = "0.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SofusA";
|
||||
repo = "qobuz-player";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-LStCoBr3BblXRpuno+QKxyJstvrNmP+wub61491NkPY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6fUwZkXurjV9yM2Mur0lAkgFxTAEmt92DFKzbPj3Vo4=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
protobuf
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
openssl
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Tui, web and rfid player for Qobuz";
|
||||
homepage = "https://github.com/SofusA/qobuz-player";
|
||||
changelog = "https://github.com/SofusA/qobuz-player/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
felixsinger
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "qobuz-player";
|
||||
};
|
||||
})
|
||||
@@ -14,21 +14,16 @@
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "serigy";
|
||||
version = "1.1";
|
||||
version = "2.0.0";
|
||||
pyproject = false; # uses meson
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CleoMenezesJr";
|
||||
repo = "Serigy";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-1PlGR7aX7Ekrbe7+Qm0E1h6yl6CzdIcV2R3MSIIeH6o=";
|
||||
hash = "sha256-0Dc/Y0GYXMNFQ1rWCQaCZzN1Z8lMwdj0wO47pLUV5mM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/setup_dialog.py \
|
||||
--replace-fail "flatpak run io.github.cleomenezesjr.Serigy" "serigy"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
|
||||
+33
-65
@@ -1,73 +1,14 @@
|
||||
{
|
||||
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
|
||||
"!version": 1,
|
||||
"https://central.sonatype.com/repository/maven-snapshots/com/badlogicgames": {
|
||||
"gdx#gdx-backend-lwjgl3/1.13.6-20251003.170113-33/SNAPSHOT": {
|
||||
"jar": "sha256-T2/VHXjfySwA+IjO2Bm0h29WvyoJsKyLmx2lkkBVJRw=",
|
||||
"module": "sha256-JNBWxVhzTj4LFBGT/kZc36chXJ2uqwaUtcMUGQFLn2I=",
|
||||
"pom": "sha256-P7DA/UDAWmA+/t4H3EJkktKK/e9+pX0gH4fpljqZXWQ="
|
||||
},
|
||||
"gdx#gdx-freetype-platform/1.13.6-20251003.170113-34/SNAPSHOT": {
|
||||
"pom": "sha256-kTnggHqjEcoBlUTM+K15WHCqKodiKvGPrgnTHuTKU4o="
|
||||
},
|
||||
"gdx#gdx-freetype-platform/1.13.6-20251003.170113-34/SNAPSHOT/natives-desktop": {
|
||||
"jar": "sha256-oHueMYiUcjnj/Ub6rxlyvLcqXRCVNlqGlV27aYHBqAs="
|
||||
},
|
||||
"gdx#gdx-freetype/1.13.6-20251003.170113-34/SNAPSHOT": {
|
||||
"jar": "sha256-S6xHm1D4e5bWdtozqD1fwHe86HZAfnZ6KhzlIxXFf7s=",
|
||||
"module": "sha256-gqUIFknNKRsg9HMnX0Gis0IEvIpJW8kphcjtwCAoLo4=",
|
||||
"pom": "sha256-wi92v9kAtTv++AZjKT3wJYBeISF98NLNy26X9kEVFSk="
|
||||
},
|
||||
"gdx#gdx-platform/1.13.6-20251003.170113-33/SNAPSHOT": {
|
||||
"pom": "sha256-UW0w1+UTHDD4HaYruY6QVmd/ur/0vHS4wYDZ5hDCEuQ="
|
||||
},
|
||||
"gdx#gdx-platform/1.13.6-20251003.170113-33/SNAPSHOT/natives-desktop": {
|
||||
"jar": "sha256-yBteE7BAK+MEG1e43PjmQZy03S6LIcvJt4W41bGp34s="
|
||||
},
|
||||
"gdx#gdx/1.13.6-20251003.170113-33/SNAPSHOT": {
|
||||
"jar": "sha256-GUbkm354hjSxjlPFsfQmTQi5FDcGEQUEry+avKWhsxI=",
|
||||
"module": "sha256-t9BpvisJ2P37hHmwRUGxAKbCwhH6faZXL9AZ9V4T8Hw=",
|
||||
"pom": "sha256-aDtJJZT/VHJyxd5RKFrQbc32IFT2wk9R7LeDvhBt8v4="
|
||||
},
|
||||
"gdx/gdx-backend-lwjgl3/1.13.6-SNAPSHOT/maven-metadata": {
|
||||
"xml": {
|
||||
"groupId": "com.badlogicgames.gdx",
|
||||
"lastUpdated": "20251003191628"
|
||||
}
|
||||
},
|
||||
"gdx/gdx-freetype-platform/1.13.6-SNAPSHOT/maven-metadata": {
|
||||
"xml": {
|
||||
"groupId": "com.badlogicgames.gdx",
|
||||
"lastUpdated": "20251003191640"
|
||||
}
|
||||
},
|
||||
"gdx/gdx-freetype/1.13.6-SNAPSHOT/maven-metadata": {
|
||||
"xml": {
|
||||
"groupId": "com.badlogicgames.gdx",
|
||||
"lastUpdated": "20251003191639"
|
||||
}
|
||||
},
|
||||
"gdx/gdx-platform/1.13.6-SNAPSHOT/maven-metadata": {
|
||||
"xml": {
|
||||
"groupId": "com.badlogicgames.gdx",
|
||||
"lastUpdated": "20251010022949"
|
||||
}
|
||||
},
|
||||
"gdx/gdx/1.13.6-SNAPSHOT/maven-metadata": {
|
||||
"xml": {
|
||||
"groupId": "com.badlogicgames.gdx",
|
||||
"lastUpdated": "20251003191624"
|
||||
}
|
||||
}
|
||||
},
|
||||
"https://plugins.gradle.org/m2/org": {
|
||||
"beryx#badass-runtime-plugin/1.13.1": {
|
||||
"jar": "sha256-IW3RL1SacHD31B2wTupXAaF5Z0mzVerAzkMVLs0DGBc=",
|
||||
"module": "sha256-Jf4I7QwECTJuc38vDJ/7BhyFQihl53ATdMOVyjpy9PA=",
|
||||
"pom": "sha256-qZgenE/Me3hqUL+/IW93EBgs27ECjqsGiavMYeS37XI="
|
||||
"beryx#badass-runtime-plugin/2.0.1": {
|
||||
"jar": "sha256-qc8YDAVtxs/vU2XOjloPJml5eJr7CUdlERPRyqm2UhQ=",
|
||||
"module": "sha256-Y1r26XwZhilpzegxJvdwltB8i536+fk+x2sQYCukbcY=",
|
||||
"pom": "sha256-l6xBsi4rPVcN9UXfSjFHmkVqH5O0bMl27Jo/WdHw/Ak="
|
||||
},
|
||||
"beryx/runtime#org.beryx.runtime.gradle.plugin/1.13.1": {
|
||||
"pom": "sha256-7SsiPX22wuiujLyvq8E96b0kKfwfNMtEFVh0jJCBu+U="
|
||||
"beryx/runtime#org.beryx.runtime.gradle.plugin/2.0.1": {
|
||||
"pom": "sha256-Jm5jyHX+OFPIobK4qpMSMU2uK+ceihR2Z/mSnRwc1tQ="
|
||||
},
|
||||
"slf4j#slf4j-api/1.7.32": {
|
||||
"jar": "sha256-NiT4R0wa9G11+YvAl9eGSjI8gbOAiqQ2iabhxgHAJ74=",
|
||||
@@ -78,11 +19,38 @@
|
||||
}
|
||||
},
|
||||
"https://repo.maven.apache.org/maven2": {
|
||||
"com/badlogicgames/gdx#gdx-backend-lwjgl3/1.14.0": {
|
||||
"jar": "sha256-3pV68nyhyv+3eO2hqNMbmDXcc/AEcB0WduyjOWMHICA=",
|
||||
"module": "sha256-GJYW7PSrxbXLJMt1Xwc+IsogkUv4ojCdFdJ/fnpoyOU=",
|
||||
"pom": "sha256-S+xaAWtXxkg0Rruzr4XV0V9f4gedhSpnTcVLMOWd9pY="
|
||||
},
|
||||
"com/badlogicgames/gdx#gdx-freetype-platform/1.14.0": {
|
||||
"pom": "sha256-qQmd0nb4AW2O5i/+TUneaeGohmjS2crXrGc7PvSbKM0="
|
||||
},
|
||||
"com/badlogicgames/gdx#gdx-freetype-platform/1.14.0/natives-desktop": {
|
||||
"jar": "sha256-SFwrJdkZBLlBQ0Bm+BAgBpJHMMLCONBIcq5goC63Ofc="
|
||||
},
|
||||
"com/badlogicgames/gdx#gdx-freetype/1.14.0": {
|
||||
"jar": "sha256-Pr/nUymeEYNLyIzzxMDCzIucJDWsA+VgsKh2QlZYK7Q=",
|
||||
"module": "sha256-fUf8X7lgc5I5ddUqrgMuACcJ144JKU/wOK6K3R7W44A=",
|
||||
"pom": "sha256-Rtq9qlQ6ZRDgUGOMNmphRdkGkbIaBiEf+rSbICMyQiw="
|
||||
},
|
||||
"com/badlogicgames/gdx#gdx-jnigen-loader/2.5.2": {
|
||||
"jar": "sha256-34HyPP1nhcUtNeEI7qo5MPVZ1NJ3CmEC51ynv6b58no=",
|
||||
"module": "sha256-jwtii5G9Ez24XxUuFZMprPf0tmeDvR32AcNZfcJRIiQ=",
|
||||
"pom": "sha256-i0dgu2bbPz+ZuEBj7z6ZDWOhzZx81XSlatf07kvRdoc="
|
||||
},
|
||||
"com/badlogicgames/gdx#gdx-platform/1.14.0": {
|
||||
"pom": "sha256-2Ps74A82eRr6thqFkeVCr7qkkQEHoFdUnMlwBu2NoRs="
|
||||
},
|
||||
"com/badlogicgames/gdx#gdx-platform/1.14.0/natives-desktop": {
|
||||
"jar": "sha256-qKjJzM9endUYJWs8315raJpdaWoU4EYK9bDLxR218vE="
|
||||
},
|
||||
"com/badlogicgames/gdx#gdx/1.14.0": {
|
||||
"jar": "sha256-owWJXpFfxfWUg95dOZokoMpi/hFQFf/oIQw249ZPgSY=",
|
||||
"module": "sha256-xJCoyufsdrraEiLaEyJl5fqyyyzc3q51IXrIhkmUWyU=",
|
||||
"pom": "sha256-CiUFNinRwfRgZMN7orOC0MRmQstKTssVF3jbNXEKmgw="
|
||||
},
|
||||
"com/badlogicgames/gdx-controllers#gdx-controllers-core/2.2.4": {
|
||||
"jar": "sha256-BNpnYnsaNkbvjyFMkdKWdCp8BVl9vCFnqqsJy9zHdHA=",
|
||||
"module": "sha256-dxOP5TsOdeRf4dOROsublicWFxCuVPJUR0sizmp6pIA=",
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
callPackage ./generic.nix rec {
|
||||
pname = "shattered-pixel-dungeon";
|
||||
version = "3.2.5";
|
||||
version = "3.3.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "00-Evan";
|
||||
repo = "shattered-pixel-dungeon";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ltCKM46nzZZVJqHzo3V0Igyd4q+uD95fuLMWCi18jbQ=";
|
||||
hash = "sha256-NxeDF0bfQJsJiWkAD8ynjtezPZZ5TaU0ih1t2uVtXVU=";
|
||||
};
|
||||
|
||||
patches = [ ];
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
pkg-config,
|
||||
alsa-lib,
|
||||
openssl,
|
||||
pipewire,
|
||||
|
||||
withPipewireVisualizer ? true,
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "spotatui";
|
||||
version = "0.36.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LargeModGames";
|
||||
repo = "spotatui";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-E8VIMQUGKWAauN/GTGMOdvHsghhO4E0wVdE9lIk6zEc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-nHOLOlAZfp2k0nMAywTJT+TiTkUeybRVu+PkADBY22w=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ] ++ lib.optional withPipewireVisualizer rustPlatform.bindgenHook;
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
openssl
|
||||
]
|
||||
++ lib.optional withPipewireVisualizer pipewire;
|
||||
|
||||
buildNoDefaultFeatures = true;
|
||||
buildFeatures = [
|
||||
"discord-rpc"
|
||||
"mpris"
|
||||
"streaming"
|
||||
"telemetry"
|
||||
]
|
||||
++ lib.optional withPipewireVisualizer "audio-viz";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Fully standalone Spotify client for the terminal";
|
||||
homepage = "https://github.com/LargeModGames/spotatui";
|
||||
changelog = "https://github.com/LargeModGames/spotatui/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.lordmzte ];
|
||||
mainProgram = "spotatui";
|
||||
|
||||
# macOS is supported by upstream, but the package maintainer has no way to test this.
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
lib,
|
||||
symlinkJoin,
|
||||
tdarr-server,
|
||||
tdarr-node,
|
||||
}:
|
||||
|
||||
symlinkJoin {
|
||||
name = "tdarr-${tdarr-server.version}";
|
||||
pname = "tdarr";
|
||||
inherit (tdarr-server) version;
|
||||
|
||||
paths = [
|
||||
tdarr-server
|
||||
tdarr-node
|
||||
];
|
||||
|
||||
passthru = {
|
||||
server = tdarr-server;
|
||||
node = tdarr-node;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Distributed transcode automation using FFmpeg/HandBrake (includes both server and node)";
|
||||
homepage = "https://tdarr.io";
|
||||
license = lib.licenses.unfree;
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
maintainers = with lib.maintainers; [ mistyttm ];
|
||||
};
|
||||
}
|
||||
@@ -16,6 +16,8 @@
|
||||
withUtempter ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isMusl,
|
||||
libutempter,
|
||||
withSixel ? true,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -30,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "tmux";
|
||||
repo = "tmux";
|
||||
rev = finalAttrs.version;
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-VwOyR9YYhA/uyVRJbspNrKkJWJGYFFktwPnnwnIJ97s=";
|
||||
};
|
||||
|
||||
@@ -64,6 +66,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
echo "${finalAttrs.passthru.terminfo}" >> $out/nix-support/propagated-user-env-packages
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "-V";
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru = {
|
||||
terminfo = runCommand "tmux-terminfo" { nativeBuildInputs = [ ncurses ]; } (
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
@@ -81,10 +87,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
ln -sv ${ncurses}/share/terminfo/t/{tmux,tmux-256color,tmux-direct} $out/share/terminfo/t
|
||||
''
|
||||
);
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://tmux.github.io/";
|
||||
downloadPage = "https://github.com/tmux/tmux";
|
||||
description = "Terminal multiplexer";
|
||||
longDescription = ''
|
||||
tmux is intended to be a modern, BSD-licensed alternative to programs such as GNU screen. Major features include:
|
||||
@@ -103,6 +111,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "tmux";
|
||||
maintainers = with lib.maintainers; [
|
||||
ethancedwards8
|
||||
fpletz
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "travis"
|
||||
gem "pry", "~> 0.11.0"
|
||||
@@ -1,71 +0,0 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (5.2.4.3)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
tzinfo (~> 1.1)
|
||||
addressable (2.7.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
coderay (1.1.3)
|
||||
concurrent-ruby (1.1.6)
|
||||
ethon (0.12.0)
|
||||
ffi (>= 1.3.0)
|
||||
faraday (1.0.1)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday_middleware (1.0.0)
|
||||
faraday (~> 1.0)
|
||||
ffi (1.13.1)
|
||||
gh (0.17.0)
|
||||
activesupport (~> 5.0)
|
||||
addressable (~> 2.4)
|
||||
faraday (~> 1.0)
|
||||
faraday_middleware (~> 1.0)
|
||||
multi_json (~> 1.0)
|
||||
net-http-persistent (~> 2.9)
|
||||
net-http-pipeline
|
||||
highline (2.0.3)
|
||||
i18n (1.8.3)
|
||||
concurrent-ruby (~> 1.0)
|
||||
json (2.3.0)
|
||||
launchy (2.4.3)
|
||||
addressable (~> 2.3)
|
||||
method_source (0.9.2)
|
||||
minitest (5.14.1)
|
||||
multi_json (1.14.1)
|
||||
multipart-post (2.1.1)
|
||||
net-http-persistent (2.9.4)
|
||||
net-http-pipeline (1.0.1)
|
||||
pry (0.11.3)
|
||||
coderay (~> 1.1.0)
|
||||
method_source (~> 0.9.0)
|
||||
public_suffix (4.0.5)
|
||||
pusher-client (0.6.2)
|
||||
json
|
||||
websocket (~> 1.0)
|
||||
thread_safe (0.3.6)
|
||||
travis (1.9.1)
|
||||
faraday (~> 1.0)
|
||||
faraday_middleware (~> 1.0)
|
||||
gh (~> 0.13)
|
||||
highline (~> 2.0)
|
||||
json (~> 2.3)
|
||||
launchy (~> 2.1, < 2.5.0)
|
||||
pusher-client (~> 0.4)
|
||||
typhoeus (~> 0.6, >= 0.6.8)
|
||||
typhoeus (0.8.0)
|
||||
ethon (>= 0.8.0)
|
||||
tzinfo (1.2.7)
|
||||
thread_safe (~> 0.1)
|
||||
websocket (1.2.8)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
pry (~> 0.11.0)
|
||||
travis
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
||||
@@ -1,297 +0,0 @@
|
||||
{
|
||||
activesupport = {
|
||||
dependencies = [
|
||||
"concurrent-ruby"
|
||||
"i18n"
|
||||
"minitest"
|
||||
"tzinfo"
|
||||
];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.2.4.3";
|
||||
};
|
||||
addressable = {
|
||||
dependencies = [ "public_suffix" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.7.0";
|
||||
};
|
||||
coderay = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.3";
|
||||
};
|
||||
concurrent-ruby = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.6";
|
||||
};
|
||||
ethon = {
|
||||
dependencies = [ "ffi" ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.12.0";
|
||||
};
|
||||
faraday = {
|
||||
dependencies = [ "multipart-post" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
};
|
||||
faraday_middleware = {
|
||||
dependencies = [ "faraday" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
ffi = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.13.1";
|
||||
};
|
||||
gh = {
|
||||
dependencies = [
|
||||
"activesupport"
|
||||
"addressable"
|
||||
"faraday"
|
||||
"faraday_middleware"
|
||||
"multi_json"
|
||||
"net-http-persistent"
|
||||
"net-http-pipeline"
|
||||
];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1nj2dm2pahfa4d39y8csvjv5l3hpsm6yjq2y96vj2bqgg0qs26bj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.17.0";
|
||||
};
|
||||
highline = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.3";
|
||||
};
|
||||
i18n = {
|
||||
dependencies = [ "concurrent-ruby" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.3";
|
||||
};
|
||||
json = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.0";
|
||||
};
|
||||
launchy = {
|
||||
dependencies = [ "addressable" ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.4.3";
|
||||
};
|
||||
method_source = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.9.2";
|
||||
};
|
||||
minitest = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.14.1";
|
||||
};
|
||||
multi_json = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.14.1";
|
||||
};
|
||||
multipart-post = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.1";
|
||||
};
|
||||
net-http-persistent = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.9.4";
|
||||
};
|
||||
net-http-pipeline = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0bxjy33yhxwsbnld8xj3zv64ibgfjn9rjpiqkyd5ipmz50pww8v9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
};
|
||||
pry = {
|
||||
dependencies = [
|
||||
"coderay"
|
||||
"method_source"
|
||||
];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.11.3";
|
||||
};
|
||||
public_suffix = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.0.5";
|
||||
};
|
||||
pusher-client = {
|
||||
dependencies = [
|
||||
"json"
|
||||
"websocket"
|
||||
];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "18ymxz34gmg7jff3h0nyzp5vdg5i06dbdxlrdl2nq4hf14qwj1f4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.2";
|
||||
};
|
||||
thread_safe = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.6";
|
||||
};
|
||||
travis = {
|
||||
dependencies = [
|
||||
"faraday"
|
||||
"faraday_middleware"
|
||||
"gh"
|
||||
"highline"
|
||||
"json"
|
||||
"launchy"
|
||||
"pusher-client"
|
||||
"typhoeus"
|
||||
];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1yizj5nqvyrfbyiv1kfwc33dylhsmk5l007z06djj152v04z63i3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.9.1";
|
||||
};
|
||||
typhoeus = {
|
||||
dependencies = [ "ethon" ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "03x3fxjsnhgayl4s96h0a9975awlvx2v9nmx2ba0cnliglyczdr8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.8.0";
|
||||
};
|
||||
tzinfo = {
|
||||
dependencies = [ "thread_safe" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.7";
|
||||
};
|
||||
websocket = {
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0f11rcn4qgffb1rq4kjfwi7di79w8840x9l74pkyif5arp0mb08x";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.8";
|
||||
};
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
bundlerEnv,
|
||||
ruby,
|
||||
bundlerUpdateScript,
|
||||
}:
|
||||
|
||||
bundlerEnv {
|
||||
inherit ruby;
|
||||
pname = "travis";
|
||||
gemdir = ./.;
|
||||
|
||||
passthru.updateScript = bundlerUpdateScript "travis";
|
||||
|
||||
meta = {
|
||||
description = "CLI and Ruby client library for Travis CI";
|
||||
mainProgram = "travis";
|
||||
homepage = "https://github.com/travis-ci/travis.rb";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
zimbatm
|
||||
nicknovitski
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -12,7 +12,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Terraspace";
|
||||
repo = "uasm";
|
||||
repo = "UASM";
|
||||
tag = "v${finalAttrs.version}r";
|
||||
hash = "sha256-HaiK2ogE71zwgfhWL7fesMrNZYnh8TV/kE3ZIS0l85w=";
|
||||
};
|
||||
@@ -20,22 +20,53 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
enableParallelBuilding = true;
|
||||
|
||||
makefile =
|
||||
if stdenv.hostPlatform.isDarwin then "Makefile-OSX-Clang-64.mak" else "Makefile-Linux-GCC-64.mak";
|
||||
|
||||
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
"Makefile-OSX-Clang-64.mak"
|
||||
else if stdenv.hostPlatform.isWindows then
|
||||
"Makefile-DOS-GCC.mak"
|
||||
else
|
||||
"Makefile-Linux-GCC-64.mak";
|
||||
|
||||
# Needed for compiling with GCC > 13
|
||||
env.CFLAGS = "-std=c99 -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Wno-int-conversion";
|
||||
env.NIX_CFLAGS_COMPILE = lib.escapeShellArgs [
|
||||
"-std=c99"
|
||||
"-Wno-incompatible-pointer-types"
|
||||
"-Wno-int-conversion"
|
||||
"-Wno-implicit-function-declaration"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dt "$out/bin" -m0755 GccUnixR/uasm
|
||||
install -Dt "$out/share/doc/uasm" -m0644 {Readme,History}.txt Doc/*
|
||||
${
|
||||
if stdenv.hostPlatform.isWindows then
|
||||
''
|
||||
install -Dm0755 DJGPPr/hjwasm.exe "$out/bin/hjwasm.exe"
|
||||
install -Dm0755 DJGPPr/hjwasm.exe "$out/bin/uasm.exe"
|
||||
''
|
||||
else
|
||||
''
|
||||
install -Dt "$out/bin" -m0755 GccUnixR/uasm
|
||||
''
|
||||
}
|
||||
install -Dt "$out/share/doc/${finalAttrs.pname}" -m0644 {Readme,History}.txt Doc/*
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"doc"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile-DOS-GCC.mak \
|
||||
--replace-fail "gcc.exe" "${stdenv.cc.targetPrefix}cc"
|
||||
|
||||
substituteInPlace Makefile-Linux-GCC-64.mak \
|
||||
--replace-fail "CC = gcc" "CC=${stdenv.cc.targetPrefix}cc"
|
||||
'';
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = uasm;
|
||||
command = "uasm -h";
|
||||
@@ -46,8 +77,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
homepage = "https://www.terraspace.co.uk/uasm.html";
|
||||
description = "Free MASM-compatible assembler based on JWasm";
|
||||
mainProgram = "uasm";
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = [ lib.maintainers.zane ];
|
||||
platforms = lib.platforms.unix ++ lib.platforms.windows;
|
||||
maintainers = with lib.maintainers; [
|
||||
zane
|
||||
ccicnce113424
|
||||
];
|
||||
license = lib.licenses.watcom;
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
msbuild,
|
||||
mono,
|
||||
libGL,
|
||||
libpng,
|
||||
libx11,
|
||||
gtk2-x11,
|
||||
makeDesktopItem,
|
||||
copyDesktopItems,
|
||||
unstableGitUpdater,
|
||||
autoPatchelfHook,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ultimate-doom-builder";
|
||||
version = "0-unstable-2026-02-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jewalky";
|
||||
repo = "UltimateDoomBuilder";
|
||||
rev = "9d7a12b1164dc53964b594395f9d5d825a43ac12";
|
||||
hash = "sha256-FwGfrvF+UrmEw1lvcU4qL9OOP0n/ZmQTsIjQIxRvkmg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
msbuild
|
||||
makeWrapper
|
||||
copyDesktopItems
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libGL
|
||||
libpng
|
||||
libx11
|
||||
gtk2-x11
|
||||
];
|
||||
|
||||
postPatch =
|
||||
let
|
||||
gitCommitCount = "4291";
|
||||
gitCommitHash = "9d7a12b";
|
||||
in
|
||||
''
|
||||
# Replace git-based version generation with static values since .git directory is not available.
|
||||
# The build system runs git commands to get commit count and hash, then uses them in version strings.
|
||||
# We disable the git Exec commands and set static PropertyGroup values instead.
|
||||
for file in Source/Core/BuilderMono.csproj Source/Plugins/BuilderModes/BuilderModesMono.csproj; do
|
||||
# Remove git Exec commands (they would fail without .git directory)
|
||||
sed -i '/<Exec Command="git/,/<\/Exec>/d' "$file"
|
||||
# Replace conditional defaults with static values
|
||||
sed -i 's/>0<\/GitCommitCount>/>${gitCommitCount}<\/GitCommitCount>/g' "$file"
|
||||
sed -i 's/>0<\/GitCommitHash>/>${gitCommitHash}<\/GitCommitHash>/g' "$file"
|
||||
done
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
# Won't compile without windows codepage identifier for UTF-8
|
||||
msbuild /nologo /verbosity:minimal -p:Configuration=Release /p:codepage=65001 ./BuilderMono.sln
|
||||
|
||||
cp builder.sh Build/builder
|
||||
chmod +x Build/builder
|
||||
|
||||
# Build native library with:
|
||||
# - UDB_LINUX=1 for proper mouse input handling
|
||||
# - NO_SSE=1 on aarch64 to disable SSE intrinsics
|
||||
$CXX -std=c++14 -O2 -shared -o Build/libBuilderNative.so -fPIC \
|
||||
-DUDB_LINUX=1 \
|
||||
${lib.optionalString stdenv.hostPlatform.isAarch64 "-DNO_SSE=1"} \
|
||||
-I Source/Native \
|
||||
Source/Native/*.cpp \
|
||||
Source/Native/OpenGL/*.cpp \
|
||||
Source/Native/OpenGL/gl_load/*.c \
|
||||
-lX11 -ldl
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,opt,share/icons/hicolor/64x64/apps}
|
||||
|
||||
cp -r Build $out/opt/UltimateDoomBuilder
|
||||
|
||||
substituteInPlace $out/opt/UltimateDoomBuilder/builder --replace-fail mono ${mono}/bin/mono
|
||||
substituteInPlace $out/opt/UltimateDoomBuilder/builder --replace-fail Builder.exe $out/opt/UltimateDoomBuilder/Builder.exe
|
||||
|
||||
# GTK is loaded dynamically by Mono at runtime
|
||||
wrapProgram $out/opt/UltimateDoomBuilder/builder \
|
||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk2-x11 ]}"
|
||||
|
||||
ln -s $out/opt/UltimateDoomBuilder/builder $out/bin/ultimate-doom-builder
|
||||
|
||||
cp flatpak/icons/64x64/io.github.ultimatedoombuilder.ultimatedoombuilder.png $out/share/icons/hicolor/64x64/apps/ultimate-doom-builder.png
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "ultimate-doom-builder";
|
||||
exec = "ultimate-doom-builder";
|
||||
icon = "ultimate-doom-builder";
|
||||
desktopName = "Ultimate Doom Builder";
|
||||
comment = finalAttrs.meta.description;
|
||||
categories = [
|
||||
"Game"
|
||||
"Development"
|
||||
"Graphics"
|
||||
"3DGraphics"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater { };
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/jewalky/UltimateDoomBuilder";
|
||||
description = "Advanced Doom map editor based on Doom Builder 2 with Mono support";
|
||||
mainProgram = "ultimate-doom-builder";
|
||||
longDescription = ''
|
||||
Ultimate Doom Builder is a map editor for Doom, Heretic, Hexen, and Strife.
|
||||
It is a continuation of Doom Builder 2 with many new features and improvements,
|
||||
including cross-platform support via Mono.
|
||||
'';
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ sophronesis ];
|
||||
};
|
||||
})
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
# tests
|
||||
nixosTests,
|
||||
python3Packages,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@@ -45,6 +46,21 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
ffmpeg-headless
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
pytest
|
||||
pytest-xdist
|
||||
pillow
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
# Tests take quite a long time
|
||||
# Using pytest-xdist, we launch multiple workers
|
||||
# Restrict to max 6 to avoid having a large number of idlers
|
||||
preCheck = ''
|
||||
mesonCheckFlagsArray+=(--test-args "--numprocesses=auto --maxprocesses=6")
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) paperless;
|
||||
};
|
||||
|
||||
@@ -10,19 +10,19 @@
|
||||
pkg-config,
|
||||
vala,
|
||||
gettext,
|
||||
wrapGAppsHook3,
|
||||
unstableGitUpdater,
|
||||
wrapGAppsNoGuiHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "vala-lint";
|
||||
version = "0-unstable-2025-08-03";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vala-lang";
|
||||
repo = "vala-lint";
|
||||
rev = "a1d1a7bc0f740920e592fd788a836c402fd9825c";
|
||||
sha256 = "sha256-63T+wLdnGtVBxKkkkj7gJx0ebApam922Z+cmk2R7Ys0=";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-63T+wLdnGtVBxKkkkj7gJx0ebApam922Z+cmk2R7Ys0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook3
|
||||
wrapGAppsNoGuiHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@@ -42,9 +42,7 @@ stdenv.mkDerivation {
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = unstableGitUpdater {
|
||||
url = "https://github.com/vala-lang/vala-lint.git";
|
||||
};
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
@@ -59,4 +57,4 @@ stdenv.mkDerivation {
|
||||
teams = [ lib.teams.pantheon ];
|
||||
mainProgram = "io.elementary.vala-lint";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://sourceforge.net/projects/yad-dialog/";
|
||||
homepage = "https://github.com/v1cont/yad";
|
||||
description = "GUI dialog tool for shell scripts";
|
||||
longDescription = ''
|
||||
Yad (yet another dialog) is a GUI dialog tool for shell scripts. It is a
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkYaziPlugin {
|
||||
pname = "chmod.yazi";
|
||||
version = "25.12.29-unstable-2025-12-29";
|
||||
version = "26.1.22-unstable-2026-02-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yazi-rs";
|
||||
repo = "plugins";
|
||||
rev = "517619af126f25f3da096ff156ce46b561b54be3";
|
||||
hash = "sha256-j7fsUmx2nK4Tyj5KCamcCmfs99K6duV+okf8NvzccsI=";
|
||||
rev = "0897e20d41b79a5ec8e80e645b041bb950547a0b";
|
||||
hash = "sha256-tHOHWFH9E7aGrmHb8bUD1sLGU0OIdTjQ2p4SbJVfh/s=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkYaziPlugin {
|
||||
pname = "drag.yazi";
|
||||
version = "0-unstable-2025-08-29";
|
||||
version = "0-unstable-2026-02-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Joao-Queiroga";
|
||||
repo = "drag.yazi";
|
||||
rev = "27606689cb82c56a19c052a7b7935cd9b1466bab";
|
||||
hash = "sha256-ITkZjpwWXni4tQpDhUiVvtPrEkAo6RISgCH594NgpYE=";
|
||||
rev = "3dff129c52b30d8c08015e6f4ef8f2c07b299d4b";
|
||||
hash = "sha256-nmFlh+zW3aOU+YjbfrAWQ7A6FlGaTDnq2N2gOZ5yzzc=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkYaziPlugin {
|
||||
pname = "git.yazi";
|
||||
version = "25.12.29-unstable-2026-01-26";
|
||||
version = "26.1.22-unstable-2026-02-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yazi-rs";
|
||||
repo = "plugins";
|
||||
rev = "e07bf41442a7f6fdd003069f380e1ae469a86211";
|
||||
hash = "sha256-aC8DUZpzNHEf9MW3tX3XcDYY/mWClAHkw+nZaxDQHp8=";
|
||||
rev = "0897e20d41b79a5ec8e80e645b041bb950547a0b";
|
||||
hash = "sha256-tHOHWFH9E7aGrmHb8bUD1sLGU0OIdTjQ2p4SbJVfh/s=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -6,22 +6,15 @@
|
||||
|
||||
mkYaziPlugin {
|
||||
pname = "gitui.yazi";
|
||||
version = "0-unstable-2025-05-26";
|
||||
version = "0-unstable-2026-02-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gclarkjr5";
|
||||
repo = "gitui.yazi";
|
||||
rev = "397e9cf9cff536a43e746d72e0e81fd5c3050d2d";
|
||||
hash = "sha256-Bo16/5XuSxRhN6URwTBxuw0FTMHLF3nV1UDBQQJFHMM=";
|
||||
rev = "b3362f54db9c0da51b1d4fb2fe8315a0dada7274";
|
||||
hash = "sha256-lNj5dH6LDvl9TlA7/+bnDrRMlpOE0bCW3umrW3gBpP8=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
cp -r . $out
|
||||
mv $out/init.lua $out/main.lua
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Plugin for Yazi to manage git repos with gitui";
|
||||
homepage = "https://github.com/gclarkjr5/gitui.yazi";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user