}; }; <del> Gtk3ImageView = buildPerlPackage { </del> <ins> Gtk3ImageView = buildPerlPackage rec { </ins> pname = "Gtk3-ImageView"; <del> version = "6"; </del> <ins> version = "9"; </ins> src = fetchurl { <del> url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Gtk3-ImageView-6.tar.gz"; sha256 = "0krkif9i3hrgjdskw05pcks40fmb43d21lxf4h8aclv0g8z647f0"; </del> <ins> url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/Gtk3-ImageView-${version}.tar.gz"; sha256 = "sha256-0dxe0p1UQglq+xok7g4l2clJ9WqOHxCeAzWD65E0H9w="; </ins> }; buildInputs = [ pkgs.gtk3 ]; propagatedBuildInputs = [ Readonly Gtk3 ]; <del> checkInputs = [ TestDifferences ImageMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ]; </del> <ins> checkInputs = [ TestDifferences TestDeep ImageMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ]; </ins> checkPhase = '' ${pkgs.xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24'  make test


{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint <del> , libpng, libtiff, libusb1, lz4, xz, lzo, openblas, pkg-config, qtbase , qtmultimedia, qtscript, lib, stdenv, superlu, wrapQtAppsHook, }: </del> <ins> , libpng, libtiff, libusb1, lz4, xz, lzo, openblas, opencv, pkg-config, qtbase , qtmultimedia, qtscript, qtserialport, lib, stdenv, superlu, wrapQtAppsHook, }: </ins> let source = import ./source.nix { inherit fetchFromGitHub; }; in stdenv.mkDerivation rec { inherit (source) src;


xz lzo openblas <ins> opencv </ins> qtbase qtmultimedia qtscript <ins> qtserialport </ins> superlu ];


# opentoonz requires its own modified version of libtiff.  We still build it as # a separate package #  1. For visibility for tools like vulnix, and <del> #  2. To avoid a diamond-dependency problem with qt linking the normal libtiff #     and opentoonz linking qt and this modified libtiff, we build a qt against #     this modified libtiff as well. </del> <ins> #  2. To avoid a diamond-dependency problem with opencv linking the normal libtiff #     and opentoonz linking opencv and this modified libtiff, we build an opencv #     against this modified libtiff as well. # # We use a separate mkDerivation rather than a minimal libtiff.overrideAttrs # because the main libtiff builds with cmake and this version of libtiff was # forked before libtiff gained CMake build capability (added in libtiff-4.0.5). { lib, fetchFromGitHub, stdenv, pkg-config, zlib, libjpeg, xz, libtiff, }: </ins> <del> { fetchFromGitHub, libtiff }: </del> let source = import ./source.nix { inherit fetchFromGitHub; }; <del> in libtiff.overrideAttrs (old: { inherit (source) src; </del> <ins> in stdenv.mkDerivation { pname = "libtiff"; </ins> version = source.versions.libtiff + "-opentoonz"; <del> postUnpack = (old.postUnpack or "") + '' </del> <ins> inherit (source) src; outputs = [ "bin" "dev" "out" "man" "doc" ]; nativeBuildInputs = [ pkg-config ]; propagatedBuildInputs = [ zlib libjpeg xz ]; postUnpack = '' </ins> sourceRoot="$sourceRoot/thirdparty/tiff-${source.versions.libtiff}" ''; # opentoonz uses internal libtiff headers <del> postInstall = (old.postInstall or "") + '' </del> <ins> postInstall = '' </ins> cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include ''; <del> }) </del> <ins> meta = libtiff.meta // { knownVulnerabilities = ['' Do not open untrusted files with Opentoonz: Opentoonz uses an old custom fork of tibtiff from 2012 that is known to be affected by at least these 50 vulnerabilities: CVE-2012-4564 CVE-2013-4232 CVE-2013-4243 CVE-2013-4244 CVE-2014-8127 CVE-2014-8128 CVE-2014-8129 CVE-2014-8130 CVE-2014-9330 CVE-2015-1547 CVE-2015-8781 CVE-2015-8782 CVE-2015-8783 CVE-2015-8784 CVE-2015-8870 CVE-2016-3620 CVE-2016-3621 CVE-2016-3623 CVE-2016-3624 CVE-2016-3625 CVE-2016-3631 CVE-2016-3632 CVE-2016-3633 CVE-2016-3634 CVE-2016-3658 CVE-2016-3945 CVE-2016-3990 CVE-2016-3991 CVE-2016-5102 CVE-2016-5314 CVE-2016-5315 CVE-2016-5316 CVE-2016-5318 CVE-2016-5319 CVE-2016-5321 CVE-2016-5322 CVE-2016-5323 CVE-2016-6223 CVE-2016-9453 CVE-2016-9532 CVE-2017-9935 CVE-2017-9937 CVE-2018-10963 CVE-2018-5360 CVE-2019-14973 CVE-2019-17546 CVE-2020-35521 CVE-2020-35522 CVE-2020-35523 CVE-2020-35524 More info at https://github.com/opentoonz/opentoonz/issues/4193 '']; maintainers = with lib.maintainers; [ chkno ]; }; } </ins>


{ fetchFromGitHub, }: rec { versions = { <del> opentoonz = "1.4.0"; libtiff = "4.0.3"; </del> <ins> opentoonz = "1.5.0"; libtiff = "4.0.3";  # The version in thirdparty/tiff-* </ins> }; src = fetchFromGitHub { owner = "opentoonz"; repo = "opentoonz"; rev = "v${versions.opentoonz}"; <del> sha256 = "0vgclx2yydsm5i2smff3fj8m750nhf35wfhva37kywgws01s189b"; </del> <ins> sha256 = "1rw30ksw3zjph1cwxkfvqj0330v8wd4333gn0fdf3cln1w0549lk"; </ins> }; }


opentimestamps-client = python3Packages.callPackage ../tools/misc/opentimestamps-client {}; <del> opentoonz = (qt514.overrideScope' (_: _: { libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { }; })).callPackage ../applications/graphics/opentoonz { }; </del> <ins> opentoonz = let opentoonz-libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { }; in qt5.callPackage ../applications/graphics/opentoonz { libtiff = opentoonz-libtiff; opencv = opencv.override { libtiff = opentoonz-libtiff; }; }; </ins> opentabletdriver = callPackage ../tools/X11/opentabletdriver { };


substituteInPlace src/tss2-tcti/tctildr-dl.c  --replace '@PREFIX@' $out/lib/ substituteInPlace ./test/unit/tctildr-dl.c  <del> --replace ', "libtss2' ", "$out/lib/libtss2"  --replace ', "foo' ", "$out/lib/foo"  --replace ', TEST_TCTI_NAME' ", "$out/lib/"TEST_TCTI_NAME" </del> <ins> --replace '@PREFIX@' $out/lib </ins> ''; configureFlags = [


diff --git a/src/tss2-tcti/tctildr-dl.c b/src/tss2-tcti/tctildr-dl.c <del> index b364695c..b13be3ef 100644 </del> <ins> index b364695c..d026de71 100644 </ins> --- a/src/tss2-tcti/tctildr-dl.c +++ b/src/tss2-tcti/tctildr-dl.c <del> @@ -85,7 +85,15 @@ handle_from_name(const char *file, if (handle == NULL) { return TSS2_TCTI_RC_BAD_REFERENCE; </del> <ins> @@ -116,6 +116,50 @@ handle_from_name(const char *file, return TSS2_TCTI_RC_BAD_VALUE; </ins> } <del> -    *handle = dlopen(file, RTLD_NOW); </del> <ins> *handle = dlopen(file_xfrm, RTLD_NOW); +    if (*handle != NULL) { +        return TSS2_RC_SUCCESS; +    } else { +        LOG_DEBUG("Failed to load TCTI for name "%s": %s", file, dlerror()); +    } </ins> +    size = snprintf(file_xfrm, +                    sizeof (file_xfrm), +                    "@PREFIX@%s",


+        return TSS2_TCTI_RC_BAD_VALUE; +    } +    *handle = dlopen(file_xfrm, RTLD_NOW); <del> if (*handle != NULL) { return TSS2_RC_SUCCESS; } else { @@ -94,7 +102,7 @@ handle_from_name(const char *file, /* 'name' alone didn't work, try libtss2-tcti-<name>.so.0 */ size = snprintf(file_xfrm, sizeof (file_xfrm), -                    TCTI_NAME_TEMPLATE_0, </del> <ins> +    if (*handle != NULL) { +        return TSS2_RC_SUCCESS; +    } else { +        LOG_DEBUG("Could not load TCTI file: "%s": %s", file, dlerror()); +    } +    /* 'name' alone didn't work, try libtss2-tcti-<name>.so.0 */ +    size = snprintf(file_xfrm, +                    sizeof (file_xfrm), </ins> +                    "@PREFIX@" TCTI_NAME_TEMPLATE_0, <del> file); if (size >= sizeof (file_xfrm)) { LOG_ERROR("TCTI name truncated in transform."); @@ -109,7 +117,7 @@ handle_from_name(const char *file, /* libtss2-tcti-<name>.so.0 didn't work, try libtss2-tcti-<name>.so */ size = snprintf(file_xfrm, sizeof (file_xfrm), -                    TCTI_NAME_TEMPLATE, </del> <ins> +                    file); +    if (size >= sizeof (file_xfrm)) { +        LOG_ERROR("TCTI name truncated in transform."); +        return TSS2_TCTI_RC_BAD_VALUE; +    } +    *handle = dlopen(file_xfrm, RTLD_NOW); +    if (*handle != NULL) { +        return TSS2_RC_SUCCESS; +    } else { +        LOG_DEBUG("Could not load TCTI file "%s": %s", file, dlerror()); +    } +    /* libtss2-tcti-<name>.so.0 didn't work, try libtss2-tcti-<name>.so */ +    size = snprintf(file_xfrm, +                    sizeof (file_xfrm), </ins> +                    "@PREFIX@" TCTI_NAME_TEMPLATE, <del> file); if (size >= sizeof (file_xfrm)) { LOG_ERROR("TCTI name truncated in transform."); </del> <ins> +                    file); +    if (size >= sizeof (file_xfrm)) { +        LOG_ERROR("TCTI name truncated in transform."); +        return TSS2_TCTI_RC_BAD_VALUE; +    } +    *handle = dlopen(file_xfrm, RTLD_NOW); if (*handle == NULL) { LOG_DEBUG("Failed to load TCTI for name "%s": %s", file, dlerror()); return TSS2_TCTI_RC_NOT_SUPPORTED; diff --git a/test/unit/tctildr-dl.c b/test/unit/tctildr-dl.c index 873a4531..c17b939e 100644 --- a/test/unit/tctildr-dl.c +++ b/test/unit/tctildr-dl.c @@ -223,6 +223,18 @@ test_get_info_default_success (void **state) expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); + +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); + +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); + expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, HANDLE); @@ -255,6 +267,18 @@ test_get_info_default_info_fail (void **state) expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); + +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); + +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); + expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, HANDLE); @@ -407,6 +431,15 @@ test_tcti_fail_all (void **state) expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); /* Skip over libtss2-tcti-tabrmd.so */ expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0"); @@ -418,6 +451,15 @@ test_tcti_fail_all (void **state) expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-tabrmd.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-tabrmd.so.0.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-tabrmd.so.0.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); /* Skip over libtss2-tcti-device.so, /dev/tpmrm0 */ expect_string(__wrap_dlopen, filename, "libtss2-tcti-device.so.0"); @@ -429,6 +471,15 @@ test_tcti_fail_all (void **state) expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-device.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); /* Skip over libtss2-tcti-device.so, /dev/tpm0 */ expect_string(__wrap_dlopen, filename, "libtss2-tcti-device.so.0"); @@ -440,6 +491,15 @@ test_tcti_fail_all (void **state) expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-device.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); /* Skip over libtss2-tcti-swtpm.so */ expect_string(__wrap_dlopen, filename, "libtss2-tcti-swtpm.so.0"); @@ -451,6 +511,15 @@ test_tcti_fail_all (void **state) expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-swtpm.so.0.so"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-swtpm.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-swtpm.so.0.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-swtpm.so.0.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); /* Skip over libtss2-tcti-mssim.so */ expect_string(__wrap_dlopen, filename, "libtss2-tcti-mssim.so.0"); @@ -462,6 +531,15 @@ test_tcti_fail_all (void **state) expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-mssim.so.0.so"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-mssim.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-mssim.so.0.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-mssim.so.0.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); TSS2_RC r; TSS2_TCTI_CONTEXT *tcti; @@ -490,6 +568,15 @@ test_info_from_name_handle_fail (void **state) expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/foo"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); TSS2_RC rc = info_from_name ("foo", &info, &data); assert_int_equal (rc, TSS2_TCTI_RC_NOT_SUPPORTED); @@ -606,6 +693,15 @@ test_tctildr_get_info_from_name (void **state) expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so"); expect_value(__wrap_dlopen, flags, RTLD_NOW); will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/foo"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so.0"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); +    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so"); +    expect_value(__wrap_dlopen, flags, RTLD_NOW); +    will_return(__wrap_dlopen, NULL); TSS2_RC rc = tctildr_get_info ("foo", &info, &data); assert_int_equal (rc, TSS2_TCTI_RC_NOT_SUPPORTED); </ins>


-not -name '*.so.*'  -not -name '*.so'  -not -name '*.jar'  <ins> -not -name 'jspawnhelper'  </ins> -not -path '*/resources/*' |  while IFS= read -r f ; do patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f


--suffix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath buildInputs}" done <ins> find $out -type f -executable -name 'jspawnhelper' |  while IFS= read -r f ; do patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f done </ins> ''; meta = with lib; {


