Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ipmitool bookworm: Fix and patch enterprise-numbers URL #17878

Merged
merged 11 commits into from
Feb 27, 2024
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
1 change: 0 additions & 1 deletion build_debian.sh
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,6 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
mtr-tiny \
locales \
cgroup-tools \
ipmitool \
ndisc6 \
makedumpfile \
conntrack \
Expand Down
4 changes: 4 additions & 0 deletions files/build_templates/sonic_debian_extension.j2
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ sudo mkdir -p $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/ifupdown2_*.deb || \
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f

# Install a patched version of ipmitool (and its dependencies via 'apt-get -y install -f')
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/ipmitool_*.deb || \
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In build_debian.sh, can you remove the ipmitool package installation from there, to make sure this version is the only version that gets installed?

Copy link
Contributor Author

@rajib-dutta1 rajib-dutta1 Feb 13, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I pushed the changed asked above.

root@sonic:/home/admin# show ver

SONiC Software Version: SONiC.master.0-dirty-20240209.233855
SONiC OS Version: 12
Distribution: Debian 12.4
Kernel: 6.1.0-11-2-amd64
Build commit: bd47fd1
Build date: Sat Feb 10 01:35:50 UTC 2024
Built by: commbuild@rajvm

Platform: x86_64-dellemc_s5212f_c3538-r0
HwSKU: DellEMC-S5212f-P-25G
ASIC: broadcom
ASIC Count: 1
Serial Number: CQY67C3
Model Number: 0VK93C
Hardware Revision: 01
Uptime: 07:59:58 up 4 min, 1 user, load average: 5.00, 4.12, 1.78
Date: Tue 13 Feb 2024 07:59:58

root@sonic:/home/admin# ipmitool raw 0x04 0x2d 0x31
Get Device ID command failed: 0xb1 Unknown (0xB1)
Received a response with unexpected ID 0 vs. 1
00 c0 01 80
root@sonic:/home/admin# ipmitool raw 0x04 0x2d 0x31
00 c0 01 80

root@sonic:/home/admin# dpkg -l ipmitool
||/ Name Version Architecture Description
+++-==============-============-============-==================================>
ii ipmitool 1.8.19-4 amd64 utility for IPMI control with kern>


# Install a patched version of ntp (and its dependencies via 'apt-get -y install -f')
sudo dpkg --root=$FILESYSTEM_ROOT --force-confdef --force-confold -i $debs_path/ntp_*.deb || \
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y \
Expand Down
11 changes: 11 additions & 0 deletions rules/ipmitool.dep
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@

SPATH := $($(IPMITOOL)_SRC_PATH)
DEP_FILES := $(SONIC_COMMON_FILES_LIST) rules/ipmitool.mk rules/ipmitool.dep
DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
DEP_FILES += $(shell git ls-files $(SPATH))

$(IPMITOOL)_CACHE_MODE := GIT_CONTENT_SHA
$(IPMITOOL)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(IPMITOOL)_DEP_FILES := $(DEP_FILES)


17 changes: 17 additions & 0 deletions rules/ipmitool.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# ipmitool packages
IPMITOOL_VERSION = 1.8.19
IPMITOOL_VERSION_SUFFIX = 4
IPMITOOL_VERSION_FULL = $(IPMITOOL_VERSION)-$(IPMITOOL_VERSION_SUFFIX)
IPMITOOL = ipmitool_$(IPMITOOL_VERSION_FULL)_$(CONFIGURED_ARCH).deb
$(IPMITOOL)_SRC_PATH = $(SRC_PATH)/ipmitool
SONIC_MAKE_DEBS += $(IPMITOOL)
IPMITOOL_DBG = ipmitool-dbgsym_$(IPMITOOL_VERSION_FULL)_$(CONFIGURED_ARCH).deb
$(eval $(call add_derived_package,$(IPMITOOL),$(IPMITOOL_DBG)))
DBG_SRC_ARCHIVE += ipmitool
# The .c, .cpp, .h & .hpp files under src/{$DBG_SRC_ARCHIVE list}
# are archived into debug one image to facilitate debugging.
# Export these variables so they can be used in a sub-make
export IPMITOOL_VERSION
export IPMITOOL_VERSION_FULL
export IPMITOOL
export IPMITOOL_DBG
1 change: 1 addition & 0 deletions slave.mk
Original file line number Diff line number Diff line change
Expand Up @@ -1356,6 +1356,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
$(LINUX_KERNEL) \
$(SONIC_DEVICE_DATA) \
$(IFUPDOWN2) \
$(IPMITOOL) \
$(KDUMP_TOOLS) \
$(LIBPAM_RADIUS) \
$(LIBNSS_RADIUS) \
Expand Down
28 changes: 28 additions & 0 deletions src/ipmitool/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.ONESHELL:
SHELL = /bin/bash
.SHELLFLAGS += -e

MAIN_TARGET = $(IPMITOOL)
DERIVED_TARGETS = $(IPMITOOL_DBG)

