Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions tools/pckgen.d/rpm/CAS_NAME.spec
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,14 @@ the kernels installed there, so no prebuilt kernel modules are shipped here.

%build
%if %{without dkms}
export KERNEL_DIR=/lib/modules/%{kver}/build/
if [ -e /lib/modules/%{kver}/build/Makefile ]; then
export KERNEL_DIR=/lib/modules/%{kver}/build/
elif [ -e /usr/src/kernels/%{kver}/Makefile ]; then
export KERNEL_DIR=/usr/src/kernels/%{kver}/
else
echo "Kernel build tree for %{kver} not found" >&2
exit 1
fi
./configure --kernel-dir $KERNEL_DIR
<MAKE_BUILD>
%else
Expand Down Expand Up @@ -214,7 +221,7 @@ fi

%if %{without dkms}
%post modules_%{kver_filename}
depmod
depmod -a %{kver}
. /etc/os-release
# Determine the exact location of installed modules to add them to weak-modules
for file in $(rpm -ql $(rpm -qa | grep <CAS_NAME>-modules)); do
Expand Down Expand Up @@ -251,7 +258,10 @@ if [ $1 -eq 0 ]; then
rm -f /var/run/rpm-<CAS_NAME>-modules
printf "%s\n" "${modules[@]}" | weak-modules --no-initramfs --remove-modules
fi
depmod
# The kernel package may have been uninstalled before Open CAS RPM
if [ -e /lib/modules/%{kver}/modules.dep ]; then
depmod -a %{kver}
fi
fi
%else
%posttrans dkms
Expand Down
15 changes: 7 additions & 8 deletions tools/pckgen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ DEB_CONTROL_FILES_DIR="$SCRIPT_BASE_DIR/${THIS%.*}.d/deb/debian"
PACKAGE_MAINTAINER="Robert Baldyga <robert.baldyga@open-cas.com>"
PACKAGE_DATE="$(date -R)"
TEMP_TEMPLATE="opencas-${THIS}"
RHEL_KERNEL_PKG_NAME="kernel"
RHEL_KERNEL_DEVEL_PKG_NAME="kernel-devel"
RHEL_LIBELF_PKG_NAME="elfutils-libelf-devel"
RHEL_UTIL_PKG_NAME="util-linux"
Expand Down Expand Up @@ -87,8 +86,8 @@ print_help() {
echo " if --kernel-version is provided, list only matching versions"
echo " -k, --kernel-version <KVER> build packages for specific kernel version"
echo " (RPM only; DEB uses DKMS to build modules during install);"
echo " sources with headers for this kernel must be"
echo " available in /lib/modules/, or if used with --mock"
echo " sources with headers for this kernel must be available"
echo " in /lib/modules/ or /usr/src/kernels/, or if used with --mock"
echo " specific kernel version will be installed automatically"
echo " if available in repo"
echo " (NOTE: if given version matches more than one available"
Expand Down Expand Up @@ -227,9 +226,9 @@ check_kernel_version() {
echo -e "--- Building in mock environment '$MOCK_CFG' for kernel version: \e[33m$KVER_FULL\e[0m"
else
if [ "$KVER" ]; then
KVER_FULL=$(find /lib/modules/* -maxdepth 0 -type d -name "$KVER*" -printf "%f\n" | sort -V | tail -n 1)
KVER_FULL=$(find /lib/modules/* /usr/src/kernels/* -maxdepth 0 -type d -name "$KVER*" -printf "%f\n" 2>/dev/null | sort -V | tail -n 1)
if [ ! "$KVER_FULL" ]; then
error "kernel version matching '$KVER' not found in /lib/modules/"
error "kernel version matching '$KVER' not found in /lib/modules/ nor /usr/src/kernels/"
fi
fi

Expand Down Expand Up @@ -308,7 +307,7 @@ list_kernels() {
else
echo "--- Listing available local kernel versions"

local KVER_LIST=$(find /lib/modules/* -maxdepth 0 -type d ${KVER:+-name "$KVER*"} -printf "%f\n" | sort -V)
local KVER_LIST=$(find /lib/modules/* /usr/src/kernels/* -maxdepth 0 -type d ${KVER:+-name "$KVER*"} -printf "%f\n" 2>/dev/null | sort -uV)
fi

echo -e "\nAvailable kernel versions${MOCK_CFG:+ in '$MOCK_CFG'}${KVER:+ matching '$KVER'}:\n${KVER_LIST[@]}"
Expand Down Expand Up @@ -431,15 +430,15 @@ rpm_spec_prepare() {
# counting on that there will be only one kernel sources installed.
# Odds are much more in favor of this scenario, than of the rare case of
# having a match between kernel package version and the actual kernel version.
sed -i "/export KERNEL_DIR/s/%{kver}/*/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
sed -i "/^%build/,/--kernel-dir/s/%{kver}/*/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
fi

sed -i "s/<KERNEL_PKG>/$SUSE_KERNEL_PKG_NAME/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
sed -i "s/<KERNEL_DEVEL_PKG>/$SUSE_KERNEL_DEVEL_PKG_NAME/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
sed -i "s/<LIBELF_PKG>/$SUSE_LIBELF_PKG_NAME/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
sed -i "s/<UTIL_PKG>/$SUSE_UTIL_PKG_NAME/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
else
sed -i "s/<KERNEL_PKG>/$RHEL_KERNEL_PKG_NAME/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
sed -i "/^BuildRequires: <KERNEL_PKG>/d" "$RPM_SPECS_DIR/$CAS_NAME.spec"
sed -i "s/<KERNEL_DEVEL_PKG>/$RHEL_KERNEL_DEVEL_PKG_NAME/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
sed -i "s/<LIBELF_PKG>/$RHEL_LIBELF_PKG_NAME/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
sed -i "s/<UTIL_PKG>/$RHEL_UTIL_PKG_NAME/g" "$RPM_SPECS_DIR/$CAS_NAME.spec"
Expand Down
Loading