<ins> diff --git a/comm/mail/config/mozconfigs/common b/comm/mail/config/mozconfigs/common --- a/comm/mail/config/mozconfigs/common +++ b/comm/mail/config/mozconfigs/common @@ -1,6 +1,3 @@ ac_add_options --enable-application=comm/mail -# Disable enforcing that add-ons are signed by the trusted root. -MOZ_REQUIRE_SIGNING= - . "$topsrcdir/build/mozconfig.common.override" diff --git a/comm/mail/moz.configure b/comm/mail/moz.configure --- a/comm/mail/moz.configure +++ b/comm/mail/moz.configure @@ -12,6 +12,7 @@ imply_option("MOZ_CRASHREPORTER_URL", "https://crash-reports.thunderbird.net/") imply_option("--enable-default-browser-agent", False) +imply_option("MOZ_REQUIRE_SIGNING", False) @depends(target_is_windows, target_is_linux) </ins>


}; patches = [ ./no-buildconfig-90.patch <ins> # There is a bug in Thunderbird 91 where add-ons are required # to be signed when the build is run with default settings. # https://bugzilla.mozilla.org/show_bug.cgi?id=1727113 # https://phabricator.services.mozilla.com/D124361 ./D124361.diff </ins> ]; meta = with lib; {


google-cloud-sdk = callPackage ../tools/admin/google-cloud-sdk { python = python3; }; <del> google-cloud-sdk-gce = google-cloud-sdk.override { with-gce = true; }; </del> <ins> google-cloud-sdk-gce = google-cloud-sdk.override { python = python38; with-gce = true; }; </ins> google-fonts = callPackage ../data/fonts/google-fonts { };


''CFLAGS=-DMOBILE_BROADBAND_PROVIDER_INFO="${mobile_broadband_provider_info}/share/mobile-broadband-provider-info/serviceproviders.xml"'' ]; <del> preFixup = '' rm $out/share/glib-2.0/schemas/gschemas.compiled''; </del> postInstall = '' mkdir -p $out/etc/NetworkManager/VPN ln -s ${networkmanager_openvpn}/etc/NetworkManager/VPN/nm-openvpn-service.name $out/etc/NetworkManager/VPN/nm-openvpn-service.name


license = licenses.gpl2; maintainers = with maintainers; [ phreedom urkud rickynils ]; platforms = platforms.linux; <ins> # resolve collision between evince and nm-applet for # gschemas.compiled priority = 6; </ins> }; }


# https://github.com/tulir/mautrix-telegram/issues/584 [ -f ${settingsFile} ] && rm -f ${settingsFile} old_umask=$(umask) <del> umask 0277 </del> <ins> umask 0177 </ins> ${pkgs.envsubst}/bin/envsubst  -o ${settingsFile}  -i ${settingsFileUnsubstituted}


patchShebangs meson-postinstall.py ''; <ins> dontWrapGApps = true; preFixup = '' makeWrapperArgs+=("''${gappsWrapperArgs[@]}") ''; postFixup = '' wrapPythonProgramsIn "$out/libexec" "$out $pythonPath" ''; </ins> passthru = { updateScript = gnome.updateScript { packageName = pname;


''; }; <ins> logrotate = { enable = mkOption { type = types.bool; default = true; description = '' Enable rotation of log files. ''; }; frequency = mkOption { type = types.str; default = "daily"; description = "How often to rotate the logs."; }; keep = mkOption { type = types.int; default = 30; description = "How many rotations to keep."; }; extraConfig = mkOption { type = types.lines; default = '' copytruncate compress ''; description = '' Extra logrotate config options for this path. Refer to <link xlink:href="https://linux.die.net/man/8/logrotate"/> for details. ''; }; }; </ins> extraConfig = mkOption { type = types.attrs; default = {};


ensureUsers = singleton { name = cfg.databaseUsername; }; }; <ins> # Enable rotation of log files services.logrotate = { enable = cfg.logrotate.enable; paths = { gitlab = { path = "${cfg.statePath}/log/*.log"; user = cfg.user; group = cfg.group; frequency = cfg.logrotate.frequency; keep = cfg.logrotate.keep; extraConfig = cfg.logrotate.extraConfig; }; }; }; </ins> # The postgresql module doesn't currently support concepts like # objects owners and extensions; for now we tack on what's needed # here.


("generators.mkValueStringDefault: " + "${t} not supported: ${toPretty {} v}"); in   if isInt      v then toString v <ins> # convert derivations to store paths else if lib.isDerivation v then toString v </ins> # we default to not quoting strings else if isString   v then v # isString returns "1", which is not a good default


# converts { a.b.c = 5; } to { "a.b".c = 5; } for toINI gitFlattenAttrs = let recurse = path: value: <del> if isAttrs value then </del> <ins> if isAttrs value && !lib.isDerivation value then </ins> lib.mapAttrsToList (name: value: recurse ([ name ] ++ path) value) value else if length path > 1 then { ${concatStringsSep "." (lib.reverseList (tail path))}.${head path} = value;


python3Packages.buildPythonApplication rec { pname = "pyradio"; <del> version = "0.8.7.2"; </del> <ins> version = "0.8.9.9"; </ins> src = fetchFromGitHub { owner = "coderholic"; repo = pname; rev = version; <del> sha256 = "0h2sxaqpmc1d1kpvpbcs9wymgzhx25x0x9p7dbyfw9r90i6123q1"; </del> <ins> sha256 = "04asw5alkkf2q5iixswarj6ddb0y4a6ixm7cckl6204jiyxpv6kc"; </ins> }; checkPhase = ''


fingerprint = "D618 7A03 A40A 3D56 62F5  4B46 03EF BF83 9A5F DC15"; }]; }; <ins> hleboulanger = { email = "hleboulanger@protonmail.com"; name = "Harold Leboulanger"; github = "thbkrhsw"; githubId = 33122; }; </ins> hlolli = { email = "hlolli@gmail.com"; github = "hlolli";


<ins> { lib, stdenvNoCC, fetchFromGitHub, makeWrapper, fzf, gawk }: stdenvNoCC.mkDerivation rec { pname = "sysz"; version = "1.3.0"; src = fetchFromGitHub { owner = "joehillen"; repo = pname; rev = version; sha256 = "HNwsYE1Cv90IDi3A5PmRv3uHANR3ya+VOGBQ3+zkBLM="; }; nativeBuildInputs = [ makeWrapper ]; dontBuild = true; installPhase = '' runHook preInstall install -Dm755 sysz $out/libexec/sysz makeWrapper $out/libexec/sysz $out/bin/sysz  --prefix PATH : ${lib.makeBinPath [ fzf gawk ]} runHook postInstall ''; meta = with lib; { homepage = "https://github.com/joehillen/sysz"; description = "A fzf terminal UI for systemctl"; license = licenses.unlicense; maintainers = with maintainers; [ hleboulanger ]; platforms = platforms.unix; changelog = "https://github.com/joehillen/sysz/blob/${version}/CHANGELOG.md"; }; } </ins>


sumneko-lua-language-server = callPackage ../development/tools/sumneko-lua-language-server { }; <ins> sysz = callPackage  ../tools/misc/sysz { }; </ins> go-swag = callPackage ../development/tools/go-swag { }; go-swagger = callPackage ../development/tools/go-swagger { };


# fix up this call: # https://github.com/kaldi-asr/kaldi/blob/c9d8b9ad3fef89237ba5517617d977b7d70a7ed5/cmake/VersionHelper.cmake#L8 echo 0 <ins> elif [[ "$1" == "rev-parse" ]]; then echo ${openfst.rev} echo 0 </ins> fi true EOF


<del> { lib, stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, oniguruma, CoreServices, installShellFiles }: </del> <ins> { lib , stdenv , fetchFromGitHub , rustPlatform , cmake , pkg-config , openssl , oniguruma , CoreServices , installShellFiles , libsass }: </ins> rustPlatform.buildRustPackage rec { pname = "zola";


cargoSha256 = "1hg8j9a8c6c3ap24jd96y07rlp4f0s2mkyx5034nlnkm3lj4q42n"; <del> nativeBuildInputs = [ cmake pkg-config installShellFiles]; buildInputs = [ openssl oniguruma ] ++ lib.optional stdenv.isDarwin CoreServices; </del> <ins> nativeBuildInputs = [ cmake pkg-config installShellFiles ]; buildInputs = [ openssl oniguruma ] ++ lib.optional stdenv.isDarwin [ CoreServices libsass ]; </ins> RUSTONIG_SYSTEM_LIBONIG = true;


}; }; <ins> ms-ceintl = callPackage ./language-packs.nix {}; # non-English language packs </ins> ms-dotnettools.csharp = callPackage ./ms-dotnettools-csharp { }; ms-kubernetes-tools.vscode-kubernetes-tools = buildVscodeMarketplaceExtension {


<ins> { lib, vscode-utils }: with vscode-utils; let buildVscodeLanguagePack = { language, sha256 }: buildVscodeMarketplaceExtension { mktplcRef = { name = "vscode-language-pack-${language}"; publisher = "MS-CEINTL"; version = "1.64.3"; inherit sha256; }; meta = { license = lib.licenses.mit; }; }; in # See list of core language packs at https://github.com/Microsoft/vscode-loc { # French vscode-language-pack-fr = buildVscodeLanguagePack { language = "fr"; sha256 = "sha256-6ynT1sbMgKO8iZReQ6KxFpR1VL3Nuo58MvXCtp+67vA="; }; # Italian vscode-language-pack-it = buildVscodeLanguagePack { language = "it"; sha256 = "sha256-5aNFpzNMZAZJH3n0rJevke9P6AW0au5i8+r4PXsb9Rg="; }; # German vscode-language-pack-de = buildVscodeLanguagePack { language = "de"; sha256 = "sha256-oEaWtsgktHKw52lnZTESkpzC/TTY8LO4yX11IgtMG5U="; }; # Spanish vscode-language-pack-es = buildVscodeLanguagePack { language = "es"; sha256 = "sha256-utLWbved3WCCk3XzqedbYzmyaKfbMrAmR0btT09GlxA="; }; # Russian vscode-language-pack-ru = buildVscodeLanguagePack { language = "ru"; sha256 = "sha256-0Wr2ICOiaaj4jZ555bxUJcmXO/yWDyn0UmdvxUF3WSQ="; }; # Chinese (Simplified) vscode-language-pack-zh-hans = buildVscodeLanguagePack { language = "zh-hans"; sha256 = "sha256-irTSQcVXf/V3MuZwfx4tFcvBk+xhbFZTnb7IG28s/p4="; }; # Chinese (Traditional) vscode-language-pack-zh-hant = buildVscodeLanguagePack { language = "zh-hant"; sha256 = "sha256-3IA/VTTTEqS6jrDYv50GnLXOTSC1XAMvqOVfOuvIdIs="; }; # Japanese vscode-language-pack-ja = buildVscodeLanguagePack { language = "ja"; sha256 = "sha256-rxod70ddrppEYYzukksVY1dTXR8osLFAsIPr1fSFZDg="; }; # Korean vscode-language-pack-ko = buildVscodeLanguagePack { language = "ko"; sha256 = "sha256-QYFaxJz1PqKKIiLosLQ8Tu3JNXzpxLFqgIHjjRLwjA4="; }; # Czech vscode-language-pack-cs = buildVscodeLanguagePack { language = "cs"; sha256 = "sha256-eMk+syy2h+Xb3k6QB8PqYaF4I1ydaY6eRsvOXmelh9Q="; }; # Portuguese (Brazil) vscode-language-pack-pt-br = buildVscodeLanguagePack { language = "pt-BR"; sha256 = "sha256-7Trz38KBl4sD7608MvTs02pUsdD05oHEj3Sp1LvtI7I="; }; # Turkish vscode-language-pack-tr = buildVscodeLanguagePack { language = "tr"; sha256 = "sha256-T4CTpbve3vrNdW4VDfHDg8U8cQEtuxPV5LvNdtKrqzA"; }; # Pseudo Language vscode-language-pack-qps-ploc = buildVscodeLanguagePack { language = "qps-ploc"; sha256 = "sha256-rPvCr3uQPfM8vwKoV7Un5aiMZClhf6TvG1PEe3xYNI0="; }; } </ins>


