}: let <del> version = "1.6.1"; </del> <ins> version = "1.7.3"; </ins> src = fetchFromGitHub { owner = "HandBrake"; repo = "HandBrake"; rev = version; <del> sha256 = "sha256-0MJ1inMNA6s8l2S0wnpM2c7FxOoOHxs9u4E/rgKfjJo="; </del> <ins> hash = "sha256-4Q//UU/CPgWvhtpROfNPLzBvZlB02hbFe9Z9FA7mX04="; </ins> }; # Handbrake maintains a set of ffmpeg patches. In particular, these # patches are required for subtitle timing to work correctly. See: # https://github.com/HandBrake/HandBrake/issues/4029 <del> ffmpeg-version = "5.1.2"; ffmpeg-hb = ffmpeg_5-full.overrideAttrs (old: { </del> <ins> # base ffmpeg version is specified in: # https://github.com/HandBrake/HandBrake/blob/master/contrib/ffmpeg/module.defs ffmpeg-version = "6.1"; ffmpeg-hb = ffmpeg-full.overrideAttrs (old: { </ins> version = ffmpeg-version; src = fetchurl { url = "https://www.ffmpeg.org/releases/ffmpeg-${ffmpeg-version}.tar.bz2"; <del> hash = "sha256-OaC8yNmFSfFsVwYkZ4JGpqxzbAZs69tAn5UC6RWyLys="; </del> <ins> hash = "sha256-632j3n3TzkiplGq0R6c0a9EaOoXm77jyws5jfn9UdhE="; </ins> }; <del> patches = old.patches or [ ] ++ [ "${src}/contrib/ffmpeg/A01-qsv-libavfilter-qsvvpp-change-the-output-frame-s-width-a.patch" "${src}/contrib/ffmpeg/A02-qsv-configure-ensure-enable-libmfx-uses-libmfx-1.x.patch" "${src}/contrib/ffmpeg/A03-qsv-configure-fix-the-check-for-MFX_CODEC_VP9.patch" "${src}/contrib/ffmpeg/A04-qsv-remove-mfx-prefix-from-mfx-headers.patch" "${src}/contrib/ffmpeg/A05-qsv-load-user-plugin-for-MFX_VERSION-2.0.patch" "${src}/contrib/ffmpeg/A06-qsv-build-audio-related-code-when-MFX_VERSION-2.0.patch" "${src}/contrib/ffmpeg/A07-qsvenc-support-multi-frame-encode-when-MFX_VERSION-2.patch" "${src}/contrib/ffmpeg/A08-qsvenc-support-MFX_RATECONTROL_LA_EXT-when-MFX_VERSI.patch" "${src}/contrib/ffmpeg/A09-qsv-support-OPAQUE-memory-when-MFX_VERSION-2.0.patch" "${src}/contrib/ffmpeg/A10-qsv-configure-add-enable-libvpl-option.patch" "${src}/contrib/ffmpeg/A11-qsv-use-a-new-method-to-create-mfx-session-when-usin.patch" "${src}/contrib/ffmpeg/A12-qsv-fix-decode-10bit-hdr.patch" "${src}/contrib/ffmpeg/A13-mov-read-name-track-tag-written-by-movenc.patch" "${src}/contrib/ffmpeg/A14-movenc-write-3gpp-track-titl-tag.patch" "${src}/contrib/ffmpeg/A15-mov-read-3gpp-udta-tags.patch" "${src}/contrib/ffmpeg/A16-movenc-write-3gpp-track-names-tags-for-all-available.patch" "${src}/contrib/ffmpeg/A17-FFmpeg-devel-amfenc-Add-support-for-pict_type-field.patch" "${src}/contrib/ffmpeg/A18-dvdsubdec-fix-processing-of-partial-packets.patch" "${src}/contrib/ffmpeg/A19-ccaption_dec-return-number-of-bytes-used.patch" "${src}/contrib/ffmpeg/A20-dvdsubdec-return-number-of-bytes-used.patch" "${src}/contrib/ffmpeg/A21-dvdsubdec-use-pts-of-initial-packet.patch" "${src}/contrib/ffmpeg/A22-matroskaenc-aac-extradata-updated.patch" "${src}/contrib/ffmpeg/A23-ccaption_dec-fix-pts-in-real_time-mode.patch" "${src}/contrib/ffmpeg/A24-fix-eac3-dowmix.patch" "${src}/contrib/ffmpeg/A25-enable-truehd-pass.patch" "${src}/contrib/ffmpeg/A26-Update-the-min-version-to-1.4.23.0-for-AMF-SDK.patch" "${src}/contrib/ffmpeg/A27-avcodec-amfenc-Fixes-the-color-information-in-the-ou.patch" "${src}/contrib/ffmpeg/A28-avcodec-amfenc-HDR-metadata.patch" # This patch is not applying since ffmpeg 5.1.1, probably it was backported by upstream # "${src}/contrib/ffmpeg/A30-svt-av1-backports.patch" (fetchpatch { name = "vulkan-remove-extensions.patch"; url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/eb0455d64690"; hash = "sha256-qvLrb7b+9/bel8A2lZuSmBiJtHXsABw0Lvgn1ggnmCU="; }) </del> <ins> patches = (old.patches or [ ]) ++ [ "${src}/contrib/ffmpeg/A01-mov-read-name-track-tag-written-by-movenc.patch" "${src}/contrib/ffmpeg/A02-movenc-write-3gpp-track-titl-tag.patch" "${src}/contrib/ffmpeg/A03-mov-read-3gpp-udta-tags.patch" "${src}/contrib/ffmpeg/A04-movenc-write-3gpp-track-names-tags-for-all-available.patch" "${src}/contrib/ffmpeg/A05-dvdsubdec-fix-processing-of-partial-packets.patch" "${src}/contrib/ffmpeg/A06-dvdsubdec-return-number-of-bytes-used.patch" "${src}/contrib/ffmpeg/A07-dvdsubdec-use-pts-of-initial-packet.patch" "${src}/contrib/ffmpeg/A08-ccaption_dec-fix-pts-in-real_time-mode.patch" "${src}/contrib/ffmpeg/A09-matroskaenc-aac-extradata-updated.patch" "${src}/contrib/ffmpeg/A10-amfenc-Add-support-for-pict_type-field.patch" "${src}/contrib/ffmpeg/A11-amfenc-Fixes-the-color-information-in-the-ou.patch" "${src}/contrib/ffmpeg/A12-amfenc-HDR-metadata.patch" "${src}/contrib/ffmpeg/A13-libavcodec-amfenc-Fix-issue-with-missing-headers-in-.patch" "${src}/contrib/ffmpeg/A14-avcodec-add-ambient-viewing-environment-packet-side-.patch" "${src}/contrib/ffmpeg/A15-avformat-mov-add-support-for-amve-ambient-viewing-en.patch" "${src}/contrib/ffmpeg/A16-videotoolbox-dec-h264.patch" # patch to fix <https://github.com/HandBrake/HandBrake/issues/5011> # commented out because it causes ffmpeg's filter-pixdesc-p010le test to fail. # "${src}/contrib/ffmpeg/A17-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch" "${src}/contrib/ffmpeg/A18-qsv-fix-decode-10bit-hdr.patch" "${src}/contrib/ffmpeg/A19-ffbuild-common-use-gzip-n-flag-for-cuda.patch" </ins> ]; }); <ins> x265-hb = x265.overrideAttrs (old: { # nixpkgs' x265 sourceRoot is x265-.../source whereas handbrake's x265 patches # are written with respect to the parent directory instead of that source directory. # patches which don't cleanly apply are commented out. postPatch = (old.postPatch or "") + '' pushd .. # patch -p1 < ${src}/contrib/x265/A00-crosscompile-fix.patch patch -p1 < ${src}/contrib/x265/A01-threads-priority.patch patch -p1 < ${src}/contrib/x265/A02-threads-pool-adjustments.patch patch -p1 < ${src}/contrib/x265/A03-sei-length-crash-fix.patch patch -p1 < ${src}/contrib/x265/A04-ambient-viewing-enviroment-sei.patch # patch -p1 < ${src}/contrib/x265/A05-memory-leaks.patch popd ''; }); </ins> versionFile = writeText "version.txt" '' BRANCH=${versions.majorMinor version}.x DATE=1970-01-01 00:00:01 +0000


