Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2022-12-29 06:01:46 +00:00 committed by GitHub
commit df1fb5ef89
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 4396 additions and 11994 deletions

View file

@ -558,6 +558,15 @@ rec {
nestedTypes.elemType = elemType;
};
# TODO: deprecate this in the future:
loaOf = elemType: types.attrsOf elemType // {
name = "loaOf";
deprecationMessage = "Mixing lists with attribute values is no longer"
+ " possible; please use `types.attrsOf` instead. See"
+ " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation.";
nestedTypes.elemType = elemType;
};
# Value of given type but with no merging (i.e. `uniq list`s are not concatenated).
uniq = elemType: mkOptionType rec {
name = "uniq";

View file

@ -97,10 +97,15 @@ let
in
map (x: "${mountPoint x}.mount") (getPoolFilesystems pool);
getKeyLocations = pool:
if isBool cfgZfs.requestEncryptionCredentials
then "${cfgZfs.package}/sbin/zfs list -rHo name,keylocation,keystatus ${pool}"
else "${cfgZfs.package}/sbin/zfs list -Ho name,keylocation,keystatus ${toString (filter (x: datasetToPool x == pool) cfgZfs.requestEncryptionCredentials)}";
getKeyLocations = pool: if isBool cfgZfs.requestEncryptionCredentials then {
hasKeys = cfgZfs.requestEncryptionCredentials;
command = "${cfgZfs.package}/sbin/zfs list -rHo name,keylocation,keystatus ${pool}";
} else let
keys = filter (x: datasetToPool x == pool) cfgZfs.requestEncryptionCredentials;
in {
hasKeys = keys != [];
command = "${cfgZfs.package}/sbin/zfs list -Ho name,keylocation,keystatus ${toString keys}";
};
createImportService = { pool, systemd, force, prefix ? "" }:
nameValuePair "zfs-import-${pool}" {
@ -124,7 +129,9 @@ let
RemainAfterExit = true;
};
environment.ZFS_FORCE = optionalString force "-f";
script = (importLib {
script = let
keyLocations = getKeyLocations pool;
in (importLib {
# See comments at importLib definition.
zpoolCmd = "${cfgZfs.package}/sbin/zpool";
awkCmd = "${pkgs.gawk}/bin/awk";
@ -139,10 +146,8 @@ let
done
poolImported "${pool}" || poolImport "${pool}" # Try one last time, e.g. to import a degraded pool.
if poolImported "${pool}"; then
${optionalString (if isBool cfgZfs.requestEncryptionCredentials
then cfgZfs.requestEncryptionCredentials
else cfgZfs.requestEncryptionCredentials != []) ''
${getKeyLocations pool} | while IFS=$'\t' read ds kl ks; do
${optionalString keyLocations.hasKeys ''
${keyLocations.command} | while IFS=$'\t' read ds kl ks; do
{
if [[ "$ks" != unavailable ]]; then
continue
@ -565,7 +570,7 @@ in
''
else concatMapStrings (fs: ''
zfs load-key -- ${escapeShellArg fs}
'') cfgZfs.requestEncryptionCredentials}
'') (filter (x: datasetToPool x == pool) cfgZfs.requestEncryptionCredentials)}
'') rootPools));
# Systemd in stage 1

View file

@ -17,103 +17,151 @@ let
makeTest {
name = "zfs-" + name;
meta = with pkgs.lib.maintainers; {
maintainers = [ adisbladis ];
maintainers = [ adisbladis elvishjerricco ];
};
nodes.machine = { pkgs, lib, ... }:
let
usersharePath = "/var/lib/samba/usershares";
in {
virtualisation.emptyDiskImages = [ 4096 ];
virtualisation = {
emptyDiskImages = [ 4096 4096 ];
useBootLoader = true;
useEFIBoot = true;
};
boot.loader.systemd-boot.enable = true;
boot.loader.timeout = 0;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostId = "deadbeef";
boot.kernelPackages = kernelPackage;
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.enableUnstable = enableUnstable;
services.samba = {
enable = true;
extraConfig = ''
registry shares = yes
usershare path = ${usersharePath}
usershare allow guests = yes
usershare max shares = 100
usershare owner only = no
'';
};
systemd.services.samba-smbd.serviceConfig.ExecStartPre =
"${pkgs.coreutils}/bin/mkdir -m +t -p ${usersharePath}";
environment.systemPackages = [ pkgs.parted ];
# Setup regular fileSystems machinery to ensure forceImportAll can be
# tested via the regular service units.
virtualisation.fileSystems = {
"/forcepool" = {
device = "forcepool";
# /dev/disk/by-id doesn't get populated in the NixOS test framework
boot.zfs.devNodes = "/dev/disk/by-uuid";
specialisation.samba.configuration = {
services.samba = {
enable = true;
extraConfig = ''
registry shares = yes
usershare path = ${usersharePath}
usershare allow guests = yes
usershare max shares = 100
usershare owner only = no
'';
};
systemd.services.samba-smbd.serviceConfig.ExecStartPre =
"${pkgs.coreutils}/bin/mkdir -m +t -p ${usersharePath}";
virtualisation.fileSystems = {
"/tmp/mnt" = {
device = "rpool/root";
fsType = "zfs";
};
};
};
specialisation.encryption.configuration = {
boot.zfs.requestEncryptionCredentials = [ "automatic" ];
virtualisation.fileSystems."/automatic" = {
device = "automatic";
fsType = "zfs";
};
virtualisation.fileSystems."/manual" = {
device = "manual";
fsType = "zfs";
};
virtualisation.fileSystems."/manual/encrypted" = {
device = "manual/encrypted";
fsType = "zfs";
options = [ "noauto" ];
};
};
# forcepool doesn't exist at first boot, and we need to manually test
# the import after tweaking the hostId.
systemd.services.zfs-import-forcepool.wantedBy = lib.mkVMOverride [];
systemd.targets.zfs.wantedBy = lib.mkVMOverride [];
boot.zfs.forceImportAll = true;
# /dev/disk/by-id doesn't get populated in the NixOS test framework
boot.zfs.devNodes = "/dev/disk/by-uuid";
specialisation.forcepool.configuration = {
systemd.services.zfs-import-forcepool.wantedBy = lib.mkVMOverride [ "forcepool.mount" ];
systemd.targets.zfs.wantedBy = lib.mkVMOverride [];
boot.zfs.forceImportAll = true;
virtualisation.fileSystems."/forcepool" = {
device = "forcepool";
fsType = "zfs";
options = [ "noauto" ];
};
};
};
testScript = ''
machine.wait_for_unit("multi-user.target")
machine.succeed(
"modprobe zfs",
"zpool status",
"ls /dev",
"mkdir /tmp/mnt",
"udevadm settle",
"parted --script /dev/vdb mklabel msdos",
"parted --script /dev/vdb -- mkpart primary 1024M -1s",
"udevadm settle",
"zpool create rpool /dev/vdb1",
"zfs create -o mountpoint=legacy rpool/root",
# shared datasets cannot have legacy mountpoint
"zfs create rpool/shared_smb",
"mount -t zfs rpool/root /tmp/mnt",
"udevadm settle",
# wait for samba services
"systemctl is-system-running --wait",
"zfs set sharesmb=on rpool/shared_smb",
"zfs share rpool/shared_smb",
"smbclient -gNL localhost | grep rpool_shared_smb",
"umount /tmp/mnt",
"zpool destroy rpool",
"udevadm settle",
"parted --script /dev/vdc mklabel msdos",
"parted --script /dev/vdc -- mkpart primary 1024M -1s",
"parted --script /dev/vdd mklabel msdos",
"parted --script /dev/vdd -- mkpart primary 1024M -1s",
)
machine.succeed(
'echo password | zpool create -o altroot="/tmp/mnt" '
+ "-O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1",
"zfs create -o mountpoint=legacy rpool/root",
"mount -t zfs rpool/root /tmp/mnt",
"udevadm settle",
"umount /tmp/mnt",
"zpool destroy rpool",
"udevadm settle",
)
with subtest("sharesmb works"):
machine.succeed(
"zpool create rpool /dev/vdc1",
"zfs create -o mountpoint=legacy rpool/root",
# shared datasets cannot have legacy mountpoint
"zfs create rpool/shared_smb",
"bootctl set-default nixos-generation-1-specialisation-samba.conf",
"sync",
)
machine.crash()
machine.wait_for_unit("multi-user.target")
machine.succeed(
"zfs set sharesmb=on rpool/shared_smb",
"zfs share rpool/shared_smb",
"smbclient -gNL localhost | grep rpool_shared_smb",
"umount /tmp/mnt",
"zpool destroy rpool",
)
with subtest("encryption works"):
machine.succeed(
'echo password | zpool create -O mountpoint=legacy '
+ "-O encryption=aes-256-gcm -O keyformat=passphrase automatic /dev/vdc1",
"zpool create -O mountpoint=legacy manual /dev/vdd1",
"echo otherpass | zfs create "
+ "-o encryption=aes-256-gcm -o keyformat=passphrase manual/encrypted",
"bootctl set-default nixos-generation-1-specialisation-encryption.conf",
"sync",
"zpool export automatic",
"zpool export manual",
)
machine.crash()
machine.start()
machine.wait_for_console_text("Starting password query on")
machine.send_console("password\n")
machine.wait_for_unit("multi-user.target")
machine.succeed(
"zfs get keystatus manual/encrypted | grep unavailable",
"echo otherpass | zfs load-key manual/encrypted",
"systemctl start manual-encrypted.mount",
"umount /automatic /manual/encrypted /manual",
"zpool destroy automatic",
"zpool destroy manual",
)
with subtest("boot.zfs.forceImportAll works"):
machine.succeed(
"rm /etc/hostid",
"zgenhostid deadcafe",
"zpool create forcepool /dev/vdb1 -O mountpoint=legacy",
"zpool create forcepool /dev/vdc1 -O mountpoint=legacy",
"bootctl set-default nixos-generation-1-specialisation-forcepool.conf",
"rm /etc/hostid",
"sync",
)
machine.shutdown()
machine.start()
machine.succeed("udevadm settle")
machine.crash()
machine.wait_for_unit("multi-user.target")
machine.fail("zpool import forcepool")
machine.succeed(
"systemctl start zfs-import-forcepool.service",
"mount -t zfs forcepool /tmp/mnt",
"systemctl start forcepool.mount",
"mount | grep forcepool",
)
'' + extraTest;

View file

@ -53,30 +53,21 @@
, libpng
, libjpeg
, AppKit
, AudioToolbox
, AudioUnit
, Carbon
, CoreAudio
, CoreAudioKit
, CoreServices
}:
# TODO
# 1. detach sbsms
let
inherit (lib) optionals;
pname = "audacity";
version = "3.2.2";
in
stdenv.mkDerivation rec {
inherit pname version;
pname = "audacity";
version = "3.2.3";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "Audacity-${version}";
sha256 = "sha256-vDkIBsXINo7g8lbDfXYTaz2AB6HWPc5resITllVNd6o=";
sha256 = "sha256-0F9+4hyUoKb0UP5t02yws/ErogscvI1nsdnSTpcr53E=";
};
postPatch = ''
@ -84,10 +75,6 @@ stdenv.mkDerivation rec {
'' + lib.optionalString stdenv.isLinux ''
substituteInPlace libraries/lib-files/FileNames.cpp \
--replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
''
# error: unknown type name 'NSAppearanceName'
+ lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
sed -z -i "s/if (@available(macOS 10.14, \*)).*}/}/g" src/AudacityApp.mm
'';
nativeBuildInputs = [
@ -97,7 +84,7 @@ stdenv.mkDerivation rec {
python3
makeWrapper
wrapGAppsHook
] ++ optionals stdenv.isLinux [
] ++ lib.optionals stdenv.isLinux [
linuxHeaders
];
@ -106,6 +93,9 @@ stdenv.mkDerivation rec {
ffmpeg_4
file
flac
] ++ lib.optionals stdenv.isDarwin [
AppKit
] ++ [
gtk3
lame
libid3tag
@ -131,7 +121,7 @@ stdenv.mkDerivation rec {
portaudio
wavpack
wxGTK32
] ++ optionals stdenv.isLinux [
] ++ lib.optionals stdenv.isLinux [
alsa-lib # for portaudio
at-spi2-core
dbus
@ -144,10 +134,8 @@ stdenv.mkDerivation rec {
libsepol
libuuid
util-linux
] ++ optionals stdenv.isDarwin [
AppKit
CoreAudioKit
AudioUnit AudioToolbox CoreAudio CoreServices Carbon # for portaudio
] ++ lib.optionals stdenv.isDarwin [
CoreAudioKit # for portaudio
libpng
libjpeg
];

View file

@ -1,23 +1,25 @@
{
stdenv, mkDerivation, lib,
extra-cmake-modules, kdoctools,
breeze-icons, chmlib, discount, djvulibre, ebook_tools, kactivities,
karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
kdbusaddons, kdegraphics-mobipocket, kiconthemes, kjs, khtml, kio, kparts,
kpty, kpurpose, kwallet, kwindowsystem, libkexiv2, libspectre, libzip, phonon, poppler,
qca-qt5, qtdeclarative, qtsvg, threadweaver, kcrash, qtspeech
{ stdenv, mkDerivation, lib
, extra-cmake-modules, kdoctools
, breeze-icons, chmlib, discount, djvulibre, ebook_tools, kactivities
, karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons
, kdbusaddons, kdegraphics-mobipocket, kiconthemes, kjs, khtml, kio, kparts
, kpty, kpurpose, kwallet, kwindowsystem, libkexiv2, libspectre, libzip, phonon, poppler
, qca-qt5, qtdeclarative, qtsvg, threadweaver, kcrash
, withSpeech ? true, qtspeech
}:
mkDerivation {
pname = "okular";
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
breeze-icons discount djvulibre ebook_tools kactivities karchive kbookmarks
kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
kdegraphics-mobipocket kiconthemes kjs khtml kio kparts kpty kpurpose kwallet
kwindowsystem libkexiv2 libspectre libzip phonon poppler qca-qt5
qtdeclarative qtsvg threadweaver kcrash qtspeech chmlib
];
qtdeclarative qtsvg threadweaver kcrash chmlib
] ++ lib.optional withSpeech qtspeech;
# InitialPreference values are too high and end up making okular
# default for anything considered text/plain. Resetting to 1, which
@ -27,6 +29,8 @@ mkDerivation {
--replace InitialPreference=3 InitialPreference=1
'';
cmakeFlags = lib.optional (!withSpeech) "-DFORCE_NOT_REQUIRED_DEPENDENCIES=Qt5TextToSpeech";
meta = with lib; {
homepage = "http://www.kde.org";
description = "KDE document viewer";

View file

@ -67,6 +67,10 @@ stdenvNoCC.mkDerivation {
--prefix LD_LIBRARY_PATH : "$runtimeDependenciesPath" \
--run "$prepareParsec"
substituteInPlace $out/share/applications/parsecd.desktop \
--replace "/usr/bin/parsecd" "parsecd" \
--replace "/usr/share/icons" "${placeholder "out"}/share/icons"
runHook postInstall
'';

View file

@ -16,12 +16,6 @@
, libjpeg
}:
let
# Courtesy of sternenseemann and FRidh, commit c9a7fdfcfb420be8e0179214d0d91a34f5974c54
mesonFeatureFlag = feature: flag:
"-D${feature}=${if flag then "enabled" else "disabled"}";
in
stdenv.mkDerivation rec {
pname = "wbg";
version = "1.0.2";
@ -52,8 +46,8 @@ stdenv.mkDerivation rec {
mesonBuildType = "release";
mesonFlags = [
(mesonFeatureFlag "png" enablePNG)
(mesonFeatureFlag "jpeg" enableJPEG)
(lib.mesonEnable "png" enablePNG)
(lib.mesonEnable "jpeg" enableJPEG)
];
meta = with lib; {

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "talosctl";
version = "1.3.0";
version = "1.3.1";
src = fetchFromGitHub {
owner = "siderolabs";
repo = "talos";
rev = "v${version}";
sha256 = "sha256-2/myjkALv5gz/mbT/unRBC2Hi0jWPBzcoDKhOOHq/bw=";
sha256 = "sha256-K5eslPo4Ou/JJoZGASJsZ331Nyc14Dva+cead3ngw0U=";
};
vendorSha256 = "sha256-NAGq4HX4A3Sq8QlWSD/UBBVwY6EgT/1MC5s8uTJX2Po=";
vendorSha256 = "sha256-N+sFJtC+9VCt3GJoAbRsNl7vCXiFFlewsIkwTdleUhk=";
ldflags = [ "-s" "-w" ];

View file

@ -167,11 +167,11 @@
"vendorHash": null
},
"bitbucket": {
"hash": "sha256-DRczX/UQB/0KVZG7wcMCvNerOSIjiEl222Nhq0HjpZM=",
"hash": "sha256-rE9kEMC/b3J5YjF94HBqUhorjcsMAx40jnxgsShNNUc=",
"homepage": "https://registry.terraform.io/providers/DrFaust92/bitbucket",
"owner": "DrFaust92",
"repo": "terraform-provider-bitbucket",
"rev": "v2.26.0",
"rev": "v2.27.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-8/ZEO0cxseXqQHx+/wKjsM0T3l+tBdCTFZqNfjaTOpo="
},
@ -222,13 +222,13 @@
"vendorHash": "sha256-PALZGyGZ6Ggccl4V9gG+gsEdNipYG+DCaZkqF0W1IMQ="
},
"cloudflare": {
"hash": "sha256-Vlugad/EF53rbMOz2djIPEeTpO62y9OpiDHlDDeu/jI=",
"hash": "sha256-0hQpnJU1qLHqk8nUO+Ibvh9y8dpBBoDqQj3wiYWMTbg=",
"homepage": "https://registry.terraform.io/providers/cloudflare/cloudflare",
"owner": "cloudflare",
"repo": "terraform-provider-cloudflare",
"rev": "v3.30.0",
"rev": "v3.31.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-s0z+CvCH3SCbddppwdXKD+Fle4MmHM5eRV07r+DNrnU="
"vendorHash": "sha256-Y5z0bRiNu1gOm7nIcQieLWll/sOSgBlKrJlqng2kizQ="
},
"cloudfoundry": {
"hash": "sha256-RIzAUhusyA+lMHkfsWk/27x3ZRGVcAzqgBaoI8erQSY=",
@ -625,11 +625,11 @@
"vendorHash": "sha256-nDvnLEOtXkUJFY22pKogOzkWrj4qjyQbdlJ5pa/xnK8="
},
"ksyun": {
"hash": "sha256-vmENjW/r+d6UWdq8q/x9kO16CQkRVQRdBYAFkBKa1vI=",
"hash": "sha256-HtZ+uEbI+UFO51rj9P8rKWNjRZaX6QhIZ1c9TO1USvI=",
"homepage": "https://registry.terraform.io/providers/kingsoftcloud/ksyun",
"owner": "kingsoftcloud",
"repo": "terraform-provider-ksyun",
"rev": "v1.3.61",
"rev": "v1.3.62",
"spdx": "MPL-2.0",
"vendorHash": "sha256-miHKAz+ONXtuC1DNukcyZbbaYReY69dz9Zk6cJdORdQ="
},

View file

@ -38,15 +38,15 @@ assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is
assert gbmSupport || waylandSupport || x11Support;
let
kodiReleaseDate = "20220303";
kodiVersion = "19.4";
kodiReleaseDate = "20221204";
kodiVersion = "19.5";
rel = "Matrix";
kodi_src = fetchFromGitHub {
owner = "xbmc";
repo = "xbmc";
rev = "${kodiVersion}-${rel}";
sha256 = "sha256-XDtmY3KthiD91kvueQRSamBcdM7fBpRntmZX6KRsCzE=";
sha256 = "sha256-vprhEPxYpY3/AsUgvPNnhBlh0Dl73ekALAblHaUKzd0=";
};
ffmpeg = stdenv.mkDerivation rec {

View file

@ -99,21 +99,19 @@ in stdenv.mkDerivation rec {
NIX_LDFLAGS = lib.optionalString x11Support "-lX11 -lXext ";
mesonFlags = let
inherit (lib) mesonOption mesonBool mesonEnable;
in [
(mesonOption "default_library" "shared")
(mesonBool "libmpv" true)
(mesonEnable "libarchive" archiveSupport)
(mesonEnable "manpage-build" true)
(mesonEnable "cdda" cddaSupport)
(mesonEnable "dvbin" dvbinSupport)
(mesonEnable "dvdnav" dvdnavSupport)
(mesonEnable "openal" openalSupport)
(mesonEnable "sdl2" sdl2Support)
mesonFlags = [
(lib.mesonOption "default_library" "shared")
(lib.mesonBool "libmpv" true)
(lib.mesonEnable "libarchive" archiveSupport)
(lib.mesonEnable "manpage-build" true)
(lib.mesonEnable "cdda" cddaSupport)
(lib.mesonEnable "dvbin" dvbinSupport)
(lib.mesonEnable "dvdnav" dvdnavSupport)
(lib.mesonEnable "openal" openalSupport)
(lib.mesonEnable "sdl2" sdl2Support)
# Disable whilst Swift isn't supported
(mesonEnable "swift-build" swiftSupport)
(mesonEnable "macos-cocoa-cb" swiftSupport)
(lib.mesonEnable "swift-build" swiftSupport)
(lib.mesonEnable "macos-cocoa-cb" swiftSupport)
];
mesonAutoFeatures = "auto";

View file

@ -13,10 +13,6 @@ let
"grapheme"
"run"
];
# Courtesy of sternenseemann and FRidh, commit c9a7fdfcfb420be8e0179214d0d91a34f5974c54
mesonFeatureFlag = feature: flag:
"-D${feature}=${if flag then "enabled" else "disabled"}";
in
stdenv.mkDerivation rec {
@ -40,7 +36,7 @@ stdenv.mkDerivation rec {
mesonBuildType = "release";
mesonFlags = builtins.map (t:
mesonFeatureFlag "${t}-shaping" (lib.elem t withShapingTypes)
lib.mesonEnable "${t}-shaping" (lib.elem t withShapingTypes)
) availableShapingTypes;
doCheck = true;

View file

@ -30,16 +30,9 @@
, qt5
}:
let
stdenv.mkDerivation rec {
pname = "harfbuzz${lib.optionalString withIcu "-icu"}";
version = "5.3.1";
inherit (lib) optional optionals optionalString;
mesonFeatureFlag = feature: flag:
"-D${feature}=${if flag then "enabled" else "disabled"}";
in
stdenv.mkDerivation {
pname = "harfbuzz${optionalString withIcu "-icu"}";
inherit version;
src = fetchurl {
url = "https://github.com/harfbuzz/harfbuzz/releases/download/${version}/harfbuzz-${version}.tar.xz";
@ -72,12 +65,12 @@ stdenv.mkDerivation {
# and is not part of the library.
# Cairo causes transitive (build) dependencies on various X11 or other
# GUI-related libraries, so it shouldn't be re-added lightly.
(mesonFeatureFlag "cairo" false)
(lib.mesonEnable "cairo" false)
# chafa is only used in a development utility, not in the library
(mesonFeatureFlag "chafa" false)
(mesonFeatureFlag "coretext" withCoreText)
(mesonFeatureFlag "graphite" withGraphite2)
(mesonFeatureFlag "icu" withIcu)
(lib.mesonEnable "chafa" false)
(lib.mesonEnable "coretext" withCoreText)
(lib.mesonEnable "graphite" withGraphite2)
(lib.mesonEnable "icu" withIcu)
];
depsBuildBuild = [
@ -99,17 +92,17 @@ stdenv.mkDerivation {
buildInputs = [ glib freetype gobject-introspection ]
++ lib.optionals withCoreText [ ApplicationServices CoreText ];
propagatedBuildInputs = optional withGraphite2 graphite2
++ optionals withIcu [ icu harfbuzz ];
propagatedBuildInputs = lib.optional withGraphite2 graphite2
++ lib.optionals withIcu [ icu harfbuzz ];
doCheck = true;
# Slightly hacky; some pkgs expect them in a single directory.
postFixup = optionalString withIcu ''
postFixup = lib.optionalString withIcu ''
rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc"
ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la
ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc
${optionalString stdenv.isDarwin ''
${lib.optionalString stdenv.isDarwin ''
ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.dylib
ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.0.dylib
''}

View file

@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "olm";
version = "3.2.13";
version = "3.2.14";
src = fetchFromGitLab {
domain = "gitlab.matrix.org";
owner = "matrix-org";
repo = pname;
rev = version;
sha256 = "sha256-s1OleVRvJRFvN9MwXT7lAjDjyHkbIkbpl/F8P/91oaU=";
sha256 = "sha256-Bcdl3myzWZb8vu3crYDKt8hEXD9QcZGOphT2KIZ+R14=";
};
nativeBuildInputs = [ cmake ];

View file

@ -0,0 +1,50 @@
{ lib
, stdenv
, fetchFromGitLab
, cmake
, boost
, properties-cpp
, pkg-config
}:
stdenv.mkDerivation rec {
pname = "process-cpp";
version = "unstable-2021-05-11";
src = fetchFromGitLab {
domain = "gitlab.com";
owner = "ubports";
repo = "development/core/lib-cpp/process-cpp";
rev = "ee6d99a3278343f5fdcec7ed3dad38763e257310";
sha256 = "sha256-jDYXKCzrg/ZGFC2xpyfkn/f7J3t0cdOwHK2mLlYWNN0=";
};
postPatch = ''
# Excludes tests from tainting nativeBuildInputs with their dependencies when not being run
# Tests fail upon verifying OOM score adjustment via /proc/<pid>/oom_score
# [ RUN ] LinuxProcess.adjusting_proc_oom_score_adj_works
# /build/source/tests/linux_process_test.cpp:83: Failure
# Value of: is_approximately_equal(oom_score.value, core::posix::linux::proc::process::OomScoreAdj::max_value())
# Actual: false (333 > 10)
# Expected: true
sed -i '/tests/d' CMakeLists.txt
'';
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
boost
properties-cpp
];
meta = with lib; {
description = "A simple convenience library for handling processes in C++11";
homepage = "https://gitlab.com/ubports/development/core/lib-cpp/process-cpp";
license = with licenses; [ gpl3Only lgpl3Only ];
maintainers = with maintainers; [ onny ];
platforms = platforms.linux;
};
}

View file

@ -1,5 +1,19 @@
{ callPackage }:
callPackage ./generic.nix {} {
{ fetchzip, lib }:
fetchzip rec {
pname = "psol";
version = "1.13.35.2"; # Latest stable, 2018-02-05
sha256 = "0xi2srf9gx0x2sz9r45zb35k2n0iv457if1lqzvbanls3f935cmr";
url = "https://dl.google.com/dl/page-speed/psol/${version}-x64.tar.gz";
sha256 = "0xi2srf9gx0x2sz9r45zb35k2n0iv457if1lqzvbanls3f935cmr";
meta = with lib; {
description = "PageSpeed Optimization Libraries";
homepage = "https://developers.google.com/speed/pagespeed/psol";
license = licenses.asl20;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
# WARNING: This only works with Linux because the pre-built PSOL binary is only supplied for Linux.
# TODO: Build PSOL from source to support more platforms.
platforms = platforms.linux;
};
}

View file

@ -1,17 +0,0 @@
{ fetchzip, lib }:
{ version, sha256 }:
{ inherit version; } // fetchzip {
inherit sha256;
name = "psol-${version}";
url = "https://dl.google.com/dl/page-speed/psol/${version}-x64.tar.gz";
meta = {
description = "PageSpeed Optimization Libraries";
homepage = "https://developers.google.com/speed/pagespeed/psol";
license = lib.licenses.asl20;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
# WARNING: This only works with Linux because the pre-built PSOL binary is only supplied for Linux.
# TODO: Build PSOL from source to support more platforms.
platforms = lib.platforms.linux;
};
}

View file

@ -126,13 +126,13 @@ let
in
stdenv.mkDerivation rec {
pname = "hydra";
version = "unstable-2022-12-05";
version = "2022-12-23";
src = fetchFromGitHub {
owner = "NixOS";
repo = "hydra";
rev = "d1fac69c213002721971cd983e2576b784677d40";
sha256 = "sha256-HVsp+BPjEDS1lR7sjplWNrNljHvYcaUiaAn8gGNAMxU=";
rev = "f48f00ee6d5727ae3e488cbf9ce157460853fea8";
sha256 = "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=";
};
buildInputs = [

View file

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "ruff";
version = "0.0.198";
version = "0.0.199";
src = fetchFromGitHub {
owner = "charliermarsh";
repo = pname;
rev = "v${version}";
sha256 = "sha256-hXG3Iu9p678UYh4NrpaVoPj8CDdU7D3GB7BQHsyQHWg=";
sha256 = "sha256-cA3MTk7jlcPKHqW+8Xf508v9v42WmdhCU2r4eIiG5ic=";
};
cargoSha256 = "sha256-uWdlbVV6IODK+iugut/S8/WJwa9rSIvenvaROeyLaR0=";
cargoSha256 = "sha256-cXjQWMnMSypHn0fynzJQYj+bqszuvRmIOPX4IrSuQbo=";
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.CoreServices

View file

@ -1,4 +1,5 @@
{ lib
, gitUpdater
, buildPythonApplication
, fetchFromGitHub
, pythonOlder
@ -33,4 +34,8 @@ buildPythonApplication rec {
license = with licenses; [ gpl3 ];
maintainers = with maintainers; [ aidalgol ];
};
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
}

View file

@ -1,6 +1,7 @@
{ lib
, mkYarnPackage
, fetchFromGitHub
, gitUpdater
, makeWrapper
, electron
, gogdl
@ -9,13 +10,13 @@
mkYarnPackage rec {
pname = "heroic-unwrapped";
version = "2.4.3";
version = "2.5.2";
src = fetchFromGitHub {
owner = "Heroic-Games-Launcher";
repo = "HeroicGamesLauncher";
rev = "v${version}";
sha256 = "sha256-x9zIM2kKi+JgIGIidQYjyjqVGweFJ8DE7IX9gYULQuQ=";
sha256 = "sha256-vyZH/uOE7Oph8TuBFM2cUFwM4ed8Ri3fKRUrl9A6zHc=";
};
packageJSON = ./package.json;
@ -29,10 +30,11 @@ mkYarnPackage rec {
DISABLE_ESLINT_PLUGIN = "true";
postBuild = let
yarnCmd = "yarn --production --offline --frozen-lockfile --ignore-engines --ignore-scripts --lockfile ${yarnLock}";
yarnCmd = "yarn --offline --frozen-lockfile --ignore-engines --ignore-scripts --lockfile ${yarnLock}";
in ''
${yarnCmd} build-electron
${yarnCmd} build
rm deps/heroic/node_modules
ln -s ../../node_modules deps/heroic/
${yarnCmd} vite build
'';
# Disable bundling into a tar archive.
@ -44,8 +46,8 @@ mkYarnPackage rec {
deps = "$out/libexec/heroic/deps/heroic";
in ''
rm -rf "${deps}/public/bin" "${deps}/build/bin"
mkdir -p "${deps}/public/bin/linux"
ln -s "${gogdl}/bin/gogdl" "${legendary-gl}/bin/legendary" "${deps}/public/bin/linux"
mkdir -p "${deps}/build/bin/linux"
ln -s "${gogdl}/bin/gogdl" "${legendary-gl}/bin/legendary" "${deps}/build/bin/linux"
makeWrapper "${electron}/bin/electron" "$out/bin/heroic" \
--inherit-argv0 \
@ -59,6 +61,10 @@ mkYarnPackage rec {
ln -s "${deps}/flatpak/com.heroicgameslauncher.hgl.png" "$out/share/icons/hicolor/512x512/apps"
'';
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = with lib; {
description = "A Native GOG and Epic Games Launcher for Linux, Windows and Mac";
homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher";

View file

@ -1,8 +1,8 @@
{
"name": "heroic",
"version": "2.4.0",
"version": "2.5.2",
"private": true,
"main": "public/main.js",
"main": "build/electron/main.js",
"homepage": "./",
"license": "GPL-3.0-only",
"description": "An Open Source Launcher for GOG and Epic Games",
@ -30,9 +30,6 @@
"build/icon-dark.png",
"build/icon-light.png"
],
"directories": {
"buildResources": "public"
},
"protocols": [
{
"name": "heroic",
@ -42,7 +39,7 @@
}
],
"win": {
"artifactName": "Heroic_Setup_${version}.${ext}",
"artifactName": "${productName}-${version}-Setup.${ext}",
"icon": "build/win_icon.ico",
"asarUnpack": [
"build/bin/win32/legendary.exe",
@ -52,6 +49,9 @@
"build/bin/win32/*"
]
},
"portable": {
"artifactName": "${productName}-${version}-Portable.${ext}"
},
"mac": {
"target": "dmg",
"category": "public.app-category.games",
@ -103,21 +103,18 @@
"deb": {
"packageCategory": "games",
"depends": [
"gawk",
"curl"
]
},
"pacman": {
"packageCategory": "games",
"depends": [
"gawk",
"curl"
]
},
"rpm": {
"packageCategory": "games",
"depends": [
"gawk",
"curl"
]
}
@ -132,9 +129,10 @@
"@fortawesome/free-regular-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.18",
"@mui/icons-material": "^5.6.2",
"@mui/material": "^5.6.2",
"@mui/icons-material": "^5.10.9",
"@mui/material": "^5.10.12",
"@node-steam/vdf": "^2.2.0",
"@shockpkg/icon-encoder": "^2.1.3",
"axios": "^0.26.1",
"check-disk-space": "^3.3.1",
"classnames": "^2.3.1",
@ -148,44 +146,40 @@
"fuse.js": "^6.6.2",
"graceful-fs": "^4.2.10",
"heroic-wine-downloader": "^1.2.3",
"howlongtobeat": "^1.7.0",
"i18next": "^21.6.16",
"i18next-fs-backend": "^1.1.4",
"i18next-http-backend": "^1.4.0",
"ini": "^3.0.0",
"plist": "^3.0.5",
"react": "17",
"react-dom": "17",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-i18next": "^11.16.7",
"react-markdown": "^8.0.3",
"react-router-dom": "^6.3.0",
"react-scripts": "^5.0.1",
"recharts": "^2.1.14",
"shlex": "^2.1.2",
"short-uuid": "^4.2.0",
"simple-keyboard": "^3.4.136",
"source-map-support": "^0.5.21",
"steam-shortcut-editor": "^3.1.1",
"systeminformation": "^5.12.3",
"systeminformation": "^5.15.0",
"tslib": "^2.4.0"
},
"scripts": {
"start": "DISABLE_ESLINT_PLUGIN=true nf start -p 3000 && electron-start",
"electron-start": "ELECTRON_IS_DEV=1 node public/start-react",
"electron": "yarn build-electron && electron . --trace-warnings",
"react-start": "HOST=localhost BROWSER=none react-scripts start",
"react-start:win": "react-scripts start",
"build": "react-scripts build",
"test": "jest --noStackTrace",
"start": "vite",
"codecheck": "tsc --noEmit",
"test": "jest",
"test-watch": "jest --watch --maxWorkers=25%",
"test:ci": "jest --runInBand --silent",
"eject": "react-scripts eject",
"release:linux": "GH_TOKEN='${{ secrets.WORKFLOW_TOKEN }}' yarn build-electron && yarn build && electron-builder -c.extraMetadata.main=build/main.js -p always --linux deb AppImage rpm pacman tar.xz",
"release:mac": "GH_TOKEN='${{ secrets.WORKFLOW_TOKEN }}' yarn build-electron && yarn build && electron-builder -c.extraMetadata.main=build/main.js -p always --mac",
"release:win": "yarn build-electron && yarn build && electron-builder -c.extraMetadata.main=build/main.js -p always --win nsis portable",
"dist:linux": "GH_TOKEN='${{ secrets.WORKFLOW_TOKEN }}' yarn build-electron && yarn build && electron-builder -c.extraMetadata.main=build/main.js --linux",
"dist:mac": "GH_TOKEN='${{ secrets.WORKFLOW_TOKEN }}' yarn build-electron && yarn build && electron-builder -c.extraMetadata.main=build/main.js --mac",
"dist:win": "yarn build-electron && yarn build && electron-builder -c.extraMetadata.main=build/main.js --win",
"lint": "eslint -c .eslintrc --ext .tsx,ts ./src && eslint -c .eslintrc --ext .ts ./electron",
"lint-fix": "eslint --fix -c .eslintrc --ext .tsx,ts ./src && eslint --fix -c .eslintrc --ext .ts ./electron",
"build-electron": "tsc --project electron/tsconfig.json",
"watch-electron": "tsc --watch --project electron/tsconfig.json",
"release:linux": "vite build && electron-builder -p always --linux deb AppImage rpm pacman tar.xz",
"release:mac": "vite build && electron-builder -p always --mac",
"release:win": "vite build && electron-builder -p always --win nsis portable",
"dist:linux": "vite build && electron-builder --linux",
"dist:mac": "vite build && electron-builder --mac",
"dist:win": "vite build && electron-builder --win",
"lint": "eslint --cache -c .eslintrc --ext .tsx,ts ./src",
"lint-fix": "eslint --fix -c .eslintrc --ext .tsx,ts ./src",
"dist-flatpak": "cd flatpak && flatpak-builder build local.heroic.yml --install --force-clean --user",
"flatpak-test": "yarn dist:linux appimage && cd flatpak && flatpak-builder build local.heroic.yml --install --force-clean --user",
"i18n": "i18next",
@ -210,35 +204,31 @@
"@types/jest": "^27.4.1",
"@types/node": "^17.0.25",
"@types/plist": "^3.0.2",
"@types/react": "^18.0.6",
"@types/react-dom": "^18.0.2",
"@types/react": "^18.0.24",
"@types/react-dom": "^18.0.8",
"@types/react-router-dom": "^5.3.3",
"@types/tmp": "^0.2.3",
"@typescript-eslint/eslint-plugin": "^5.20.0",
"@typescript-eslint/parser": "^5.20.0",
"electron": "^20.0.1",
"@vitejs/plugin-react": "^2.2.0",
"electron": "^21.2.1",
"electron-builder": "^23.1.0",
"electron-devtools-installer": "^3.2.0",
"eslint": "^8.13.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-react": "^7.29.4",
"foreman": "^3.0.1",
"husky": "^7.0.4",
"i18next-parser": "^6.3.0",
"jest": "^28.1.3",
"prettier": "^2.6.2",
"pretty-quick": "^3.1.3",
"sass": "^1.55.0",
"tmp": "^0.2.1",
"ts-jest": "^27.1.4",
"typescript": "^4.6.3"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version"
]
"ts-jest": "^28.0.7",
"typescript": "^4.8.4",
"vite": "^3.2.2",
"vite-plugin-electron": "^0.10.2",
"vite-plugin-svgr": "^2.2.2"
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,5 @@
{ lib
, gitUpdater
, fetchFromGitHub
, buildPythonApplication
, pythonOlder
@ -7,13 +8,13 @@
buildPythonApplication rec {
pname = "legendary-gl"; # Name in pypi
version = "0.20.30";
version = "0.20.31";
src = fetchFromGitHub {
owner = "derrod";
repo = "legendary";
rev = "refs/tags/${version}";
sha256 = "sha256-LyA8crGm1ApkI4yqVayM92EHtisQLuNmuKiLTyPyFlk=";
sha256 = "sha256-XxCYL41xhtJ2z1Ps2ANTbzi4/PZu7lo78cRbr6R4iTM=";
};
propagatedBuildInputs = [ requests ];
@ -31,4 +32,6 @@ buildPythonApplication rec {
license = licenses.gpl3;
maintainers = with maintainers; [ equirosa ];
};
passthru.updateScript = gitUpdater { };
}

View file

@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
configureFlags = [ "--with-libedit" ];
preConfigure = lib.optional stdenv.hostPlatform.isStatic ''
export LIBS="$(pkg-config --libs --static libedit)"
export LIBS="$(''${PKG_CONFIG:-pkg-config} --libs --static libedit)"
'';
enableParallelBuilding = true;

View file

@ -8652,9 +8652,7 @@ with pkgs;
kubergrunt = callPackage ../applications/networking/cluster/kubergrunt { };
kubo = callPackage ../applications/networking/kubo {
openssl = openssl_1_1;
};
kubo = callPackage ../applications/networking/kubo { };
kubo-migrator-all-fs-repo-migrations = callPackage ../applications/networking/kubo-migrator/all-migrations.nix { };
kubo-migrator-unwrapped = callPackage ../applications/networking/kubo-migrator/unwrapped.nix { };
@ -8886,7 +8884,6 @@ with pkgs;
mdbook-plantuml = callPackage ../tools/text/mdbook-plantuml {
inherit (darwin.apple_sdk.frameworks) CoreServices;
openssl = openssl_1_1;
};
mdbook-admonish = callPackage ../tools/text/mdbook-admonish {
@ -15082,7 +15079,7 @@ with pkgs;
muonlang = callPackage ../development/compilers/muonlang { };
inherit (callPackages ../development/compilers/nim { openssl = openssl_1_1; })
inherit (callPackages ../development/compilers/nim { })
nim-unwrapped nimble-unwrapped nim;
nimPackages = recurseIntoAttrs nim.pkgs;
@ -16620,9 +16617,7 @@ with pkgs;
srelay = callPackage ../tools/networking/srelay { };
xidel = callPackage ../tools/text/xidel {
openssl = openssl_1_1;
};
xidel = callPackage ../tools/text/xidel { };
asdf-vm = callPackage ../tools/misc/asdf-vm { };
@ -18837,9 +18832,7 @@ with pkgs;
openssl = openssl_1_1;
};
nfd = callPackage ../servers/nfd {
openssl = openssl_1_1;
};
nfd = callPackage ../servers/nfd { };
cddlib = callPackage ../development/libraries/cddlib {};
@ -21346,9 +21339,7 @@ with pkgs;
libstroke = callPackage ../development/libraries/libstroke { };
libstrophe = callPackage ../development/libraries/libstrophe {
openssl = openssl_1_1;
};
libstrophe = callPackage ../development/libraries/libstrophe { };
libspatialaudio = callPackage ../development/libraries/libspatialaudio { };
@ -22505,7 +22496,6 @@ with pkgs;
quill = callPackage ../tools/security/quill {
inherit (darwin.apple_sdk.frameworks) Security;
openssl = openssl_1_1;
};
qv2ray = libsForQt5.callPackage ../applications/networking/qv2ray {};
@ -24185,9 +24175,7 @@ with pkgs;
nodejs = nodejs-14_x;
};
lighttpd = callPackage ../servers/http/lighttpd {
openssl = openssl_1_1;
};
lighttpd = callPackage ../servers/http/lighttpd { };
listmonk = callPackage ../servers/mail/listmonk { };
@ -27810,8 +27798,8 @@ with pkgs;
};
audaciousQt5 = audacious;
audacity = callPackage ../applications/audio/audacity {
inherit (darwin.apple_sdk.frameworks) AppKit AudioToolbox AudioUnit Carbon CoreAudio CoreAudioKit CoreServices;
audacity = darwin.apple_sdk_11_0.callPackage ../applications/audio/audacity {
inherit (darwin.apple_sdk_11_0.frameworks) AppKit CoreAudioKit;
};
audio-recorder = callPackage ../applications/audio/audio-recorder { };
@ -31786,6 +31774,8 @@ with pkgs;
premid = callPackage ../applications/misc/premid { };
process-cpp = callPackage ../development/libraries/process-cpp { };
processing = callPackage ../applications/graphics/processing {
jdk = oraclejdk8;
};