Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot] 2025-06-06 19:33:08 +00:00 committed by GitHub
commit 13b51cfb12
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
142 changed files with 2526 additions and 1499 deletions

View file

@ -17715,6 +17715,12 @@
github = "nikstur";
githubId = 61635709;
};
nilathedragon = {
email = "nilathedragon@pm.me";
name = "Nila The Dragon";
github = "nilathedragon";
githubId = 43315617;
};
nilp0inter = {
email = "robertomartinezp@gmail.com";
github = "nilp0inter";

View file

@ -749,6 +749,15 @@
"module-services-davis-basic-usage": [
"index.html#module-services-davis-basic-usage"
],
"module-services-draupnir": [
"index.html#module-services-draupnir"
],
"module-services-draupnir-setup": [
"index.html#module-services-draupnir-setup"
],
"module-services-draupnir-setup-ems": [
"index.html#module-services-draupnir-setup-ems"
],
"module-services-castopod": [
"index.html#module-services-castopod"
],

View file

@ -22,6 +22,8 @@
- [Broadcast Box](https://github.com/Glimesh/broadcast-box), a WebRTC broadcast server. Available as [services.broadcast-box](options.html#opt-services.broadcast-box.enable).
- [Draupnir](https://github.com/the-draupnir-project/draupnir), a Matrix moderation bot. Available as [services.draupnir](#opt-services.draupnir.enable).
- [SuiteNumérique Docs](https://github.com/suitenumerique/docs), a collaborative note taking, wiki and documentation web platform and alternative to Notion or Outline. Available as [services.lasuite-docs](#opt-services.lasuite-docs.enable).
[dwl](https://codeberg.org/dwl/dwl), a compact, hackable compositor for Wayland based on wlroots. Available as [programs.dwl](#opt-programs.dwl.enable).
@ -44,5 +46,7 @@
- `services.clamsmtp` is unmaintained and was removed from Nixpkgs.
- `services.dnscrypt-proxy2` gains a `package` option to specify dnscrypt-proxy package to use.
- `amdgpu` kernel driver overdrive mode can now be enabled by setting [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable) and customized through [hardware.amdgpu.overdrive.ppfeaturemask](#opt-hardware.amdgpu.overdrive.ppfeaturemask).
This allows for fine-grained control over the GPU's performance and maybe required by overclocking softwares like Corectrl and Lact. These new options replace old options such as {option}`programs.corectrl.gpuOverclock.enable` and {option}`programs.tuxclocker.enableAMD`.

View file

@ -49,6 +49,7 @@ if (-e "/etc/nixos-generate-config.conf") {
$rootDir = File::Spec->rel2abs($rootDir); # resolve absolute path
}
$kernel = $cfg->val("Defaults", "Kernel") // $kernel;
$flake = $cfg->val("Defaults", "Flake") // $flake;
}
for (my $n = 0; $n < scalar @ARGV; $n++) {

View file

@ -758,6 +758,7 @@
./services/matrix/conduit.nix
./services/matrix/continuwuity.nix
./services/matrix/dendrite.nix
./services/matrix/draupnir.nix
./services/matrix/hebbot.nix
./services/matrix/hookshot.nix
./services/matrix/lk-jwt-service.nix

View file

@ -0,0 +1,62 @@
# Draupnir (Matrix Moderation Bot) {#module-services-draupnir}
This chapter will show you how to set up your own, self-hosted
[Draupnir](https://github.com/the-draupnir-project/Draupnir) instance.
As an all-in-one moderation tool, it can protect your server from
malicious invites, spam messages, and whatever else you don't want.
In addition to server-level protection, Draupnir is great for communities
wanting to protect their rooms without having to use their personal
accounts for moderation.
The bot by default includes support for bans, redactions, anti-spam,
server ACLs, room directory changes, room alias transfers, account
deactivation, room shutdown, and more. (This depends on homeserver configuration and implementation.)
See the [README](https://github.com/the-draupnir-project/draupnir#readme)
page and the [Moderator's guide](https://the-draupnir-project.github.io/draupnir-documentation/moderator/setting-up-and-configuring)
for additional instructions on how to setup and use Draupnir.
For [additional settings](#opt-services.draupnir.settings)
see [the default configuration](https://github.com/the-draupnir-project/Draupnir/blob/main/config/default.yaml).
## Draupnir Setup {#module-services-draupnir-setup}
First create a new unencrypted, private room which will be used as the management room for Draupnir.
This is the room in which moderators will interact with Draupnir and where it will log possible errors and debugging information.
You'll need to set this room ID or alias in [services.draupnir.settings.managementRoom](#opt-services.draupnir.settings.managementRoom).
Next, create a new user for Draupnir on your homeserver, if one does not already exist.
The Draupnir Matrix user expects to be free of any rate limiting.
See [Synapse #6286](https://github.com/matrix-org/synapse/issues/6286)
for an example on how to achieve this.
If you want Draupnir to be able to deactivate users, move room aliases, shut down rooms, etc.
you'll need to make the Draupnir user a Matrix server admin.
Now invite the Draupnir user to the management room.
Draupnir will automatically try to join this room on startup.
```nix
{
services.draupnir = {
enable = true;
settings = {
homeserverUrl = "https://matrix.org";
managementRoom = "!yyy:example.org";
};
secrets = {
accessToken = "/path/to/secret/containing/access-token";
};
};
}
```
### Element Matrix Services (EMS) {#module-services-draupnir-setup-ems}
If you are using a managed ["Element Matrix Services (EMS)"](https://ems.element.io/)
server, you will need to consent to the terms and conditions. Upon startup, an error
log entry with a URL to the consent page will be generated.

View file

@ -0,0 +1,257 @@
{
config,
options,
lib,
pkgs,
...
}:
let
cfg = config.services.draupnir;
opt = options.services.draupnir;
format = pkgs.formats.yaml { };
configFile = format.generate "draupnir.yaml" cfg.settings;
inherit (lib)
literalExpression
mkEnableOption
mkOption
mkPackageOption
mkRemovedOptionModule
mkRenamedOptionModule
types
;
in
{
imports = [
# Removed options for those migrating from the Mjolnir module
(mkRenamedOptionModule
[ "services" "draupnir" "dataPath" ]
[ "services" "draupnir" "settings" "dataPath" ]
)
(mkRenamedOptionModule
[ "services" "draupnir" "homeserverUrl" ]
[ "services" "draupnir" "settings" "homeserverUrl" ]
)
(mkRenamedOptionModule
[ "services" "draupnir" "managementRoom" ]
[ "services" "draupnir" "settings" "managementRoom" ]
)
(mkRenamedOptionModule
[ "services" "draupnir" "accessTokenFile" ]
[ "services" "draupnir" "secrets" "accessToken" ]
)
(mkRemovedOptionModule [ "services" "draupnir" "pantalaimon" ] ''
`services.draupnir.pantalaimon.*` has been removed because it depends on the deprecated and vulnerable
libolm library for end-to-end encryption and upstream support for Pantalaimon in Draupnir is limited.
See <https://the-draupnir-project.github.io/draupnir-documentation/bot/encryption> for details.
If you nontheless require E2EE via Pantalaimon, you can configure `services.pantalaimon-headless.instances`
yourself and use that with `services.draupnir.settings.pantalaimon` and `services.draupnir.secrets.pantalaimon.password`.
'')
];
options.services.draupnir = {
enable = mkEnableOption "Draupnir, a moderations bot for Matrix";
package = mkPackageOption pkgs "draupnir" { };
settings = mkOption {
example = literalExpression ''
{
homeserverUrl = "https://matrix.org";
managementRoom = "#moderators:example.org";
autojoinOnlyIfManager = true;
automaticallyRedactForReasons = [ "spam" "advertising" ];
}
'';
description = ''
Free-form settings written to Draupnir's configuration file.
See [Draupnir's default configuration](https://github.com/the-draupnir-project/Draupnir/blob/main/config/default.yaml) for available settings.
'';
default = { };
type = types.submodule {
freeformType = format.type;
options = {
homeserverUrl = mkOption {
type = types.str;
example = "https://matrix.org";
description = ''
Base URL of the Matrix homeserver that provides the Client-Server API.
::: {.note}
When using Pantalaimon, set this to the Pantalaimon URL and
{option}`${opt.settings}.rawHomeserverUrl` to the public URL.
:::
'';
};
rawHomeserverUrl = mkOption {
type = types.str;
example = "https://matrix.org";
default = cfg.settings.homeserverUrl;
defaultText = literalExpression "config.${opt.settings}.homeserverUrl";
description = ''
Public base URL of the Matrix homeserver that provides the Client-Server API when using the Draupnir's
[Report forwarding feature](https://the-draupnir-project.github.io/draupnir-documentation/bot/homeserver-administration#report-forwarding).
::: {.warning}
When using Pantalaimon, do not set this to the Pantalaimon URL!
:::
'';
};
managementRoom = mkOption {
type = types.str;
example = "#moderators:example.org";
description = ''
The room ID or alias where moderators can use the bot's functionality.
The bot has no access controls, so anyone in this room can use the bot - secure this room!
Do not enable end-to-end encryption for this room, unless set up with Pantalaimon.
::: {.warning}
When using a room alias, make sure the alias used is on the local homeserver!
This prevents an issue where the control room becomes undefined when the alias can't be resolved.
:::
'';
};
dataPath = mkOption {
type = types.path;
readOnly = true;
default = "/var/lib/draupnir";
description = ''
The path Draupnir will store its state/data in.
::: {.warning}
This option is read-only.
:::
::: {.note}
If you want to customize where this data is stored, use a bind mount.
:::
'';
};
};
};
};
secrets = {
accessToken = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
File containing the access token for Draupnir's Matrix account
to be used in place of {option}`${opt.settings}.accessToken`.
'';
};
pantalaimon.password = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
File containing the password for Draupnir's Matrix account when used in
conjunction with Pantalaimon to be used in place of
{option}`${opt.settings}.pantalaimon.password`.
::: {.warning}
Take note that upstream has limited Pantalaimon and E2EE support:
<https://the-draupnir-project.github.io/draupnir-documentation/bot/encryption> and
<https://the-draupnir-project.github.io/draupnir-documentation/shared/dogfood#e2ee-support>.
:::
'';
};
web.synapseHTTPAntispam.authorization = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
File containing the secret token when using the Synapse HTTP Antispam module
to be used in place of
{option}`${opt.settings}.web.synapseHTTPAntispam.authorization`.
See <https://the-draupnir-project.github.io/draupnir-documentation/bot/synapse-http-antispam> for details.
'';
};
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
# Removed option for those migrating from the Mjolnir module - mkRemovedOption module does *not* work with submodules.
assertion = !(cfg.settings ? protectedRooms);
message = "Unset ${opt.settings}.protectedRooms, as it is unsupported on Draupnir. Add these rooms via `!draupnir rooms add` instead.";
}
];
systemd.services.draupnir = {
description = "Draupnir - a moderation bot for Matrix";
wants = [
"network-online.target"
"matrix-synapse.service"
"conduit.service"
"dendrite.service"
];
after = [
"network-online.target"
"matrix-synapse.service"
"conduit.service"
"dendrite.service"
];
wantedBy = [ "multi-user.target" ];
startLimitIntervalSec = 0;
serviceConfig = {
ExecStart = toString (
[
(lib.getExe cfg.package)
"--draupnir-config"
configFile
]
++ lib.optionals (cfg.secrets.accessToken != null) [
"--access-token-path"
"%d/access_token"
]
++ lib.optionals (cfg.secrets.pantalaimon.password != null) [
"--pantalaimon-password-path"
"%d/pantalaimon_password"
]
++ lib.optionals (cfg.secrets.web.synapseHTTPAntispam.authorization != null) [
"--http-antispam-authorization-path"
"%d/http_antispam_authorization"
]
);
WorkingDirectory = "/var/lib/draupnir";
StateDirectory = "draupnir";
StateDirectoryMode = "0700";
ProtectHome = true;
PrivateDevices = true;
Restart = "on-failure";
RestartSec = "5s";
DynamicUser = true;
LoadCredential =
lib.optionals (cfg.secrets.accessToken != null) [
"access_token:${cfg.secrets.accessToken}"
]
++ lib.optionals (cfg.secrets.pantalaimon.password != null) [
"pantalaimon_password:${cfg.secrets.pantalaimon.password}"
]
++ lib.optionals (cfg.secrets.web.synapseHTTPAntispam.authorization != null) [
"http_antispam_authorization:${cfg.secrets.web.synapseHTTPAntispam.authorization}"
];
};
};
};
meta = {
doc = ./draupnir.md;
maintainers = with lib.maintainers; [
RorySys
emilylange
];
};
}

View file

@ -4,22 +4,25 @@
pkgs,
...
}:
with lib;
let
cfg = config.services.dnscrypt-proxy2;
in
{
options.services.dnscrypt-proxy2 = {
enable = mkEnableOption "dnscrypt-proxy2";
enable = lib.mkEnableOption "dnscrypt-proxy2";
settings = mkOption {
package = lib.mkPackageOption pkgs "dnscrypt-proxy" { };
settings = lib.mkOption {
description = ''
Attrset that is converted and passed as TOML config file.
For available params, see: <https://github.com/DNSCrypt/dnscrypt-proxy/blob/${pkgs.dnscrypt-proxy.version}/dnscrypt-proxy/example-dnscrypt-proxy.toml>
'';
example = literalExpression ''
example = lib.literalExpression ''
{
sources.public-resolvers = {
urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ];
@ -29,27 +32,27 @@ in
};
}
'';
type = types.attrs;
type = lib.types.attrs;
default = { };
};
upstreamDefaults = mkOption {
upstreamDefaults = lib.mkOption {
description = ''
Whether to base the config declared in {option}`services.dnscrypt-proxy2.settings` on the upstream example config (<https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml>)
Disable this if you want to declare your dnscrypt config from scratch.
'';
type = types.bool;
type = lib.types.bool;
default = true;
};
configFile = mkOption {
configFile = lib.mkOption {
description = ''
Path to TOML config file. See: <https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml>
If this option is set, it will override any configuration done in options.services.dnscrypt-proxy2.settings.
'';
example = "/etc/dnscrypt-proxy/dnscrypt-proxy.toml";
type = types.path;
type = lib.types.path;
default =
pkgs.runCommand "dnscrypt-proxy.toml"
{
@ -70,11 +73,11 @@ in
}
${pkgs.buildPackages.remarshal}/bin/json2toml < config.json > $out
'';
defaultText = literalMD "TOML file generated from {option}`services.dnscrypt-proxy2.settings`";
defaultText = lib.literalMD "TOML file generated from {option}`services.dnscrypt-proxy2.settings`";
};
};
config = mkIf cfg.enable {
config = lib.mkIf cfg.enable {
networking.nameservers = lib.mkDefault [ "127.0.0.1" ];
@ -94,7 +97,7 @@ in
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
CacheDirectory = "dnscrypt-proxy";
DynamicUser = true;
ExecStart = "${pkgs.dnscrypt-proxy}/bin/dnscrypt-proxy -config ${cfg.configFile}";
ExecStart = "${lib.getExe cfg.package} -config ${cfg.configFile}";
LockPersonality = true;
LogsDirectory = "dnscrypt-proxy";
MemoryDenyWriteExecute = true;

View file

@ -54,15 +54,10 @@ let
++ optional (cfg.provision.extraJsonFile != null) cfg.provision.extraJsonFile
++ mapAttrsToList (_: x: x.basicSecretFile) cfg.provision.systems.oauth2
);
secretDirectories = unique (
map builtins.dirOf (
[
cfg.serverSettings.tls_chain
cfg.serverSettings.tls_key
]
++ optionals cfg.provision.enable provisionSecretFiles
)
);
secretPaths = [
cfg.serverSettings.tls_chain
cfg.serverSettings.tls_key
] ++ optionals cfg.provision.enable provisionSecretFiles;
# Merge bind mount paths and remove paths where a prefix is already mounted.
# This makes sure that if e.g. the tls_chain is in the nix store and /nix/store is already in the mount
@ -881,7 +876,7 @@ in
(
defaultServiceConfig
// {
BindReadOnlyPaths = mergePaths (defaultServiceConfig.BindReadOnlyPaths ++ secretDirectories);
BindReadOnlyPaths = mergePaths (defaultServiceConfig.BindReadOnlyPaths ++ secretPaths);
}
)
{
@ -895,8 +890,6 @@ in
BindPaths =
[
# To create the socket
"/run/kanidmd:/run/kanidmd"
# To store backups
cfg.serverSettings.online_backup.path
]

View file

@ -5,11 +5,31 @@
utils,
...
}@moduleArgs:
with lib;
with utils;
let
inherit (lib)
any
attrValues
concatMapStrings
concatMapStringsSep
concatStringsSep
elem
filter
flip
head
literalExpression
mkDefault
mkEnableOption
mkIf
mkMerge
mkOption
optional
optionalAttrs
optionalString
toposort
types
;
inherit (utils) fsBefore;
# https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
escape = string: builtins.replaceStrings [ " " "\t" ] [ "\\040" "\\011" ] string;
@ -67,7 +87,7 @@ let
description = "Location of the mounted file system.";
};
stratis.poolUuid = lib.mkOption {
stratis.poolUuid = mkOption {
type = types.uniq (types.nullOr types.str);
description = ''
UUID of the stratis pool that the fs is located in
@ -172,9 +192,7 @@ let
};
config.device = lib.mkIf (config.label != null) (
lib.mkDefault "/dev/disk/by-label/${escape config.label}"
);
config.device = mkIf (config.label != null) (mkDefault "/dev/disk/by-label/${escape config.label}");
config.options =
let
@ -326,7 +344,7 @@ in
boot.supportedFilesystems = mkOption {
default = { };
example = lib.literalExpression ''
example = literalExpression ''
{
btrfs = true;
zfs = lib.mkForce false;
@ -475,7 +493,7 @@ in
# Filesystems.
${makeFstabEntries fileSystems { }}
${lib.optionalString (config.swapDevices != [ ]) "# Swap devices."}
${optionalString (config.swapDevices != [ ]) "# Swap devices."}
${flip concatMapStrings config.swapDevices (sw: "${sw.realDevice} none swap ${swapOptions sw}\n")}
'';

View file

@ -409,6 +409,7 @@ in
domination = runTest ./domination.nix;
dovecot = handleTest ./dovecot.nix { };
drawterm = discoverTests (import ./drawterm.nix);
draupnir = runTest ./matrix/draupnir.nix;
drbd = runTest ./drbd.nix;
druid = handleTestOn [ "x86_64-linux" ] ./druid { };
drupal = runTest ./drupal.nix;

View file

@ -0,0 +1,150 @@
{
lib,
...
}:
{
name = "draupnir";
meta.maintainers = with lib.maintainers; [
RorySys
emilylange
];
nodes = {
homeserver =
{ pkgs, ... }:
{
services.matrix-synapse = {
enable = true;
log.root.level = "WARNING";
settings = {
database.name = "sqlite3";
registration_shared_secret = "supersecret-registration";
listeners = [
{
bind_addresses = [
"::"
];
port = 8008;
resources = [
{
compress = true;
names = [ "client" ];
}
{
compress = false;
names = [ "federation" ];
}
];
tls = false;
type = "http";
x_forwarded = false;
}
];
};
};
specialisation.draupnir = {
inheritParentConfig = true;
configuration.services.draupnir = {
enable = true;
settings = {
homeserverUrl = "http://localhost:8008";
managementRoom = "#moderators:homeserver";
};
secrets = {
accessToken = "/tmp/draupnir-access-token";
};
};
};
environment.systemPackages = with pkgs; [
curl
jq
(writers.writePython3Bin "test_draupnir_in_matrix"
{
libraries = [ python3Packages.matrix-nio ];
flakeIgnore = [ "E501" ];
}
''
import asyncio
from nio import AsyncClient, MatrixRoom, RoomMemberEvent, RoomMessageNotice
async def main() -> None:
client = AsyncClient("http://localhost:8008", "moderator")
async def member_callback(room: MatrixRoom, event: RoomMemberEvent) -> None:
if event.membership == "join" and event.sender == "@draupnir:homeserver":
await client.room_send(
room_id=room.room_id,
message_type="m.room.message",
content={
"msgtype": "m.text",
"body": "!draupnir status"
}
)
async def message_callback(room: MatrixRoom, event: RoomMessageNotice) -> None:
print(f"{event.sender}: {event.body}")
if event.sender == "@draupnir:homeserver":
await client.close()
exit(0)
client.add_event_callback(member_callback, RoomMemberEvent)
client.add_event_callback(message_callback, RoomMessageNotice)
print(await client.login("password"))
room = await client.room_create(
name="Moderators",
alias="moderators",
invite=["@draupnir:homeserver"],
power_level_override={
"users": {
"@draupnir:homeserver": 100,
"@moderator:homeserver": 100,
}
}
)
print(room)
print(await client.join(room.room_id))
await client.sync_forever(timeout=30000)
asyncio.run(main())
''
)
];
};
};
testScript =
{ nodes, ... }:
''
import json
homeserver.wait_for_unit("matrix-synapse.service")
homeserver.wait_until_succeeds("curl --fail -L http://localhost:8008/")
homeserver.succeed("matrix-synapse-register_new_matrix_user -u draupnir -p password --no-admin")
homeserver.succeed("matrix-synapse-register_new_matrix_user -u moderator -p password --no-admin")
# get draupnir access token
payload = json.dumps({ "type": "m.login.password", "user": "draupnir", "password": "password" })
homeserver.succeed(
f"curl --fail --json '{payload}' http://localhost:8008/_matrix/client/v3/login"
+ " | jq -r .access_token"
+ " | tee /tmp/draupnir-access-token"
)
homeserver.succeed("${nodes.homeserver.system.build.toplevel}/specialisation/draupnir/bin/switch-to-configuration test")
homeserver.wait_for_unit("draupnir.service")
print(homeserver.succeed("test_draupnir_in_matrix >&2", timeout=60))
'';
}

View file

@ -46,5 +46,11 @@
machine.succeed("rm -rf /etc/nixos")
machine.succeed("nixos-generate-config --flake")
machine.succeed("nix-instantiate --parse /etc/nixos/flake.nix /etc/nixos/configuration.nix /etc/nixos/hardware-configuration.nix")
machine.succeed("mv /etc/nixos /etc/nixos-with-flake-arg")
machine.succeed("printf '[Defaults]\nFlake = 1\n' > /etc/nixos-generate-config.conf")
machine.succeed("nixos-generate-config")
machine.succeed("nix-instantiate --parse /etc/nixos/flake.nix /etc/nixos/configuration.nix /etc/nixos/hardware-configuration.nix")
machine.succeed("diff -r /etc/nixos /etc/nixos-with-flake-arg")
'';
}

View file

@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Comic reader for cross-platform reading and managing your digital comic collection";
homepage = "http://www.yacreader.com";
homepage = "https://www.yacreader.com";
license = lib.licenses.gpl3;
mainProgram = "YACReader";
maintainers = [ ];

View file

@ -54,7 +54,7 @@ mkDerivation rec {
meta = with lib; {
description = "WYSIWYM frontend for LaTeX, DocBook";
homepage = "http://www.lyx.org";
homepage = "https://www.lyx.org";
license = licenses.gpl2Plus;
maintainers = [ maintainers.vcunat ];
platforms = platforms.linux;

View file

@ -30,18 +30,28 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "mullvad";
version = "2025.3";
version = "2025.6";
src = fetchFromGitHub {
owner = "mullvad";
repo = "mullvadvpn-app";
tag = version;
fetchSubmodules = true;
hash = "sha256-IpGTqi0gSE2yXXou5fp+CryHfIKx0n3y/V4K2+ZO3k8=";
hash = "sha256-WWJcfnp1v1LhEElJQdLx6Gz+bj7MdgbefD6BQ4nihMs=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-EJ8yk11H1QB+7CGjJYY5BjBAFTDK4d02/DJOQTVGFho=";
cargoHash = "sha256-r6WogC25hpzw2pHa8RQOhr9SWks9RKKatpVHblfs+Nc=";
cargoBuildFlags = [
"-p mullvad-daemon --bin mullvad-daemon"
"-p mullvad-cli --bin mullvad"
"-p mullvad-setup --bin mullvad-setup"
"-p mullvad-problem-report --bin mullvad-problem-report"
"-p mullvad-exclude --bin mullvad-exclude"
"-p tunnel-obfuscation --bin tunnel-obfuscation"
"-p talpid-openvpn-plugin --lib"
];
checkFlags = [
"--skip=version_check"
@ -79,22 +89,14 @@ rustPlatform.buildRustPackage rec {
'';
postFixup =
# Place all binaries in the 'mullvad-' namespace, even though these
# specific binaries aren't used in the lifetime of the program.
# Files necessary for OpenVPN tunnels to work.
lib.optionalString enableOpenvpn ''
mkdir -p $out/share/mullvad
cp dist-assets/ca.crt $out/share/mullvad
ln -s ${openvpn-mullvad}/bin/openvpn $out/share/mullvad
ln -s ${shadowsocks-rust}/bin/sslocal $out/share/mullvad
ln -s $out/lib/libtalpid_openvpn_plugin.so $out/share/mullvad
''
for bin in relay_list translations-converter tunnel-obfuscation; do
mv "$out/bin/$bin" "$out/bin/mullvad-$bin"
done
''
+
# Files necessary for OpenVPN tunnels to work.
lib.optionalString enableOpenvpn ''
mkdir -p $out/share/mullvad
cp dist-assets/ca.crt $out/share/mullvad
ln -s ${openvpn-mullvad}/bin/openvpn $out/share/mullvad
ln -s ${shadowsocks-rust}/bin/sslocal $out/share/mullvad
ln -s $out/lib/libtalpid_openvpn_plugin.so $out/share/mullvad
''
+
# Set the directory where Mullvad will look for its resources by default to
# `$out/share`, so that we can avoid putting the files in `$out/bin` --
@ -121,7 +123,7 @@ rustPlatform.buildRustPackage rec {
meta = {
description = "Mullvad VPN command-line client tools";
homepage = "https://github.com/mullvad/mullvadvpn-app";
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/2025.2/CHANGELOG.md";
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/2025.6/CHANGELOG.md";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ cole-h ];
mainProgram = "mullvad";

View file

@ -72,7 +72,7 @@ callPackage ./generic.nix {
);
meta = with lib; {
description = "Wolfram Mathematica computational software system";
homepage = "http://www.wolfram.com/mathematica/";
homepage = "https://www.wolfram.com/mathematica/";
license = licenses.unfree;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [

View file

@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
];
meta = with lib; {
homepage = "http://www.tvdr.de/";
homepage = "https://www.tvdr.de/";
description = "Video Disc Recorder";
maintainers = [ maintainers.ck3d ];
platforms = platforms.linux;

View file

@ -16,7 +16,6 @@
libXcursor,
libXfixes,
libXmu,
libIDL,
SDL2,
libcap,
libGL,
@ -74,9 +73,9 @@ let
buildType = "release";
# Use maintainers/scripts/update.nix to update the version and all related hashes or
# change the hashes in extpack.nix and guest-additions/default.nix as well manually.
virtualboxVersion = "7.1.8";
virtualboxVersion = "7.1.10";
virtualboxSubVersion = "";
virtualboxSha256 = "3f7132c55ac6c5f50585bfaa115d29e30b47ccf535cb0a12ff50214ddae2f63d";
virtualboxSha256 = "7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869";
kvmPatchVersion = "20250207";
kvmPatchHash = "sha256-GzRLIXhzWL1NLvaGKcWVBCdvay1IxgJUE4koLX1ze7Y=";
@ -148,7 +147,6 @@ stdenv.mkDerivation (finalAttrs: {
libX11
libXext
libXcursor
libIDL
libcap
glib
lvm2
@ -249,8 +247,8 @@ stdenv.mkDerivation (finalAttrs: {
++ optional enableKvm (
let
patchVboxVersion =
# There is no updated patch for 7.1.8 yet, but the older one still applies.
if finalAttrs.virtualboxVersion == "7.1.8" then "7.1.6" else finalAttrs.virtualboxVersion;
# There is no updated patch for 7.1.10 yet, but the older one still applies.
if finalAttrs.virtualboxVersion == "7.1.10" then "7.1.6" else finalAttrs.virtualboxVersion;
in
fetchpatch {
name = "virtualbox-${finalAttrs.virtualboxVersion}-kvm-dev-${finalAttrs.kvmPatchVersion}.patch";
@ -320,7 +318,7 @@ stdenv.mkDerivation (finalAttrs: {
${optionalString (enableKvm) "--with-kvm"} \
${extraConfigureFlags} \
--disable-kmods
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib.dev}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${glib.dev}/lib/pkgconfig@' \
-i AutoConfig.kmk
sed -e 's@arch/x86/@@' \
-i Config.kmk

View file

@ -4,7 +4,7 @@
virtualbox,
}:
let
virtualboxExtPackVersion = "7.1.8";
virtualboxExtPackVersion = "7.1.10";
in
fetchurl rec {
name = "Oracle_VirtualBox_Extension_Pack-${virtualboxExtPackVersion}.vbox-extpack";
@ -14,7 +14,7 @@ fetchurl rec {
# Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
# Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
let
value = "912586a3a1e9285f9df264f7999e6fffc0b8a42f2e013dd898a86f7ed3975d37";
value = "e020755711849fa0ee23d3bc47bc90cb0ea595da7dda804499568a0dc2387989";
in
assert (builtins.stringLength value) == 64;
value;

View file

@ -5,7 +5,7 @@
}:
fetchurl {
url = "http://download.virtualbox.org/virtualbox/${virtualboxVersion}/VBoxGuestAdditions_${virtualboxVersion}.iso";
sha256 = "0001ed19cc389f04723c9b911338559b9b74bea0d24edf794d8d2ce5b5cb14e0";
sha256 = "59c92f7f5fd7e081211e989f5117fc53ad8d8800ad74a01b21e97bb66fe62972";
meta = {
description = "Guest additions ISO for VirtualBox";
longDescription = ''

View file

@ -12,9 +12,9 @@
libX11,
}:
let
virtualboxVersion = "7.1.8";
virtualboxVersion = "7.1.10";
virtualboxSubVersion = "";
virtualboxSha256 = "3f7132c55ac6c5f50585bfaa115d29e30b47ccf535cb0a12ff50214ddae2f63d";
virtualboxSha256 = "7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869";
virtualBoxNixGuestAdditionsBuilder = callPackage ./builder.nix {
inherit virtualboxVersion virtualboxSubVersion virtualboxSha256;

View file

@ -23,12 +23,12 @@
pkg-config,
poppler,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "auto-multiple-choice";
version = "1.7.0";
src = fetchurl {
url = "https://download.auto-multiple-choice.net/${pname}_${version}_dist.tar.gz";
# before 1.7.0, the URL pattern used "precomp" instead of "dist". ^^^^
url = "https://download.auto-multiple-choice.net/auto-multiple-choice_${finalAttrs.version}_dist.tar.gz";
# before 1.7.0, the URL pattern used "precomp" instead of "dist".
sha256 = "sha256-37kWqgdvZopvNSU6LA/FmY2wfSJz3rRSlaQF2HSbdmA=";
};

View file

@ -50,9 +50,9 @@
},
"aks-preview": {
"pname": "aks-preview",
"version": "17.0.0b4",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-17.0.0b4-py2.py3-none-any.whl",
"hash": "sha256-KZ4j1OvY/ziVZnv1nAnowWD+ujYrOYMxfOmH6krHDjI=",
"version": "18.0.0b7",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-18.0.0b7-py2.py3-none-any.whl",
"hash": "sha256-5xRE/WGe/PbTavC/b9MrrXMwXVsBoEEog44A8YJu9cY=",
"description": "Provides a preview for upcoming AKS features"
},
"akshybrid": {
@ -113,9 +113,9 @@
},
"astronomer": {
"pname": "astronomer",
"version": "1.0.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/astronomer-1.0.0-py3-none-any.whl",
"hash": "sha256-tMpBtdnLd67StGLe1KOSrjzols6NnLlKCGcdDLaBds0=",
"version": "1.0.1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/astronomer-1.0.1-py3-none-any.whl",
"hash": "sha256-71tmCfbCGCyOIQjP3QvdcpEnHC00tw9MIXqmGfcBCno=",
"description": "Microsoft Azure Command-Line Tools Astronomer Extension"
},
"authV2": {
@ -183,11 +183,18 @@
},
"blueprint": {
"pname": "blueprint",
"version": "0.3.2",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/blueprint-0.3.2-py3-none-any.whl",
"hash": "sha256-WNODVEbdk+WFsPa1IKLbZVG4qSfjXiXaR0fUz4pMAJs=",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/blueprint-1.0.0b1-py3-none-any.whl",
"hash": "sha256-WVBTayQ3Asbs5Q8sE8d4q68xIJN6i0cZiNHV+8szmlQ=",
"description": "Microsoft Azure Command-Line Tools Blueprint Extension"
},
"carbon": {
"pname": "carbon",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/carbon-1.0.0b1-py3-none-any.whl",
"hash": "sha256-w+HDLtCIAIhlFTpR4iUMEKPC2vInPWWmMTX0VT9q1lg=",
"description": "Microsoft Azure Command-Line Tools Carbon Extension"
},
"change-analysis": {
"pname": "change-analysis",
"version": "0.1.0",
@ -225,9 +232,9 @@
},
"connectedmachine": {
"pname": "connectedmachine",
"version": "1.1.1b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/connectedmachine-1.1.1b1-py3-none-any.whl",
"hash": "sha256-IFX8KBG4QrgEIdsPzhlHQ1/q+0sFgQBlMUeF+wgTzGA=",
"version": "2.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/connectedmachine-2.0.0b1-py3-none-any.whl",
"hash": "sha256-TNewwps4rNSx/O+GIhdFMsLJC8Z0pxD2VIlGsujOPVs=",
"description": "Microsoft Azure Command-Line Tools ConnectedMachine Extension"
},
"connectedvmware": {
@ -239,9 +246,9 @@
},
"cosmosdb-preview": {
"pname": "cosmosdb-preview",
"version": "1.4.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-1.4.0-py2.py3-none-any.whl",
"hash": "sha256-u8wSLjuIyy6aC4tPKou9dSk1nKeb19Tx8JhpUYVGH34=",
"version": "1.6.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-1.6.0-py2.py3-none-any.whl",
"hash": "sha256-OO8IjVRhGOfsCb/Oot7Dc7PmfNsDmaXiCuG0at8Hb44=",
"description": "Microsoft Azure Command-Line Tools Cosmosdb-preview Extension"
},
"costmanagement": {
@ -274,9 +281,9 @@
},
"databox": {
"pname": "databox",
"version": "1.1.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/databox-1.1.0-py3-none-any.whl",
"hash": "sha256-e0GmBSHXz2UtTNygUvydLsY3Hz14hOwKdLqafVAB17s=",
"version": "1.2.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/databox-1.2.0-py3-none-any.whl",
"hash": "sha256-bFHiTEUKirHc90iJUkqcPfKRrJlBonekcEMzVeReQfc=",
"description": "Microsoft Azure Command-Line Tools Databox Extension"
},
"databricks": {
@ -288,16 +295,16 @@
},
"datadog": {
"pname": "datadog",
"version": "0.1.1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datadog-0.1.1-py3-none-any.whl",
"hash": "sha256-mjj9XW0BZG8pnue19o6CrXCIicfQvXLgtraxPlRV6Tc=",
"description": "Microsoft Azure Command-Line Tools MicrosoftDatadogClient Extension"
"version": "1.0.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datadog-1.0.0-py3-none-any.whl",
"hash": "sha256-VCcoKbYC+F8EbEMRzCMBX3a6LvdkkYKfM5OuC7WhUQI=",
"description": "Microsoft Azure Command-Line Tools Datadog Extension"
},
"datafactory": {
"pname": "datafactory",
"version": "1.0.3",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datafactory-1.0.3-py3-none-any.whl",
"hash": "sha256-ZvQWykXTiKMvuzc4ByUecOIFNH+j6HBWaW7xaTCa6vs=",
"version": "1.0.4",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datafactory-1.0.4-py3-none-any.whl",
"hash": "sha256-mn2ogckgs4gnsOUpavOHVsV+zOxXzosTAW98z4W063Y=",
"description": "Microsoft Azure Command-Line Tools DataFactoryManagementClient Extension"
},
"datamigration": {
@ -386,9 +393,9 @@
},
"dynatrace": {
"pname": "dynatrace",
"version": "1.1.0",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/dynatrace-1.1.0-py3-none-any.whl",
"hash": "sha256-CR9A2HZCRby5Zn5CLU3TchFMnwCnKggPnI75K0PFGNY=",
"version": "1.1.1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/dynatrace-1.1.1-py3-none-any.whl",
"hash": "sha256-uDqTcLrHCSrShT7CMl3GrMWLXjGGqvB2ofaLCrnyhvg=",
"description": "Microsoft Azure Command-Line Tools Dynatrace Extension"
},
"edgeorder": {
@ -561,9 +568,9 @@
},
"informatica": {
"pname": "informatica",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/informatica-1.0.0b1-py3-none-any.whl",
"hash": "sha256-YWaukceOdMAa870erS1igycH4XbqD31dMKXdSF9IJGI=",
"version": "1.0.0b2",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/informatica-1.0.0b2-py3-none-any.whl",
"hash": "sha256-TGbjP7LsW7SgdBawNYMvFe8kAAdFzbzMCcJp+s0wy0w=",
"description": "Microsoft Azure Command-Line Tools Informatica Extension"
},
"init": {
@ -589,9 +596,9 @@
},
"k8s-extension": {
"pname": "k8s-extension",
"version": "1.6.4",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-1.6.4-py3-none-any.whl",
"hash": "sha256-O11I5IFPdUDFWcMwgucurugl+zHzkvAL5Idj5UCHkwY=",
"version": "1.6.5",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-1.6.5-py3-none-any.whl",
"hash": "sha256-MZJr6cLtg9m1TD5aYHw2ynfI1Rin5UvaAS7k0QsmZ7k=",
"description": "Microsoft Azure Command-Line Tools K8s-extension Extension"
},
"k8s-runtime": {
@ -699,6 +706,13 @@
"hash": "sha256-LZVypO1wbfj2JsYgNq0i9GoVsRMnP4/5sGMTo4Cif1Y=",
"description": "Microsoft Azure Command-Line Tools MobileNetwork Extension"
},
"mongo-db": {
"pname": "mongo-db",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/mongo_db-1.0.0b1-py3-none-any.whl",
"hash": "sha256-z/i+P/kx4MT8XskhqjohRL3Xpne9teLe6jmfCv6iv+0=",
"description": "Microsoft Azure Command-Line Tools MongoDb Extension"
},
"monitor-control-service": {
"pname": "monitor-control-service",
"version": "1.2.0",
@ -811,13 +825,6 @@
"hash": "sha256-/k47qFwfZZZqBZKR5G6+t8lW8o2isVtUGwSSdltiOZI=",
"description": "Microsoft Azure Command-Line Tools PeeringManagementClient Extension"
},
"pinecone": {
"pname": "pinecone",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/pinecone-1.0.0b1-py3-none-any.whl",
"hash": "sha256-5WXKpClTweNCLz/wW/PcKLbpFOdJagp1l7FOD3Ou/WM=",
"description": "Microsoft Azure Command-Line Tools Pinecone Extension"
},
"playwright-cli-extension": {
"pname": "playwright-cli-extension",
"version": "1.0.0b1",
@ -1084,6 +1091,13 @@
"hash": "sha256-LbbCU9Q4YtBqRSUHPWe2Hx00t8iDIWK9Owv//SS5raY=",
"description": "Manage virtual WAN, hubs, VPN gateways and VPN sites"
},
"vme": {
"pname": "vme",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/vme-1.0.0b1-py3-none-any.whl",
"hash": "sha256-cCAZh8ytxz5sEtyNuV/EqZ9KqOifBXr1W8PBJWctz/8=",
"description": "Microsoft Azure Command-Line Tools Vme Extension"
},
"vmware": {
"pname": "vmware",
"version": "7.2.0",
@ -1098,13 +1112,6 @@
"hash": "sha256-kIsN8HzvZSF2oPK/D9z1i10W+0kD7jwG9z8Ls5E6XA8=",
"description": "Additional commands for Azure AppService"
},
"weights-and-biases": {
"pname": "weights-and-biases",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/weights_and_biases-1.0.0b1-py3-none-any.whl",
"hash": "sha256-p961+8YG/7LsyS8b+xfEPq2hZeiwlwqBvnyXnkxoz3o=",
"description": "Microsoft Azure Command-Line Tools WeightsAndBiases Extension"
},
"workloads": {
"pname": "workloads",
"version": "1.1.0",
@ -1114,9 +1121,9 @@
},
"zones": {
"pname": "zones",
"version": "1.0.0b1",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/zones-1.0.0b1-py3-none-any.whl",
"hash": "sha256-/CPMEVqdxeyzt2l3K8+eqv5Hs+EWjXJeKdWtD4xxGG0=",
"version": "1.0.0b3",
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/zones-1.0.0b3-py3-none-any.whl",
"hash": "sha256-O9gcKKvWDFmlnZabIioDGNIxqn8XDaE4xeOt3/q+7Rk=",
"description": "Microsoft Azure Command-Line Tools Zones Extension"
}
}

View file

@ -156,5 +156,7 @@
connection-monitor-preview = throw "The 'connection-monitor-preview' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8194
deidservice = throw "The 'deidservice' extension for azure-cli was moved under healthcareapis"; # Added 2024-11-19, https://github.com/Azure/azure-cli-extensions/pull/8224
logz = throw "The 'logz' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8459
pinecone = throw "The 'pinecone' extension for azure-cli was removed upstream"; # Added 2025-06-03, https://github.com/Azure/azure-cli-extensions/pull/8763
spring = throw "The 'spring' extension for azure-cli was deprecated upstream"; # Added 2025-05-07, https://github.com/Azure/azure-cli-extensions/pull/8652
weights-and-biases = throw "The 'weights-and-biases' was removed upstream"; # Added 2025-06-03, https://github.com/Azure/azure-cli-extensions/pull/8764
}

View file

@ -26,14 +26,14 @@
}:
let
version = "2.73.0";
version = "2.74.0";
src = fetchFromGitHub {
name = "azure-cli-${version}-src";
owner = "Azure";
repo = "azure-cli";
tag = "azure-cli-${version}";
hash = "sha256-MLmTV/tg5fM3XFEMtBLPdvsiUS5Gj8CH/zvdehDoka0=";
hash = "sha256-wX1XKC3snnKEQeqlW+btshjdcMR/5m2Z69QtcJe2Opc=";
};
# put packages that needs to be overridden in the py package scope
@ -168,6 +168,7 @@ py.pkgs.toPythonApplication (
azure-keyvault-certificates
azure-keyvault-keys
azure-keyvault-secrets
azure-keyvault-securitydomain
azure-mgmt-advisor
azure-mgmt-apimanagement
azure-mgmt-appconfiguration

View file

@ -21,6 +21,6 @@ stdenvNoCC.mkDerivation rec {
meta = {
description = "TrueType versions of the Computer Modern and AMS TeX Fonts";
homepage = "http://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma/ttf/";
homepage = "https://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma/ttf/";
};
}

View file

@ -9,12 +9,12 @@
testers,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "besu";
version = "24.1.2";
src = fetchurl {
url = "https://hyperledger.jfrog.io/artifactory/${pname}-binaries/${pname}/${version}/${pname}-${version}.tar.gz";
url = "https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/${finalAttrs.version}/besu-${finalAttrs.version}.tar.gz";
sha256 = "sha256-CC24z0+2dSeqDddX5dJUs7SX9QJ8Iyh/nAp0pqdDvwg=";
};
@ -26,20 +26,20 @@ stdenv.mkDerivation (finalAttrs: rec {
cp -r bin $out/
mkdir -p $out/lib
cp -r lib $out/
wrapProgram $out/bin/${pname} \
wrapProgram $out/bin/besu \
--set JAVA_HOME "${jre}" \
--suffix ${
if stdenv.hostPlatform.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"
} : ${lib.makeLibraryPath buildInputs}
} : ${lib.makeLibraryPath finalAttrs.buildInputs}
'';
passthru.tests = {
version = testers.testVersion {
package = finalAttrs.finalPackage;
version = "v${version}";
version = "v${finalAttrs.version}";
};
jemalloc =
runCommand "${pname}-test-jemalloc"
runCommand "besu-test-jemalloc"
{
nativeBuildInputs = [ finalAttrs.finalPackage ];
meta.platforms = with lib.platforms; linux;

View file

@ -9,7 +9,7 @@
brightnessctl,
power-profiles-daemon,
gammastep,
libpulseaudio,
pulseaudio,
desktop-file-utils,
wrapGAppsHook3,
gobject-introspection,
@ -19,14 +19,14 @@
python3Packages.buildPythonApplication rec {
pname = "better-control";
version = "6.11.9";
version = "6.12.1";
pyproject = false;
src = fetchFromGitHub {
owner = "quantumvoid0";
owner = "better-ecosystem";
repo = "better-control";
tag = "v${version}";
hash = "sha256-74ZcHiQLIYzPnk25NAJzxsdVMYs2fiPDOJHUTLY4LuE=";
hash = "sha256-Dt+se8eOmF8Nzm+/bnYBSIyX0XHSXV9iCPF82qXhzug=";
};
build-system = with python3Packages; [
@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
# Check src/utils/dependencies.py
runtimeDeps = [
libpulseaudio
pulseaudio
networkmanager
bluez
brightnessctl
@ -95,7 +95,7 @@ python3Packages.buildPythonApplication rec {
meta = {
description = "Simple control panel for linux based on GTK";
homepage = "https://github.com/quantumvoid0/better-control";
homepage = "https://github.com/better-ecosystem/better-control";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ Rishabh5321 ];
platforms = lib.platforms.linux;

View file

@ -13,13 +13,13 @@
buildNpmPackage rec {
pname = "bitwarden-cli";
version = "2025.4.0";
version = "2025.5.0";
src = fetchFromGitHub {
owner = "bitwarden";
repo = "clients";
tag = "cli-v${version}";
hash = "sha256-sWphSdxh07GS7GPlNVxK7zoXMTGLjT7qTLfH1nsIiQQ=";
hash = "sha256-8jVKwqKhTfhur226SER4sb1i4dY+TjJRYmOY8YtO6CY=";
};
postPatch = ''
@ -29,7 +29,7 @@ buildNpmPackage rec {
nodejs = nodejs_20;
npmDepsHash = "sha256-/BOzDt+wgnWedWfShPkAhaeujBBQTDlZdtiKl3wrOqE=";
npmDepsHash = "sha256-0IoBPRGdtkMeTrT5cqZLHB/WrUCONtsJ6YHh0y4K5Ls=";
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
cctools
@ -98,6 +98,8 @@ buildNpmPackage rec {
};
meta = {
# https://github.com/NixOS/nixpkgs/issues/339576
broken = stdenv.hostPlatform.isDarwin;
changelog = "https://github.com/bitwarden/clients/releases/tag/${src.tag}";
description = "Secure and free password manager for all of your devices";
homepage = "https://bitwarden.com";

View file

@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec {
strictDeps = false;
meta = with lib; {
homepage = "http://bleachbit.sourceforge.net";
homepage = "https://bleachbit.sourceforge.net";
description = "Program to clean your computer";
longDescription = "BleachBit helps you easily clean your computer to free space and maintain privacy.";
license = licenses.gpl3;

View file

@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = with lib; {
homepage = "http://catdvi.sourceforge.net";
homepage = "https://catdvi.sourceforge.net";
description = "DVI to plain text translator";
license = licenses.gpl2Plus;
maintainers = [ ];

View file

@ -23,15 +23,15 @@ stdenv.mkDerivation (finalAttrs: {
installPhase = ''
runHook preInstall
install -Dm755 a.out $out/bin/discretescroll
install -Dm555 a.out $out/bin/discretescroll
runHook postInstall
'';
meta = {
description = "Fix for OS X's scroll wheel problem";
description = "Fix for macOS's unnecessary scroll wheel acceleration";
homepage = "https://github.com/emreyolcu/discrete-scroll";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ bb2020 ];
platforms = lib.platforms.darwin;
maintainers = with lib.maintainers; [ bb2020 ];
};
})

View file

@ -12,6 +12,7 @@
fetchYarnDeps,
stdenv,
cctools,
nixosTests,
}:
# docs: https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/javascript.section.md#yarn2nix-javascript-yarn2nix
@ -95,7 +96,10 @@ mkYarnPackage rec {
distPhase = "true";
passthru.updateScript = ./update.sh;
passthru = {
tests = { inherit (nixosTests) draupnir; };
updateScript = ./update.sh;
};
meta = with lib; {
description = "Moderation tool for Matrix";

View file

@ -22,13 +22,13 @@
buildGoModule rec {
pname = "ecapture";
version = "1.0.2";
version = "1.1.0";
src = fetchFromGitHub {
owner = "gojue";
repo = "ecapture";
tag = "v${version}";
hash = "sha256-JqFb58JAepyNuxR3YVUX0tB+V66JrLVPUIVrnZn1aHw=";
hash = "sha256-mYnAa4zh7MqTTS2iU97YOhRbrCLd8C7D5furHNSO0F8=";
fetchSubmodules = true;
};
@ -113,7 +113,7 @@ buildGoModule rec {
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
vendorHash = "sha256-KRW5Gf9LYwo5AZ9bYPht+4staiYVyWGkbX/sXDNDppc=";
vendorHash = "sha256-B2Jq6v1PibZ1P9OylFsVp/ULZa/ne5T+vCsBWWrjW/4=";
passthru.updateScript = nix-update-script { };

View file

@ -29,7 +29,7 @@ buildNpmPackage {
meta = {
description = "Embedded JavaScript templates";
homepage = "http://ejs.co";
homepage = "https://ejs.co";
license = lib.licenses.asl20;
mainProgram = "ejs";
maintainers = with lib.maintainers; [ momeemt ];

View file

@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Chinese text-to-speech software";
homepage = "http://www.eguidedog.net/ekho.php";
homepage = "https://www.eguidedog.net/ekho.php";
longDescription = ''
Ekho () is a free, open source and multilingual text-to-speech (TTS)
software. It supports Cantonese (Chinese dialect spoken in Hong Kong and

View file

@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = {
homepage = "http://elvis.the-little-red-haired-girl.org/";
homepage = "https://elvis.the-little-red-haired-girl.org/";
description = "Vi clone for Unix and other operating systems";
license = lib.licenses.free;
mainProgram = "elvis";

View file

@ -11,12 +11,12 @@
texlive,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "eukleides";
version = "1.5.4";
src = fetchurl {
url = "http://www.eukleides.org/files/${pname}-${version}.tar.bz2";
url = "http://www.eukleides.org/files/eukleides-${finalAttrs.version}.tar.bz2";
sha256 = "0s8cyh75hdj89v6kpm3z24i48yzpkr8qf0cwxbs9ijxj1i38ki0q";
};

View file

@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "exploitdb";
version = "2025-05-30";
version = "2025-06-06";
src = fetchFromGitLab {
owner = "exploit-database";
repo = "exploitdb";
rev = "refs/tags/${version}";
hash = "sha256-X90stp4BiHOHoh030eqGeUGiWytF5ryY08/VYEsbnIw=";
hash = "sha256-DOzhxZZ66p49tECn0z1lGSNHq3GEpEbayhwsiJ6IGG4=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -50,7 +50,7 @@ stdenv.mkDerivation {
cddl
gpl2Plus
];
homepage = "http://www.brendangregg.com/flamegraphs.html";
homepage = "https://www.brendangregg.com/flamegraphs.html";
description = "Visualization for profiled code";
mainProgram = "flamegraph.pl";
platforms = platforms.unix;

View file

@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
fast, desktop experience. It is written in C++ and licensed
under MIT license.
'';
homepage = "http://fluxbox.org/";
homepage = "https://fluxbox.org/";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.linux;

View file

@ -97,7 +97,7 @@ perlPackages.buildPerlPackage rec {
outputs = [ "out" ];
meta = with lib; {
homepage = "http://www.fusioninventory.org";
homepage = "https://www.fusioninventory.org";
description = "FusionInventory unified Agent for UNIX, Linux, Windows and MacOSX";
license = lib.licenses.gpl2Only;
maintainers = [ maintainers.phile314 ];

View file

@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
strictDeps = false;
meta = {
homepage = "http://galculator.sourceforge.net/";
homepage = "https://galculator.sourceforge.net/";
description = "GTK algebraic and RPN calculator";
longDescription = ''
galculator is a GTK-based calculator. Its main features include:

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
'';
meta = with lib; {
homepage = "http://galenframework.com";
homepage = "https://galenframework.com";
description = "Automated layout testing for websites";
mainProgram = "galen";
sourceProvenance = with sourceTypes; [ binaryBytecode ];

View file

@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Open-source collection of tools for doing computation in game theory";
homepage = "http://www.gambit-project.org";
homepage = "https://www.gambit-project.org";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ t4ccer ];
platforms = with lib.platforms; unix ++ windows;

View file

@ -147,7 +147,7 @@ stdenv.mkDerivation rec {
Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science.
The two main reference papers for Geant4 are published in Nuclear Instruments and Methods in Physics Research A 506 (2003) 250-303, and IEEE Transactions on Nuclear Science 53 No. 1 (2006) 270-278.
'';
homepage = "http://www.geant4.org";
homepage = "https://www.geant4.org";
license = licenses.g4sl;
maintainers = with maintainers; [
omnipotententity

View file

@ -8,12 +8,12 @@
jre,
unzip,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "geoserver";
version = "2.27.0";
src = fetchurl {
url = "mirror://sourceforge/geoserver/GeoServer/${version}/geoserver-${version}-bin.zip";
url = "mirror://sourceforge/geoserver/GeoServer/${finalAttrs.version}/geoserver-${finalAttrs.version}-bin.zip";
hash = "sha256-bhL+u+BoKgW2cwOXEzaq0h07dKFz9u9WB2jW8nAF0vI=";
};

View file

@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Powerful open source image editor, especially suitable for creating icons, cursors, animations and icon libraries";
homepage = "http://greenfishsoftware.org/gfie.php";
homepage = "https://greenfishsoftware.org/gfie.php";
license = with lib.licenses; [ gpl3 ];
maintainers = with lib.maintainers; [ pluiedev ];
platforms = [ "x86_64-linux" ];

View file

@ -81,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
supports applying themes to match its appearance to your window
manager, Gtk, or any other theme.
'';
homepage = "http://gkrellm.srcbox.net";
homepage = "https://gkrellm.srcbox.net";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
};

View file

@ -9,14 +9,14 @@
pkgsBuildHost,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "glog";
version = "0.7.1";
src = fetchFromGitHub {
owner = "google";
repo = "glog";
rev = "v${version}";
rev = "v${finalAttrs.version}";
sha256 = "sha256-+nwWP6VBmhgU7GCPSEGUzvUSCc48wXME181WpJ5ABP4=";
};

View file

@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "ha-mqtt-discoverable-cli";
version = "0.18.0";
version = "0.19.2.1";
pyproject = true;
src = fetchFromGitHub {
owner = "unixorn";
repo = "ha-mqtt-discoverable-cli";
tag = "v${version}";
hash = "sha256-bPgVPj/ZfHznY0cY1ac0TlhCCdw3ZssL/E8yo0gACgQ=";
hash = "sha256-SPCbBqdhC+pgV3mQ+e3jkg2hWYegl1wE38Ac06R5uAA=";
};
pythonRelaxDeps = [ "ha-mqtt-discoverable" ];
@ -33,7 +33,7 @@ python3.pkgs.buildPythonApplication rec {
meta = {
description = "CLI for creating Home Assistant compatible MQTT entities that will be automatically discovered";
homepage = "https://github.com/unixorn/ha-mqtt-discoverable-cli";
changelog = "https://github.com/unixorn/ha-mqtt-discoverable-cli/releases/tag/v${version}";
changelog = "https://github.com/unixorn/ha-mqtt-discoverable-cli/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "hmd";

View file

@ -4,7 +4,7 @@
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation (finalAttrs: rec {
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "has";
version = "1.5.0";
@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation (finalAttrs: rec {
installPhase = ''
runHook preInstall
install -Dm0555 ${pname} -t $out/bin
install -Dm0555 has -t $out/bin
runHook postInstall
'';

View file

@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Puzzle game based on hexagonal tiles";
mainProgram = "hex-a-hop";
homepage = "http://hexahop.sourceforge.net";
homepage = "https://hexahop.sourceforge.net";
license = with lib.licenses; [
gpl2Plus # Main code
cc-by-30 # Assets

View file

@ -1,6 +1,6 @@
{
lib,
python3Packages,
python313Packages,
fetchFromGitHub,
wrapGAppsHook4,
meson,
@ -11,18 +11,20 @@
libadwaita,
gst_all_1,
libsecret,
libportal,
nix-update-script,
}:
python3Packages.buildPythonApplication {
python313Packages.buildPythonApplication rec {
pname = "high-tide";
version = "0-unstable-2025-05-01";
version = "0.1.5";
pyproject = false;
src = fetchFromGitHub {
owner = "Nokse22";
repo = "high-tide";
rev = "6278ff9471b7481cf0291ab2a9f6d06322506dfc";
hash = "sha256-4pVRVXEwz0ngjS1Vpt/o00lLYsZ6SvTCk4ivyGoQ4lQ=";
tag = "v${version}";
hash = "sha256-HoPyqsLPLfqyQbrhoPzr3n81yX1MHZVUVmq5RKDN5pI=";
};
nativeBuildInputs = [
@ -35,7 +37,10 @@ python3Packages.buildPythonApplication {
];
buildInputs =
[ libadwaita ]
[
libadwaita
libportal
]
++ (with gst_all_1; [
gstreamer
gst-plugins-base
@ -45,7 +50,7 @@ python3Packages.buildPythonApplication {
libsecret
]);
dependencies = with python3Packages; [
dependencies = with python313Packages; [
pygobject3
tidalapi
requests
@ -56,12 +61,15 @@ python3Packages.buildPythonApplication {
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Libadwaita TIDAL client for Linux";
homepage = "https://github.com/Nokse22/high-tide";
license = with lib.licenses; [ gpl3Plus ];
mainProgram = "HighTide";
mainProgram = "high-tide";
maintainers = with lib.maintainers; [
nilathedragon
nyabinary
griffi-gh
];

View file

@ -52,27 +52,28 @@ let
cp libsha1.so $out/lib/
'';
};
in
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "isabelle";
version = "2025";
dirname = "Isabelle${version}";
dirname = "Isabelle${finalAttrs.version}";
src =
if stdenv.hostPlatform.isDarwin then
fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
url = "https://isabelle.in.tum.de/website-${finalAttrs.dirname}/dist/${finalAttrs.dirname}_macos.tar.gz";
hash = "sha256-6ldUwiiFf12dOuJU7JgUeX8kU+opDfILL23LLvDi5/g=";
}
else if stdenv.hostPlatform.isx86 then
fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
url = "https://isabelle.in.tum.de/website-${finalAttrs.dirname}/dist/${finalAttrs.dirname}_linux.tar.gz";
hash = "sha256-PR1m3jcYI/4xqormZjj3NXW6wkTwCzGu4dy2LzgUfFY=";
}
else
fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux_arm.tar.gz";
url = "https://isabelle.in.tum.de/website-${finalAttrs.dirname}/dist/${finalAttrs.dirname}_linux_arm.tar.gz";
hash = "sha256-p/Hp+7J5gJy5s6BVD5Ma1Mu2OS53I8BS7gKSOYYB0PE=";
};
@ -88,14 +89,14 @@ stdenv.mkDerivation (finalAttrs: rec {
propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ procps ];
sourceRoot = "${dirname}${lib.optionalString stdenv.hostPlatform.isDarwin ".app"}";
sourceRoot = "${finalAttrs.dirname}${lib.optionalString stdenv.hostPlatform.isDarwin ".app"}";
doCheck = stdenv.hostPlatform.system != "aarch64-linux";
checkPhase = "bin/isabelle build -v HOL-SMT_Examples";
postUnpack = lib.optionalString stdenv.hostPlatform.isDarwin ''
mv $sourceRoot ${dirname}
sourceRoot=${dirname}
mv $sourceRoot ${finalAttrs.dirname}
sourceRoot=${finalAttrs.dirname}
'';
postPatch =
@ -208,11 +209,11 @@ stdenv.mkDerivation (finalAttrs: rec {
# icon
mkdir -p "$out/share/icons/hicolor/isabelle/apps"
cp "$out/Isabelle${version}/lib/icons/isabelle.xpm" "$out/share/icons/hicolor/isabelle/apps/"
cp "$out/Isabelle${finalAttrs.version}/lib/icons/isabelle.xpm" "$out/share/icons/hicolor/isabelle/apps/"
# desktop item
mkdir -p "$out/share"
cp -r "${desktopItem}/share/applications" "$out/share/applications"
cp -r "${finalAttrs.desktopItem}/share/applications" "$out/share/applications"
'';
desktopItem = makeDesktopItem {
@ -220,7 +221,7 @@ stdenv.mkDerivation (finalAttrs: rec {
exec = "isabelle jedit";
icon = "isabelle";
desktopName = "Isabelle";
comment = meta.description;
comment = finalAttrs.meta.description;
categories = [
"Education"
"Science"

View file

@ -1,33 +1,49 @@
{
lib,
stdenv,
fetchurl,
fetchzip,
cups,
autoPatchelfHook,
detox,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "labelife-label-printer";
version = "1.2.1";
version = "2.0.0";
arch =
if stdenv.hostPlatform.system == "x86_64-linux" then
"x86_64"
else if stdenv.hostPlatform.system == "i686-linux" then
"i386"
else
throw "Unsupported system: ${stdenv.hostPlatform.system}";
{
aarch64-linux = "aarch64";
armv7l-linux = "armhf";
i686-linux = "i386";
x86_64-linux = "x86_64";
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
src = fetchurl {
url = "https://oss.saas.aimocloud.com/saas/Lablife/bag/LabelPrinter-${finalAttrs.version}.tar.gz";
hash = "sha256-twnIFMBMyEM3xGlsuk3763C3emz3mgpEnlfvnL0XRWw=";
src = fetchzip {
url = "https://oss.qu-in.ltd/Labelife/Label_Printer_Driver_Linux.zip";
hash = "sha256-0ESZ0EqPh9Wz6ogQ6vTsAogujbn4zINtMh62sEpNRs4=";
};
nativeBuildInputs = [ autoPatchelfHook ];
nativeBuildInputs = [
autoPatchelfHook
detox
];
buildInputs = [ cups ];
unpackPhase = ''
runHook preUnpack
tar -xzf ${finalAttrs.src}/LabelPrinter-${finalAttrs.version}.001.tar.gz --strip-components=1
runHook postUnpack
'';
installPhase = ''
runHook preInstall
# Remove spaces from PPD filenames
detox ppds
# Install the CUPS filter with executable permissions
install -Dm755 ./${finalAttrs.arch}/rastertolabeltspl $out/lib/cups/filter/rastertolabeltspl
@ -46,9 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
longDescription = ''
Supported printer models include:
- D520 & D520BT
- PM-201
- PM-241 & PM-241-BT
- PM-246 & PM-246S
Brands using Labelife drivers include:
- Phomemo
@ -58,6 +72,8 @@ stdenv.mkDerivation (finalAttrs: {
'';
maintainers = with lib.maintainers; [ daniel-fahey ];
platforms = [
"aarch64-linux"
"armv7l-linux"
"i686-linux"
"x86_64-linux"
];

View file

@ -14,14 +14,14 @@
gst_all_1,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
version = "1.0.15";
pname = "libde265";
src = fetchFromGitHub {
owner = "strukturag";
repo = "libde265";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-guiLM4RNe5O0qpeCoQUbs1Z7j0wp8iK9za2+6NIB8yY=";
};

View file

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
meta = with lib; {
homepage = "http://www.libdivecomputer.org";
homepage = "https://www.libdivecomputer.org";
description = "Cross-platform and open source library for communication with dive computers from various manufacturers";
mainProgram = "dctool";
maintainers = [ maintainers.mguentner ];

View file

@ -51,14 +51,12 @@ let
];
});
pname = "littlenavmap";
desktopItem = makeDesktopItem {
name = "Little Navmap";
desktopName = "Little Navmap";
icon = pname;
icon = "littlenavmap";
terminal = false;
exec = pname;
exec = "littlenavmap";
categories = [
"Qt"
"Utility"
@ -67,14 +65,14 @@ let
];
};
in
stdenv.mkDerivation (finalAttrs: rec {
inherit pname;
stdenv.mkDerivation (finalAttrs: {
pname = "littlenavmap";
version = "3.0.17";
src = fetchFromGitHub {
owner = "albar965";
repo = "littlenavmap";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-/1YB2uEQzT0K6IylpWDqOaMSENDR9GuyJNty+2C8kXM=";
};
@ -122,7 +120,7 @@ stdenv.mkDerivation (finalAttrs: rec {
meta = {
description = "Free flight planner, navigation tool, moving map, airport search and airport information system for Flight Simulator X, Microsoft Flight Simulator 2020, Prepar3D and X-Plane";
homepage = "https://github.com/albar965/littlenavmap";
changelog = "https://github.com/albar965/littlenavmap/blob/${src.rev}/CHANGELOG.txt";
changelog = "https://github.com/albar965/littlenavmap/blob/${finalAttrs.src.tag}/CHANGELOG.txt";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ ck3d ];
mainProgram = "littlenavmap";

View file

@ -10,19 +10,19 @@
rustPlatform.buildRustPackage rec {
pname = "lon";
version = "0.5.0";
version = "0.7.0";
src = fetchFromGitHub {
owner = "nikstur";
repo = "lon";
tag = version;
hash = "sha256-/7RelKn3pzC8n+b2OV1pcUEaWeEoH4qC2TvAWwni5AA=";
hash = "sha256-+hCqAtu9uo9BndZogXUIMMoL1pXmwyec5edj6gg82GM=";
};
sourceRoot = "source/rust/lon";
useFetchCargoVendor = true;
cargoHash = "sha256-2/lHRv3bD0hX/JVSucsA3G5gM9NMgRrBf21JtEvzu64=";
cargoHash = "sha256-i+DAVtXAYQ254Y7jechjOcwe3nT/0O4AzxBH5QkK9aM=";
nativeBuildInputs = [ makeBinaryWrapper ];

View file

@ -130,7 +130,7 @@ libsForQt5.mkDerivation {
licenses.unfree
licenses.lgpl21
];
homepage = "http://makemkv.com";
homepage = "https://makemkv.com";
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ jchw ];
};

View file

@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
passthru.updateScript = nix-update-script { };
meta = with lib; {
homepage = "http://brandy.matrixnetwork.co.uk/";
homepage = "https://brandy.matrixnetwork.co.uk/";
description = "Matrix Brandy BASIC VI for Linux, Windows, MacOSX";
mainProgram = "brandy";
license = licenses.gpl2Plus;

View file

@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
meta = {
description = "OpenStreetMap editor";
homepage = "http://merkaartor.be/";
homepage = "https://merkaartor.be/";
license = lib.licenses.gpl2Plus;
mainProgram = "merkaartor";
maintainers = with lib.maintainers; [ sikmir ];

View file

@ -9,7 +9,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "metals";
version = "1.5.3";
version = "1.6.0";
deps = stdenv.mkDerivation {
name = "metals-deps-${finalAttrs.version}";
@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-jxrAtlD+s3yjcDWYLoN7mr8RozutItCv8dt28/UoVjk=";
outputHash = "sha256-+6u/nnaoCBEQCwhvPs1WQzMnppz7KEWWd1TlzbKYpAU=";
};
nativeBuildInputs = [

View file

@ -20,7 +20,7 @@
- fontforge = null (limited functionality)
*/
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "mftrace";
version = "1.2.20";
@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: rec {
src = fetchFromGitHub {
owner = "hanwen";
repo = "mftrace";
rev = "release/${version}";
rev = "release/${finalAttrs.version}";
sha256 = "02ik25aczkbi10jrjlnxby3fmixxrwm2k5r4fkfif3bjfym7nqbc";
};

View file

@ -0,0 +1,30 @@
{
lib,
buildGoModule,
fetchFromGitea,
unstableGitUpdater,
}:
buildGoModule {
pname = "mozhi";
version = "0-unstable-2025-04-14";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "aryak";
repo = "mozhi";
rev = "c2c14988c09e6c5fae5a8ac59c07a650f0997a5a";
hash = "sha256-xJw9BkdKlN1VToKyDlkW8UUZB94gzD9nclNciDmVIkk=";
};
vendorHash = "sha256-ptwP+ZuuzxRpIuNDoXnAML1KYEh9zTBcOs9YTI8z63A=";
passthru.updateScript = unstableGitUpdater { };
meta = {
homepage = "https://codeberg.org/aryak/mozhi";
description = "Alternative-frontend for many translation engines, fork of SimplyTranslate";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.ryand56 ];
mainProgram = "mozhi";
};
}

View file

@ -12,14 +12,14 @@
makeDesktopItem,
nix-update-script,
}:
buildDotnetModule (finalAttrs: rec {
buildDotnetModule (finalAttrs: {
pname = "msbuild-structured-log-viewer";
version = "2.2.490";
src = fetchFromGitHub {
owner = "KirillOsenkov";
repo = "MSBuildStructuredLog";
rev = "v${version}";
rev = "v${finalAttrs.version}";
hash = "sha256-VJun6bs47NKj90e/6ZGp66x+MG1R/qxqrn2L1bVkdHY=";
};
@ -48,10 +48,10 @@ buildDotnetModule (finalAttrs: rec {
postFixup =
''
wrapDotnetProgram $out/lib/${finalAttrs.pname}/StructuredLogViewer.Avalonia $out/bin/${meta.mainProgram}
wrapDotnetProgram $out/lib/msbuild-structured-log-viewer/StructuredLogViewer.Avalonia $out/bin/${finalAttrs.meta.mainProgram}
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
install -Dm444 $src/src/StructuredLogViewer/icons/msbuild-structured-log-viewer.png $out/share/icons/hicolor/32x32/apps/${finalAttrs.pname}.png
install -Dm444 $src/src/StructuredLogViewer/icons/msbuild-structured-log-viewer.png $out/share/icons/hicolor/32x32/apps/msbuild-structured-log-viewer.png
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace src/StructuredLogViewer.Avalonia/Info.plist \
@ -60,15 +60,15 @@ buildDotnetModule (finalAttrs: rec {
install -Dm444 src/StructuredLogViewer.Avalonia/Info.plist $out/Applications/StructuredLogViewer.app/Contents/Info.plist
install -Dm444 src/StructuredLogViewer.Avalonia/StructuredLogViewer.icns $out/Applications/StructuredLogViewer.app/Contents/Resources/StructuredLogViewer.icns
mkdir -p $out/Applications/StructuredLogViewer.app/Contents/MacOS
ln -s $out/bin/${meta.mainProgram} $out/Applications/StructuredLogViewer.app/Contents/MacOS/StructuredLogViewer.Avalonia
ln -s $out/bin/${finalAttrs.meta.mainProgram} $out/Applications/StructuredLogViewer.app/Contents/MacOS/StructuredLogViewer.Avalonia
'';
desktopItems = makeDesktopItem {
name = finalAttrs.pname;
name = "msbuild-structured-log-viewer";
desktopName = "MSBuild Structured Log Viewer";
comment = finalAttrs.meta.description;
icon = finalAttrs.pname;
exec = meta.mainProgram;
icon = "msbuild-structured-log-viewer";
exec = finalAttrs.meta.mainProgram;
categories = [ "Development" ];
};

View file

@ -5,7 +5,7 @@
installShellFiles,
}:
buildGoModule (finalAttrs: rec {
buildGoModule (finalAttrs: {
pname = "noti";
version = "3.8.0";

View file

@ -10,13 +10,13 @@ let
nim2 = nim-2_0;
};
in
buildNimPackage' (finalAttrs: rec {
buildNimPackage' (finalAttrs: {
pname = "nph";
version = "0.6.1";
postPatch = ''
substituteInPlace src/nph.nim \
--replace-fail 'git describe --long --dirty --always --tags' "echo ${version}"
--replace-fail 'git describe --long --dirty --always --tags' "echo ${finalAttrs.version}"
'';
src = fetchFromGitHub {

View file

@ -101,7 +101,7 @@ python3.pkgs.buildPythonApplication rec {
meta = {
description = "Calendar web-app designed for scheduling and managing on-call shifts";
homepage = "http://oncall.tools";
homepage = "https://oncall.tools";
changelog = "https://github.com/linkedin/oncall/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ onny ];

View file

@ -38,7 +38,7 @@ stdenv.mkDerivation {
around datasets arising from point samples, images, distance
matrices and so forth.
'';
homepage = "http://people.maths.ox.ac.uk/nanda/perseus/index.html";
homepage = "https://people.maths.ox.ac.uk/nanda/perseus/index.html";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ erikryb ];
platforms = lib.platforms.linux;

View file

@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = with lib; {
homepage = "http://pixman.org";
homepage = "https://pixman.org";
description = "Low-level library for pixel manipulation";
license = licenses.mit;
platforms = platforms.all;

View file

@ -117,7 +117,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "portable open source (MIT-licensed) implementation of the OpenCL standard";
homepage = "http://portablecl.org";
homepage = "https://portablecl.org";
changelog = "https://github.com/pocl/pocl/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [

View file

@ -30,7 +30,7 @@
waylandSupport ? stdenv.hostPlatform.isLinux,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "q2pro";
version = "0-unstable-2025-05-03";
@ -90,9 +90,9 @@ stdenv.mkDerivation (finalAttrs: rec {
(lib.mesonEnable "windows-crash-dumps" false)
];
internalVersion = "r${revCount}~${builtins.substring 0 8 src.rev}";
internalVersion = "r${finalAttrs.revCount}~${builtins.substring 0 8 finalAttrs.src.rev}";
postPatch = ''
echo '${internalVersion}' > VERSION
echo '${finalAttrs.internalVersion}' > VERSION
'';
postInstall =
@ -105,13 +105,13 @@ stdenv.mkDerivation (finalAttrs: rec {
makeWrapper $out/bin/q2pro-unwrapped $out/bin/q2pro \
--prefix ${ldLibraryPathEnvName} : "${lib.makeLibraryPath finalAttrs.buildInputs}"
install -D ${src}/src/unix/res/q2pro.xpm $out/share/icons/hicolor/32x32/apps/q2pro.xpm
install -D ${finalAttrs.src}/src/unix/res/q2pro.xpm $out/share/icons/hicolor/32x32/apps/q2pro.xpm
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
preVersionCheck = ''
export version='${internalVersion}'
export version='${finalAttrs.internalVersion}'
'';
doInstallCheck = true;

View file

@ -53,7 +53,7 @@ python3.pkgs.buildPythonApplication rec {
pkgsCross.avr.buildPackages.binutils
pkgsCross.avr.buildPackages.binutils.bintools
pkgsCross.avr.buildPackages.gcc
pkgsCross.avr.libcCross
pkgsCross.avr.libc
];
# no tests implemented

View file

@ -8,7 +8,7 @@
autoreconfHook,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "qrencode";
version = "4.1.1";
@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: rec {
src = fetchFromGitHub {
owner = "fukuchi";
repo = "libqrencode";
rev = "v${version}";
rev = "v${finalAttrs.version}";
hash = "sha256-nbrmg9SqCqMrLE7WCfNEzMV/eS9UVCKCrjBrGMzAsLk";
};

View file

@ -0,0 +1,53 @@
{
lib,
python3Packages,
fetchFromGitHub,
fetchpatch2,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "render50";
version = "9.2.8";
pyproject = true;
src = fetchFromGitHub {
owner = "cs50";
repo = "render50";
tag = "v${version}";
hash = "sha256-ZCSd1Y7PPVkMQWkEgcaqh3Ypy8OrWxI9iM2HMVT/VeA=";
};
build-system = [
python3Packages.setuptools
];
dependencies = with python3Packages; [
backports-shutil-which
braceexpand
beautifulsoup4
natsort
pygments
pypdf
requests
six
termcolor
weasyprint
];
nativeCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
# no pytest checks
meta = {
description = "Generate syntax-highlighted PDFs of source code";
homepage = "https://cs50.readthedocs.io/render50/";
downloadPage = "https://github.com/cs50/render50";
changelog = "https://github.com/cs50/render50/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ ethancedwards8 ];
mainProgram = "render50";
};
}

View file

@ -46,7 +46,7 @@ stdenv.mkDerivation {
'';
meta = with lib; {
homepage = "http://selendroid.io/";
homepage = "https://selendroid.io/";
description = "Test automation for native or hybrid Android apps and the mobile web";
maintainers = with maintainers; [ offline ];
platforms = platforms.all;

View file

@ -14,7 +14,7 @@
libxslt,
libxcrypt,
pkg-config,
glibcCross ? null,
glibc ? null,
pam ? null,
withLibbsd ? lib.meta.availableOn stdenv.hostPlatform libbsd,
libbsd,
@ -24,7 +24,7 @@
let
glibc =
if stdenv.hostPlatform != stdenv.buildPlatform then
glibcCross
glibc
else
assert stdenv.hostPlatform.libc == "glibc";
stdenv.cc.libc;

View file

@ -5,14 +5,14 @@
lib,
makeWrapper,
nix-update-script,
python3Packages,
python312Packages,
squashfsTools,
cacert,
stdenv,
writableTmpDirAsHomeHook,
}:
python3Packages.buildPythonApplication rec {
python312Packages.buildPythonApplication rec {
pname = "snapcraft";
version = "8.9.2";
@ -58,7 +58,7 @@ python3Packages.buildPythonApplication rec {
nativeBuildInputs = [ makeWrapper ];
dependencies = with python3Packages; [
dependencies = with python312Packages; [
attrs
catkin-pkg
click
@ -102,7 +102,7 @@ python3Packages.buildPythonApplication rec {
validators
];
build-system = with python3Packages; [ setuptools-scm ];
build-system = with python312Packages; [ setuptools-scm ];
pythonRelaxDeps = [
"click"
@ -125,7 +125,7 @@ python3Packages.buildPythonApplication rec {
'';
nativeCheckInputs =
with python3Packages;
with python312Packages;
[
pytest-check
pytest-cov-stub

View file

@ -0,0 +1,34 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 80b9aab..e56ca84 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,8 +88,7 @@ include(FetchContent)
# Qlementine Icons: an SVG icon library made for Qt.
FetchContent_Declare(qlementine-icons
- GIT_REPOSITORY "https://github.com/oclero/qlementine-icons.git"
- GIT_TAG v1.8.0
+ SOURCE_DIR "@qlementine-icons-src@"
)
FetchContent_MakeAvailable(qlementine-icons)
set_target_properties(qlementine-icons
@@ -99,8 +98,7 @@ set_target_properties(qlementine-icons
# Qlementine: the QStyle library to have a modern look n' feel.
FetchContent_Declare(qlementine
- GIT_REPOSITORY "https://github.com/oclero/qlementine.git"
- GIT_TAG v1.2.0
+ SOURCE_DIR "@qlementine-src@"
)
FetchContent_MakeAvailable(qlementine)
set_target_properties(qlementine
@@ -109,8 +107,7 @@ set_target_properties(qlementine
)
FetchContent_Declare(QtAppInstanceManager
- GIT_REPOSITORY "https://github.com/oclero/qtappinstancemanager.git"
- GIT_TAG v1.3.0
+ SOURCE_DIR "@qtappinstancemanager-src@"
)
FetchContent_MakeAvailable(QtAppInstanceManager)
set_target_properties(QtAppInstanceManager

View file

@ -0,0 +1,109 @@
{
lib,
stdenv,
fetchFromGitLab,
fetchFromGitHub,
replaceVars,
cmake,
ninja,
luajit,
SDL2,
SDL2_image,
SDL2_ttf,
physfs,
openal,
libmodplug,
libvorbis,
solarus,
glm,
qt6Packages,
kdePackages,
}:
let
qlementine-icons-src = fetchFromGitHub {
owner = "oclero";
repo = "qlementine-icons";
tag = "v1.8.0";
hash = "sha256-FPndzMEOQvYNYUbT2V6iDlwoYqOww38GW/T3zUID3g0=";
};
qlementine-src = fetchFromGitHub {
owner = "oclero";
repo = "qlementine";
tag = "v1.2.1";
hash = "sha256-CPQMmTXyUW+CyLjHYx+IdXY4I2mVPudOmAksjd+izPA=";
};
qtappinstancemanager-src = fetchFromGitHub {
owner = "oclero";
repo = "qtappinstancemanager";
tag = "v1.3.0";
hash = "sha256-/zvNR/RHNV19ZI8d+58sotWxY16q2a7wWIBuKO52H5M=";
};
inherit (qt6Packages)
qtbase
qttools
wrapQtAppsHook
;
in
stdenv.mkDerivation (finalAttrs: {
pname = "solarus-launcher";
version = "2.0.0";
src = fetchFromGitLab {
owner = "solarus-games";
repo = "solarus-launcher";
tag = "v${finalAttrs.version}";
hash = "sha256-zBJnHzYJyhfzP1m6TgMkDLRA3EXC1oG8PC0Jq/fC2+Q=";
};
patches = [
(replaceVars ./github-fetches.patch {
inherit qlementine-src qlementine-icons-src qtappinstancemanager-src;
})
];
strictDeps = true;
nativeBuildInputs = [
cmake
ninja
qttools
wrapQtAppsHook
];
buildInputs = [
luajit
SDL2
SDL2_image
SDL2_ttf
physfs
openal
libmodplug
libvorbis
solarus
qtbase
kdePackages.qtsvg
glm
];
meta = {
description = "Launcher for the Zelda-like ARPG game engine, Solarus";
longDescription = ''
Solarus is a game engine for Zelda-like ARPG games written in lua.
Many full-fledged games have been writen for the engine.
Games can be created easily using the editor.
'';
homepage = "https://www.solarus-games.org";
mainProgram = "solarus-launcher";
license = with lib.licenses; [
# code
gpl3Plus
# assets
cc-by-sa-40
];
maintainers = with lib.maintainers; [ marcin-serwin ];
platforms = lib.platforms.linux;
};
})

View file

@ -0,0 +1,88 @@
{
lib,
stdenv,
fetchFromGitLab,
fetchFromGitHub,
replaceVars,
cmake,
ninja,
luajit,
SDL2,
SDL2_image,
SDL2_ttf,
physfs,
openal,
libmodplug,
libvorbis,
solarus,
glm,
qt6Packages,
kdePackages,
}:
let
qlementine-src = fetchFromGitHub {
owner = "oclero";
repo = "qlementine";
tag = "v1.2.0";
hash = "sha256-25PKOpQl3IkBXX14gt8KKYXXJKeutQ75O7BftEqCAxk=";
};
inherit (qt6Packages)
qtbase
qttools
wrapQtAppsHook
;
in
stdenv.mkDerivation (finalAttrs: {
pname = "solarus-quest-editor";
version = "2.0.0";
src = fetchFromGitLab {
owner = "solarus-games";
repo = "solarus-quest-editor";
tag = "v${finalAttrs.version}";
hash = "sha256-GTslxValldReWGb3x67zRPrvQUuCO/HQSXOEQlJfAmw=";
};
patches = [
(replaceVars ./qlementine-src.patch { inherit qlementine-src; })
];
strictDeps = true;
nativeBuildInputs = [
cmake
ninja
qttools
wrapQtAppsHook
];
buildInputs = [
luajit
SDL2
SDL2_image
SDL2_ttf
physfs
openal
libmodplug
libvorbis
solarus
qtbase
kdePackages.qtsvg
glm
];
meta = {
description = "Editor for the Zelda-like ARPG game engine, Solarus";
mainProgram = "solarus-editor";
longDescription = ''
Solarus is a game engine for Zelda-like ARPG games written in lua.
Many full-fledged games have been writen for the engine.
Games can be created easily using the editor.
'';
homepage = "https://www.solarus-games.org";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ marcin-serwin ];
platforms = lib.platforms.linux;
};
})

View file

@ -0,0 +1,13 @@
diff --git a/cmake/AddDependencies.cmake b/cmake/AddDependencies.cmake
index 8272d14..054c079 100644
--- a/cmake/AddDependencies.cmake
+++ b/cmake/AddDependencies.cmake
@@ -51,7 +51,6 @@ endif()
include(FetchContent)
FetchContent_Declare(
qlementine
- GIT_REPOSITORY https://github.com/oclero/qlementine.git
- GIT_TAG v1.2.0
+ SOURCE_DIR "@qlementine-src@"
)
FetchContent_MakeAvailable(qlementine)

View file

@ -0,0 +1,92 @@
{
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
cmake,
ninja,
luajit,
SDL2,
SDL2_image,
SDL2_ttf,
physfs,
glm,
openal,
libmodplug,
libvorbis,
# tests
solarus-quest-editor,
solarus-launcher,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "solarus";
version = "2.0.0";
src = fetchFromGitLab {
owner = "solarus-games";
repo = "solarus";
tag = "v${finalAttrs.version}";
hash = "sha256-Kfg4pFZrEhsIU4RQlOox3hMpk2PXbOzrkwDElPGnDjA=";
};
patches = [
# https://gitlab.com/solarus-games/solarus/-/merge_requests/1570
(fetchpatch {
url = "https://gitlab.com/solarus-games/solarus/-/commit/8e1eee51cbfa5acf2511b059739153065b0ba21d.patch";
hash = "sha256-KevGavtUhpHRt85WLh9ApmZ8a+NeWB1zDDHKGT08yhQ=";
})
];
outputs = [
"out"
"lib"
"dev"
];
strictDeps = true;
nativeBuildInputs = [
cmake
ninja
];
buildInputs = [
luajit
SDL2
SDL2_image
SDL2_ttf
physfs
openal
libmodplug
libvorbis
glm
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_CXX_FLAGS" "-DGLM_ENABLE_EXPERIMENTAL")
(lib.cmakeFeature "CMAKE_INSTALL_DATADIR" "${placeholder "lib"}/share")
];
passthru.tests = {
inherit solarus-quest-editor solarus-launcher;
};
meta = {
description = "Zelda-like ARPG game engine";
longDescription = ''
Solarus is a game engine for Zelda-like ARPG games written in lua.
Many full-fledged games have been writen for the engine.
'';
homepage = "https://www.solarus-games.org";
mainProgram = "solarus-run";
license = with lib.licenses; [
# code
gpl3Plus
# assets
cc-by-sa-30
cc-by-sa-40
];
maintainers = with lib.maintainers; [ marcin-serwin ];
platforms = lib.platforms.linux;
};
})

View file

@ -11,13 +11,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "stellarsolver";
version = "2.6";
version = "2.7";
src = fetchFromGitHub {
owner = "rlancaste";
repo = "stellarsolver";
rev = finalAttrs.version;
sha256 = "sha256-6WDiHaBhi9POtXynGU/eTeuqZSK81JJeuZv4SxOeVoE=";
sha256 = "sha256-tASjV5MZ1ClumZqu/R61b6XE9CGTuVFfpxyC89fwN9o=";
};
nativeBuildInputs = [ cmake ];

View file

@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
description = "Learn foreign languages using audio and subtitles extracted from video files";
homepage = "http://www.randomhacks.net/substudy";
homepage = "https://www.randomhacks.net/substudy";
license = licenses.asl20;
mainProgram = "substudy";
maintainers = with maintainers; [ paveloom ];

View file

@ -32,14 +32,14 @@
pantheon,
}:
stdenv.mkDerivation (finalAttrs: rec {
stdenv.mkDerivation (finalAttrs: {
pname = "SwayNotificationCenter";
version = "0.11.0";
src = fetchFromGitHub {
owner = "ErikReider";
repo = "SwayNotificationCenter";
rev = "v${version}";
rev = "v${finalAttrs.version}";
hash = "sha256-kRawYbBLVx0ie4t7tChkA8QJShS83fUcGrJSKkxBy8Q=";
};
@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: rec {
meta = with lib; {
description = "Simple notification daemon with a GUI built for Sway";
homepage = "https://github.com/ErikReider/SwayNotificationCenter";
changelog = "https://github.com/ErikReider/SwayNotificationCenter/releases/tag/v${version}";
changelog = "https://github.com/ErikReider/SwayNotificationCenter/releases/tag/v${finalAttrs.version}";
license = licenses.gpl3;
platforms = platforms.linux;
mainProgram = "swaync";

View file

@ -148,7 +148,7 @@ stdenv.mkDerivation {
meta = with lib; {
description = "2D animation program";
homepage = "http://www.synfig.org";
homepage = "https://www.synfig.org";
license = licenses.gpl3Plus;
maintainers = [ ];
platforms = platforms.linux ++ platforms.darwin;

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation ({
meta = {
description = "Test Environment Toolkit is used in test applications like The Open Group's UNIX Certification program and the Free Standards Group's LSB Certification program";
homepage = "http://tetworks.opengroup.org/Products/tet.htm";
homepage = "https://tetworks.opengroup.org/Products/tet.htm";
license = lib.licenses.artistic1;
platforms = lib.platforms.unix;
maintainers = [ ];

View file

@ -9,12 +9,12 @@
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
version = "20250602083629";
version = "20250605152911";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
hash = "sha256-LdB4BUHDpPoA0c8yoZX9gZhaY97t4DfkR37y32yHlvk=";
hash = "sha256-WmBRTr1DHsYgw1XBYCgJAqIvgoW+oqMHe7Ifh7pSG1I=";
};
vendorHash = "sha256-NLh14rXRci4hgDkBJVJDIDvobndB7KYRKAX7UjyqSsg=";
meta = with lib; {

View file

@ -50,7 +50,7 @@ stdenv.mkDerivation {
It extracts content so that you can read it when you have time.
'';
license = licenses.mit;
homepage = "http://wallabag.org";
homepage = "https://wallabag.org";
changelog = "https://github.com/wallabag/wallabag/releases/tag/${version}";
maintainers = with maintainers; [ schneefux ];
platforms = platforms.all;

View file

@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
'';
meta = with lib; {
homepage = "http://www.doof.me.uk/xcowsay";
homepage = "https://www.doof.me.uk/xcowsay";
description = "Tool to display a cute cow and messages";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ das_j ];

View file

@ -29,18 +29,18 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "zipline";
version = "4.1.0";
version = "4.1.2";
src = fetchFromGitHub {
owner = "diced";
repo = "zipline";
tag = "v${finalAttrs.version}";
hash = "sha256-5qa2K17RmWHO5mrkz/Imoxv4ODEaJow3BMUBNzl7Dg8=";
hash = "sha256-xxe64tGxZ2Udr+p21CKTZCHJ19ZOsdgPLlil+v+j5j4=";
};
pnpmDeps = pnpm_10.fetchDeps {
inherit (finalAttrs) pname version src;
hash = "sha256-xFe1Fdsp8Tpz0r+xvPSYuPR8gXTts6iWTq0a9u+Xh3U=";
hash = "sha256-O8RLaKff4Dj/JDeUOyf7GtcFcOu/aOuclyaZmVqVi5s=";
};
buildInputs = [ vips ];

View file

@ -38,6 +38,10 @@ pkgs.haskell.packages.ghc96.override {
inherit fetchElmDeps;
elmVersion = elmPkgs.elm.version;
# Fix TLS issues
# see https://github.com/elm/compiler/pull/2325
tls = self.callPackage ./tls-1.9.0.nix { };
};
in
elmPkgs

View file

@ -0,0 +1,79 @@
{
mkDerivation,
asn1-encoding,
asn1-types,
async,
base,
bytestring,
cereal,
crypton,
crypton-x509,
crypton-x509-store,
crypton-x509-validation,
data-default-class,
gauge,
hourglass,
lib,
memory,
mtl,
network,
QuickCheck,
tasty,
tasty-quickcheck,
transformers,
unix-time,
}:
mkDerivation {
pname = "tls";
version = "1.9.0";
sha256 = "5605b9cbe0903b100e9de72800641453f74bf5dade6176dbe10b34ac9353433e";
libraryHaskellDepends = [
asn1-encoding
asn1-types
async
base
bytestring
cereal
crypton
crypton-x509
crypton-x509-store
crypton-x509-validation
data-default-class
memory
mtl
network
transformers
unix-time
];
testHaskellDepends = [
asn1-types
async
base
bytestring
crypton
crypton-x509
crypton-x509-validation
data-default-class
hourglass
QuickCheck
tasty
tasty-quickcheck
];
benchmarkHaskellDepends = [
asn1-types
async
base
bytestring
crypton
crypton-x509
crypton-x509-validation
data-default-class
gauge
hourglass
QuickCheck
tasty-quickcheck
];
homepage = "https://github.com/haskell-tls/hs-tls";
description = "TLS/SSL protocol native implementation (Server and Client)";
license = lib.licenses.bsd3;
}

View file

@ -2,10 +2,9 @@
lib,
stdenv,
pkgs,
targetPackages,
callPackage,
isl_0_20,
libcCross,
threadsCross,
noSysDirs,
lowPrio,
wrapCC,
@ -27,9 +26,15 @@ let
reproducibleBuild = true;
profiledCompiler = false;
libcCross =
if !lib.systems.equals stdenv.targetPlatform stdenv.buildPlatform then args.libcCross else null;
if !lib.systems.equals stdenv.targetPlatform stdenv.buildPlatform then
targetPackages.libc or pkgs.libc
else
null;
threadsCross =
if !lib.systems.equals stdenv.targetPlatform stdenv.buildPlatform then threadsCross else { };
if !lib.systems.equals stdenv.targetPlatform stdenv.buildPlatform then
targetPackages.threads or pkgs.threads
else
{ };
isl = if stdenv.hostPlatform.isDarwin then null else isl_0_20;
# do not allow version skew when cross-building gcc
#

View file

@ -38,7 +38,7 @@
enablePlugin ? (lib.systems.equals stdenv.hostPlatform stdenv.buildPlatform), # Whether to support user-supplied plug-ins
name ? "gcc",
libcCross ? null,
threadsCross ? null, # for MinGW
threadsCross ? { }, # for MinGW
withoutTargetLibc ? false,
flex,
gnused ? null,

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