File vmware-host-modules.spec of Package vmware-host-modules

#
# spec file for package vmware-host-modules
#
# copyright (c) 2024 munix9@googlemail.com
#

# needssslcertforbuild

Name:           vmware-host-modules
Version:        17.5.1+git.20240112.2c6d66f
Release:        0
Summary:        Host kernel module for VMware Player/Workstation
License:        GPL-2.0-only
URL:            https://github.com/mkubecek/vmware-host-modules
#Source0:        https://github.com/mkubecek/vmware-host-modules/archive/refs/heads/workstation-%%{version}.tar.gz
Source0:        %{name}-%{version}.tar.gz
Source1:        %{name}-preamble
Source2:        %{name}.rpmlintrc
Source3:        vmwareconfig.sh
Patch0:         fix-dont-strip-on-package-build.patch
# https://github.com/mkubecek/vmware-host-modules/issues/129
Patch1:         fix-send-link-down-events.patch
Patch2:         fix-leap-15_6.patch
#Patch10:        fix-dev_base_lock.patch
BuildRequires:  %{kernel_module_package_buildreqs}
ExclusiveArch:  x86_64
%kernel_module_package -n vmware -p %{SOURCE1} -x kdump um xen pae xenpae pv

%description
This package contains patches needed to build VMware (Player and
Workstation) host modules against recent kernels. As it focuses on recent
kernels (older ones do not need patching), only vmmon and vmnet modules
are currently handled as the rest has been upstreamed for some time.

%package -n vmware-host-source
Summary:        Source files for VMware host kernel modules
Requires:       gcc
Requires:       kernel-devel
Requires:       libelf-devel
Requires:       make
BuildArch:      noarch

%description -n vmware-host-source
Source files for VMware host kernel modules.
These can be built for custom kernels using
sudo %{_sbindir}/vmwareconfig

%prep
%autosetup -p1

set -- *
mkdir source
mv "$@" source/
mkdir obj

%build
for flavor in %{flavors_to_build}
do
    krel=$(cat %{_usrsrc}/linux-obj/%{_target_cpu}/$flavor/include/config/kernel.release 2>/dev/null)
    test -n "$krel" || exit 1
    rm -rf obj/$flavor
    cp -r source obj/$flavor
    pushd obj/$flavor
    make VM_KBUILD=yes VM_UNAME="$krel" V=1
    popd
done

%install
export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=extra

for flavor in %{flavors_to_build}
do
    krel=$(cat %{_usrsrc}/linux-obj/%{_target_cpu}/$flavor/include/config/kernel.release 2>/dev/null)
    pushd obj/$flavor
    make install VM_KBUILD=yes VM_UNAME="$krel" V=1 \
	DESTDIR="$INSTALL_MOD_PATH" MODDIR="%{kernel_module_directory}/$krel/$INSTALL_MOD_DIR"
    popd
done

export BRP_PESIGN_FILES='*.ko'

find %{buildroot} -type f -name "*.ko" -exec chmod 0644 {} ';'

# install vmwareconfig and kmp src
install -D -m 0755 %{SOURCE3} %{buildroot}%{_sbindir}/vmwareconfig
install -d -m 0755 %{buildroot}%{_usrsrc}/kernel-modules/vmware/src
cp -a source/{INSTALL,Makefile,vmmon-only,vmnet-only} \
      %{buildroot}%{_usrsrc}/kernel-modules/vmware/src

%files -n vmware-host-source
%license source/LICENSE
%doc source/README
%dir %{_usrsrc}/kernel-modules
%{_usrsrc}/kernel-modules/vmware
%{_sbindir}/vmwareconfig

%changelog
openSUSE Build Service is sponsored by