sha256 = "TRmul3t//izJRdViTvxFz29JZeGYsWc7WsJjagQ35nw="; }; <ins> patches = [ ./fix-restart.patch # https://github.com/NixOS/nixpkgs/issues/139568 ]; </ins> postPatch = '' substituteInPlace libqtile/pangocffi.py  --replace libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0


<ins> diff --git a/libqtile/core/lifecycle.py b/libqtile/core/lifecycle.py index 0d4d119d..c37d1799 100644 --- a/libqtile/core/lifecycle.py +++ b/libqtile/core/lifecycle.py @@ -25,7 +25,7 @@ class LifeCycle: def _atexit(self) -> None: if self.behavior is Behavior.RESTART: -            argv = [sys.executable] + sys.argv +            argv = sys.argv if "--no-spawn" not in argv: argv.append("--no-spawn") argv = [s for s in argv if not s.startswith("--with-state")] @@ -33,7 +33,7 @@ class LifeCycle: argv.append("--with-state=" + self.state_file) logger.warning("Restarting Qtile with os.execv(...)") # No other code will execute after the following line does -            os.execv(sys.executable, argv) +            os.execv(sys.argv[0], argv) elif self.behavior is Behavior.TERMINATE: logger.warning("Qtile will now terminate") elif self.behavior is Behavior.NONE: </ins>


}; youcompleteme = buildVimPluginFrom2Nix { # created by nix#NixDerivation <del> name = "youcompleteme-2016-03-08"; </del> <ins> name = "youcompleteme-2016-03-10"; </ins> src = fetchgit { url = "git://github.com/valloric/youcompleteme"; <del> rev = "381b2132719a959f41e57ec0e6396fc1c3b6daf4"; sha256 = "1gski3s1960pmxisyq85awda0a3kb22ji9y76f67k1a4smy5q9xa"; </del> <ins> rev = "f44435b88ec98156d17869aa67ad15f38cfecbf3"; sha256 = "1y50ilyfwj6rvpvg50iq418maxvsfs54i202v7x0lfs5hmvcb4hi"; </ins> }; dependencies = []; buildInputs = [


mkdir build pushd build cmake -G "Unix Makefiles" . ../third_party/ycmd/cpp -DPYTHON_LIBRARIES:PATH=${python}/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR:PATH=${python}/include/python2.7 -DUSE_CLANG_COMPLETER=ON -DUSE_SYSTEM_LIBCLANG=ON <del> make ycm_support_libs -j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}} </del> <ins> make ycm_core -j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}} </ins> ${python}/bin/python ../third_party/ycmd/build.py --gocode-completer --clang-completer --system-libclang popd '';


XDP_SOCKETS        = whenAtLeast "4.19" yes; XDP_SOCKETS_DIAG   = whenAtLeast "5.1" yes; WAN                = yes; <ins> TCP_CONG_ADVANCED  = yes; </ins> TCP_CONG_CUBIC     = yes; # This is the default congestion control algorithm since 2.6.19 # Required by systemd per-cgroup firewalling CGROUP_BPF                  = option yes;


<ins> { lib , stdenv , fetchFromGitHub , fetchYarnDeps , yarn , fixup_yarn_lock , nodejs }: stdenv.mkDerivation (finalAttrs: { pname = "hydrogen-web"; version = "0.4.0"; src = fetchFromGitHub { owner = "vector-im"; repo = finalAttrs.pname; rev = "v${finalAttrs.version}"; hash = "sha256-u8Yex3r7EZH+JztQHJbfncYeyyl6hgb1ZNFIg//wcb0="; }; offlineCache = fetchYarnDeps { yarnLock = finalAttrs.src + "/yarn.lock"; hash = "sha256-N9lUAhfYLlEAIaWSNS3Ecq+aBTz+f7Z22Sclwj9rp6w="; }; nativeBuildInputs = [ yarn fixup_yarn_lock nodejs ]; configurePhase = '' runHook preConfigure export HOME=$PWD/tmp mkdir -p $HOME fixup_yarn_lock yarn.lock yarn config --offline set yarn-offline-mirror $offlineCache yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive patchShebangs node_modules runHook postConfigure ''; buildPhase = '' runHook preBuild yarn build --offline runHook postBuild ''; installPhase = '' runHook preInstall cp -R target $out runHook postInstall ''; meta = { description = "Lightweight matrix client with legacy and mobile browser support"; homepage = "https://github.com/vector-im/hydrogen-web"; maintainers = lib.teams.matrix.members; license = lib.licenses.asl20; platforms = lib.platforms.all; }; }) </ins>


