mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-04 11:15:56 +00:00
The debug packages were named with the extension ".ddeb", but due to a
bug in Artifactory, they need to have the ".deb" extension. Debug symbol
packages with ".ddeb" extensions are not indexed, and thus are not
visible in apt clients.
* Fix the issue by renaming the debug packages in the build script.
* Use GCC-11 and update GCC Conan profile.
* This software requires GCC 11 and C++20. However, reporting mode is
built with C++17.
This is a quick band-aid to fix the build. Later, it will be better to
remove this package-building code.
For context, a Debian (deb) package contains bundled software and
resources necessary for installing and managing software on a
Debian-based system, including Ubuntu and derivatives.
100 lines
4.3 KiB
Bash
Executable File
100 lines
4.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -ex
|
|
|
|
# make sure pkg source files are up to date with repo
|
|
cd /opt/rippled_bld/pkg
|
|
cp -fpru rippled/Builds/containers/packaging/dpkg/debian/. debian/
|
|
cp -fpu rippled/Builds/containers/shared/rippled*.service debian/
|
|
cp -fpu rippled/Builds/containers/shared/update_sources.sh .
|
|
source update_sources.sh
|
|
|
|
# Build the dpkg
|
|
|
|
#dpkg uses - as separator, so we need to change our -bN versions to tilde
|
|
RIPPLED_DPKG_VERSION=$(echo "${RIPPLED_VERSION}" | sed 's!-!~!g')
|
|
# TODO - decide how to handle the trailing/release
|
|
# version here (hardcoded to 1). Does it ever need to change?
|
|
RIPPLED_DPKG_FULL_VERSION="${RIPPLED_DPKG_VERSION}-1"
|
|
git config --global --add safe.directory /opt/rippled_bld/pkg/rippled
|
|
cd /opt/rippled_bld/pkg/rippled
|
|
if [[ -n $(git status --porcelain) ]]; then
|
|
git status
|
|
error "Unstaged changes in this repo - please commit first"
|
|
fi
|
|
git archive --format tar.gz --prefix rippled-${RIPPLED_DPKG_VERSION}/ -o ../rippled-${RIPPLED_DPKG_VERSION}.tar.gz HEAD
|
|
cd ..
|
|
# dpkg debmake would normally create this link, but we do it manually
|
|
ln -s ./rippled-${RIPPLED_DPKG_VERSION}.tar.gz rippled_${RIPPLED_DPKG_VERSION}.orig.tar.gz
|
|
tar xvf rippled-${RIPPLED_DPKG_VERSION}.tar.gz
|
|
cd rippled-${RIPPLED_DPKG_VERSION}
|
|
cp -pr ../debian .
|
|
|
|
# dpkg requires a changelog. We don't currently maintain
|
|
# a useable one, so let's just fake it with our current version
|
|
# TODO : not sure if the "unstable" will need to change for
|
|
# release packages (?)
|
|
NOWSTR=$(TZ=UTC date -R)
|
|
cat << CHANGELOG > ./debian/changelog
|
|
rippled (${RIPPLED_DPKG_FULL_VERSION}) unstable; urgency=low
|
|
|
|
* see RELEASENOTES
|
|
|
|
-- Ripple Labs Inc. <support@ripple.com> ${NOWSTR}
|
|
CHANGELOG
|
|
|
|
# PATH must be preserved for our more modern cmake in /opt/local
|
|
# TODO : consider allowing lintian to run in future ?
|
|
export DH_BUILD_DDEBS=1
|
|
debuild --no-lintian --preserve-envvar PATH --preserve-env -us -uc
|
|
rc=$?; if [[ $rc != 0 ]]; then
|
|
error "error building dpkg"
|
|
fi
|
|
cd ..
|
|
|
|
# copy artifacts
|
|
cp rippled-reporting_${RIPPLED_DPKG_FULL_VERSION}_amd64.deb ${PKG_OUTDIR}
|
|
cp rippled_${RIPPLED_DPKG_FULL_VERSION}_amd64.deb ${PKG_OUTDIR}
|
|
cp rippled_${RIPPLED_DPKG_FULL_VERSION}.dsc ${PKG_OUTDIR}
|
|
# dbgsym suffix is ddeb under newer debuild, but just deb under earlier
|
|
cp rippled-dbgsym_${RIPPLED_DPKG_FULL_VERSION}_amd64.* ${PKG_OUTDIR}
|
|
cp rippled-reporting-dbgsym_${RIPPLED_DPKG_FULL_VERSION}_amd64.* ${PKG_OUTDIR}
|
|
cp rippled_${RIPPLED_DPKG_FULL_VERSION}_amd64.changes ${PKG_OUTDIR}
|
|
cp rippled_${RIPPLED_DPKG_FULL_VERSION}_amd64.build ${PKG_OUTDIR}
|
|
cp rippled_${RIPPLED_DPKG_VERSION}.orig.tar.gz ${PKG_OUTDIR}
|
|
cp rippled_${RIPPLED_DPKG_FULL_VERSION}.debian.tar.xz ${PKG_OUTDIR}
|
|
# buildinfo is only generated by later version of debuild
|
|
if [ -e rippled_${RIPPLED_DPKG_FULL_VERSION}_amd64.buildinfo ] ; then
|
|
cp rippled_${RIPPLED_DPKG_FULL_VERSION}_amd64.buildinfo ${PKG_OUTDIR}
|
|
fi
|
|
|
|
pushd ${PKG_OUTDIR}
|
|
for f in *.ddeb; do mv -- "$f" "${f%.ddeb}.deb"; done
|
|
popd
|
|
|
|
cat rippled_${RIPPLED_DPKG_FULL_VERSION}_amd64.changes
|
|
# extract the text in the .changes file that appears between
|
|
# Checksums-Sha256: ...
|
|
# and
|
|
# Files: ...
|
|
awk '/Checksums-Sha256:/{hit=1;next}/Files:/{hit=0}hit' \
|
|
rippled_${RIPPLED_DPKG_VERSION}-1_amd64.changes | \
|
|
sed -E 's!^[[:space:]]+!!' > shasums
|
|
DEB_SHA256=$(cat shasums | \
|
|
grep "rippled_${RIPPLED_DPKG_VERSION}-1_amd64.deb" | cut -d " " -f 1)
|
|
DBG_SHA256=$(cat shasums | \
|
|
grep "rippled-dbgsym_${RIPPLED_DPKG_VERSION}-1_amd64.*" | cut -d " " -f 1)
|
|
REPORTING_DBG_SHA256=$(cat shasums | \
|
|
grep "rippled-reporting-dbgsym_${RIPPLED_DPKG_VERSION}-1_amd64.*" | cut -d " " -f 1)
|
|
REPORTING_SHA256=$(cat shasums | \
|
|
grep "rippled-reporting_${RIPPLED_DPKG_VERSION}-1_amd64.deb" | cut -d " " -f 1)
|
|
SRC_SHA256=$(cat shasums | \
|
|
grep "rippled_${RIPPLED_DPKG_VERSION}.orig.tar.gz" | cut -d " " -f 1)
|
|
echo "deb_sha256=${DEB_SHA256}" >> ${PKG_OUTDIR}/build_vars
|
|
echo "dbg_sha256=${DBG_SHA256}" >> ${PKG_OUTDIR}/build_vars
|
|
echo "reporting_sha256=${REPORTING_SHA256}" >> ${PKG_OUTDIR}/build_vars
|
|
echo "reporting_dbg_sha256=${REPORTING_DBG_SHA256}" >> ${PKG_OUTDIR}/build_vars
|
|
echo "src_sha256=${SRC_SHA256}" >> ${PKG_OUTDIR}/build_vars
|
|
echo "rippled_version=${RIPPLED_VERSION}" >> ${PKG_OUTDIR}/build_vars
|
|
echo "dpkg_version=${RIPPLED_DPKG_VERSION}" >> ${PKG_OUTDIR}/build_vars
|
|
echo "dpkg_full_version=${RIPPLED_DPKG_FULL_VERSION}" >> ${PKG_OUTDIR}/build_vars
|