Use specific fix-commit from dnsmasq

I have requested a new release from dnsmasq here:
https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2024q4/017828.html
but until they perform one, we should at least checkout and build
a version of dnsmasq with this fix, instead of downgrading to one that
is slightly less broken.

Related-Bug: 2026757
Change-Id: I8abac5fa729035341c90d7881cb35aff751da101
This commit is contained in:
Jay Faulkner 2024-11-19 10:37:21 -08:00
parent 4cbd353c5e
commit 360e21124c

View File

@ -3563,20 +3563,24 @@ function setup_vxlan_network {
} }
function downgrade_dnsmasq { function downgrade_dnsmasq {
# NOTE(TheJulia): The intent here is to use dnsmasq version # NOTE(JayF): This checks out the unreleased dnsmasq commit which
# which does not crash on segfaults or sigabort when configuration # includes the fix for the crash issue described in
# is updated. See https://bugs.launchpad.net/ironic/+bug/2026757 # https://bugs.launchpad.net/ironic/+bug/2026757
if dnsmasq --version | grep -q "Dnsmasq version 2.85"; then # This patch has yet to be included in a release.
if dnsmasq --version | grep -q "Dnsmasq version 2.90deb2-8-gf006be7"; then
# NOTE(JayF) Keep Ironic devstack plugin idempotent by skipping # NOTE(JayF) Keep Ironic devstack plugin idempotent by skipping
# downgrade if we already have the desired version. # downgrade if we already have the desired version.
echo "Dnsmasq already downgraded, continuing..." echo "Dnsmasq already downgraded, continuing..."
else else
echo "Downgrading dnsmasq..." echo "Downgrading dnsmasq..."
sudo dpkg -r dnsmasq-base sudo dpkg -r dnsmasq-base
git clone http://thekelleys.org.uk/git/dnsmasq.git -b v2.85 --depth 1 # NOTE(JayF) Cannot shallow clone; need to checkout a commit that
# is not part of a named tag
git clone http://thekelleys.org.uk/git/dnsmasq.git
pushd dnsmasq pushd dnsmasq
sed -i 's|^PREFIX.*|PREFIX = /usr|' Makefile # https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commitdiff;h=f006be7842104a9f86fbf419326b7aad08ade61d
sudo make install git checkout f006be7842104a9f86fbf419326b7aad08ade61d
sudo make PREFIX=/usr install
popd popd
fi fi
} }