diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d67be3b87242..d42826e3bbf0 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10171,6 +10171,11 @@ githubId = 88038050; name = "Souvik Sen"; }; + io12 = { + github = "io12"; + githubId = 7348004; + name = "Benjamin Levy"; + }; iogamaster = { email = "iogamastercode+nixpkgs@gmail.com"; name = "IogaMaster"; diff --git a/pkgs/applications/editors/jetbrains/source/build.nix b/pkgs/applications/editors/jetbrains/source/build.nix index c981b4bc0b7d..317bfeae4091 100644 --- a/pkgs/applications/editors/jetbrains/source/build.nix +++ b/pkgs/applications/editors/jetbrains/source/build.nix @@ -221,7 +221,7 @@ let brokenPlugins = fetchurl { url = "https://web.archive.org/web/20250224030717if_/https://downloads.marketplace.jetbrains.com/files/brokenPlugins.json"; - hash = "sha256-l3qy9ixYsHqZZ9kk1r2fA4GomaJsLaM/T48VaL5ZJr8="; + hash = "sha256-wQO+qmFfBn32F//bs/a5Q/H4Kpc171jKA9EMmeatc6w="; }; in diff --git a/pkgs/applications/version-management/git-machete/default.nix b/pkgs/applications/version-management/git-machete/default.nix index 0612b06e9aef..5d143c9a47c6 100644 --- a/pkgs/applications/version-management/git-machete/default.nix +++ b/pkgs/applications/version-management/git-machete/default.nix @@ -11,13 +11,13 @@ buildPythonApplication rec { pname = "git-machete"; - version = "3.32.1"; + version = "3.33.0"; src = fetchFromGitHub { owner = "virtuslab"; repo = pname; rev = "v${version}"; - hash = "sha256-G62KCL0l1WTJoSXfJoQd1HXWleKPC8OjX39AD9NOgV0="; + hash = "sha256-kzMjMyqaf4F/cRJ6+r9Ne+NUlG98iubKYqAm+NpmRtM="; }; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/by-name/co/conmon/package.nix b/pkgs/by-name/co/conmon/package.nix index e7add38b3c2b..b23b965e9702 100644 --- a/pkgs/by-name/co/conmon/package.nix +++ b/pkgs/by-name/co/conmon/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation rec { pname = "conmon"; - version = "2.1.12"; + version = "2.1.13"; src = fetchFromGitHub { owner = "containers"; repo = pname; rev = "v${version}"; - hash = "sha256-iSC1Q7fdf+4YH4vLFPOscRWxNv/xygYx872u8msmMmc="; + hash = "sha256-XsVWcJsUc0Fkn7qGRJDG5xrQAsJr6KN7zMy3AtPuMTo="; }; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/by-name/ep/epson_201207w/package.nix b/pkgs/by-name/ep/epson_201207w/package.nix index c5fac4e37bf8..9c721fd29080 100644 --- a/pkgs/by-name/ep/epson_201207w/package.nix +++ b/pkgs/by-name/ep/epson_201207w/package.nix @@ -10,7 +10,8 @@ }: let - version = "1.0.0"; + version = "1.0.1"; + filterVersion = "1.0.2"; in stdenv.mkDerivation { @@ -20,10 +21,10 @@ stdenv.mkDerivation { src = fetchurl { # NOTE: Don't forget to update the webarchive link too! urls = [ - "https://download.ebz.epson.net/dsc/op/stable/SRPMS/epson-inkjet-printer-201207w-${version}-1lsb3.2.src.rpm" - "https://web.archive.org/web/https://download.ebz.epson.net/dsc/op/stable/SRPMS/epson-inkjet-printer-201207w-${version}-1lsb3.2.src.rpm" + "https://download3.ebz.epson.net/dsc/f/03/00/15/64/87/25d34a13841e5e95d80266e6fd8dfcdf67c95634/epson-inkjet-printer-201207w-1.0.1-1.src.rpm" + "https://web.archive.org/web/https://download3.ebz.epson.net/dsc/f/03/00/15/64/87/25d34a13841e5e95d80266e6fd8dfcdf67c95634/epson-inkjet-printer-201207w-1.0.1-1.src.rpm" ]; - sha256 = "1ixnhn2dk83nh9v8sdivzgc2bm9z2phvsbx8bc6ainbjq6vn7lns"; + sha256 = "0icbsd3m8ij1zm55q8vms81dxd79nf5m33i2g4knddljsfv7nxdc"; }; nativeBuildInputs = [ @@ -40,12 +41,12 @@ stdenv.mkDerivation { unpackPhase = '' rpmextract $src tar -zxf epson-inkjet-printer-201207w-${version}.tar.gz - tar -zxf epson-inkjet-printer-filter-${version}.tar.gz + tar -zxf epson-inkjet-printer-filter-${filterVersion}.tar.gz for ppd in epson-inkjet-printer-201207w-${version}/ppds/*; do substituteInPlace $ppd --replace "/opt/epson-inkjet-printer-201207w" "$out" substituteInPlace $ppd --replace "/cups/lib" "/lib/cups" done - cd epson-inkjet-printer-filter-${version} + cd epson-inkjet-printer-filter-${filterVersion} ''; preConfigure = '' @@ -86,7 +87,7 @@ stdenv.mkDerivation { }; ''; license = with licenses; [ - lgpl21 + lgpl21Plus epson ]; maintainers = [ maintainers.romildo ]; diff --git a/pkgs/by-name/ka/katago/package.nix b/pkgs/by-name/ka/katago/package.nix index e3ca8cd86781..f4b32cdeae8e 100644 --- a/pkgs/by-name/ka/katago/package.nix +++ b/pkgs/by-name/ka/katago/package.nix @@ -67,16 +67,23 @@ stdenv'.mkDerivation rec { boost ] ++ lib.optionals (backend == "eigen") [ eigen ] - ++ lib.optionals (backend == "cuda") [ - cudaPackages.cuda_cudart - cudaPackages.cudnn - cudaPackages.cudatoolkit - ] - ++ lib.optionals (backend == "tensorrt") [ - cudaPackages.cuda_cudart - cudaPackages.cudatoolkit - cudaPackages.tensorrt - ] + ++ lib.optionals (backend == "cuda") ( + with cudaPackages; + [ + cuda_cccl + cuda_cudart + cuda_nvcc + cudnn + libcublas + ] + ) + ++ lib.optionals (backend == "tensorrt") ( + with cudaPackages; + [ + cuda_cudart + tensorrt + ] + ) ++ lib.optionals (backend == "opencl") [ opencl-headers ocl-icd @@ -103,7 +110,7 @@ stdenv'.mkDerivation rec { cd cpp/ '' + lib.optionalString (backend == "cuda" || backend == "tensorrt") '' - export CUDA_PATH="${cudaPackages.cudatoolkit}" + export CUDA_PATH="${cudaPackages.cuda_nvcc}" export EXTRA_LDFLAGS="-L/run/opengl-driver/lib" ''; diff --git a/pkgs/by-name/ke/kew/package.nix b/pkgs/by-name/ke/kew/package.nix index 7cab080e0fe4..29f55beafa94 100644 --- a/pkgs/by-name/ke/kew/package.nix +++ b/pkgs/by-name/ke/kew/package.nix @@ -1,39 +1,68 @@ -{ lib -, stdenv -, fetchFromGitHub -, ffmpeg -, fftwFloat -, chafa -, freeimage -, glib -, pkg-config +{ + lib, + stdenv, + fetchFromGitHub, + fftwFloat, + chafa, + glib, + libopus, + opusfile, + libvorbis, + taglib, + faad2, + libogg, + pkg-config, + versionCheckHook, + gitUpdater, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "kew"; - version = "1.5.2"; + version = "3.0.3"; src = fetchFromGitHub { owner = "ravachol"; repo = "kew"; - rev = "v${version}"; - hash = "sha256-Om7v8eTlYxXQYf1MG+L0I5ICQ2LS7onouhPGosuK8NM="; + tag = "v${finalAttrs.version}"; + hash = "sha256-DzJ+7PanA15A9nIbFPWZ/tdxq4aDyParJORcuqHV7jc="; }; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ffmpeg freeimage fftwFloat chafa glib ]; + buildInputs = [ + fftwFloat.dev + chafa + glib.dev + libopus + opusfile + libvorbis + taglib + faad2 + libogg + ]; installFlags = [ "MAN_DIR=${placeholder "out"}/share/man" "PREFIX=${placeholder "out"}" ]; - meta = with lib; { + nativeInstallCheckInputs = [ versionCheckHook ]; + + versionCheckProgramArg = [ "--version" ]; + doInstallCheck = true; + + passthru = { + updateScript = gitUpdater { }; + }; + + meta = { description = "Command-line music player for Linux"; homepage = "https://github.com/ravachol/kew"; - platforms = platforms.linux; - license = licenses.gpl2Only; - maintainers = with maintainers; [ demine ]; + platforms = lib.platforms.unix; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ + demine + matteopacini + ]; mainProgram = "kew"; }; -} +}) diff --git a/pkgs/by-name/mm/mmj2/package.nix b/pkgs/by-name/mm/mmj2/package.nix new file mode 100644 index 000000000000..90bffe0b6916 --- /dev/null +++ b/pkgs/by-name/mm/mmj2/package.nix @@ -0,0 +1,60 @@ +{ + lib, + maven, + fetchFromGitHub, + jre, + makeWrapper, +}: + +let + lastVersion = "2.5.2"; + +in +maven.buildMavenPackage { + pname = "mmj2"; + + # The latest stable version is from 2017 and doesn't include the mmj2jar/mmj2 + # wrapper script, so use the unstable one for now + version = "${lastVersion}-unstable-2023-06-27"; + + src = fetchFromGitHub { + owner = "digama0"; + repo = "mmj2"; + fetchSubmodules = true; + rev = "1cd95c1fe4435899c8575644fccb412dd77d79e4"; + hash = "sha256-WYBrLY04+bJGzjRMs8LgHnI6lMRhQKyz15DIoLeiE2s="; + }; + + mvnHash = "sha256-fu/q6CTvSllrfgnKNX6aIuPO65H/q0IPCHFuWmOFOvM="; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + local jar=$out/share/$pname/$pname.jar + local bin=$out/bin/$pname + install -Dm644 target/$pname-${lastVersion}-SNAPSHOT-jar-with-dependencies.jar $jar + install -Dm744 mmj2jar/$pname $bin + wrapProgram $bin \ + --set MMJ2_JAR $jar \ + --set JAVA ${jre}/bin/java + + runHook postInstall + ''; + + meta = with lib; { + description = "GUI Proof Assistant for the Metamath project"; + longDescription = '' + mmj2 is a proof assistant for the Metamath language. Metamath is a + language that lets you express mathematical axioms and theorems. The proof + assistant includes a GUI for creating proofs, proof verification tools, + and grammatical/syntax analysis. + ''; + homepage = "https://github.com/digama0/mmj2"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ io12 ]; + platforms = platforms.linux; + mainProgram = "mmj2"; + }; +} diff --git a/pkgs/by-name/nb/nbdkit/package.nix b/pkgs/by-name/nb/nbdkit/package.nix index 8d1ab5b3c89d..f31e9bc56888 100644 --- a/pkgs/by-name/nb/nbdkit/package.nix +++ b/pkgs/by-name/nb/nbdkit/package.nix @@ -20,11 +20,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "nbdkit"; - version = "1.40.4"; + version = "1.42.0"; src = fetchurl { url = "https://download.libguestfs.org/nbdkit/${lib.versions.majorMinor finalAttrs.version}-stable/nbdkit-${finalAttrs.version}.tar.gz"; - hash = "sha256-hGoc34F7eAvHjdQHxcquNJhpwpL5CLfv2DBZKVmpcpw="; + hash = "sha256-m5IzOExW2otMTVEBp989W4mN9Fx529p3MoGKw0GPSJo="; }; prePatch = '' diff --git a/pkgs/by-name/sc/scenefx/package.nix b/pkgs/by-name/sc/scenefx/package.nix index 133bb70e5740..68cfb21b6591 100644 --- a/pkgs/by-name/sc/scenefx/package.nix +++ b/pkgs/by-name/sc/scenefx/package.nix @@ -4,7 +4,7 @@ fetchFromGitHub, meson, ninja, - wlroots_0_17, + wlroots_0_18, scdoc, pkg-config, wayland, @@ -21,13 +21,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "scenefx"; - version = "0.1"; + version = "0.2.1"; src = fetchFromGitHub { owner = "wlrfx"; repo = "scenefx"; tag = finalAttrs.version; - hash = "sha256-vBmunqXwGbMNiGRd372TdMU4siWhIVYn5RVYne9C7uQ="; + hash = "sha256-BLIADMQwPJUtl6hFBhh5/xyYwLFDnNQz0RtgWO/Ua8s="; }; strictDeps = true; @@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: { pixman wayland wayland-protocols - wlroots_0_17 + wlroots_0_18 ]; passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; diff --git a/pkgs/by-name/st/stm32cubemx/package.nix b/pkgs/by-name/st/stm32cubemx/package.nix index e5ee00a4e080..6c03707bb5dc 100644 --- a/pkgs/by-name/st/stm32cubemx/package.nix +++ b/pkgs/by-name/st/stm32cubemx/package.nix @@ -97,8 +97,9 @@ buildFHSEnv { inherit (package) pname version meta; runScript = "${package.outPath}/bin/stm32cubemx"; extraInstallCommands = '' - mkdir -p $out/share/applications + mkdir -p $out/share/{applications,icons} ln -sf ${package.outPath}/share/applications/* $out/share/applications/ + ln -sf ${package.outPath}/share/icons/* $out/share/icons/ ''; targetPkgs = pkgs: with pkgs; [ diff --git a/pkgs/by-name/sw/swayfx-unwrapped/package.nix b/pkgs/by-name/sw/swayfx-unwrapped/package.nix index cb4d81a074d8..fecda4c05bb8 100644 --- a/pkgs/by-name/sw/swayfx-unwrapped/package.nix +++ b/pkgs/by-name/sw/swayfx-unwrapped/package.nix @@ -25,7 +25,7 @@ scenefx, wayland-scanner, xcbutilwm, - wlroots_0_17, + wlroots_0_18, testers, nixosTests, # Used by the NixOS module: @@ -33,7 +33,6 @@ enableXWayland ? true, systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, trayEnabled ? systemdSupport, - fetchpatch2, }: stdenv.mkDerivation (finalAttrs: { @@ -45,25 +44,19 @@ stdenv.mkDerivation (finalAttrs: { ; pname = "swayfx-unwrapped"; - version = "0.4"; + version = "0.5"; src = fetchFromGitHub { owner = "WillPower3309"; repo = "swayfx"; tag = finalAttrs.version; - hash = "sha256-VT+JjQPqCIdtaLeSnRiZ3rES0KgDJR7j5Byxr+d6oRg="; + hash = "sha256-gdab7zkjp/S7YVCP1t/OfOdUXZRwNvNSuRFGWEJScF8="; }; patches = [ ./load-configuration-from-etc.patch - (fetchpatch2 { - # fix missing switch statement for newer libinput - url = "https://github.com/swaywm/sway/pull/8470.patch?full_index=1"; - hash = "sha256-UTZ2DNEsGi5RYrgZThHkYz3AnnIl/KxieinA1WUZRq4="; - }) - (replaceVars ./fix-paths.patch { inherit swaybg; }) @@ -105,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: { scenefx wayland wayland-protocols - (wlroots_0_17.override { inherit (finalAttrs) enableXWayland; }) + (wlroots_0_18.override { inherit (finalAttrs) enableXWayland; }) ] ++ lib.optionals finalAttrs.enableXWayland [ xcbutilwm ]; mesonFlags = @@ -122,7 +115,6 @@ stdenv.mkDerivation (finalAttrs: { in [ (mesonOption "sd-bus-provider" sd-bus-provider) - (mesonEnable "xwayland" finalAttrs.enableXWayland) (mesonEnable "tray" finalAttrs.trayEnabled) ]; diff --git a/pkgs/by-name/te/teamspeak6-client/package.nix b/pkgs/by-name/te/teamspeak6-client/package.nix index feef9378133c..a05263c1353d 100644 --- a/pkgs/by-name/te/teamspeak6-client/package.nix +++ b/pkgs/by-name/te/teamspeak6-client/package.nix @@ -74,7 +74,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { name = "TeamSpeak"; exec = "TeamSpeak"; icon = "teamspeak6-client"; - desktopName = "teamspeak6-client"; + desktopName = "TeamSpeak"; comment = "TeamSpeak Voice Communication Client"; categories = [ "Audio" diff --git a/pkgs/by-name/wa/waypipe/package.nix b/pkgs/by-name/wa/waypipe/package.nix index 4ea166898173..01d18f7fc169 100644 --- a/pkgs/by-name/wa/waypipe/package.nix +++ b/pkgs/by-name/wa/waypipe/package.nix @@ -22,18 +22,18 @@ }: llvmPackages.stdenv.mkDerivation rec { pname = "waypipe"; - version = "0.10.2"; + version = "0.10.3"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "mstoeckl"; repo = "waypipe"; tag = "v${version}"; - hash = "sha256-MTh3it+sJxd+vOTi9fVOxvlqlkgJAK56wel3xX0IzJE="; + hash = "sha256-E0NJTOK8wf42dXgBtsOmCKlfSLC/zEuUxLKVxwcb9Ig="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; - hash = "sha256-M1PTlkmZu1+F14kAO5yH9Oa7/hJlYiG9ACncRaz30Q8="; + hash = "sha256-T2/su0DQt8KZ8diHTNz3jzeMZaW3cGcAFA6MYs1Qn3k="; }; strictDeps = true; diff --git a/pkgs/by-name/we/wemeet/package.nix b/pkgs/by-name/we/wemeet/package.nix new file mode 100644 index 000000000000..0cde796af895 --- /dev/null +++ b/pkgs/by-name/we/wemeet/package.nix @@ -0,0 +1,256 @@ +{ + lib, + stdenv, + fetchurl, + dpkg, + autoPatchelfHook, + makeWrapper, + nss, + xorg, + desktop-file-utils, + libpulseaudio, + libgcrypt, + dbus, + systemd, + udev, + libGL, + fontconfig, + freetype, + openssl, + wayland, + libdrm, + harfbuzz, + openldap, + curl, + nghttp2, + libunwind, + alsa-lib, + libidn2, + rtmpdump, + libpsl, + libkrb5, + xkeyboard_config, + libsForQt5, + pkg-config, + fetchFromGitHub, + cmake, + ninja, + wireplumber, + libportal, + xdg-desktop-portal, + opencv4WithoutCuda, + pipewire, + fetchgit, +}: +let + wemeet-wayland-screenshare = stdenv.mkDerivation { + pname = "wemeet-wayland-screenshare"; + version = "0-unstable-2025-01-06"; + + src = fetchFromGitHub { + owner = "xuwd1"; + repo = "wemeet-wayland-screenshare"; + rev = "ab226c63380c4233e2f490ba17e6ea8f393999e2"; + hash = "sha256-nBkbyy0VGOaPNVsEA02bSlTI6eQoVr/QVpEEpCuFdUw="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + ]; + + buildInputs = [ + wireplumber + libportal + xdg-desktop-portal + libsForQt5.qtwayland + libsForQt5.xwaylandvideobridge + opencv4WithoutCuda + pipewire + xorg.libXdamage + xorg.libXrandr + xorg.libX11 + ]; + + dontWrapQtApps = true; + + meta = { + description = "Hooked WeMeet that enables screenshare on Wayland"; + homepage = "https://github.com/xuwd1/wemeet-wayland-screenshare"; + license = lib.licenses.mit; + }; + }; + + libwemeetwrap = stdenv.mkDerivation { + # for mitigating file transfer crashes + pname = "libwemeetwrap"; + version = "0-unstable-2023-12-14"; + + src = fetchgit { + url = "https://aur.archlinux.org/wemeet-bin.git"; + rev = "8f03fbc4d5ae263ed7e670473886cfa1c146aecc"; + hash = "sha256-ExzLCIoLu4KxaoeWNhMXixdlDTIwuPiYZkO+XVK8X10="; + }; + + dontWrapQtApps = true; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + openssl + libpulseaudio + xorg.libX11 + ]; + + buildPhase = '' + runHook preBuild + + read -ra openssl_args < <(pkg-config --libs openssl) + read -ra libpulse_args < <(pkg-config --cflags --libs libpulse) + # Comment out `-D WRAP_FORCE_SINK_HARDWARE` to disable the patch that forces wemeet detects sink as hardware sink + $CC $CFLAGS -Wall -Wextra -fPIC -shared \ + "''${openssl_args[@]}" "''${libpulse_args[@]}" \ + -o libwemeetwrap.so wrap.c -D WRAP_FORCE_SINK_HARDWARE + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install -Dm755 ./libwemeetwrap.so $out/lib/libwemeetwrap.so + + runHook postInstall + ''; + + meta.license = lib.licenses.unfree; + }; + selectSystem = + attrs: + attrs.${stdenv.hostPlatform.system} + or (throw "wemeet: ${stdenv.hostPlatform.system} is not supported"); +in +stdenv.mkDerivation { + pname = "wemeet"; + version = "3.19.2.400"; + + src = selectSystem { + x86_64-linux = fetchurl { + url = "https://updatecdn.meeting.qq.com/cos/fb7464ffb18b94a06868265bed984007/TencentMeeting_0300000000_3.19.2.400_x86_64_default.publish.officialwebsite.deb"; + hash = "sha256-PSGc4urZnoBxtk1cwwz/oeXMwnI02Mv1pN2e9eEf5kE="; + }; + aarch64-linux = fetchurl { + url = "https://updatecdn.meeting.qq.com/cos/867a8a2e99a215dcd4f60fe049dbe6cf/TencentMeeting_0300000000_3.19.2.400_arm64_default.publish.officialwebsite.deb"; + hash = "sha256-avN+PHKKC58lMC5wd0yVLD0Ct7sbb4BtXjovish0ULU="; + }; + }; + + nativeBuildInputs = [ + dpkg + autoPatchelfHook + makeWrapper + ]; + + buildInputs = [ + nss + xorg.libX11 + xorg.libSM + xorg.libICE + xorg.libXtst + desktop-file-utils + libpulseaudio + libgcrypt + dbus + systemd + udev + libGL + fontconfig + freetype + openssl + wayland + libdrm + harfbuzz + openldap + curl + nghttp2 + libunwind + alsa-lib + libidn2 + rtmpdump + libpsl + libkrb5 + xkeyboard_config + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/app + cp -r opt/wemeet $out/app/wemeet + cp -r usr/share $out/share + rm -f $out/app/wemeet/lib/libcurl.so + substituteInPlace $out/share/applications/wemeetapp.desktop \ + --replace-fail "/opt/wemeet/wemeetapp.sh" "wemeet" \ + --replace-fail "/opt/wemeet/wemeet.svg" "wemeet" + substituteInPlace $out/app/wemeet/bin/qt.conf \ + --replace-fail "Prefix = ../" "Prefix = $out/app/wemeet/lib" + cp -r $out/app/wemeet/icons $out/share/icons || true + install -Dm0644 $out/app/wemeet/wemeet.svg $out/share/icons/hicolor/scalable/apps/wemeet.svg + ln -s $out/app/wemeet/bin/raw/xcast.conf $out/app/wemeet/bin/xcast.conf + ln -s $out/app/wemeet/plugins $out/app/wemeet/lib/plugins + ln -s $out/app/wemeet/resources $out/app/wemeet/lib/resources + mkdir -p $out/app/wemeet/lib/translations + ln -s $out/app/wemeet/translations/qtwebengine_locales $out/app/wemeet/lib/translations/qtwebengine_locales + + runHook postInstall + ''; + + # set LP_NUM_THREADS limit the number of cores used by rendering + # set XDG_SESSION_TYPE; unset WAYLAND_DISPLAY getting border shadows to work + # set QT_STYLE_OVERRIDE solve the color of the font is not visible when using the included Qt + # set IBUS_USE_PORTAL fix ibus + preFixup = + let + baseWrapperArgs = [ + "--set LP_NUM_THREADS 2" + "--set QT_STYLE_OVERRIDE fusion" + "--set IBUS_USE_PORTAL 1" + "--set XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb" + "--prefix LD_LIBRARY_PATH : $out/lib:$out/translations:${xorg.libXext}/lib:${xorg.libXdamage}/lib:${opencv4WithoutCuda}/lib:${xorg.libXrandr}/lib" + "--prefix PATH : $out/bin" + "--prefix QT_PLUGIN_PATH : $out/plugins" + ]; + commonWrapperArgs = baseWrapperArgs ++ [ + "--prefix LD_PRELOAD : ${libwemeetwrap}/lib/libwemeetwrap.so" + "--run 'if [[ $XDG_SESSION_TYPE == \"wayland\" ]]; then export LD_PRELOAD=${wemeet-wayland-screenshare}/lib/wemeet/libhook.so\${LD_PRELOAD:+:$LD_PRELOAD}; fi'" + ]; + xwaylandWrapperArgs = baseWrapperArgs ++ [ + "--set XDG_SESSION_TYPE x11" + "--unset WAYLAND_DISPLAY" + "--prefix LD_PRELOAD : ${libwemeetwrap}/lib/libwemeetwrap.so:${wemeet-wayland-screenshare}/lib/wemeet/libhook.so" + ]; + in + '' + makeWrapper $out/app/wemeet/bin/wemeetapp $out/bin/wemeet \ + ${lib.concatStringsSep " " commonWrapperArgs} + makeWrapper $out/app/wemeet/bin/wemeetapp $out/bin/wemeet-xwayland \ + ${lib.concatStringsSep " " xwaylandWrapperArgs} + ''; + + meta = { + description = "Tencent Video Conferencing"; + homepage = "https://wemeet.qq.com"; + license = lib.licenses.unfree; + mainProgram = "wemeet"; + platforms = [ + "x86_64-linux" + "aarch64-linux" + ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + maintainers = with lib.maintainers; [ wrvsrx ]; + }; +} diff --git a/pkgs/by-name/wo/worldpainter/package.nix b/pkgs/by-name/wo/worldpainter/package.nix new file mode 100644 index 000000000000..d37b99ce782f --- /dev/null +++ b/pkgs/by-name/wo/worldpainter/package.nix @@ -0,0 +1,75 @@ +{ + lib, + stdenv, + fetchurl, + jre, + makeWrapper, + makeDesktopItem, + copyDesktopItems, + gnused, +}: +stdenv.mkDerivation rec { + pname = "worldpainter"; + version = "2.23.2"; + + src = fetchurl { + url = "https://www.worldpainter.net/files/${pname}_${version}.tar.gz"; + hash = "sha256-FhrfI2/mBeIZAg26Q8x8T2YU2ANwAkoC3h9Tgw6ggoY="; + }; + + nativeBuildInputs = [ + makeWrapper + copyDesktopItems + gnused + ]; + + outputs = [ "out" ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,lib,.install4j/user} + + install -Dm644 bin/* "$out/bin/" + install -Dm644 lib/* "$out/lib/" + install -Dm644 *.vmoptions "$out/" + install -Dm755 worldpainter "$out/bin" + install -Dm755 wpscript "$out/bin" + find .install4j/ -maxdepth 1 -type f -exec install -Dm644 {} "$out/.install4j/" \; + find .install4j/user/ -maxdepth 1 -type f -exec install -Dm644 {} "$out/.install4j/user/" \; + + mkdir -p $out/share/{pixmaps,applications} + install -Dm644 .install4j/i4j_extf_8_jed6s0_1y6kkxa.png "$out/share/pixmaps/worldpainter.png" + runHook postInstall + ''; + + postInstall = '' + sed -i 's/app_home=\./app_home=../' $out/bin/worldpainter + sed -i 's/app_home=\./app_home=../' $out/bin/wpscript + wrapProgram $out/bin/worldpainter --prefix PATH : "${jre}/bin" + wrapProgram $out/bin/wpscript --prefix PATH : "${jre}/bin" + ''; + + desktopItems = [ + (makeDesktopItem { + name = pname; + desktopName = pname; + exec = pname; + icon = pname; + terminal = false; + type = "Application"; + startupWMClass = pname; + comment = "Paint your own Minecraft worlds"; + categories = [ "Game" ]; + }) + ]; + + meta = { + homepage = "https://www.worldpainter.net/"; + description = "Interactive map generator for Minecraft"; + longDescription = "WorldPainter is an interactive map generator for Minecraft. It allows you to \"paint\" landscapes using similar tools as a regular paint program. Sculpt and mould the terrain, paint materials, trees, snow and ice, etc. onto it, and much more"; + license = with lib.licenses; [ gpl3 ]; + maintainers = with lib.maintainers; [ eymeric ]; + platforms = lib.platforms.linux; + sourceProvenance = [ lib.sourceTypes.binaryBytecode ]; + }; +} diff --git a/pkgs/development/beam-modules/build-mix.nix b/pkgs/development/beam-modules/build-mix.nix index ed286c4c2bd1..dd2d3f7dea97 100644 --- a/pkgs/development/beam-modules/build-mix.nix +++ b/pkgs/development/beam-modules/build-mix.nix @@ -57,7 +57,8 @@ let in "[${lib.concatStringsSep "," options}]"; - LC_ALL = "C.UTF-8"; + LANG = if stdenv.isLinux then "C.UTF-8" else "C"; + LC_CTYPE = if stdenv.isLinux then "C.UTF-8" else "UTF-8"; # add to ERL_LIBS so other modules can find at runtime. # http://erlang.org/doc/man/code.html#code-path diff --git a/pkgs/development/beam-modules/mix-release.nix b/pkgs/development/beam-modules/mix-release.nix index 5c5f833119aa..986ff9843864 100644 --- a/pkgs/development/beam-modules/mix-release.nix +++ b/pkgs/development/beam-modules/mix-release.nix @@ -134,7 +134,8 @@ stdenv.mkDerivation ( in "[${lib.concatStringsSep "," options}]"; - LC_ALL = "C.UTF-8"; + LANG = if stdenv.isLinux then "C.UTF-8" else "C"; + LC_CTYPE = if stdenv.isLinux then "C.UTF-8" else "UTF-8"; postUnpack = '' diff --git a/pkgs/development/libraries/libphonenumber/default.nix b/pkgs/development/libraries/libphonenumber/default.nix index 662a53dd18cd..7082b99ce3fd 100644 --- a/pkgs/development/libraries/libphonenumber/default.nix +++ b/pkgs/development/libraries/libphonenumber/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libphonenumber"; - version = "8.13.53"; + version = "8.13.55"; src = fetchFromGitHub { owner = "google"; repo = "libphonenumber"; rev = "v${finalAttrs.version}"; - hash = "sha256-JYz/R8vS9sJ8cv/GRPwrA31Hb1ofZvW3OQBNp5lDlg8="; + hash = "sha256-tCompIUKBEHLVF+yBIhu2IFJJLSuMO+Awhp3uWHCvZM="; }; patches = [ diff --git a/pkgs/development/python-modules/craft-application/default.nix b/pkgs/development/python-modules/craft-application/default.nix index 6e1456aad508..6b2d0ea7e1e2 100644 --- a/pkgs/development/python-modules/craft-application/default.nix +++ b/pkgs/development/python-modules/craft-application/default.nix @@ -30,14 +30,14 @@ buildPythonPackage rec { pname = "craft-application"; - version = "4.9.1"; + version = "4.10.0"; pyproject = true; src = fetchFromGitHub { owner = "canonical"; repo = "craft-application"; tag = version; - hash = "sha256-Jg+8C16qCr8HGUGtTi3eDhEFhoiR+0EFjLaUtPvXCW8="; + hash = "sha256-9M49/XQuWwKuQqseleTeZYcrwd/S16lNCljvlVsoXbs="; }; postPatch = '' diff --git a/pkgs/development/python-modules/urlmatch/default.nix b/pkgs/development/python-modules/urlmatch/default.nix new file mode 100644 index 000000000000..f1c38bc6e4ef --- /dev/null +++ b/pkgs/development/python-modules/urlmatch/default.nix @@ -0,0 +1,37 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, +}: + +buildPythonPackage rec { + pname = "urlmatch"; + version = "1.0.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jessepollak"; + repo = "urlmatch"; + tag = "v${version}"; + hash = "sha256-vNt3SdIIno1XPO9zrTHXw6YSrE1oOWdkN3fszQnR8I0="; + }; + + build-system = [ + setuptools + ]; + + pythonImportsCheck = [ "urlmatch" ]; + + # The only test fails with: + # ImportError: cannot import name 'BadMatchPattern' from 'urlmatch' (/private/tmp/nix-build-python3.12-urlmatch-1.0.0.drv-0/source/urlmatch/__init__.py) + doCheck = false; + + meta = { + description = "Python library for easily pattern matching wildcard URLs"; + changelog = "https://github.com/jessepollak/urlmatch/releases/tag/v${version}/CHANGELOG.md"; + homepage = "https://github.com/jessepollak/urlmatch"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ ethancedwards8 ]; + }; +} diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index a9cd1a9bdfb9..2a4540681f6f 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -57,6 +57,7 @@ lib.makeExtensible (self: { }; alternatives = callPackage ./plugins/alternatives.nix { beets = self.beets-minimal; }; + audible = callPackage ./plugins/audible.nix { beets = self.beets-minimal; }; copyartifacts = callPackage ./plugins/copyartifacts.nix { beets = self.beets-minimal; }; extrafiles = throw "extrafiles is unmaintained since 2020 and broken since beets 2.0.0"; diff --git a/pkgs/tools/audio/beets/plugins/audible.nix b/pkgs/tools/audio/beets/plugins/audible.nix new file mode 100644 index 000000000000..8ff8d78e5d3d --- /dev/null +++ b/pkgs/tools/audio/beets/plugins/audible.nix @@ -0,0 +1,45 @@ +{ + beets, + fetchFromGitHub, + lib, + nix-update-script, + python3Packages, +}: +python3Packages.buildPythonApplication rec { + pname = "beets-audible"; + version = "1.0.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Neurrone"; + repo = "beets-audible"; + rev = "v${version}"; + hash = "sha256-m955KPtYfjmtm9kHhkZLWoMYzVq0THOwvKCJYiVna7k="; + }; + + pythonRelaxDeps = true; + + build-system = with python3Packages; [ + hatchling + ]; + + dependencies = + [ beets ] + ++ (with python3Packages; [ + markdownify + natsort + tldextract + ]); + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "Beets-audible: Organize Your Audiobook Collection With Beets"; + homepage = "https://github.com/Neurrone/beets-audible"; + platforms = with lib.platforms; linux ++ darwin ++ windows; + license = with lib.licenses; [ mit ]; + maintainers = with lib.maintainers; [ jwillikers ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a2cffdd5a17a..df4209c36cf9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -17976,6 +17976,8 @@ self: super: with self; { urlman = callPackage ../development/python-modules/urlman { }; + urlmatch = callPackage ../development/python-modules/urlmatch { }; + urlpy = callPackage ../development/python-modules/urlpy { }; urwid = callPackage ../development/python-modules/urwid { };