push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
{ lib, victoriametrics }:
# This package is build out of the victoriametrics package.
# so no separate update prs are needed for vmagent
# nixpkgs-update: no auto update
lib.addMetaAttrs { mainProgram = "vmagent"; } (
victoriametrics.override {
withServer = false;
withVmAlert = false;
withVmAuth = false;
withBackupTools = false;
withVmctl = false;
withVmAgent = true;
}
)

View File

@@ -0,0 +1,70 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
openssh,
socat,
gawk,
cloud-utils,
cdrtools,
qemu,
qemu-utils,
coreutils,
getopt,
makeWrapper,
}:
stdenvNoCC.mkDerivation {
pname = "vmctl";
version = "1.00";
src = fetchFromGitHub {
owner = "SamsungDS";
repo = "vmctl";
rev = "8cc71d4350f4f5814ffd7a3091a5c1a9d2e25158";
hash = "sha256-nIJEgd62yq3DKhaMnB2OEaGN/zC5/Z5cTtO3iQEVF44=";
};
dontBuild = true;
postPatch = ''
substituteInPlace vmctl \
--replace 'BASEDIR="$(dirname "$(readlink -f "''${BASH_SOURCE[0]}")")"' 'BASEDIR="${placeholder "out"}"'
'';
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
install -Dm555 vmctl -t "$out/bin"
wrapProgram "$out/bin/vmctl" \
--set PATH "${
lib.makeBinPath [
openssh
socat
gawk
cloud-utils
cdrtools
qemu
qemu-utils
coreutils
getopt
]
}"
cp -r {cmd,common,contrib,lib} $out
runHook postInstall
'';
meta = {
description = "Command line tool focused on NVMe testing in QEMU";
homepage = "https://github.com/SamsungDS/vmctl";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ panky ];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
asciidoc,
docbook_xsl,
fuse,
libuuid,
libxslt,
}:
stdenv.mkDerivation rec {
pname = "vmfs-tools";
version = "0.2.5.20160116";
src = fetchFromGitHub {
owner = "glandium";
repo = "vmfs-tools";
rev = "4ab76ef5b074bdf06e4b518ff6d50439de05ae7f";
sha256 = "14y412ww5hxk336ils62s3fwykfh6mx1j0iiaa5cwc615pi6qvi4";
};
nativeBuildInputs = [
asciidoc
docbook_xsl
libxslt
pkg-config
];
buildInputs = [
fuse
libuuid
];
enableParallelBuilding = true;
postInstall = ''
install -Dm444 -t $out/share/doc/vmfs-tools AUTHORS LICENSE README TODO
'';
meta = with lib; {
description = "FUSE-based VMFS (vmware) file system tools";
maintainers = with maintainers; [ peterhoeg ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
inherit (src.meta) homepage;
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchFromGitHub,
gsasl,
gnutls,
pkg-config,
cmake,
zlib,
libtasn1,
libgcrypt,
gtk3,
# this will not work on non-nixos systems
sendmailPath ? "/run/wrappers/bin/sendmail",
}:
stdenv.mkDerivation {
pname = "vmime";
# XXX: using unstable rev for now to comply with the removal of
# deprecated symbols in the latest release of gsasl
version = "unstable-2022-03-26";
src = fetchFromGitHub {
owner = "kisli";
repo = "vmime";
rev = "fc69321d5304c73be685c890f3b30528aadcfeaf";
sha256 = "sha256-DUcGQcT7hp5Rs2Z5C8wo+3BYwWqED0KrF3h3vgLiiow=";
};
buildInputs = [
gsasl
gnutls
zlib
libtasn1
libgcrypt
gtk3
];
nativeBuildInputs = [
pkg-config
cmake
];
cmakeFlags = [
"-DVMIME_SENDMAIL_PATH=${sendmailPath}"
];
meta = {
homepage = "https://www.vmime.org/";
description = "Free mail library for C++";
license = lib.licenses.gpl3;
maintainers = [ ];
platforms = with lib.platforms; linux;
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication {
pname = "vmlinux-to-elf";
version = "0-unstable-2024-07-20";
pyproject = true;
src = fetchFromGitHub {
owner = "marin-m";
repo = "vmlinux-to-elf";
rev = "da14e789596d493f305688e221e9e34ebf63cbb8";
hash = "sha256-GVoUIeJeLWCEFzrwiLX2h627ygQ7lX1qMp3hHT5O8O0=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
setuptools
python-lzo
zstandard
lz4
];
meta = {
homepage = "https://github.com/marin-m/vmlinux-to-elf";
description = "Converts a vmlinux/vmlinuz/bzImage/zImage kernel image to an ELF file";
mainProgram = "vmlinux-to-elf";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.fidgetingbits ];
};
}

View File

@@ -0,0 +1,11 @@
diff -ur a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 1970-01-01 00:00:01.000000000 +0000
+++ b/CMakeLists.txt 2016-02-19 08:49:30.053759000 +0000
@@ -178,6 +178,5 @@
install(FILES ${DOCS} DESTINATION share/vmmlib COMPONENT dev)
include(DoxygenRule) # must be after all targets
-include(CPackConfig)
include(CTest)
-include(PackageConfig)
+

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
boost,
lapack,
}:
stdenv.mkDerivation rec {
version = "1.6.2";
pname = "vmmlib";
src = fetchFromGitHub {
owner = "VMML";
repo = "vmmlib";
rev = "release-${version}";
sha256 = "0sn6jl1r5k6ka0vkjsdnn14hb95dqq8158dapby6jk72wqj9kdml";
};
patches = [
./disable-cpack.patch # disable the need of cpack/rpm
];
nativeBuildInputs = [
pkg-config
cmake
];
buildInputs = [
boost
lapack
];
doCheck = !stdenv.hostPlatform.isDarwin;
checkTarget = "test";
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin;
description = "Vector and matrix math library implemented using C++ templates";
longDescription = ''
vmmlib is a vector and matrix math library implemented
using C++ templates. Its basic functionality includes a vector
and a matrix class, with additional functionality for the
often-used 3d and 4d vectors and 3x3 and 4x4 matrices.
More advanced functionality include solvers, frustum
computations and frustum culling classes, and spatial data structures
'';
license = licenses.bsd2;
homepage = "https://github.com/VMML/vmmlib/";
maintainers = [ maintainers.adev ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,46 @@
{
stdenv,
lib,
fetchurl,
cmake,
pkg-config,
qt6,
qt6Packages,
docbook-xsl-nons,
}:
stdenv.mkDerivation rec {
pname = "vmpk";
version = "0.9.1";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
hash = "sha256-O/uIg1Wq6Hwt7J5AkoXQshBhrKrQdfVTbb8qr7ttSNw=";
};
nativeBuildInputs = [
cmake
pkg-config
qt6.qttools
docbook-xsl-nons
qt6.wrapQtAppsHook
];
buildInputs = [
qt6Packages.drumstick
];
postInstall = ''
# vmpk drumstickLocales looks here:
ln -s ${qt6Packages.drumstick}/share/drumstick $out/share/
'';
meta = with lib; {
description = "Virtual MIDI Piano Keyboard";
mainProgram = "vmpk";
homepage = "http://vmpk.sourceforge.net/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchurl,
ncurses,
xmlto,
docbook_xml_dtd_44,
docbook_xsl,
installShellFiles,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vms-empire";
version = "1.18";
src = fetchurl {
url = "http://www.catb.org/~esr/vms-empire/vms-empire-${finalAttrs.version}.tar.gz";
hash = "sha256-JWCmrGS4jClSi6MCcGNiq8zUH+92fiqMtk58B+wMKQk=";
};
nativeBuildInputs = [
installShellFiles
xmlto
docbook_xml_dtd_44
docbook_xsl
];
buildInputs = [
ncurses
];
outputs = [
"out"
"doc"
"man"
];
strictDeps = true;
postBuild = ''
xmlto man vms-empire.xml
xmlto html-nochunks vms-empire.xml
'';
installPhase = ''
runHook preInstall
install -D vms-empire -t ${placeholder "out"}/bin/
install -D vms-empire.html -t ${placeholder "doc"}/share/doc/vms-empire/
install -D vms-empire.desktop -t ${placeholder "out"}/share/applications/
install -D vms-empire.png -t ${placeholder "out"}/share/icons/hicolor/48x48/apps/
install -D vms-empire.xml -t ${placeholder "out"}/share/appdata/
installManPage empire.6
runHook postInstall
'';
meta = {
homepage = "http://catb.org/~esr/vms-empire/";
description = "Ancestor of all expand/explore/exploit/exterminate games";
longDescription = ''
Empire is a simulation of a full-scale war between two emperors, the
computer and you. Naturally, there is only room for one, so the object of
the game is to destroy the other. The computer plays by the same rules
that you do. This game was ancestral to all later
expand/explore/exploit/exterminate games, including Civilization and
Master of Orion.
'';
license = lib.licenses.gpl2Only;
mainProgram = "vms-empire";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
perl,
}:
stdenv.mkDerivation rec {
pname = "vmtouch";
version = "1.3.1";
src = fetchFromGitHub {
owner = "hoytech";
repo = "vmtouch";
rev = "v${version}";
sha256 = "08da6apzfkfjwasn4dxrlfxqfx7arl28apdzac5nvm0fhvws0dxk";
};
buildInputs = [ perl ];
makeFlags = [ "PREFIX=$(out)" ];
meta = {
description = "Portable file system cache diagnostics and control";
longDescription = "vmtouch is a tool for learning about and controlling the file system cache of unix and unix-like systems.";
homepage = "https://hoytech.com/vmtouch/";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.garrison ];
platforms = lib.platforms.all;
mainProgram = "vmtouch";
};
}

View File

@@ -0,0 +1,384 @@
{
stdenv,
buildFHSEnv,
fetchurl,
lib,
zlib,
gdbm,
libxslt,
libxml2,
libuuid,
readline,
readline70,
xz,
cups,
libaio,
vulkan-loader,
alsa-lib,
libpulseaudio,
libxcrypt-legacy,
libGL,
numactl,
xorg,
kmod,
python3,
autoPatchelfHook,
makeWrapper,
symlinkJoin,
enableInstaller ? false,
bzip2,
sqlite,
enableMacOSGuests ? false,
fetchFromGitHub,
unzip,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vmware-workstation";
version = "17.6.4";
build = "24832109";
src = fetchurl {
url = "https://archive.org/download/vmware-workstation-full-${finalAttrs.version}-${finalAttrs.build}.x86_64/VMware-Workstation-Full-${finalAttrs.version}-${finalAttrs.build}.x86_64.bundle";
hash = "sha256-ZPv7rqzEiGVGgRQ2Kiu6rekRDMnoe8O9k4OWun8Zqb0=";
};
vmware-unpack-env = buildFHSEnv {
pname = "vmware-unpack-env";
inherit (finalAttrs) version;
targetPkgs = pkgs: [ zlib ];
};
unpackPhase = ''
${finalAttrs.vmware-unpack-env}/bin/vmware-unpack-env -c "sh ${finalAttrs.src} --extract unpacked"
'';
macOSUnlockerSrc = fetchFromGitHub {
owner = "paolo-projects";
repo = "unlocker";
tag = "3.0.5";
hash = "sha256-JSEW1gqQuLGRkathlwZU/TnG6dL/xWKW4//SfE+kO0A=";
};
postPatch = lib.optionalString enableMacOSGuests ''
cp -R "${finalAttrs.macOSUnlockerSrc}" unlocker/
substituteInPlace unlocker/unlocker.py --replace \
"/usr/lib/vmware/bin/" "$out/lib/vmware/bin"
substituteInPlace unlocker/unlocker.py --replace \
"/usr/lib/vmware/lib/libvmwarebase.so/libvmwarebase.so" "$out/lib/vmware/lib/libvmwarebase.so/libvmwarebase.so"
'';
readline70_compat63 = symlinkJoin {
name = "readline70_compat63";
paths = [ readline70 ];
postBuild = ''
ln -s $out/lib/libreadline.so $out/lib/libreadline.so.6
'';
};
nativeBuildInputs = [
python3
finalAttrs.vmware-unpack-env
autoPatchelfHook
makeWrapper
]
++ lib.optionals enableInstaller [
bzip2
sqlite
finalAttrs.readline70_compat63
]
++ lib.optionals enableMacOSGuests [ unzip ];
buildInputs = [
libxslt
libxml2
libuuid
gdbm
readline
xz
cups
libaio
vulkan-loader
alsa-lib
libpulseaudio
libxcrypt-legacy
libGL
numactl
xorg.libX11
xorg.libXau
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXdmcp
xorg.libXext
xorg.libXfixes
xorg.libXft
xorg.libXinerama
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXScrnSaver
xorg.libXtst
];
installPhase = ''
runHook preInstall
mkdir -p \
$out/bin \
$out/etc/vmware \
$out/etc/init.d \
$out/lib/vmware \
$out/share/doc
#### Replicate vmware-installer's order but VMX first because of appLoader
${lib.optionalString enableInstaller ''
## VMware installer
echo "Installing VMware Installer"
unpacked="unpacked/vmware-installer"
vmware_installer_version=$(cat "unpacked/vmware-installer/manifest.xml" | grep -oPm1 "(?<=<version>)[^<]+")
dest="$out/lib/vmware-installer/$vmware_installer_version"
mkdir -p $dest
cp -r $unpacked/vmis* $dest/
cp -r $unpacked/sopython $dest/
cp -r $unpacked/python $dest/
cp -r $unpacked/cdsHelper $dest/
cp -r $unpacked/vmware* $dest/
cp -r $unpacked/bin $dest/
cp -r $unpacked/lib $dest/
chmod +x $dest/vmis-launcher $dest/sopython/* $dest/python/init.sh $dest/vmware-*
ln -s $dest/vmware-installer $out/bin/vmware-installer
mkdir -p $out/etc/vmware-installer
cp ${./vmware-installer-bootstrap} $out/etc/vmware-installer/bootstrap
sed -i -e "s,@@INSTALLERDIR@@,$dest," $out/etc/vmware-installer/bootstrap
sed -i -e "s,@@IVERSION@@,$vmware_installer_version," $out/etc/vmware-installer/bootstrap
sed -i -e "s,@@BUILD@@,${finalAttrs.build}," $out/etc/vmware-installer/bootstrap
# create database of vmware guest tools (avoids vmware fetching them later)
mkdir -p $out/etc/vmware-installer/components
database_filename=$out/etc/vmware-installer/database
touch $database_filename
sqlite3 "$database_filename" "CREATE TABLE settings(key VARCHAR PRIMARY KEY, value VARCHAR NOT NULL, component_name VARCHAR NOT NULL);"
sqlite3 "$database_filename" "INSERT INTO settings(key,value,component_name) VALUES('db.schemaVersion','2','vmware-installer');"
sqlite3 "$database_filename" "CREATE TABLE components(id INTEGER PRIMARY KEY, name VARCHAR NOT NULL, version VARCHAR NOT NULL, buildNumber INTEGER NOT NULL, component_core_id INTEGER NOT NULL, longName VARCHAR NOT NULL, description VARCHAR, type INTEGER NOT NULL);"
for folder in unpacked/**/.installer ; do
component="$(basename $(dirname $folder))"
component_version=$(cat unpacked/$component/manifest.xml | grep -oPm1 "(?<=<version>)[^<]+")
component_core_id=$([ "$component" == "vmware-installer" ] && echo "-1" || echo "1")
type=$([ "$component" == "vmware-workstation" ] && echo "0" || echo "1")
sqlite3 "$database_filename" "INSERT INTO components(name,version,buildNumber,component_core_id,longName,description,type) VALUES('$component','$component_version',${finalAttrs.build},$component_core_id,'$component','$component',$type);"
mkdir -p $out/etc/vmware-installer/components/$component
cp -r $folder/* $out/etc/vmware-installer/components/$component
done
''}
## VMware Bootstrap
echo "Installing VMware Bootstrap"
cp ${./vmware-bootstrap} $out/etc/vmware/bootstrap
sed -i -e "s,@@PREFIXDIR@@,$out," $out/etc/vmware/bootstrap
## VMware Config
echo "Installing VMware Config"
cp ${./vmware-config} $out/etc/vmware/config
sed -i -e "s,@@VERSION@@,${finalAttrs.version}," $out/etc/vmware/config
sed -i -e "s,@@BUILD@@,${finalAttrs.build}," $out/etc/vmware/config
sed -i -e "s,@@PREFIXDIR@@,$out," $out/etc/vmware/config
## VMware VMX
echo "Installing VMware VMX"
unpacked="unpacked/vmware-vmx"
cp -r $unpacked/bin/* $out/bin/
cp -r $unpacked/etc/modprobe.d $out/etc/
cp -r $unpacked/etc/init.d/* $out/etc/init.d/
cp -r $unpacked/roms $out/lib/vmware/
cp -r $unpacked/sbin/* $out/bin/
cp -r $unpacked/lib/libconf $out/lib/vmware/
rm $out/lib/vmware/libconf/etc/fonts/fonts.conf
cp -r $unpacked/lib/bin $out/lib/vmware/
cp -r $unpacked/lib/lib $out/lib/vmware/
cp -r $unpacked/lib/scripts $out/lib/vmware/
cp -r $unpacked/lib/icu $out/lib/vmware/
cp -r $unpacked/lib/share $out/lib/vmware/
cp -r $unpacked/lib/modules $out/lib/vmware/
cp -r $unpacked/lib/include $out/lib/vmware/
cp -r $unpacked/extra/checkvm $out/bin/
cp -r $unpacked/extra/modules.xml $out/lib/vmware/modules/
ln -s $out/lib/vmware/bin/appLoader $out/lib/vmware/bin/vmware-vmblock-fuse
ln -s $out/lib/vmware/icu $out/etc/vmware/icu
# Replace vmware-modconfig with simple error dialog
cp ${./vmware-modconfig} $out/bin/vmware-modconfig
sed -i -e "s,ETCDIR=/etc/vmware,ETCDIR=$out/etc/vmware," $out/bin/vmware-modconfig
# Patch dynamic libs in
for binary in "mksSandbox" "mksSandbox-debug" "mksSandbox-stats" "vmware-vmx" "vmware-vmx-debug" "vmware-vmx-stats"
do
patchelf \
--add-needed ${libaio}/lib/libaio.so.1 \
--add-needed ${vulkan-loader}/lib/libvulkan.so.1 \
--add-needed ${alsa-lib}/lib/libasound.so \
--add-needed ${libpulseaudio}/lib/libpulse.so.0 \
--add-needed ${libGL}/lib/libEGL.so.1 \
--add-needed ${numactl}/lib/libnuma.so.1 \
--add-needed ${xorg.libX11}/lib/libX11.so.6 \
--add-needed ${xorg.libXi}/lib/libXi.so.6 \
--add-needed ${libGL}/lib/libGL.so.1 \
$out/lib/vmware/bin/$binary
done
## VMware USB Arbitrator
echo "Installing VMware USB Arbitrator"
unpacked="unpacked/vmware-usbarbitrator"
cp -r $unpacked/etc/init.d/* $out/etc/init.d/
cp -r $unpacked/bin/* $out/bin/
ln -s $out/lib/vmware/bin/appLoader $out/lib/vmware/bin/vmware-usbarbitrator
## VMware Player Setup
echo "Installing VMware Player Setup"
unpacked="unpacked/vmware-player-setup"
mkdir -p $out/lib/vmware/setup
cp $unpacked/vmware-config $out/lib/vmware/setup/
## VMware Network Editor
echo "Installing VMware Network Editor"
unpacked="unpacked/vmware-network-editor"
cp -r $unpacked/lib $out/lib/vmware/
## VMware Player Application
echo "Installing VMware Player Application"
unpacked="unpacked/vmware-player-app"
cp -r $unpacked/lib/* $out/lib/vmware/
cp -r $unpacked/share/* $out/share/
cp -r $unpacked/bin/* $out/bin/
cp -r $unpacked/doc/* $out/share/doc/ # Licences
for target in "vmplayer" "vmware-enter-serial" "vmware-setup-helper" "licenseTool" "vmware-mount" "vmware-fuseUI" "vmware-app-control" "vmware-zenity"
do
ln -s $out/lib/vmware/bin/appLoader $out/lib/vmware/bin/$target
done
ln -s $out/lib/vmware/bin/vmware-mount $out/bin/vmware-mount
ln -s $out/lib/vmware/bin/vmware-fuseUI $out/bin/vmware-fuseUI
ln -s $out/lib/vmware/bin/vmrest $out/bin/vmrest
# Patch vmplayer
sed -i -e "s,ETCDIR=/etc/vmware,ETCDIR=$out/etc/vmware," $out/bin/vmplayer
sed -i -e "s,/sbin/modprobe,${kmod}/bin/modprobe," $out/bin/vmplayer
sed -i -e "s,@@BINARY@@,$out/bin/vmplayer," $out/share/applications/vmware-player.desktop
## VMware OVF Tool component
echo "Installing VMware OVF Tool for Linux"
unpacked="unpacked/vmware-ovftool"
mkdir -p $out/lib/vmware-ovftool/
cp -r $unpacked/* $out/lib/vmware-ovftool/
chmod 755 $out/lib/vmware-ovftool/ovftool*
makeWrapper "$out/lib/vmware-ovftool/ovftool.bin" "$out/bin/ovftool"
## VMware Network Editor User Interface
echo "Installing VMware Network Editor User Interface"
unpacked="unpacked/vmware-network-editor-ui"
cp -r $unpacked/share/* $out/share/
ln -s $out/lib/vmware/bin/appLoader $out/lib/vmware/bin/vmware-netcfg
ln -s $out/lib/vmware/bin/vmware-netcfg $out/bin/vmware-netcfg
# Patch network editor ui
sed -i -e "s,@@BINARY@@,$out/bin/vmware-netcfg," $out/share/applications/vmware-netcfg.desktop
## VMware VIX Core Library
echo "Installing VMware VIX Core Library"
unpacked="unpacked/vmware-vix-core"
mkdir -p $out/lib/vmware-vix
cp -r $unpacked/lib/* $out/lib/vmware-vix/
cp -r $unpacked/bin/* $out/bin/
cp $unpacked/*.txt $out/lib/vmware-vix/
mkdir -p $out/share/doc/vmware-vix/
cp -r $unpacked/doc/* $out/share/doc/vmware-vix/
mkdir -p $out/include/
cp -r $unpacked/include/* $out/include/
## VMware VIX Workstation-17.0.0 Library
echo "Installing VMware VIX Workstation-17.0.0 Library"
unpacked="unpacked/vmware-vix-lib-Workstation1700"
cp -r $unpacked/lib/* $out/lib/vmware-vix/
## VMware VProbes component for Linux
echo "Installing VMware VProbes component for Linux"
unpacked="unpacked/vmware-vprobe"
cp -r $unpacked/bin/* $out/bin/
cp -r $unpacked/lib/* $out/lib/vmware/
## VMware Workstation
echo "Installing VMware Workstation"
unpacked="unpacked/vmware-workstation"
cp -r $unpacked/bin/* $out/bin/
cp -r $unpacked/lib/* $out/lib/vmware/
cp -r $unpacked/share/* $out/share/
cp -r $unpacked/man $out/share/
cp -r $unpacked/doc $out/share/
ln -s $out/lib/vmware/bin/appLoader $out/lib/vmware/bin/vmware
ln -s $out/lib/vmware/bin/appLoader $out/lib/vmware/bin/vmware-tray
ln -s $out/lib/vmware/bin/appLoader $out/lib/vmware/bin/vmware-vprobe
# Patch vmware
sed -i -e "s,ETCDIR=/etc/vmware,ETCDIR=$out/etc/vmware,g" $out/bin/vmware
sed -i -e "s,/sbin/modprobe,${kmod}/bin/modprobe,g" $out/bin/vmware
sed -i -e "s,@@BINARY@@,$out/bin/vmware," $out/share/applications/vmware-workstation.desktop
chmod +x $out/bin/* $out/lib/vmware/bin/* $out/lib/vmware/setup/*
# Hardcoded pkexec hack
for lib in "lib/vmware/lib/libvmware-mount.so/libvmware-mount.so" "lib/vmware/lib/libvmwareui.so/libvmwareui.so" "lib/vmware/lib/libvmware-fuseUI.so/libvmware-fuseUI.so"
do
sed -i -e "s,/usr/local/sbin,/run/vmware/bin," "$out/$lib"
done
${lib.optionalString enableMacOSGuests ''
echo "Running VMWare Unlocker to enable macOS Guests"
python3 unlocker/unlocker.py
''}
# SUID hack
wrapProgram $out/lib/vmware/bin/vmware-vmx
rm $out/lib/vmware/bin/vmware-vmx
ln -s /run/wrappers/bin/vmware-vmx $out/lib/vmware/bin/vmware-vmx
# Remove shipped X11 libraries
for lib in $out/lib/vmware/lib/* $out/lib/vmware-ovftool/lib*.so*; do
lib_name="$(basename "$lib")"
if [[ "$lib_name" == libX* || "$lib_name" == libxcb* ]]; then
rm -rf "$lib"
fi
done
runHook postInstall
'';
meta = {
description = "Industry standard desktop hypervisor for x86-64 architecture";
homepage = "https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
mainProgram = "vmware";
maintainers = with lib.maintainers; [
cawilliamson
deinferno
vifino
];
};
})

View File

@@ -0,0 +1,11 @@
PREFIX="@@PREFIXDIR@@"
BINDIR="@@PREFIXDIR@@/bin"
SBINDIR="@@PREFIXDIR@@/sbin"
LIBDIR="@@PREFIXDIR@@/lib"
DATADIR="@@PREFIXDIR@@/share"
SYSCONFDIR="@@PREFIXDIR@@/etc"
DOCDIR="@@PREFIXDIR@@/share/doc"
MANDIR="@@PREFIXDIR@@/share/man"
INCLUDEDIR="@@PREFIXDIR@@/include"
INITDIR="@@PREFIXDIR@@/etc"
INITSCRIPTDIR="@@PREFIXDIR@@/etc/init.d"

View File

@@ -0,0 +1,21 @@
.encoding = "UTF-8"
product.name = "VMware Workstation"
product.version = "@@VERSION@@"
product.buildNumber = "@@BUILD@@"
workstation.product.version = "@@VERSION@@"
player.product.version = "@@VERSION@@"
vix.config.version = "1"
bindir = "@@PREFIXDIR@@/bin"
libdir = "@@PREFIXDIR@@/lib/vmware"
vix.libdir = "@@PREFIXDIR@@/lib/vmware-vix"
initscriptdir = "@@PREFIXDIR@@/lib/systemd/scripts"
vmware.fullpath = "@@PREFIXDIR@@/bin/vmware"
authd.fullpath = "@@PREFIXDIR@@/bin/vmware-authd"
gksu.rootMethod = "su"
NETWORKING = "yes"
installerDefaults.autoSoftwareUpdateEnabled = "no"
installerDefaults.dataCollectionEnabled = "no"
installerDefaults.componentDownloadEnabled = "no"
installerDefaults.transferVersion = "1"
acceptOVFEULA = "yes"
acceptEULA = "yes"

View File

@@ -0,0 +1,5 @@
VMWARE_INSTALLER="@@INSTALLERDIR@@"
VERSION="@@IVERSION@@" # For backwards compability
VMISVERSION="@@IVERSION@@"
VMISBUILDNUM="@@BUILD@@"
VMISPYVERSION="39"

View File

@@ -0,0 +1,8 @@
#!/bin/bash
set -e
ETCDIR=/etc/vmware
. $ETCDIR/bootstrap
exec "$LIBDIR"/vmware/bin/vmware-zenity --error --text "Reboot is required to load VMware kernel modules (make sure that 'virtualisation.vmware.host.enable' is enabled)"