Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-02-03 00:12:45 +00:00 committed by GitHub
commit f7af6d355f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
209 changed files with 2023 additions and 1048 deletions
doc
lib
maintainers
nixos
pkgs
applications
audio
grandorgue
strawberry
blockchains/optimism
emulators/citra
graphics/lazpaint
misc
networking
browsers
cluster
civo
kubedb-cli
kubergrunt
instant-messengers/signal-desktop
ipfs-cluster
weather/meteo
office/portfolio
science/molecular-dynamics/gromacs
version-management/gitlab
video/stremio
virtualization
window-managers
build-support
by-name
al
as/ast-grep
ca/cargo-xwin
fi/files-cli
ga/galerio
ge/geist-font
in/invidtui
le/legba
lo/louvain-community
ne/net-cpp
or/ory
ot/oterm
pd/pdfannots2json
pe/persistent-cache-cpp
pi/pixi
pr
presenterm
protoc-gen-js
pu/pupdate
py/pysqlrecon
re/renode-unstable
ux/uxn
yj/yj
zi/zitadel
data
icons/papirus-icon-theme
misc/v2ray-domain-list-community
desktops/lomiri
data/lomiri-schemas
development
qml
lomiri-action-api
lomiri-settings-components
lomiri-ui-extras
lomiri-ui-toolkit
services
biometryd
content-hub
hfd-service
history-service
lomiri-download-manager
lomiri-indicator-network

View File

@ -502,9 +502,14 @@ concatScript "my-file" [ file1 file2 ]
## `writeShellApplication` {#trivial-builder-writeShellApplication} ## `writeShellApplication` {#trivial-builder-writeShellApplication}
This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck). `writeShellApplication` is similar to `writeShellScriptBin` and `writeScriptBin` but supports runtime dependencies with `runtimeInputs`.
Writes an executable shell script to `/nix/store/<store path>/bin/<name>` and checks its syntax with [`shellcheck`](https://github.com/koalaman/shellcheck) and the `bash`'s `-n` option.
Some basic Bash options are set by default (`errexit`, `nounset`, and `pipefail`), but can be overridden with `bashOptions`.
For example, look at the following code: Extra arguments may be passed to `stdenv.mkDerivation` by setting `derivationArgs`; note that variables set in this manner will be set when the shell script is _built,_ not when it's run.
Runtime environment variables can be set with the `runtimeEnv` argument.
For example, the following shell application can refer to `curl` directly, rather than needing to write `${curl}/bin/curl`:
```nix ```nix
writeShellApplication { writeShellApplication {
@ -518,10 +523,6 @@ writeShellApplication {
} }
``` ```
Unlike with normal `writeShellScriptBin`, there is no need to manually write out `${curl}/bin/curl`, setting the PATH
was handled by `writeShellApplication`. Moreover, the script is being checked with `shellcheck` for more strict
validation.
## `symlinkJoin` {#trivial-builder-symlinkJoin} ## `symlinkJoin` {#trivial-builder-symlinkJoin}
This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within. This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.

View File

@ -25,6 +25,7 @@ let
{ name = "gvariant"; description = "GVariant formatted string serialization functions"; } { name = "gvariant"; description = "GVariant formatted string serialization functions"; }
{ name = "customisation"; description = "Functions to customise (derivation-related) functions, derivatons, or attribute sets"; } { name = "customisation"; description = "Functions to customise (derivation-related) functions, derivatons, or attribute sets"; }
{ name = "meta"; description = "functions for derivation metadata"; } { name = "meta"; description = "functions for derivation metadata"; }
{ name = "derivations"; description = "miscellaneous derivation-specific functions"; }
]; ];
}; };

View File

@ -116,7 +116,7 @@ let
inherit (self.customisation) overrideDerivation makeOverridable inherit (self.customisation) overrideDerivation makeOverridable
callPackageWith callPackagesWith extendDerivation hydraJob callPackageWith callPackagesWith extendDerivation hydraJob
makeScope makeScopeWithSplicing makeScopeWithSplicing'; makeScope makeScopeWithSplicing makeScopeWithSplicing';
inherit (self.derivations) lazyDerivation; inherit (self.derivations) lazyDerivation optionalDrvAttr;
inherit (self.meta) addMetaAttrs dontDistribute setName updateName inherit (self.meta) addMetaAttrs dontDistribute setName updateName
appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
hiPrioSet getLicenseFromSpdxId getExe getExe'; hiPrioSet getLicenseFromSpdxId getExe getExe';

View File

@ -98,4 +98,30 @@ in
# `lazyDerivation` caller knew a shortcut, be taken from there. # `lazyDerivation` caller knew a shortcut, be taken from there.
meta = args.meta or checked.meta; meta = args.meta or checked.meta;
} // passthru; } // passthru;
/* Conditionally set a derivation attribute.
Because `mkDerivation` sets `__ignoreNulls = true`, a derivation
attribute set to `null` will not impact the derivation output hash.
Thus, this function passes through its `value` argument if the `cond`
is `true`, but returns `null` if not.
Type: optionalDrvAttr :: Bool -> a -> a | Null
Example:
(stdenv.mkDerivation {
name = "foo";
x = optionalDrvAttr true 1;
y = optionalDrvAttr false 1;
}).drvPath == (stdenv.mkDerivation {
name = "foo";
x = 1;
}).drvPath
=> true
*/
optionalDrvAttr =
# Condition
cond:
# Attribute value
value: if cond then value else null;
} }

View File

