Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-12-11 00:13:15 +00:00 committed by GitHub
commit 9fb12e8a70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
241 changed files with 4034 additions and 1376 deletions

View File

@ -1,14 +1,18 @@
# Contributing to the Nixpkgs manual
# Contributing to the Nixpkgs reference manual
This directory houses the sources files for the Nixpkgs manual.
This directory houses the sources files for the Nixpkgs reference manual.
Going forward, it should only contain [reference](https://nix.dev/contributing/documentation/diataxis#reference) documentation.
For tutorials, guides and explanations, contribute to <https://nix.dev/> instead.
For documentation only relevant for contributors, use Markdown files and code comments in the source code.
Rendered documentation:
- [Unstable (from master)](https://nixos.org/manual/nixpkgs/unstable/)
- [Stable (from latest release)](https://nixos.org/manual/nixpkgs/stable/)
You can find the [rendered documentation for Nixpkgs `unstable` on nixos.org](https://nixos.org/manual/nixpkgs/unstable/).
The rendering tool is [nixos-render-docs](../pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs), sometimes abbreviated `nrd`.
[Docs for Nixpkgs stable](https://nixos.org/manual/nixpkgs/stable/) are also available.
If you're only getting started with Nix, go to [nixos.org/learn](https://nixos.org/learn).
## Contributing to this documentation
You can quickly check your edits with `nix-build`:

View File

@ -50,7 +50,20 @@ $ nix build -f . ttop.src
$ nix run -f . nim_lk ./result | jq --sort-keys > pkgs/by-name/tt/ttop/lock.json
```
## Lockfile dependency overrides {#nimoverrides}
## Overriding Nim packages {#nim-overrides}
The `buildNimPackage` function generates flags and additional build dependencies from the `lockFile` parameter passed to `buildNimPackage`. Using [`overrideAttrs`](#sec-pkg-overrideAttrs) on the final package will apply after this has already been generated, so this can't be used to override the `lockFile` in a package built with `buildNimPackage`. To be able to override parameters before flags and build dependencies are generated from the `lockFile`, use `overrideNimAttrs` instead with the same syntax as `overrideAttrs`:
```nix
pkgs.nitter.overrideNimAttrs {
# using a different source which has different dependencies from the standard package
src = pkgs.fetchFromGithub { /* … */ };
# new lock file generated from the source
lockFile = ./custom-lock.json;
}
```
## Lockfile dependency overrides {#nim-lock-overrides}
The `buildNimPackage` function matches the libraries specified by `lockFile` to attrset of override functions that are then applied to the package derivation.
The default overrides are maintained as the top-level `nimOverrides` attrset at `pkgs/top-level/nim-overrides.nix`.
@ -81,7 +94,7 @@ The annotations in the `nim-overrides.nix` set are functions that take three arg
- finalAttrs: the final attrset passed by `buildNimPackage` to `stdenv.mkDerivation`.
- prevAttrs: the attrset produced by initial arguments to `buildNimPackage` and any preceding lockfile overlays.
### Overriding an Nim library override {#nimoverrides-overrides}
### Overriding an Nim library override {#nim-lock-overrides-overrides}
The `nimOverrides` attrset makes it possible to modify overrides in a few different ways.

View File

@ -1,4 +1,4 @@
# Nixpkgs Manual {#nixpkgs-manual}
# Nixpkgs Reference Manual {#nixpkgs-manual}
## Version @MANUAL_VERSION@
```{=include=} chapters

View File

@ -6,11 +6,15 @@ The Nix Packages collection (Nixpkgs) is a set of thousands of packages for the
Packages are available for several platforms, and can be used with the Nix
package manager on most GNU/Linux distributions as well as [NixOS](https://nixos.org/nixos).
This manual primarily describes how to write packages for the Nix Packages collection
(Nixpkgs). Thus its mainly for packagers and developers who want to add packages to
Nixpkgs. If you like to learn more about the Nix package manager and the Nix
expression language, then you are kindly referred to the [Nix manual](https://nixos.org/nix/manual/).
The NixOS distribution is documented in the [NixOS manual](https://nixos.org/nixos/manual/).
This document is the user [_reference_](https://nix.dev/contributing/documentation/diataxis#reference) manual for Nixpkgs.
It describes entire public interface of Nixpkgs in a concise and orderly manner, and all relevant behaviors, with examples and cross-references.
To discover other kinds of documentation:
- [nix.dev](https://nix.dev/): Tutorials and guides for getting things done with Nix
- [NixOS **Option Search**](https://search.nixos.org/options) and reference documentation
- [Nixpkgs **Package Search**](https://search.nixos.org/packages)
- [**NixOS** manual](https://nixos.org/manual/nixos/stable/): Reference documentation for the NixOS Linux distribution
- [`CONTRIBUTING.md`](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md): Contributing to Nixpkgs, including this manual
## Overview of Nixpkgs {#overview-of-nixpkgs}

View File

@ -42,7 +42,7 @@ Reference documentation for library functions is written above each function as
These comments are processed using [nixdoc](https://github.com/nix-community/nixdoc) and [rendered in the Nixpkgs manual](https://nixos.org/manual/nixpkgs/stable/#chap-functions).
The nixdoc README describes the [comment format](https://github.com/nix-community/nixdoc#comment-format).
See the [chapter on contributing to the Nixpkgs manual](https://nixos.org/manual/nixpkgs/#chap-contributing) for how to build the manual.
See [doc/README.md](../doc/README.md) for how to build the manual.
## Running tests

View File

@ -275,6 +275,8 @@ let
"The option `${optText}' does not exist. Definition values:${defText}";
in
if attrNames options == [ "_module" ]
# No options were declared at all (`_module` is built in)
# but we do have unmatched definitions, and no freeformType (earlier conditions)
then
let
optionName = showOption prefix;

View File

@ -94,6 +94,14 @@ checkConfigOutput '^true$' config.result ./module-argument-default.nix
# gvariant
checkConfigOutput '^true$' config.assertion ./gvariant.nix
# https://github.com/NixOS/nixpkgs/pull/131205
# We currently throw this error already in `config`, but throwing in `config.wrong1` would be acceptable.
checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.wrong1 ./error-mkOption-in-config.nix
# We currently throw this error already in `config`, but throwing in `config.nest.wrong2` would be acceptable.
checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.nest.wrong2 ./error-mkOption-in-config.nix
checkConfigError 'The option .sub.wrong2. does not exist. Definition values:' config.sub ./error-mkOption-in-submodule-config.nix
checkConfigError '.*This can happen if you e.g. declared your options in .types.submodule.' config.sub ./error-mkOption-in-submodule-config.nix
# types.pathInStore
checkConfigOutput '".*/store/0lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv"' config.pathInStore.ok1 ./types.nix
checkConfigOutput '".*/store/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15"' config.pathInStore.ok2 ./types.nix
@ -111,6 +119,12 @@ checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*'
checkConfigError 'while evaluating a definition from `.*/define-enable-abort.nix' config.enable ./define-enable-abort.nix
checkConfigError 'while evaluating the error message for definitions for .enable., which is an option that does not exist' config.enable ./define-enable-abort.nix
# Check boolByOr type.
checkConfigOutput '^false$' config.value.falseFalse ./boolByOr.nix
checkConfigOutput '^true$' config.value.trueFalse ./boolByOr.nix
checkConfigOutput '^true$' config.value.falseTrue ./boolByOr.nix
checkConfigOutput '^true$' config.value.trueTrue ./boolByOr.nix
checkConfigOutput '^1$' config.bare-submodule.nested ./declare-bare-submodule.nix ./declare-bare-submodule-nested-option.nix
checkConfigOutput '^2$' config.bare-submodule.deep ./declare-bare-submodule.nix ./declare-bare-submodule-deep-option.nix
checkConfigOutput '^42$' config.bare-submodule.nested ./declare-bare-submodule.nix ./declare-bare-submodule-nested-option.nix ./declare-bare-submodule-deep-option.nix ./define-bare-submodule-values.nix

View File

@ -0,0 +1,14 @@
{ lib, ... }: {
options.value = lib.mkOption {
type = lib.types.lazyAttrsOf lib.types.boolByOr;
};
config.value = {
falseFalse = lib.mkMerge [ false false ];
trueFalse = lib.mkMerge [ true false ];
falseTrue = lib.mkMerge [ false true ];
trueTrue = lib.mkMerge [ true true ];
};
}

View File

@ -0,0 +1,14 @@
{ lib, ... }:
let
inherit (lib) mkOption;
in
{
wrong1 = mkOption {
};
# This is not actually reported separately, so could be omitted from the test
# but it makes the example more realistic.
# Making it parse this _config_ as options would too risky. What if it's not
# options but other values, that abort, throw, diverge, etc?
nest.wrong2 = mkOption {
};
}

View File

@ -0,0 +1,12 @@
{ lib, ... }:
let
inherit (lib) mkOption;
in
{
options.sub = lib.mkOption {
type = lib.types.submodule {
wrong2 = mkOption {};
};
default = {};
};
}

View File

@ -275,6 +275,22 @@ rec {
merge = mergeEqualOption;
};
boolByOr = mkOptionType {
name = "boolByOr";
description = "boolean (merged using or)";
descriptionClass = "noun";
check = isBool;
merge = loc: defs:
foldl'
(result: def:
# Under the assumption that .check always runs before merge, we can assume that all defs.*.value
# have been forced, and therefore we assume we don't introduce order-dependent strictness here
result || def.value
)
false
defs;
};
int = mkOptionType {
name = "int";
description = "signed integer";

View File

@ -3737,6 +3737,12 @@
githubId = 1740337;
name = "Chris Ostrouchov";
};
cottand = {
email = "nico@dcotta.eu";
github = "cottand";
githubId = 45274424;
name = "Nico D'Cotta";
};
couchemar = {
email = "couchemar@yandex.ru";
github = "couchemar";
@ -5676,6 +5682,12 @@
githubId = 454695;
name = "Artur Taranchiev";
};
ewuuwe = {
email = "ewu.uweq@pm.me";
github = "ewuuwe";
githubId = 63652646;
name = "Xaver Oswald";
};
exarkun = {
email = "exarkun@twistedmatrix.com";
github = "exarkun";
@ -5729,6 +5741,12 @@
githubId = 25955146;
name = "eyJhb";
};
eymeric = {
name = "Eymeric Dechelette";
email = "hatchchcien@protonmail.com";
github = "hatch01";
githubId = 42416805;
};
f2k1de = {
name = "f2k1de";
email = "hi@f2k1.de";
@ -6738,8 +6756,6 @@
};
gm6k = {
email = "nix@quidecco.pl";
github = "zeuner";
githubId = 2545850;
name = "Isidor Zeuner";
};
gmemstr = {
@ -8834,6 +8850,12 @@
githubId = 6321578;
name = "John Rinehart";
};
john-rodewald = {
email = "jnrodewald99@gmail.com";
github = "john-rodewald";
githubId = 51028009;
name = "John Rodewald";
};
john-shaffer = {
email = "jdsha@proton.me";
github = "john-shaffer";
@ -9366,6 +9388,7 @@
katexochen = {
github = "katexochen";
githubId = 49727155;
matrix = "@katexochen:matrix.org";
name = "Paul Meyer";
};
kayhide = {
@ -18548,8 +18571,6 @@
};
tomkoid = {
email = "tomaszierl@outlook.com";
github = "Tomkoid";
githubId = 67477750;
name = "Tomkoid";
};
tomodachi94 = {

View File

@ -13,6 +13,13 @@ merging is handled.
`types.bool`
: A boolean, its values can be `true` or `false`.
All definitions must have the same value, after priorities. An error is thrown in case of a conflict.
`types.boolByOr`
: A boolean, its values can be `true` or `false`.
The result is `true` if _any_ of multiple definitions is `true`.
In other words, definitions are merged with the logical _OR_ operator.
`types.path`

View File

@ -55,6 +55,14 @@ which causes the new configuration (and previous ones created using
This can be useful to separate test configurations from "stable"
configurations.
A repl, or read-eval-print loop, is also available. You can inspect your configuration and use the Nix language with
```ShellSession
# nixos-rebuild repl
```
Your configuration is loaded into the `config` variable. Use tab for autocompletion, use the `:r` command to reload the configuration files. See `:?` or [`nix repl` in the Nix manual](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-repl.html) to learn more.
Finally, you can do
```ShellSession

View File

@ -32,6 +32,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `mkosi` was updated to v19. Parts of the user interface have changed. Consult the
[release notes](https://github.com/systemd/mkosi/releases/tag/v19) for a list of changes.
- `services.avahi.nssmdns` got split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switch for IPv4 and IPv6 respectively.
Since most mDNS responders only register IPv4 addresses, most users want to keep the IPv6 support disabled to avoid long timeouts.
## Other Notable Changes {#sec-release-24.05-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@ -58,5 +61,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- The `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
- The `btrbk` module now automatically selects and provides required compression
program depending on the configured `stream_compress` option. Since this
replaces the need for the `extraPackages` option, this option will be
deprecated in future releases.
- QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS).
The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.

View File

@ -51,6 +51,7 @@ with lib;
mc = super.mc.override { x11Support = false; };
mpv-unwrapped = super.mpv-unwrapped.override { sdl2Support = false; x11Support = false; waylandSupport = false; };
msmtp = super.msmtp.override { withKeyring = false; };
mupdf = super.mupdf.override { enableGL = false; enableX11 = false; };
neofetch = super.neofetch.override { x11Support = false; };
networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };

View File

@ -6,12 +6,15 @@ let
concatMapStringsSep
concatStringsSep
filterAttrs
flatten
getAttr
isAttrs
literalExpression
mapAttrs'
mapAttrsToList
mkIf
mkOption
optional
optionalString
sortOn
types
@ -84,6 +87,18 @@ let
'';
};
streamCompressMap = {
gzip = pkgs.gzip;
pigz = pkgs.pigz;
bzip2 = pkgs.bzip2;
pbzip2 = pkgs.pbzip2;
bzip3 = pkgs.bzip3;
xz = pkgs.xz;
lzo = pkgs.lzo;
lz4 = pkgs.lz4;
zstd = pkgs.zstd;
};
cfg = config.services.btrbk;
sshEnabled = cfg.sshAccess != [ ];
serviceEnabled = cfg.instances != { };
@ -94,7 +109,14 @@ in
options = {
services.btrbk = {
extraPackages = mkOption {
description = lib.mdDoc "Extra packages for btrbk, like compression utilities for `stream_compress`";
description = lib.mdDoc ''
Extra packages for btrbk, like compression utilities for `stream_compress`.
**Note**: This option will get deprecated in future releases.
Required compression programs will get automatically provided to btrbk
depending on configured compression method in
`services.btrbk.instances.<name>.settings` option.
'';
type = types.listOf types.package;
default = [ ];
example = literalExpression "[ pkgs.xz ]";
@ -124,7 +146,19 @@ in
'';
};
settings = mkOption {
type = let t = types.attrsOf (types.either types.str (t // { description = "instances of this type recursively"; })); in t;
type = types.submodule {
freeformType = let t = types.attrsOf (types.either types.str (t // { description = "instances of this type recursively"; })); in t;
options = {
stream_compress = mkOption {
description = lib.mdDoc ''
Compress the btrfs send stream before transferring it from/to remote locations using a
compression command.
'';
type = types.enum ["gzip" "pigz" "bzip2" "pbzip2" "bzip3" "xz" "lzo" "lz4" "zstd" "no"];
default = "no";
};
};
};
default = { };
example = {
snapshot_preserve_min = "2d";
@ -169,6 +203,11 @@ in
};
config = mkIf (sshEnabled || serviceEnabled) {
warnings = optional (cfg.extraPackages != []) ''
extraPackages option will be deprecated in future releases. Programs required for compression are now automatically selected depending on services.btrbk.instances.<name>.settings.stream_compress option.
'';
environment.systemPackages = [ pkgs.btrbk ] ++ cfg.extraPackages;
security.sudo.extraRules = mkIf (sudo_doas == "sudo") [ sudoRule ];
@ -232,12 +271,15 @@ in
cfg.instances;
systemd.services = mapAttrs'
(
name: _: {
name: instance: {
name = "btrbk-${name}";
value = {
description = "Takes BTRFS snapshots and maintains retention policies.";
unitConfig.Documentation = "man:btrbk(1)";
path = [ "/run/wrappers" ] ++ cfg.extraPackages;
path = [ "/run/wrappers" ]
++ cfg.extraPackages
++ optional (instance.settings.stream_compress != "no")
(getAttr instance.settings.stream_compress streamCompressMap);
serviceConfig = {
User = "btrbk";
Group = "btrbk";

View File

@ -1,10 +1,7 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.power-profiles-daemon;
package = pkgs.power-profiles-daemon;
in
{
@ -15,8 +12,8 @@ in
services.power-profiles-daemon = {
enable = mkOption {
type = types.bool;
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable power-profiles-daemon, a DBus daemon that allows
@ -24,6 +21,8 @@ in
'';
};
package = lib.mkPackageOption pkgs "power-profiles-daemon" { };
};
};
@ -31,7 +30,7 @@ in
###### implementation
config = mkIf cfg.enable {
config = lib.mkIf cfg.enable {
assertions = [
{ assertion = !config.services.tlp.enable;
@ -42,13 +41,13 @@ in
}
];
environment.systemPackages = [ package ];
environment.systemPackages = [ cfg.package ];
services.dbus.packages = [ package ];
services.dbus.packages = [ cfg.package ];
services.udev.packages = [ package ];
services.udev.packages = [ cfg.package ];
systemd.packages = [ package ];
systemd.packages = [ cfg.package ];
};

View File

@ -75,7 +75,7 @@ let
# Create parts of the lovelace config that reference lovelave modules as resources
customLovelaceModulesResources = {
lovelace.resources = map (card: {
url = "/local/nixos-lovelace-modules/${card.entrypoint or card.pname + ".js"}?${card.version}";
url = "/local/nixos-lovelace-modules/${card.entrypoint or (card.pname + ".js")}?${card.version}";
type = "module";
}) cfg.customLovelaceModules;
};
@ -157,7 +157,7 @@ in {
default = [];
example = literalExpression ''
with pkgs.home-assistant-custom-components; [
prometheus-sensor
prometheus_sensor
];
'';
description = lib.mdDoc ''
@ -523,7 +523,6 @@ in {
"bluetooth_tracker"
"bthome"
"default_config"
"eq3btsmart"
"eufylife_ble"
"esphome"
"fjaraskupan"

View File

@ -42,6 +42,7 @@ in
{
imports = [
(lib.mkRenamedOptionModule [ "services" "avahi" "interfaces" ] [ "services" "avahi" "allowInterfaces" ])
(lib.mkRenamedOptionModule [ "services" "avahi" "nssmdns" ] [ "services" "avahi" "nssmdns4" ])
];
options.services.avahi = {
@ -93,7 +94,7 @@ in
ipv6 = mkOption {
type = types.bool;
default = config.networking.enableIPv6;
default = false;
defaultText = literalExpression "config.networking.enableIPv6";
description = lib.mdDoc "Whether to use IPv6.";
};
@ -218,16 +219,31 @@ in
};
};
nssmdns = mkOption {
nssmdns4 = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable the mDNS NSS (Name Service Switch) plug-in.
Whether to enable the mDNS NSS (Name Service Switch) plug-in for IPv4.
Enabling it allows applications to resolve names in the `.local`
domain by transparently querying the Avahi daemon.
'';
};
nssmdns6 = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable the mDNS NSS (Name Service Switch) plug-in for IPv6.
Enabling it allows applications to resolve names in the `.local`
domain by transparently querying the Avahi daemon.
::: {.note}
Due to the fact that most mDNS responders only register local IPv4 addresses,
most user want to leave this option disabled to avoid long timeouts when applications first resolve the none existing IPv6 address.
:::
'';
};
cacheEntriesMax = mkOption {
type = types.nullOr types.int;
default = null;
@ -257,8 +273,17 @@ in
users.groups.avahi = { };
system.nssModules = optional cfg.nssmdns pkgs.nssmdns;
system.nssDatabases.hosts = optionals cfg.nssmdns (mkMerge [
(mkBefore [ "mdns_minimal [NOTFOUND=return]" ]) # before resolve
system.nssDatabases.hosts = let
mdnsMinimal = if (cfg.nssmdns4 && cfg.nssmdns6) then
"mdns_minimal"
else if (!cfg.nssmdns4 && cfg.nssmdns6) then
"mdns6_minimal"
else if (cfg.nssmdns4 && !cfg.nssmdns6) then
"mdns4_minimal"
else
"";
in optionals (cfg.nssmdns4 || cfg.nssmdns6) (mkMerge [
(mkBefore [ "${mdnsMinimal} [NOTFOUND=return]" ]) # before resolve
(mkAfter [ "mdns" ]) # after dns
]);

View File

@ -126,7 +126,7 @@ with lib;
default = "dyndns2";
type = str;
description = lib.mdDoc ''
Protocol to use with dynamic DNS provider (see https://sourceforge.net/p/ddclient/wiki/protocols).
Protocol to use with dynamic DNS provider (see https://ddclient.net/protocols.html ).
'';
};

View File

@ -240,7 +240,7 @@ in {
};
phpOptions = mkOption {
type = types.attrsOf types.str;
type = with types; attrsOf (oneOf [ str int ]);
defaultText = literalExpression (generators.toPretty { } defaultPHPSettings);
description = lib.mdDoc ''
Options for PHP's php.ini file for nextcloud.

View File

@ -449,7 +449,7 @@ let
${optionalString (config.tryFiles != null) "try_files ${config.tryFiles};"}
${optionalString (config.root != null) "root ${config.root};"}
${optionalString (config.alias != null) "alias ${config.alias};"}
${optionalString (config.return != null) "return ${config.return};"}
${optionalString (config.return != null) "return ${toString config.return};"}
${config.extraConfig}
${optionalString (config.proxyPass != null && config.recommendedProxySettings) "include ${recommendedProxyConfig};"}
${mkBasicAuth "sublocation" config}

View File

@ -93,7 +93,7 @@ with lib;
};
return = mkOption {
type = types.nullOr types.str;
type = with types; nullOr (oneOf [ str int ]);
default = null;
example = "301 http://example.com$request_uri";
description = lib.mdDoc ''

View File

@ -27,7 +27,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
# don't do it with real ssh keys.
environment.etc."btrbk_key".text = privateKey;
services.btrbk = {
extraPackages = [ pkgs.lz4 ];
instances = {
remote = {
onCalendar = "minutely";

View File

@ -182,7 +182,7 @@ in {
hass.wait_until_succeeds("journalctl -u home-assistant.service | grep -q 'We found a custom integration prometheus_sensor which has not been tested by Home Assistant'")
with subtest("Check that lovelace modules are referenced and fetchable"):
hass.succeed("grep -q 'mini-graph-card-bundle.js' '${configDir}/ui-lovelace.yaml'")
hass.succeed("grep -q 'mini-graph-card-bundle.js' '${configDir}/configuration.yaml'")
hass.succeed("curl --fail http://localhost:8123/local/nixos-lovelace-modules/mini-graph-card-bundle.js")
with subtest("Check that optional dependencies are in the PYTHONPATH"):

View File

@ -10,7 +10,7 @@ import ./make-test-python.nix ({ lib, ... }:
meta.maintainers = with lib.maintainers; [ minijackson erictapen ];
nodes.server =
{ pkgs, ... }:
{ ... }:
{
services.mobilizon = {
enable = true;
@ -25,8 +25,6 @@ import ./make-test-python.nix ({ lib, ... }:
};
};
services.postgresql.package = pkgs.postgresql_14;
security.pki.certificateFiles = [ certs.ca.cert ];
services.nginx.virtualHosts."${mobilizonDomain}" = {

View File

@ -144,6 +144,7 @@ in
restartAndCheckNebula = name: ip: ''
${name}.systemctl("restart nebula@smoke.service")
${name}.wait_for_unit("nebula@smoke.service")
${name}.succeed("ping -c5 ${ip}")
'';
@ -179,6 +180,8 @@ in
${nodeB}.succeed("iptables -I INPUT -s " + node_a + " -j DROP")
${nodeA}.systemctl("restart nebula@smoke.service")
${nodeB}.systemctl("restart nebula@smoke.service")
${nodeA}.wait_for_unit("nebula@smoke.service")
${nodeB}.wait_for_unit("nebula@smoke.service")
'';
allowTrafficBetween = nodeA: nodeB: ''
node_a = ${getPublicIp nodeA}
@ -187,6 +190,8 @@ in
${nodeB}.succeed("iptables -D INPUT -s " + node_a + " -j DROP")
${nodeA}.systemctl("restart nebula@smoke.service")
${nodeB}.systemctl("restart nebula@smoke.service")
${nodeA}.wait_for_unit("nebula@smoke.service")
${nodeB}.wait_for_unit("nebula@smoke.service")
'';
in ''
# Create the certificate and sign the lighthouse's keys.

View File

@ -18,13 +18,13 @@
buildGoModule rec {
pname = "gtkcord4";
version = "0.0.12";
version = "0.0.16-1";
src = fetchFromGitHub {
owner = "diamondburned";
repo = pname;
rev = "v${version}";
hash = "sha256-x//PST2f501QuxRdPe3cYbpL66/zLJWmscED9SbxsTk=";
hash = "sha256-GDQ11X202RIoJUZ2eJ9ukHalhXtKYn9C8lcvAzzaB+4=";
};
nativeBuildInputs = [
@ -52,17 +52,17 @@ buildGoModule rec {
];
postInstall = ''
install -D -m 444 -t $out/share/applications nix/xyz.diamondb.gtkcord4.desktop
install -D -m 444 internal/icons/svg/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg
install -D -m 444 internal/icons/png/logo.png $out/share/icons/hicolor/256x256/apps/gtkcord4.png
install -D -m 444 -t $out/share/applications nix/so.libdb.gtkcord4.desktop
install -D -m 444 internal/icons/hicolor/scalable/apps/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg
'';
vendorHash = "sha256-LCLZBcYiexffvCr4vdZdIwNKo0s4mqPc6KxRumRhf1Y=";
vendorHash = "sha256-ZQBYi5t6ntukoHP2FtwpZrpFd7b2opPC8tOSU9j3jUM=";
meta = with lib; {
description = "GTK4 Discord client in Go, attempt #4.";
description = "GTK4 Discord client in Go, attempt #4";
homepage = "https://github.com/diamondburned/gtkcord4";
license = licenses.gpl3Only;
mainProgram = "gtkcord4";
maintainers = with maintainers; [ hmenke urandom aleksana ];
};
}

View File

@ -21,14 +21,14 @@ assert lib.asserts.assertMsg (usePipewire != usePulseaudio) "You need to enable
stdenv.mkDerivation (finalAttrs: {
pname = "jamesdsp";
version = "2.6.1";
version = "2.7.0";
src = fetchFromGitHub {
owner = "Audio4Linux";
repo = "JDSP4Linux";
fetchSubmodules = true;
rev = finalAttrs.version;
hash = "sha256-XYJl94/PstWG5qaBQ2rXc/nG9bDeP3Q62zDYHmZvPaw=";
hash = "sha256-eVndqIqJ3DRceuFMT++g2riXq0CL5r+TWbvzvaYIfZ8=";
};
nativeBuildInputs = [

View File

@ -17,46 +17,56 @@
, wrapGAppsHook4
, yarn
, nodejs
, blueprint-compiler
, libsecret
}:
stdenv.mkDerivation rec {
pname = "muzika";
version = "unstable-2023-06-07";
version = "unstable-2023-11-07";
src = fetchFromGitHub {
owner = "vixalien";
repo = "muzika";
rev = "d0ca7eebad67082e73513ebd7ca04edb1fdec7ce";
hash = "sha256-ycnHpyYaUJZgproTLCWCVzsvnUisXlq3fqlij1KryWA=";
rev = "69c25e066297c45f4ce42d84d5d4c200789fbedf";
hash = "sha256-Uof72o6HG4pYj1KZ8KgCwQA+0m778ezZxmt3TohNZcY=";
fetchSubmodules = true;
};
postPatch = ''
# Remove git command from version query
sed -i '2d' meson.build
'';
nativeBuildInputs = [
blueprint-compiler
desktop-file-utils
gobject-introspection
meson
ninja
nodejs
pkg-config
prefetch-yarn-deps
wrapGAppsHook4
yarn
prefetch-yarn-deps
];
buildInputs = [
gjs
glib-networking
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-rs
gtk4
libadwaita
libsecret
libsoup_3
];
yarnOfflineCache = fetchYarnDeps {
yarnLock = src + "/yarn.lock";
hash = "sha256-FvPEbYIydgfyKKsf2jnXUbPEhIboPi3wR7BWzEuo72Q=";
hash = "sha256-/NkLfBmQGvgufF9ajgs7DQsBkWUUK4Bslhy7VmCBrGg=";
};
preConfigure = ''

View File

@ -2,7 +2,7 @@
, glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss_latest, libpng, libnotify
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_4, curlWithGnuTls, zlib, gnome
, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
, pname, meta, harfbuzz, libayatana-appindicator, libdbusmenu
, pname, meta, harfbuzz, libayatana-appindicator, libdbusmenu, libGL
# High-DPI support: Spotify's --force-device-scale-factor argument
# not added if `null`, otherwise, should be a number.
, deviceScaleFactor ? null
@ -44,6 +44,7 @@ let
libdbusmenu
libdrm
libgcrypt
libGL
libnotify
libpng
libpulseaudio

View File

@ -477,6 +477,13 @@ let
ox-rss = buildWithGit super.ox-rss;
python-isort = super.python-isort.overrideAttrs (attrs: {
postPatch = attrs.postPatch or "" + ''
substituteInPlace python-isort.el \
--replace '-isort-command "isort"' '-isort-command "${lib.getExe pkgs.isort}"'
'';
});
# upstream issue: missing file header
mhc = super.mhc.override {
inherit (self.melpaPackages) calfw;

View File

@ -97,6 +97,9 @@ rustPlatform.buildRustPackage rec {
# Get openssl-sys to use pkg-config
OPENSSL_NO_VENDOR = 1;
# This variable is read by build script, so that Lapce editor knows its version
env.RELEASE_TAG_NAME = "v${version}";
buildInputs = [
glib
gtk3

View File

@ -2750,7 +2750,7 @@ let
# Please update the corresponding binary (typst-lsp) when updating
# this extension.
version = "0.12.0";
sha256 = "sha256-5DwpgDstKJXo9jEWORXKr3B6Hnd/YOktiaJL2RFWCSA=";
sha256 = "sha256-9v6zJyeUBj0TOpK2otLqZ0ksjmzExKTJYRF+9akvuuo=";
};
nativeBuildInputs = [ jq moreutils ];

View File

@ -15,11 +15,11 @@ let
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "0153vsb62r3g3cck70n05wkxxkh9w53zhnra7hzfy4m19v8xinzm";
x86_64-darwin = "1xqf0s05ns1yqd6qz4633c5xgb0l0nm2n1kfvxv7wqhgf94x80fm";
aarch64-linux = "1hfg01w9k60lf30chvj7mrjb1m3p5czv42cf7zj97j5pkhpg2lmi";
aarch64-darwin = "0vzayy1akh9hzs32cyxvvfnsbg9601jrs7bsvql3728dy9wkc8w2";
armv7l-linux = "0cc9b47dziqizcs37yci48ymyg176lwsyh7w7b9imh1s658vgikv";
x86_64-linux = "16m7a2j9rmnp9pqpyyy2dx09paj1qh0h4gb1dhhwakw7w0zjlxn5";
x86_64-darwin = "1h4kwqddkm19pnh08b33jd10d0n5kcyqkm7kn8fnyj0bpkrzwyql";
aarch64-linux = "0mpqrxvrp8cgv40ck5sprdzzafkb69skisygaq7lr2rfky2gn019";
aarch64-darwin = "1bakb5789zkpzymq3zvs6ls36c4xp50j5xiwyz1wgxgf4wnh06zw";
armv7l-linux = "0rnp2lfx8xjz7xlmc7sxpg5xd5w72cnp76gv441csbyw3bscbxpw";
}.${system} or throwSystem;
sourceRoot = lib.optionalString (!stdenv.isDarwin) ".";
@ -29,7 +29,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.84.2.23319";
version = "1.85.0.23343";
pname = "vscodium";
executableName = "codium";

View File

@ -4,6 +4,7 @@
, SDL
, SDL_image
, SDL_ttf
, installShellFiles
, fontconfig
, libpng
, libtiff
@ -12,17 +13,28 @@
, zlib
}:
stdenv.mkDerivation rec {
version = "2.8.3091";
stdenv.mkDerivation (finalAttrs: {
pname = "grafx2";
version = "2.8.3091";
outputs = [ "out" "man" ];
src = fetchurl {
name = "grafx2-${finalAttrs.version}.tar.gz";
url = "https://pulkomandy.tk/projects/GrafX2/downloads/65";
name = "${pname}-${version}.tar.gz";
hash = "sha256-KdY7GUhQp/Q7t/ktLPGxI66ZHy2gDAffn2yB5pmcJCM=";
};
nativeBuildInputs = [ pkg-config ];
postPatch = ''
substituteInPlace misc/unix/grafx2.desktop \
--replace "Exec=grafx2" "Exec=grafx2-sdl"
'';
nativeBuildInputs = [
installShellFiles
pkg-config
];
buildInputs = [
SDL
SDL_image
@ -34,15 +46,31 @@ stdenv.mkDerivation rec {
zlib
];
strictDeps = false; # Why??
makeFlags = [ "-C src" ];
installFlags = [ "-C src" "PREFIX=$(out)" ];
postInstall = ''
installManPage misc/unix/grafx2.1
'';
meta = {
description = "Bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance";
homepage = "http://pulkomandy.tk/projects/GrafX2";
license = lib.licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = [];
homepage = "http://grafx2.eu/";
description = "The ultimate 256-color painting program";
longDescription = ''
GrafX2 is a bitmap paint program inspired by the Amiga programs Deluxe
Paint and Brilliance. Specialized in 256-color drawing, it includes a very
large number of tools and effects that make it particularly suitable for
pixel art, game graphics, and generally any detailed graphics painted with
a mouse.
The program is mostly developed on Haiku, Linux and Windows, but is also
portable on many other platforms.
'';
license = with lib.licenses; [ gpl2Plus ];
mainProgram = "grafx2-sdl";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.unix;
};
}
})

View File

@ -38,13 +38,13 @@
# for dependencies see https://wiki.gnome.org/Apps/Shotwell/BuildingAndInstalling
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "shotwell";
version = "0.32.3";
version = "0.32.4";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-4AD+5bPzYseRFPDs/44is0yaKGW1nkGi2j5NxdLKLDw=";
url = "mirror://gnome/sources/shotwell/${lib.versions.majorMinor finalAttrs.version}/shotwell-${finalAttrs.version}.tar.xz";
sha256 = "sha256-3iqUUIRtHOwUxqEDA3X9SeGvJNySCtZIA0QST5zLhW8=";
};
nativeBuildInputs = [
@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
packageName = "shotwell";
versionPolicy = "odd-unstable";
};
};
@ -103,4 +103,4 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [];
platforms = platforms.linux;
};
}
})

View File

@ -1,7 +1,6 @@
{ stdenv
, lib
, fetchurl
, fetchpatch
, cargo
, desktop-file-utils
, meson
@ -17,24 +16,15 @@
, gnome
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "snapshot";
version = "45.0";
version = "45.1";
src = fetchurl {
url = "mirror://gnome/sources/snapshot/${lib.versions.major version}/snapshot-${version}.tar.xz";
hash = "sha256-7keO4JBzGgsIJLZrsXRr2ADcv+h6yDWEmUSa85z822c=";
url = "mirror://gnome/sources/snapshot/${lib.versions.major finalAttrs.version}/snapshot-${finalAttrs.version}.tar.xz";
hash = "sha256-/kRifa7zrZbBaaLlRhDmZxj4k9cN/SXUDTBskYQ7zjk=";
};
patches = [
# Fix portal requests
# https://gitlab.gnome.org/GNOME/snapshot/-/merge_requests/168
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/snapshot/-/commit/6aec0f56d6bb994731c1309ac6e2cb822b82067e.patch";
hash = "sha256-6tnOhhTQ3Rfl3nCw/rliLKkvZknvZKCQyeMKaTxYmok=";
})
];
nativeBuildInputs = [
cargo
desktop-file-utils
@ -75,4 +65,4 @@ stdenv.mkDerivation rec {
platforms = platforms.unix;
mainProgram = "snapshot";
};
}
})

View File

@ -36,6 +36,11 @@
, wrapGAppsHook
}:
let
mlt-full = mlt.override {
ffmpeg = ffmpeg-full;
};
in
mkDerivation {
pname = "kdenlive";
nativeBuildInputs = [
@ -60,7 +65,7 @@ mkDerivation {
kplotting
ktextwidgets
mediainfo
mlt
mlt-full
phonon-backend-gstreamer
qtdeclarative
qtmultimedia
@ -81,8 +86,9 @@ mkDerivation {
# https://github.com/NixOS/nixpkgs/issues/83885
patches = [ ./dependency-paths.patch ];
inherit mlt mediainfo;
inherit mediainfo;
ffmpeg = ffmpeg-full;
mlt = mlt-full;
postPatch =
# Module Qt5::Concurrent must be included in `find_package` before it is used.

View File

@ -0,0 +1,34 @@
From 7eed499898226222a949a792e0400ec10db4a1c9 Mon Sep 17 00:00:00 2001
From: Zhaofeng Li <hello@zhaofeng.li>
Date: Tue, 22 Nov 2022 13:00:39 -0700
Subject: [PATCH] [not for upstream] CMakeLists: Link against webkit2gtk in
libslic3r_gui
WebView.cpp uses symbols from webkitgtk directly. Upstream setup
links wxGTK statically so webkitgtk is already pulled in.
> /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld: slic3r/liblibslic3r_gui.a(WebView.cpp.o): undefined reference to symbol 'webkit_web_view_run_javascript_finish'
> /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld: /nix/store/8yvy428jy2nwq4dhmrcs7gj5r27a2pv6-webkitgtk-2.38.2+abi=4.0/lib/libwebkit2gtk-4.0.so.37: error adding symbols: DSO missing from command line
---
src/CMakeLists.txt | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9c5cb96..e92a0e3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -175,6 +175,11 @@ if (WIN32)
target_link_libraries(BambuStudio_app_gui PRIVATE boost_headeronly)
endif ()
+# We link against webkit2gtk symbols in src/slic3r/GUI/Widgets/WebView.cpp
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ target_link_libraries(libslic3r_gui "-lwebkit2gtk-4.0")
+endif ()
+
# Link the resources dir to where Slic3r GUI expects it
set(output_dlls_Release "")
set(output_dlls_Debug "")
--
2.38.1

View File

@ -0,0 +1,172 @@
{ stdenv
, lib
, openexr
, jemalloc
, c-blosc
, binutils
, fetchFromGitHub
, cmake
, pkg-config
, wrapGAppsHook
, boost179
, cereal
, cgal_5
, curl
, dbus
, eigen
, expat
, gcc-unwrapped
, glew
, glfw
, glib
, glib-networking
, gmp
, gstreamer
, gst-plugins-base
, gst-plugins-bad
, gtest
, gtk3
, hicolor-icon-theme
, ilmbase
, libpng
, mesa
, mpfr
, nlopt
, opencascade-occt
, openvdb
, pcre
, qhull
, systemd
, tbb_2021_8
, webkitgtk
, wxGTK31
, xorg
, fetchpatch
, withSystemd ? stdenv.isLinux
}:
let
wxGTK31' = wxGTK31.overrideAttrs (old: {
configureFlags = old.configureFlags ++ [
# Disable noisy debug dialogs
"--enable-debug=no"
];
});
openvdb_tbb_2021_8 = openvdb.overrideAttrs (old: rec {
buildInputs = [ openexr boost179 tbb_2021_8 jemalloc c-blosc ilmbase ];
});
in
stdenv.mkDerivation rec {
pname = "bambu-studio";
version = "01.08.01.57";
src = fetchFromGitHub {
owner = "bambulab";
repo = "BambuStudio";
rev = "v${version}";
hash = "sha256-15Eq+ylQK+xlxG7cg6xoCPb+zJ66qqwQIKd1zA13I5o=";
};
nativeBuildInputs = [
cmake
pkg-config
wrapGAppsHook
];
buildInputs = [
binutils
boost179
cereal
cgal_5
curl
dbus
eigen
expat
gcc-unwrapped
glew
glfw
glib
glib-networking
gmp
gstreamer
gst-plugins-base
gst-plugins-bad
gtk3
hicolor-icon-theme
ilmbase
libpng
mesa.osmesa
mpfr
nlopt
opencascade-occt
openvdb_tbb_2021_8
pcre
tbb_2021_8
webkitgtk
wxGTK31'
xorg.libX11
] ++ lib.optionals withSystemd [
systemd
] ++ checkInputs;
patches = [
# Fix for webkitgtk linking
./0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
];
doCheck = true;
checkInputs = [ gtest ];
separateDebugInfo = true;
# The build system uses custom logic - defined in
# cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt
# library, which doesn't pick up the package in the nix store. We
# additionally need to set the path via the NLOPT environment variable.
NLOPT = nlopt;
# Disable compiler warnings that clutter the build log.
# It seems to be a known issue for Eigen:
# http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
NIX_CFLAGS_COMPILE = "-Wno-ignored-attributes";
# prusa-slicer uses dlopen on `libudev.so` at runtime
NIX_LDFLAGS = lib.optionalString withSystemd "-ludev";
# TODO: macOS
prePatch = ''
# Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
# now seems to be integrated into the main lib.
sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake
'';
cmakeFlags = [
"-DSLIC3R_STATIC=0"
"-DSLIC3R_FHS=1"
"-DSLIC3R_GTK=3"
# BambuStudio-specific
"-DBBL_RELEASE_TO_PUBLIC=1"
"-DBBL_INTERNAL_TESTING=0"
"-DDEP_WX_GTK3=ON"
"-DSLIC3R_BUILD_TESTS=0"
"-DCMAKE_CXX_FLAGS=-DBOOST_LOG_DYN_LINK"
];
preFixup = ''
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "$out/lib"
# Fixes intermittent crash
# The upstream setup links in glew statically
--prefix LD_PRELOAD : "${glew.out}/lib/libGLEW.so"
)
'';
meta = with lib; {
description = "PC Software for BambuLab's 3D printers";
homepage = "https://github.com/bambulab/BambuStudio";
license = licenses.agpl3;
maintainers = with maintainers; [ zhaofengli ];
mainProgram = "bambu-studio";
};
}

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "kickoff";
version = "0.7.1";
version = "0.7.2";
src = fetchFromGitHub {
owner = "j0ru";
repo = pname;
rev = "v${version}";
hash = "sha256-9QupKpB3T/6gdGSeLjRknjPdgOzbfzEeJreIamWwpSw=";
hash = "sha256-WUDbb/GLABhqE93O6bm19Y+r0kSMEJrvduw68Igub44=";
};
cargoHash = "sha256-a7FZpMtgTdqpLV/OfgN4W4GpTJlkfEtPO7F//FmVA/s=";
cargoHash = "sha256-nhUC9PSKAbNEK5e4WRx3dgYI0rJP5XSWcW6M5E0Ihv4=";
libPath = lib.makeLibraryPath [
wayland

View File

@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec {
pname = "nerd-font-patcher";
version = "3.0.2";
version = "3.1.1";
src = fetchzip {
url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/FontPatcher.zip";
sha256 = "sha256-ZJpF/Q5lfcW3srb2NbJk+/QEuwaFjdzboa+rl9L7GGE=";
sha256 = "sha256-H2dPUs6HVKJcjxy5xtz9nL3SSPXKQF3w30/0l7A0PeY=";
stripRoot = false;
};

View File

@ -41,7 +41,7 @@ let
homepage = "https://www.nomadproject.io/";
description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
license = licenses.mpl20;
maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes amaxine techknowlogick ];
maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes amaxine techknowlogick cottand ];
};
} // attrs');
in
@ -75,9 +75,20 @@ rec {
nomad_1_6 = generic {
buildGoModule = buildGo121Module;
version = "1.6.3";
sha256 = "sha256-5UWGriDy15PX3+9UppcUsEwih/e9COLVBis3fn+24L0=";
vendorHash = "sha256-gXoheW6Ww9Iu4utKNHweP2blzhWid+Q9Tp0ZgCmBAVg=";
version = "1.6.4";
sha256 = "sha256-tlbuxKCm7he1Tij4BYKGvv7a6LKiyWgs2PvbcWg/7A0=";
vendorHash = "sha256-PrQit4egSq/pkILb6M7A3gsiQvLPABhyLXWgv8GFz/Y=";
passthru.tests.nomad = nixosTests.nomad;
preCheck = ''
export PATH="$PATH:$NIX_BUILD_TOP/go/bin"
'';
};
nomad_1_7 = generic {
buildGoModule = buildGo121Module;
version = "1.7.1";
sha256 = "sha256-dlKlpgQRug/72UmIogOkKNGBT3sPjgGVVuvzHZ4vh3c=";
vendorHash = "sha256-MZmhFdZZBkKZDgON1ewVm9Z9jZ1EULp/yMT9q6fCqIw=";
passthru.tests.nomad = nixosTests.nomad;
preCheck = ''
export PATH="$PATH:$NIX_BUILD_TOP/go/bin"

View File

@ -10,13 +10,13 @@
buildGoModule rec {
pname = "werf";
version = "1.2.269";
version = "1.2.270";
src = fetchFromGitHub {
owner = "werf";
repo = "werf";
rev = "v${version}";
hash = "sha256-LUHENANM+3wGftTVXaQsGykKayzEAIQ3TQ5qM77TJVA=";
hash = "sha256-8AF+D/kbRkalUOQmpGamyhq5LEu1Uyxj6NuzWviDKRM=";
};
vendorHash = "sha256-20bPsBRya7Gg7p/hSSnnYLoSHf/fRwk1UrA/KlMT3Jk=";

View File

@ -2,11 +2,11 @@
let
pname = "rambox";
version = "2.2.2";
version = "2.2.3";
src = fetchurl {
url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage";
sha256 = "sha256-P6ia7IU6OQJQXANy1snIZEqarKUcRmgbkP6L+UMwi+8=";
sha256 = "sha256-V1Sxfgn3fcqW7t7oa1pfnrPYAqHdCLrWUbplE/I789A=";
};
desktopItem = (makeDesktopItem {

View File

@ -9,22 +9,25 @@ let
taler-wallet-core = fetchgit {
url = "https://git.taler.net/wallet-core.git";
rev = "v${version}";
sha256 = "sha256-uwbgIzSjLN+KQCY134VfnCuBEtvCO3a6mEw++HoZDHs=";
sha256 = "sha256-oL8vi8gxPjKxRpioMs0GLvkzlTkrm1kyvhsXOgrtvVQ=";
};
in rec {
taler-exchange = stdenv.mkDerivation rec {
taler-exchange = stdenv.mkDerivation {
pname = "taler-exchange";
inherit version;
src = fetchgit {
url = "https://git.taler.net/exchange.git";
rev = "v${version}";
# REMOVEME: this should only be a problem for specifically v0.9.3
# When fetching submodules without deep clone we get the following error:
# "Server does not allow request for unadvertised object"
deepClone = true;
fetchSubmodules = true;
sha256 = "sha256-txWwW5vqTblNgVIXdDkpNNZOXpY0udMaz4Wog1GobzE=";
sha256 = "sha256-NgDZF6LNeJI4ZuXEwoRdFG6g0S9xNTVhszzlfAnzVOs=";
# When fetching submodules without the .git folder we get the following error:
# "Server does not allow request for unadvertised object"
leaveDotGit = true;
postFetch = ''
rm -rf $out/.git
'';
};
nativeBuildInputs = [
@ -76,7 +79,7 @@ in rec {
};
};
taler-merchant = stdenv.mkDerivation rec {
taler-merchant = stdenv.mkDerivation {
pname = "taler-merchant";
inherit version;
@ -133,4 +136,6 @@ in rec {
platforms = platforms.linux;
};
};
in {
inherit taler-exchange taler-merchant;
}

View File

@ -68,7 +68,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2;
platforms = with lib.platforms; linux ++ darwin;
maintainers = [ lib.maintainers.cge ];
# never built on aarch64-darwin since first introduction in nixpkgs
broken = stdenv.isDarwin && stdenv.isAarch64;
broken = true; # Build error: h5py-3.9.0 not supported for interpreter python2.7
};
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "eprover";
version = "3.0";
version = "3.0.03";
src = fetchurl {
url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
hash = "sha256-gBgDC+GH948JMsjzo/SOpWDzJXu0g58YX1VW28PeorI=";
hash = "sha256-cS5zUe2N9Kd9uzbNpeBtvLbgUN0c3N3tGcYczK3KsdQ=";
};
buildInputs = [ which ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "isabelle-linter";
version = "1.2.1";
version = "2023-1.0.0";
src = fetchFromGitHub {
owner = "isabelle-prover";
repo = "isabelle-linter";
rev = "Isabelle2022-v${version}";
sha256 = "sha256-qlojNCsm3/49TtAVq6J31BbQipdIoDcn71pBotZyquY=";
rev = "Isabelle2023-v1.0.0";
sha256 = "sha256-q9+qN94NaTzvhbcNQj7yH/VVfs1QgCH8OU8HW+5+s9U=";
};
nativeBuildInputs = [ isabelle ];

View File

@ -46,7 +46,7 @@ let
};
in stdenv.mkDerivation (finalAttrs: rec {
pname = "isabelle";
version = "2022";
version = "2023";
dirname = "Isabelle${version}";
@ -56,18 +56,18 @@ in stdenv.mkDerivation (finalAttrs: rec {
fetchurl
{
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
sha256 = "0b84rx9b7b5y8m1sg7xdp17j6yngd2dkx6v5bkd8h7ly102lai18";
sha256 = "sha256-0VSW2SrHNI3/k4cCCZ724ruXaq7W1NCPsLrXFZ9l1/Q=";
}
else if stdenv.hostPlatform.isx86
then
fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
sha256 = "1ih4gykkp1an43qdgc5xzyvf30fhs0dah3y0a5ksbmvmjsfnxyp7";
sha256 = "sha256-Go4ZCsDz5gJ7uWG5VLrNJOddMPX18G99FAadpX53Rqg=";
}
else
fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux_arm.tar.gz";
hash = "sha256-qI/BR/KZwLjnkO5q/yYeW4lN4xyUe78VOM2INC/Z/io=";
hash = "sha256-Tzxxs0gKw6vymbaXIzH8tK5VgUrpOIp9vcWQ/zxnRCc=";
};
nativeBuildInputs = [ java ];
@ -134,8 +134,7 @@ in stdenv.mkDerivation (finalAttrs: rec {
substituteInPlace src/Tools/Setup/src/Environment.java \
--replace 'cmd.add("/usr/bin/env");' "" \
--replace 'cmd.add("bash");' "cmd.add(\"$SHELL\");" \
--replace 'private static read_file(path: Path): String =' 'private static String read_file(Path path) throws IOException'
--replace 'cmd.add("bash");' "cmd.add(\"$SHELL\");"
substituteInPlace src/Pure/General/sha1.ML \
--replace '"$ML_HOME/" ^ (if ML_System.platform_is_windows then "sha1.dll" else "libsha1.so")' '"${sha1}/lib/libsha1.so"'

View File

@ -2,13 +2,13 @@
with haskellPackages; mkDerivation {
pname = "Naproche-SAD";
version = "2022-10-24";
version = "unstable-2023-07-11";
src = fetchFromGitHub {
owner = "naproche";
repo = "naproche";
rev = "c8c4ca2d5fdb92bf17e0e54c99bd2a9691255d80";
sha256 = "0xvh6kkl5k5ygp2nrbq3k0snvzczbmcp1yrwdkah3fzhf9i3yykx";
rev = "4c399d49a86987369bec6e1ac5ae3739cd6db0a8";
sha256 = "sha256-Ji6yxbDEcwuYAzIZwK5sHNltK1WBFBfpyoEtoID/U4k=";
};
isExecutable = true;

View File

@ -24,7 +24,7 @@ let common = { version, sha256, patches ? [ ], tag ? "z3" }:
inherit version sha256 patches;
src = fetchFromGitHub {
owner = "Z3Prover";
repo = pname;
repo = "z3";
rev = "${tag}-${version}";
sha256 = sha256;
};

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qalculate-gtk";
version = "4.8.1";
version = "4.9.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "qalculate-gtk";
rev = "v${finalAttrs.version}";
sha256 = "sha256-bG0hui5GjHWHny/8Rq5sZGz3s5rYnYlpc+K8I/LwDto=";
hash = "sha256-rQxOOxM4TazkDs/H3KEPbdo6WBl0ptyAlZwv8nnGMss=";
};
hardeningDisable = [ "format" ];
@ -23,6 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "http://qalculate.github.io";
maintainers = with maintainers; [ gebner doronbehar alyaeanyx ];
license = licenses.gpl2Plus;
mainProgram = "qalculate-gtk";
platforms = platforms.all;
};
})

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qalculate-qt";
version = "4.8.1";
version = "4.9.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "qalculate-qt";
rev = "v${finalAttrs.version}";
hash = "sha256-hH+orU+5PmPcrhkLKCdsDhVCrD8Mvxp2RPTGSlsUP7Y=";
hash = "sha256-Ac8RRxLheaenlR7JqKzfBpPxsq7PHfE9qXFf3Vx4GSg=";
};
nativeBuildInputs = [ qmake intltool pkg-config qttools wrapQtAppsHook ];
@ -31,6 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "http://qalculate.github.io";
maintainers = with maintainers; [ _4825764518 ];
license = licenses.gpl2Plus;
mainProgram = "qalculate-qt";
platforms = platforms.unix;
};
})

View File

@ -58,7 +58,7 @@
stdenv.mkDerivation rec {
pname = "root";
version = "6.28.08";
version = "6.28.10";
passthru = {
tests = import ./tests { inherit callPackage; };
@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
hash = "sha256-o+ZLTAH4fNm75X5h75a0FibkmwRGCVBw1B2b+6NSaGI=";
hash = "sha256-adb962B+ayC9AsdX+mIXAkwLYTLB6bHf9Nhdmiu35R4=";
};
nativeBuildInputs = [ makeWrapper cmake pkg-config git ];

View File

@ -1,12 +1,12 @@
{ lib, fetchurl, fetchpatch, stdenv, zlib, ncurses, libiconv }:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "fnc";
version = "0.15";
version = "0.16";
src = fetchurl {
url = "https://fnc.bsdbox.org/tarball/${version}/fnc-${version}.tar.gz";
sha256 = "sha256-8up844ekIOMcPlfB2DJzR/GgJY9s/sBeYpG+YtdauvU=";
url = "https://fnc.bsdbox.org/tarball/${finalAttrs.version}/fnc-${finalAttrs.version}.tar.gz";
hash = "sha256-6I6wtSMHaKdnlUK4pYiaybJeODGu2P+smYW8lQDIWGM=";
};
buildInputs = [ libiconv ncurses zlib ];
@ -16,6 +16,9 @@ stdenv.mkDerivation rec {
env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [
# Needed with GCC 12
"-Wno-error=maybe-uninitialized"
] ++ lib.optionals stdenv.isDarwin [
# error: 'strtonum' is only available on macOS 11.0 or newer
"-Wno-error=unguarded-availability-new"
]);
preInstall = ''
@ -35,4 +38,4 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ abbe ];
mainProgram = "fnc";
};
}
})

View File

@ -9,11 +9,11 @@
python3.pkgs.buildPythonApplication rec {
pname = "scriv";
version = "1.4.0";
version = "1.5.0";
src = fetchPypi {
inherit pname version;
hash = "sha256-vdGtdJGkaUzH2JoxuFsfM57OodlxbEHuLl81giKUn6U=";
hash = "sha256-+OTWFDnHCF2bxQU8f7DfULYG1cA9tOZCsNRPdKobns8=";
};
propagatedBuildInputs = with python3.pkgs; [
@ -21,6 +21,7 @@ python3.pkgs.buildPythonApplication rec {
click
click-log
jinja2
markdown-it-py
requests
] ++ lib.optionals (python3.pythonOlder "3.11") [
tomli

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "podman-tui";
version = "0.13.0";
version = "0.14.0";
src = fetchFromGitHub {
owner = "containers";
repo = "podman-tui";
rev = "v${version}";
hash = "sha256-d2T2A4LsZQ09w7ZsVceqCGaO8wijRGGsk3hLhMykM9U=";
hash = "sha256-RSQcpodippp4B4FM0yr+YFseoofas1M6xBqqtFD1BB0=";
};
vendorHash = null;

View File

@ -0,0 +1,135 @@
{ lib
, stdenv
, fetchurl
, alsa-lib
, boost
, curl
, ffmpeg_4
, icoutils
, libGLU
, libmad
, libogg
, libpng
, libsndfile
, libvorbis
, lua
, makeDesktopItem
, makeWrapper
, miniupnpc
, openal
, pkg-config
, SDL2
, SDL2_image
, SDL2_net
, SDL2_ttf
, speex
, unzip
, zlib
, zziplib
, alephone
}:
stdenv.mkDerivation (finalAttrs: {
outputs = [ "out" "icons" ];
pname = "alephone";
version = "1.7";
src = fetchurl {
url =
let date = "20231125";
in "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${date}/AlephOne-${date}.tar.bz2";
sha256 = "sha256-qRHmtkzPi6PKeAzoMPdSbboiilG+L2fCXvXXu3vIchs=";
};
nativeBuildInputs = [ pkg-config icoutils ];
buildInputs = [
alsa-lib
boost
curl
ffmpeg_4
libGLU
libmad
libogg
libpng
libsndfile
libvorbis
lua
miniupnpc
openal
SDL2
SDL2_image
SDL2_net
SDL2_ttf
speex
zlib
zziplib
];
configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
makeFlags = [ "AR:=$(AR)" ];
enableParallelBuilding = true;
postInstall = ''
mkdir $icons
icotool -x -i 5 -o $icons Resources/Windows/*.ico
pushd $icons
for x in *_5_48x48x32.png; do
mv $x ''${x%_5_48x48x32.png}.png
done
popd
'';
meta = {
description =
"Aleph One is the open source continuation of Bungies Marathon 2 game engine";
homepage = "https://alephone.lhowon.org/";
license = [ lib.licenses.gpl3 ];
maintainers = with lib.maintainers; [ ehmry ];
platforms = lib.platforms.linux;
};
passthru.makeWrapper =
{ pname
, desktopName
, version
, zip
, meta
, icon ? alephone.icons + "/alephone.png"
, ...
}@extraArgs:
stdenv.mkDerivation ({
inherit pname version;
desktopItem = makeDesktopItem {
name = desktopName;
exec = pname;
genericName = pname;
categories = [ "Game" ];
comment = meta.description;
inherit desktopName icon;
};
src = zip;
nativeBuildInputs = [ makeWrapper unzip ];
dontConfigure = true;
dontBuild = true;
installPhase = ''
mkdir -p $out/bin $out/data/$pname $out/share/applications
cp -a * $out/data/$pname
cp $desktopItem/share/applications/* $out/share/applications
makeWrapper ${alephone}/bin/alephone $out/bin/$pname \
--add-flags $out/data/$pname
'';
} // extraArgs // {
meta = alephone.meta // {
license = lib.licenses.free;
mainProgram = pname;
hydraPlatforms = [ ];
} // meta;
});
})

View File

@ -0,0 +1,34 @@
{ lib
, buildGoModule
, fetchgit
, mpv
}:
buildGoModule rec {
pname = "ff2mpv-go";
version = "1.0.1";
src = fetchgit {
url = "https://git.clsr.net/util/ff2mpv-go/";
rev = "v${version}";
hash = "sha256-e/AuOA3isFTyBf97Zwtr16yo49UdYzvktV5PKB/eH/s=";
};
vendorHash = null;
postPatch = ''
substituteInPlace ff2mpv.go --replace '"mpv"' '"${lib.getExe mpv}"'
'';
postInstall = ''
mkdir -p "$out/lib/mozilla/native-messaging-hosts"
$out/bin/ff2mpv-go --manifest > "$out/lib/mozilla/native-messaging-hosts/ff2mpv.json"
'';
meta = with lib; {
description = "Native messaging host for ff2mpv written in Go";
homepage = "https://git.clsr.net/util/ff2mpv-go/";
license = licenses.publicDomain;
maintainers = with maintainers; [ ambroisie ];
mainProgram = "ff2mpv-go";
};
}

View File

@ -1,24 +1,26 @@
{ lib, stdenv, fetchsvn, libxml2, gtk2, curl, pkg-config } :
{ lib, stdenv, fetchFromGitHub, libxml2, gtk2, curl, pkg-config }:
stdenv.mkDerivation rec {
pname = "gosmore";
version = "31801";
# the gosmore svn repository does not lock revision numbers of its externals
# so we explicitly disable them to avoid breaking the hash
# especially as the externals appear to be unused
src = fetchsvn {
url = "http://svn.openstreetmap.org/applications/rendering/gosmore";
sha256 = "0qsckpqx7i7f8gkqhkzdamr65250afk1rpnh3nbman35kdv3dsxi";
rev = version;
ignoreExternals = true;
version = "unstable-2014-03-17";
src = fetchFromGitHub {
owner = "openstreetmap";
repo = "svn-archive";
rev = "89b1fbfbc9e9a8b5e78795fd40bdfa60550322fc";
sparseCheckout = [ "applications/rendering/gosmore" ];
hash = "sha256-MfuJVsyGWspGNAFD6Ktbbyawb4bPwUITe7WkyFs6JxI=";
};
sourceRoot = "${src.name}/applications/rendering/gosmore";
buildInputs = [ libxml2 gtk2 curl ];
nativeBuildInputs = [ pkg-config ];
prePatch = ''
sed -e '/curl.types.h/d' -i *.{c,h,hpp,cpp}
sed -e "24i #include <ctime>" -e "s/data/dat/g" -i jni/libgosm.cpp
'';
patches = [ ./pointer_int_comparison.patch ];

View File

@ -0,0 +1,46 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
}:
stdenv.mkDerivation rec {
pname = "idsk";
version = "0.20";
src = fetchFromGitHub {
owner = "cpcsdk";
repo = "idsk";
rev = "v${version}";
hash = "sha256-rYClWq1Nl3COoG+eOJyFDTvBSzpHpGminU4bndZs6xc=";
};
patches = [
(fetchpatch {
url = "https://github.com/cpcsdk/idsk/commit/52fa3cdcc10d4ba6c75cab10ca7067b129198d92.patch";
hash = "sha256-Ll0apllNj+fP7kZ1n+bBowrlskLK1bIashxxgPVVxmg=";
})
];
nativeBuildInputs = [
cmake
];
installPhase = ''
runHook preInstall
install -Dm755 iDSK $out/bin/iDSK
runHook postInstall
'';
meta = with lib; {
description = "Manipulating CPC dsk images and files";
homepage = "https://github.com/cpcsdk/idsk";
license = licenses.mit;
mainProgram = "iDSK";
maintainers = with maintainers; [ wegank ];
platforms = platforms.all;
};
}

View File

@ -1,12 +1,16 @@
{ lib, stdenv, fetchurl, ncurses }:
{ lib
, stdenv
, fetchurl
, ncurses
}:
stdenv.mkDerivation rec {
pname = "Regina-REXX";
version = "3.9.1";
pname = "regina-rexx";
version = "3.9.5";
src = fetchurl {
url = "mirror://sourceforge/regina-rexx/regina-rexx/${version}/${pname}-${version}.tar.gz";
sha256 = "1vpksnjmg6y5zag9li6sxqxj2xapgalfz8krfxgg49vyk0kdy4sx";
hash = "sha256-COmpBhvuADjPtFRG3iB2b/2uUO6jf2ZCRG7E5zoqvFE=";
};
buildInputs = [ ncurses ];
@ -18,7 +22,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "REXX interpreter";
maintainers = [ maintainers.raskin ];
platforms = platforms.linux;
platforms = platforms.unix;
license = licenses.lgpl2;
};
}

View File

@ -0,0 +1,75 @@
{
"depends": [
{
"method": "fetchzip",
"packages": [
"hashlib"
],
"path": "/nix/store/fav82xdbicvlk34nmcbl89zx99lr3mbs-source",
"rev": "f9455d4be988e14e3dc7933eb7cc7d7c4820b7ac",
"sha256": "1sx6j952lj98629qfgr7ds5aipyw9d6lldcnnqs205wpj4pkcjb3",
"srcDir": "",
"url": "https://github.com/ehmry/hashlib/archive/f9455d4be988e14e3dc7933eb7cc7d7c4820b7ac.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"illwill"
],
"path": "/nix/store/3lmm3z36qn4gz7bfa209zv0pqrpm3di9-source",
"ref": "v0.3.2",
"rev": "1d12cb36ab7b76c31d2d25fa421013ecb382e625",
"sha256": "0f9yncl5gbdja18mrqf5ixrdgrh95k0khda923dm1jd1x1b7ar8z",
"srcDir": "",
"url": "https://github.com/johnnovak/illwill/archive/1d12cb36ab7b76c31d2d25fa421013ecb382e625.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"nimcrypto"
],
"path": "/nix/store/zyr8zwh7vaiycn1s4r8cxwc71f2k5l0h-source",
"ref": "traditional-api",
"rev": "602c5d20c69c76137201b5d41f788f72afb95aa8",
"sha256": "1dmdmgb6b9m5f8dyxk781nnd61dsk3hdxqks7idk9ncnpj9fng65",
"srcDir": "",
"url": "https://github.com/cheatfate/nimcrypto/archive/602c5d20c69c76137201b5d41f788f72afb95aa8.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"npeg"
],
"path": "/nix/store/ffkxmjmigfs7zhhiiqm0iw2c34smyciy-source",
"ref": "1.2.1",
"rev": "26d62fdc40feb84c6533956dc11d5ee9ea9b6c09",
"sha256": "0xpzifjkfp49w76qmaylan8q181bs45anmp46l4bwr3lkrr7bpwh",
"srcDir": "src",
"url": "https://github.com/zevv/npeg/archive/26d62fdc40feb84c6533956dc11d5ee9ea9b6c09.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"preserves"
],
"path": "/nix/store/fmb2yckksz7iv3qdkk5gk1j060kppkq9-source",
"ref": "20231102",
"rev": "4faeb766dc3945bcfacaa1a836ef6ab29b20ceb0",
"sha256": "1a3g5bk1l1h250q3p6sqv6r1lpsplp330qqyp48r0i4a5r0jksq3",
"srcDir": "src",
"url": "https://git.syndicate-lang.org/ehmry/preserves-nim/archive/4faeb766dc3945bcfacaa1a836ef6ab29b20ceb0.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"syndicate"
],
"path": "/nix/store/nhpvl223vbzdrlzikw7pgyfxs344w7ma-source",
"ref": "20231108",
"rev": "095418032180e360ea27ec7fcd63193944b68e2c",
"sha256": "09pbml2chzz0v5zpz67fs7raj0mfmg8qrih2vz85xxc51h7ncqvw",
"srcDir": "src",
"url": "https://git.syndicate-lang.org/ehmry/syndicate-nim/archive/095418032180e360ea27ec7fcd63193944b68e2c.tar.gz"
}
]
}

View File

@ -0,0 +1,23 @@
{ lib, buildNimPackage, fetchFromGitea }:
buildNimPackage (finalAttrs: {
pname = "syndicate_utils";
version = "20231130";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = "syndicate_utils";
rev = finalAttrs.version;
hash = "sha256-a9EjHSrLyWoP4qUQM+fRjZrNavQfT+SUO44pnPK1j/Q=";
};
lockFile = ./lock.json;
meta = finalAttrs.src.meta // {
description = "Utilities for the Syndicated Actor Model";
homepage = "https://git.syndicate-lang.org/ehmry/syndicate_utils";
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
})

View File

@ -0,0 +1,65 @@
{ lib
, fetchFromGitHub
, python3Packages
, qt6
, fetchpatch
}:
python3Packages.buildPythonApplication rec {
pname = "zapzap";
version = "4.5.5.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "zapzap-linux";
repo = "zapzap";
rev = version;
hash = "sha256-8IeFGTI+5kbeFGqH5DpHCY8pqzGhE48hPCEIKIe7jAM=";
};
patches = [
# fixes that the tray icon was not installed
(fetchpatch {
url = "https://github.com/zapzap-linux/zapzap/pull/25/commits/4107b019555492e2c2692dd4c40553503047e6a8.patch";
hash = "sha256-NQPGPXYFhVwsPXopEELG1n/f8yUj/74OFE1hTyt93Ng=";
})
];
nativeBuildInputs = with python3Packages; [
setuptools
qt6.wrapQtAppsHook
];
buildInputs = [
qt6.qtwayland
qt6.qtsvg
];
preBuild = ''
export HOME=$(mktemp -d)
'';
propagatedBuildInputs = with python3Packages; [
dbus-python
pyqt6
pyqt6-webengine
pyqt6-sip
];
postInstall = ''
install -Dm555 share/applications/com.rtosta.zapzap.desktop -t $out/share/applications/
install -Dm555 share/icons/com.rtosta.zapzap.svg -t $out/share/icons/hicolor/scalable/
'';
# has no tests
doCheck = false;
meta = with lib; {
description = "WhatsApp desktop application for Linux";
homepage = "https://zapzap-linux.github.io/";
mainProgram = "zapzap";
license = licenses.gpl3Only;
changelog = "https://github.com/zapzap-linux/zapzap/releases/tag/${version}";
maintainers = [ maintainers.eymeric ];
};
}

View File

@ -2,11 +2,11 @@
stdenvNoCC.mkDerivation rec {
pname = "lxgw-wenkai";
version = "1.311";
version = "1.312";
src = fetchurl {
url = "https://github.com/lxgw/LxgwWenKai/releases/download/v${version}/${pname}-v${version}.tar.gz";
hash = "sha256-R7j6SBWGbkS4cJI1J8M5NDIDeJDFMjtXZnGiyxm2rjg=";
hash = "sha256-KU0cTzdHfWIqYbBksGym9JaN/M3VRASYcQOxrAxip4I=";
};
installPhase = ''

View File

@ -13,13 +13,13 @@
stdenvNoCC.mkDerivation rec {
pname = "papirus-icon-theme";
version = "20231101";
version = "20231201";
src = fetchFromGitHub {
owner = "PapirusDevelopmentTeam";
repo = pname;
rev = version;
hash = "sha256-0ooHuMqGzlMLVTR/u+kCJLibfqTAtq662EG8i3JIzPA=";
hash = "sha256-nLc2nt8YI193loMHjzzEwgvb+tdNrVTZskqssX2oFrU=";
};
nativeBuildInputs = [

View File

@ -23,13 +23,13 @@
, nautilus
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "file-roller";
version = "43.0";
version = "43.1";
src = fetchurl {
url = "mirror://gnome/sources/file-roller/${lib.versions.major version}/file-roller-${version}.tar.xz";
sha256 = "KYcp/b252oEywLvGCQdRfWVoWwVhiuBRZzNeZIT1c6E=";
url = "mirror://gnome/sources/file-roller/${lib.versions.major finalAttrs.version}/file-roller-${finalAttrs.version}.tar.xz";
sha256 = "hJlAI5lyk76zRdl5Pbj18Lu0H6oVXG/7SDKPIDlXrQg=";
};
nativeBuildInputs = [
@ -75,4 +75,4 @@ stdenv.mkDerivation rec {
maintainers = teams.gnome.members ++ teams.pantheon.members;
mainProgram = "file-roller";
};
}
})

View File

@ -26,13 +26,13 @@
, geocode-glib_2
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-maps";
version = "45.1";
version = "45.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
hash = "sha256-v2nFDi4ZsV280KDvOCfUAqGVq0ogKbm2LlSr8472334=";
url = "mirror://gnome/sources/gnome-maps/${lib.versions.major finalAttrs.version}/gnome-maps-${finalAttrs.version}.tar.xz";
hash = "sha256-6es3CnlxtPhC+qME0xpIXb2P+K7EKnZScvL8GnqAmPI=";
};
doCheck = true;
@ -84,8 +84,8 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
attrPath = "gnome.${pname}";
packageName = "gnome-maps";
attrPath = "gnome.gnome-maps";
};
};
@ -96,4 +96,4 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
platforms = platforms.unix;
};
}
})

View File

@ -66,13 +66,13 @@
, xvfb-run
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-control-center";
version = "45.1";
version = "45.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "sha256-0obHYnFQ4RKqy7S3uRcX+tjokHYGFHnfxhCy3XRLV3o=";
url = "mirror://gnome/sources/gnome-control-center/${lib.versions.major finalAttrs.version}/gnome-control-center-${finalAttrs.version}.tar.xz";
sha256 = "sha256-DPo8My1u2stz0GxrJv/KEHjob/WerIGbKTHglndT33A=";
};
patches = [
@ -201,8 +201,8 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
attrPath = "gnome.${pname}";
packageName = "gnome-control-center";
attrPath = "gnome.gnome-control-center";
};
};
@ -212,4 +212,4 @@ stdenv.mkDerivation rec {
maintainers = teams.gnome.members;
platforms = platforms.linux;
};
}
})

View File

@ -38,7 +38,7 @@ index f6c84e3d2..cd897f8f5 100644
else
gtk_widget_set_sensitive (self->toolbutton_profile_view, FALSE);
diff --git a/panels/datetime/tz.h b/panels/datetime/tz.h
index a2376f8a4..98769e08f 100644
index feef16580..4b88ef7b1 100644
--- a/panels/datetime/tz.h
+++ b/panels/datetime/tz.h
@@ -27,11 +27,7 @@
@ -55,26 +55,23 @@ index a2376f8a4..98769e08f 100644
typedef struct _TzDB TzDB;
typedef struct _TzLocation TzLocation;
diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c
index 505b8ee25..62e94009f 100644
index ec5a905a5..689fdbebe 100644
--- a/panels/network/connection-editor/net-connection-editor.c
+++ b/panels/network/connection-editor/net-connection-editor.c
@@ -267,9 +267,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
g_autoptr(GError) error = NULL;
@@ -377,7 +377,7 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
GPid child_pid;
builder = g_strv_builder_new ();
- g_strv_builder_add (builder, "nm-connection-editor");
+ g_strv_builder_add (builder, "@networkmanagerapplet@/bin/nm-connection-editor");
if (self->is_new_connection) {
- cmdline = g_strdup_printf ("nm-connection-editor --type='%s' --create", type);
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --type='%s' --create", type);
} else {
- cmdline = g_strdup_printf ("nm-connection-editor --edit='%s'",
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit='%s'",
nm_connection_get_uuid (self->connection));
}
g_autofree gchar *type_str = NULL;
diff --git a/panels/network/net-device-bluetooth.c b/panels/network/net-device-bluetooth.c
index 74dfb0e9a..5f53d1a20 100644
index 303f4a8af..e5afc4dff 100644
--- a/panels/network/net-device-bluetooth.c
+++ b/panels/network/net-device-bluetooth.c
@@ -90,7 +90,7 @@ nm_device_bluetooth_refresh_ui (NetDeviceBluetooth *self)
@@ -80,7 +80,7 @@ nm_device_bluetooth_refresh_ui (NetDeviceBluetooth *self)
update_off_switch_from_device_state (self->device_off_switch, state, self);
/* set up the Options button */
@ -83,7 +80,7 @@ index 74dfb0e9a..5f53d1a20 100644
gtk_widget_set_visible (GTK_WIDGET (self->options_button), state != NM_DEVICE_STATE_UNMANAGED && path != NULL);
}
@@ -141,7 +141,7 @@ options_button_clicked_cb (NetDeviceBluetooth *self)
@@ -131,7 +131,7 @@ options_button_clicked_cb (NetDeviceBluetooth *self)
connection = net_device_get_find_connection (self->client, self->device);
uuid = nm_connection_get_uuid (connection);
@ -92,7 +89,7 @@ index 74dfb0e9a..5f53d1a20 100644
g_debug ("Launching '%s'\n", cmdline);
if (!g_spawn_command_line_async (cmdline, &error))
g_warning ("Failed to launch nm-connection-editor: %s", error->message);
@@ -185,7 +185,7 @@ net_device_bluetooth_init (NetDeviceBluetooth *self)
@@ -173,7 +173,7 @@ net_device_bluetooth_init (NetDeviceBluetooth *self)
gtk_widget_init_template (GTK_WIDGET (self));
@ -102,10 +99,10 @@ index 74dfb0e9a..5f53d1a20 100644
}
diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c
index 34eb86241..50d0a2bed 100644
index 166670224..36f720d36 100644
--- a/panels/network/net-device-mobile.c
+++ b/panels/network/net-device-mobile.c
@@ -508,7 +508,7 @@ options_button_clicked_cb (NetDeviceMobile *self)
@@ -521,7 +521,7 @@ options_button_clicked_cb (NetDeviceMobile *self)
connection = net_device_get_find_connection (self->client, self->device);
uuid = nm_connection_get_uuid (connection);
@ -114,7 +111,7 @@ index 34eb86241..50d0a2bed 100644
g_debug ("Launching '%s'\n", cmdline);
if (!g_spawn_command_line_async (cmdline, &error))
g_warning ("Failed to launch nm-connection-editor: %s", error->message);
@@ -797,7 +797,7 @@ net_device_mobile_init (NetDeviceMobile *self)
@@ -810,7 +810,7 @@ net_device_mobile_init (NetDeviceMobile *self)
self->cancellable = g_cancellable_new ();
@ -137,12 +134,12 @@ index a31a606e3..ed5133d29 100644
/* Use SNMP to get printer's informations */
diff --git a/panels/user-accounts/run-passwd.c b/panels/user-accounts/run-passwd.c
index 86f53d4fc..0b052856f 100644
index edbc99830..1e1d90141 100644
--- a/panels/user-accounts/run-passwd.c
+++ b/panels/user-accounts/run-passwd.c
@@ -150,7 +150,7 @@ spawn_passwd (PasswdHandler *passwd_handler, GError **error)
@@ -152,7 +152,7 @@ spawn_passwd (PasswdHandler *passwd_handler, GError **error)
gchar **envp;
gint my_stdin, my_stdout, my_stderr;
gint my_stdin, my_stdout;
- argv[0] = "/usr/bin/passwd"; /* Is it safe to rely on a hard-coded path? */
+ argv[0] = "/run/wrappers/bin/passwd"; /* Is it safe to rely on a hard-coded path? */
@ -150,10 +147,10 @@ index 86f53d4fc..0b052856f 100644
envp = g_get_environ ();
diff --git a/panels/user-accounts/user-utils.c b/panels/user-accounts/user-utils.c
index 83d4cd091..e8784c722 100644
index 5b7bc1f02..13ffe6ca8 100644
--- a/panels/user-accounts/user-utils.c
+++ b/panels/user-accounts/user-utils.c
@@ -486,7 +486,7 @@ is_valid_username_async (const gchar *username,
@@ -215,7 +215,7 @@ is_valid_username_async (const gchar *username,
* future, so it would be nice to have some official way for this
* instead of relying on the current "--login" implementation.
*/

View File

@ -11,13 +11,13 @@
, substituteAll
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-shell-extensions";
version = "45.1";
version = "45.2";
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "JC4VoMBuggw/2N1q6sGo74Zc5YiC5Zda8dZZNLtNQmE=";
url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major finalAttrs.version}/gnome-shell-extensions-${finalAttrs.version}.tar.xz";
sha256 = "7jL2OHotGK2/96lWaJvHR4ZrSocS1zeQwAKr6uTMqq8=";
};
patches = [
@ -63,8 +63,8 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
attrPath = "gnome.${pname}";
packageName = "gnome-shell-extensions";
attrPath = "gnome.gnome-shell-extensions";
};
};
@ -75,4 +75,4 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}
})

View File

@ -65,15 +65,15 @@
let
pythonEnv = python3.withPackages (ps: with ps; [ pygobject3 ]);
in
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-shell";
version = "45.1";
version = "45.2";
outputs = [ "out" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "FfykvWEpqLP5kBl/vR7ljXS2QVEK+q8Igqf6NmNPxfI=";
url = "mirror://gnome/sources/gnome-shell/${lib.versions.major finalAttrs.version}/gnome-shell-${finalAttrs.version}.tar.xz";
sha256 = "igz7+HKxp2JpbIbhPe/p82dekteVFOup0AC1thHCaiM=";
};
patches = [
@ -231,4 +231,4 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
};
}
})

View File

@ -67,13 +67,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mutter";
version = "45.1";
version = "45.2";
outputs = [ "out" "dev" "man" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
sha256 = "LNPF77Itt2x5MRyxiJoaqy/rNbSk3QPzgiqreZnaISw=";
sha256 = "rz+Ym/IqVg3CSS+44Z+do3zm1xRLPgUZgLDVUFiWANw=";
};
mesonFlags = [

View File

@ -36,15 +36,15 @@
, gobject-introspection
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "nautilus";
version = "45.1";
version = "45.2.1";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "I72qmoVGbFk3qJ2t3QgO0DvMK0notkr2ByBjU73oL+M=";
url = "mirror://gnome/sources/nautilus/${lib.versions.major finalAttrs.version}/nautilus-${finalAttrs.version}.tar.xz";
sha256 = "ul1T3zmhVVYt+XHvXjHoJwdJBdDEjqseskIaEChLmQ0=";
};
patches = [
@ -119,8 +119,8 @@ stdenv.mkDerivation rec {
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
attrPath = "gnome.${pname}";
packageName = "nautilus";
attrPath = "gnome.nautilus";
};
};
@ -131,4 +131,4 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
maintainers = teams.gnome.members;
};
}
})

View File

@ -14,13 +14,13 @@
, wrapGAppsHook4
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "zenity";
version = "3.99.2";
version = "4.0.0";
src = fetchurl {
url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "oZR4kGuYi082fl6mOlkh5PmMuCVbugXrXK2LWhikFo8=";
url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor finalAttrs.version}/zenity-${finalAttrs.version}.tar.xz";
sha256 = "C4yN7xjasFzEm9RkuQyn+UWuUv9eCSQtpwKhXZTT6N0=";
};
nativeBuildInputs = [
@ -54,4 +54,4 @@ stdenv.mkDerivation rec {
platforms = platforms.unix;
maintainers = teams.gnome.members;
};
}
})

View File

@ -0,0 +1,57 @@
{ stdenvNoCC
, lib
, fetchFromGitLab
, gitUpdater
, gtk3
, hicolor-icon-theme
, ubuntu-themes
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "suru-icon-theme";
version = "20.05.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/suru-icon-theme";
rev = finalAttrs.version;
hash = "sha256-jJ6J+SjSABZCgnCF9cIFBpeSXX2LMnV+nPLPpoXQv30=";
};
strictDeps = true;
nativeBuildInputs = [
gtk3 # gtk-update-icon-cache
hicolor-icon-theme # theme setup hook
];
propagatedBuildInputs = [
ubuntu-themes
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
cp -r suru $out/share/icons/
gtk-update-icon-cache $out/share/icons/suru
runHook postInstall
'';
dontDropIconThemeCache = true;
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Suru Icon Theme for Lomiri Operating Environment";
homepage = "https://gitlab.com/ubports/development/core/suru-icon-theme";
license = licenses.cc-by-sa-30;
maintainers = teams.lomiri.members;
platforms = platforms.all;
};
})

View File

@ -9,6 +9,7 @@ let
in {
#### Data
lomiri-schemas = callPackage ./data/lomiri-schemas { };
suru-icon-theme = callPackage ./data/suru-icon-theme { };
#### Development tools / libraries
cmake-extras = callPackage ./development/cmake-extras { };
@ -21,6 +22,7 @@ let
#### QML / QML-related
lomiri-settings-components = callPackage ./qml/lomiri-settings-components { };
lomiri-ui-toolkit = callPackage ./qml/lomiri-ui-toolkit { };
#### Services
biometryd = callPackage ./services/biometryd { };

View File

@ -0,0 +1,158 @@
From 243477a2bd6e315c77ebaf5b2ed4a9c9c4e1e22a Mon Sep 17 00:00:00 2001
From: OPNA2608 <christoph.neidahl@gmail.com>
Date: Sat, 25 Nov 2023 10:49:32 +0100
Subject: [PATCH] Mark problematic tests
- ShapeMaterial requires a Qt OpenGL context, doesn't work in our sandbox
- SignalSpy on QML shaders compilers don't see changes
- Scaling value from environment not picked up properly since Qt 5.15.11
https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/issues/34
- TypeError on some properties with Qt 5.15
https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/issues/9
---
tests/checkresults.sh | 89 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 83 insertions(+), 6 deletions(-)
diff --git a/tests/checkresults.sh b/tests/checkresults.sh
index fc498985e..730b9d406 100755
--- a/tests/checkresults.sh
+++ b/tests/checkresults.sh
@@ -22,6 +22,7 @@ ERRORS_PATTERN='<failure'
FAILURES=0
FATAL_WARNINGS=0
+EXCEPTED_FAILURES=0
EXCEPTED=0
for _XML in $*; do
_TESTNAME=$(basename $_XML | sed -r 's@(.+)\.xml@\1@' -)
@@ -31,7 +32,72 @@ for _XML in $*; do
exit 1
fi
- EXCEPTIONS='components_benchmark \
+ ERROR_EXCEPTIONS='\
+ tst_actionbar.13.qml \
+ tst_actionlist.13.qml \
+ tst_adaptivepagelayout.13.qml \
+ tst_adaptivepagelayout_configuration.13.qml \
+ tst_combobutton.11.qml \
+ tst_combobutton.13.qml \
+ tst_contextual_actions.13.qml \
+ tst_focus.13.qml \
+ tst_header.13.qml \
+ tst_hide_chrome.11.qml \
+ tst_listitem.12.qml \
+ tst_listitem.13.qml \
+ tst_listitem_actions_breaks_selectmode.12.qml \
+ tst_listitem_extras.13.qml \
+ tst_listitem_focus.13.qml \
+ tst_listitem_horizontal_navigation.13.qml \
+ tst_listitem_selectmode.12.qml \
+ tst_listitem_selectmode.13.qml \
+ tst_listitems_itemselector.11.qml \
+ tst_listitems_standard.11.qml \
+ tst_listitems_standard.13.qml \
+ tst_lomirilistview.11.qml \
+ tst_lomiritestcase.qml \
+ tst_multicolumnheader.13.qml \
+ tst_optionselector.11.qml \
+ tst_optionselector.13.qml \
+ tst_page_with_header.13.qml \
+ tst_pagehead_back_action.13.qml \
+ tst_pagehead_contents_width.13.qml \
+ tst_pagehead_sections.13.qml \
+ tst_pagehead_visible.13.qml \
+ tst_pageheader.13.qml \
+ tst_pagestack.13.qml \
+ tst_pagestack.DEPRECATED_APPHEADER_TABS.13.qml \
+ tst_picker.11.qml \
+ tst_picker.13.qml \
+ tst_popover.12.qml \
+ tst_popover.13.qml \
+ tst_popups_dialog.13.qml \
+ tst_popups_pagestack.13.qml \
+ tst_pulltorefresh_pagestack_topmargin.13.qml \
+ tst_slider.11.qml \
+ tst_slider.13.qml \
+ tst_switch_bug1510919.13.qml \
+ tst_tabs.11.qml \
+ tst_tabs.13.qml \
+ tst_tabs.DEPRECATED_TOOLBAR.11.qml \
+ tst_textarea.11.qml \
+ tst_textarea_in_flickable.11.qml \
+ tst_textfield.11.qml \
+ tst_textinput_common.12.qml \
+ tst_textinput_common.13.qml \
+ tst_toggles.13.qml \
+ inversemousearea \
+ layouts \
+ recreateview \
+ subtheming \
+ swipearea \
+ tst_icon.11.qml \
+ tst_icon.13.qml \
+ dpr1 \
+ '
+
+ EXCEPTIONS='\
+ components_benchmark \
tst_tabbar.11.qml \
tst_datepicker.bug1567840.SEGFAULT.12.qml \
tst_datepicker.bug1567840.SEGFAULT.13.qml \
@@ -49,22 +115,28 @@ for _XML in $*; do
inversemousearea \
tst_listitem_focus_bug.13.qml \
tst_shortcuts.13.qml \
+ tst_pagestack.DEPRECATED_TOOLBAR.11.qml \
'
WARNINGS=$(grep -c -P "$WARNINGS_PATTERN" $_XML)
ERRORS=$(grep -c -P "$ERRORS_PATTERN" $_XML)
if [ $ERRORS -ne 0 ]; then
- FAILURES_FILES="${FAILURES_FILES} ${_TESTNAME}\n"
- ((FAILURES+=$ERRORS))
+ if [[ $ERROR_EXCEPTIONS == *" $_TESTNAME "* ]]; then
+ EXCEPTED_FAILURES_FILES="${EXCEPTED_FAILURES_FILES} ${_TESTNAME}\n"
+ ((EXCEPTED_FAILURES+=$ERRORS))
+ else
+ FAILURES_FILES="${FAILURES_FILES} ${_TESTNAME}\n"
+ ((FAILURES+=$ERRORS))
+ fi
elif [ $WARNINGS -ne 0 ]; then
- if [[ $EXCEPTIONS == *$_TESTNAME* ]]; then
+ if [[ $EXCEPTIONS == *" $_TESTNAME "* ]]; then
EXCEPTED_FILES="${EXCEPTED_FILES} ${_TESTNAME}\n"
((EXCEPTED+=$WARNINGS))
else
FATAL_WARNINGS_FILES="${FATAL_WARNINGS_FILES} ${_TESTNAME}\n"
((FATAL_WARNINGS+=$WARNINGS))
fi
- elif [[ $EXCEPTIONS == *$_TESTNAME* ]]; then
+ elif [[ $ERROR_EXCEPTIONS == *" $_TESTNAME "* || $EXCEPTIONS == *" $_TESTNAME "* ]]; then
WOOT_FILES="${WOOT_FILES} ${_TESTNAME}\n"
fi
done
@@ -82,6 +154,11 @@ if [ -n "$FATAL_WARNINGS_FILES" ]; then
echo -e "$FATAL_WARNINGS_FILES"
fi
+if [ -n "$EXCEPTED_FAILURES_FILES" ]; then
+ echo The following tests issued $EXCEPTED_FAILURES expected failures:
+ echo -e "$EXCEPTED_FAILURES_FILES"
+fi
+
if [ -n "$EXCEPTED_FILES" ]; then
echo The following tests issued $EXCEPTED expected warnings:
echo -e "$EXCEPTED_FILES"
@@ -89,7 +166,7 @@ fi
if [ -n "$WOOT_FILES" ]; then
echo Woot! Known problematic tests passed!
- echo Consider removing these from EXCEPTIONS in ${0#$(pwd)/}!
+ echo Consider removing these from ERROR_EXCEPTIONS/EXCEPTIONS in ${0#$(pwd)/}!
echo -e "$WOOT_FILES"
fi
--
2.40.1

View File

@ -0,0 +1,254 @@
{ stdenv
, lib
, fetchFromGitLab
, fetchpatch
, gitUpdater
, testers
, dbus-test-runner
, dpkg
, gdb
, glib
, lttng-ust
, perl
, pkg-config
, python3
, qmake
, qtbase
, qtdeclarative
, qtfeedback
, qtgraphicaleffects
, qtpim
, qtquickcontrols2
, qtsvg
, qtsystems
, suru-icon-theme
, wrapQtAppsHook
, xvfb-run
}:
let
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
qtPluginPaths = listToQtVar qtbase.qtPluginPrefix [ qtbase qtpim qtsvg ];
qtQmlPaths = listToQtVar qtbase.qtQmlPrefix [ qtdeclarative qtfeedback qtgraphicaleffects ];
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-ui-toolkit";
version = "1.3.5011";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-ui-toolkit";
rev = finalAttrs.version;
hash = "sha256-z/EEmC9LjQtBx5MRDLeImxpRrzH4w6v6o+NmqX+L4dw=";
};
outputs = [ "out" "dev" ];
patches = [
# Upstreaming effort for these two patches: https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/merge_requests/44
(fetchpatch {
name = "0001-lomiri-ui-toolkit-fix-tests-on-qt-5.15.4.patch";
url = "https://salsa.debian.org/ubports-team/lomiri-ui-toolkit/-/raw/1ad650c326ba9706d549d1dbe8335c70f6b382c8/debian/patches/0001-fix-tests-on-qt-5.15.4.patch";
hash = "sha256-Y5HVvulR2760DBzlmYkImbJ/qIeqMISqPpUppbv8xJA=";
})
(fetchpatch {
name = "0002-lomiri-ui-toolkit-fix-tests-on-qt-5.15.5.patch";
url = "https://salsa.debian.org/ubports-team/lomiri-ui-toolkit/-/raw/03bcafadd3e4fda34bcb5af23454f4b202cf5517/debian/patches/0002-fix-tests-on-qt-5.15.5.patch";
hash = "sha256-x8Zk7+VBSlM16a3V1yxJqIB63796H0lsS+F4dvR/z80=";
})
# Small fixes to statesaver & tst_imageprovider.11.qml tests
# Remove when version > 1.3.5011
(fetchpatch {
name = "0003-lomiri-ui-toolkit-tests-Minor-fixes.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/commit/a8324d670b813a48ac7d48aa0bc013773047a01d.patch";
hash = "sha256-W6q3LuQqWmUVSBzORcJsTPoLfbWwytABMDR6JITHrDI=";
})
# Fix Qt 5.15.11 compatibility
# Remove when version > 1.3.5011
(fetchpatch {
name = "0004-lomiri-ui-toolkit-Fix-compilation-with-Qt-5.15.11.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/commit/4f999077dc6bc5591bdfede64fd21cb3acdcaac1.patch";
hash = "sha256-5VCQFOykxgspNBxH94XYuBpdHsH9a3+8FwV6xQE55Xc=";
})
./2001-Mark-problematic-tests.patch
];
postPatch = ''
patchShebangs documentation/docs.sh tests/
substituteInPlace tests/tests.pro \
--replace "\''$\''$PYTHONDIR" "$dev/${python3.sitePackages}"
for subproject in po app-launch-profiler lomiri-ui-toolkit-launcher; do
substituteInPlace $subproject/$subproject.pro \
--replace "\''$\''$[QT_INSTALL_PREFIX]" "$out" \
--replace "\''$\''$[QT_INSTALL_LIBS]" "$out/lib"
done
# Install apicheck tool into bin
substituteInPlace apicheck/apicheck.pro \
--replace "\''$\''$[QT_INSTALL_LIBS]/lomiri-ui-toolkit" "$out/bin"
# Causes redefinition error with our own fortify hardening
sed -i '/DEFINES += _FORTIFY_SOURCE/d' features/lomiri_common.prf
# Reverse dependencies (and their reverse dependencies too) access the function patched here to register their gettext catalogues,
# so hardcoding any prefix here will make only catalogues in that prefix work. APP_DIR envvar will override this, but with domains from multiple derivations being
# used in a single application (lomiri-system-settings), that's of not much use either.
# https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/blob/dcb3a523c56a400e5c3c163c2836cafca168767e/src/LomiriToolkit/i18n.cpp#L101-129
#
# This could be solved with a reference to the prefix of whoever requests the domain, but the call happens via some automatic Qt / QML callback magic,
# I'm not sure what the best way of injecting that there would be.
# https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/blob/dcb3a523c56a400e5c3c163c2836cafca168767e/src/LomiriToolkit/i18n_p.h#L34
#
# Using /run/current-system/sw/share/locale instead of /usr/share/locale isn't a great
# solution, but at least it should get us working localisations
substituteInPlace src/LomiriToolkit/i18n.cpp \
--replace "/usr" "/run/current-system/sw"
# The code here overrides the regular QML import variables so the just-built modules are found & used in the tests
# But we need their QML dependencies too, so put them back in there
substituteInPlace export_qml_dir.sh \
--replace '_IMPORT_PATH=$BUILD_DIR/qml' '_IMPORT_PATH=$BUILD_DIR/qml:${qtQmlPaths}'
# These tests try to load Suru theme icons, but override XDG_DATA_DIRS / use full paths to load them
substituteInPlace \
tests/unit/visual/tst_visual.cpp \
tests/unit/visual/tst_icon.{11,13}.qml \
tests/unit/visual/tst_imageprovider.11.qml \
--replace '/usr/share' '${suru-icon-theme}/share'
'';
# With strictDeps, QMake only picks up Qt dependencies from nativeBuildInputs
strictDeps = false;
nativeBuildInputs = [
perl
pkg-config
python3
qmake
wrapQtAppsHook
];
buildInputs = [
glib
lttng-ust
qtbase
qtdeclarative
qtpim
qtquickcontrols2
qtsystems
];
propagatedBuildInputs = [
qtfeedback
qtgraphicaleffects
qtsvg
];
nativeCheckInputs = [
dbus-test-runner
dpkg # `dpkg-architecture -qDEB_HOST_ARCH` response decides how tests are run
gdb
xvfb-run
];
qmakeFlags = [
# docs require Qt5's qdoc, which we don't have before https://github.com/NixOS/nixpkgs/pull/245379
"CONFIG+=no_docs"
# Ubuntu UITK compatibility, for older / not-yet-migrated applications
"CONFIG+=ubuntu-uitk-compat"
"QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
# Explicitly not parallel-safe, large parts are always run in series and at least qquick_image_extension fails with parallelism
enableParallelChecking = false;
checkPhase = ''
runHook preCheck
export HOME=$PWD
# XDG_RUNTIME_DIR with wrong permissions causes warnings that are interpreted as errors in the test suite
export XDG_RUNTIME_DIR=$PWD/runtime-dir
mkdir -p $XDG_RUNTIME_DIR
chmod -R 700 $XDG_RUNTIME_DIR
# Tests need some Qt plugins
# Many tests try to load Suru theme icons via XDG_DATA_DIRS
export QT_PLUGIN_PATH=${qtPluginPaths}
export XDG_DATA_DIRS=${suru-icon-theme}/share
tests/xvfb.sh make check ''${enableParallelChecking:+-j''${NIX_BUILD_CORES}}
runHook postCheck
'';
preInstall = ''
# wrapper script calls qmlplugindump, crashes due to lack of minimal platform plugin
# Could not find the Qt platform plugin "minimal" in ""
# Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
export QT_PLUGIN_PATH=${qtPluginPaths}
# Qt-generated wrapper script lacks QML paths to dependencies
for qmlModule in Components PerformanceMetrics Test; do
substituteInPlace src/imports/$qmlModule/wrapper.sh \
--replace 'QML2_IMPORT_PATH=' 'QML2_IMPORT_PATH=${qtQmlPaths}:'
done
'';
postInstall = ''
# Code loads Qt's qt_module.prf, which force-overrides all QMAKE_PKGCONFIG_* variables except PREFIX for QMake-generated pkg-config files
for pcFile in Lomiri{Gestures,Metrics,Toolkit}.pc; do
substituteInPlace $out/lib/pkgconfig/$pcFile \
--replace "${lib.getLib qtbase}/lib" "\''${prefix}/lib" \
--replace "${lib.getDev qtbase}/include" "\''${prefix}/include"
done
# These are all dev-related tools, but declaring a bin output also moves around the QML modules
moveToOutput "bin" "$dev"
'';
postFixup = ''
for qtBin in $dev/bin/{apicheck,lomiri-ui-toolkit-launcher}; do
wrapQtApp $qtBin
done
'';
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater { };
};
meta = with lib; {
description = "QML components to ease the creation of beautiful applications in QML";
longDescription = ''
This project consists of a set of QML components to ease the creation of beautiful applications in QML for Lomiri.
QML alone lacks built-in components for basic widgets like Button, Slider, Scrollbar, etc, meaning a developer has
to build them from scratch.
This toolkit aims to stop this duplication of work, supplying beautiful components ready-made and with a clear and
consistent API.
These components are fully themeable so the look and feel can be easily customized. Resolution independence
technology is built in so UIs are scaled to best suit the display.
Other features:
- localisation through gettext
'';
homepage = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit";
license = with licenses; [ gpl3Only cc-by-sa-30 ];
maintainers = teams.lomiri.members;
platforms = platforms.linux;
pkgConfigModules = [
"LomiriGestures"
"LomiriMetrics"
"LomiriToolkit"
];
};
})

View File

@ -17,11 +17,11 @@
stdenv.mkDerivation rec {
pname = "mate-system-monitor";
version = "1.26.1";
version = "1.26.2";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "HrX7m2y0qK2DCyboR6m70B1WiqvTg8Yo7p8IQJuJKOc=";
sha256 = "vm2X3saPXza94S+KyvGsVkLSOaXSQWGoL/9QZPRQJUQ=";
};
nativeBuildInputs = [

View File

@ -54,8 +54,6 @@ stdenv.mkDerivation rec {
# fixes cmake support
sed -i -e "s/print \('emcc (Emscript.*\)/sys.stderr.write(\1); sys.stderr.flush()/g" emcc.py
# disables cache in user home, use installation directory instead
sed -i '/^def/!s/root_is_writable()/True/' tools/config.py
sed -i "/^def check_sanity/a\\ return" tools/shared.py
echo "EMSCRIPTEN_ROOT = '$out/share/emscripten'" > .emscripten

View File

@ -1,16 +1,16 @@
{ callPackage, fetchFromGitHub, gambit-support }:
callPackage ./build.nix rec {
version = "unstable-2023-10-07";
git-version = "4.9.5-59-g342399c7";
stampYmd = 20231007;
stampHms = 170745;
rev = "342399c736ec560c0ff4faeaeb9599b45633f26c";
version = "unstable-2023-12-04";
git-version = "4.9.5-84-g6b19d0c9";
stampYmd = 20231204;
stampHms = 204859;
rev = "6b19d0c9084341306bbb7d6895321090a82988a0";
src = fetchFromGitHub {
owner = "gambit";
repo = "gambit";
inherit rev;
sha256 = "121pj6lxihjjnfq33lq4m5hi461xbs9f41qd4l46556dr15cyf8f";
sha256 = "0njcz9krak8nfyk3x6bc6m1rixzsjc1fyzhbz2g3aq5v8kz9mkl5";
};
gambit-params = gambit-support.unstable-params;
}

View File

@ -24,17 +24,16 @@ stdenv.mkDerivation rec {
buildInputs = buildInputs_libraries;
postPatch = ''
echo '(define (gerbil-version-string) "v${git-version}")' > src/gerbil/runtime/gx-version.scm ;
patchShebangs . ;
grep -Fl '#!/usr/bin/env' `find . -type f -executable` | while read f ; do
substituteInPlace "$f" --replace '#!/usr/bin/env' '#!${coreutils}/bin/env' ;
done ;
substituteInPlace ./configure --replace 'set -e' 'set -e ; git () { echo "v${git-version}" ;}' ;
substituteInPlace ./src/build/build-version.scm --replace "with-exception-catcher" '(lambda _ "v${git-version}")' ;
#rmdir src/gambit
#cp -a ${pkgs.gambit-unstable.src} ./src/gambit
chmod -R u+w ./src/gambit
( cd src/gambit ; ${gambit-params.fixStamp gambit-git-version gambit-stampYmd gambit-stampHms} )
cat > MANIFEST <<EOF
gerbil_stamp_version=v${git-version}
gambit_stamp_version=v${gambit-git-version}
gambit_stamp_ymd=${gambit-stampYmd}
gambit_stamp_hms=${gambit-stampHms}
EOF
for f in src/bootstrap/gerbil/compiler/driver__0.scm \
src/build/build-libgerbil.ss \
src/gerbil/compiler/driver.ss ; do
@ -58,8 +57,7 @@ stdenv.mkDerivation rec {
"--enable-zlib"
"--enable-sqlite"
"--enable-shared"
"--disable-deprecated"
"--enable-march=" # Avoid non-portable invalid instructions
"--enable-march=" # Avoid non-portable invalid instructions. Use =native if local build only.
];
configurePhase = ''
@ -70,15 +68,7 @@ stdenv.mkDerivation rec {
LD=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}ld \
XMKMF=${coreutils}/bin/false
unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS
(cd src/gambit ; ${gambit-params.fixStamp gambit-git-version gambit-stampYmd gambit-stampHms})
./configure ${builtins.concatStringsSep " " configureFlags}
(cd src/gambit ;
substituteInPlace config.status \
${lib.optionalString (gccStdenv.isDarwin && !gambit-params.stable)
''--replace "/usr/local/opt/openssl@1.1" "${lib.getLib openssl}"''} \
--replace "/usr/local/opt/openssl" "${lib.getLib openssl}"
./config.status
)
'';
extraLdOptions = [

View File

@ -1,18 +1,18 @@
{ callPackage, fetchFromGitHub, gambit-unstable, gambit-support, pkgs, gccStdenv }:
callPackage ./build.nix rec {
version = "0.18";
git-version = "0.18";
version = "0.18.1";
git-version = "0.18.1";
src = fetchFromGitHub {
owner = "mighty-gerbils";
repo = "gerbil";
rev = "8ca36a928bc9345f9d28e5f2dfcb55ca558e85f9";
sha256 = "sha256-EMiYgQM/Gl+dh6AxLYRZ0BKZ+VKFd+Lkyy9Pw11ivE8=";
rev = "23c30a6062cd7e63f9d85300ce01585bb9035d2d";
sha256 = "15fh0zqkmnjhan1mgymq5fgbjsh5z9d2v6zjddplqib5zd2s3z6k";
fetchSubmodules = true;
};
inherit gambit-support;
gambit-params = gambit-support.unstable-params;
gambit-git-version = "4.9.5-40-g24201248"; # pkgs.gambit-unstable.passthru.git-version
gambit-stampYmd = "20230917"; # pkgs.gambit-unstable.passthru.git-stampYmd
gambit-stampHms = "182043"; # pkgs.gambit-unstable.passthru.git-stampHms
gambit-git-version = "4.9.5-78-g8b18ab69";
gambit-stampYmd = "20231029";
gambit-stampHms = "163035";
}

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