$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
# Remove any stale files
rm -rf ./ipmitool-$(IPMITOOL_VERSION) ./ipmitool*.{deb,udeb,dsc,gz,xz}
# Obtain ipmitool
dget https://deb.debian.org/debian/pool/main/i/ipmitool/ipmitool_$(IPMITOOL_VERSION_FULL).dsc
# Build source and Debian packages
pushd ipmitool-$(IPMITOOL_VERSION)

git init
git add -f *
git commit -m "unmodified ipmitool source"

# Apply patches
stg init
stg import -s ../patch/series
dpkg-buildpackage -rfakeroot -d -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
popd
mv $* $(DERIVED_TARGETS) $(DEST)/

$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)

Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
From 719292c4800054ead278affc2972d8f77babd227 Mon Sep 17 00:00:00 2001
From: rajib-dutta1 <rajib.dutta@dell.com>
Date: Wed, 10 Jan 2024 20:51:03 -0800
Subject: [PATCH] Changes needed to install enterprise.txt

---
Makefile.am | 40 ++++++++++++++++++++--------------------
configure.ac | 30 +++++++++++++++---------------
2 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 355d3f0..ec9605c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -49,25 +49,25 @@ dist-hook:
.PHONY: install-pen-database uninstall-pen-database
.INTERMEDIATE: %.o %.la enterprise-numbers

-#if DOWNLOAD
-
-#enterprise-numbers:
-# @echo Downloading IANA PEN database...
-# @$(DOWNLOAD) "$(IANA_PEN)" > tmpfile.$$PPID || {\
-# echo "FAILED to download the IANA PEN database"; \
-# rm tmpfile.$$PPID; \
-# false; \
-# }
-# @mv tmpfile.$$PPID $@
-#
-#install-pen-database: enterprise-numbers
-# mkdir -m 755 -p $(DESTDIR)$(IANADIR)
-# $(INSTALL_DATA) $< $(DESTDIR)$(IANADIR)/
-#
-#uninstall-pen-database:
-# -rm -rf $(DESTDIR)$(IANADIR)/enterprise-numbers
-#
-#else
+if DOWNLOAD
+
+enterprise-numbers.txt:
+ @echo Downloading IANA PEN database...
+ @$(DOWNLOAD) "$(IANA_PEN)" > tmpfile.$$PPID || {\
+ echo "FAILED to download the IANA PEN database"; \
+ rm tmpfile.$$PPID; \
+ false; \
+ }
+ @mv tmpfile.$$PPID $@
+
+install-pen-database: enterprise-numbers.txt
+ mkdir -m 755 -p $(DESTDIR)$(IANADIR)
+ $(INSTALL_DATA) $< $(DESTDIR)$(IANADIR)/
+
+uninstall-pen-database:
+ -rm -rf $(DESTDIR)$(IANADIR)/enterprise-numbers.txt
+
+else

install-pen-database:
@echo "*** NOT installing the IANA PEN database."
@@ -77,7 +77,7 @@ uninstall-pen-database:
@echo "*** NOT uninstalling the IANA PEN database."
@echo "*** It was installed manually (if ever)."

-#endif
+endif

install-data-local: install-pen-database
mkdir -p $(DESTDIR)$(DOCDIR)
diff --git a/configure.ac b/configure.ac
index b4321c6..d6ba62b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -56,22 +56,22 @@ if test "x$exec_prefix" = "xNONE"; then
exec_prefix="$prefix"
fi

-#if test "x$WGET" = "x"; then
-# if test "x$CURL" = "x"; then
-# AC_MSG_WARN([** Neither wget nor curl could be found.])
-# AC_MSG_WARN([** IANA PEN database will not be installed by `make install` !])
-# else
-# DOWNLOAD="$CURL --location --progress-bar"
-# AM_CONDITIONAL([DOWNLOAD], [true])
-# fi
-#else
-# DOWNLOAD="$WGET -c -nd -O -"
-# AM_CONDITIONAL([DOWNLOAD], [true])
-#fi
+if test "x$WGET" = "x"; then
+ if test "x$CURL" = "x"; then
+ AC_MSG_WARN([** Neither wget nor curl could be found.])
+ AC_MSG_WARN([** IANA PEN database will not be installed by `make install` !])
+ else
+ DOWNLOAD="$CURL --location --progress-bar"
+ AM_CONDITIONAL([DOWNLOAD], [true])
+ fi
+else
+ DOWNLOAD="$WGET -c -nd -O -"
+ AM_CONDITIONAL([DOWNLOAD], [true])
+fi

-#AC_MSG_WARN([** Download is:])
-#AC_MSG_WARN($DOWNLOAD)
-#AC_SUBST(DOWNLOAD, $DOWNLOAD)
+AC_MSG_WARN([** Download is:])
+AC_MSG_WARN($DOWNLOAD)
+AC_SUBST(DOWNLOAD, $DOWNLOAD)

dnl
dnl set default option values
--
2.25.1

1 change: 1 addition & 0 deletions src/ipmitool/patch/series
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0001-Changes-needed-to-install-enterprise.txt.patch
Loading