diff options
author | Weijia Wang <9713184+wegank@users.noreply.github.com> | 2022-08-03 23:08:39 +0200 |
---|---|---|
committer | Weijia Wang <9713184+wegank@users.noreply.github.com> | 2022-08-03 23:08:39 +0200 |
commit | 9594f1736017355b98976aa93fdb4a5fa5303f94 (patch) | |
tree | 6910962749cd5549fc4025db6123fffdb52b6549 /pkgs/os-specific/linux/prl-tools | |
parent | d7007f3b80ddf624db0da015ec83d614825a34e4 (diff) | |
download | nixpkgs-9594f1736017355b98976aa93fdb4a5fa5303f94.tar nixpkgs-9594f1736017355b98976aa93fdb4a5fa5303f94.tar.gz nixpkgs-9594f1736017355b98976aa93fdb4a5fa5303f94.tar.bz2 nixpkgs-9594f1736017355b98976aa93fdb4a5fa5303f94.tar.lz nixpkgs-9594f1736017355b98976aa93fdb4a5fa5303f94.tar.xz nixpkgs-9594f1736017355b98976aa93fdb4a5fa5303f94.tar.zst nixpkgs-9594f1736017355b98976aa93fdb4a5fa5303f94.zip |
prl-tools: add patch against 5.19
Diffstat (limited to 'pkgs/os-specific/linux/prl-tools')
-rw-r--r-- | pkgs/os-specific/linux/prl-tools/default.nix | 30 | ||||
-rw-r--r-- | pkgs/os-specific/linux/prl-tools/prl-tools-5.18.patch (renamed from pkgs/os-specific/linux/prl-tools/prl-tools.patch) | 0 | ||||
-rw-r--r-- | pkgs/os-specific/linux/prl-tools/prl-tools-5.19.patch | 29 |
3 files changed, 53 insertions, 6 deletions
diff --git a/pkgs/os-specific/linux/prl-tools/default.nix b/pkgs/os-specific/linux/prl-tools/default.nix index ce0c05346ef..9a2c23d735a 100644 --- a/pkgs/os-specific/linux/prl-tools/default.nix +++ b/pkgs/os-specific/linux/prl-tools/default.nix @@ -1,7 +1,24 @@ -{ stdenv, lib, makeWrapper, p7zip -, gawk, util-linux, xorg, glib, dbus-glib, zlib, bbe, bash, timetrap, netcat, cups -, kernel ? null, libsOnly ? false -, fetchurl, undmg, perl, autoPatchelfHook +{ stdenv +, lib +, makeWrapper +, p7zip +, gawk +, util-linux +, xorg +, glib +, dbus-glib +, zlib +, bbe +, bash +, timetrap +, netcat +, cups +, kernel ? null +, libsOnly ? false +, fetchurl +, undmg +, perl +, autoPatchelfHook }: assert (!libsOnly) -> kernel != null; @@ -14,7 +31,7 @@ stdenv.mkDerivation rec { # 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${lib.versions.major version}/${version}/ParallelsDesktop-${version}.dmg"; + url = "https://download.parallels.com/desktop/v${lib.versions.major version}/${version}/ParallelsDesktop-${version}.dmg"; sha256 = "sha256-gjLxQOTFuVghv1Bj+zfbNW97q1IN2rurSnPQi13gzRA="; }; @@ -39,7 +56,8 @@ stdenv.mkDerivation rec { fi ''; - patches = lib.optionals (lib.versionAtLeast kernel.version "5.18") [ ./prl-tools.patch ]; + patches = lib.optional (lib.versionAtLeast kernel.version "5.18") ./prl-tools-5.18.patch + ++ lib.optional (lib.versionAtLeast kernel.version "5.19") ./prl-tools-5.19.patch; kernelVersion = lib.optionalString (!libsOnly) kernel.modDirVersion; kernelDir = lib.optionalString (!libsOnly) "${kernel.dev}/lib/modules/${kernelVersion}"; diff --git a/pkgs/os-specific/linux/prl-tools/prl-tools.patch b/pkgs/os-specific/linux/prl-tools/prl-tools-5.18.patch index 561371e1e84..561371e1e84 100644 --- a/pkgs/os-specific/linux/prl-tools/prl-tools.patch +++ b/pkgs/os-specific/linux/prl-tools/prl-tools-5.18.patch diff --git a/pkgs/os-specific/linux/prl-tools/prl-tools-5.19.patch b/pkgs/os-specific/linux/prl-tools/prl-tools-5.19.patch new file mode 100644 index 00000000000..5ec00e6dd02 --- /dev/null +++ b/pkgs/os-specific/linux/prl-tools/prl-tools-5.19.patch @@ -0,0 +1,29 @@ +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 +@@ -851,7 +851,7 @@ ssize_t prlfs_rw(struct inode *inode, char *buf, size_t size, + loff_t *off, unsigned int rw, int user, int flags); + + +-int prlfs_readpage(struct file *file, struct page *page) { ++int prlfs_read_folio(struct file *file, struct folio *folio) { + char *buf; + ssize_t ret; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0) +@@ -859,6 +859,7 @@ int prlfs_readpage(struct file *file, struct page *page) { + #else + struct inode *inode = file->f_dentry->d_inode; + #endif ++ struct page *page = &folio->page; + loff_t off = page->index << PAGE_SHIFT; + + if (!file) { +@@ -950,7 +951,7 @@ out: + } + + static const struct address_space_operations prlfs_aops = { +- .readpage = prlfs_readpage, ++ .read_folio = prlfs_read_folio, + .writepage = prlfs_writepage, + .write_begin = simple_write_begin, + .write_end = prlfs_write_end, |