<ins> { stdenv , jq , hydrogen-web-unwrapped , conf ? { } }: if (conf == { }) then hydrogen-web-unwrapped else stdenv.mkDerivation { pname = "${hydrogen-web-unwrapped.pname}-wrapped"; inherit (hydrogen-web-unwrapped) version meta; dontUnpack = true; nativeBuildInputs = [ jq ]; installPhase = '' runHook preInstall mkdir -p $out ln -s ${hydrogen-web-unwrapped}/* $out rm $out/config.json jq -s '.[0] * $conf' "${hydrogen-web-unwrapped}/config.json" --argjson "conf" '${builtins.toJSON conf}' > "$out/config.json" runHook postInstall ''; } </ins>


hipchat = callPackage ../applications/networking/instant-messengers/hipchat { }; <ins> hydrogen-web-unwrapped = callPackage ../applications/networking/instant-messengers/hydrogen-web/unwrapped.nix { }; hydrogen-web = callPackage ../applications/networking/instant-messengers/hydrogen-web/wrapper.nix { conf = config.hydrogen-web.conf or { }; }; </ins> hivelytracker = callPackage ../applications/audio/hivelytracker { }; hledger = haskell.lib.compose.justStaticExecutables haskellPackages.hledger;


stdenv.mkDerivation rec { pname = "whitesur-gtk-theme"; <del> version = "2021-07-27"; </del> <ins> version = "2021-09-24"; </ins> src = fetchFromGitHub { owner = "vinceliuice"; repo = pname; rev = version; <del> sha256 = "17x4lqlv6whx8vg0c1nm89j7671l033apn4alqyhjb9qx5w2fa43"; </del> <ins> sha256 = "12dwmgq0kadjfky5bjm62vwgdlw3nmrrhqqs5iw15w0pn3mbmd5c"; </ins> }; nativeBuildInputs = [


, makeFontsConf , libglvnd , libxkbcommon <ins> , stdenv , enableWayland ? stdenv.isLinux </ins> , wayland , xorg }:


})) ]; <del> postFixup = '' </del> <ins> postFixup = let libPath = lib.makeLibraryPath ([ libglvnd libxkbcommon xorg.libXcursor xorg.libXext xorg.libXrandr xorg.libXi ] ++ lib.optionals enableWayland [ wayland ]); in '' </ins> wrapProgram $out/bin/neovide  <del> --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libglvnd libxkbcommon wayland xorg.libXcursor xorg.libXext xorg.libXrandr xorg.libXi ]} </del> <ins> --prefix LD_LIBRARY_PATH : ${libPath} </ins> ''; postInstall = ''


homepage = "https://github.com/Kethku/neovide"; license = with licenses; [ mit ]; maintainers = with maintainers; [ ck3d ]; <del> platforms = platforms.linux; </del> <ins> platforms = platforms.unix; </ins> mainProgram = "neovide"; }; }


python3Packages.buildPythonApplication rec { pname = "nicotine-plus"; <del> version = "3.1.1"; </del> <ins> version = "3.2.0"; </ins> src = fetchFromGitHub { owner = "Nicotine-Plus"; repo = "nicotine-plus"; rev = version; <del> hash = "sha256-NfI2RfxAYhA1qefml1ayfYWjbkrzUL4l9p2Rm/ROnzQ="; </del> <ins> hash = "sha256-E8b2VRlnMWmBHu919QDPBYuMbrjov9t//bHi1Y/F0Ak="; </ins> }; nativeBuildInputs = [ gettext wrapGAppsHook ];


nativeBuildInputs = [ cmake curl ]; buildInputs = [ <del> aws-crt-cpp </del> curl openssl zlib ] ++ lib.optionals (stdenv.isDarwin && ((builtins.elem "text-to-speech" apis) ||


[ CoreAudio AudioToolbox ]; # propagation is needed for Security.framework to be available when linking <del> propagatedBuildInputs = [ aws-c-cal aws-c-event-stream aws-c-io aws-c-common aws-checksums s2n-tls ]; </del> <ins> propagatedBuildInputs = [ aws-crt-cpp ]; </ins> cmakeFlags = [ "-DBUILD_DEPS=OFF"


<del> { version, javaVersion, platforms, hashes ? import ./hashes.nix }: { stdenv, lib, fetchurl, autoPatchelfHook, setJavaClassPath, makeWrapper # minimum dependencies , Foundation, alsa-lib, fontconfig, freetype, glibc, openssl, perl, unzip, xorg </del> <ins> { version , javaVersion , platforms , hashes ? import ./hashes.nix , useMusl ? false }: { stdenv , lib , autoPatchelfHook , fetchurl , makeWrapper , setJavaClassPath , writeShellScriptBin # minimum dependencies , alsa-lib , fontconfig , Foundation , freetype , glibc , openssl , perl , unzip , xorg </ins> , zlib <del> # runtime dependencies </del> <ins> # runtime dependencies , binutils </ins> , cups <del> # runtime dependencies for GTK+ Look and Feel , gtkSupport ? true, cairo, glib, gtk3 }: </del> <ins> , gcc , musl # runtime dependencies for GTK+ Look and Feel , gtkSupport ? stdenv.isLinux , cairo , glib , gtk3 }: assert useMusl -> stdenv.isLinux; </ins> let platform = {


x86_64-darwin = "darwin-amd64"; }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); <del> runtimeDependencies = [ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]; </del> <ins> runtimeLibraryPath = lib.makeLibraryPath ([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]); </ins> <del> runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies; </del> <ins> runtimeDependencies = lib.makeBinPath ([ binutils stdenv.cc ] ++ lib.optionals useMusl [ (lib.getDev musl) # GraalVM 21.3.0+ expects musl-gcc as <system>-musl-gcc (writeShellScriptBin "${stdenv.system}-musl-gcc" ''${lib.getDev musl}/bin/musl-gcc "$@"'') ]); </ins> javaVersionPlatform = "${javaVersion}-${platform}";


zlib ]; <del> # Workaround for libssl.so.10 wanted by TruffleRuby # Resulting TruffleRuby cannot use `openssl` library. autoPatchelfIgnoreMissingDeps = true; </del> nativeBuildInputs = [ unzip perl autoPatchelfHook makeWrapper ]; unpackPhase = ''


outputs = [ "out" "lib" ]; <del> installPhase = let copyClibrariesToOut = basepath: '' # provide libraries needed for static compilation for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do ln -s $f ${basepath}/${platform}/$(basename $f) done ''; copyClibrariesToLib = '' # add those libraries to $lib output too, so we can use them with # `native-image -H:CLibraryPath=''${graalvm11-ce.lib}/lib ...` and reduce # closure size by not depending on GraalVM $out (that is much bigger) </del> <ins> installPhase = let copyClibrariesToOut = basepath: '' # provide libraries needed for static compilation ${ if useMusl then "for f in ${musl.stdenv.cc.cc}/lib/* ${musl}/lib/* ${zlib.static}/lib/*; do" else "for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do" } ln -s $f ${basepath}/${platform}/$(basename $f) done ''; copyClibrariesToLib = '' # add those libraries to $lib output too, so we can use them with # `native-image -H:CLibraryPath=''${lib.getLib graalvm11-ce}/lib ...` and reduce # closure size by not depending on GraalVM $out (that is much bigger) mkdir -p $lib/lib for f in ${glibc}/lib/*; do ln -s $f $lib/lib/$(basename $f) done ''; in { "11-linux-amd64" = '' ${copyClibrariesToOut "$out/lib/svm/clibraries"} ${copyClibrariesToLib} ''; "17-linux-amd64" = '' ${copyClibrariesToOut "$out/lib/svm/clibraries"} ${copyClibrariesToLib} ''; "11-linux-aarch64" = '' ${copyClibrariesToOut "$out/lib/svm/clibraries"} ${copyClibrariesToLib} ''; "17-linux-aarch64" = '' ${copyClibrariesToOut "$out/lib/svm/clibraries"} ${copyClibrariesToLib} ''; "11-darwin-amd64" = ""; "17-darwin-amd64" = ""; }.${javaVersionPlatform} + '' # ensure that $lib/lib exists to avoid breaking builds </ins> mkdir -p $lib/lib <del> for f in ${glibc}/lib/*; do ln -s $f $lib/lib/$(basename $f) done ''; in { "11-linux-amd64" = '' ${copyClibrariesToOut "$out/lib/svm/clibraries"} ${copyClibrariesToLib} ''; "17-linux-amd64" = '' ${copyClibrariesToOut "$out/lib/svm/clibraries"} ${copyClibrariesToLib} ''; "11-linux-aarch64" = '' ${copyClibrariesToOut "$out/lib/svm/clibraries"} ${copyClibrariesToLib} </del> <ins> # jni.h expects jni_md.h to be in the header search path. ln -s $out/include/linux/*_md.h $out/include/ # copy-paste openjdk's preFixup # Set JAVA_HOME automatically. mkdir -p $out/nix-support cat <<EOF > $out/nix-support/setup-hook if [ -z "''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi EOF </ins> ''; <del> "17-linux-aarch64" = '' ${copyClibrariesToOut "$out/lib/svm/clibraries"} ${copyClibrariesToLib} ''; "11-darwin-amd64" = ""; "17-darwin-amd64" = ""; }.${javaVersionPlatform} + '' # ensure that $lib/lib exists to avoid breaking builds mkdir -p $lib/lib # jni.h expects jni_md.h to be in the header search path. ln -s $out/include/linux/*_md.h $out/include/ ''; </del> dontStrip = true; <del> preFixup = '' </del> <ins> # Workaround for libssl.so.10 wanted by TruffleRuby # Resulting TruffleRuby cannot use `openssl` library. autoPatchelfIgnoreMissingDeps = stdenv.isDarwin; preFixup = lib.optionalString (stdenv.isLinux) '' </ins> # We cannot use -exec since wrapProgram is a function but not a # command. #


for bin in $( find "$out" -executable -type f -not -path '*/languages/ruby/lib/gems/*' -not -name jspawnhelper ); do if patchelf --print-interpreter "$bin" &> /dev/null || head -n 1 "$bin" | grep '^#!' -q; then wrapProgram "$bin"  <del> --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" </del> <ins> --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"  --prefix PATH : "${runtimeDependencies}" </ins> fi done <del> # copy-paste openjdk's preFixup # Set JAVA_HOME automatically. mkdir -p $out/nix-support cat <<EOF > $out/nix-support/setup-hook if [ -z "''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi EOF </del> find "$out" -name libfontmanager.so -exec  patchelf --add-needed libfontconfig.so {} ; <ins> # Workaround for libssl.so.10/libcrypto.so.10 wanted by TruffleRuby patchelf $out/languages/ruby/lib/mri/openssl.so  --replace-needed libssl.so.10 libssl.so  --replace-needed libcrypto.so.10 libcrypto.so </ins> ''; # $out/bin/native-image needs zlib to build native executables.


# run on JVM with Graal Compiler $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World' <del> # Ahead-Of-Time compilation $out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces --no-server HelloWorld ./helloworld | fgrep 'Hello World' </del> <ins> ${# --static flag doesn't work for darwin lib.optionalString (stdenv.isLinux && !useMusl) '' echo "Ahead-Of-Time compilation" $out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces --no-server HelloWorld ./helloworld | fgrep 'Hello World' </ins> <del> ${ lib.optionalString stdenv.isLinux '' # Ahead-Of-Time compilation with --static # --static flag doesn't work for darwin </del> <ins> echo "Ahead-Of-Time compilation with --static" </ins> $out/bin/native-image --no-server --static HelloWorld ./helloworld | fgrep 'Hello World' '' } <ins> ${# --static flag doesn't work for darwin lib.optionalString (stdenv.isLinux && useMusl) '' echo "Ahead-Of-Time compilation with --static and --libc=musl" $out/bin/native-image --no-server --libc=musl --static HelloWorld ./helloworld | fgrep 'Hello World' '' } </ins> ${# TODO: Doesn't work on MacOS, we have this error: # "Launching JShell execution engine threw: Operation not permitted (Bind failed)" lib.optionalString (stdenv.isLinux) ''


]; }; }; <del> in graalvmXXX-ce </del> <ins> in graalvmXXX-ce </ins>


{ mkDerivation, lib, <del> extra-cmake-modules, kdoctools, </del> <ins> extra-cmake-modules, kdoctools, fetchpatch, </ins> epoxy, lcms2, libICE, libSM, libcap, libdrm, libinput, libxkbcommon, mesa, pipewire, udev, wayland, xcb-util-cursor, xwayland,


./0002-xwayland.patch ./0003-plugins-qpa-allow-using-nixos-wrapper.patch ./0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch <ins> # Pass special environments through arguemnts to `kwin_wayland`, bypassing # ld.so(8) environment stripping due to `kwin_wayland`'s capabilities. # We need this to have `TZDIR` correctly set for `plasmashell`, or # everything related to timezone, like clock widgets, will be broken. # https://invent.kde.org/plasma/kwin/-/merge_requests/1590 (fetchpatch { url = "https://invent.kde.org/plasma/kwin/-/commit/9a008b223ad696db3bf5692750f2b74e578e08b8.diff"; sha256 = "sha256-f35G+g2MVABLDbAkCed3ZmtDWrzYn1rdD08mEx35j4k="; }) </ins> ]; CXXFLAGS = [ ''-DNIXPKGS_XWAYLAND="${lib.getBin xwayland}/bin/Xwayland"''


"-DARROW_BUILD_TESTS=ON" "-DARROW_VERBOSE_THIRDPARTY_BUILD=ON" "-DARROW_DEPENDENCY_SOURCE=SYSTEM" <ins> "-DThrift_SOURCE=AUTO" # search for Thrift using pkg-config (ThriftConfig.cmake requires OpenSSL and libevent) </ins> "-DARROW_DEPENDENCY_USE_SHARED=${if enableShared then "ON" else "OFF"}" "-DARROW_COMPUTE=ON" "-DARROW_CSV=ON"


mv $out/bin/gocode $out/bin/gocode-gomod ''; <ins> doCheck = false; # fails on go 1.17 </ins> meta = with lib; { description = "An autocompletion daemon for the Go programming language"; longDescription = ''


}; modRoot = "gopls"; <del> vendorSha256 = "sha256-nKjJjtVHk/RLIHI/5v8tO4RcaLLZhr0A6llYGsB0ifQ="; </del> <ins> vendorSha256 = "sha256-8osb5C5G58x9KWCxqiepmN6J0jp+q6aR+As/pJeeTKM="; </ins> doCheck = false;


sha256 = "0n9pf0i5y59kiiv6dq8h8w1plaz9w6s67rqr2acqgxa45iq36mkh"; }; <del> vendorSha256 = "1lzhhg9wimn8nfzrrla5bshgk1ghnlsdfmq6iask0zqz311g96bv"; </del> <ins> vendorSha256 = "1xgl4avq0rblzqqpaxl4dwg4ysrhacwhfd21vb0v9ffr3zcpdw9n"; proxyVendor = true; </ins> subPackages = [ "." ];


rev = "v${version}"; sha256 = "sha256-WAI/rl6awVLbXqdqYAq8fyABAO2qet+GYucuiwClylI="; }; <del> vendorSha256 = "sha256-ZZTM1s/kFHkCjnaDYuP7xCrkW2an3I6kvcMXMy63ySE="; </del> <ins> vendorSha256 = "sha256-ckAnSSSEF00gbgxnPAi2Pi8TNu3nmAahK7TP6HnfmNo="; </ins> patches = [ (substituteAll {


sha256 = "sha256-JRJjuVF0MkV7KVmbAZhiWPWVwDORByCsZqPwdTuVRoA="; }; <del> vendorSha256 = "sha256-nsuI8z0xJYZwhlYHasxHpAAYycpqN0qmS8c0APvxxwc="; </del> <ins> vendorSha256 = "sha256-/N/RYqt+lhhECK+uq99vkm3Mg7PWpdE0GYLXkIYthNw="; </ins> buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];


buildPackages = buildPackages // { stdenv = buildPackages.gcc8Stdenv; }; }); <del> go = go_1_16; </del> <ins> go = go_1_17; </ins> go-repo-root = callPackage ../development/tools/go-repo-root { };


buildGo116Package = callPackage ../development/go-packages/generic { go = buildPackages.go_1_16; }; <del> # go_1_17 has go module changes which may not be portable # across different go versions and/or platforms: # https://github.com/NixOS/nixpkgs/issues/144667 # # That's why `buildGoPackage != buildGo117Package`. </del> buildGo117Package = callPackage ../development/go-packages/generic { go = buildPackages.go_1_17; }; <del> buildGoPackage = buildGo116Package; </del> <ins> buildGoPackage = buildGo117Package; </ins> buildGo116Module = callPackage ../development/go-modules/generic { go = buildPackages.go_1_16; }; <del> # go_1_17 has go module changes which may not be portable # across different go versions and/or platforms: # https://github.com/NixOS/nixpkgs/issues/144667 # # That's why `buildGoModule != buildGo117Module`. </del> buildGo117Module = callPackage ../development/go-modules/generic { go = buildPackages.go_1_17; }; <del> buildGoModule = buildGo116Module; </del> <ins> buildGoModule = buildGo117Module; </ins> go2nix = callPackage ../development/tools/go2nix { };


redstore = callPackage ../servers/http/redstore { }; <del> reproxy = callPackage ../servers/reproxy { }; </del> <ins> reproxy = callPackage ../servers/reproxy { buildGoModule = buildGo116Module; }; </ins> restic = callPackage ../tools/backup/restic { };


buildGoModule = buildGo116Module; }; <del> victoriametrics = callPackage ../servers/nosql/victoriametrics { }; </del> <ins> victoriametrics = callPackage ../servers/nosql/victoriametrics { buildGoModule = buildGo116Module; }; </ins> virtiofsd = callPackage ../servers/misc/virtiofsd { };


onlyoffice-bin = callPackage ../applications/office/onlyoffice-bin { }; <del> open-policy-agent = callPackage ../development/tools/open-policy-agent { }; </del> <ins> open-policy-agent = callPackage ../development/tools/open-policy-agent { buildGoModule = buildGo116Module; }; </ins> openshift = callPackage ../applications/networking/cluster/openshift { };


# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html <del> { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate, libsndfile, makeWrapper, pulseaudio, qt4, redland, rubberband, vampSDK </del> <ins> { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate , libsndfile, makeWrapper, pkgconfig, pulseaudio, qt4, redland , rubberband, vampSDK </ins> }: <del> stdenv.mkDerivation { name = "sonic-visualiser-1.8"; </del> <ins> stdenv.mkDerivation rec { name = "sonic-visualiser-${version}"; version = "1.9"; </ins> src = fetchurl { <del> url = http://downloads.sourceforge.net/sv1/sonic-visualiser-1.8.tar.gz; sha256 = "16ik6q9n92wljvnqcv7hyzb9v3yp3ixxp6df9kasf53fii973dh7"; </del> <ins> url = "http://code.soundsoftware.ac.uk/attachments/download/194/${name}.tar.gz"; sha256 = "00igf7j6s8xfyxnlkbqma0yby9pknxqzy8cmh0aw95ix80cw56fq"; </ins> }; buildInputs = [ libsndfile qt4 fftw /* should be fftw3f ??*/ bzip2 librdf rubberband libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland <ins> pkgconfig </ins> # optional jackaudio # portaudio


description = "View and analyse contents of music audio files"; homepage = http://www.sonicvisualiser.org/; license = "GPLv2"; <del> maintainers = [ stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.goibhniu ]; </del> <ins> maintainers = [ stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.goibhniu ]; </ins> platforms = stdenv.lib.platforms.linux; }; }


, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages , gssSupport ? true, libkrb5 , pipewireSupport ? waylandSupport && webrtcSupport, pipewire <del> , jemallocSupport ? true, jemalloc </del> <ins> # Workaround: disabled since currently jemalloc causes crashes with LLVM 13. # https://bugzilla.mozilla.org/show_bug.cgi?id=1741454 , jemallocSupport ? false, jemalloc </ins> ## privacy-related options


# > the experience of Firefox users, you won't have any issues using the # > official branding. , enableOfficialBranding ? true <ins> # On 32bit platforms, we disable adding "-g" for easier linking. , enableDebugSymbols ? !stdenv.is32bit </ins> }: assert stdenv.cc.libc or null != null;


}) else stdenv; <del> # --enable-release adds -ffunction-sections & LTO that require a big amount of # RAM and the 32-bit memory space cannot handle that linking # We also disable adding "-g" for easier linking releaseFlags = if stdenv.is32bit then [ "--disable-release" "--disable-debug-symbols" ] else [ "--enable-release" ]; </del> in buildStdenv.mkDerivation ({


AVFoundation MediaToolbox CoreLocation Foundation libobjc AddressBook cups ]; <del> NIX_LDFLAGS = lib.optionalString ltoSupport '' -rpath ${llvmPackages.libunwind.out}/lib ''; </del> MACH_USE_SYSTEM_PYTHON = "1"; postPatch = ''


++ lib.optionals buildStdenv.isDarwin [ xcbuild rsync ] ++ extraNativeBuildInputs; <ins> separateDebugInfo = enableDebugSymbols; setOutputFlags = false; # `./mach configure` doesn't understand `--*dir=` flags. </ins> preConfigure = '' # remove distributed configuration files rm -f configure


${lib.optionalString buildStdenv.cc.isClang "-idirafter ${buildStdenv.cc.cc.lib}/lib/clang/${lib.getVersion buildStdenv.cc.cc}/include"}  ${lib.optionalString buildStdenv.cc.isGNU "-isystem ${lib.getDev buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc} -isystem ${buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc}/${buildStdenv.hostPlatform.config}"}  $NIX_CFLAGS_COMPILE" <ins> ${ # Bindgen doesn't like the flag added by `separateDebugInfo`. lib.optionalString enableDebugSymbols '' BINDGEN_CFLAGS="''${BINDGEN_CFLAGS/ -Wa,--compress-debug-sections/}" ''} </ins> echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG '' + (lib.optionalString googleAPISupport '' # Google API key used by Chromium and Firefox.


#   https://bugzilla.mozilla.org/show_bug.cgi?id=1538724 # elf-hack is broken when using clang+lld: #   https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 <del> ++ lib.optional ltoSupport "--enable-lto" </del> <ins> ++ lib.optional ltoSupport "--enable-lto=cross" # Cross-language LTO. </ins> ++ lib.optional (ltoSupport && (buildStdenv.isAarch32 || buildStdenv.isi686 || buildStdenv.isx86_64)) "--disable-elf-hack" ++ lib.optional (ltoSupport && !buildStdenv.isDarwin) "--enable-linker=lld"


++ lib.optional drmSupport "--enable-eme=widevine" ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ] <del> else ([ "--disable-debug" "--enable-optimize" "--enable-strip" ] ++ releaseFlags)) </del> <ins> else [ "--disable-debug" "--enable-optimize" ]) # --enable-release adds -ffunction-sections & LTO that require a big amount of # RAM and the 32-bit memory space cannot handle that linking ++ flag (!debugBuild && !stdenv.is32bit) "release" ++ flag enableDebugSymbols "debug-symbols" ++ lib.optionals enableDebugSymbols [ "--disable-strip" "--disable-install-strip" ] </ins> ++ lib.optional enableOfficialBranding "--enable-official-branding" ++ extraConfigureFlags;