@ -5,6 +5,7 @@ let
isAttrs isAttrs
isPath isPath
isString isString
nixVersion
pathExists pathExists
readDir readDir
split split
@ -17,6 +18,7 @@ let
attrNames attrNames
attrValues attrValues
mapAttrs mapAttrs
optionalAttrs
zipAttrsWith zipAttrsWith
; ;
@ -56,6 +58,7 @@ let
substring substring
stringLength stringLength
hasSuffix hasSuffix
versionAtLeast
; ;
inherit (lib.trivial) inherit (lib.trivial)
@ -840,6 +843,10 @@ rec {
# https://github.com/NixOS/nix/commit/55cefd41d63368d4286568e2956afd535cb44018 # https://github.com/NixOS/nix/commit/55cefd41d63368d4286568e2956afd535cb44018
_fetchGitSubmodulesMinver = "2.4"; _fetchGitSubmodulesMinver = "2.4";
# Support for `builtins.fetchGit` with `shallow = true` was introduced in 2.4
# https://github.com/NixOS/nix/commit/d1165d8791f559352ff6aa7348e1293b2873db1c
_fetchGitShallowMinver = "2.4";
# Mirrors the contents of a Nix store path relative to a local path as a file set. # Mirrors the contents of a Nix store path relative to a local path as a file set.
# Some notes: # Some notes:
# - The store path is read at evaluation time. # - The store path is read at evaluation time.
@ -894,7 +901,17 @@ rec {
# However a simpler alternative still would be [a builtins.gitLsFiles](https://github.com/NixOS/nix/issues/2944). # However a simpler alternative still would be [a builtins.gitLsFiles](https://github.com/NixOS/nix/issues/2944).
fetchResult = fetchGit ({ fetchResult = fetchGit ({
url = path; url = path;
} // extraFetchGitAttrs); }
# In older Nix versions, repositories were always assumed to be deep clones, which made `fetchGit` fail for shallow clones
# For newer versions this was fixed, but the `shallow` flag is required.
# The only behavioral difference is that for shallow clones, `fetchGit` doesn't return a `revCount`,
# which we don't need here, so it's fine to always pass it.
# Unfortunately this means older Nix versions get a poor error message for shallow repositories, and there's no good way to improve that.
# Checking for `.git/shallow` doesn't seem worth it, especially since that's more of an implementation detail,
# and would also require more code to handle worktrees where `.git` is a file.
// optionalAttrs (versionAtLeast nixVersion _fetchGitShallowMinver) { shallow = true; }
// extraFetchGitAttrs);
in in
# We can identify local working directories by checking for .git, # We can identify local working directories by checking for .git,
# see https://git-scm.com/docs/gitrepository-layout#_description. # see https://git-scm.com/docs/gitrepository-layout#_description.

View File

@ -1439,6 +1439,19 @@ if [[ -n "$fetchGitSupportsSubmodules" ]]; then
fi fi
rm -rf -- * rm -rf -- *
# shallow = true is not supported on all Nix versions
# and older versions don't support shallow clones at all
if [[ "$(nix-instantiate --eval --expr "$prefixExpression (versionAtLeast builtins.nixVersion _fetchGitShallowMinver)")" == true ]]; then
createGitRepo full
# Extra commit such that there's a commit that won't be in the shallow clone
git -C full commit --allow-empty -q -m extra
git clone -q --depth 1 "file://${PWD}/full" shallow
cd shallow
checkGitTracked
cd ..
rm -rf -- *
fi
# Go through all stages of Git files # Go through all stages of Git files
# See https://www.git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository # See https://www.git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository

View File

@ -1902,7 +1902,7 @@ runTests {
expected = true; expected = true;
}; };
# lazyDerivation # DERIVATIONS
testLazyDerivationIsLazyInDerivationForAttrNames = { testLazyDerivationIsLazyInDerivationForAttrNames = {
expr = attrNames (lazyDerivation { expr = attrNames (lazyDerivation {
@ -1955,6 +1955,24 @@ runTests {
expected = derivation; expected = derivation;
}; };
testOptionalDrvAttr = let
mkDerivation = args: derivation (args // {
builder = "builder";
system = "system";
__ignoreNulls = true;
});
in {
expr = (mkDerivation {
name = "foo";
x = optionalDrvAttr true 1;
y = optionalDrvAttr false 1;
}).drvPath;
expected = (mkDerivation {
name = "foo";
x = 1;
}).drvPath;
};
testTypeDescriptionInt = { testTypeDescriptionInt = {
expr = (with types; int).description; expr = (with types; int).description;
expected = "signed integer"; expected = "signed integer";

View File

@ -66,6 +66,12 @@
github = "0b11stan"; github = "0b11stan";
githubId = 27831931; githubId = 27831931;
}; };
_0nyr = {
email = "onyr.maintainer@gmail.com";
github = "0nyr";
githubId = 47721040;
name = "Florian Rascoussier";
};
_0qq = { _0qq = {
email = "0qqw0qqw@gmail.com"; email = "0qqw0qqw@gmail.com";
github = "0qq"; github = "0qq";
@ -4392,6 +4398,15 @@
githubId = 3179832; githubId = 3179832;
name = "D. Bohdan"; name = "D. Bohdan";
}; };
dbrgn = {
email = "nix@dbrgn.ch";
github = "dbrgn";
githubId = 105168;
name = "Danilo B.";
keys = [{
fingerprint = "20EE 002D 778A E197 EF7D 0D2C B993 FF98 A90C 9AB1";
}];
};
dbrock = { dbrock = {
email = "daniel@brockman.se"; email = "daniel@brockman.se";
github = "dbrock"; github = "dbrock";
@ -15176,6 +15191,16 @@
githubId = 11898437; githubId = 11898437;
name = "Florian Ströger"; name = "Florian Ströger";
}; };
presto8 = {
name = "Preston Hunt";
email = "me@prestonhunt.com";
matrix = "@presto8:matrix.org";
github = "presto8";
githubId = 246631;
keys = [{
fingerprint = "3E46 7EF1 54AA A1D0 C7DF A694 E45C B17F 1940 CA52";
}];
};
priegger = { priegger = {
email = "philipp@riegger.name"; email = "philipp@riegger.name";
github = "priegger"; github = "priegger";

View File

@ -71,6 +71,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable). - [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
- [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer. - [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer.
- [systemd-lock-handler](https://git.sr.ht/~whynothugo/systemd-lock-handler/), a bridge between logind D-Bus events and systemd targets. Available as [services.systemd-lock-handler.enable](#opt-services.systemd-lock-handler.enable). - [systemd-lock-handler](https://git.sr.ht/~whynothugo/systemd-lock-handler/), a bridge between logind D-Bus events and systemd targets. Available as [services.systemd-lock-handler.enable](#opt-services.systemd-lock-handler.enable).

View File

@ -139,6 +139,7 @@
./programs/_1password-gui.nix ./programs/_1password-gui.nix
./programs/_1password.nix ./programs/_1password.nix
./programs/adb.nix ./programs/adb.nix
./programs/alvr.nix
./programs/appgate-sdp.nix ./programs/appgate-sdp.nix
./programs/atop.nix ./programs/atop.nix
./programs/ausweisapp.nix ./programs/ausweisapp.nix

View File

@ -0,0 +1,35 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.programs.alvr;
in
{
options = {
programs.alvr = {
enable = mkEnableOption (lib.mdDoc "ALVR, the VR desktop streamer");
package = mkPackageOption pkgs "alvr" { };
openFirewall = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to open the default ports in the firewall for the ALVR server.
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ 9943 9944 ];
allowedUDPPorts = [ 9943 9944 ];
};
};
meta.maintainers = with maintainers; [ passivelemon ];
}

View File

@ -2989,15 +2989,9 @@ let
systemd.services.systemd-networkd = { systemd.services.systemd-networkd = {
wantedBy = [ "initrd.target" ]; wantedBy = [ "initrd.target" ];
# These before and conflicts lines can be removed when this PR makes it into a release:
# https://github.com/systemd/systemd/pull/27791
before = ["initrd-switch-root.target"];
conflicts = ["initrd-switch-root.target"];
}; };
systemd.sockets.systemd-networkd = { systemd.sockets.systemd-networkd = {
wantedBy = [ "initrd.target" ]; wantedBy = [ "initrd.target" ];
before = ["initrd-switch-root.target"];
conflicts = ["initrd-switch-root.target"];
}; };
systemd.services.systemd-network-generator.wantedBy = [ "sysinit.target" ]; systemd.services.systemd-network-generator.wantedBy = [ "sysinit.target" ];

View File

@ -160,7 +160,10 @@ in
"network-online.target" "network-online.target"
]; ];
path = lib.mkIf config.boot.zfs.enabled [ config.boot.zfs.package ]; path = lib.mkIf config.boot.zfs.enabled [
config.boot.zfs.package
"${config.boot.zfs.package}/lib/udev"
];
environment = { environment = {
# Override Path to the LXC template configuration directory # Override Path to the LXC template configuration directory

View File

@ -452,7 +452,7 @@ in {
kerberos = handleTest ./kerberos/default.nix {}; kerberos = handleTest ./kerberos/default.nix {};
kernel-generic = handleTest ./kernel-generic.nix {}; kernel-generic = handleTest ./kernel-generic.nix {};
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {}; kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
kernel-rust = runTestOn ["x86_64-linux"] ./kernel-rust.nix; kernel-rust = handleTestOn ["x86_64-linux"] ./kernel-rust.nix {};
keter = handleTest ./keter.nix {}; keter = handleTest ./keter.nix {};
kexec = handleTest ./kexec.nix {}; kexec = handleTest ./kexec.nix {};
keycloak = discoverTests (import ./keycloak.nix); keycloak = discoverTests (import ./keycloak.nix);

View File

@ -31,7 +31,7 @@ in
testScript = '' testScript = ''
def instance_is_up(_) -> bool: def instance_is_up(_) -> bool:
status, _ = machine.execute("incus exec container --disable-stdin --force-interactive /run/current-system/sw/bin/true") status, _ = machine.execute("incus exec container --disable-stdin --force-interactive /run/current-system/sw/bin/systemctl -- is-system-running")
return status == 0 return status == 0
def set_container(config): def set_container(config):
@ -81,11 +81,7 @@ in
assert meminfo_bytes == "125000 kB", f"Wrong amount of memory reported from /proc/meminfo, want: '125000 kB', got: '{meminfo_bytes}'" assert meminfo_bytes == "125000 kB", f"Wrong amount of memory reported from /proc/meminfo, want: '125000 kB', got: '{meminfo_bytes}'"
with subtest("lxc-container generator configures plain container"): with subtest("lxc-container generator configures plain container"):
machine.execute("incus delete --force container") # reuse the existing container to save some time
machine.succeed("incus launch nixos container")
with machine.nested("Waiting for instance to start and be usable"):
retry(instance_is_up)
machine.succeed("incus exec container test -- -e /run/systemd/system/service.d/zzz-lxc-service.conf") machine.succeed("incus exec container test -- -e /run/systemd/system/service.d/zzz-lxc-service.conf")
with subtest("lxc-container generator configures nested container"): with subtest("lxc-container generator configures nested container"):
@ -103,8 +99,6 @@ in
machine.succeed("incus launch nixos container --config security.privileged=true") machine.succeed("incus launch nixos container --config security.privileged=true")
with machine.nested("Waiting for instance to start and be usable"): with machine.nested("Waiting for instance to start and be usable"):
retry(instance_is_up) retry(instance_is_up)
# give generator an extra second to run
machine.sleep(1)
machine.succeed("incus exec container test -- -e /run/systemd/system/service.d/zzz-lxc-service.conf") machine.succeed("incus exec container test -- -e /run/systemd/system/service.d/zzz-lxc-service.conf")
''; '';

View File

@ -77,11 +77,11 @@ import ../make-test-python.nix (
return ("inactive" in output) return ("inactive" in output)
def lxd_instance_is_up(_) -> bool: def lxd_instance_is_up(_) -> bool:
status, _ = machine.execute("lxc exec container --disable-stdin --force-interactive /run/current-system/sw/bin/true") status, _ = machine.execute("lxc exec container --disable-stdin --force-interactive /run/current-system/sw/bin/systemctl -- is-system-running")
return status == 0 return status == 0
def incus_instance_is_up(_) -> bool: def incus_instance_is_up(_) -> bool:
status, _ = machine.execute("incus exec container --disable-stdin --force-interactive /run/current-system/sw/bin/true") status, _ = machine.execute("incus exec container --disable-stdin --force-interactive /run/current-system/sw/bin/systemctl -- is-system-running")
return status == 0 return status == 0
with machine.nested("initialize lxd and resources"): with machine.nested("initialize lxd and resources"):

View File

@ -36,7 +36,7 @@ in
testScript = '' testScript = ''
def instance_is_up(_) -> bool: def instance_is_up(_) -> bool:
status, _ = machine.execute("incus exec ${instance-name} --disable-stdin --force-interactive /run/current-system/sw/bin/true") status, _ = machine.execute("incus exec ${instance-name} --disable-stdin --force-interactive /run/current-system/sw/bin/systemctl -- is-system-running")
return status == 0 return status == 0
machine.wait_for_unit("incus.service") machine.wait_for_unit("incus.service")

View File

@ -1,30 +1,43 @@
{ pkgs, ... }: { { system ? builtins.currentSystem
name = "kernel-rust"; , config ? { }
meta = with pkgs.lib.maintainers; { , pkgs ? import ../.. { inherit system config; }
maintainers = [ blitz ]; }:
};
nodes.machine = { config, pkgs, ... }: let
{ inherit (pkgs.lib) const filterAttrs mapAttrs;
boot.kernelPackages = pkgs.linuxPackages_testing;
boot.extraModulePackages = [ kernelRustTest = kernelPackages: import ./make-test-python.nix ({ lib, ... }: {
config.boot.kernelPackages.rust-out-of-tree-module name = "kernel-rust";
]; meta.maintainers = with lib.maintainers; [ blitz ma27 ];
nodes.machine = { config, ... }: {
boot.kernelPatches = [ boot = {
{ inherit kernelPackages;
name = "Rust Support"; extraModulePackages = [ config.boot.kernelPackages.rust-out-of-tree-module ];
patch = null; kernelPatches = [
features = { {
rust = true; name = "Rust Support";
}; patch = null;
} features = {
]; rust = true;
};
}
];
};
}; };
testScript = ''
machine.wait_for_unit("default.target")
machine.succeed("modprobe rust_out_of_tree")
'';
});
testScript = '' kernels = {
machine.wait_for_unit("default.target") inherit (pkgs.linuxKernel.packages) linux_testing;
machine.succeed("modprobe rust_out_of_tree") }
''; // filterAttrs
} (const (x: let
inherit (builtins.tryEval (
x.rust-out-of-tree-module or null != null
)) success value;
in success && value))
pkgs.linuxKernel.vanillaPackages;
in mapAttrs (const kernelRustTest) kernels

View File

@ -1,18 +1,34 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, fftwFloat, alsa-lib { lib
, zlib, wavpack, wxGTK32, udev, jackaudioSupport ? false, libjack2 , stdenv
, imagemagick, libicns, makeWrapper, Cocoa , fetchFromGitHub
, includeDemo ? true }: , cmake
, pkg-config
, fftwFloat
, alsa-lib
, zlib
, wavpack
, wxGTK32
, udev
, jackaudioSupport ? false
, libjack2
, imagemagick
, libicns
, yaml-cpp
, makeWrapper
, Cocoa
, includeDemo ? true
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "grandorgue"; pname = "grandorgue";
version = "3.11.0"; version = "3.14.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "GrandOrgue"; owner = "GrandOrgue";
repo = pname; repo = pname;
rev = version; rev = version;
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "sha256-l1KqER/vkNwgKLXIFUzHnYLw2ivGNP7hRiKhIOzn7pw="; hash = "sha256-kPz11V2yNmBe80egNLYxh/m2B1nDca3C5sGbEnrkqnw=";
}; };
postPatch = '' postPatch = ''
@ -24,7 +40,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config imagemagick libicns makeWrapper ]; nativeBuildInputs = [ cmake pkg-config imagemagick libicns makeWrapper ];
buildInputs = [ fftwFloat zlib wavpack wxGTK32 ] buildInputs = [ fftwFloat zlib wavpack wxGTK32 yaml-cpp ]
++ lib.optionals stdenv.isLinux [ alsa-lib udev ] ++ lib.optionals stdenv.isLinux [ alsa-lib udev ]
++ lib.optionals stdenv.isDarwin [ Cocoa ] ++ lib.optionals stdenv.isDarwin [ Cocoa ]
++ lib.optional jackaudioSupport libjack2; ++ lib.optional jackaudioSupport libjack2;
@ -53,5 +69,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2Plus; license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.puzzlewolf ]; maintainers = [ lib.maintainers.puzzlewolf ];
mainProgram = "GrandOrgue";
}; };
} }

View File

@ -10,6 +10,7 @@
, fftw , fftw
, gnutls , gnutls
, libcdio , libcdio
, libebur128
, libmtp , libmtp
, libpthreadstubs , libpthreadstubs
, libtasn1 , libtasn1
@ -34,21 +35,23 @@
, gst_all_1 , gst_all_1
, withVlc ? true , withVlc ? true
, libvlc , libvlc
, nix-update-script
}: }:
let let
inherit (lib) optionals; inherit (lib) optionals optionalString;
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "strawberry"; pname = "strawberry";
version = "1.0.21"; version = "1.0.23";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jonaski"; owner = "jonaski";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-McwnYHaw0LYDeHLDQzfqRIYMV2FoiMdHyOL/EE8/esU="; hash = "sha256-hzZx530HD7R3JOG6cCsoaW9puYkmu7m5lr+EfobKX7o=";
fetchSubmodules = true;
}; };
# the big strawberry shown in the context menu is *very* much in your face, so use the grey version instead # the big strawberry shown in the context menu is *very* much in your face, so use the grey version instead
@ -64,6 +67,7 @@ stdenv.mkDerivation rec {
fftw fftw
gnutls gnutls
libcdio libcdio
libebur128
libidn2 libidn2
libmtp libmtp
libpthreadstubs libpthreadstubs
@ -89,7 +93,7 @@ stdenv.mkDerivation rec {
gst-plugins-good gst-plugins-good
gst-plugins-bad gst-plugins-bad
gst-plugins-ugly gst-plugins-ugly
]) ++ lib.optional withVlc libvlc; ]) ++ optionals withVlc [ libvlc ];
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
@ -101,13 +105,15 @@ stdenv.mkDerivation rec {
util-linux util-linux
]; ];
postInstall = lib.optionalString withGstreamer '' postInstall = optionalString withGstreamer ''
qtWrapperArgs+=( qtWrapperArgs+=(
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
--prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules" --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules"
) )
''; '';
passthru.updateScript = nix-update-script { };
meta = with lib; { meta = with lib; {
description = "Music player and music collection organizer"; description = "Music player and music collection organizer";
homepage = "https://www.strawberrymusicplayer.org/"; homepage = "https://www.strawberrymusicplayer.org/";

View File

@ -6,19 +6,19 @@
buildGoModule rec { buildGoModule rec {
pname = "optimism"; pname = "optimism";
version = "1.1.6"; version = "1.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ethereum-optimism"; owner = "ethereum-optimism";
repo = "optimism"; repo = "optimism";
rev = "op-node/v${version}"; rev = "op-node/v${version}";
hash = "sha256-kzJ2zV4Iz3LqrVrs6mluiXluFqFaftycHhOAE8m0vns="; hash = "sha256-fg63J1qgsQOTCLHgEWSI6ZxNf9XIPq+aYCumJ/FEx/s=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
subPackages = [ "op-node/cmd" "op-proposer/cmd" "op-batcher/cmd" ]; subPackages = [ "op-node/cmd" "op-proposer/cmd" "op-batcher/cmd" ];
vendorHash = "sha256-6ChcT8rgyxiory//EHNA0Q0AZRhUIDpe1pmVeQ66gA4="; vendorHash = "sha256-9mLS44wzPslPfa+QwBg05+QSL6F0c8fcev1VOI9VPE4=";
buildInputs = [ buildInputs = [
libpcap libpcap

View File

@ -8,13 +8,13 @@
buildGoModule rec { buildGoModule rec {
pname = "op-geth"; pname = "op-geth";
version = "1.101305.1"; version = "1.101305.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ethereum-optimism"; owner = "ethereum-optimism";
repo = "op-geth"; repo = "op-geth";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-4dsHYyoCkGGu68PiLw37y5yN5kNHroMruIIbnxl4uJE="; hash = "sha256-AKVwwvt77FZlm7089EeayYVRYLo7c3v6LFVpsQN68Zk=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -33,7 +33,7 @@ buildGoModule rec {
"cmd/utils" "cmd/utils"
]; ];
vendorHash = "sha256-lTkbdzRuWqgFl/8N0v9jH8+pVM2k87a/cQF22DqiAIE="; vendorHash = "sha256-pcIydpKWZt3vwShwzGlPKGq+disdxYFOB8gxHou3mVU=";
# Fix for usb-related segmentation faults on darwin # Fix for usb-related segmentation faults on darwin
propagatedBuildInputs = propagatedBuildInputs =

View File

@ -15,13 +15,13 @@ let
in { in {
nightly = qt6Packages.callPackage ./generic.nix rec { nightly = qt6Packages.callPackage ./generic.nix rec {
pname = "citra-nightly"; pname = "citra-nightly";
version = "2070"; version = "2088";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "citra-emu"; owner = "citra-emu";
repo = "citra-nightly"; repo = "citra-nightly";
rev = "nightly-${version}"; rev = "nightly-${version}";
sha256 = "1rmc7dk7wzmxgkq7xsmx9wscszhcfr3mkvnykwgamrcb9bm8p5rb"; sha256 = "0l9w4i0zbafcv2s6pd1zqb11vh0i7gzwbqnzlz9al6ihwbsgbj3k";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -30,13 +30,13 @@ in {
canary = qt6Packages.callPackage ./generic.nix rec { canary = qt6Packages.callPackage ./generic.nix rec {
pname = "citra-canary"; pname = "citra-canary";
version = "2740"; version = "2766";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "citra-emu"; owner = "citra-emu";
repo = "citra-canary"; repo = "citra-canary";
rev = "canary-${version}"; rev = "canary-${version}";
sha256 = "0m11xy0ad9sy7zsnwnb7vad3g0g78v747a1abp612ybg0aczwf9l"; sha256 = "1gm3ajphpzwhm3qnchsx77jyl51za8yw3r0j0h8idf9y1ilcjvi4";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View File

@ -1,30 +1,30 @@
{ lib, stdenv, fetchFromGitHub, lazarus, fpc, pango, cairo, glib { lib, stdenv, fetchFromGitHub, lazarus, fpc, pango, cairo, glib
, atk, gtk2, libX11, gdk-pixbuf, busybox, python3, makeWrapper }: , atk, gtk2, libX11, gdk-pixbuf, busybox, python3
, makeWrapper
with stdenv; }:
let let
bgrabitmap = fetchFromGitHub { bgrabitmap = fetchFromGitHub {
owner = "bgrabitmap"; owner = "bgrabitmap";
repo = "bgrabitmap"; repo = "bgrabitmap";
rev = "v11.5.3"; rev = "2814b069d55f726b9f3b4774d85d00dd72be9c05";
sha256 = "sha256-qjBD9TVZQy1tKWHFWkuu6vdLjASzQb3+HRy0FLdd9a8="; hash = "sha256-YibwdhlgjgI30gqYsKchgDPlOSpBiDBDJNlUDFMygGs=";
}; };
bgracontrols = fetchFromGitHub { bgracontrols = fetchFromGitHub {
owner = "bgrabitmap"; owner = "bgrabitmap";
repo = "bgracontrols"; repo = "bgracontrols";
rev = "v7.6"; rev = "v8.0";
sha256 = "sha256-btg9DMdYg+C8h0H7MU+uoo2Kb4OeLHoxFYHAv7LbLBA="; hash = "sha256-5L05eGVN+xncd0/0XLFN6EL2ux4aAOsiU0BMoy0dKgg=";
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "lazpaint"; pname = "lazpaint";
version = "7.2.2"; version = "7.2.2-unstable-2024-01-20";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bgrabitmap"; owner = "bgrabitmap";
repo = "lazpaint"; repo = "lazpaint";
rev = "v${version}"; rev = "fe54c2e2561c51218a5a2755842ce3fc2e0ebb35";
sha256 = "sha256-J6s0GnGJ7twEYW5+B72bB3EX4AYvLnhSPLbdhZWzlkw="; hash = "sha256-LaOTJiS+COJUlyJiN9H2kEKwv5lbJqOHsUXOnb+IQFA=";
}; };
nativeBuildInputs = [ lazarus fpc makeWrapper ]; nativeBuildInputs = [ lazarus fpc makeWrapper ];
@ -49,23 +49,16 @@ in stdenv.mkDerivation rec {
lazpaint/lazpaint.lpi lazpaint/lazpaint.lpi
''; '';
installPhase = '' postBuild = ''
# Reuse existing install script
substituteInPlace Makefile --replace "/bin/bash" $BASH
cd lazpaint/release/debian
substituteInPlace makedeb.sh --replace "rm -rf" "ls"
patchShebangs ./makedeb.sh
PATH=$PATH:${busybox}/bin ./makedeb.sh
cp -r staging/usr $out
# Python is needed for scripts # Python is needed for scripts
makeWrapper $out/share/lazpaint/lazpaint $out/bin/lazpaint \ wrapProgram $out/bin/lazpaint \
--prefix PATH : ${lib.makeBinPath [ python3 ]} --prefix PATH : ${lib.makeBinPath [ python3 ]}
''; '';
meta = with lib; { meta = with lib; {
description = "Image editor like PaintBrush or Paint.Net"; description = "Image editor like PaintBrush or Paint.Net";
homepage = "https://sourceforge.net/projects/lazpaint/"; homepage = "https://lazpaint.github.io";
downloadPage = "https://github.com/bgrabitmap/lazpaint/";
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];

View File

@ -13,6 +13,15 @@ buildGoModule rec {
vendorHash = "sha256-6b4H8YAY8d/qIGnnGPYZoXne1LXHLsc0OEq0lCeqivo="; vendorHash = "sha256-6b4H8YAY8d/qIGnnGPYZoXne1LXHLsc0OEq0lCeqivo=";
patches = [
./go120-compatibility.patch
];
postPatch = ''
# fails on sandbox
rm commands/root_test.go
'';
ldflags = [ ldflags = [
"-s" "-w" "-s" "-w"
"-X github.com/giantswarm/gsctl/buildinfo.Version=${version}" "-X github.com/giantswarm/gsctl/buildinfo.Version=${version}"

View File

@ -0,0 +1,21 @@
--- a/client/clienterror/matcher.go
+++ b/client/clienterror/matcher.go
@@ -2,6 +2,7 @@ package clienterror
import (
"crypto/x509"
+ "errors"
"net/http"
"github.com/giantswarm/microerror"
@@ -101,9 +102,7 @@ func IsServiceUnavailableError(err error) bool {
// a x509.UnknownAuthorityError
func IsCertificateSignedByUnknownAuthorityError(err error) bool {
if clientErr, ok := err.(*APIError); ok {
- if _, certErrorOK := clientErr.OriginalError.(x509.UnknownAuthorityError); certErrorOK {
- return true
- }
+ return errors.As(clientErr.OriginalError, &x509.UnknownAuthorityError{})
}
return false

View File

@ -9,13 +9,13 @@
buildGoModule rec { buildGoModule rec {
pname = "mob"; pname = "mob";
version = "4.4.6"; version = "4.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "remotemobprogramming"; owner = "remotemobprogramming";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-UunFfP0Rn4t8lSJiubbqZ0bImK9OhIdC0gSGbkg6Ohw="; sha256 = "sha256-uFtE7AprM/ye2sBQeszYy07RV7RmmqD9TGcTTuZwOfY=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -1,19 +1,28 @@
{ lib, fetchurl, stdenv, undmg }: { lib, fetchurl, stdenv, _7zz }:
# This cannot be built from source due to the problematic nature of XCode - so # This cannot be built from source due to the problematic nature of XCode - so
# this is what it's like when doves cry? # this is what it's like when doves cry?
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "MonitorControl"; pname = "MonitorControl";
version = "4.1.0"; version = "4.2.0";
src = fetchurl { src = fetchurl {
url = url =
"https://github.com/MonitorControl/${pname}/releases/download/v${version}/MonitorControl.${version}.dmg"; "https://github.com/MonitorControl/${pname}/releases/download/v${version}/MonitorControl.${version}.dmg";
sha256 = "iaxM9j78Sq1EH5TCY240N+D5bG6quk2dZj8T7nt9ATo="; sha256 = "Q96uK6wVe1D2uLvWL+pFR6LcmrU7cgmr2Y5tPvvTDgI=";
}; };
nativeBuildInputs = [ undmg ]; # MonitorControl.${version}.dmg is APFS formatted, unpack with 7zz
unpackCmd = ''
runHook preUnpack
7zz x $src
runHook postUnpack
'';
nativeBuildInputs = [ _7zz ];
sourceRoot = "MonitorControl.app"; sourceRoot = "MonitorControl.app";
@ -27,7 +36,7 @@ stdenv.mkDerivation rec {
longDescription = "Controls your external display brightness and volume and shows native OSD. Use menulet sliders or the keyboard, including native Apple keys!"; longDescription = "Controls your external display brightness and volume and shows native OSD. Use menulet sliders or the keyboard, including native Apple keys!";
homepage = "https://github.com/MonitorControl/MonitorControl#readme"; homepage = "https://github.com/MonitorControl/MonitorControl#readme";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ cbleslie ]; maintainers = with maintainers; [ cbleslie cottand ];
platforms = platforms.darwin; platforms = platforms.darwin;
}; };
} }

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "restream"; pname = "restream";
version = "1.2.0"; version = "1.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rien"; owner = "rien";
repo = pname; repo = pname;
rev = version; rev = "v${version}";
sha256 = "0vyj0kng8c9inv2rbw1qdr43ic15s5x8fvk9mbw0vpc6g723x99g"; hash = "sha256-AXHKOfdIM3LsHF6u3M/lMhhcuPZADoEal7de3zlx7L4=";
}; };
dontConfigure = true; dontConfigure = true;

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "ttyper"; pname = "ttyper";
version = "1.4.0"; version = "1.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "max-niederman"; owner = "max-niederman";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-kMJcZ9U2pUXFza66fpK07IHbRc5ZQ49+bytgty94o/s="; hash = "sha256-IvAx65b2rGsMdDUhRxTx8cyqnG7oxC+MseCFIJil1e0=";
}; };
cargoHash = "sha256-pmPT8GREXKun5uyGx+b6IATp/cKziZTL7YcYwKEo/NU="; cargoHash = "sha256-o3J2bEAV5NnWKFadJdSGTqUS8K2qpBKPQz6xAbfLtg4=";
meta = with lib; { meta = with lib; {
description = "Terminal-based typing test"; description = "Terminal-based typing test";

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "tui-journal"; pname = "tui-journal";
version = "0.8.1"; version = "0.8.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "AmmarAbouZor"; owner = "AmmarAbouZor";
repo = "tui-journal"; repo = "tui-journal";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-1cCtWhWOzCezi29oQsa0L1LTIb87ITaJk0teDP2xV78="; hash = "sha256-qHNB+jRLQoiHPuTblpCHg2+6e5j8W6YPsuygRlTidtE=";
}; };
cargoHash = "sha256-uWxzJONzRDeZVuilpEj4KprF3PtjRhJk8C9zjs5yCvg="; cargoHash = "sha256-T+fXSca1u9+c305yuKOF+soxnSZ1YbBs57wco5TLpQw=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View File

@ -15,6 +15,7 @@
, gnome , gnome
, gsettings-desktop-schemas , gsettings-desktop-schemas
, gtk3 , gtk3
, gtk4
, libX11 , libX11
, libXScrnSaver , libXScrnSaver
, libXcomposite , libXcomposite
@ -71,7 +72,7 @@ let
deps = [ deps = [
alsa-lib at-spi2-atk at-spi2-core atk cairo cups dbus expat alsa-lib at-spi2-atk at-spi2-core atk cairo cups dbus expat
fontconfig freetype gdk-pixbuf glib gtk3 libdrm libX11 libGL fontconfig freetype gdk-pixbuf glib gtk3 gtk4 libdrm libX11 libGL
libxkbcommon libXScrnSaver libXcomposite libXcursor libXdamage libxkbcommon libXScrnSaver libXcomposite libXcursor libXdamage
libXext libXfixes libXi libXrandr libXrender libxshmfence libXext libXfixes libXi libXrandr libXrender libxshmfence
libXtst libuuid mesa nspr nss pango pipewire udev wayland libXtst libuuid mesa nspr nss pango pipewire udev wayland
@ -111,7 +112,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
# needed for GSETTINGS_SCHEMAS_PATH # needed for GSETTINGS_SCHEMAS_PATH
glib gsettings-desktop-schemas gtk3 glib gsettings-desktop-schemas gtk3 gtk4
# needed for XDG_ICON_DIRS # needed for XDG_ICON_DIRS
gnome.adwaita-icon-theme gnome.adwaita-icon-theme

View File

@ -238,16 +238,9 @@ let
}) })
] ++ lib.optionals (chromiumVersionAtLeast "121") [ ] ++ lib.optionals (chromiumVersionAtLeast "121") [
# M121 is the first version to require the new rust toolchain. # M121 is the first version to require the new rust toolchain.
# But we don't have that ready yet. # Partial revert of https://github.com/chromium/chromium/commit/3687976b0c6d36cf4157419a24a39f6770098d61
# So we have to revert the singular commit that requires rust toolchain. # allowing us to use our rustc and our clang.
# This works, because the code in question, the QR code generator, is present in ./patches/chromium-121-rust.patch
# two variants: c++ and rust. This workaround will not last.
# The c++ variant in question is deemed to be removed in a month (give or take).
(githubPatch {
revert = true;
commit = "bcf739b95713071687ff25010683248de0092f6a";
hash = "sha256-1ZPe45cc2bjnErcF3prbLMlYpU7kpuwDVcjewINQr+Q=";
})
]; ];
postPatch = '' postPatch = ''
@ -412,11 +405,15 @@ let
# (ld.lld: error: unable to find library -l:libffi_pic.a): # (ld.lld: error: unable to find library -l:libffi_pic.a):
use_system_libffi = true; use_system_libffi = true;
# Use nixpkgs Rust compiler instead of the one shipped by Chromium. # Use nixpkgs Rust compiler instead of the one shipped by Chromium.
# We do intentionally not set rustc_version as nixpkgs will never do incremental
# rebuilds, thus leaving this empty is fine.
rust_sysroot_absolute = "${buildPackages.rustc}"; rust_sysroot_absolute = "${buildPackages.rustc}";
# Building with rust is disabled for now - this matches the flags in other major distributions. # Rust is enabled for M121+, see next section:
enable_rust = false; enable_rust = false;
} // lib.optionalAttrs (chromiumVersionAtLeast "121") {
# M121 the first version to actually require a functioning rust toolchain
enable_rust = true;
# While we technically don't need the cache-invalidation rustc_version provides, rustc_version
# is still used in some scripts (e.g. build/rust/std/find_std_rlibs.py).
rustc_version = buildPackages.rustc.version;
} // lib.optionalAttrs (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) { } // lib.optionalAttrs (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) {
# https://www.mail-archive.com/v8-users@googlegroups.com/msg14528.html # https://www.mail-archive.com/v8-users@googlegroups.com/msg14528.html
arm_control_flow_integrity = "none"; arm_control_flow_integrity = "none";
@ -431,6 +428,13 @@ let
} // lib.optionalAttrs ungoogled (lib.importTOML ./ungoogled-flags.toml) } // lib.optionalAttrs ungoogled (lib.importTOML ./ungoogled-flags.toml)
// (extraAttrs.gnFlags or {})); // (extraAttrs.gnFlags or {}));
# We cannot use chromiumVersionAtLeast in mkDerivation's env attrset due
# to infinite recursion when chromium.override is used (e.g. electron).
# To work aroud this, we use export in the preConfigure phase.
preConfigure = lib.optionalString (chromiumVersionAtLeast "121") ''
export RUSTC_BOOTSTRAP=1
'';
configurePhase = '' configurePhase = ''
runHook preConfigure runHook preConfigure

View File

@ -0,0 +1,19 @@
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1629,16 +1629,6 @@
configs += [ "//build/config/c++:runtime_library" ]
}
- # Rust and C++ both provide intrinsics for LLVM to call for math operations. We
- # want to use the C++ intrinsics, not the ones in the Rust compiler_builtins
- # library. The Rust symbols are marked as weak, so that they can be replaced by
- # the C++ symbols. This config ensures the C++ symbols exist and are strong in
- # order to cause that replacement to occur by explicitly linking in clang's
- # compiler-rt library.
- if (is_clang && toolchain_has_rust) {
- configs += [ "//build/config/clang:compiler_builtins" ]
- }
-
# TODO(crbug.com/830987): Come up with a better name for is POSIX + Fuchsia
# configuration.
if (is_posix || is_fuchsia) {

View File

@ -15,9 +15,9 @@
version = "2023-11-28"; version = "2023-11-28";
}; };
}; };
hash = "sha256-2TMTLCqoCxdy9PDlZIUa/5oXjmim1T2/LJu+3/Kf4fQ="; hash = "sha256-pZHa4YSJ4rK24f7dNUFeoyf6nDSQeY4MTR81YzPKCtQ=";
hash_deb_amd64 = "sha256-9vPQAiZPw60oILm0He4Iz9lOc+WvtHCBE9CHA1ejc7s="; hash_deb_amd64 = "sha256-cMoYBCuOYzXS7OzFvvBfSL80hBY/PcEv9kWGSx3mCKw=";
version = "121.0.6167.85"; version = "121.0.6167.139";
}; };
ungoogled-chromium = { ungoogled-chromium = {
deps = { deps = {
@ -28,12 +28,12 @@
version = "2023-11-28"; version = "2023-11-28";
}; };
ungoogled-patches = { ungoogled-patches = {
hash = "sha256-Fopr+SiezOs3w52juXvMyfxOAzrVXrRO8j0744oeO5k="; hash = "sha256-W13YPijmdakEJiUd9iKH3V9LcKvL796QlyTrAb+yLMQ=";
rev = "223fe76bb263a216341739ce2ee333752642cf47"; rev = "121.0.6167.139-1";
}; };
}; };
hash = "sha256-2TMTLCqoCxdy9PDlZIUa/5oXjmim1T2/LJu+3/Kf4fQ="; hash = "sha256-pZHa4YSJ4rK24f7dNUFeoyf6nDSQeY4MTR81YzPKCtQ=";
hash_deb_amd64 = "sha256-9vPQAiZPw60oILm0He4Iz9lOc+WvtHCBE9CHA1ejc7s="; hash_deb_amd64 = "sha256-cMoYBCuOYzXS7OzFvvBfSL80hBY/PcEv9kWGSx3mCKw=";
version = "121.0.6167.85"; version = "121.0.6167.139";
}; };
} }

