mirror of
https://github.com/xcat2/confluent.git
synced 2026-07-31 01:59:42 +00:00
a9d7b67929
Release tags do not live on master: 3.15.2 through 3.15.6 were tagged on branch 3.15, so git describe reaches only 3.15.1 and dev builds were stamped 3.15.2.dev<n>. Besides being confusing, rpm and dpkg both rank the released 3.15.6 above that, so a dev package will not install over a released one. Add a top-level VERSION file naming the release the branch is working toward (4.0.0 on master) and a mkversion helper that stamps packages from it, keeping the tag-derived value as a floor so a forgotten bump cannot go backwards. mkversion also replaces the block copy-pasted into seven build scripts, and makesetup no longer writes a per-package VERSION file, so the stale checked-in confluent_common/VERSION goes with it.
95 lines
3.6 KiB
Bash
Executable File
95 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
cd `dirname $0`
|
|
export DEBFULLNAME="Lenovo HPC"
|
|
export DEBEMAIL="hpchelp@lenovo.com"
|
|
PKGNAME=$(basename $(pwd))
|
|
DPKGNAME=$(basename $(pwd) | sed -e s/_/-/)
|
|
OPKGNAME=$(basename $(pwd) | sed -e s/_/-/)
|
|
PYEXEC=python3
|
|
DSCARGS="--with-python3=True --with-python2=False"
|
|
if grep wheezy /etc/os-release; then
|
|
DPKGNAME=python-$DPKGNAME
|
|
PYEXEC=python
|
|
DSCARGS=""
|
|
fi
|
|
cd ..
|
|
mkdir -p /tmp/confluent # $DPKGNAME
|
|
cp -a * .git /tmp/confluent # $DPKGNAME
|
|
cd /tmp/confluent/$PKGNAME
|
|
if [ -x ./makeman ]; then
|
|
./makeman
|
|
fi
|
|
VERSION=`./makesetup` || exit 1
|
|
cat > setup.cfg << EOF
|
|
[install]
|
|
install_purelib=/opt/confluent/lib/python
|
|
install_scripts=/opt/confluent/bin
|
|
|
|
[sdist_dsc]
|
|
package=$DPKGNAME
|
|
EOF
|
|
|
|
$PYEXEC setup.py sdist > /dev/null 2>&1
|
|
py2dsc $DSCARGS dist/*.tar.gz
|
|
shopt -s extglob
|
|
cd deb_dist/!(*.orig)/
|
|
if [ "$OPKGNAME" = "confluent-server" ]; then
|
|
if grep noble /etc/os-release; then
|
|
sed -i 's/^\(Depends:.*\)/\1, confluent-client, python3-lxml, python3-eficompressor, python3-cryptography, python3-websocket, python3-msgpack, python3-aiohttp, python3-pyparsing, python3-asyncssh, python3-pysnmp-lextudio, python3-libarchive-c, confluent-vtbufferd, python3-netifaces, python3-yaml, python3-dateutil, python3-numpy, python3-pillow/' debian/control
|
|
else
|
|
sed -i 's/^\(Depends:.*\)/\1, confluent-client, python3-lxml, python3-eficompressor, python3-cryptography, python3-websocket, python3-msgpack, python3-aiohttp, python3-pyparsing, python3-asyncssh, python3-pysnmp4, python3-libarchive-c, confluent-vtbufferd, python3-netifaces, python3-yaml, python3-dateutil, python3-crypt-r, python3-numpy, python3-pillow/' debian/control
|
|
fi
|
|
echo 'confluent_client confluent-client' >> debian/pydist-overrides
|
|
|
|
fi
|
|
if ! grep wheezy /etc/os-release; then
|
|
sed -i 's/^Package: python3-/Package: /' debian/control
|
|
fi
|
|
head -n -1 debian/control > debian/control1
|
|
mv debian/control1 debian/control
|
|
cat > debian/postinst << \EOF
|
|
if ! getent passwd confluent > /dev/null; then
|
|
useradd -r confluent -d /var/lib/confluent -s /usr/sbin/nologin
|
|
fi
|
|
mkdir -p /etc/confluent /var/lib/confluent /var/log/confluent /var/cache/confluent
|
|
chown confluent:confluent /etc/confluent /var/lib/confluent /var/log/confluent /var/cache/confluent
|
|
|
|
sysctl -p /usr/lib/sysctl.d/confluent.conf > /dev/null 2>&1
|
|
NEEDCHOWN=0
|
|
NEEDSTART=0
|
|
[ -n "$(find /etc/confluent /var/log/confluent /var/cache/confluent -uid 0 -print -quit 2>/dev/null)" ] && NEEDCHOWN=1
|
|
if [ $NEEDCHOWN = 1 ]; then
|
|
if systemctl is-active confluent > /dev/null; then
|
|
NEEDSTART=1
|
|
systemctl stop confluent
|
|
fi
|
|
chown -R confluent:confluent /etc/confluent /var/log/confluent /var/cache/confluent
|
|
fi
|
|
systemctl daemon-reload
|
|
if systemctl is-active confluent > /dev/null || [ $NEEDSTART = 1 ]; then systemctl restart confluent > /dev/null 2>&1; fi
|
|
if [ ! -e /etc/pam.d/confluent ]; then
|
|
ln -s /etc/pam.d/sshd /etc/pam.d/confluent
|
|
fi
|
|
true
|
|
EOF
|
|
echo 'export PYBUILD_INSTALL_ARGS=--install-lib=/opt/confluent/lib/python' >> debian/rules
|
|
#echo 'Provides: python-'$DPKGNAME >> debian/control
|
|
#echo 'Conflicts: python-'$DPKGNAME >> debian/control
|
|
#echo 'Replaces: python-'$DPKGNAME' (<<2)' >> debian/control
|
|
#echo 'Breaks: python-'$DPKGNAME' (<<2)' >> debian/control
|
|
|
|
dpkg-buildpackage -rfakeroot -uc -us -i
|
|
if [ $? -ne 0 ]; then
|
|
echo "[ERROR] rpmbuild returned non-zero, run: rpmbuild -ba ~/rpmbuild/SPECS/$PKGNAME.spec"
|
|
exit 1
|
|
else
|
|
cd -
|
|
# Clean up the generated files in this directory
|
|
rm -rf $PKGNAME.egg-info dist setup.py
|
|
rm -rf $(find deb_dist -mindepth 1 -maxdepth 1 -type d)
|
|
if [ ! -z "$1" ]; then
|
|
mv deb_dist/*.deb $1/
|
|
fi
|
|
fi
|
|
exit 0
|