cd obj-* ''; <del> makeFlags = lib.optionals ltoSupport [ "AR=${buildStdenv.cc.bintools.bintools}/bin/llvm-ar" "LLVM_OBJDUMP=${buildStdenv.cc.bintools.bintools}/bin/llvm-objdump" "NM=${buildStdenv.cc.bintools.bintools}/bin/llvm-nm" "RANLIB=${buildStdenv.cc.bintools.bintools}/bin/llvm-ranlib" "STRIP=${buildStdenv.cc.bintools.bintools}/bin/llvm-strip" ] ++ extraMakeFlags; </del> <ins> makeFlags = extraMakeFlags; </ins> enableParallelBuilding = true; doCheck = false; # "--disable-tests" above


gappsWrapperArgs+=(--argv0 "$out/bin/.${binaryName}-wrapped") ''; <ins> # Workaround: The separateDebugInfo hook skips artifacts whose build ID's length is not 40. # But we got 16-length build ID here. The function body is mainly copied from pkgs/build-support/setup-hooks/separate-debug-info.sh # Remove it when PR #146275 is merged. preFixup = lib.optionalString enableDebugSymbols '' _separateDebugInfo() { [ -e "$prefix" ] || return 0 local dst="''${debug:-$out}" if [ "$prefix" = "$dst" ]; then return 0; fi dst="$dst/lib/debug/.build-id" # Find executables and dynamic libraries. local i while IFS= read -r -d $'0' i; do if ! isELF "$i"; then continue; fi # Extract the Build ID. FIXME: there's probably a cleaner way. local id="$($READELF -n "$i" | sed 's/.*Build ID: ([0-9a-f]*).*/1/; t; d')" if [[ -z "$id" ]]; then echo "could not find build ID of $i, skipping" >&2 continue fi # Extract the debug info. header "separating debug info from $i (build ID $id)" mkdir -p "$dst/''${id:0:2}" $OBJCOPY --only-keep-debug "$i" "$dst/''${id:0:2}/''${id:2}.debug" $STRIP --strip-debug "$i" # Also a create a symlink <original-name>.debug. ln -sfn ".build-id/''${id:0:2}/''${id:2}.debug" "$dst/../$(basename "$i")" done < <(find "$prefix" -type f -print0) } ''; </ins> doInstallCheck = true; installCheckPhase = '' # Some basic testing


{ stdenv, fetchurl, gmp }: stdenv.mkDerivation rec { <del> name = "ikarus-0.0.3"; </del> <ins> version = "0.0.3"; name = "ikarus-${version}"; </ins> src = fetchurl { <del> url = "http://ikarus-scheme.org/${name}.tar.gz"; </del> <ins> url = "http://launchpad.net/ikarus/0.0/${version}/+download/${name}.tar.gz"; </ins> sha256 = "0d4vqwqfnj39l0gar2di021kcf6bfpkc6g40yapkmxm6sxpdcvjv"; };


sha256 = "1mqspsn6bf3ibvih1zna2glkg8iw7vy5zg9gzg0d1m8zcndk2c48"; }; <del> checkInputs = [ pytestCheckHook pytest-benchmark enum34 numpy arrow ruamel-yaml ]; </del> <ins> checkInputs = [ pytestCheckHook pytest-benchmark enum34 numpy ]; </ins> <del> disabledTests = lib.optionals stdenv.isDarwin [ "test_multiprocessing" ]; </del> <ins> # these have dependencies that are broken on Python 2 disabledTestPaths = [ "tests/gallery/test_gallery.py" "tests/test_benchmarks.py" "tests/test_compiler.py" ]; disabledTests = [ "test_timestamp" ] ++ lib.optionals stdenv.isDarwin [ "test_multiprocessing" ]; </ins> pytestFlagsArray = [ "--benchmark-disable" ];


{ lib , buildPythonPackage , fetchPypi <del> , flake8 , pytest_4 , pytest-expect , mock </del> , six , webencodings <ins> , mock , pytest-expect , pytestCheckHook_5 </ins> }: buildPythonPackage rec {


sha256 = "b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"; }; <del> checkInputs = [ flake8 pytest_4 pytest-expect mock ]; </del> propagatedBuildInputs = [ <del> six webencodings </del> <ins> six webencodings </ins> ]; <del> checkPhase = '' # remove test causing error # https://github.com/html5lib/html5lib-python/issues/411 rm html5lib/tests/test_stream.py py.test ''; </del> <ins> checkInputs = [ mock pytest-expect pytestCheckHook_5 ]; </ins> meta = { homepage = "https://github.com/html5lib/html5lib-python";


# it should not override the version of pytest that is used for say # Python 2. This is an ugly hack that is needed now because the hook # propagates the package. <ins> pytestCheckHook_5 = if isPy3k then self.pytestCheckHook.override { pytest = self.pytest_5; } else self.pytestCheckHook; </ins> pytestCheckHook_6_1 = if isPy3k then self.pytestCheckHook.override { pytest = self.pytest_6_1; } else