# Use the Nix-provided libxml2 instead of the system-provided one. substituteInPlace libhb/module.defs  --replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2 <ins> '' + optionalString useGtk '' substituteInPlace gtk/module.rules  --replace-fail '$(MESON.exe)' 'meson'  --replace-fail '$(NINJA.exe)' 'ninja'  # Force using nixpkgs dependencies substituteInPlace gtk/meson.build  --replace-fail "cc.find_library('bz2', dirs: hb_libdirs)" "cc.find_library('bz2')"  --replace-fail "cc.find_library('mp3lame', dirs: hb_libdirs)" "cc.find_library('mp3lame')"  --replace-fail  "hb_incdirs = include_directories(hb_dir / 'libhb', hb_dir / 'contrib/include')"  "hb_incdirs = include_directories(hb_dir / 'libhb')"  </ins> ''; nativeBuildInputs = [


pkg-config python3 ] <del> ++ optionals useGtk [ intltool wrapGAppsHook ]; </del> <ins> ++ optionals useGtk [ desktop-file-utils intltool meson ninja wrapGAppsHook ]; </ins> buildInputs = [ a52dec


speex svt-av1 x264 <del> x265 </del> <ins> x265-hb </ins> xz zimg ] ++ optional (!stdenv.isDarwin) numactl ++ optionals useGtk [ <ins> bzip2 </ins> dbus-glib glib gst_all_1.gst-plugins-base


configureFlags = [ "--disable-df-fetch" "--disable-df-verify" <del> "--disable-gtk-update-checks" </del> ] ++ optional (!useGtk) "--disable-gtk" ++ optional useFdk "--enable-fdk-aac"


# NOTE: 2018-12-27: Check NixOS HandBrake test if changing NIX_LDFLAGS = [ "-lx265" ]; <ins> # meson/ninja are used only for the subprojects, not the toplevel dontUseMesonConfigure = true; dontUseMesonInstall = true; dontUseNinjaBuild = true; dontUseNinjaInstall = true; </ins> makeFlags = [ "--directory=build" ]; <del> passthru.tests = { basic-conversion = </del> <ins> passthru = { # for convenience inherit ffmpeg-hb x265-hb; tests.basic-conversion = </ins> let # Big Buck Bunny example, licensed under CC Attribution 3.0. testMkv = fetchurl {


HandBrakeCLI -i ${testMkv} -o test.mkv -e x264 -q 20 -B 160 test -e test.mkv ''; <del> version = testers.testVersion { package = self; command = "HandBrakeCLI --version"; }; </del> <ins> tests.version = testers.testVersion { package = self; command = "HandBrakeCLI --version"; }; </ins> }; meta = with lib; {


license = licenses.gpl2Only; maintainers = with maintainers; [ Anton-Latukha wmertens ]; platforms = with platforms; unix; <del> broken = stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13"; </del> <ins> broken = stdenv.isDarwin;  # https://github.com/NixOS/nixpkgs/pull/297984#issuecomment-2016503434 </ins> }; }; in


substituteInPlace $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W --replace /opt "$out/opt" <del> mkdir -p $out/lib/cups/filter </del> <ins> mkdir -p $out/lib/cups/filter $out/share/cups/model </ins> ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W $out/lib/cups/filter/brother_lpdwrapper_HL1210W <del> ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother-HL1210W-cups-en.ppd $out/lib/cups/filter/brother-HL1210W-cups-en.ppd </del> <ins> ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother-HL1210W-cups-en.ppd $out/share/cups/model/ </ins> # cp brcupsconfig4 $out/opt/brother/Printers/HL1110/cupswrapper/ ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brcupsconfig4 $out/lib/cups/filter/brcupsconfig4


, curl , fetchFromBitbucket , fetchFromGitHub <del> , fetchzip </del> , ghc_filesystem , glew , glfw


, libjack2 , libpulseaudio , libsamplerate <del> , libXext , libXi </del> , makeDesktopItem , makeWrapper , pkg-config


}; in stdenv.mkDerivation rec { <del> pname = "VCV-Rack"; version = "2.4.0"; </del> <ins> pname = "vcv-rack"; version = "2.4.1"; </ins> desktopItems = [ (makeDesktopItem {


owner = "VCVRack"; repo = "Rack"; rev = "v${version}"; <del> sha256 = "0azrqyx5as4jmk9dxb7cj7x9dha81i0mm9pkvdv944qyccqwg55i"; </del> <ins> hash = "sha256-Gn/sFltLXX2mLv4dDqmr/UPd+JBXVkIZGwMI6Rm0Ih4="; </ins> }; patches = [


cp -r ${fundamental-source} plugins/Fundamental/ chmod -R +rw plugins/Fundamental # will be used as build dir substituteInPlace plugin.mk --replace ":= all" ":= dist" <ins> substituteInPlace plugins/Fundamental/src/Logic.cpp  --replace  "LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>"  "struct rack::componentlibrary::LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>" </ins> # Fix reference to zenity substituteInPlace dep/osdialog/osdialog_zenity.c


doInstallCheck = true; <ins> # socket path becomes too long otherwise preInstallCheck = lib.optional stdenv.isDarwin "export TMPDIR=/tmp"; </ins> separateDebugInfo = stdenv.isLinux; crossAttrs = {


<ins> { coreutils , fetchFromGitHub }: let advcpmv-data = { pname = "advcpmv"; patch-version = "0.9"; coreutils-version = "9.4"; version = "${advcpmv-data.patch-version}-${advcpmv-data.coreutils-version}"; src = fetchFromGitHub { owner = "jarun"; repo = "advcpmv"; rev = "a1f8b505e691737db2f7f2b96275802c45f65c59"; hash = "sha256-IHfMu6PyGRPc87J/hbxMUdosmLq13K0oWa5fPLWKOvo="; }; patch-file = advcpmv-data.src + "/advcpmv-${advcpmv-data.version}.patch"; }; coreutilsNoSingleBinary = coreutils.override { singleBinary = false; }; in assert (advcpmv-data.coreutils-version == coreutils.version); coreutilsNoSingleBinary.overrideAttrs (old: { inherit (advcpmv-data) pname version; patches = (old.patches or [ ]) ++ [ advcpmv-data.patch-file ]; outputs = [ "out" ]; # Since we don't need info files configureFlags = (old.configureFlags or [ ]) ++ [ # To not conflict with regular coreutils "--program-prefix=adv" ]; # Only cpg and mvg are desired, the others are not touched and therefore can # be removed. Equally, the info directory is removed. postFixup = (old.postFixup or "") + '' rm -rf $out/share/info pushd $out/bin mv advcp cpg mv advmv mvg rm adv* mv cpg advcp mv mvg advmv ln -s advcp cpg ln -s advcp acp ln -s advmv mvg ln -s advmv amv popd ''; meta = old.meta // { homepage = "https://github.com/jarun/advcpmv"; description = "Patched cp and mv from Coreutils that provides progress bars"; longDescription = '' Advanced Copy is a mod for the GNU cp and GNU mv tools which adds a progress bar and provides some info on what's going on. It was written by Florian Zwicke and released under the GPL. ''; }; }) </ins>


<ins> { stdenv , lib , fetchurl , fetchpatch , fetchFromGitHub , bash , pkg-config , autoconf , cpio , file , which , unzip , zip , perl , cups , freetype , alsa-lib , libjpeg , giflib , libpng , zlib , lcms2 , libX11 , libICE , libXrender , libXext , libXt , libXtst , libXi , libXinerama , libXcursor , libXrandr , fontconfig , openjdk22-bootstrap , ensureNewerSourcesForZipFilesHook , setJavaClassPath # TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages # which should be fixable, this is a no-rebuild workaround for GHC. , headless ? stdenv.targetPlatform.isGhcjs , enableJavaFX ? false , openjfx , enableGnome2 ? true , gtk3 , gnome_vfs , glib , GConf }: let version = { feature = "22"; interim = ""; build = "36"; }; # when building a headless jdk, also bootstrap it with a headless jdk openjdk-bootstrap = openjdk22-bootstrap.override { gtkSupport = !headless; }; openjdk = stdenv.mkDerivation { pname = "openjdk" + lib.optionalString headless "-headless"; version = "${version.feature}${version.interim}+${version.build}"; src = fetchFromGitHub { owner = "openjdk"; repo = "jdk${version.feature}u"; rev = "jdk-${version.feature}${version.interim}+${version.build}"; hash = "sha256-itjvIedPwJl/l3a2gIVpNMs1zkbrjioVqbCj1Z1nCJE="; }; nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ]; buildInputs = [ cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap ] ++ lib.optionals (!headless && enableGnome2) [ gtk3 gnome_vfs GConf glib ]; patches = [ ./fix-java-home-jdk21.patch ./read-truststore-from-env-jdk10.patch ./currency-date-range-jdk10.patch ./increase-javadoc-heap-jdk13.patch ./ignore-LegalNoticeFilePlugin-jdk18.patch # -Wformat etc. are stricter in newer gccs, per # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677 # so grab the work-around from # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24 (fetchurl { url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; }) # Fix build for gnumake-4.4.1: #   https://github.com/openjdk/jdk/pull/12992 (fetchpatch { name = "gnumake-4.4.1"; url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; postPatch = '' chmod +x configure patchShebangs --build configure ''; # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly configurePlatforms = [ "build" "host" ]; # https://openjdk.org/groups/build/doc/building.html configureFlags = [ "--with-boot-jdk=${openjdk-bootstrap.home}" "--with-version-build=${version.build}" "--with-version-opt=nixos" "--with-version-pre=" "--enable-unlimited-crypto" "--with-native-debug-symbols=internal" "--with-libjpeg=system" "--with-giflib=system" "--with-libpng=system" "--with-zlib=system" "--with-lcms=system" "--with-stdc++lib=dynamic" ] ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; separateDebugInfo = true; env.NIX_CFLAGS_COMPILE = "-Wno-error"; NIX_LDFLAGS = toString (lib.optionals (!headless) [ "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" ] ++ lib.optionals (!headless && enableGnome2) [ "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" ]); # -j flag is explicitly rejected by the build system: #     Error: 'make -jN' is not supported, use 'make JOBS=N' # Note: it does not make build sequential. Build system # still runs in parallel. enableParallelBuilding = false; buildFlags = [ "images" ]; installPhase = '' mkdir -p $out/lib mv build/*/images/jdk $out/lib/openjdk # Remove some broken manpages. rm -rf $out/lib/openjdk/man/ja* # Mirror some stuff in top-level. mkdir -p $out/share ln -s $out/lib/openjdk/include $out/include ln -s $out/lib/openjdk/man $out/share/man # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081) ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip # jni.h expects jni_md.h to be in the header search path. ln -s $out/include/linux/*_md.h $out/include/ # Remove crap from the installation. rm -rf $out/lib/openjdk/demo ${lib.optionalString headless '' rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so ''} ln -s $out/lib/openjdk/bin $out/bin ''; preFixup = '' # Propagate the setJavaClassPath setup hook so that any package # that depends on the JDK has $CLASSPATH set up properly. mkdir -p $out/nix-support #TODO or printWords?  cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs # 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/lib/openjdk; fi EOF ''; postFixup = '' # Build the set of output library directories to rpath against LIBDIRS="" for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi LIBDIRS="$(find $(eval echo $$output) -name *.so* -exec dirname {} + | sort -u | tr 'n' ':'):$LIBDIRS" done # Add the local library paths to remove dependencies on the bootstrap for output in $(getAllOutputNames); do if [ "$output" = debug ]; then continue; fi OUTPUTDIR=$(eval echo $$output) BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name *.so*) echo "$BINLIBS" | while read i; do patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true patchelf --shrink-rpath "$i" || true done done ''; disallowedReferences = [ openjdk-bootstrap ]; pos = builtins.unsafeGetAttrPos "feature" version; meta = import ./meta.nix lib version.feature; passthru = { architecture = ""; home = "${openjdk}/lib/openjdk"; inherit gtk3; }; }; in openjdk </ins>


<ins> { stdenv , lib , fetchFromGitHub , fetchpatch , writeText , openjdk21_headless , gradle , pkg-config , perl , cmake , gperf , gtk2 , gtk3 , libXtst , libXxf86vm , glib , alsa-lib , ffmpeg_4 , python3 , ruby , icu68 , withMedia ? true , withWebKit ? false }: let major = "22"; update = ""; build = "+30"; repover = "${major}${update}${build}"; makePackage = args: stdenv.mkDerivation ({ version = "${major}${update}${build}"; src = fetchFromGitHub { owner = "openjdk"; repo = "jfx"; rev = repover; hash = "sha256-sZF7ZPC0kgTTxWgtkxmGtOlfroGPGVZcMw0/wSTJUxQ="; }; buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ]; nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; dontUseCmakeConfigure = true; config = writeText "gradle.properties" ('' CONF = Release JDK_HOME = ${openjdk21_headless.home} '' + args.gradleProperties or ""); buildPhase = '' runHook preBuild export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES export GRADLE_USER_HOME=$(mktemp -d) ln -s $config gradle.properties export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" gradle --no-daemon $gradleFlags sdk runHook postBuild ''; } // args); # Fake build to pre-download deps into fixed-output derivation. # We run nearly full build because I see no other way to download everything that's needed. # Anyone who knows a better way? deps = makePackage { pname = "openjfx-deps"; # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) installPhase = '' find $GRADLE_USER_HOME -type f -regex '.*/modules.*.(jar|pom)'  | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/s]+))$# ($x = $2) =~ tr|.|/|; "install -Dm444 $1 $out/$x/$3/$4/$5" #e'  | sh rm -rf $out/tmp ''; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "sha256-2I7LvYcudlB4DKJ/wEiTjY6nICUxUY52euosUqOA+Bs="; }; in makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_WEBKIT = ${lib.boolToString withWebKit} ''; preBuild = '' swtJar="$(find ${deps} -name org.eclipse.swt*.jar)" substituteInPlace build.gradle  --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }'  --replace 'name: SWT_FILE_NAME' "files('$swtJar')" ''; installPhase = '' cp -r build/modular-sdk $out ''; stripDebugList = [ "." ]; postFixup = '' # Remove references to bootstrap. export openjdkOutPath='${openjdk21_headless.outPath}' find "$out" -name *.so | while read lib; do new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?Q$ENV{openjdkOutPath}E[^:]*,,')" patchelf --set-rpath "$new_refs" "$lib" done ''; disallowedReferences = [ openjdk21_headless openjdk21_headless ]; passthru.deps = deps; meta = with lib; { homepage = "https://openjdk.org/projects/openjfx/"; license = licenses.gpl2Classpath; description = "The next-generation Java client toolkit"; maintainers = with maintainers; [ abbradar ]; platforms = platforms.unix; }; } </ins>


<ins> { callPackage , enableJavaFX ? false , ... }@args: callPackage ./common.nix ({ # Details from https://www.azul.com/downloads/?version=java-22-lts&package=jdk # Note that the latest build may differ by platform dists = { x86_64-linux = { zuluVersion = "22.28.91"; jdkVersion = "22.0.0"; hash = if enableJavaFX then "sha256-HvMiODsz+puu1xtxG2RRXH/PWCk91PGNZ7UcOd9orqQ=" else "sha256-HvMiODsz+puu1xtxG2RRXH/PWCk91PGNZ7UcOd9orqQ="; }; aarch64-linux = { zuluVersion = "22.28.91"; jdkVersion = "22.0.0"; hash = if enableJavaFX then throw "JavaFX is not available for aarch64-linux" else "sha256-3RLNNEbMk5wAZsQmbQj/jpx9iTL/yr9N3wL4t7m6c+s="; }; x86_64-darwin = { zuluVersion = "22.28.91"; jdkVersion = "22.0.0"; hash = if enableJavaFX then "sha256-Y6PSNQjHRXukwux2sVbvpTIqT+Cg+KeG1C0iSEwyKZw=" else "sha256-Y6PSNQjHRXukwux2sVbvpTIqT+Cg+KeG1C0iSEwyKZw="; }; aarch64-darwin = { zuluVersion = "22.28.91"; jdkVersion = "22.0.0"; hash = if enableJavaFX then "sha256-o0VkWB4+PzBmNNWy+FZlyjTgukBTe6owfydb3YNfEE0=" else "sha256-o0VkWB4+PzBmNNWy+FZlyjTgukBTe6owfydb3YNfEE0="; }; }; } // builtins.removeAttrs args [ "callPackage" ]) </ins>


hugs = callPackage ../development/interpreters/hugs { }; <del> inherit (javaPackages) openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21; </del> <ins> inherit (javaPackages) openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21 openjfx22; </ins> openjfx = openjfx17; openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap;


jdk21 = openjdk21; jdk21_headless = openjdk21_headless; <ins> openjdk22 = javaPackages.compiler.openjdk22; openjdk22_headless = javaPackages.compiler.openjdk22.headless; jdk22 = openjdk22; jdk22_headless = openjdk22_headless; </ins> /* default JDK */ jdk = jdk21; jdk_headless = jdk21_headless;


openjfx19 = callPackage ../development/compilers/openjdk/openjfx/19.nix { }; openjfx20 = callPackage ../development/compilers/openjdk/openjfx/20.nix { }; openjfx21 = callPackage ../development/compilers/openjdk/openjfx/21.nix { }; <ins> openjfx22 = callPackage ../development/compilers/openjdk/openjfx/22.nix { }; </ins> in { <del> inherit openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21; </del> <ins> inherit openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21 openjfx22; </ins> compiler = let


openjfx = openjfx21; }; <ins> openjdk22 = mkOpenjdk ../development/compilers/openjdk/22.nix ../development/compilers/zulu/22.nix { openjdk22-bootstrap = temurin-bin.jdk-21; openjfx = openjfx22; }; </ins> temurin-bin = recurseIntoAttrs (callPackage ( if stdenv.isLinux then ../development/compilers/temurin-bin/jdk-linux.nix


}; }; <del> meta = with lib; { </del> <ins> # Some of the OpenJDK derivation set their `pos` by hand. We need to # overwrite this in order to point to Corretto, not OpenJDK. pos = __curPos; meta = with lib; oldAttrs.meta // { </ins> homepage = "https://aws.amazon.com/corretto"; license = licenses.gpl2Only; description = "Amazon's distribution of OpenJDK"; <del> platforms = jdk.meta.platforms; mainProgram = "java"; </del> maintainers = with maintainers; [ rollf ]; }; })


ghdl-llvm = callPackage ../development/compilers/ghdl { backend = "llvm"; <ins> inherit (llvmPackages_15) llvm; </ins> }; gcl_2_6_13_pre = callPackage ../development/compilers/gcl/2.6.13-pre.nix { };


'' runHook preInstall <ins> mv build/linux-${cpu}-server-${buildType}/images/jdk/man build/linux-${cpu}-server-${buildType}/images/${jbrsdkDir} </ins> rm -rf build/linux-${cpu}-server-${buildType}/images/jdk mv build/linux-${cpu}-server-${buildType}/images/${jbrsdkDir} build/linux-${cpu}-server-${buildType}/images/jdk '' + oldAttrs.installPhase + "runHook postInstall";


{ lib , buildNpmPackage , fetchFromGitHub <ins> , runCommand , web-ext </ins> }: buildNpmPackage rec {


npmDepsHash = "sha256-KPBKUjCxva11w/E+Qhlx+1vikpCL7Hr9MiKenYHEVSU="; <ins> npmBuildFlags = [ "--production" ]; passthru.tests.help = runCommand "${pname}-tests" { } '' ${web-ext}/bin/web-ext --help touch $out ''; </ins> meta = { description = "A command line tool to help build, run, and test web extensions"; homepage = "https://github.com/mozilla/web-ext";


<ins> commit 166afaf144d6473464975438353257359dd51708 Author: Andreas Wiese <andreas.wiese@kernkonzept.com> Date:   Thu Feb 1 11:35:02 2024 +0100 aa-remove-unknown: fix readability check This check is intended for ensuring that the profiles file can actually be opened.  The *actual* check is performed by the shell, not the read utility, which won't even be executed if the input redirection (and hence the test) fails. If the test succeeds, though, using `read` here might actually jeopardize the test result if there are no profiles loaded and the file is empty. This commit fixes that case by simply using `true` instead of `read`. diff --git a/utils/aa-remove-unknown b/utils/aa-remove-unknown index 0e00d6a0..3351feef 100755 --- a/utils/aa-remove-unknown +++ b/utils/aa-remove-unknown @@ -63,7 +63,7 @@ fi # We have to do this check because error checking awk's getline() below is # tricky and, as is, results in an infinite loop when apparmorfs returns an # error from open(). -if ! IFS= read -r _ < "$PROFILES" ; then +if ! true < "$PROFILES" ; then echo "ERROR: Unable to read apparmorfs profiles file" 1>&2 exit 1 elif [ ! -w "$REMOVE" ] ; then </ins>


--replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h" ''; <del> patches = lib.optionals stdenv.hostPlatform.isMusl [ </del> <ins> patches = [ ./0001-aa-remove-unknown_empty-ruleset.patch ] ++ lib.optionals stdenv.hostPlatform.isMusl [ </ins> (fetchpatch { url = "https://git.alpinelinux.org/aports/plain/testing/apparmor/0003-Added-missing-typedef-definitions-on-parser.patch?id=74b8427cc21f04e32030d047ae92caa618105b53"; name = "0003-Added-missing-typedef-definitions-on-parser.patch";


"-DENABLE_JACK=ON" (lib.cmakeBool "ENABLE_QSV11" stdenv.hostPlatform.isx86_64) (lib.cmakeBool "ENABLE_LIBFDK" withFdk) <ins> (lib.cmakeBool "ENABLE_ALSA" alsaSupport) (lib.cmakeBool "ENABLE_PULSEAUDIO" pulseaudioSupport) (lib.cmakeBool "ENABLE_PIPEWIRE" pipewireSupport) </ins> ]; dontWrapGApps = true;


video content, efficiently ''; homepage = "https://obsproject.com"; <del> maintainers = with maintainers; [ jb55 MP2E materus fpletz ]; </del> <ins> maintainers = with maintainers; [ eclairevoyant jb55 MP2E materus fpletz ]; </ins> license = with licenses; [ gpl2Plus ] ++ optional withFdk fraunhofer-fdk; platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; mainProgram = "obs";


unixODBC libxml2 libuuid <ins> zlib </ins> ] ++ (with xorg; [ libX11 libXext


echo "=== Running MathInstaller ===" ./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -silent <ins> # Fix library paths cd $out/libexec/Mathematica/Executables for path in mathematica MathKernel Mathematica WolframKernel wolfram math; do sed -i -e 's#export LD_LIBRARY_PATH$#export LD_LIBRARY_PATH=${zlib}/lib:''${LD_LIBRARY_PATH}#' $path done </ins> ''; preFixup = ''


<del> { lib, stdenv, buildPecl, php, valgrind, pcre2, fetchFromGitHub }: </del> <ins> { lib , stdenv , buildPecl , php , valgrind , pcre2 , fetchFromGitHub }: </ins> let <del> version = "5.0.3"; </del> <ins> version = "5.1.2"; </ins> in buildPecl { inherit version; pname = "swoole";


owner = "swoole"; repo = "swoole-src"; rev = "v${version}"; <del> sha256 = "sha256-xadseYMbA+llzTf9JFIitJK2iR0dN8vAjv3n9/e7FGs="; </del> <ins> hash = "sha256-WTsntvauiooj081mOoFcK6CVpnCCR/cEQtJbsOIJ/wo="; </ins> }; buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin) [ valgrind ]; <del> doCheck = true; checkTarget = "tests"; </del> <ins> # tests require internet access doCheck = false; </ins> <del> meta = with lib; { </del> <ins> meta = { </ins> changelog = "https://github.com/swoole/swoole-src/releases/tag/v${version}"; description = "Coroutine-based concurrency library for PHP"; <del> license = licenses.asl20; homepage = "https://www.swoole.co.uk/"; maintainers = teams.php.members; </del> <ins> homepage = "https://www.swoole.com"; license = lib.licenses.asl20; maintainers = lib.teams.php.members; </ins> }; }


, gnome }: <del> stdenv.mkDerivation rec { </del> <ins> stdenv.mkDerivation (finalAttrs: { </ins> pname = "loupe"; <del> version = "45.2"; </del> <ins> version = "45.3"; </ins> src = fetchurl { <del> url = "mirror://gnome/sources/loupe/${lib.versions.major version}/loupe-${version}.tar.xz"; hash = "sha256-uLP/rzZXAmsX4E8Z4EDLqNUetNDKtU5CKVsOWlJxwKs="; </del> <ins> url = "mirror://gnome/sources/loupe/${lib.versions.major finalAttrs.version}/loupe-${finalAttrs.version}.tar.xz"; hash = "sha256-9l8tEgjQhatf+pmN1DyS/pUictTVm1HP7MEevf/KLYY="; </ins> }; patches = [


platforms = platforms.unix; mainProgram = "loupe"; }; <del> } </del> <ins> }) </ins>


, nixosTests }: <del> stdenv.mkDerivation rec { </del> <ins> stdenv.mkDerivation (finalAttrs: { </ins> pname = "vte"; <del> version = "0.74.1"; </del> <ins> version = "0.74.2"; </ins> outputs = [ "out" "dev" "devdoc" ]; src = fetchurl { <del> url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; sha256 = "sha256-IyjD8cmYNQoY4OUTNI6fxYHVfqTnuJrt8R4OPGUEK08="; </del> <ins> url = "mirror://gnome/sources/vte/${lib.versions.majorMinor finalAttrs.version}/vte-${finalAttrs.version}.tar.xz"; sha256 = "sha256-pTX7Kpj+qKJEnNGgLMz1GQEx3d/1LnFa/azj/rU26uc="; </ins> }; patches = [


passthru = { updateScript = gnome.updateScript { <del> packageName = pname; </del> <ins> packageName = "vte"; </ins> versionPolicy = "odd-unstable"; }; tests = {


maintainers = with maintainers; [ astsmtl antono ] ++ teams.gnome.members; platforms = platforms.unix; }; <del> } </del> <ins> }) </ins>


, vulkan-loader , vulkan-utility-libraries , writeText <ins> , libsForQt5 </ins> }: stdenv.mkDerivation rec {


hash = "sha256-2ZUD+RBsl35QV3250JOPCIoJb4sJcBsiRE4SZaS6ROs="; }; <del> nativeBuildInputs = [ cmake python3 jq which pkg-config ]; </del> <ins> nativeBuildInputs = [ cmake python3 jq which pkg-config libsForQt5.qt5.wrapQtAppsHook ]; </ins> buildInputs = [ expat


wayland xcbutilkeysyms xcbutilwm <ins> libsForQt5.qt5.qtbase libsForQt5.qt5.qtwayland </ins> ]; cmakeFlags = [


/nixos/README.md @infinisil /pkgs/README.md @infinisil /maintainers/README.md @infinisil <ins> /maintainers/* @piegamesde @Janik-Haag </ins> # User-facing development documentation /doc/development.md @infinisil


mkdir $out ${if enableFakechroot then '' <del> proot -r $PWD/old_out ${bind-paths} --pwd=/ --root-id bash -c ' </del> <ins> proot -r $PWD/old_out ${bind-paths} --pwd=/ fakeroot bash -c ' </ins> source $stdenv/setup eval "$fakeRootCommands" tar


{ lib , stdenv , fetchFromGitHub <del> , python3Packages </del> <ins> , python310Packages </ins> , testers , stig }: <del> python3Packages.buildPythonApplication rec { </del> <ins> python310Packages.buildPythonApplication rec { </ins> pname = "stig"; # This project has a different concept for pre release / alpha, # Read the project's README for details: https://github.com/rndusr/stig#stig <del> version = "0.12.5a0"; </del> <ins> version = "0.12.8a0"; </ins> src = fetchFromGitHub { owner = "rndusr"; repo = "stig"; rev = "v${version}"; <del> sha256 = "sha256-e27DBzing38llFxPIsMGkZJXp2q7jjFlQdtfsqLXNHw="; </del> <ins> sha256 = "sha256-vfmuA6DqWvAygcS6N+qX1h+Ag+P4eOwm41DhAFZR3r8="; </ins> }; <del> propagatedBuildInputs = with python3Packages; [ </del> <ins> propagatedBuildInputs = with python310Packages; [ </ins> urwid urwidtrees aiohttp


setproctitle ]; <del> nativeCheckInputs = with python3Packages; [ </del> <ins> nativeCheckInputs = with python310Packages; [ </ins> asynctest pytestCheckHook ];


export LC_ALL=C ''; <del> pytestFlagsArray = [ "tests" # TestScrollBarWithScrollable.test_wrapping_bug fails "--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug" # https://github.com/rndusr/stig/issues/214 "--deselect=tests/completion_test/classes_test.py::TestCandidates::test_candidates_are_sorted_case_insensitively" ] ++ lib.optionals stdenv.isDarwin [ "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second" "--deselect=tests/client_test/aiotransmission_test/api_torrent_test.py" "--deselect=tests/client_test/aiotransmission_test/rpc_test.py" </del> <ins> disabledTestPaths = [ # Almost all tests fail in this file, it is reported upstream in: # https://github.com/rndusr/stig/issues/214 , and upstream fails to # reproduce the issue unfortunately. "tests/client_test/aiotransmission_test/api_settings_test.py" ]; disabledTests = [ # Another failure with similar circumstances to the above "test_candidates_are_sorted_case_insensitively" </ins> ]; passthru.tests = testers.testVersion {


<del> { stdenv , lib , fetchurl , autoPatchelfHook , wrapGAppsHook , dbus , libGL , libX11 , libXcursor , libXi , libXrandr , udev , unzip , alsa-lib }: stdenv.mkDerivation rec { pname = "cryptowatch-desktop"; version = "0.7.1"; src = fetchurl { url = "https://cryptowat.ch/desktop/download/linux/${version}"; hash = "sha256-ccyHfjp00CgQH+3SiDWx9yE1skOj0RWxnBomHWY/IaU="; }; unpackPhase = "unzip $src"; nativeBuildInputs = [ autoPatchelfHook wrapGAppsHook unzip ]; buildInputs = [ dbus udev alsa-lib ]; sourceRoot = "."; installPhase = '' install -m755 -D cryptowatch_desktop $out/bin/cryptowatch_desktop ''; preFixup = '' gappsWrapperArgs+=( --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL libX11 libXcursor libXrandr libXi ]}" ) ''; meta = with lib; { homepage = "https://cryptowat.ch"; description = "Application for visualising real-time cryptocurrency market data"; platforms = platforms.linux; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = with maintainers; [ livnev kashw2 ]; }; } </del>


composable_kernel = throw "'composable_kernel' has been replaced with 'rocmPackages.composable_kernel'"; # Added 2023-10-08 cpp-ipfs-api = cpp-ipfs-http-client; # Project has been renamed. Added 2022-05-15 crispyDoom = crispy-doom; # Added 2023-05-01 <ins> cryptowatch-desktop = throw "Cryptowatch Desktop was sunset on September 30th 2023 and has been removed from nixpkgs"; # Added 2023-12-22 </ins> clash = throw "'clash' has been removed, upstream gone. Consider using 'clash-meta' instead."; # added 2023-11-10 clasp = clingo; # added 2022-12-22 claws-mail-gtk3 = claws-mail; # Added 2021-07-10


crow-translate = libsForQt5.callPackage ../applications/misc/crow-translate { }; <del> cryptowatch-desktop = callPackage ../applications/finance/cryptowatch { }; </del> dae = callPackage ../tools/networking/dae { }; darling = callPackage ../applications/emulators/darling { };


In an effort to keep the Nixpkgs manual in a consistent style, please follow the conventions below, unless they prevent you from properly documenting something. In that case, please open an issue about the particular documentation convention and tag it with a "needs: documentation" label. <ins> When needed, each convention explain why it exists, so you can make a decision whether to follow it or not based on your particular case. Note that these conventions are about the **structure** of the manual (and its source files), not about the content that goes in it. You, as the writer of documentation, are still in charge of its content. </ins> - Put each sentence in its own line. This makes reviews and suggestions much easier, since GitHub's review system is based on lines.


} ``` <ins> - When showing inputs/outputs of any [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop), such as a shell or the Nix REPL, use a format as you'd see in the REPL, while trying to visually separate inputs from outputs. This means that for a shell, you should use a format like the following: ```shell $ nix-build -A hello '<nixpkgs>'  --option require-sigs false  --option trusted-substituters file:///tmp/hello-cache  --option substituters file:///tmp/hello-cache /nix/store/zhl06z4lrfrkw5rp0hnjjfrgsclzvxpm-hello-2.12.1 ``` Note how the input is preceded by `$` on the first line and indented on subsequent lines, and how the output is provided as you'd see on the shell. For the Nix REPL, you should use a format like the following: ```shell nix-repl> builtins.attrNames { a = 1; b = 2; } [ "a" "b" ] ``` Note how the input is preceded by `nix-repl>` and the output is provided as you'd see on the Nix REPL. - When documenting functions or anything that has inputs/outputs and example usage, use nested headings to clearly separate inputs, outputs, and examples. Keep examples as the last nested heading, and link to the examples wherever applicable in the documentation. The purpose of this convention is to provide a familiar structure for navigating the manual, so any reader can expect to find content related to inputs in an "inputs" heading, examples in an "examples" heading, and so on. An example: ``` ## buildImage Some explanation about the function here. Describe a particular scenario, and point to [](#ex-dockerTools-buildImage), which is an example demonstrating it. ### Inputs Documentation for the inputs of `buildImage`. Perhaps even point to [](#ex-dockerTools-buildImage) again when talking about something specifically linked to it. ### Passthru outputs Documentation for any passthru outputs of `buildImage`. ### Examples Note that this is the last nested heading in the `buildImage` section. :::{.example #ex-dockerTools-buildImage} # Using `buildImage` Example of how to use `buildImage` goes here. ::: ``` </ins> - Use [definition lists](#definition-lists) to document function arguments, and the attributes of such arguments as well as their [types](https://nixos.org/manual/nix/stable/language/values). For example:


# pkgs.coolFunction Description of what `coolFunction` does. <ins> ## Inputs </ins> `coolFunction` expects a single argument which should be an attribute set, with the following possible attributes: `name` (String)


<ins> { lib , rustPlatform , fetchFromGitHub , pkg-config , wrapGAppsHook , atk , cairo , gdk-pixbuf , glib , gtk3 , pango , gtk-layer-shell }: rustPlatform.buildRustPackage rec { pname = "sway-easyfocus"; version = "unstable-2023-11-05"; src = fetchFromGitHub { owner = "edzdez"; repo = "sway-easyfocus"; rev = "4c70f6728dbfc859e60505f0a7fd82f5a90ed42c"; hash = "sha256-WvYXhf13ZCoa+JAF4bYgi5mI22i9pZLtbIhF1odqaTU="; }; cargoHash = "sha256-9cN0ervcU8JojwG7J250fprbCD2rB9kh9TbRU+wCE/Y="; nativeBuildInputs = [ pkg-config wrapGAppsHook ]; buildInputs = [ atk cairo gdk-pixbuf glib gtk3 gtk-layer-shell pango ]; meta = { description = "A tool to help efficiently focus windows in Sway, inspired by i3-easyfocus"; homepage = "https://github.com/edzdez/sway-easyfocus"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ eclairevoyant ]; mainProgram = "sway-easyfocus"; }; } </ins>


desktopItems = [ (makeDesktopItem { <del> name = "davinci-resolve"; desktopName = "Davinci Resolve"; </del> <ins> name = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; desktopName = "Davinci Resolve${lib.optionalString studioVariant " Studio"}"; </ins> genericName = "Video Editor"; <del> exec = "resolve"; # icon = "DV_Resolve"; </del> <ins> exec = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; icon = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; </ins> comment = "Professional video editing, color, effects and audio post-processing"; categories = [ "AudioVideo"


'' }"; <ins> extraInstallCommands = '' mkdir -p $out/share/applications $out/share/icons/hicolor/128x128/apps ln -s ${davinci}/share/applications/*.desktop $out/share/applications/ ln -s ${davinci}/graphics/DV_Resolve.png $out/share/icons/hicolor/128x128/apps/davinci-resolve${lib.optionalString studioVariant "-studio"}.png ''; </ins> passthru = { inherit davinci; updateScript = lib.getExe (writeShellApplication {


maintainers = with maintainers; [ amarshall jshcmpbll orivej ]; platforms = [ "x86_64-linux" ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; <del> mainProgram = "davinci-resolve"; </del> <ins> mainProgram = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; </ins> }; }


to  work, the username used to connect to PostgreSQL must match the database name, that is services.invidious.settings.db.user must match services.invidious.settings.db.dbname. This is the default since NixOS 24.05. For older systems, it is normally safe to manually set <del> services.invidious.database.user to "invidious" as the new user will be created with permissions for the existing database. `REASSIGN OWNED BY kemal TO invidious;` may also be needed. </del> <ins> the user to "invidious" as the new user will be created with permissions for the existing database. `REASSIGN OWNED BY kemal TO invidious;` may also be needed, it can be run as `sudo -u postgres env psql --user=postgres --dbname=invidious -c 'reassign OWNED BY kemal to invidious;'`. </ins> ''; } ];


, pkg-config , gtk3 , libxml2 <ins> , xkeyboard_config </ins> , wrapGAppsHook <ins> , unstableGitUpdater </ins> }: stdenv.mkDerivation (finalAttrs: { pname = "labwc-tweaks"; <del> version = "unstable-2023-12-08"; </del> <ins> version = "unstable-2024-01-04"; </ins> src = fetchFromGitHub { owner = "labwc"; <del> repo = finalAttrs.pname; rev = "1c79d6a5ee3ac3d1a6140a1a98ae89674ef36635"; hash = "sha256-RD1VCKVoHsoY7SezY7tjZzomikMgA7N6B5vaYkIo9Es="; </del> <ins> repo = "labwc-tweaks"; rev = "1604f64cc62e4800ee04a6e1c323a48ee8140d83"; hash = "sha256-xFvc+Y03HjSvj846o84Wpk5tEXI49z8xkILSX2oas8A="; </ins> }; nativeBuildInputs = [


strictDeps = true; postPatch = '' <del> substituteInPlace stack-lang.c --replace /usr/share /run/current-system/sw/share sed -i '/{ NULL, "/usr/share" },/i { NULL, "/run/current-system/sw/share" },' theme.c </del> <ins> substituteInPlace stack-lang.c --replace /usr/share/X11/xkb ${xkeyboard_config}/share/X11/xkb substituteInPlace theme.c --replace /usr/share /run/current-system/sw/share </ins> ''; <ins> passthru.updateScript = unstableGitUpdater { }; </ins> meta = { homepage = "https://github.com/labwc/labwc-tweaks"; description = "Configuration gui app for labwc"; mainProgram = "labwc-tweaks"; <del> license = lib.licenses.gpl2Plus; </del> <ins> license = lib.licenses.gpl2Only; </ins> platforms = lib.platforms.unix; <del> maintainers = with lib.maintainers; [ romildo ]; </del> <ins> maintainers = with lib.maintainers; [ AndersonTorres romildo ]; </ins> }; })


githubId = 428026; name = "embr"; }; <ins> emilioziniades = { email = "emilioziniades@protonmail.com"; github = "emilioziniades"; githubId = 75438244; name = "Emilio Ziniades"; }; </ins> emily = { email = "nixpkgs@emily.moe"; github = "emilazy";


<ins> { lib , stdenv , fetchFromGitHub , buildNpmPackage , rustPlatform , pkg-config , openssl , darwin }: rustPlatform.buildRustPackage rec { pname = "cook-cli"; version = "0.7.1"; src = fetchFromGitHub { owner = "cooklang"; repo = "cookcli"; rev = "v${version}"; hash = "sha256-3gLVsk6GCxOG24Md7E9fk28Vnc4kVDdwyZUD/GtSwFE="; }; cargoHash = "sha256-6lnURuE1cgNAniHl5ozXo1W3cLYYje7er+ZhvZDKdVg="; nativeBuildInputs = [ pkg-config openssl ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ]; postPatch = '' rm -rf "ui/public" ln -s ${passthru.ui} "ui/public" ''; OPENSSL_NO_VENDOR = 1; passthru.ui = buildNpmPackage { name = "ui"; src = "${src}/ui"; npmDepsHash = "sha256-uMyOAYLVHhY4ytvEFvVzdoQ7ExzQ4sH+ZtDrEacu5bk="; makeCacheWritable = true; npmFlags = [ "--legacy-peer-deps" ]; installPhase = '' runHook preInstall mv public/ $out runHook postInstall ''; }; meta = with lib; { changelog = "https://github.com/cooklang/cookcli/releases/tag/v${version}"; description = "A suite of tools to create shopping lists and maintain recipes"; homepage = "https://cooklang.org/"; license = [ licenses.mit ]; mainProgram = "cook"; maintainers = [ maintainers.emilioziniades ]; platforms = platforms.linux ++ platforms.darwin; }; } </ins>


githubId = 4732885; name = "Ivan Jager"; }; <ins> aikooo7 = { name = "Diogo Fernandes"; email = "prozinhopro1973@gmail.com"; matrix = "@aikoo7:matrix.org"; github = "aikooo7"; githubId = 79667753; keys = [{ fingerprint = "B0D7 2955 235F 6AB5 ACFA  1619 8C7F F5BB 1ADE F191"; }]; }; </ins> aiotter = { email = "git@aiotter.com"; github = "aiotter";