diff options
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r-- | pkgs/os-specific/linux/hdparm/default.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/common-config.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-5.10.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-5.15.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-5.18.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-5.4.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-rt-5.10.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 11 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/zen-kernels.nix | 10 | ||||
-rw-r--r-- | pkgs/os-specific/linux/prl-tools/default.nix | 157 | ||||
-rw-r--r-- | pkgs/os-specific/linux/prl-tools/prl-tools.patch | 143 | ||||
-rw-r--r-- | pkgs/os-specific/linux/tiscamera/default.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/util-linux/default.nix | 11 |
13 files changed, 244 insertions, 122 deletions
diff --git a/pkgs/os-specific/linux/hdparm/default.nix b/pkgs/os-specific/linux/hdparm/default.nix index 2b112a9590b..1dd0fa6a208 100644 --- a/pkgs/os-specific/linux/hdparm/default.nix +++ b/pkgs/os-specific/linux/hdparm/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "hdparm"; - version = "9.63"; + version = "9.64"; src = fetchurl { url = "mirror://sourceforge/hdparm/hdparm-${version}.tar.gz"; - sha256 = "sha256-cHhd6uu6WHeonBI1aLQd7pkNpV/FFCDxP2CaEHKJlpE="; + sha256 = "sha256-MVuVaVHD/qAnKH3iBDgVNCF8C9Dze0k1h3/i2wyrhZo="; }; preBuild = '' diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 1962b5ba5aa..708d63ed4cb 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -45,6 +45,10 @@ let # aarch64 defconfig since 5.13 DEBUG_INFO_REDUCED = whenAtLeast "5.13" (option no); DEBUG_INFO_BTF = whenAtLeast "5.2" (option yes); + # Allow loading modules with mismatched BTFs + # FIXME: figure out how to actually make BTFs reproducible instead + # See https://github.com/NixOS/nixpkgs/pull/181456 for details. + MODULE_ALLOW_BTF_MISMATCH = whenAtLeast "5.18" (option yes); BPF_LSM = whenAtLeast "5.7" (option yes); DEBUG_KERNEL = yes; DEBUG_DEVRES = no; diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix index e775cbddee7..495a6ff8b52 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.10.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.10.nix @@ -3,7 +3,7 @@ with lib; buildLinux (args // rec { - version = "5.10.130"; + version = "5.10.131"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "0b4nm96yvkb9r5rkwlq9vsmllzqvvffdnpyl8dvrgqm8a7caci71"; + sha256 = "1ki11mvl3dky7iih90znr47vr66dxnlwrqwg2jkk1hqn5i243i4b"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.15.nix b/pkgs/os-specific/linux/kernel/linux-5.15.nix index 42cd68f2448..9735868b141 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.15.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.15.nix @@ -3,7 +3,7 @@ with lib; buildLinux (args // rec { - version = "5.15.54"; + version = "5.15.55"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "0kffavh9mbycqljacmvjd04nfrl4r4v8i0zgvq49qgm7n25m8ksr"; + sha256 = "1k7x7fp675wglfd357n7hjidnm3j8zj3gcymyazg6fkcid8bvxhy"; }; } // (args.argsOverride or { })) diff --git a/pkgs/os-specific/linux/kernel/linux-5.18.nix b/pkgs/os-specific/linux/kernel/linux-5.18.nix index 3d956c52490..2ad48c7afc1 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.18.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.18.nix @@ -3,7 +3,7 @@ with lib; buildLinux (args // rec { - version = "5.18.11"; + version = "5.18.12"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "1bqm32nqas1dvcx5b0qh3cshh3gcmpl8wbkn4adhgxw2lxa8w3g2"; + sha256 = "09wmgfrnv1df6jg9v3svwhvnxl0j6h4f240p903xlmgj884lvds0"; }; } // (args.argsOverride or { })) diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix index fe73d254454..5fd398d111b 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix @@ -3,7 +3,7 @@ with lib; buildLinux (args // rec { - version = "5.4.205"; + version = "5.4.206"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "1m8ms5nizw3iimhw61kr11a09b6h8cfi8az3wwg4mcpb0k58lqrp"; + sha256 = "1asvc7y1f938icspxx39n6y6r0w9mp0k9vik84rsx1hzzv0db41c"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix index cd182803ec0..58be2be6e9d 100644 --- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix +++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix @@ -6,7 +6,7 @@ , ... } @ args: let - version = "5.10.120-rt70"; # updated by ./update-rt.sh + version = "5.10.131-rt72"; # updated by ./update-rt.sh branch = lib.versions.majorMinor version; kversion = builtins.elemAt (lib.splitString "-" version) 0; in buildLinux (args // { @@ -18,14 +18,14 @@ in buildLinux (args // { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; - sha256 = "12qfgmzif2dy3kj4rqrnlx1if87c4fjmnya1bqpwx3hm0ih7ayjv"; + sha256 = "1ki11mvl3dky7iih90znr47vr66dxnlwrqwg2jkk1hqn5i243i4b"; }; kernelPatches = let rt-patch = { name = "rt"; patch = fetchurl { url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "0l0fp7bqfj11qcq3dqd5lv468z1hha0y774dfiliv97lx7gq34m9"; + sha256 = "0ag000h9m7phvgrqa4jcmd94x0rk8z8bh7qhqqlywbiz2b1b91qa"; }; }; in [ rt-patch ] ++ kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index 761426da865..33ddc3f6b6f 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -2,15 +2,15 @@ let stableVariant = { - version = "5.15.43"; + version = "5.15.53"; suffix = "xanmod1"; - hash = "sha256-MeH9RUPDiuN22eAZ18v+N3aIT18dQ3FnTkcQV0MjB4k="; + hash = "sha256-mLgzaXG6QaJ0hfzfNlLbAEldxHK6iHuMVUv6p8zqRBo="; }; edgeVariant = { - version = "5.18.1"; + version = "5.18.10"; suffix = "xanmod1"; - hash = "sha256-dqvB4F2S7cklSJ7XTUNvWVKTsZGLevOXME5lvhmfyis="; + hash = "sha256-RtvrJujd854bKf1YPiPavTh9oplpFN9ykr624K17vKE="; }; xanmodKernelFor = { version, suffix, hash }: buildLinux (args // rec { @@ -39,9 +39,6 @@ let # AMD P-state driver X86_AMD_PSTATE = yes; - # Linux RNG framework - LRNG = whenOlder "5.18" yes; - # Paragon's NTFS3 driver NTFS3_FS = module; NTFS3_LZX_XPRESS = yes; diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix index 1e9ca540ea9..aa9115d2b12 100644 --- a/pkgs/os-specific/linux/kernel/zen-kernels.nix +++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix @@ -4,16 +4,16 @@ let # comments with variant added for update script # ./update-zen.py zen zenVariant = { - version = "5.18.11"; #zen + version = "5.18.12"; #zen suffix = "zen1"; #zen - sha256 = "11dp4wxn4ilndzpp16aazf7569w3r46qh31f5lhbryqwfpa8vzb1"; #zen + sha256 = "1h0qnwq967ncqv40msa94jlwqf9rw2kgrr4gwx6n8i6wn0dmxpbq"; #zen isLqx = false; }; # ./update-zen.py lqx lqxVariant = { - version = "5.18.11"; #lqx + version = "5.18.12"; #lqx suffix = "lqx1"; #lqx - sha256 = "0q0n88sszq6kpy3s0n0a8nd0rxa7xh4hklkbvv8z2r43l8d4zazr"; #lqx + sha256 = "0bxmscx7m9fp73brj6x3d2vk5fnys7a502vllsf8dg74k0g83781"; #lqx isLqx = true; }; zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // { @@ -32,7 +32,7 @@ let extraMeta = { branch = lib.versions.majorMinor version + "/master"; - maintainers = with lib.maintainers; [ atemu andresilva pedrohlc psydvl ]; + maintainers = with lib.maintainers; [ andresilva pedrohlc psydvl ]; description = "Built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads." + lib.optionalString isLqx " (Same as linux_zen but less aggressive release schedule)"; }; diff --git a/pkgs/os-specific/linux/prl-tools/default.nix b/pkgs/os-specific/linux/prl-tools/default.nix index e6c246de0d2..ce0c05346ef 100644 --- a/pkgs/os-specific/linux/prl-tools/default.nix +++ b/pkgs/os-specific/linux/prl-tools/default.nix @@ -1,50 +1,59 @@ { stdenv, lib, makeWrapper, p7zip -, gawk, util-linux, xorg, glib, dbus-glib, zlib +, gawk, util-linux, xorg, glib, dbus-glib, zlib, bbe, bash, timetrap, netcat, cups , kernel ? null, libsOnly ? false -, undmg, fetchurl +, fetchurl, undmg, perl, autoPatchelfHook }: assert (!libsOnly) -> kernel != null; +assert lib.elem stdenv.hostPlatform.system [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; -let xorgFullVer = lib.getVersion xorg.xorgserver; - xorgVer = lib.versions.majorMinor xorgFullVer; - x64 = if stdenv.hostPlatform.system == "x86_64-linux" then true - else if stdenv.hostPlatform.system == "i686-linux" then false - else throw "Parallels Tools for Linux only support {x86-64,i686}-linux targets"; -in stdenv.mkDerivation rec { - version = "${prl_major}.2.1-41615"; - prl_major = "12"; + version = "17.1.4-51567"; pname = "prl-tools"; # We download the full distribution to extract prl-tools-lin.iso from # => ${dmg}/Parallels\ Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso src = fetchurl { - url = "https://download.parallels.com/desktop/v${prl_major}/${version}/ParallelsDesktop-${version}.dmg"; - sha256 = "1jwzwif69qlhmfky9kigjaxpxfj0lyrl1iyrpqy4iwqvajdgbbym"; + url = "https://download.parallels.com/desktop/v${lib.versions.major version}/${version}/ParallelsDesktop-${version}.dmg"; + sha256 = "sha256-gjLxQOTFuVghv1Bj+zfbNW97q1IN2rurSnPQi13gzRA="; }; hardeningDisable = [ "pic" "format" ]; - # also maybe python2 to generate xorg.conf - nativeBuildInputs = [ p7zip undmg ] ++ lib.optionals (!libsOnly) [ makeWrapper ] ++ kernel.moduleBuildDependencies; + nativeBuildInputs = [ p7zip undmg perl bbe autoPatchelfHook ] + ++ lib.optionals (!libsOnly) [ makeWrapper ] ++ kernel.moduleBuildDependencies; + + buildInputs = with xorg; [ libXrandr libXext libX11 libXcomposite libXinerama ] + ++ lib.optionals (!libsOnly) [ libXi glib dbus-glib zlib ]; + + runtimeDependencies = [ glib xorg.libXrandr ]; inherit libsOnly; unpackPhase = '' undmg "${src}" - export sourceRoot=prl-tools-build - 7z x "Parallels Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso" -o$sourceRoot + 7z x "Parallels Desktop.app/Contents/Resources/Tools/prl-tools-lin${lib.optionalString stdenv.isAarch64 "-arm"}.iso" -o$sourceRoot if test -z "$libsOnly"; then ( cd $sourceRoot/kmods; tar -xaf prl_mod.tar.gz ) fi - ( cd $sourceRoot/tools; tar -xaf prltools${if x64 then ".x64" else ""}.tar.gz ) ''; - kernelVersion = if libsOnly then "" else lib.getName kernel.name; - kernelDir = if libsOnly then "" else "${kernel.dev}/lib/modules/${kernelVersion}"; - scriptPath = lib.concatStringsSep ":" (lib.optionals (!libsOnly) [ "${util-linux}/bin" "${gawk}/bin" ]); + patches = lib.optionals (lib.versionAtLeast kernel.version "5.18") [ ./prl-tools.patch ]; + + kernelVersion = lib.optionalString (!libsOnly) kernel.modDirVersion; + kernelDir = lib.optionalString (!libsOnly) "${kernel.dev}/lib/modules/${kernelVersion}"; + + libPath = lib.concatStringsSep ":" [ "${glib.out}/lib" "${xorg.libXrandr}/lib" ]; + + scriptPath = lib.concatStringsSep ":" (lib.optionals (!libsOnly) [ + "${util-linux}/bin" + "${gawk}/bin" + "${bash}/bin" + "${timetrap}/bin" + "${netcat}/bin" + "${cups}/sbin" + ]); buildPhase = '' if test -z "$libsOnly"; then @@ -57,112 +66,80 @@ stdenv.mkDerivation rec { SRC=$kernelDir/build \ KVER=$kernelVersion ) - - # Xorg config (maybe would be useful for other versions) - #python2 installer/xserver-config.py xorg ${xorgVer} /dev/null parallels.conf fi ''; - libPath = with xorg; - lib.makeLibraryPath ([ stdenv.cc.cc libXrandr libXext libX11 libXcomposite libXinerama ] - ++ lib.optionals (!libsOnly) [ libXi glib dbus-glib zlib ]); - - installPhase = '' if test -z "$libsOnly"; then ( # kernel modules cd kmods mkdir -p $out/lib/modules/${kernelVersion}/extra - cp prl_eth/pvmnet/prl_eth.ko $out/lib/modules/${kernelVersion}/extra - cp prl_tg/Toolgate/Guest/Linux/prl_tg/prl_tg.ko $out/lib/modules/${kernelVersion}/extra cp prl_fs/SharedFolders/Guest/Linux/prl_fs/prl_fs.ko $out/lib/modules/${kernelVersion}/extra cp prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.ko $out/lib/modules/${kernelVersion}/extra + cp prl_tg/Toolgate/Guest/Linux/prl_tg/prl_tg.ko $out/lib/modules/${kernelVersion}/extra + ${lib.optionalString stdenv.isAarch64 + "cp prl_notifier/Installation/lnx/prl_notifier/prl_notifier.ko $out/lib/modules/${kernelVersion}/extra"} ) fi ( # tools - cd tools + cd tools/tools${if stdenv.isAarch64 then "-arm64" else if stdenv.isx86_64 then "64" else "32"} mkdir -p $out/lib if test -z "$libsOnly"; then + # prltoolsd contains hardcoded /bin/bash path + # we're lucky because it uses only -c command + # => replace to /bin/sh + bbe -e "s:/bin/bash:/bin/sh\x00\x00:" -o bin/prltoolsd.tmp bin/prltoolsd + rm -f bin/prltoolsd + mv bin/prltoolsd.tmp bin/prltoolsd + # install binaries for i in bin/* sbin/prl_nettool sbin/prl_snapshot; do + # also patch binaries to replace /usr/bin/XXX to XXX + # here a two possible cases: + # 1. it is uses as null terminated string and should be truncated by null; + # 2. it is uses inside shell script and should be truncated by space. + for p in bin/* sbin/prl_nettool sbin/prl_snapshot sbin/prlfsmountd; do + p=$(basename $p) + bbe -e "s:/usr/bin/$p\x00:./$p\x00\x00\x00\x00\x00\x00\x00\x00:" -o $i.tmp $i + bbe -e "s:/usr/sbin/$p\x00:./$p\x00\x00\x00\x00\x00\x00\x00\x00 :" -o $i $i.tmp + bbe -e "s:/usr/bin/$p:$p :" -o $i.tmp $i + bbe -e "s:/usr/sbin/$p:$p :" -o $i $i.tmp + done + install -Dm755 $i $out/$i done - # other binaries - for i in xorg.7.1/usr/bin/*; do - cp $i $out/bin - done - for i in $out/bin/* $out/sbin/*; do - patchelf \ - --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "$out/lib:$libPath" \ - $i || true + install -Dm755 ../../tools/prlfsmountd.sh $out/sbin/prlfsmountd + for f in $out/bin/* $out/sbin/*; do + wrapProgram $f \ + --prefix LD_LIBRARY_PATH ':' "$libPath" \ + --prefix PATH ':' "$scriptPath" done - mkdir -p $out/bin - install -Dm755 ../installer/prlfsmountd.sh $out/sbin/prlfsmountd - wrapProgram $out/sbin/prlfsmountd \ - --prefix PATH ':' "$scriptPath" - - for i in lib/*.a; do + for i in lib/libPrl*.0.0; do cp $i $out/lib + ln -s $out/$i $out/''${i%.0.0} done - for i in xorg.7.1/usr/lib/libprl_wmouse_watcher.*; do - cp $i $out/lib - done + mkdir -p $out/share/man/man8 + install -Dm644 ../mount.prl_fs.8 $out/share/man/man8 - mkdir -p $out/lib/udev/rules.d - for i in *.rules; do - sed 's,/bin/bash,${stdenv.shell},g' $i > $out/lib/udev/rules.d/$i - done + substituteInPlace ../99prltoolsd-hibernate \ + --replace "/bin/bash" "${bash}/bin/bash" - ( - cd xorg.${xorgVer} - # Install the X modules. - ( - cd x-server/modules - for i in */*; do - install -Dm755 $i $out/lib/xorg/modules/$i - done - ) - ( - cd usr/lib - libGLXname=$(echo libglx.so*) - install -Dm755 $libGLXname $out/lib/xorg/modules/extensions/$libGLXname - ln -s $libGLXname $out/lib/xorg/modules/extensions/libglx.so - ln -s $libGLXname $out/lib/xorg/modules/extensions/libglx.so.1 - ) - ) + mkdir -p $out/etc/pm/sleep.d + install -Dm644 ../99prltoolsd-hibernate $out/etc/pm/sleep.d fi - - for i in xorg.7.1/usr/lib/libGL.*; do - cp $i $out/lib - done - - cd $out - find -name \*.so\* -type f -exec \ - patchelf --set-rpath "$out/lib:$libPath" {} \; - - cd lib - libGLname=$(echo libGL.so*) - ln -s $libGLname libGL.so - ln -s $libGLname libGL.so.1 ) ''; - dontStrip = true; - dontPatchELF = true; - meta = with lib; { description = "Parallels Tools for Linux guests"; homepage = "https://parallels.com"; - platforms = [ "i686-linux" "x86_64-linux" ]; + platforms = platforms.linux; license = licenses.unfree; - # I was making this package blindly and requesting testing from the real user, - # so I can't even test it by myself and won't provide future updates. - maintainers = with maintainers; [ abbradar ]; + maintainers = with maintainers; [ catap wegank ]; }; } diff --git a/pkgs/os-specific/linux/prl-tools/prl-tools.patch b/pkgs/os-specific/linux/prl-tools/prl-tools.patch new file mode 100644 index 00000000000..561371e1e84 --- /dev/null +++ b/pkgs/os-specific/linux/prl-tools/prl-tools.patch @@ -0,0 +1,143 @@ +diff -puNr prl-tools-build/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c prl-tools-build/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c +--- prl-tools-build/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c ++++ prl-tools-build/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c +@@ -382,7 +382,7 @@ static int prl_tg_initialize(struct tg_d + } + #endif + /* Set DMA ability. Only lower 4G is possible to address */ +- rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(64)); ++ rc = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)); + if (rc) { + printk(KERN_ERR "no usable DMA configuration\n"); + goto err_out; +diff -puNr prl-tools-build/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_call.c prl-tools-build/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_call.c +--- prl-tools-build/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_call.c ++++ prl-tools-build/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg_call.c +@@ -76,7 +76,7 @@ static int tg_req_map_internal(struct TG + uple->p[i] = vmalloc_to_page(mem); + page_cache_get(uple->p[i]); + +- dst->RequestPages[i] = pci_map_page(pdev, uple->p[i], 0, PAGE_SIZE, DMA_BIDIRECTIONAL) >> PAGE_SHIFT; ++ dst->RequestPages[i] = dma_map_page(&pdev->dev, uple->p[i], 0, PAGE_SIZE, DMA_BIDIRECTIONAL) >> PAGE_SHIFT; + if (!dst->RequestPages[i]) { + page_cache_release(uple->p[i]); + goto err; +@@ -88,7 +88,7 @@ static int tg_req_map_internal(struct TG + + err: + for (i = 0; i < uple->count; i++) { +- pci_unmap_page(pdev, dst->RequestPages[i] << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ dma_unmap_page(&pdev->dev, dst->RequestPages[i] << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); + page_cache_release(uple->p[i]); + } + kfree(uple); +@@ -129,7 +129,7 @@ static TG_PAGED_BUFFER *tg_req_map_user_ + pfn = (u64 *)dbuf - 1; + + for (; npages > 0; npages--, mapped++) { +- dma_addr_t addr = pci_map_page(pdev, uple->p[npages-1], 0, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ dma_addr_t addr = dma_map_page(&pdev->dev, uple->p[npages-1], 0, PAGE_SIZE, DMA_BIDIRECTIONAL); + + if (!addr) { + DPRINTK("[3] %d < %d \n", got, npages); +@@ -144,7 +144,7 @@ static TG_PAGED_BUFFER *tg_req_map_user_ + + err_unmap: + for (i = 0; i < mapped; i++, pfn++) +- pci_unmap_page(pdev, *pfn << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ dma_unmap_page(&pdev->dev, *pfn << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); + + err_put: + for(i = 0; i < got; i++) +@@ -176,7 +176,7 @@ static TG_PAGED_BUFFER *tg_req_map_kerne + goto err; + } + +- addr = pci_map_page(pdev, page, 0, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ addr = dma_map_page(&pdev->dev, page, 0, PAGE_SIZE, DMA_BIDIRECTIONAL); + if (!addr) { + DPRINTK("[2] va:%p can't map\n", buffer); + goto err; +@@ -189,7 +189,7 @@ static TG_PAGED_BUFFER *tg_req_map_kerne + + err: + for (; i > 0; i--, pfn--) +- pci_unmap_page(pdev, *pfn << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ dma_unmap_page(&pdev->dev, *pfn << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); + + return ERR_PTR(-ENOMEM); + } +@@ -203,7 +203,7 @@ static inline int tg_req_unmap_internal( + dst->RequestSize + ~PAGE_MASK) >> PAGE_SHIFT; + + for (i = 0; i < count; i++) +- pci_unmap_page(req->dev->pci_dev, dst->RequestPages[i] << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ dma_unmap_page(&req->dev->pci_dev->dev, dst->RequestPages[i] << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); + + return count; + } +@@ -264,7 +264,7 @@ static void tg_req_unmap_pages(struct TG + + pfn = (u64 *)(dbuf + 1); + for (; npages > 0; npages--, pfn++) +- pci_unmap_page(pdev, (*pfn) << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ dma_unmap_page(&pdev->dev, (*pfn) << PAGE_SHIFT, PAGE_SIZE, DMA_BIDIRECTIONAL); + + dbuf = (TG_PAGED_BUFFER *)pfn; + } +@@ -374,7 +374,7 @@ static int tg_req_submit(struct TG_PENDI + * also no any offset inside page needed. + */ + req->pg = vmalloc_to_page(dst); +- req->phys = pci_map_page(dev->pci_dev, vmalloc_to_page(dst), 0, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ req->phys = dma_map_page(&dev->pci_dev->dev, vmalloc_to_page(dst), 0, PAGE_SIZE, DMA_BIDIRECTIONAL); + if (!req->phys) { + DPRINTK("Can not allocate memory for DMA mapping\n"); + goto out; +@@ -405,7 +405,7 @@ static int tg_req_submit(struct TG_PENDI + out: + if (ret != TG_STATUS_PENDING) { + page_cache_release(req->pg); +- pci_unmap_page(dev->pci_dev, req->phys, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ dma_unmap_page(&dev->pci_dev->dev, req->phys, PAGE_SIZE, DMA_BIDIRECTIONAL); + } + + DPRINTK("EXIT\n"); +@@ -460,7 +460,7 @@ out_wait: + wait_for_completion(&req->waiting); + out: + page_cache_release(req->pg); +- pci_unmap_page(dev->pci_dev, req->phys, PAGE_SIZE, DMA_BIDIRECTIONAL); ++ dma_unmap_page(&dev->pci_dev->dev, req->phys, PAGE_SIZE, DMA_BIDIRECTIONAL); + DPRINTK("EXIT\n"); + return ret; + } +diff -puNr prl-tools-build/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c prl-tools-build/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c +--- prl-tools-build/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c ++++ prl-tools-build/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c +@@ -16,6 +16,7 @@ + #include <linux/pagemap.h> + #include <linux/namei.h> + #include <linux/cred.h> ++#include <linux/writeback.h> + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 40)) && \ + (LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)) +@@ -57,7 +58,7 @@ unsigned long *prlfs_dfl( struct dentry + } + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0) +-#define prl_uaccess_kernel() uaccess_kernel() ++#define prl_uaccess_kernel() (false) + #else + #define prl_uaccess_kernel() segment_eq(get_fs(), KERNEL_DS) + #endif +@@ -954,7 +955,7 @@ static const struct address_space_operat + .writepage = prlfs_writepage, + .write_begin = simple_write_begin, + .write_end = prlfs_write_end, +- .set_page_dirty = __set_page_dirty_nobuffers, ++ .dirty_folio = filemap_dirty_folio, + }; + + diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix index e16c2dffe50..5ef0b0b0ea7 100644 --- a/pkgs/os-specific/linux/tiscamera/default.nix +++ b/pkgs/os-specific/linux/tiscamera/default.nix @@ -108,10 +108,6 @@ stdenv.mkDerivation rec { "-DTCAM_INTERNAL_ARAVIS=OFF" "-DTCAM_ARAVIS_USB_VISION=${if withAravis && withAravisUsbVision then "ON" else "OFF"}" "-DTCAM_INSTALL_FORCE_PREFIX=ON" - # There are gobject introspection commands launched as part of the build. Those have a runtime - # dependency on `libtcam` (which itself is built as part of this build). In order to allow - # that, we set the dynamic linker's path to point on the build time location of the library. - "-DCMAKE_SKIP_BUILD_RPATH=OFF" ]; doCheck = true; diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index 51eb20ecacd..cb323e623be 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -8,15 +8,17 @@ , systemdSupport ? stdenv.isLinux && !stdenv.hostPlatform.isStatic , systemd , nlsSupport ? true +, translateManpages ? true +, po4a }: stdenv.mkDerivation rec { pname = "util-linux" + lib.optionalString (!nlsSupport && !ncursesSupport && !systemdSupport) "-minimal"; - version = "2.37.4"; + version = "2.38"; src = fetchurl { url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/util-linux-${version}.tar.xz"; - sha256 = "sha256-Y05pFq2RM2bDU2tkaOeER2lUm5mnsr+AMU3nirVlW4M="; + hash = "sha256-bREcvk1VszbbLx++/7xluJkIcEwBE2Nx0yqpvsNz62Q="; }; patches = [ @@ -51,6 +53,7 @@ stdenv.mkDerivation rec { (lib.withFeature systemdSupport "systemd") (lib.withFeatureAs systemdSupport "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/") + (lib.enableFeature translateManpages "poman") "SYSCONFSTATICDIR=${placeholder "lib"}/lib" ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "scanf_cv_type_modifier=ms" @@ -62,7 +65,9 @@ stdenv.mkDerivation rec { "usrsbin_execdir=${placeholder "bin"}/sbin" ]; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ pkg-config ] + ++ lib.optionals translateManpages [ po4a ]; + buildInputs = [ zlib ] ++ lib.optionals pamSupport [ pam ] ++ lib.optionals capabilitiesSupport [ libcap_ng ] |