, gmime, json_glib, avahi, tracker, itstool }: stdenv.mkDerivation rec { <del> name = "grilo-plugins-0.2.13"; </del> <ins> name = "grilo-plugins-0.2.16"; </ins> src = fetchurl { url = "mirror://gnome/sources/grilo-plugins/0.2/${name}.tar.xz"; <del> sha256 = "008jwm5ydl0k25p3d2fkcail40fj9y3qknihxb5fg941p8qlhm55"; </del> <ins> sha256 = "00sjmkzxc8w4qn4lp5yj65c4y83mwhp0zlvk11ghvpxnklgmgd40"; </ins> }; installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-0.2" ];


, libxml2, gnome3, gobjectIntrospection, libsoup }: stdenv.mkDerivation rec { <del> name = "grilo-0.2.12"; </del> <ins> name = "grilo-0.2.14"; </ins> src = fetchurl { url = "mirror://gnome/sources/grilo/0.2/${name}.tar.xz"; <del> sha256 = "11bvc7rsrjjwz8hp67p3fn8zmywrpawrcbi3vgw8b0dwa0sndd2m"; </del> <ins> sha256 = "1k8wj8f7xfaw5hxypnmwd34li3fq8h76dacach547rvsfjhjxj3r"; </ins> }; setupHook = ./setup-hook.sh;


in '' mkdir -p $out/etc/udev/rules.d/ <del> ./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules ||  </del> <ins> ./tools/sane-desc -m udev+hwdb -s doc/descriptions:doc/descriptions-external > $out/etc/udev/rules.d/49-libsane.rules ||  </ins> cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules # the created 49-libsane references /bin/sh substituteInPlace $out/etc/udev/rules.d/49-libsane.rules


, withDNSTAP ? false , withTFO ? false , withRedis ? false <ins> # Avoid .lib depending on openssl.out # The build gets a little hacky, so in some cases we disable this approach. , withSlimLib ? stdenv.isLinux && !stdenv.hostPlatform.isMusl && !withDNSTAP </ins> , libnghttp2 }:


--prefix PATH : ${lib.makeBinPath [ openssl ]} ''; <del> preFixup = lib.optionalString (stdenv.isLinux && !stdenv.hostPlatform.isMusl) # XXX: revisit </del> <ins> preFixup = lib.optionalString withSlimLib </ins> # Build libunbound again, but only against nettle instead of openssl. # This avoids gnutls.out -> unbound.lib -> openssl.out. <del> # There was some problem with this on Darwin; let's not complicate non-Linux. </del> '' configureFlags="$configureFlags --with-nettle=${nettle.dev} --with-libunbound-only" configurePhase


config = mkIf cfg.enable { assertions = [ { <del> assertion = pkgs.stdenv.hostPlatform.isx86; </del> <ins> assertion = pkgs.stdenv.hostPlatform.isx86 || pkgs.stdenv.hostPlatform.isAarch64; </ins> message = "VMWare guest is not currently supported on ${pkgs.stdenv.hostPlatform.system}"; } ]; boot.initrd.availableKernelModules = [ "mptspi" ]; <del> boot.initrd.kernelModules = [ "vmw_pvscsi" ]; </del> <ins> boot.initrd.kernelModules = lib.optionals pkgs.stdenv.hostPlatform.isx86 [ "vmw_pvscsi" ]; </ins> environment.systemPackages = [ open-vm-tools ];


++ lib.optional jackSupport libjack2 ++ lib.optional smartcardSupport opensc ++ lib.optional (cfg.speechSynthesisSupport or false) speechd <del> ++ pkcs11Modules; </del> <ins> ++ pkcs11Modules ++ gtk_modules; </ins> gtk_modules = [ libcanberra-gtk3 ]; launcherName = "${applicationName}${nameSuffix}";


final Uri entryUri = _fileSystem.path.toUri(asset); result.add(_Asset( -          baseDir: _fileSystem.path.join(Cache.flutterRoot!, 'bin', 'cache', 'artifacts', 'material_fonts'), <del> +          baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath!, 'bin', 'cache', 'artifacts', 'material_fonts'), </del> <ins> +          baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'artifacts', 'material_fonts'), </ins> relativeUri: Uri(path: entryUri.pathSegments.last), entryUri: entryUri, package: null,


, icu66 , krb5 , lib <ins> , libtasn1 </ins> , makeWrapper , stdenv , openssl }: stdenv.mkDerivation rec { pname = "roon-server"; <del> version = "1.8-850"; </del> <ins> version = "1.8-880"; </ins> src = let


in fetchurl { url = "http://download.roonlabs.com/builds/RoonServer_linuxx64_${urlVersion}.tar.bz2"; <del> sha256 = "sha256-NSNaL0ERYTSYn9ETjWcQiuI4hY+w/lWVOz3n9lt6O+4="; </del> <ins> sha256 = "sha256-Td3iRYGmTg8Vx9c4e4ugIIbAqhDFPax9vR2BsCIQCZA="; </ins> }; <ins> dontConfigure = true; dontBuild = true; </ins> buildInputs = [ alsa-lib freetype krb5 <ins> libtasn1 </ins> stdenv.cc.cc.lib ];


<del> { lib, stdenv, fetchurl, makeWrapper, jre }: </del> <ins> { lib, stdenv, fetchurl, makeWrapper, jre, zip }: </ins> stdenv.mkDerivation rec { version = "13.8.0";


sha256 = "0zfkwz5psv7m0881ykgqrxwjhadg39c55aj2wpy7m1jdara86c5q"; }; <del> nativeBuildInputs = [ makeWrapper ]; </del> <ins> nativeBuildInputs = [ makeWrapper zip ]; </ins> installPhase = '' runHook preInstall mkdir -p $out/{bin,lib} <ins> # log4j mitigation, see https://logging.apache.org/log4j/2.x/security.html zip -d MediathekView.jar org/apache/logging/log4j/core/lookup/JndiLookup.class </ins> install -m644 MediathekView.jar $out/lib makeWrapper ${jre}/bin/java $out/bin/mediathek


}: buildPythonPackage rec { <del> version = "1.6.0"; </del> <ins> version = "1.6.1"; </ins> pname = "strictyaml"; disabled = isPy27; src = fetchPypi { inherit pname version; <del> sha256 = "73fa9769214a310486d7916453a09bd38b07d28a9dcbdf27719183c1d7d949f6"; </del> <ins> sha256 = "688be16ee5d1a2f94aa4abdc6d881e8e254d173d724ac88725955fe66bdb63d4"; </ins> }; postPatch = ''


buildPythonPackage rec { pname = "tatsu"; <del> version = "5.6.1"; </del> <ins> version = "5.7.1"; </ins> src = fetchFromGitHub { owner = "neogeny"; repo = "TatSu"; rev = "v${version}"; <del> sha256 = "149ra1lwax5m1svlv4dwjfqw00lc5vwyfj6zw2v0ammmfm1b94x9"; </del> <ins> sha256 = "12ljff6l29q92625pgsg4f7xf4dz6iz1c3zdkzz188s4lnwpy8b8"; </ins> }; disabled = pythonOlder "3.8";


buildPythonPackage rec { pname = "terminaltables"; <del> version = "3.1.0"; </del> <ins> version = "3.1.7"; </ins> src = fetchPypi { inherit pname version; <del> sha256 = "f3eb0eb92e3833972ac36796293ca0906e998dc3be91fbe1f8615b331b853b81"; </del> <ins> sha256 = "5dab2f33927c0a020b8011c81b92830ff9fd4ba701657da5d7bfdc41048360a6"; </ins> }; meta = with lib; {


buildPythonPackage rec { pname = "textacy"; <del> version = "0.11.0"; </del> <ins> version = "0.12.0"; </ins> disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; <del> sha256 = "sha256-d/tyTCewoERA15iBv4H2LORFzgco15fnnN1sneeGuF4="; </del> <ins> sha256 = "2c92bdd6b47305447b64e4cb6cc43c11675f021f910a8074bc8149dbf5325e5b"; </ins> }; propagatedBuildInputs = [


buildPythonApplication rec { pname = "trytond"; <del> version = "6.2.1"; </del> <ins> version = "6.2.2"; </ins> format = "setuptools"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; <del> sha256 = "418f16c45b7130555447af901639b92bb188d39f46ce7fe4dfcd941c5959ed7e"; </del> <ins> sha256 = "9494016dd8b4da5a06dccdd1afbd918248d42da9f2c19b1eb8958052c747e193"; </ins> }; # Tells the tests which database to use


buildPythonPackage rec { pname = "types-protobuf"; <del> version = "3.18.1"; </del> <ins> version = "3.18.2"; </ins> src = fetchPypi { inherit pname version; <del> sha256 = "6696bf3cabc51dcc076e8de025c405dbdea7488c5268c2febd14527dac82c233"; </del> <ins> sha256 = "ca21dedfe7759acbeb0cd8f5c72a74ff3c409ae0c07bc1d94eff5123ac0fa23c"; </ins> }; propagatedBuildInputs = [ types-futures ];


buildPythonPackage rec { pname = "websocket-client"; <del> version = "1.2.1"; </del> <ins> version = "1.2.2"; </ins> disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; <del> sha256 = "8dfb715d8a992f5712fff8c843adae94e22b22a99b2c5e6b0ec4a1a981cc4e0d"; </del> <ins> sha256 = "21861f8645eb5725d1becfe86d7e7ae1a31d98b72556f9d44fcc5100976353cf"; </ins> }; propagatedBuildInputs = [


buildPythonPackage rec { pname = "youtube-search-python"; <del> version = "1.5.2"; </del> <ins> version = "1.5.3"; </ins> disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; <del> sha256 = "33f0d58f4803b0b2badf860cd31fb83d3f7edecdd2c01dd09cd6511abbf0e6b9"; </del> <ins> sha256 = "4bc39224d1f0915692101a7739289c41173de2eb88b445aabc7be284802b7489"; </ins> }; propagatedBuildInputs = [ httpx ];


buildPythonPackage rec { pname = "zope-deferredimport"; <del> version = "4.3"; </del> <ins> version = "4.3.1"; </ins> src = fetchPypi { pname = "zope.deferredimport"; inherit version; <del> sha256 = "2ddef5a7ecfff132a2dd796253366ecf9748a446e30f1a0b3a636aec9d9c05c5"; </del> <ins> sha256 = "57b2345e7b5eef47efcd4f634ff16c93e4265de3dcf325afc7315ade48d909e1"; </ins> }; propagatedBuildInputs = [ zope_proxy ];


buildPythonPackage rec { pname = "zope-hookable"; <del> version = "5.0.1"; </del> <ins> version = "5.1.0"; </ins> src = fetchPypi { pname = "zope.hookable"; inherit version; <del> sha256 = "0hc82lfr7bk53nvbxvjkibkarngyrzgfk2i6bg8wshl0ly0pdl19"; </del> <ins> sha256 = "8fc3e6cd0486c6af48e3317c299def719b57538332a194e0b3bc6a772f4faa0e"; </ins> }; checkInputs = [ zope_testing ];


# Convert systemd-style address specification to kresd config line(s). # On Nix level we don't attempt to precisely validate the address specifications. <ins> # The optional IPv6 scope spec comes *after* port, perhaps surprisingly. </ins> mkListen = kind: addr: let <del> al_v4 = builtins.match "([0-9.]+):([0-9]+)" addr; al_v6 = builtins.match "[(.+)]:([0-9]+)" addr; </del> <ins> al_v4 = builtins.match "([0-9.]+):([0-9]+)()" addr; al_v6 = builtins.match "[(.+)]:([0-9]+)(%.*|$)" addr; </ins> al_portOnly = builtins.match "([0-9]+)" addr; al = findFirst (a: a != null) (throw "services.kresd.*: incorrect address specification '${addr}'") [ al_v4 al_v6 al_portOnly ]; <del> port = last al; addrSpec = if al_portOnly == null then "'${head al}'" else "{'::', '0.0.0.0'}"; </del> <ins> port = elemAt al 1; addrSpec = if al_portOnly == null then "'${head al}${elemAt al 2}'" else "{'::', '0.0.0.0'}"; </ins> in # freebind is set for compatibility with earlier kresd services; # it could be configurable, for example. ''


<del> { lib, stdenv, fetchurl, fetchpatch </del> <ins> { lib, stdenv, fetchurl </ins> # native deps. , runCommand, pkg-config, meson, ninja, makeWrapper # build+runtime deps.


unwrapped = stdenv.mkDerivation rec { pname = "knot-resolver"; <del> version = "5.4.3"; </del> <ins> version = "5.4.4"; </ins> src = fetchurl { url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz"; <del> sha256 = "488729eb93190336b6bca10de0d78ecb7919f77fcab105debc0a644aa7d0a506"; </del> <ins> sha256 = "588964319e943679d391cc9c886d40ef858ecd9b33ae160023b4e2b5182b2cea"; </ins> }; outputs = [ "out" "dev" ]; <del> patches = [ (fetchpatch { # https://gitlab.nic.cz/knot/knot-resolver/-/merge_requests/1237 name = "console.aws.amazon.com-fix.patch"; url = "https://gitlab.nic.cz/knot/knot-resolver/-/commit/f4dabfbec9273703.diff"; sha256 = "3J+FDwNQ6CqIGo9pSzhrQZlHX99vXFDpPOBpwpCnOxs="; }) ]; </del> # Path fixups for the NixOS service. postPatch = '' patch meson.build <<EOF


stdenv.mkDerivation rec { name = "singularity-${version}"; <del> version = "2.5.1"; </del> <ins> version = "2.5.2"; </ins> enableParallelBuilding = true;


owner = "singularityware"; repo = "singularity"; rev = version; <del> sha256 = "1i029qs6dfpyirhbdz0nrx2sh5fddysk4wqkjqj5m60kxs4x8a3d"; </del> <ins> sha256 = "09wv8xagr5fjfhra5vyig0f1frfp97g99baqkh4avbzpg296q933"; </ins> }; nativeBuildInputs = [ autoreconfHook makeWrapper ];


outputs = [ "out" "dev" "devdoc" ]; <del> separateDebugInfo = stdenv.isLinux; </del> <ins> # https://github.com/NixOS/nixpkgs/issues/153528 # Can't be linked within a 4GB address space. separateDebugInfo = stdenv.isLinux && !stdenv.is32bit; </ins> src = fetchurl { url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz";


def get_current_plugins(editor: Editor) -> List[Plugin]: with CleanEnvironment(): <del> cmd = ["nix", "eval", "--impure", "--json", "--expr", editor.get_plugins] </del> <ins> cmd = ["nix", "eval", "--extra-experimental-features", "nix-command", "--impure", "--json", "--expr", editor.get_plugins] </ins> log.debug("Running command %s", cmd) out = subprocess.check_output(cmd) data = json.loads(out)


description = lib.mdDoc "List of plugins to install."; example = lib.literalExpression "[ pkgs.tmuxPlugins.nord ]"; }; <ins> withUtempter = mkOption { description = lib.mdDoc '' Whether to enable libutempter for tmux. This is required so that tmux can write to /var/run/utmp (which can be queried with `who` to display currently connected user sessions). Note, this will add a guid wrapper for the group utmp! ''; default = true; type = types.bool; }; </ins> }; };


TMUX_TMPDIR = lib.optional cfg.secureSocket ''''${XDG_RUNTIME_DIR:-"/run/user/$(id -u)"}''; }; }; <ins> security.wrappers = mkIf cfg.withUtempter { utempter = { source = "${pkgs.libutempter}/lib/utempter/utempter"; owner = "root"; group = "utmp"; setuid = false; setgid = true; }; }; </ins> }; imports = [


stdenv.mkDerivation rec { pname = "libutempter"; <del> version = "1.1.6"; </del> <ins> version = "1.2.1"; </ins> src = fetchurl { <del> url = "mirror://ubuntu/pool/main/libu/libutempter/libutempter_${version}.orig.tar.bz2"; sha256 = "15y3xbgznjxnfmix4xg3bwmqdvghdw7slbhazb0ybmyf65gmd65q"; </del> <ins> url = "http://ftp.altlinux.org/pub/people/ldv/utempter/libutempter-${version}.tar.gz"; sha256 = "sha256-ln/vNy85HeUBhDrYdXDGz12r2WUfAPF4MJD7wSsqNMs="; </ins> }; buildInputs = [ glib ]; patches = [ ./exec_path.patch ]; <ins> patchFlags = [ "-p2" ]; </ins> prePatch = '' substituteInPlace Makefile --replace 2711 0711 '';


]; meta = { <ins> homepage = "https://github.com/altlinux/libutempter"; </ins> description = "Interface for terminal emulators such as screen and xterm to record user sessions to utmp and wtmp files"; longDescription = '' The bundled utempter binary must be able to run as a user belonging to group utmp.


<del> diff -ur libutempter-1.1.6/iface.c libutempter-1.1.6.patched/iface.c --- libutempter-1.1.6/iface.c	2010-11-04 18:14:53.000000000 +0100 +++ libutempter-1.1.6.patched/iface.c	2018-06-06 15:09:11.417755549 +0200 @@ -60,9 +60,9 @@ </del> <ins> diff --git a/libutempter/iface.c b/libutempter/iface.c index 37c74a8..6f44c9a 100644 --- a/libutempter/iface.c +++ b/libutempter/iface.c @@ -43,7 +43,7 @@ __result; })) #endif -#define UTEMPTER_DEFAULT_PATHNAME	LIBEXECDIR "/utempter/utempter" +#define UTEMPTER_DEFAULT_PATHNAME	"utempter" static const char *utempter_pathname; static int saved_fd = -1; @@ -57,8 +57,8 @@ do_child(int master_fd, const char *path, char *const *argv) </ins> _exit(EXIT_FAILURE); } -	execv(path, argv); <ins> -	print_dbg("execv: %s", strerror(errno)); </ins> +	execvp(path, argv); <del> #ifdef	UTEMPTER_DEBUG -	fprintf(stderr, "libutempter: execv: %sn", strerror(errno)); +	fprintf(stderr, "libutempter: execvp: %sn", strerror(errno)); #endif </del> <ins> +	print_dbg("execvp: %s", strerror(errno)); </ins> <del> while (EACCES == errno) @@ -79,7 +79,7 @@ </del> <ins> while (EACCES == errno) { /* try saved group ID */ @@ -73,7 +73,7 @@ do_child(int master_fd, const char *path, char *const *argv) </ins> if (setgid(sgid)) break;


+		(void) execvp(path, argv); break; } <del> Only in libutempter-1.1.6.patched: result </del>


, pkg-config , withSystemd ? stdenv.isLinux && !stdenv.hostPlatform.isStatic, systemd , utf8proc <ins> , withUtempter ? stdenv.isLinux && !stdenv.hostPlatform.isMusl, libutempter </ins> }: let


ncurses libevent ] ++ lib.optionals withSystemd [ systemd ] <del> ++ lib.optionals stdenv.isDarwin [ utf8proc ]; </del> <ins> ++ lib.optionals stdenv.isDarwin [ utf8proc ] ++ lib.optionals withUtempter [ libutempter ]; </ins> configureFlags = [ "--sysconfdir=/etc" "--localstatedir=/var" ] ++ lib.optionals withSystemd [ "--enable-systemd" ] <ins> ++ lib.optionals withUtempter [ "--enable-utempter" ] </ins> ++ lib.optionals stdenv.isDarwin [ "--enable-utf8proc" ]; enableParallelBuilding = true;


patches = [ ./ssh_path.patch ./mosh-client_path.patch <del> ./utempter_path.patch </del> # Fix build with bash-completion 2.10 ./bash_completion_datadir.patch ];


<del> diff -ur mosh-1.3.2/src/frontend/mosh-server.cc mosh-1.3.2.patched/src/frontend/mosh-server.cc --- mosh-1.3.2/src/frontend/mosh-server.cc	2017-07-22 23:14:53.000000000 +0200 +++ mosh-1.3.2.patched/src/frontend/mosh-server.cc	2018-06-06 10:45:50.725352804 +0200 @@ -351,6 +351,10 @@ } } +#ifdef HAVE_UTEMPTER +    utempter_set_helper( "utempter" ); +#endif + try { return run_server( desired_ip, desired_port, command_path, command_argv, colors, verbose, with_motd ); } catch ( const Network::NetworkException &e ) { </del>


cp -r bin $out cp -r lib $out <ins> cp -r share $out </ins> for cur in $out/bin/*; do if [ -x "$cur" ]; then


stdenv.mkDerivation rec { pname = "fcitx-libpinyin"; <del> version = "0.5.3"; </del> <ins> version = "0.5.4"; </ins> src = fetchurl { url = "http://download.fcitx-im.org/fcitx-libpinyin/${pname}-${version}.tar.xz"; <del> sha256 = "196c229ckib3xvafkk4n3n3jk9rpksfcjsbbwka6a9k2f34qrjj6"; </del> <ins> sha256 = "1wvsc21imbgq3chlxfw4aycmkb2vi1bkjj9frvhga2m5b5pq82k5"; </ins> }; nativeBuildInputs = [ cmake pkg-config  ];


, zlib , debugVersion ? false , enableManpages ? false <del> , enableSharedLibraries ? !stdenv.hostPlatform.isStatic </del> <ins> , enableSharedLibraries ? false </ins> , version , src


"-DSPHINX_WARNINGS_AS_ERRORS=OFF" ]; <del> postPatch = '' </del> <ins> postPatch = lib.optional enableSharedLibraries '' </ins> substitute '${./outputs.patch}' ./outputs.patch --subst-var lib patch -p1 < ./outputs.patch '';


"-DLLVM_TARGETS_TO_BUILD="AMDGPU;X86"" ]; <del> # The comgr build tends to link against the static LLVM libraries # *and* the dynamic library. Linking against both causes errors # about command line options being registered twice. This patch # removes the static library linking. patchPhase = '' sed -e '/^llvm_map_components_to_libnames/,/[[:space:]]*Symbolize)/d'  -i CMakeLists.txt ''; </del> passthru.updateScript = writeScript "update.sh" '' #!/usr/bin/env nix-shell #!nix-shell -i bash -p curl jq common-updater-scripts


<ins> diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..6f81985 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,2 @@ +[directories] +basedirlist = . </ins>


, enableGhostscript ? false, ghostscript ? null, gtk3 , enableGtk2 ? false, pygtk ? null, gobjectIntrospection , enableGtk3 ? false, cairo <ins> , enableTk ? false, tcl ? null, tk ? null, tkinter ? null, libX11 ? null </ins> , Cocoa, Foundation, CoreData, cf-private, libobjc, libcxx }: assert enableGhostscript -> ghostscript != null; assert enableGtk2 -> pygtk != null; <ins> assert enableTk -> (tcl != null) && (tk != null) && (tkinter != null) && (libX11 != null) ; </ins> buildPythonPackage rec { name = "matplotlib-${version}";


libpng pkgconfig mock pytz ] ++ stdenv.lib.optional enableGtk2 pygtk <del> ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobjectIntrospection pygobject3 ]; </del> <ins> ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobjectIntrospection pygobject3 ] ++ stdenv.lib.optionals enableTk [ tcl tk tkinter libX11 ]; </ins> <del> patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin-stdenv.patch ]; </del> <ins> patches = [ ./basedirlist.patch ] ++ stdenv.lib.optionals stdenv.isDarwin [ ./darwin-stdenv.patch ]; # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the # corresponding interpreter object for its library paths. This fails if # `$DISPLAY` is not set. The fallback option assumes that Tcl/Tk are both # installed under the same path which is not true in Nix. # With the following patch we just hard-code these paths into the install # script. postPatch = let inherit (stdenv.lib.strings) substring; tcl_tk_cache = ''"${tk}/lib", "${tcl}/lib", "${substring 0 3 tk.version}"''; in stdenv.lib.optionalString enableTk "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py"; </ins> checkPhase = '' ${python.interpreter} tests.py


then value else { executable = value; profile = null; extraArgs = []; }; args = lib.escapeShellArgs ( <del> (optional (opts.profile != null) "--profile=${toString opts.profile}") ++ opts.extraArgs </del> <ins> opts.extraArgs ++ (optional (opts.profile != null) "--profile=${toString opts.profile}") </ins> ); in ''


stdenv.mkDerivation rec { pname = "connman"; <del> version = "1.40"; </del> <ins> version = "1.41"; </ins> src = fetchurl { url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz"; <del> sha256 = "sha256-GleufOI0qjoXRKrDvlwhIdmNzpmUQO+KucxO39XtyxI="; </del> <ins> sha256 = "sha256-eftA9P3VUwxFqo5ZL7Froj02dPOpjPELiaZXbxmN5Yk="; </ins> }; patches = lib.optionals stdenv.hostPlatform.isMusl [


<del> { lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config }: </del> <ins> { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config }: </ins> stdenv.mkDerivation rec { <del> version = "1.0.8"; </del> <ins> version = "1.0.9"; </ins> pname = "libde265"; src = fetchFromGitHub { owner = "strukturag"; repo = "libde265"; rev = "v${version}"; <del> sha256 = "1dzflqbk248lz5ws0ni5acmf32b3rmnq5gsfaz7691qqjxkl1zml"; </del> <ins> sha256 = "sha256-OpiQapppuKCR27tIG5OW+KiNMP9ysv7CaobiBOW6VUI="; </ins> }; <del> patches = [ (fetchpatch { name = "CVE-2022-1253.patch"; url = "https://github.com/strukturag/libde265/commit/8e89fe0e175d2870c39486fdd09250b230ec10b8.patch"; sha256 = "sha256-F1BOWFx9oXR2trM22atyD3AJ5x6vVfURQ/PTlYP2Ibg="; }) ]; </del> nativeBuildInputs = [ autoreconfHook pkg-config ]; enableParallelBuilding = true;


sha256 = "09xz06g57wxbacic617pq9c0qb7nly42gif0raplldn5lw964xl2"; revert = true; }) <ins> (fetchpatch { name = "CVE-2021-4145.patch"; url = "https://gitlab.com/qemu-project/qemu/-/commit/66fed30c9cd11854fc878a4eceb507e915d7c9cd.patch"; sha256 = "10za2nag51y4fhc8z7fzw3dfhj37zx8rwg0xcmw5kzmb0gyvvz70"; }) </ins> ] ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch ++ lib.optionals stdenv.hostPlatform.isMusl [ ./sigrtminmax.patch


"--bin=codelldb" ]; <ins> postFixup = '' mkdir -p $out/share # codelldb expects libcodelldb.so to be in the same # directory as the executable, and can't find it in $out/lib. # To make codelldb executable as a standalone, # we put all files in $out/share, and then wrap the binary in $out/bin. mv $out/bin/* $out/share cp $out/lib/* $out/share ln -s ${lldb.lib} $out/lldb makeWrapper $out/share/codelldb $out/bin/codelldb  --set-default LLDB_DEBUGSERVER_PATH "${lldb.out}/bin/lldb-server" ''; </ins> patches = [ ./adapter-output-shared_object.patch ]; # Tests are linked to liblldb but it is not available here.


mkdir -p $ext/{adapter,formatters} mv -t $ext vsix-extracted/extension/* <del> cp -t $ext/adapter ${adapter}/{bin,lib}/* </del> <ins> cp -t $ext/adapter ${adapter}/share/* </ins> cp -r ../adapter/scripts $ext/adapter wrapProgram $ext/adapter/codelldb  --set-default LLDB_DEBUGSERVER_PATH "${lldb.out}/bin/lldb-server"


doCheck = false; postPatch = '' <del> substituteInPlace CMakeLists.txt --replace $'{SoQt_INCLUDE_DIRS}'  </del> <ins> substituteInPlace distutils_cmake/CMakeLists.txt --replace $'{SoQt_INCLUDE_DIRS}'  </ins> $'{Coin_INCLUDE_DIR}';$'{SoQt_INCLUDE_DIRS}' '';


# Rename the binary mv "$out/bin/Pinta" "$out/bin/pinta" <ins> # Copy runtime icons mkdir -p $out/share/icons/hicolor/16x16/ cp -r Pinta.Resources/icons/hicolor/16x16/* $out/share/icons/hicolor/16x16/ </ins> # Install dotnet build installer/linux/install.proj  -target:Install


</listitem> <listitem> <para> <ins> <literal>programs.zsh.autosuggestions.strategy</literal> now takes a list of strings instead of a string. </para> </listitem> <listitem> <para> </ins> The <literal>services.unifi.openPorts</literal> option default value of <literal>true</literal> is now deprecated and will be changed to <literal>false</literal> in 22.11. Configurations


combined `influxdb2` package is still provided in this release for backwards compatibilty, but will be removed at a later date. <ins> - `programs.zsh.autosuggestions.strategy` now takes a list of strings instead of a string. </ins> - The `services.unifi.openPorts` option default value of `true` is now deprecated and will be changed to `false` in 22.11. Configurations using this default will print a warning when rebuilt.


}; strategy = mkOption { <del> type = types.enum [ "history" "match_prev_cmd" ]; default = "history"; </del> <ins> type = types.listOf (types.enum [ "history" "completion" "match_prev_cmd" ]); default = [ "history" ]; </ins> description = '' <del> Set ZSH_AUTOSUGGEST_STRATEGY to choose the strategy for generating suggestions. There are currently two to choose from: </del> <ins> `ZSH_AUTOSUGGEST_STRATEGY` is an array that specifies how suggestions should be generated. The strategies in the array are tried successively until a suggestion is found. There are currently three built-in strategies to choose from: </ins> <del> * history: Chooses the most recent match. * match_prev_cmd: Chooses the most recent match whose preceding history item matches the most recently executed command (more info). Note that this strategy won't work as expected with ZSH options that don't preserve the history order such as HIST_IGNORE_ALL_DUPS or HIST_EXPIRE_DUPS_FIRST. </del> <ins> - `history`: Chooses the most recent match from history. - `completion`: Chooses a suggestion based on what tab-completion would suggest. (requires `zpty` module) - `match_prev_cmd`: Like `history`, but chooses the most recent match whose preceding history item matches the most recently executed command. Note that this strategy won't work as expected with ZSH options that don't preserve the history order such as `HIST_IGNORE_ALL_DUPS` or `HIST_EXPIRE_DUPS_FIRST`. </ins> ''; };


source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="${cfg.highlightStyle}" <del> export ZSH_AUTOSUGGEST_STRATEGY=("${cfg.strategy}") </del> <ins> export ZSH_AUTOSUGGEST_STRATEGY=(${concatStringsSep " " cfg.strategy}) </ins> ${optionalString (!cfg.async) "unset ZSH_AUTOSUGGEST_USE_ASYNC"} ${concatStringsSep "n" (mapAttrsToList (key: value: ''export ${key}="${value}"'') cfg.extraConfig)}


<ins> { appimageTools, lib, fetchurl }: appimageTools.wrapType2 rec { pname = "cider"; version = "1.3.1308"; src = fetchurl { url = "https://1308-429851205-gh.circle-artifacts.com/0/%7E/Cider/dist/artifacts/Cider-${version}.AppImage"; sha256 = "1lbyvn1c8155p039qfzx7jwad7km073phkmrzjm0w3ahdpwz3wgi"; }; extraInstallCommands = let contents = appimageTools.extract { inherit pname version src; }; in '' mv $out/bin/${pname}-${version} $out/bin/${pname} install -m 444 -D ${contents}/${pname}.desktop -t $out/share/applications substituteInPlace $out/share/applications/${pname}.desktop  --replace 'Exec=AppRun' 'Exec=${pname}' cp -r ${contents}/usr/share/icons $out/share ''; meta = with lib; { description = "A new look into listening and enjoying Apple Music in style and performance."; homepage = "https://github.com/ciderapp/Cider"; license = licenses.agpl3; maintainers = [ maintainers.cigrainger ]; platforms = [ "x86_64-linux" ]; }; } </ins>


stdenv = gcc9Stdenv; }; <ins> cider = callPackage ../applications/audio/cider { }; </ins> isolyzer = callPackage ../tools/cd-dvd/isolyzer { }; isomd5sum = callPackage ../tools/cd-dvd/isomd5sum { };


"name": "element-desktop", "productName": "Element", "main": "lib/electron-main.js", <del> "version": "1.10.4", </del> <ins> "version": "1.10.6", </ins> "description": "A feature-rich client for Matrix.org", "author": "Element", "repository": {


"app-builder-lib": "^22.14.10", "asar": "^2.0.1", "chokidar": "^3.5.2", <del> "electron": "^15.3.5", </del> <ins> "electron": "^17", </ins> "electron-builder": "22.11.4", "electron-builder-squirrel-windows": "22.11.4", "electron-devtools-installer": "^3.1.1",


{ <del> "version": "1.10.4", "desktopSrcHash": "cuMo0wRMC6+un3BQK0+Ecnjvs6HugNk71yElNJarlyc=", "desktopYarnHash": "0llnqwgiqggfcgjyaar2h2r1pyw8m14icfb1pcdphqxrah9gpsar", "webHash": "0vf8npddbx4dmq9c1ghak97jn28b18ssblbrq5smdhlzsnxlpm3l" </del> <ins> "version": "1.10.6", "desktopSrcHash": "TJGYavawLDLbP9Sg7HxIcOkr7hcTfAwk4fyOOEv4KhI=", "desktopYarnHash": "038rqg26dn8chzscck5mlhnw2viy6gr8pjb7zrcmi7ipx9h038a0", "webHash": "1wax4h5gfcq4giyq1igsix748cngky487kwvf69zb1gz95hjds9r" </ins> }


 <title>GNOME</title>
 <title>Packaging GNOME applications</title> <para> Programs in the GNOME universe are written in various languages but they all use GObject-based libraries like GLib, GTK or GStreamer. These libraries are often modular, relying on looking into certain directories to find their modules. However, due to Nix’s specific file system organization, this will fail without our intervention. Fortunately, the libraries usually allow overriding the directories through environment variables, either natively or thanks to a patch in nixpkgs. <link xlink:href="#fun-wrapProgram">Wrapping</link> the executables to ensure correct paths are available to the application constitutes a significant part of packaging a modern desktop application. In this section, we will describe various modules needed by such applications, environment variables needed to make the modules load, and finally a script that will do the work for us. </para>
 <title>Settings</title> <para> <link xlink:href="https://developer.gnome.org/gio/stable/GSettings.html">GSettings</link> API is often used for storing settings. GSettings schemas are required, to know the type and other metadata of the stored values. GLib looks for <filename>glib-2.0/schemas/gschemas.compiled</filename> files inside the directories of <envar>XDG_DATA_DIRS</envar>. </para> <para> On Linux, GSettings API is implemented using <link xlink:href="https://wiki.gnome.org/Projects/dconf">dconf</link> backend. You will need to add <literal>dconf</literal> GIO module to <envar>GIO_EXTRA_MODULES</envar> variable, otherwise the <literal>memory</literal> backend will be used and the saved settings will not be persistent. </para> <para> Last you will need the dconf database D-Bus service itself. You can enable it using <option>programs.dconf.enable</option>. </para> <para> Some applications will also require <package>gsettings-desktop-schemas</package> for things like reading proxy configuration or user interface customization. This dependency is often not mentioned by upstream, you should grep for <literal>org.gnome.desktop</literal> and <literal>org.gnome.system</literal> to see if the schemas are needed. </para>

 <title>Icons</title> <para> When an application uses icons, an icon theme should be available in <envar>XDG_DATA_DIRS</envar>. The package for the default, icon-less <link xlink:href="https://www.freedesktop.org/wiki/Software/icon-theme/">hicolor-icon-theme</link> contains <link linkend="ssec-gnome-hooks-hicolor-icon-theme">a setup hook</link> that will pick up icon themes from <literal>buildInputs</literal> and pass it to our wrapper. Unfortunately, relying on that would mean every user has to download the theme included in the package expression no matter their preference. For that reason, we leave the installation of icon theme on the user. If you use one of the desktop environments, you probably already have an icon theme installed. </para>

 <title>GTK Themes</title> <para> Previously, a GTK theme needed to be in <envar>XDG_DATA_DIRS</envar>. This is no longer necessary for most programs since GTK incorporated Adwaita theme. Some programs (for example, those designed for <link xlink:href="https://elementary.io/docs/human-interface-guidelines#human-interface-guidelines">elementary HIG</link>) might require a special theme like <package>pantheon.elementary-gtk-theme</package>. </para>

 <title>GObject introspection typelibs</title> <para> <link xlink:href="https://wiki.gnome.org/Projects/GObjectIntrospection">GObject introspection</link> allows applications to use C libraries in other languages easily. It does this through <literal>typelib</literal> files searched in <envar>GI_TYPELIB_PATH</envar>. </para>

 <title>Various plug-ins</title> <para> If your application uses <link xlink:href="https://gstreamer.freedesktop.org/">GStreamer</link> or <link xlink:href="https://wiki.gnome.org/Projects/Grilo">Grilo</link>, you should set <envar>GST_PLUGIN_SYSTEM_PATH_1_0</envar> and <envar>GRL_PLUGIN_PATH</envar>, respectively. </para>

 <title>Onto <package>wrapGAppsHook</package></title> <para> Given the requirements above, the package expression would become messy quickly: <programlisting> preFixup = '' for f in $(find $out/bin/ $out/libexec/ -type f -executable); do wrapProgram "$f"  --prefix GIO_EXTRA_MODULES : "${getLib gnome3.dconf}/lib/gio/modules"  --prefix XDG_DATA_DIRS : "$out/share"  --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/${name}"  --prefix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"  --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share"  --prefix GI_TYPELIB_PATH : "${lib.makeSearchPath "lib/girepository-1.0" [ pango json-glib ]}" done ''; </programlisting> Fortunately, there is <package>wrapGAppsHook</package>, that does the wrapping for us. In particular, it works in conjunction with other setup hooks that will populate the variable: <itemizedlist> <listitem xml:id="ssec-gnome-hooks-wrapgappshook"> <para> <package>wrapGAppsHook</package> itself will add the package’s <filename>share</filename> directory to <envar>XDG_DATA_DIRS</envar>. </para> </listitem> <listitem xml:id="ssec-gnome-hooks-glib"> <para> <package>glib</package> setup hook will populate <envar>GSETTINGS_SCHEMAS_PATH</envar> and then <package>wrapGAppsHook</package> will prepend it to <envar>XDG_DATA_DIRS</envar>. </para> </listitem> <listitem xml:id="ssec-gnome-hooks-dconf"> <para> <package>gnome3.dconf.lib</package> is a dependency of <package>wrapGAppsHook</package>, which then also adds it to the <envar>GIO_EXTRA_MODULES</envar> variable. </para> </listitem> <listitem xml:id="ssec-gnome-hooks-hicolor-icon-theme"> <para> <package>hicolor-icon-theme</package>’s setup hook will add icon themes to <envar>XDG_ICON_DIRS</envar> which is prepended to <envar>XDG_DATA_DIRS</envar> by <package>wrapGAppsHook</package>. </para> </listitem> <listitem xml:id="ssec-gnome-hooks-gobject-introspection"> <para> <package>gobject-introspection</package> setup hook populates <envar>GI_TYPELIB_PATH</envar> variable with <filename>lib/girepository-1.0</filename> directories of dependencies, which is then added to wrapper by <package>wrapGAppsHook</package>. It also adds <filename>share</filename> directories of dependencies to <envar>XDG_DATA_DIRS</envar>, which is intended to promote GIR files but it also <link xlink:href="https://github.com/NixOS/nixpkgs/issues/32790">pollutes the closures</link> of packages using <package>wrapGAppsHook</package>. </para> <warning> <para> The setup hook <link xlink:href="https://github.com/NixOS/nixpkgs/issues/56943">currently</link> does not work in expressions with <literal>strictDeps</literal> enabled, like Python packages. In those cases, you will need to disable it with strictDeps = false;. </para> </warning> </listitem> <listitem xml:id="ssec-gnome-hooks-gst-grl-plugins"> <para> Setup hooks of <package>gst_all_1.gstreamer</package> and <package>gnome3.grilo</package> will populate the <envar>GST_PLUGIN_SYSTEM_PATH_1_0</envar> and <envar>GRL_PLUGIN_PATH</envar> variables, respectively, which will then be added to the wrapper by <literal>wrapGAppsHook</literal>. </para> </listitem> </itemizedlist> </para> <para> You can also pass additional arguments to <literal>makeWrapper</literal> using <literal>gappsWrapperArgs</literal> in <literal>preFixup</literal> hook: <programlisting> preFixup = '' gappsWrapperArgs+=( # Thumbnailers --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" --prefix XDG_DATA_DIRS : "${librsvg}/share" --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" ) ''; </programlisting> </para>

 <title>Updating GNOME packages</title> <para> Most GNOME package offer <link linkend="var-passthru-updateScript"><literal>updateScript</literal></link>, it is therefore possible to update to latest source tarball by running <command>nix-shell maintainers/scripts/update.nix --argstr package gnome3.nautilus</command> or even en masse with <command>nix-shell maintainers/scripts/update.nix --argstr path gnome3</command>. Read the package’s <filename>NEWS</filename> file to see what changed. </para>

 <title>Frequently encountered issues</title> <variablelist> <varlistentry xml:id="ssec-gnome-common-issues-no-schemas"> <term> <computeroutput>GLib-GIO-ERROR **: <replaceable>06:04:50.903</replaceable>: No GSettings schemas are installed on the system</computeroutput> </term> <listitem> <para> There are no schemas avalable in <envar>XDG_DATA_DIRS</envar>. Temporarily add a random package containing schemas like <package>gsettings-desktop-schemas</package> to <literal>buildInputs</literal>. <link linkend="ssec-gnome-hooks-glib"><package>glib</package></link> and <link linkend="ssec-gnome-hooks-wrapgappshook"><package>wrapGAppsHook</package></link> setup hooks will take care of making the schemas available to application and you will see the actual missing schemas with the <link linkend="ssec-gnome-common-issues-missing-schema">next error</link>. Or you can try looking through the source code for the actual schemas used. </para> </listitem> </varlistentry> <varlistentry xml:id="ssec-gnome-common-issues-missing-schema"> <term> <computeroutput>GLib-GIO-ERROR **: <replaceable>06:04:50.903</replaceable>: Settings schema ‘<replaceable>org.gnome.foo</replaceable>’ is not installed</computeroutput> </term> <listitem> <para> Package is missing some GSettings schemas. You can find out the package containing the schema with <command>nix-locate <replaceable>org.gnome.foo</replaceable>.gschema.xml</command> and let the hooks handle the wrapping as <link linkend="ssec-gnome-common-issues-no-schemas">above</link>. </para> </listitem> </varlistentry> <varlistentry xml:id="ssec-gnome-common-issues-double-wrapped"> <term> When using <package>wrapGAppsHook</package> with special derivers you can end up with double wrapped binaries. </term> <listitem> <para> This is because derivers like <function>python.pkgs.buildPythonApplication</function> or <function>qt5.mkDerivation</function> have setup-hooks automatically added that produce wrappers with <package>makeWrapper</package>. The simplest way to workaround that is to disable the <package>wrapGAppsHook</package> automatic wrapping with dontWrapGApps = true; and pass the arguments it intended to pass to <package>makeWrapper</package> to another. </para> <para> In the case of a Python application it could look like: <programlisting> python3.pkgs.buildPythonApplication { pname = "gnome-music"; version = "3.32.2"; nativeBuildInputs = [ wrapGAppsHook gobject-introspection ... ]; dontWrapGApps = true; # Arguments to be passed to `makeWrapper`, only used by buildPython* makeWrapperArgs = [ "${gappsWrapperArgs[@]}" ]; } </programlisting> And for a QT app like: <programlisting> mkDerivation { pname = "calibre"; version = "3.47.0"; nativeBuildInputs = [ wrapGAppsHook qmake ... ]; dontWrapGApps = true; # Arguments to be passed to `makeWrapper`, only used by qt5’s mkDerivation qtWrapperArgs [ "${gappsWrapperArgs[@]}" ]; } </programlisting> </para> </listitem> </varlistentry> <varlistentry xml:id="ssec-gnome-common-issues-unwrappable-package"> <term> I am packaging a project that cannot be wrapped, like a library or GNOME Shell extension. </term> <listitem> <para> You can rely on applications depending on the library set the necessary environment variables but that it often easy to miss. Instead we recommend to patch the paths in the source code whenever possible. Here are some examples: <itemizedlist> <listitem xml:id="ssec-gnome-common-issues-unwrappable-package-gnome-shell-ext"> <para> <link xlink:href="https://github.com/NixOS/nixpkgs/blob/7bb8f05f12ca3cff9da72b56caa2f7472d5732bc/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix#L21-L24">Replacing a <envar>GI_TYPELIB_PATH</envar> in GNOME Shell extension</link> – we are using <function>substituteAll</function> to include the path to a typelib into a patch. </para> </listitem> <listitem xml:id="ssec-gnome-common-issues-unwrappable-package-gsettings"> <para> The following examples are hardcoding GSettings schema paths. To get the schema paths we use the functions <itemizedlist> <listitem> <para> <function>glib.getSchemaPath</function> Takes a nix package attribute as an argument. </para> </listitem> <listitem> <para> <function>glib.makeSchemaPath</function> Takes a package output like <literal>$out</literal> and a derivation name. You should use this if the schemas you need to hardcode are in the same derivation. </para> </listitem> </itemizedlist> </para> <para xml:id="ssec-gnome-common-issues-unwrappable-package-gsettings-vala"> <link xlink:href="https://github.com/NixOS/nixpkgs/blob/7bb8f05f12ca3cff9da72b56caa2f7472d5732bc/pkgs/desktops/pantheon/apps/elementary-files/default.nix#L78-L86">Hard-coding GSettings schema path in Vala plug-in (dynamically loaded library)</link> – here, <function>substituteAll</function> cannot be used since the schema comes from the same package preventing us from pass its path to the function, probably due to a <link xlink:href="https://github.com/NixOS/nix/issues/1846">Nix bug</link>. </para> <para xml:id="ssec-gnome-common-issues-unwrappable-package-gsettings-c"> <link xlink:href="https://github.com/NixOS/nixpkgs/blob/29c120c065d03b000224872251bed93932d42412/pkgs/development/libraries/glib-networking/default.nix#L31-L34">Hard-coding GSettings schema path in C library</link> – nothing special other than using <link xlink:href="https://github.com/NixOS/nixpkgs/pull/67957#issuecomment-527717467">Coccinelle patch</link> to generate the patch itself. </para> </listitem> </itemizedlist> </para> </listitem> </varlistentry> </variablelist>


<xi:include href="beam.xml" /> <xi:include href="bower.xml" /> <xi:include href="coq.xml" /> <ins> <xi:include href="gnome.xml" /> </ins> <xi:include href="go.xml" /> <xi:include href="haskell.section.xml" /> <xi:include href="idris.section.xml" />


</para> </listitem> </varlistentry> <del> <varlistentry> </del> <ins> <varlistentry xml:id="var-passthru-updateScript"> </ins> <term> <varname>passthru.updateScript</varname> </term>


</varlistentry> <varlistentry> <term> <del> GStreamer </del> <ins> GNOME platform </ins> </term> <listitem> <para> <del> Adds the GStreamer plugins subdirectory of each build input to the <envar>GST_PLUGIN_SYSTEM_PATH_1_0</envar> or <envar>GST_PLUGIN_SYSTEM_PATH</envar> environment variable. </del> <ins> Hooks related to GNOME platform and related libraries like GLib, GTK and GStreamer are described in <xref linkend="sec-language-gnome" />. </ins> </para> </listitem> </varlistentry>


<ins> { stdenv , lib , fetchFromGitHub , gitUpdater }: stdenv.mkDerivation rec { pname = "layan-kde"; version = "2022-02-13"; src = fetchFromGitHub { owner = "vinceliuice"; repo = pname; rev = version; sha256 = "09z90g13l26v23nwr8n5bapwldp3hhdrdikynvm4vvb7qsvb4vrp"; }; postPatch = '' patchShebangs install.sh substituteInPlace install.sh  --replace '$HOME/.local' $out  --replace '$HOME/.config' $out/share ''; installPhase = '' runHook preInstall name= ./install.sh --dest $out/share/themes mkdir -p $out/share/sddm/themes cp -a sddm/Layan* $out/share/sddm/themes/ runHook postInstall ''; passthru.updateScript = gitUpdater {inherit pname version; }; meta = with lib; { description = "A flat Design theme for KDE Plasma desktop"; homepage = "https://github.com/vinceliuice/Layan-kde"; license = licenses.gpl3Only; platforms = platforms.all; maintainers = [ maintainers.romildo ]; }; } </ins>


layan-gtk-theme = callPackage ../data/themes/layan-gtk-theme { }; <ins> layan-kde = callPackage ../data/themes/layan-kde { }; </ins> lato = callPackage ../data/fonts/lato {}; league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type {};