View File

@ -7,19 +7,19 @@
((buildMozillaMach rec { ((buildMozillaMach rec {
pname = "floorp"; pname = "floorp";
packageVersion = "11.7.1"; packageVersion = "11.8.2";
applicationName = "Floorp"; applicationName = "Floorp";
binaryName = "floorp"; binaryName = "floorp";
# Must match the contents of `browser/config/version.txt` in the source tree # Must match the contents of `browser/config/version.txt` in the source tree
version = "115.6.0"; version = "115.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Floorp-Projects"; owner = "Floorp-Projects";
repo = "Floorp"; repo = "Floorp";
fetchSubmodules = true; fetchSubmodules = true;
rev = "v${packageVersion}"; rev = "v${packageVersion}";
hash = "sha256-1GxWqibUR10gz0TjQuCtFntlxoNkq4CY5Yt/4FcIDDQ="; hash = "sha256-bEHl+0MzvQNMCxOjBuFx92gwNr0spVA+on0znBUIhz0=";
}; };
extraConfigureFlags = [ extraConfigureFlags = [

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "civo"; pname = "civo";
version = "1.0.72"; version = "1.0.73";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "civo"; owner = "civo";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-UK/vxfasiRzU0WTLKPkGJSkOX0vpDy1OUwGyTmEwsB0="; sha256 = "sha256-rLT4HvA0GjbZyiaiXFnG2iBK7O3S94wJL4jrkcFADFc=";
}; };
vendorHash = "sha256-uKssj80EkuFS9UB0EZxEf7ZYk4hlnrKD5QKJnRMwV4o="; vendorHash = "sha256-oqitgYSL7nf2Lyne0c2vHOSOEG5uHPH9+3lgiROK2Yc=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kubedb-cli"; pname = "kubedb-cli";
version = "0.40.1"; version = "0.41.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubedb"; owner = "kubedb";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-GGZjqXw0Fi5QdQjVrw//sDVA8oRKADCwHeRY22z7bko="; sha256 = "sha256-P4B5N2hIDTYtrHk86n3MCvy6IXlDyAUc1wFhXmEkQFA=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kubergrunt"; pname = "kubergrunt";
version = "0.14.1"; version = "0.14.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gruntwork-io"; owner = "gruntwork-io";
repo = "kubergrunt"; repo = "kubergrunt";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-bPZZzvbHynW0FtfmE78agBDADmCyBS2a4E/K+tJHkQY="; sha256 = "sha256-r2lx+R/TQxD/miCJK3V//N3gKiCrg/mneT9BS+ZqRiU=";
}; };
vendorHash = "sha256-K24y41qpuyBHqljUAtNQu3H8BNqznxYOsvEVo+57OtY="; vendorHash = "sha256-K24y41qpuyBHqljUAtNQu3H8BNqznxYOsvEVo+57OtY=";

View File

@ -2,7 +2,7 @@
callPackage ./generic.nix {} rec { callPackage ./generic.nix {} rec {
pname = "signal-desktop-beta"; pname = "signal-desktop-beta";
dir = "Signal Beta"; dir = "Signal Beta";
version = "6.44.0-beta.1"; version = "6.47.0-beta.1";
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
hash = "sha256-SW/br1k7lO0hQngST0qV9Qol1hA9f1NZe86A5uyYhcI="; hash = "sha256-9vbdWdV8dVFyxDMGLvE/uQKeSl+ze5agI5QYZMr84/w=";
} }

View File

@ -2,15 +2,15 @@
buildGoModule rec { buildGoModule rec {
pname = "ipfs-cluster"; pname = "ipfs-cluster";
version = "1.0.7"; version = "1.0.8";
vendorHash = "sha256-/Kjm/hM+lKsZ6fzStDyOitp7Vtt7Vb8ak7E/W0lbW20="; vendorHash = "sha256-uwDXUy9mh/DvLuwj8Htm55wla5/JjvZH5ztJbqnox+U=";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ipfs-cluster"; owner = "ipfs-cluster";
repo = "ipfs-cluster"; repo = "ipfs-cluster";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-eBbbD77nnjcumhrsixAlI09B1ZAxK5IOHoBeJGgj+TY="; hash = "sha256-qZUoYJjw3Qac7Kmg5PfNWTDM8Ra3rqrbjScLbK6FRx4=";
}; };
meta = with lib; { meta = with lib; {

View File

@ -20,13 +20,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "meteo"; pname = "meteo";
version = "0.9.9.2"; version = "0.9.9.3";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "bitseater"; owner = "bitseater";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-9+FNpLjiX0zdsUnbBnNSLt/Ma/cqtclP25tl+faPlpU="; sha256 = "sha256-hubKusrs0Hh8RryoEI29pnhTSNsIbtGMltlH4qoM6gE=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -27,11 +27,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "PortfolioPerformance"; pname = "PortfolioPerformance";
version = "0.67.2"; version = "0.67.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz"; url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
hash = "sha256-YmbnV5/wwaDiuDUTx00sIdbVgtqD8vtvpTNFxXutP3U="; hash = "sha256-WqWrerEBaaXA9vhpVHEyMZdAxajeOPANFyUeK42cXUU=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -7,6 +7,7 @@
, perl , perl
, blas , blas
, lapack , lapack
, llvmPackages
, mpi , mpi
, cudaPackages , cudaPackages
, plumed , plumed
@ -77,7 +78,7 @@ in stdenv.mkDerivation rec {
cudaPackages.cuda_cudart cudaPackages.cuda_cudart
cudaPackages.libcufft cudaPackages.libcufft
cudaPackages.cuda_profiler_api cudaPackages.cuda_profiler_api
]; ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp;
propagatedBuildInputs = lib.optional enableMpi mpi; propagatedBuildInputs = lib.optional enableMpi mpi;
propagatedUserEnvPkgs = lib.optional enableMpi mpi; propagatedUserEnvPkgs = lib.optional enableMpi mpi;

View File

@ -61,12 +61,17 @@ let
rustPlatform.bindgenHook rustPlatform.bindgenHook
]; ];
disallowedReferences = [
rustc.unwrapped
];
preInstall = '' preInstall = ''
export CARGO_HOME="$PWD/../.cargo/" export CARGO_HOME="$PWD/../.cargo/"
''; '';
postInstall = '' postInstall = ''
mv -v $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib/{glfm_markdown/glfm_markdown.so,} mv -v $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib/{glfm_markdown/glfm_markdown.so,}
find $out -type f -name .rustc_info.json -delete
''; '';
}; };
}; };

View File

@ -4,19 +4,19 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "stremio-shell"; pname = "stremio-shell";
version = "4.4.142"; version = "4.4.165";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Stremio"; owner = "Stremio";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "sha256-OyuTFmEIC8PH4PDzTMn8ibLUAzJoPA/fTILee0xpgQI="; sha256 = "sha256-Gky0/HaGm11PeV4twoQV71T99NG2o0mYzQxu/c9x5oE=";
}; };
server = fetchurl { server = fetchurl {
url = "https://s3-eu-west-1.amazonaws.com/stremio-artifacts/four/v${version}/server.js"; url = "https://s3-eu-west-1.amazonaws.com/stremio-artifacts/four/v${version}/server.js";
sha256 = "sha256-YYeD3SEbLgNQHGP5AI9WiHUU6xLkTeFAqYIuWsIsYSs="; sha256 = "sha256-52Pg0PrV15arGqhD3rXYCl1J6kcoL+/BHRvgiQBO/OA=";
}; };
buildInputs = [ qtwebengine mpv ]; buildInputs = [ qtwebengine mpv ];

View File

