1
0
mirror of https://github.com/krislamo/kernmod.git synced 2024-11-10 00:30:36 +00:00
This commit is contained in:
Kris Lamoureux 2022-04-21 01:23:57 -04:00
parent a92fd87ba2
commit 88e33a86bb
3 changed files with 55 additions and 6 deletions

View File

@ -17,7 +17,7 @@ BUILDDIR="$TEMPDIR/${PACKAGE}_$VERSION-$REVISION"
# 2 = rocky/centos/rhel
function check_distro {
if [ -f /etc/debian_version ]; then echo 1
elif [ -f /etc/rocky-release ] || [ -f /etc/centos-release ]; then echo 2
elif [ -f /etc/redhat-release ]; then echo 2
else echo 0
fi
}
@ -37,7 +37,18 @@ function build_deb {
# Build redhat package
function build_rpm {
EL_VER="$(uname -r | awk 'match($0,/el[0-9]/) {print substr($0, RSTART, RLENGTH)}')"
[ $INSTALL -eq 1 ] && rhel_headers
yum install -y rpm-build rpmdevtools rpmlint
rpmdev-setuptree
mkdir -p "$BUILDDIR/${PACKAGE}-${VERSION}"
cp -r $SRCDIR/* "$BUILDDIR/${PACKAGE}-${VERSION}"
rm -rf ~/rpmbuild/SOURCES/$PACKAGE-$VERSION.tar.gz
(cd $BUILDDIR &&
tar -czvf ~/rpmbuild/SOURCES/$PACKAGE-$VERSION.tar.gz $PACKAGE-$VERSION)
cp $SRCDIR/$PACKAGE.spec ~/rpmbuild/SPECS/
rpmlint ~/rpmbuild/SPECS/$PACKAGE.spec &&
rpmbuild -bb ~/rpmbuild/SPECS/$PACKAGE.spec
}
# Display details on module
@ -58,8 +69,8 @@ function debian_headers {
# Install Linux headers for current rhel kernel
function rhel_headers {
VERSION="$(uname -r | rev | cut -d '.' -f 2- | rev)"
yum install -y kernel-headers-"$VERSION"
KERNEL_VERSION="$(uname -r | rev | cut -d '.' -f 2- | rev)"
yum install -y kernel-headers-"$KERNEL_VERSION" kernel-devel
}
# Find GNU/Linux distribution
@ -94,8 +105,9 @@ else
apt-get install -y "./${PACKAGE}_$VERSION-$REVISION.deb"
elif [ $DISTRO -eq 2 ]; then
build_rpm
echo "end of debug: exiting..."
exit 0
yum install -y "./${PACKAGE}_$VERSION-$REVISION.rpm"
yum install -y epel-release
yum install -y dkms
rpm -i "~/rpmbuild/RPMS/noarch/$PACKAGE-$VERSION-$REVISION.$EL_VER.noarch.rpm"
fi
info_mod
fi

37
src/helloworld.spec Normal file
View File

@ -0,0 +1,37 @@
Name: helloworld
Version: 0.1
Release: 1%{?dist}
Summary: hello, world
BuildArch: noarch
License: 0BSD
Source0: %{name}-%{version}.tar.gz
Requires: dkms
%description
hello, world example
%prep
%setup -q
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/%{_usrsrc}/%{name}-%{version}
mkdir -p $RPM_BUILD_ROOT/etc
cp -r usr/src/* $RPM_BUILD_ROOT/%{_usrsrc}/%{name}-%{version}
cp -r etc/* $RPM_BUILD_ROOT/etc
%clean
rm -rf $RPM_BUILD_ROOT
%files
%{_usrsrc}/%{name}-%{version}/dkms.conf
%{_usrsrc}/%{name}-%{version}/helloworld.c
%{_usrsrc}/%{name}-%{version}/Makefile
/etc/modules-load.d/%{name}.conf
%post
dkms add -m %{name} -v %{version}
dkms build -m %{name} -v %{version}
dkms install -m %{name} -v %{version}
modprobe %{name}