@ -62,13 +62,13 @@ let
in in
buildGoModule rec { buildGoModule rec {
pname = "podman"; pname = "podman";
version = "4.9.0"; version = "4.9.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containers"; owner = "containers";
repo = "podman"; repo = "podman";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-ygYBSZdxpE3HrFz585p7NFgHHSAfxAce/fFCQ7fcvgk="; hash = "sha256-G5LTxBzBn+JFQzhzpsphqTcqq5bi+WjmjsOtJvSxO3k=";
}; };
patches = [ patches = [

View File

@ -14,13 +14,13 @@
buildGoModule rec { buildGoModule rec {
pname = "runc"; pname = "runc";
version = "1.1.11"; version = "1.1.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "opencontainers"; owner = "opencontainers";
repo = "runc"; repo = "runc";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-3LZWidINg15Aqoswml/BY7ZmLvz0XsbtYV5Cx8h5lpM="; hash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0=";
}; };
vendorHash = null; vendorHash = null;

View File

@ -10,15 +10,19 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "youki"; pname = "youki";
version = "0.3.1"; version = "0.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containers"; owner = "containers";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-BZhg4VhJbAo6XO4w01zguodyr3KEbav+PON0aOmi2bI="; hash = "sha256-/cc+gHnakxC446MxErvgCDvc1gMWNi45h6fZ1Cd1Pj0=";
}; };
cargoPatches = [
./fix-cargo-lock.patch
];
nativeBuildInputs = [ pkg-config installShellFiles ]; nativeBuildInputs = [ pkg-config installShellFiles ];
buildInputs = [ dbus libseccomp systemd ]; buildInputs = [ dbus libseccomp systemd ];
@ -33,7 +37,7 @@ rustPlatform.buildRustPackage rec {
cargoBuildFlags = [ "-p" "youki" ]; cargoBuildFlags = [ "-p" "youki" ];
cargoTestFlags = [ "-p" "youki" ]; cargoTestFlags = [ "-p" "youki" ];
cargoHash = "sha256-IkL0gS3hht1XBnOy0YHO02vfw4sljtwfNImfojiLIE4="; cargoHash = "sha256-PKn448fOCnyMC42NtQnLt8kvZIBautsq4Fw/bRvwmpw=";
meta = with lib; { meta = with lib; {
description = "A container runtime written in Rust"; description = "A container runtime written in Rust";

View File

@ -0,0 +1,40 @@
diff --git a/Cargo.lock b/Cargo.lock
index cfef78c0..7cad3faa 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1879,7 +1879,7 @@ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
[[package]]
name = "libcgroups"
-version = "0.3.1"
+version = "0.3.2"
dependencies = [
"anyhow",
"clap",
@@ -1904,7 +1904,7 @@ dependencies = [
[[package]]
name = "libcontainer"
-version = "0.3.1"
+version = "0.3.2"
dependencies = [
"anyhow",
"bitflags 2.4.2",
@@ -1947,7 +1947,7 @@ dependencies = [
[[package]]
name = "liboci-cli"
-version = "0.3.1"
+version = "0.3.2"
dependencies = [
"clap",
]
@@ -5712,7 +5712,7 @@ dependencies = [
[[package]]
name = "youki"
-version = "0.3.1"
+version = "0.3.2"
dependencies = [
"anyhow",
"caps",

View File

@ -1,30 +1,51 @@
{ lib, stdenv, fetchurl, pkg-config { lib
, libX11, libXmu, libXpm, gtk2, libpng, libjpeg, libtiff, librsvg, gdk-pixbuf, gdk-pixbuf-xlib , stdenv
, fetchFromGitHub
, pkg-config
, libX11
, libXmu
, libXpm
, gtk2
, libpng
, libjpeg
, libtiff
, librsvg
, gdk-pixbuf
, gdk-pixbuf-xlib
, pypy2
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fbpanel"; pname = "fbpanel";
version = "6.1"; version = "7.0";
src = fetchurl { src = fetchFromGitHub {
url = "mirror://sourceforge/fbpanel/${pname}-${version}.tbz2"; owner = "aanatoly";
sha256 = "e14542cc81ea06e64dd4708546f5fd3f5e01884c3e4617885c7ef22af8cf3965"; repo = "fbpanel";
rev = "478754b687e2b48b111507ea22e8e2a001be5199";
hash = "sha256-+KcVcrh1aV6kjLGyiDnRHXSzJfelXWrhJS0DitG4yPA=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config pypy2 ];
buildInputs = buildInputs = [
[ libX11 libXmu libXpm gtk2 libpng libjpeg libtiff librsvg gdk-pixbuf gdk-pixbuf-xlib.dev ]; libX11
libXmu
libXpm
gtk2
libpng
libjpeg
libtiff
librsvg
gdk-pixbuf
gdk-pixbuf-xlib.dev
];
preConfigure = "patchShebangs ."; preConfigure = ''
sed -re '1i#!${pypy2}/bin/pypy' -i configure .config/*.py
postConfigure = '' sed -re 's/\<out\>/outputredirect/g' -i .config/rules.mk
substituteInPlace config.mk \ sed -i 's/struct\ \_plugin_instance \*stam\;//' panel/plugin.h
--replace "CFLAGSX =" "CFLAGSX = -I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"
''; '';
# Workaround build failure on -fno-common toolchains like upstream makeFlags = ["V=1"];
# gcc-10. Otherwise build fails as: NIX_CFLAGS_COMPILE = ["-Wno-error" "-I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"];
# ld: plugin.o:(.bss+0x0): multiple definition of `stam'; panel.o:(.bss+0x20): first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
NIX_LDFLAGS="-lX11";
meta = with lib; { meta = with lib; {
description = "A stand-alone panel"; description = "A stand-alone panel";
@ -34,9 +55,4 @@ stdenv.mkDerivation rec {
mainProgram = "fbpanel"; mainProgram = "fbpanel";
}; };
passthru = {
updateInfo = {
downloadPage = "fbpanel.sourceforge.net";
};
};
} }

View File

@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "miriway"; pname = "miriway";
version = "unstable-2024-01-26"; version = "unstable-2024-01-30";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Miriway"; owner = "Miriway";
repo = "Miriway"; repo = "Miriway";
rev = "d2c773d28adbbbc07bdbb3bb4ab74172fa231846"; rev = "429ace6c7d9ea6799a01875ff61f1e554d5eabd9";
hash = "sha256-eypHMFnnDOh87/VbZBunuLhfjilnJMNi+ZRvtWBmsyU="; hash = "sha256-8qsDyHbJJMxevMIi6Kde+zr2yJAtFaq19TTcAGXMnrE=";
}; };
strictDeps = true; strictDeps = true;

View File

@ -28,7 +28,11 @@ let
useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || (sparseCheckout != []); useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || (sparseCheckout != []);
# We prefer fetchzip in cases we don't need submodules as the hash # We prefer fetchzip in cases we don't need submodules as the hash
# is more stable in that case. # is more stable in that case.
fetcher = if useFetchGit then fetchgit else fetchzip.override { withUnzip = false; }; fetcher =
if useFetchGit then fetchgit
# fetchzip may not be overridable when using external tools, for example nix-prefetch
else if fetchzip ? override then fetchzip.override { withUnzip = false; }
else fetchzip;
privateAttrs = lib.optionalAttrs private { privateAttrs = lib.optionalAttrs private {
netrcPhase = '' netrcPhase = ''
if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then

View File

@ -152,19 +152,21 @@ rec {
, meta ? { } , meta ? { }
, allowSubstitutes ? false , allowSubstitutes ? false
, preferLocalBuild ? true , preferLocalBuild ? true
, derivationArgs ? { } # Extra arguments to pass to `stdenv.mkDerivation`
}: }:
let let
matches = builtins.match "/bin/([^/]+)" destination; matches = builtins.match "/bin/([^/]+)" destination;
in in
runCommand name runCommand name
{ ({
inherit text executable checkPhase allowSubstitutes preferLocalBuild; inherit text executable checkPhase allowSubstitutes preferLocalBuild;
passAsFile = [ "text" ]; passAsFile = [ "text" ]
++ derivationArgs.passAsFile or [ ];
meta = lib.optionalAttrs (executable && matches != null) meta = lib.optionalAttrs (executable && matches != null)
{ {
mainProgram = lib.head matches; mainProgram = lib.head matches;
} // meta; } // meta // derivationArgs.meta or {};
} } // removeAttrs derivationArgs [ "passAsFile" "meta" ])
'' ''
target=$out${lib.escapeShellArg destination} target=$out${lib.escapeShellArg destination}
mkdir -p "$(dirname "$target")" mkdir -p "$(dirname "$target")"
@ -238,53 +240,94 @@ rec {
meta.mainProgram = name; meta.mainProgram = name;
}; };
/* # See doc/build-helpers/trivial-build-helpers.chapter.md
Similar to writeShellScriptBin and writeScriptBin. # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing
Writes an executable Shell script to /nix/store/<store path>/bin/<name> and
checks its syntax with shellcheck and the shell's -n option.
Individual checks can be foregone by putting them in the excludeShellChecks
list, e.g. [ "SC2016" ].
Automatically includes sane set of shellopts (errexit, nounset, pipefail)
and handles creation of PATH based on runtimeInputs
Note that the checkPhase uses stdenv.shell for the test run of the script,
while the generated shebang uses runtimeShell. If, for whatever reason,
those were to mismatch you might lose fidelity in the default checks.
Example:
Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
writeShellApplication {
name = "my-file";
runtimeInputs = [ curl w3m ];
text = ''
curl -s 'https://nixos.org' | w3m -dump -T text/html
'';
}
*/
writeShellApplication = writeShellApplication =
{ name {
, text /*
, runtimeInputs ? [ ] The name of the script to write.
, meta ? { }
, checkPhase ? null Type: String
, excludeShellChecks ? [ ] */
name,
/*
The shell script's text, not including a shebang.
Type: String
*/
text,
/*
Inputs to add to the shell script's `$PATH` at runtime.
Type: [String|Derivation]
*/
runtimeInputs ? [ ],
/*
Extra environment variables to set at runtime.
Type: AttrSet
*/
runtimeEnv ? null,
/*
`stdenv.mkDerivation`'s `meta` argument.
Type: AttrSet
*/
meta ? { },
/*
The `checkPhase` to run. Defaults to `shellcheck` on supported
platforms and `bash -n`.
The script path will be given as `$target` in the `checkPhase`.
Type: String
*/
checkPhase ? null,
/*
Checks to exclude when running `shellcheck`, e.g. `[ "SC2016" ]`.
See <https://www.shellcheck.net/wiki/> for a list of checks.
Type: [String]
*/
excludeShellChecks ? [ ],
/*
Bash options to activate with `set -o` at the start of the script.
Defaults to `[ "errexit" "nounset" "pipefail" ]`.
Type: [String]
*/
bashOptions ? [ "errexit" "nounset" "pipefail" ],
/* Extra arguments to pass to `stdenv.mkDerivation`.
:::{.caution}
Certain derivation attributes are used internally,
overriding those could cause problems.
:::
Type: AttrSet
*/
derivationArgs ? { },
}: }:
writeTextFile { writeTextFile {
inherit name meta; inherit name meta derivationArgs;
executable = true; executable = true;
destination = "/bin/${name}"; destination = "/bin/${name}";
allowSubstitutes = true; allowSubstitutes = true;
preferLocalBuild = false; preferLocalBuild = false;
text = '' text = ''
#!${runtimeShell} #!${runtimeShell}
set -o errexit ${lib.concatMapStringsSep "\n" (option: "set -o ${option}") bashOptions}
set -o nounset '' + lib.optionalString (runtimeEnv != null)
set -o pipefail (lib.concatStrings
'' + lib.optionalString (runtimeInputs != [ ]) '' (lib.mapAttrsToList
(name: value: ''
${lib.toShellVar name value}
export ${name}
'')
runtimeEnv))
+ lib.optionalString (runtimeInputs != [ ]) ''
export PATH="${lib.makeBinPath runtimeInputs}:$PATH" export PATH="${lib.makeBinPath runtimeInputs}:$PATH"
'' + '' '' + ''

View File

@ -1,29 +1,141 @@
/* # Run with:
Run with: # nix-build -A tests.trivial-builders.writeShellApplication
{ writeShellApplication
cd nixpkgs , writeTextFile
nix-build -A tests.trivial-builders.writeShellApplication , runCommand
*/ , lib
, linkFarm
{ lib, writeShellApplication, runCommand }: , diffutils
, hello
}:
let let
pkg = writeShellApplication { checkShellApplication = args@{name, expected, ...}:
name = "test-script"; let
writeShellApplicationArgs = builtins.removeAttrs args ["expected"];
script = writeShellApplication writeShellApplicationArgs;
executable = lib.getExe script;
expected' = writeTextFile {
name = "${name}-expected";
text = expected;
};
actual = "${name}-actual";
in
runCommand name { } ''
echo "Running test executable ${name}"
${executable} > ${actual}
echo "Got output from test executable:"
cat ${actual}
echo "Checking test output against expected output:"
${diffutils}/bin/diff --color --unified ${expected'} ${actual}
touch $out
'';
in
linkFarm "writeShellApplication-tests" {
test-meta =
let
script = writeShellApplication {
name = "test-meta";
text = "";
meta.description = "A test for the `writeShellApplication` `meta` argument.";
};
in
assert script.meta.mainProgram == "test-meta";
assert script.meta.description == "A test for the `writeShellApplication` `meta` argument.";
script;
test-runtime-inputs =
checkShellApplication {
name = "test-runtime-inputs";
text = ''
hello
'';
runtimeInputs = [ hello ];
expected = "Hello, world!\n";
};
test-runtime-env =
checkShellApplication {
name = "test-runtime-env";
runtimeEnv = {
MY_COOL_ENV_VAR = "my-cool-env-value";
MY_OTHER_COOL_ENV_VAR = "my-other-cool-env-value";
# Check that we can serialize a bunch of different types:
BOOL = true;
INT = 1;
LIST = [1 2 3];
MAP = {
a = "a";
b = "b";
};
};
text = ''
echo "$MY_COOL_ENV_VAR"
echo "$MY_OTHER_COOL_ENV_VAR"
'';
expected = ''
my-cool-env-value
my-other-cool-env-value
'';
};
test-check-phase =
checkShellApplication {
name = "test-check-phase";
text = "";
checkPhase = ''
echo "echo -n hello" > $target
'';
expected = "hello";
};
test-argument-forwarding =
checkShellApplication {
name = "test-argument-forwarding";
text = "";
derivationArgs.MY_BUILD_TIME_VARIABLE = "puppy";
derivationArgs.postCheck = ''
if [[ "$MY_BUILD_TIME_VARIABLE" != puppy ]]; then
echo "\$MY_BUILD_TIME_VARIABLE is not set to 'puppy'!"
exit 1
fi
'';
meta.description = "A test checking that `writeShellApplication` forwards extra arguments to `stdenv.mkDerivation`.";
expected = "";
};
test-exclude-shell-checks = writeShellApplication {
name = "test-exclude-shell-checks";
excludeShellChecks = [ "SC2016" ]; excludeShellChecks = [ "SC2016" ];
text = '' text = ''
echo -e '#!/usr/bin/env bash\n' \ # Triggers SC2016: Expressions don't expand in single quotes, use double
'echo "$SHELL"' > /tmp/something.sh # this line would normally # quotes for that.
# ...cause shellcheck error echo '$SHELL'
''; '';
}; };
in
assert pkg.meta.mainProgram == "test-script";
runCommand "test-writeShellApplication" { } ''
echo Testing if writeShellApplication builds without shellcheck error... test-bash-options-pipefail = checkShellApplication {
name = "test-bash-options-pipefail";
text = ''
touch my-test-file
echo puppy | grep doggy | sed 's/doggy/puppy/g'
# ^^^^^^^^^^ This will fail.
true
'';
# Don't use `pipefail`:
bashOptions = ["errexit" "nounset"];
expected = "";
};
target=${lib.getExe pkg} test-bash-options-nounset = checkShellApplication {
name = "test-bash-options-nounset";
touch $out text = ''
'' echo -n "$someUndefinedVariable"
'';
# Don't use `nounset`:
bashOptions = [];
# Don't warn about the undefined variable at build time:
excludeShellChecks = [ "SC2154" ];
expected = "";
};
}

View File

@ -12,11 +12,11 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "alsa-tools"; pname = "alsa-tools";
version = "1.2.5"; version = "1.2.11";
src = fetchurl { src = fetchurl {
url = "mirror://alsa/tools/alsa-tools-${finalAttrs.version}.tar.bz2"; url = "mirror://alsa/tools/alsa-tools-${finalAttrs.version}.tar.bz2";
hash = "sha256-NacQJ6AfTX3kci4iNSDpQN5os8VwtsZxaRVnrij5iT4="; hash = "sha256-CRXJY0pQL9NlXKnFdNJZvJ55mD2R1Frqz/bzwA+K4+k=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -0,0 +1,36 @@
{ lib,
appimageTools,
fetchurl,
}:
let
pname = "alvr";
version = "20.6.1";
src = fetchurl {
url = "https://github.com/alvr-org/ALVR/releases/download/v${version}/ALVR-x86_64.AppImage";
hash = "sha256-IYw3D18xUGWiFu74c4d8d4tohZztAD6mmZCYsDNxR+A=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
mv $out/bin/alvr-${version} $out/bin/alvr
install -Dm444 ${appimageContents}/alvr.desktop -t $out/share/applications
substituteInPlace $out/share/applications/alvr.desktop \
--replace 'Exec=alvr_dashboard' 'Exec=alvr'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
meta = with lib; {
description = "Stream VR games from your PC to your headset via Wi-Fi";
homepage = "https://github.com/alvr-org/ALVR/";
changelog = "https://github.com/alvr-org/ALVR/releases/tag/v${version}";
license = licenses.mit;
mainProgram = "alvr";
maintainers = with maintainers; [ passivelemon ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "ast-grep"; pname = "ast-grep";
version = "0.17.0"; version = "0.18.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ast-grep"; owner = "ast-grep";
repo = "ast-grep"; repo = "ast-grep";
rev = version; rev = version;
hash = "sha256-/lWvFYSE4gFbVPlJMROGcb86mVviGdh1tFAY74qTTX4="; hash = "sha256-hr6VAqBsv3szVClR93y5ickkrNKjvl6BfzqKA3zc6vM=";
}; };
cargoHash = "sha256-r1vfh2JtBjWFgXrijlFxPyRr8LRAIogiA2TZHI5MJRM="; cargoHash = "sha256-ttJMtaQfVnFj4/wUz4fn8X/EmUwW+usqhmWhy4Y0AB8=";
# Work around https://github.com/NixOS/nixpkgs/issues/166205. # Work around https://github.com/NixOS/nixpkgs/issues/166205.
env = lib.optionalAttrs stdenv.cc.isClang { env = lib.optionalAttrs stdenv.cc.isClang {

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-xwin"; pname = "cargo-xwin";
version = "0.16.3"; version = "0.16.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rust-cross"; owner = "rust-cross";
repo = "cargo-xwin"; repo = "cargo-xwin";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-3i/XlCuHjVBSH4XZR5M457H+kheKZoJXlwqRwPhSnCM="; hash = "sha256-nJgy9KoqrCD4NGFOJMN9f1XDyIrZ0a5WHTRX6G/+tnU=";
}; };
cargoHash = "sha256-yKoUcrAZy66qahDvRgOnbJmXuUXDjDBTGt2p5gXjVyI="; cargoHash = "sha256-JCCL/QV1DjmXTY3UChZ4BfA9VSyOTQLIfh6DSF/kIuA=";
buildInputs = lib.optionals stdenv.isDarwin [ buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security darwin.apple_sdk.frameworks.Security

View File

@ -7,16 +7,16 @@
buildGoModule rec { buildGoModule rec {
pname = "files-cli"; pname = "files-cli";
version = "2.12.25"; version = "2.12.27";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "files-cli"; repo = "files-cli";
owner = "files-com"; owner = "files-com";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-gsZawXXLesMHr3DU0cowrAcYdtuoosmTLws8SBSFKOY="; hash = "sha256-MKW5jvdSd41nuz9oTP6sMzBo+TnNxE/+86KoPHRogBM=";
}; };
vendorHash = "sha256-MomEyp81wMQbq4x+CFRoS7hn5fNw3NTAVQVzSd1dr+s="; vendorHash = "sha256-rJtcocjH6GFmiDs7IizCMt/51RbHmvXdIIlWRETg6tg=";
ldflags = [ ldflags = [
"-s" "-s"

View File

@ -0,0 +1,23 @@
{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "galerio";
version = "1.2.0";
src = fetchFromGitHub {
owner = "dbrgn";
repo = "galerio";
rev = "v${version}";
hash = "sha256-JR/YfMUs5IHBRr3uYqHXLNcr23YHyDvgH2y/1ip+2Y8=";
};
cargoHash = "sha256-nYaCN09LP/2MfNRY8oZKtjzFCBFCeRF1IZ2ZBmbHg7I=";
meta = with lib; {
description = " A simple generator for self-contained HTML flexbox galleries";
homepage = "https://github.com/dbrgn/galerio";
maintainers = with maintainers; [ dbrgn ];
license = with licenses; [ asl20 mit ];
mainProgram = "galerio";
};
}

View File

@ -0,0 +1,43 @@
{ lib
, stdenvNoCC
, fetchzip
}:
stdenvNoCC.mkDerivation rec {
pname = "geist-font";
version = "1.1.0";
srcs = [
(fetchzip {
name = "geist-mono";
url = "https://github.com/vercel/geist-font/releases/download/${version}/Geist.Mono.zip";
stripRoot = false;
hash = "sha256-8I4O2+bJAlUiDIhbyXzAcwXP5qpmHoh4IfrFio7IZN8=";
})
(fetchzip {
name = "geist-sans";
url = "https://github.com/vercel/geist-font/releases/download/${version}/Geist.zip";
stripRoot = false;
hash = "sha256-nSN+Ql5hTd230w/u6VZyAZaPtFSaHGmMc6T1fgGTCME=";
})
];
sourceRoot = ".";
installPhase = ''
runHook preInstall
install -Dm444 geist-{mono,sans}/*/*.otf -t $out/share/fonts/opentype
runHook postInstall
'';
meta = {
description = "Font family created by Vercel in collaboration with Basement Studio";
homepage = "https://vercel.com/font";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ eclairevoyant x0ba ];
platforms = lib.platforms.all;
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
};
}

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "invidtui"; pname = "invidtui";
version = "0.3.7"; version = "0.3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "darkhz"; owner = "darkhz";
repo = "invidtui"; repo = "invidtui";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-bzstO6xaVdu7u1vBgwUjnJ9CEep0UHT73FbybBRd8y8="; hash = "sha256-m2ygORf6GIJZXYYJKy6i12wDEkxQywtYdCutHeiyNYY=";
}; };
vendorHash = "sha256-F0Iyy8H6ZRYiAlMdYGQS2p2hFN9ICmfTiRP/F9kpW7c="; vendorHash = "sha256-HQ6JHXiqawDwSV48/Czbao4opnuz1LqIBdcObrkCfNs=";
doCheck = true; doCheck = true;

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "legba"; pname = "legba";
version = "0.7.1"; version = "0.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "evilsocket"; owner = "evilsocket";
repo = "legba"; repo = "legba";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-7HDW5M0lsKbcQw3p/CYmUeX2xE4BZXUSNqa9Ab/ZP0I="; hash = "sha256-yevQEbDuVaSsSfA3ug9rDeWtGjMvS+uD7qHguRVt4sg=";
}; };
cargoHash = "sha256-rkqwc8BILW/OIHa95skkG4IDlBfH3qX1ROJgcn8f2W0="; cargoHash = "sha256-UBt4FP5zW+dijneHNaFJ80Ui5R+m+8aSwHTcqKDeEVg=";
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ openssl.dev samba ]; buildInputs = [ openssl.dev samba ];

View File

@ -2,21 +2,24 @@
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, lib , lib
, unstableGitUpdater
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "louvain-community"; pname = "louvain-community";
version = "unstable-2021-03-18"; version = "unstable-2024-01-30";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "meelgroup"; owner = "meelgroup";
repo = "louvain-community"; repo = "louvain-community";
rev = "8cc5382d4844af127b1c1257373740d7e6b76f1e"; rev = "681a711a530ded0b25af72ee4881d453a80ac8ac";
hash = "sha256-0i3wrDdOyleOPv5iVO1YzPfTPnIdljLabCvl3SYEQOs="; hash = "sha256-mp2gneTtm/PaCqz4JNOZgdKmFoV5ZRVwNYjHc4s2KuY=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
passthru.updateScript = unstableGitUpdater {};
meta = with lib; { meta = with lib; {
description = "Louvain Community Detection Library"; description = "Louvain Community Detection Library";
homepage = "https://github.com/meelgroup/louvain-community"; homepage = "https://github.com/meelgroup/louvain-community";

View File

@ -16,6 +16,7 @@
, process-cpp , process-cpp
, properties-cpp , properties-cpp
, python3 , python3
, validatePkgConfig
}: }:
let let
@ -25,13 +26,13 @@ let
in in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "net-cpp"; pname = "net-cpp";
version = "3.1.0"; version = "3.1.1";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lib-cpp/net-cpp"; repo = "development/core/lib-cpp/net-cpp";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-qXKuFLmtPjdqTcBIM07xbRe3DnP7AzieCy7Tbjtl0uc="; hash = "sha256-MSqdP3kGI9hDdxFv2a0yd5ZkFkf1lMurB+KDIZLR9jg=";
}; };
outputs = [ outputs = [
@ -41,22 +42,6 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
patches = [ patches = [
# Enable disabling of Werror
# Remove when version > 3.1.0
(fetchpatch {
name = "0001-net-cpp-Add-ENABLE_WERROR-option.patch";
url = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/commit/0945180aa6dd38245688d5ebc11951b272e93dc4.patch";
hash = "sha256-91YuEgV+Q9INN4BJXYwWgKUNHHtUYz3CG+ROTy24GIE=";
})
# Enable opting out of tests
# https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/merge_requests/14
(fetchpatch {
name = "0002-net-cpp-Make-tests-optional.patch";
url = "https://gitlab.com/OPNA2608/net-cpp/-/commit/cfbcd55446a4224a4c913ead3a370cd56d07a71b.patch";
hash = "sha256-kt48txzmWNXyxvx3DWAJl7I90c+o3KlgveNQjPkhfxA=";
})
# Be more lenient with how quickly HTTP test server must be up, for slower hardware / archs # Be more lenient with how quickly HTTP test server must be up, for slower hardware / archs
(fetchpatch { (fetchpatch {
url = "https://salsa.debian.org/ubports-team/net-cpp/-/raw/941d9eceaa66a06eabb1eb79554548b47d4a60ab/debian/patches/1007_wait-for-flask.patch"; url = "https://salsa.debian.org/ubports-team/net-cpp/-/raw/941d9eceaa66a06eabb1eb79554548b47d4a60ab/debian/patches/1007_wait-for-flask.patch";
@ -76,6 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
cmake cmake
doxygen doxygen
graphviz graphviz
validatePkgConfig
]; ];
buildInputs = [ buildInputs = [
@ -98,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [ cmakeFlags = [
# https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/issues/4 # https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/issues/4
"-DENABLE_WERROR=OFF" (lib.cmakeBool "ENABLE_WERROR" false)
]; ];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
@ -114,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "Simple yet beautiful networking API for C++11"; description = "Simple yet beautiful networking API for C++11";
homepage = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp"; homepage = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp";
changelog = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "ory"; pname = "ory";
version = "0.3.1"; version = "0.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ory"; owner = "ory";
repo = "cli"; repo = "cli";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-dO595NzdkVug955dqji/ttAPb+sMGLxJftXHzHA37Lo="; hash = "sha256-o5ii8+tQzVcoIgTHQ9nnGJf2VKhWhL+osbAKPB7esDA=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -23,7 +23,7 @@ buildGoModule rec {
"sqlite" "sqlite"
]; ];
vendorHash = "sha256-H1dM/r7gJvjnexQwlA4uhJ7rUH15yg4AMRW/f0k1Ixw="; vendorHash = "sha256-iUPZbeCZ08iDf8+u2CoVH1yN2JyBqQjeS3dAKUMyX9Y=";
postInstall = '' postInstall = ''
mv $out/bin/cli $out/bin/ory mv $out/bin/cli $out/bin/ory

View File

@ -5,13 +5,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "oterm"; pname = "oterm";
version = "0.1.21"; version = "0.1.22";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ggozad"; owner = "ggozad";
repo = "oterm"; repo = "oterm";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-S6v7VDIGPu6UDbDe0H3LWF6IN0Z6ENmiCDxz+GuCibI="; hash = "sha256-hRbPlRuwM3NspTNd3mPhVxPJl8zA9qyFwDGNKH3Slag=";
}; };
pythonRelaxDeps = [ pythonRelaxDeps = [

View File

@ -0,0 +1,25 @@
{ lib, buildGoModule, fetchFromGitHub }:
let
pname = "pdfannots2json";
version = "1.0.16";
in
buildGoModule {
inherit pname version;
src = fetchFromGitHub {
owner = "mgmeyers";
repo = "pdfannots2json";
rev = "refs/tags/${version}";
sha256 = "sha256-qk4OSws/6SevN/Q0lsyxw+fZkm2uy1WwOYYL7CB7QUk=";
};
vendorHash = null;
meta = with lib; {
homepage = "https://github.com/mgmeyers/pdfannots2json";
license = licenses.agpl3;
description = "A tool to convert PDF annotations to JSON";
maintainers = with maintainers; [ _0nyr ];
};
}

View File

@ -12,17 +12,18 @@
, lomiri , lomiri
, pkg-config , pkg-config
, python3 , python3
, validatePkgConfig
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "persistent-cache-cpp"; pname = "persistent-cache-cpp";
version = "1.0.6"; version = "1.0.7";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lib-cpp/persistent-cache-cpp"; repo = "development/core/lib-cpp/persistent-cache-cpp";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-RLZiYY0Y9LT+ajM4Va4MpVVDBlu2yvCpn8bNGMB8ydo="; hash = "sha256-bOABrRSy5Mzeaqoc5ujcGXyBAaCJLv/488M7fkr0npE=";
}; };
outputs = [ outputs = [
@ -32,43 +33,22 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
patches = [ patches = [
# Version in CMakeLists.txt didn't get bumped, emits wrong version in pkg-config
# Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/13 merged & in release
(fetchpatch {
name = "0001-persistent-cache-cpp-CMakeLists-txt-Update-version.patch";
url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/20d5d3f61563c62bcbe85e71ddc4fe16d7c995d5.patch";
hash = "sha256-BKovtT9OvV+xEwBO8AZTxAzL9kqyDB9ip32t2Xx4eIk=";
})
# PersistentStringCacheImpl.exceptions test fails on LLVM's libcxx, it depends on std::system_error producing a very specific exception text # PersistentStringCacheImpl.exceptions test fails on LLVM's libcxx, it depends on std::system_error producing a very specific exception text
# Expects "Unknown error 666", gets "unspecified generic_category error" # Expects "Unknown error 666", gets "unspecified generic_category error"
# Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/14 merged & in release # Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/14 merged & in release
(fetchpatch { (fetchpatch {
name = "0002-persistent-cache-cpp-persistent_string_cache_impl_test-libcxx-fix.patch"; name = "0001-persistent-cache-cpp-persistent_string_cache_impl_test-libcxx-fix.patch";
url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/a696dbd3093b8333f9ee1f0cad846b2256c729c5.patch"; url = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/commit/a696dbd3093b8333f9ee1f0cad846b2256c729c5.patch";
hash = "sha256-SJxdXeM7W+WKEmiLTwnQYAM7YmPayEk6vPb46y4thv4="; hash = "sha256-SJxdXeM7W+WKEmiLTwnQYAM7YmPayEk6vPb46y4thv4=";
}) })
# Enable usage of BUILD_TESTING to opting out of tests # Enable usage of BUILD_TESTING to opting out of tests
# Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/15 merged & in release # Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/15 merged & in release
(fetchpatch { (fetchpatch {
name = "0003-persistent-cache-cpp-Enable-opting-out-of-tests.patch"; name = "0002-persistent-cache-cpp-Enable-opting-out-of-tests.patch";
url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/1fb06d28c16325e90046e93662c0f5fd16c29b4a.patch"; url = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/commit/1fb06d28c16325e90046e93662c0f5fd16c29b4a.patch";
hash = "sha256-2/6EYBh71S4dzqWEde+3dLOGp015fN6IifAj1bI1XAI="; hash = "sha256-2/6EYBh71S4dzqWEde+3dLOGp015fN6IifAj1bI1XAI=";
}) })
# Enable linking based on stdenv (static or dynamic), only propagate leveldb link requirement when linked statically
# Remove when https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/merge_requests/16 merged & in release
(fetchpatch {
name = "0004-persistent-cache-cpp-Un-hardcode-static-linking.patch";
url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/45cd84fe76e3a0e1da41a662df695009a6f4f07e.patch";
hash = "sha256-1UjdhzrjnIUO1ySaZTm0vkdNgok0RNlGtNOWUoAUlzU=";
})
(fetchpatch {
name = "0005-persistent-cache-cpp-Propagate-leveldb-dependency-only-when-needed.patch";
url = "https://gitlab.com/OPNA2608/persistent-cache-cpp/-/commit/6204b65df32360a7e358558041219a867652c429.patch";
hash = "sha256-cIewdtF0OdQuLz94KNY2HL8XZp1IaKlZz2hNlMvKLw4=";
})
]; ];
postPatch = '' postPatch = ''
@ -87,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
cmake cmake
doxygen doxygen
pkg-config pkg-config
validatePkgConfig
]; ];
buildInputs = [ buildInputs = [
@ -106,6 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [ cmakeFlags = [
# error: 'old_version' may be used uninitialized # error: 'old_version' may be used uninitialized
(lib.cmakeBool "Werror" false) (lib.cmakeBool "Werror" false)
# Defaults to static if not set
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
]; ];
@ -123,6 +105,7 @@ stdenv.mkDerivation (finalAttrs: {
image files) that is fast, scalable, and crash-proof. image files) that is fast, scalable, and crash-proof.
''; '';
homepage = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp"; homepage = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp";
changelog = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.unix; platforms = platforms.unix;

View File

@ -12,16 +12,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "pixi"; pname = "pixi";
version = "0.11.1"; version = "0.13.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "prefix-dev"; owner = "prefix-dev";
repo = "pixi"; repo = "pixi";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-NOa8OvZs+BoJQ9qIU1lpMmEOecZpmwwCNYpDk1LUSTI="; hash = "sha256-4EKJwHXNDUGhwlSSZFoPHdG5WBDoHFAQncG+CpD2sik=";
}; };
cargoHash = "sha256-rDtr9ITYH5o/QPG1Iozh05iTA8c0i+3DnabXLzyqdrg="; cargoHash = "sha256-s1ODwuYv1x5/iP8yHS5FRk5MacrW81LaXI7/J+qtPNM=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View File

@ -24,7 +24,9 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-bufFiyqRsn4eG57bKn42p5cyX+Z7oiz/USZvg9YOvHA="; cargoHash = "sha256-bufFiyqRsn4eG57bKn42p5cyX+Z7oiz/USZvg9YOvHA=";
buildFeatures = [ "sixel" ]; # Crashes at runtime on darwin with:
# Library not loaded: .../out/lib/libsixel.1.dylib
buildFeatures = lib.optionals (!stdenv.isDarwin) [ "sixel" ];
# Skip test that currently doesn't work # Skip test that currently doesn't work
checkFlags = [ "--skip=execute::test::shell_code_execution" ]; checkFlags = [ "--skip=execute::test::shell_code_execution" ];
@ -41,8 +43,5 @@ rustPlatform.buildRustPackage rec {
license = licenses.bsd2; license = licenses.bsd2;
maintainers = with maintainers; [ mikaelfangel ]; maintainers = with maintainers; [ mikaelfangel ];
mainProgram = "presenterm"; mainProgram = "presenterm";
# Crashes at runtime on darwin with:
# Library not loaded: .../out/lib/libsixel.1.dylib
broken = stdenv.isDarwin;
}; };
} }

View File

@ -0,0 +1,37 @@
{ stdenv, lib, buildBazelPackage, bazel_6, fetchFromGitHub, darwin }:
buildBazelPackage rec {
pname = "protoc-gen-js";
version = "3.21.2";
src = fetchFromGitHub {
owner = "protocolbuffers";
repo = "protobuf-javascript";
rev = "v${version}";
hash = "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=";
};
bazel = bazel_6;
bazelTargets = [ "generator:protoc-gen-js" ];
bazelBuildFlags = lib.optionals stdenv.cc.isClang [ "--cxxopt=-x" "--cxxopt=c++" "--host_cxxopt=-x" "--host_cxxopt=c++" ];
removeRulesCC = false;
removeLocalConfigCC = false;
LIBTOOL = lib.optionalString stdenv.isDarwin "${darwin.cctools}/bin/libtool";
fetchAttrs.sha256 = "sha256-H0zTMCMFct09WdR/mzcs9FcC2OU/ZhGye7GAkx4tGa8=";
buildAttrs.installPhase = ''
mkdir -p $out/bin
install -Dm755 bazel-bin/generator/protoc-gen-js $out/bin/
'';
meta = with lib; {
description = "Protobuf plugin for generating JavaScript code";
homepage = "https://github.com/protocolbuffers/protobuf-javascript";
platforms = platforms.linux ++ platforms.darwin;
license = with licenses; [ asl20 bsd3 ];
sourceProvenance = [ sourceTypes.fromSource ];
maintainers = with maintainers; [ Sorixelle ];
};
}

View File

@ -12,13 +12,13 @@
buildDotnetModule rec { buildDotnetModule rec {
pname = "pupdate"; pname = "pupdate";
version = "3.1.0"; version = "3.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mattpannella"; owner = "mattpannella";
repo = "${pname}"; repo = "${pname}";
rev = "${version}"; rev = "${version}";
hash = "sha256-wIYqEtbQZsj9gq5KaLhd+sEnrKHBHzA9jWR+9dGDQ0s="; hash = "sha256-9u1CKxWohGj7Gm3BrC2tpoQAY1r3cpP8OIePo+g7ETo=";
}; };
buildInputs = [ buildInputs = [

View File

@ -31,6 +31,9 @@ python3.pkgs.buildPythonApplication rec {
typer typer
]; ];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ pythonImportsCheck = [
"pysqlrecon" "pysqlrecon"
]; ];

View File

@ -7,10 +7,10 @@
inherit buildUnstable; inherit buildUnstable;
}).overrideAttrs (finalAttrs: _: { }).overrideAttrs (finalAttrs: _: {
pname = "renode-unstable"; pname = "renode-unstable";
version = "1.14.0+20240106git1b3952c2c"; version = "1.14.0+20240119git1a0826937";
src = fetchurl { src = fetchurl {
url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz"; url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz";
hash = "sha256-tDo/01jYoq1Qg8h0BS4BQSPh3rsINpe72eMk9UBWgR0="; hash = "sha256-bv5+6DVzBFt5XeKcLJFpUHB5T1RKCNi/CuXXpIn6e9k=";
}; };
}) })

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "uxn"; pname = "uxn";
version = "unstable-2024-01-15"; version = "unstable-2024-01-21";
src = fetchFromSourcehut { src = fetchFromSourcehut {
owner = "~rabbits"; owner = "~rabbits";
repo = "uxn"; repo = "uxn";
rev = "8212ca5edb55a28976515a73fcb454f18eb44a09"; rev = "3e1183285a94a0930c9b09fd4fa73ac3a5d24fda";
hash = "sha256-K/qTKSGt/sFHt0lfUbwa/Y2XlWst30q1aKvsm4sjrLc="; hash = "sha256-hhxcj/jVBOm7E63Z9sS3SnFjexQEXVtw3QU5n/4hkVI=";
}; };
outputs = [ "out" "projects" ]; outputs = [ "out" "projects" ];

View File

@ -18,6 +18,7 @@ buildGoModule rec {
meta = with lib; { meta = with lib; {
description = "Convert YAML <=> TOML <=> JSON <=> HCL"; description = "Convert YAML <=> TOML <=> JSON <=> HCL";
license = licenses.asl20; license = licenses.asl20;
mainProgram = "yj";
maintainers = with maintainers; [ Profpatsch ]; maintainers = with maintainers; [ Profpatsch ];
homepage = "https://github.com/sclevine/yj"; homepage = "https://github.com/sclevine/yj";
}; };

View File

@ -0,0 +1,21 @@
diff --git a/console/buf.gen.yaml b/console/buf.gen.yaml
index 1737c2ded..d6affa8bc 100644
--- a/console/buf.gen.yaml
+++ b/console/buf.gen.yaml
@@ -3,12 +3,12 @@ version: v1
managed:
enabled: true
plugins:
- - plugin: buf.build/protocolbuffers/js
+ - plugin: js
out: src/app/proto/generated
opt: import_style=commonjs,binary
- - plugin: buf.build/grpc/web
+ - plugin: grpc-web
out: src/app/proto/generated
opt: import_style=typescript,mode=grpcweb
- - plugin: buf.build/grpc-ecosystem/openapiv2
+ - plugin: openapiv2
out: src/app/proto/generated
opt: allow_delete_body
\ No newline at end of file

View File

@ -6,15 +6,24 @@
{ mkYarnPackage { mkYarnPackage
, fetchYarnDeps , fetchYarnDeps
, lib , lib
, grpc-gateway
, protoc-gen-grpc-web
, protoc-gen-js
}: }:
let let
protobufGenerated = generateProtobufCode { protobufGenerated = generateProtobufCode {
pname = "zitadel-console"; pname = "zitadel-console";
nativeBuildInputs = [
grpc-gateway
protoc-gen-grpc-web
protoc-gen-js
];
workDir = "console"; workDir = "console";
bufArgs = "../proto --include-imports --include-wkt"; bufArgs = "../proto --include-imports --include-wkt";
outputPath = "src/app/proto"; outputPath = "src/app/proto";
hash = "sha256-NmlKjKWxmqatyR6OitlQ7bfl6U6PS6KWqTALwX42HS4="; hash = "sha256-h/5K6PvEFyjzS5p7SfuDIk91TkN1iPc+iXor8T/QSeE=";
}; };
in in
mkYarnPackage rec { mkYarnPackage rec {
@ -26,7 +35,7 @@ mkYarnPackage rec {
packageJSON = ./package.json; packageJSON = ./package.json;
offlineCache = fetchYarnDeps { offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock"; yarnLock = "${src}/yarn.lock";
hash = "sha256-rSKoIznYVDNgrBmut7YSxNhgPJnbIeO+/s0HnrYWPUc="; hash = "sha256-cfo2WLSbfU8tYADjF7j9zTLNsboVThF6MUBrb49MrII=";
}; };
postPatch = '' postPatch = ''

View File

@ -25,8 +25,11 @@
"@angular/router": "^16.2.5", "@angular/router": "^16.2.5",
"@angular/service-worker": "^16.2.5", "@angular/service-worker": "^16.2.5",
"@ctrl/ngx-codemirror": "^6.1.0", "@ctrl/ngx-codemirror": "^6.1.0",
"@fortawesome/angular-fontawesome": "^0.13.0",
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-brands-svg-icons": "^6.4.2",
"@grpc/grpc-js": "^1.9.3", "@grpc/grpc-js": "^1.9.3",
"@ngx-translate/core": "^14.0.0", "@ngx-translate/core": "^15.0.0",
"angular-oauth2-oidc": "^15.0.1", "angular-oauth2-oidc": "^15.0.1",
"angularx-qrcode": "^16.0.0", "angularx-qrcode": "^16.0.0",
"buffer": "^6.0.3", "buffer": "^6.0.3",
@ -34,18 +37,18 @@
"cors": "^2.8.5", "cors": "^2.8.5",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"flag-icons": "^6.7.0", "flag-icons": "^6.7.0",
"google-proto-files": "^3.0.3", "google-proto-files": "^4.0.0",
"google-protobuf": "^3.21.2", "google-protobuf": "^3.21.2",
"grpc-web": "^1.4.1", "grpc-web": "^1.4.1",
"i18n-iso-countries": "^7.6.0", "i18n-iso-countries": "^7.6.0",
"libphonenumber-js": "^1.10.30", "libphonenumber-js": "^1.10.49",
"material-design-icons-iconfont": "^6.1.1", "material-design-icons-iconfont": "^6.1.1",
"moment": "^2.29.4", "moment": "^2.29.4",
"ngx-color": "^9.0.0", "ngx-color": "^9.0.0",
"opentype.js": "^1.3.4", "opentype.js": "^1.3.4",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tinycolor2": "^1.6.0", "tinycolor2": "^1.6.0",
"tslib": "^2.4.1", "tslib": "^2.6.2",
"uuid": "^9.0.0", "uuid": "^9.0.0",
"zone.js": "~0.13.1" "zone.js": "~0.13.1"
}, },
@ -60,11 +63,11 @@
"@angular/compiler-cli": "^16.2.5", "@angular/compiler-cli": "^16.2.5",
"@angular/language-service": "^16.2.5", "@angular/language-service": "^16.2.5",
"@bufbuild/buf": "^1.23.1", "@bufbuild/buf": "^1.23.1",
"@types/file-saver": "^2.0.2", "@types/file-saver": "^2.0.7",
"@types/google-protobuf": "^3.15.3", "@types/google-protobuf": "^3.15.3",
"@types/jasmine": "~4.3.6", "@types/jasmine": "~4.3.6",
"@types/jasminewd2": "~2.0.10", "@types/jasminewd2": "~2.0.10",
"@types/jsonwebtoken": "^9.0.1", "@types/jsonwebtoken": "^9.0.5",
"@types/node": "^20.7.0", "@types/node": "^20.7.0",
"@types/opentype.js": "^1.3.4", "@types/opentype.js": "^1.3.4",
"@types/qrcode": "^1.5.2", "@types/qrcode": "^1.5.2",
@ -83,6 +86,6 @@
"prettier": "^3.0.3", "prettier": "^3.0.3",
"prettier-plugin-organize-imports": "^3.2.2", "prettier-plugin-organize-imports": "^3.2.2",
"protractor": "~7.0.0", "protractor": "~7.0.0",
"typescript": "^4.9.5" "typescript": "^5.1.6"
} }
} }

View File

@ -15,14 +15,14 @@
}: }:
let let
version = "2.40.3"; version = "2.42.10";
zitadelRepo = fetchFromGitHub { zitadelRepo = fetchFromGitHub {
owner = "zitadel"; owner = "zitadel";
repo = "zitadel"; repo = "zitadel";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-WqsK6DAYkLs5wBNvkVGarLMm/unBLtipFkl07pR90HI="; hash = "sha256-Uv0iEIFkTdBAi0WDBQHf0ATs4L2FOU4NmiE9p1MHSa0=";
}; };
goModulesHash = "sha256-IVf1YVnhyEYgZqM31Cv3aBFnPG7v5WW6fCEvlN+sTIE="; goModulesHash = "sha256-PQch046YjYhAmVlNNdgDLWIqFvEpXRgXAYFMwSZmk4w=";
buildZitadelProtocGen = name: buildZitadelProtocGen = name:
buildGoModule { buildGoModule {
@ -62,6 +62,7 @@ let
name = "${pname}-buf-generated"; name = "${pname}-buf-generated";
src = zitadelRepo; src = zitadelRepo;
patches = [ ./console-use-local-protobuf-plugins.patch ];
nativeBuildInputs = nativeBuildInputs ++ [ buf ]; nativeBuildInputs = nativeBuildInputs ++ [ buf ];
@ -91,7 +92,7 @@ let
protoc-gen-zitadel protoc-gen-zitadel
]; ];
outputPath = ".artifacts"; outputPath = ".artifacts";
hash = "sha256-xrEF1B4pMoCZs1WO9F6IoqHnSyt5BhPVTIABMWK/q2E="; hash = "sha256-3qDVY2CvtY8lZDr+p5i0vV6zZ5KyTtxBLyV7Os9KuIw=";
}; };
in in
buildGoModule rec { buildGoModule rec {
@ -104,10 +105,11 @@ buildGoModule rec {
proxyVendor = true; proxyVendor = true;
vendorHash = goModulesHash; vendorHash = goModulesHash;
ldflags = [ "-X 'github.com/zitadel/zitadel/cmd/build.version=${version}'" ];
# Adapted from Makefile in repo, with dependency fetching and protobuf codegen # Adapted from Makefile in repo, with dependency fetching and protobuf codegen
# bits removed # bits removed
buildPhase = '' preBuild = ''
mkdir -p pkg/grpc mkdir -p pkg/grpc
cp -r ${protobufGenerated}/grpc/github.com/zitadel/zitadel/pkg/grpc/* pkg/grpc cp -r ${protobufGenerated}/grpc/github.com/zitadel/zitadel/pkg/grpc/* pkg/grpc
mkdir -p openapi/v2/zitadel mkdir -p openapi/v2/zitadel
@ -122,12 +124,13 @@ buildGoModule rec {
go run internal/api/assets/generator/asset_generator.go -directory=internal/api/assets/generator/ -assets=docs/apis/assets/assets.md go run internal/api/assets/generator/asset_generator.go -directory=internal/api/assets/generator/ -assets=docs/apis/assets/assets.md
cp -r ${passthru.console}/* internal/api/ui/console/static cp -r ${passthru.console}/* internal/api/ui/console/static
CGO_ENABLED=0 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.version=${version}'"
''; '';
doCheck = false;
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
install -Dm755 zitadel $out/bin/ install -Dm755 $GOPATH/bin/zitadel $out/bin/
''; '';
passthru = { passthru = {

View File

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

View File

@ -3,12 +3,12 @@
let let
generator = pkgsBuildBuild.buildGoModule rec { generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community"; pname = "v2ray-domain-list-community";
version = "20240123112230"; version = "20240131105845";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "v2fly"; owner = "v2fly";
repo = "domain-list-community"; repo = "domain-list-community";
rev = version; rev = version;
hash = "sha256-tt6/JEX1WM6ayBU4NnY/yjz9S6IDAfr6hJmyF9mPHAo="; hash = "sha256-aoHcRrZOFHagFNieJf9LtWHd1JDisPb3cpu9x5rMizE=";
}; };
vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY="; vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
meta = with lib; { meta = with lib; {

View File

@ -8,17 +8,18 @@
, glib , glib
, intltool , intltool
, pkg-config , pkg-config
, validatePkgConfig
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-schemas"; pname = "lomiri-schemas";
version = "0.1.3"; version = "0.1.4";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lomiri-schemas"; repo = "development/core/lomiri-schemas";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-FrDUFqdD0KW2VG2pTA6LMb6/9PdNtQUlYTEo1vnW6QQ="; hash = "sha256-Pnn/Qh5EYEqmP8QFsZcSCpDL36++aeUUok3t9a1/1n0=";
}; };
strictDeps = true; strictDeps = true;
@ -28,6 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
glib # glib-compile-schemas glib # glib-compile-schemas
pkg-config pkg-config
intltool intltool
validatePkgConfig
]; ];
buildInputs = [ buildInputs = [
@ -36,8 +38,8 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
cmakeFlags = [ cmakeFlags = [
"-DGSETTINGS_LOCALINSTALL=ON" (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
"-DGSETTINGS_COMPILE=ON" (lib.cmakeBool "GSETTINGS_COMPILE" true)
]; ];
passthru = { passthru = {
@ -48,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "GSettings / AccountsService schema files for Lomiri"; description = "GSettings / AccountsService schema files for Lomiri";
homepage = "https://gitlab.com/ubports/development/core/lomiri-schemas"; homepage = "https://gitlab.com/ubports/development/core/lomiri-schemas";
changelog = "https://gitlab.com/ubports/development/core/lomiri-schemas/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl21Plus; license = licenses.lgpl21Plus;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -1,7 +1,6 @@
{ stdenv { stdenv
, lib , lib
, fetchFromGitLab , fetchFromGitLab
, fetchpatch
, gitUpdater , gitUpdater
, testers , testers
, buildPackages , buildPackages
@ -17,17 +16,18 @@
, withDocumentation ? stdenv.buildPlatform.canExecute stdenv.hostPlatform , withDocumentation ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
, gtk-doc , gtk-doc
, pkg-config , pkg-config
, validatePkgConfig
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "geonames"; pname = "geonames";
version = "0.3.0"; version = "0.3.1";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/geonames"; repo = "development/core/geonames";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-Mo7Khj2pgdJ9kT3npFXnh1WTSsY/B1egWTccbAXFNY8="; hash = "sha256-AhRnUoku17kVY0UciHQXFDa6eCH6HQ4ZGIOobCaGTKQ=";
}; };
outputs = [ outputs = [
@ -39,16 +39,6 @@ stdenv.mkDerivation (finalAttrs: {
"devdoc" "devdoc"
]; ];
patches = [
# Improves install locations of demo & docs
# Remove when https://gitlab.com/ubports/development/core/geonames/-/merge_requests/3 merged & in release
(fetchpatch {
name = "0001-geonames-Use-CMAKE_INSTALL_BINDIR-for-install.patch";
url = "https://gitlab.com/OPNA2608/geonames/-/commit/3bca6d4d02843aed851a0a7480d5cd5ac02b4cda.patch";
hash = "sha256-vwffuMKpIqymYaiGEvnNeVXLmnz5e4aBpg55fnNbjKs=";
})
];
postPatch = '' postPatch = ''
patchShebangs src/generate-locales.sh tests/setup-test-env.sh patchShebangs src/generate-locales.sh tests/setup-test-env.sh
''; '';
@ -60,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
gettext gettext
glib # glib-compile-resources glib # glib-compile-resources
pkg-config pkg-config
validatePkgConfig
] ++ lib.optionals withDocumentation [ ] ++ lib.optionals withDocumentation [
docbook-xsl-nons docbook-xsl-nons
docbook_xml_dtd_45 docbook_xml_dtd_45
@ -84,14 +75,14 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
cmakeFlags = [ cmakeFlags = [
"-DWANT_DOC=${lib.boolToString withDocumentation}" (lib.cmakeBool "WANT_DOC" withDocumentation)
"-DWANT_DEMO=${lib.boolToString withExamples}" (lib.cmakeBool "WANT_DEMO" withExamples)
"-DWANT_TESTS=${lib.boolToString finalAttrs.finalPackage.doCheck}" (lib.cmakeBool "WANT_TESTS" finalAttrs.finalPackage.doCheck)
# Keeps finding & using glib-compile-resources from buildInputs otherwise # Keeps finding & using glib-compile-resources from buildInputs otherwise
"-DCMAKE_PROGRAM_PATH=${lib.makeBinPath [ buildPackages.glib.dev ]}" (lib.cmakeFeature "CMAKE_PROGRAM_PATH" (lib.makeBinPath [ buildPackages.glib.dev ]))
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
# only for cross without native execute support because the canExecute "emulator" call has a format that I can't get CMake to accept # only for cross without native execute support because the canExecute "emulator" call has a format that I can't get CMake to accept
"-DCMAKE_CROSSCOMPILING_EMULATOR=${stdenv.hostPlatform.emulator buildPackages}" (lib.cmakeFeature "CMAKE_CROSSCOMPILING_EMULATOR" (stdenv.hostPlatform.emulator buildPackages))
]; ];
preInstall = lib.optionalString withDocumentation '' preInstall = lib.optionalString withDocumentation ''
@ -109,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "Parse and query the geonames database dump"; description = "Parse and query the geonames database dump";
homepage = "https://gitlab.com/ubports/development/core/geonames"; homepage = "https://gitlab.com/ubports/development/core/geonames";
changelog = "https://gitlab.com/ubports/development/core/geonames/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.all; platforms = platforms.all;

View File

@ -0,0 +1,37 @@
From 52ac1d6548b4a92d569c5d2f53b84c604c7fce8a Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Thu, 1 Feb 2024 22:42:39 +0100
Subject: [PATCH] Remove custom check target
The automatic one provides better controls for us
---
CMakeLists.txt | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index af643a7..75b3cc1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -105,18 +105,13 @@ add_subdirectory("data")
if(ENABLE_TESTS)
-enable_testing()
+include(CTest)
pkg_check_modules(QTDBUSTEST REQUIRED libqtdbustest-1 REQUIRED)
include_directories(${QTDBUSTEST_INCLUDE_DIRS})
add_subdirectory(tests)
-ADD_CUSTOM_TARGET(
- check
- ${CMAKE_CTEST_COMMAND} --force-new-ctest-process --output-on-failure
-)
-
find_package(CoverageReport)
enable_coverage_report(
TARGETS
--
2.42.0

View File

@ -19,18 +19,19 @@
, qtdeclarative , qtdeclarative
, qtxmlpatterns , qtxmlpatterns
, ubports-click , ubports-click
, validatePkgConfig
, wrapQtAppsHook , wrapQtAppsHook
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "libusermetrics"; pname = "libusermetrics";
version = "1.3.0"; version = "1.3.2";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/libusermetrics"; repo = "development/core/libusermetrics";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-yO9wZcXJBKt1HZ1GKoQ1flqYuwW9PlXiWLE3bl21PSQ="; hash = "sha256-jmJH5vByBnBqgQfyb7HNVe+eS/jHcU64R2dnvuLbqss=";
}; };
outputs = [ outputs = [
@ -39,22 +40,18 @@ stdenv.mkDerivation (finalAttrs: {
"doc" "doc"
]; ];
postPatch = '' patches = [
substituteInPlace data/CMakeLists.txt \ # Not submitted yet, waiting for decision on how CMake testing should be handled
--replace '/etc' "$out/etc" ./2001-Remove-custom-check-target.patch
];
postPatch = ''
# Tries to query QMake for QT_INSTALL_QML variable, would return broken paths into /build/qtbase-<commit> even if qmake was available # Tries to query QMake for QT_INSTALL_QML variable, would return broken paths into /build/qtbase-<commit> even if qmake was available
substituteInPlace src/modules/UserMetrics/CMakeLists.txt \ substituteInPlace src/modules/UserMetrics/CMakeLists.txt \
--replace "\''${QT_IMPORTS_DIR}/UserMetrics" '${placeholder "out"}/${qtbase.qtQmlPrefix}/UserMetrics' --replace 'query_qmake(QT_INSTALL_QML QT_IMPORTS_DIR)' 'set(QT_IMPORTS_DIR "''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}")'
substituteInPlace src/libusermetricsinput/CMakeLists.txt \
--replace 'RUNTIME DESTINATION bin' 'RUNTIME DESTINATION ''${CMAKE_INSTALL_BINDIR}'
substituteInPlace doc/CMakeLists.txt \ substituteInPlace doc/CMakeLists.txt \
--replace "\''${CMAKE_INSTALL_DATAROOTDIR}/doc/libusermetrics-doc" "\''${CMAKE_INSTALL_DOCDIR}" --replace "\''${CMAKE_INSTALL_DATAROOTDIR}/doc/libusermetrics-doc" "\''${CMAKE_INSTALL_DOCDIR}"
'' + lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
# Only needed by tests
sed -i -e '/QTDBUSTEST/d' CMakeLists.txt
''; '';
strictDeps = true; strictDeps = true;
@ -64,6 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
doxygen doxygen
intltool intltool
pkg-config pkg-config
validatePkgConfig
wrapQtAppsHook wrapQtAppsHook
]; ];
@ -91,22 +89,23 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
cmakeFlags = [ cmakeFlags = [
"-DGSETTINGS_LOCALINSTALL=ON" (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
"-DGSETTINGS_COMPILE=ON" (lib.cmakeBool "GSETTINGS_COMPILE" true)
"-DENABLE_TESTS=${lib.boolToString finalAttrs.finalPackage.doCheck}" (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
# Exclude tests
"-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
# Flaky, randomly failing in UserMetricsImplTest.AddTranslatedData (data not ready when signal is emitted?)
"^usermetricsoutput-unit-tests"
]})")
]))
]; ];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
checkPhase = '' preCheck = ''
runHook preCheck
export QT_PLUGIN_PATH=${lib.getBin qtbase}/lib/qt-${qtbase.version}/plugins/ export QT_PLUGIN_PATH=${lib.getBin qtbase}/lib/qt-${qtbase.version}/plugins/
export QML2_IMPORT_PATH=${lib.getBin qtdeclarative}/lib/qt-${qtbase.version}/qml/ export QML2_IMPORT_PATH=${lib.getBin qtdeclarative}/lib/qt-${qtbase.version}/qml/
dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf -- \
make test "''${enableParallelChecking:+-j $NIX_BUILD_CORES}"
runHook postCheck
''; '';
passthru = { passthru = {
@ -117,6 +116,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "Enables apps to locally store interesting numerical data for later presentation"; description = "Enables apps to locally store interesting numerical data for later presentation";
homepage = "https://gitlab.com/ubports/development/core/libusermetrics"; homepage = "https://gitlab.com/ubports/development/core/libusermetrics";
changelog = "https://gitlab.com/ubports/development/core/libusermetrics/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -20,6 +20,7 @@
, python3 , python3
, systemd , systemd
, ubports-click , ubports-click
, validatePkgConfig
, zeitgeist , zeitgeist
, withDocumentation ? true , withDocumentation ? true
, doxygen , doxygen
@ -29,7 +30,7 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-app-launch"; pname = "lomiri-app-launch";
version = "0.1.8"; version = "0.1.9";
outputs = [ outputs = [
"out" "out"
@ -42,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "ubports"; owner = "ubports";
repo = "development/core/lomiri-app-launch"; repo = "development/core/lomiri-app-launch";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-NIBZk5H0bPwAwkI0Qiq2S9dZvchAFPBCHKi2inUVZmI="; hash = "sha256-vuu6tZ5eDJN2rraOpmrDddSl1cIFFBSrILKMJqcUDVc=";
}; };
postPatch = '' postPatch = ''
@ -50,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
# used pkg_get_variable, cannot replace prefix # used pkg_get_variable, cannot replace prefix
substituteInPlace data/CMakeLists.txt \ substituteInPlace data/CMakeLists.txt \
--replace 'DESTINATION "''${SYSTEMD_USER_UNIT_DIR}"' 'DESTINATION "${placeholder "out"}/lib/systemd/user"' --replace 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_UNIT_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/user")'
substituteInPlace tests/jobs-systemd.cpp \ substituteInPlace tests/jobs-systemd.cpp \
--replace '^(/usr)?' '^(/nix/store/\\w+-bash-.+)?' --replace '^(/usr)?' '^(/nix/store/\\w+-bash-.+)?'
@ -63,6 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
dpkg # for setting LOMIRI_APP_LAUNCH_ARCH dpkg # for setting LOMIRI_APP_LAUNCH_ARCH
gobject-introspection gobject-introspection
pkg-config pkg-config
validatePkgConfig
] ++ lib.optionals withDocumentation [ ] ++ lib.optionals withDocumentation [
doxygen doxygen
python3Packages.breathe python3Packages.breathe
@ -96,8 +98,8 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
cmakeFlags = [ cmakeFlags = [
"-DENABLE_MIRCLIENT=OFF" (lib.cmakeBool "ENABLE_MIRCLIENT" false)
"-DENABLE_TESTS=${lib.boolToString finalAttrs.doCheck}" (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
]; ];
postBuild = lib.optionalString withDocumentation '' postBuild = lib.optionalString withDocumentation ''
@ -119,6 +121,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "System and associated utilities to launch applications in a standard and confined way"; description = "System and associated utilities to launch applications in a standard and confined way";
homepage = "https://gitlab.com/ubports/development/core/lomiri-app-launch"; homepage = "https://gitlab.com/ubports/development/core/lomiri-app-launch";
changelog = "https://gitlab.com/ubports/development/core/lomiri-app-launch/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -1,6 +1,7 @@
{ stdenv { stdenv
, lib , lib
, fetchFromGitLab , fetchFromGitLab
, gitUpdater
, testers , testers
, boost , boost
, cmake , cmake
@ -19,17 +20,18 @@
, properties-cpp , properties-cpp
, qtbase , qtbase
, qtdeclarative , qtdeclarative
, validatePkgConfig
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "trust-store"; pname = "trust-store";
version = "0-unstable-2023-12-27"; version = "2.0.2";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/trust-store"; repo = "development/core/trust-store";
rev = "c91e5ac54c4032525f930f0651d673ad3a1095a2"; rev = finalAttrs.version;
hash = "sha256-zqs40tKo2AOd9yL2Xfbk52Uh8hy4uT1XDT6YtKufAaY="; hash = "sha256-tVwqBu4py8kdydyKECZfLvcLijpZSQszeo8ytTDagy0=";
}; };
outputs = [ outputs = [
@ -58,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
gettext gettext
graphviz graphviz
pkg-config pkg-config
validatePkgConfig
]; ];
buildInputs = [ buildInputs = [
@ -106,7 +109,10 @@ stdenv.mkDerivation (finalAttrs: {
# Starts & talks to DBus # Starts & talks to DBus
enableParallelChecking = false; enableParallelChecking = false;
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater { };
};
meta = with lib; { meta = with lib; {
description = "Common implementation of a trust store to be used by trusted helpers"; description = "Common implementation of a trust store to be used by trusted helpers";

View File

@ -1,7 +1,6 @@
{ stdenv { stdenv
, lib , lib
, fetchFromGitLab , fetchFromGitLab
, fetchpatch
, gitUpdater , gitUpdater
, testers , testers
, cmake , cmake
@ -10,17 +9,18 @@
, pkg-config , pkg-config
, qtbase , qtbase
, qtdeclarative , qtdeclarative
, validatePkgConfig
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-action-api"; pname = "lomiri-action-api";
version = "1.1.2"; version = "1.1.3";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lomiri-action-api"; repo = "development/core/lomiri-action-api";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-FOHjZ5F4IkjSn/SpZEz25CbTR/gaK4D7BRxDVSDuAl8="; hash = "sha256-JDcUq7qEp6Z8TjdNspIz4FE/euH+ytGWa4rSxy4voiU=";
}; };
outputs = [ outputs = [
@ -28,19 +28,10 @@ stdenv.mkDerivation (finalAttrs: {
"dev" "dev"
]; ];
patches = [
# Drop deprecated qt5_use_modules usage
# Remove when https://gitlab.com/ubports/development/core/lomiri-action-api/-/merge_requests/4 merged & in release
(fetchpatch {
url = "https://gitlab.com/OPNA2608/lomiri-action-api/-/commit/ff1d7f7eb127f6a00a99e8b278c963899d0303f0.patch";
hash = "sha256-nLUoRl260hMbtEPjOQJI/3w54xgFxjcxerAqNN5FU/0=";
})
];
postPatch = '' postPatch = ''
# Queries QMake for broken Qt variable: '/build/qtbase-<commit>/$(out)/$(qtQmlPrefix)' # Queries QMake for broken Qt variable: '/build/qtbase-<commit>/$(out)/$(qtQmlPrefix)'
substituteInPlace qml/Lomiri/Action/CMakeLists.txt \ substituteInPlace qml/Lomiri/Action/CMakeLists.txt \
--replace "\''${QT_IMPORTS_DIR}/Lomiri" '${qtbase.qtQmlPrefix}/Lomiri' --replace 'exec_program(''${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_QML" OUTPUT_VARIABLE QT_IMPORTS_DIR)' 'set(QT_IMPORTS_DIR "''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}")'
''; '';
strictDeps = true; strictDeps = true;
@ -48,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
pkg-config pkg-config
validatePkgConfig
]; ];
buildInputs = [ buildInputs = [
@ -61,9 +53,11 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
cmakeFlags = [ cmakeFlags = [
"-DENABLE_TESTING=${lib.boolToString finalAttrs.finalPackage.doCheck}" (lib.cmakeBool "ENABLE_TESTING" finalAttrs.finalPackage.doCheck)
"-Duse_libhud2=OFF" # Use vendored libhud2, TODO package libhud2 separately? # Use vendored libhud2, TODO package libhud2 separately?
"-DGENERATE_DOCUMENTATION=OFF" # QML docs need qdoc, https://github.com/NixOS/nixpkgs/pull/245379 (lib.cmakeBool "use_libhud2" false)
# QML docs need qdoc, https://github.com/NixOS/nixpkgs/pull/245379
(lib.cmakeBool "GENERATE_DOCUMENTATION" false)
]; ];
dontWrapQtApps = true; dontWrapQtApps = true;
@ -83,6 +77,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "Allow applications to export actions in various forms to the Lomiri Shell"; description = "Allow applications to export actions in various forms to the Lomiri Shell";
homepage = "https://gitlab.com/ubports/development/core/lomiri-action-api"; homepage = "https://gitlab.com/ubports/development/core/lomiri-action-api";
changelog = "https://gitlab.com/ubports/development/core/lomiri-action-api/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-settings-components"; pname = "lomiri-settings-components";
version = "1.1.0"; version = "1.1.1";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lomiri-settings-components"; repo = "development/core/lomiri-settings-components";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-13uxUBM+uOmt8X0uLGWNP8YbwCdb2QCChB8IP3td5a4="; hash = "sha256-2Wyh+2AW6EeKRv26D4l+GIoH5sWC9SmOODNHOveFZPg=";
}; };
postPatch = '' postPatch = ''
@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "QML settings components for the Lomiri Desktop Environment"; description = "QML settings components for the Lomiri Desktop Environment";
homepage = "https://gitlab.com/ubports/development/core/lomiri-settings-components"; homepage = "https://gitlab.com/ubports/development/core/lomiri-settings-components";
changelog = "https://gitlab.com/ubports/development/core/lomiri-settings-components/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -1,7 +1,6 @@
{ stdenv { stdenv
, lib , lib
, fetchFromGitLab , fetchFromGitLab
, fetchpatch
, gitUpdater , gitUpdater
, cmake , cmake
, cmake-extras , cmake-extras
@ -17,48 +16,18 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-ui-extras"; pname = "lomiri-ui-extras";
version = "0.6.2"; version = "0.6.3";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lomiri-ui-extras"; repo = "development/core/lomiri-ui-extras";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-RZTGTe18ebqKz8kWOpRgFJO2sR97sVbdPQMW/XLHs68="; hash = "sha256-SF/UF84K9kNtLHO9FDuIFdQId0NfbmRiRZiPrOKvE9o=";
}; };
patches = [
# Fix compatibility with Exiv2 0.28.0
# Remove when version > 0.6.2
(fetchpatch {
name = "0001-lomiri-ui-extras-Fix-for-exiv2-0.28.0.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/commit/f337ceefa7c4f8f39dc7c75d51df8b86f148891a.patch";
hash = "sha256-dm50un46eTeBZsyHJF1npGBqOAF1BopJZ1Uln1PqSOE=";
})
# Remove deprecated qt5_use_modules usage
# Remove when version > 0.6.2
(fetchpatch {
name = "0002-lomiri-ui-extras-Stop-using-qt5_use_modules.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/commit/df506e7ebe7107dd0465d7d65727753f07abd122.patch";
hash = "sha256-VmOhJaUgjp9BHoYAO780uxI5tE7F0Gtp9gRNe0QCrhs=";
})
# Find qmltestrunner via PATH instead of hardcoded path
# https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/merge_requests/84
(fetchpatch {
name = "0003-lomiri-ui-extras-Dont-insist-on-finding-qmltestrunner-only-at-hardcoded-guess.patch";
url = "https://gitlab.com/OPNA2608/lomiri-ui-extras/-/commit/b0c4901818761b516a45b7f0524ac713ddf33cfe.patch";
hash = "sha256-oFeaGiYEDr9XHRlCpXX+0ALlVdfb0FmGBFF1RzIXSBE=";
})
];
postPatch = '' postPatch = ''
substituteInPlace modules/Lomiri/Components/Extras{,/{plugin,PamAuthentication}}/CMakeLists.txt \ substituteInPlace modules/Lomiri/Components/Extras{,/{plugin,PamAuthentication}}/CMakeLists.txt \
--replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
# tst_busy_indicator runs into a codepath in lomiri-ui-toolkit that expects a working GL context
sed -i tests/qml/CMakeLists.txt \
-e '/declare_qml_test("tst_busy_indicator"/d'
''; '';
strictDeps = true; strictDeps = true;
@ -89,11 +58,19 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true; dontWrapQtApps = true;
cmakeFlags = [ cmakeFlags = [
"-DENABLE_TESTS=${lib.boolToString finalAttrs.finalPackage.doCheck}" (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
# Exclude tests
"-E" (lib.strings.escapeShellArg "(${lib.concatStringsSep "|" [
# tst_busy_indicator runs into a codepath in lomiri-ui-toolkit that expects a working GL context
"^tst_busy_indicator"
# Photo & PhotoImageProvider Randomly fail, unsure why
"^tst_PhotoEditorPhoto"
]})")
]))
]; ];
# tst_PhotoEditorPhoto and tst_PhotoEditorPhotoImageProvider randomly fail, haven't had time to debug doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
doCheck = false;
# Parallelism breaks xvfb-run-launched script for QML tests # Parallelism breaks xvfb-run-launched script for QML tests
enableParallelChecking = false; enableParallelChecking = false;
@ -118,6 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
documentation and/or lack of automated tests. documentation and/or lack of automated tests.
''; '';
homepage = "https://gitlab.com/ubports/development/core/lomiri-ui-extras"; homepage = "https://gitlab.com/ubports/development/core/lomiri-ui-extras";
changelog = "https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -23,6 +23,7 @@
, qtsvg , qtsvg
, qtsystems , qtsystems
, suru-icon-theme , suru-icon-theme
, validatePkgConfig
, wrapQtAppsHook , wrapQtAppsHook
, xvfb-run , xvfb-run
}: }:
@ -34,13 +35,13 @@ let
in in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-ui-toolkit"; pname = "lomiri-ui-toolkit";
version = "1.3.5011"; version = "1.3.5012";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lomiri-ui-toolkit"; repo = "development/core/lomiri-ui-toolkit";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-z/EEmC9LjQtBx5MRDLeImxpRrzH4w6v6o+NmqX+L4dw="; hash = "sha256-Azz2IOm/7XRvDbyIKaYxrkR47evSB17ejtssuEJayPc=";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -58,22 +59,6 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-x8Zk7+VBSlM16a3V1yxJqIB63796H0lsS+F4dvR/z80="; 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 ./2001-Mark-problematic-tests.patch
(substituteAll { (substituteAll {
src = ./2002-Nixpkgs-versioned-QML-path.patch.in; src = ./2002-Nixpkgs-versioned-QML-path.patch.in;
@ -136,6 +121,7 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config pkg-config
python3 python3
qmake qmake
validatePkgConfig
wrapQtAppsHook wrapQtAppsHook
]; ];
@ -248,6 +234,7 @@ stdenv.mkDerivation (finalAttrs: {
- localisation through gettext - localisation through gettext
''; '';
homepage = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit"; homepage = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit";
changelog = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/blob/${finalAttrs.version}/ChangeLog";
license = with licenses; [ gpl3Only cc-by-sa-30 ]; license = with licenses; [ gpl3Only cc-by-sa-30 ];
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -18,17 +18,18 @@
, qtbase , qtbase
, qtdeclarative , qtdeclarative
, sqlite , sqlite
, validatePkgConfig
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "biometryd"; pname = "biometryd";
version = "0.3.0"; version = "0.3.1";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/biometryd"; repo = "development/core/biometryd";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-b095rsQnd63Ziqe+rn3ROo4LGXZxZ3Sa6h3apzCuyCs="; hash = "sha256-derU7pKdNf6pwhskaW7gCLcU9ixBG3U0EI/qtANmmTs=";
}; };
outputs = [ outputs = [
@ -36,48 +37,10 @@ stdenv.mkDerivation (finalAttrs: {
"dev" "dev"
]; ];
patches = [
# https://gitlab.com/ubports/development/core/biometryd/-/merge_requests/31
(fetchpatch {
url = "https://gitlab.com/OPNA2608/biometryd/-/commit/d01d979e4f98c6473761d1ace308aa182017804e.patch";
hash = "sha256-JxL3BLuh33ptfneU1y2qNGFKpeMlZlTMwCK97Rk3aTA=";
})
(fetchpatch {
url = "https://gitlab.com/OPNA2608/biometryd/-/commit/3cec6a3d42ea6aba8892da2c771b317f44daf9e2.patch";
hash = "sha256-Ij/aio38WmZ+NsUSbM195Gwb83goWIcCnJvGwAOJi50=";
})
(fetchpatch {
url = "https://gitlab.com/OPNA2608/biometryd/-/commit/e89bd9444bc1cfe84a9aa93faa23057c80f39564.patch";
hash = "sha256-1vEG349X9+SvY/f3no/l5cMVGpdzC8h/8XOZwL/70Dc=";
})
# https://gitlab.com/ubports/development/core/biometryd/-/merge_requests/32
(fetchpatch {
url = "https://gitlab.com/OPNA2608/biometryd/-/commit/9e52fad0139c5a45f69e6a6256b2b5ff54f77740.patch";
hash = "sha256-DZSdzKq6EYgAllKSDgkGk2g57zHN+gI5fOoj7U5AcKY=";
})
# Fix GCC13 & musl compat
# Remove when version > 0.3.0
(fetchpatch {
url = "https://gitlab.com/ubports/development/core/biometryd/-/commit/bc6f1a743dbb0eda6310bd13229f650be62aa3b3.patch";
hash = "sha256-Pr3zHrMNxTKYHsqHEcVv4fYVknjUwBFRTSuBxZhqUi8=";
})
];
postPatch = '' postPatch = ''
# Remove with !31 patches, fetchpatch can't apply renames
pushd data
for type in conf service; do
mv biometryd.$type biometryd.$type.in
substituteInPlace biometryd.$type.in \
--replace '/usr/bin' "\''${CMAKE_INSTALL_FULL_BINDIR}"
done
popd
# Uses pkg_get_variable, cannot substitute prefix with that # Uses pkg_get_variable, cannot substitute prefix with that
substituteInPlace CMakeLists.txt \ substituteInPlace data/CMakeLists.txt \
--replace 'pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir)' 'set(SYSTEMD_SYSTEM_UNIT_DIR "${placeholder "out"}/lib/systemd/system")' --replace 'pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemdsystemunitdir)' 'set(SYSTEMD_SYSTEM_UNIT_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/system")'
substituteInPlace src/biometry/qml/Biometryd/CMakeLists.txt \ substituteInPlace src/biometry/qml/Biometryd/CMakeLists.txt \
--replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
@ -91,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
cmake cmake
pkg-config pkg-config
qtdeclarative # qmlplugindump qtdeclarative # qmlplugindump
validatePkgConfig
]; ];
buildInputs = [ buildInputs = [
@ -114,8 +78,9 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true; dontWrapQtApps = true;
cmakeFlags = [ cmakeFlags = [
"-DENABLE_WERROR=OFF" # maybe-uninitialized warnings
"-DWITH_HYBRIS=OFF" (lib.cmakeBool "ENABLE_WERROR" false)
(lib.cmakeBool "WITH_HYBRIS" false)
]; ];
preBuild = '' preBuild = ''
@ -125,6 +90,11 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater { };
};
meta = with lib; { meta = with lib; {
description = "Mediates/multiplexes access to biometric devices"; description = "Mediates/multiplexes access to biometric devices";
longDescription = '' longDescription = ''
@ -133,6 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
them for identification and verification of users. them for identification and verification of users.
''; '';
homepage = "https://gitlab.com/ubports/development/core/biometryd"; homepage = "https://gitlab.com/ubports/development/core/biometryd";
changelog = "https://gitlab.com/ubports/development/core/biometryd/-/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
mainProgram = "biometryd"; mainProgram = "biometryd";

View File

@ -67,6 +67,18 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/3c5ca4a8ec125e003aca78c14521b70140856c25.patch"; url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/3c5ca4a8ec125e003aca78c14521b70140856c25.patch";
hash = "sha256-kYN0eLwMyM/9yK+zboyEsoPKZMZ4SCXodVYsvkQr2F8="; hash = "sha256-kYN0eLwMyM/9yK+zboyEsoPKZMZ4SCXodVYsvkQr2F8=";
}) })
# Remove when https://gitlab.com/ubports/development/core/content-hub/-/merge_requests/37 merged & in release
(fetchpatch {
name = "0004-content-hub-Fix-generation-of-transfer_files.patch";
url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/7ab3a4421356f83515f0deffb5f97a5b38601c13.patch";
hash = "sha256-MJZm3ny5t0/GX0bd5hGQbPM2k7M4KUvKqce/0cYYgvM=";
})
(fetchpatch {
name = "0005-content-hub-Fix-generation-of-moc_test_harness.patch";
url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/6e30f4f10ef90e817ca01d32959b6c782de48955.patch";
hash = "sha256-TAbYn265RpHpulaRVaHy9XqNF+qoDE7YQIfFMPfqEhw=";
})
]; ];
postPatch = '' postPatch = ''

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "hfd-service"; pname = "hfd-service";
version = "0.2.1"; version = "0.2.2";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/hfd-service"; repo = "development/core/hfd-service";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-KcHwLTSdo86YCteUsPndoxmLf23SOEhROc5cJQ8GS1Q="; hash = "sha256-OpT1vNjnyq66v54EoGOZOUb4HECD4WRJRh9hYMB0GI0=";
}; };
postPatch = '' postPatch = ''
@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
cmakeFlags = [ cmakeFlags = [
"-DENABLE_LIBHYBRIS=OFF" (lib.cmakeBool "ENABLE_LIBHYBRIS" false)
]; ];
dontWrapQtApps = true; dontWrapQtApps = true;
@ -69,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "DBus-activated service that manages human feedback devices such as LEDs and vibrators on mobile devices"; description = "DBus-activated service that manages human feedback devices such as LEDs and vibrators on mobile devices";
homepage = "https://gitlab.com/ubports/development/core/hfd-service"; homepage = "https://gitlab.com/ubports/development/core/hfd-service";
changelog = "https://gitlab.com/ubports/development/core/hfd-service/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -19,6 +19,7 @@
, sqlite , sqlite
, telepathy , telepathy
, telepathy-mission-control , telepathy-mission-control
, validatePkgConfig
, wrapQtAppsHook , wrapQtAppsHook
, xvfb-run , xvfb-run
}: }:
@ -28,13 +29,13 @@ let
in in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "history-service"; pname = "history-service";
version = "0.4"; version = "0.5";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/history-service"; repo = "development/core/history-service";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-oCX+moGQewzstbpddEYYp1kQdO2mVXpWJITfvzDzQDI="; hash = "sha256-m/ytJoHxW0q1vlVKK6Z9ovHzjoiS1AodCSGHTeKygfQ=";
}; };
outputs = [ outputs = [
@ -43,38 +44,31 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
patches = [ patches = [
# Deprecation warnings with Qt5.15, allow disabling -Werror
# Remove when version > 0.4
(fetchpatch {
url = "https://gitlab.com/ubports/development/core/history-service/-/commit/1370777952c6a2efb85f582ff8ba085c2c0e290a.patch";
hash = "sha256-Z/dFrFo7WoPZlKto6wNGeWdopsi8iBjmd5ycbqMKgxo=";
})
# Drop deprecated qt5_use_modules usage # Drop deprecated qt5_use_modules usage
# Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/36 merged & in release # Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/36 merged & in release
(fetchpatch { (fetchpatch {
url = "https://gitlab.com/OPNA2608/history-service/-/commit/b36ab377aca93555b29d1471d6eaa706b5c843ca.patch"; url = "https://gitlab.com/ubports/development/core/history-service/-/commit/b36ab377aca93555b29d1471d6eaa706b5c843ca.patch";
hash = "sha256-mOpXqqd4JI7lHtcWDm9LGCrtB8ERge04jMpHIagDM2k="; hash = "sha256-mOpXqqd4JI7lHtcWDm9LGCrtB8ERge04jMpHIagDM2k=";
}) })
# Add more / correct existing GNUInstallDirs usage # Add more / correct existing GNUInstallDirs usage
# Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/37 merged & in release # Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/37 merged & in release
(fetchpatch { (fetchpatch {
url = "https://gitlab.com/OPNA2608/history-service/-/commit/bb4dbdd16e80dcd286d8edfb86b08f0b61bc7fec.patch"; url = "https://gitlab.com/ubports/development/core/history-service/-/commit/bb4dbdd16e80dcd286d8edfb86b08f0b61bc7fec.patch";
hash = "sha256-C/XaygI663yaU06klQD9g0NnbqYxHSmzdbrRxcfiJkk="; hash = "sha256-C/XaygI663yaU06klQD9g0NnbqYxHSmzdbrRxcfiJkk=";
}) })
# Correct version information # Correct version information
# Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/38 merged & in release # Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/38 merged & in release
(fetchpatch { (fetchpatch {
url = "https://gitlab.com/OPNA2608/history-service/-/commit/30d9fbee203205ec1ea8fd19c9b6eb54c080a9e2.patch"; url = "https://gitlab.com/ubports/development/core/history-service/-/commit/98458126f9f494b124134fb35c198af0545f6a98.patch";
hash = "sha256-vSZ1ii5Yhw7pB+Pd1pjWnW7JsQxKnn+LeuBKo6qZjQs="; hash = "sha256-4EfLsaueKTCovl8EilN30cmfNfg19wvyCsbKqOrXtuw=";
}) })
# Make tests optional # Make tests optional
# Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/39 merged & in release # Remove when https://gitlab.com/ubports/development/core/history-service/-/merge_requests/39 merged & in release
(fetchpatch { (fetchpatch {
url = "https://gitlab.com/OPNA2608/history-service/-/commit/cb5c80cffc35611657244e15a7eb10edcd598ccd.patch"; url = "https://gitlab.com/ubports/development/core/history-service/-/commit/cb5c80cffc35611657244e15a7eb10edcd598ccd.patch";
hash = "sha256-MFHGu4OMScdThq9htUgFMpezP7Ym6YTIZUHWol20wqw="; hash = "sha256-MFHGu4OMScdThq9htUgFMpezP7Ym6YTIZUHWol20wqw=";
}) })
]; ];
@ -131,6 +125,7 @@ stdenv.mkDerivation (finalAttrs: {
cmake cmake
pkg-config pkg-config
sqlite sqlite
validatePkgConfig
wrapQtAppsHook wrapQtAppsHook
]; ];
@ -193,6 +188,7 @@ stdenv.mkDerivation (finalAttrs: {
Database location: ~/.local/share/history-service/history.sqlite Database location: ~/.local/share/history-service/history.sqlite
''; '';
homepage = "https://gitlab.com/ubports/development/core/history-service"; homepage = "https://gitlab.com/ubports/development/core/history-service";
changelog = "https://gitlab.com/ubports/development/core/history-service/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -9,7 +9,8 @@
, cmake-extras , cmake-extras
, dbus , dbus
, dbus-test-runner , dbus-test-runner
, withDocumentation ? true # Needs qdoc, https://github.com/NixOS/nixpkgs/pull/245379
, withDocumentation ? false
, doxygen , doxygen
, glog , glog
, graphviz , graphviz
@ -19,19 +20,20 @@
, python3 , python3
, qtbase , qtbase
, qtdeclarative , qtdeclarative
, validatePkgConfig
, wrapQtAppsHook , wrapQtAppsHook
, xvfb-run , xvfb-run
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-download-manager"; pname = "lomiri-download-manager";
version = "0.1.2"; version = "0.1.3";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lomiri-download-manager"; repo = "development/core/lomiri-download-manager";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-a9C+hactBMHMr31E+ImKDPgpzxajy1klkjDcSEkPHqI="; hash = "sha256-LhhO/zZ4wNiRd235NB2b08SQcCZt1awN/flcsLs2m8U=";
}; };
outputs = [ outputs = [
@ -42,42 +44,17 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
patches = [ patches = [
# Remove when version > 0.1.2 # This change seems incomplete, potentially breaks things on systems that don't use AppArmor mediation
# https://gitlab.com/ubports/development/core/lomiri-download-manager/-/merge_requests/24#note_1746801673
(fetchpatch { (fetchpatch {
name = "0001-lomiri-download-manager-Make-documentation-build-optional.patch"; name = "0001-lomiri-download-manager-Revert-Drop-GetConnectionAppArmorSecurityContext.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/32d7369714c01bd425af9c6de5bdc04399a12e0a.patch"; url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/2367f3dff852b69457b1a65a487cb032c210569f.patch";
hash = "sha256-UztcBAAFXDX2j0X5D3kMp9q0vFm3/PblUAKPJ5nZyiY="; revert = true;
}) hash = "sha256-xS0Wz6d+bZWj/kDGK2WhOduzyP4Rgz3n9n2XY1Zu5hE=";
# Remove when version > 0.1.2
(fetchpatch {
name = "0002-lomiri-download-manager-Upgrade-C++-standard-to-C++17.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/a6bc7ae80f2ff4c4743978c6c694149707d9d2e2.patch";
hash = "sha256-iA1sZhHI8Osgo1ofL5RTqgVzUG32zx0dU/28qcEqmQc=";
})
# Remove when version > 0.1.2
(fetchpatch {
name = "0003-lomiri-download-manager-Bump-version-make-Werror-and-tests-optional.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/73ec04c429e5285f05dd72d5bb9720ba6ff31be2.patch";
hash = "sha256-0BrJSKCvUhITwfln05OrHgHEpldbgBoh4rivAvw+qrc=";
})
# Remove when version > 0.1.2
(fetchpatch {
name = "0004-lomiri-download-manager-Use-GNUInstallDirs-variables-for-more-install-destinations.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/commit/5d40daf053de62150aa5ee618285e415d7d3f1c8.patch";
hash = "sha256-r5fpiJkZkDsYX9fcX5JuPsE/qli9z5/DatmGJ9/QauU=";
}) })
]; ];
postPatch = '' postPatch = ''
# fetchpatch strips renames
# Remove when version > 0.1.2
for service in src/{uploads,downloads}/daemon/{lomiri-*-manager,lomiri-*-manager-systemd,com.lomiri.*}.service; do
mv "$service" "$service".in
done
# pkg_get_variable doesn't let us substitute prefix pkg-config variable from systemd # pkg_get_variable doesn't let us substitute prefix pkg-config variable from systemd
substituteInPlace CMakeLists.txt \ substituteInPlace CMakeLists.txt \
--replace 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "${placeholder "out"}/lib/systemd/user")' \ --replace 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "${placeholder "out"}/lib/systemd/user")' \
@ -89,6 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
pkg-config pkg-config
validatePkgConfig
wrapQtAppsHook wrapQtAppsHook
] ++ lib.optionals withDocumentation [ ] ++ lib.optionals withDocumentation [
doxygen doxygen
@ -116,10 +94,10 @@ stdenv.mkDerivation (finalAttrs: {
]; ];
cmakeFlags = [ cmakeFlags = [
"-DENABLE_DOC=${lib.boolToString withDocumentation}" (lib.cmakeBool "ENABLE_DOC" withDocumentation)
# Deprecation warnings on Qt 5.15 # Deprecation warnings on Qt 5.15
# https://gitlab.com/ubports/development/core/lomiri-download-manager/-/issues/1 # https://gitlab.com/ubports/development/core/lomiri-download-manager/-/issues/1
"-DENABLE_WERROR=OFF" (lib.cmakeBool "ENABLE_WERROR" false)
]; ];
makeTargets = [ makeTargets = [
@ -146,6 +124,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "Performs uploads and downloads from a centralized location"; description = "Performs uploads and downloads from a centralized location";
homepage = "https://gitlab.com/ubports/development/core/lomiri-download-manager"; homepage = "https://gitlab.com/ubports/development/core/lomiri-download-manager";
changelog = "https://gitlab.com/ubports/development/core/lomiri-download-manager/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.lgpl3Only; license = licenses.lgpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -1,7 +1,6 @@
{ stdenv { stdenv
, lib , lib
, fetchFromGitLab , fetchFromGitLab
, fetchpatch
, gitUpdater , gitUpdater
, nixosTests , nixosTests
, testers , testers
@ -27,17 +26,18 @@
, python3 , python3
, qtdeclarative , qtdeclarative
, qtbase , qtbase
, validatePkgConfig
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-indicator-network"; pname = "lomiri-indicator-network";
version = "1.0.1"; version = "1.0.2";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "ubports"; owner = "ubports";
repo = "development/core/lomiri-indicator-network"; repo = "development/core/lomiri-indicator-network";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-rJKWhW082ndVPEQHjuSriKtl0zQw86adxiINkZQq1hY="; hash = "sha256-9AQCWCZFbt4XcmKsjoTXJlWOm02/kBhpPxbHRtftNFM=";
}; };
outputs = [ outputs = [
@ -46,22 +46,6 @@ stdenv.mkDerivation (finalAttrs: {
"doc" "doc"
]; ];
patches = [
# Remove when version > 1.0.1
(fetchpatch {
name = "0001-lomiri-indicator-network-Make-less-assumptions-about-where-files-will-end-up.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/commit/065212b22ab9aa8d25a61b5482ad6511e4c8510b.patch";
hash = "sha256-WrDTBKusK1808W8LZRGWaTOExu7gKpYBvkQ8hzoHoHk=";
})
# Remove when version > 1.0.1
(fetchpatch {
name = "0002-lomiri-indicator-network-Honour-CMAKE_INSTALL_DOCDIR_fordocumentation-installation.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/commit/79b9e12313f765ab6e95b4d4dfefbdbca50ef3c6.patch";
hash = "sha256-vRfdegEi892UlrC9c1+5Td7CHLh7u0foPggLNBfc8lw=";
})
];
postPatch = '' postPatch = ''
# Queried via pkg-config, would need to override a prefix variable # Queried via pkg-config, would need to override a prefix variable
# Needs CMake 3.28 or higher to do as part of the call, https://github.com/NixOS/nixpkgs/pull/275284 # Needs CMake 3.28 or higher to do as part of the call, https://github.com/NixOS/nixpkgs/pull/275284
@ -79,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
intltool intltool
pkg-config pkg-config
qtdeclarative qtdeclarative
validatePkgConfig
]; ];
buildInputs = [ buildInputs = [
@ -138,6 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; { meta = with lib; {
description = "Ayatana indiator exporting the network settings menu through D-Bus"; description = "Ayatana indiator exporting the network settings menu through D-Bus";
homepage = "https://gitlab.com/ubports/development/core/lomiri-indicator-network"; homepage = "https://gitlab.com/ubports/development/core/lomiri-indicator-network";
changelog = "https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = teams.lomiri.members; maintainers = teams.lomiri.members;
platforms = platforms.linux; platforms = platforms.linux;

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