Skip to content

Commit

Permalink
PS-7836: Rework ZenFS compile structure (percona#4439)
Browse files Browse the repository at this point in the history
  • Loading branch information
Illia Pshonkin authored and inikep committed Jul 25, 2023
1 parent fda13a0 commit 60422d8
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 45 deletions.
31 changes: 1 addition & 30 deletions build-ps/build-binary.sh
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ do
shift
TARBALL_SUFFIX="-zenfs"
WITH_ZENFS="ON"
ZENFS_EXTRA="-DROCKSDB_PLUGINS=zenfs"
ZENFS_EXTRA="-DROCKSDB_PLUGINS=zenfs -DWITH_ZENFS_UTILITY=ON"
;;
-t | --tag )
shift
Expand Down Expand Up @@ -306,29 +306,6 @@ fi
cp COPYING "$INSTALLDIR/usr/local/$PRODUCT_FULL/COPYING-jemalloc"
)
fi
# Build zenfs
if [[ ${WITH_ZENFS} == "ON" ]]; then
if [[ -f $INSTALLDIR/zenfs ]]; then
echo "ZenFS utils is built"
else
INSTALL_ROOT=${WORKDIR_ABS}/rocksdb-root
BUILD_ROOT=${WORKDIR_ABS}/rocksdb-build

mkdir ${WORKDIR_ABS}/rocksdb-root ${WORKDIR_ABS}/rocksdb-build
ln -s $SOURCEDIR/storage/rocksdb/rocksdb_plugins/zenfs/ $SOURCEDIR/storage/rocksdb/rocksdb/plugin/

pushd $SOURCEDIR/storage/rocksdb/rocksdb/
CC=clang-12 CXX=clang++-12 make DISABLE_WARNING_AS_ERROR=1 PREFIX=${INSTALL_ROOT}/usr OBJ_DIR=${BUILD_ROOT} ROCKSDB_PLUGINS=zenfs -j$(nproc) install-static
popd

pushd $SOURCEDIR/storage/rocksdb/rocksdb/plugin/zenfs/util
PKG_CONFIG_PATH=$INSTALL_ROOT/usr/lib/pkgconfig make CC=clang-12 CXX=clang++-12 -j$(nproc)
popd

cp $SOURCEDIR/storage/rocksdb/rocksdb/plugin/zenfs/util/zenfs $INSTALLDIR/
rm -rf $INSTALL_ROOT $BUILD_ROOT
fi
fi
)

(
Expand Down Expand Up @@ -476,17 +453,11 @@ fi
cd "$INSTALLDIR/usr/local/"
#PS-4854 Percona Server for MySQL tarball without AGPLv3 dependency/license
find $PRODUCT_FULL -type f -name 'COPYING.AGPLv3' -delete
if [[ ${WITH_ZENFS} == "ON" ]]; then
install -m 0755 $INSTALLDIR/zenfs $PRODUCT_FULL/bin
fi
$TAR --owner=0 --group=0 -czf "$WORKDIR_ABS/$PRODUCT_FULL.tar.gz" $PRODUCT_FULL

if [[ $CMAKE_BUILD_TYPE != "Debug" ]]; then
cd "$INSTALLDIR/usr/local/minimal/"
find $PRODUCT_FULL-minimal -type f -name 'COPYING.AGPLv3' -delete
if [[ ${WITH_ZENFS} == "ON" ]]; then
install -m 0755 $INSTALLDIR/zenfs $PRODUCT_FULL-minimal/bin
fi
$TAR --owner=0 --group=0 -czf "$WORKDIR_ABS/$PRODUCT_FULL-minimal.tar.gz" $PRODUCT_FULL-minimal
fi
)
Expand Down
12 changes: 2 additions & 10 deletions build-ps/debian-zenfs/rules
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ ifeq ($(SKIP_DEBUG_BINARY),)
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
-DCMAKE_BUILD_TYPE=Debug \
-DCOMPILATION_COMMENT=$(COMPILATION_COMMENT_DEBUG) \
-DROCKSDB_PLUGINS=zenfs \
-DROCKSDB_PLUGINS=zenfs -DWITH_ZENFS_UTILITY=ON \
-DSYSTEM_TYPE="debian-linux-gnu" \
-DINSTALL_LAYOUT=DEB \
-DWITH_INNODB_MEMCACHED=ON \
Expand Down Expand Up @@ -116,7 +116,7 @@ endif
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCOMPILATION_COMMENT=$(COMPILATION_COMMENT_RELEASE) \
-DROCKSDB_PLUGINS=zenfs \
-DROCKSDB_PLUGINS=zenfs -DWITH_ZENFS_UTILITY=ON \
-DSYSTEM_TYPE="debian-linux-gnu" \
-DINSTALL_LAYOUT=DEB \
-DWITH_INNODB_MEMCACHED=ON \
Expand Down Expand Up @@ -161,12 +161,6 @@ endif

touch $@

cd $(builddir); \
mkdir storage/rocksdb/rocksdb/plugin/; ln -s storage/rocksdb/rocksdb_plugins/zenfs/ storage/rocksdb/rocksdb/plugin/; \
cd storage/rocksdb/rocksdb/; \
CC=clang-12 CXX=clang++-12 make -j$(NCPU) DISABLE_WARNING_AS_ERROR=1 PREFIX=$(CURDIR)/rocksdb-root/usr OBJ_DIR=$(CURDIR)/rocksdb-build ROCKSDB_PLUGINS=zenfs install-static; \
cd plugin/zenfs/util; \
PKG_CONFIG_PATH=$(CURDIR)/rocksdb-root/usr/lib/pkgconfig CC=clang-12 CXX=clang++-12 make -j$(NCPU)

override_dh_auto_install:
@echo "RULES.$@"
Expand Down Expand Up @@ -202,8 +196,6 @@ override_dh_auto_install:
install -d $(TMP)/etc/apparmor.d
install -d $(TMP)/etc/apparmor.d/local

install -m 0755 $(builddir)/rocksdb-source/plugin/zenfs/util/zenfs $(TMP)/usr/bin/zenfs

override_dh_strip:
dh_strip --dbg-package=percona-server-dbg-zenfs
dh_strip -Xlibprotobuf-lite
Expand Down
16 changes: 11 additions & 5 deletions build-ps/percona-server-8.0_builder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,7 @@ get_sources(){
rsync -av storage/rocksdb/third_party/lz4/ ${PSDIR}/storage/rocksdb/third_party/lz4 --exclude .git
rsync -av storage/rocksdb/third_party/zstd/ ${PSDIR}/storage/rocksdb/third_party/zstd --exclude .git
rsync -av extra/coredumper/ ${PSDIR}/extra/coredumper --exclude .git
rsync -av storage/rocksdb/rocksdb_plugins/ ${PSDIR}/storage/rocksdb/rocksdb_plugins --exclude .git
#
cd ${PSDIR}
# set tokudb version - can be seen with show variables like '%version%'
Expand Down Expand Up @@ -306,15 +307,11 @@ enable_zenfs() {
cp $CURDIR/source_tarball/percona-server-8.0.properties $WORKDIR
source $WORKDIR/percona-server-8.0.properties

rm -rf storage/rocksdb/rocksdb_plugins/zenfs
git clone https://github.com/westerndigitalcorporation/zenfs.git storage/rocksdb/rocksdb_plugins/zenfs
if [[ $mode == "tarball" ]]; then
rm build-ps/build-binary.sh
curl https://raw.githubusercontent.com/percona/percona-server/8.0/build-ps/build-binary.sh --output build-ps/build-binary.sh
curl https://raw.githubusercontent.com/Sudokamikaze/percona-server/PS-7836-rework/build-ps/build-binary.sh --output build-ps/build-binary.sh
chmod +x build-ps/build-binary.sh
mkdir -p storage/rocksdb/rocksdb/plugin/
elif [[ $mode == "debian" ]]; then
mkdir builddir
rm -rf debian
mv build-ps/debian-zenfs debian

Expand Down Expand Up @@ -464,6 +461,15 @@ install_deps() {
if [ x${DIST} = xhirsute ]; then
apt-get -y install libzbd-dev clang-12 pkg-config make libgflags-dev nvme-cli util-linux fio zbd-utils
fi
if [ x${DIST} = xfocal ]; then
apt-get -y install clang-12 pkg-config make libgflags-dev nvme-cli util-linux fio
curl http://ua.archive.ubuntu.com/pool/universe/libz/libzbd/libzbd-dev_1.2.0-1_amd64.deb --output /tmp/libzbd-dev.deb
curl http://ua.archive.ubuntu.com/pool/universe/libz/libzbd/libzbd1_1.2.0-1_amd64.deb --output /tmp/libzbd1.deb
curl http://ua.archive.ubuntu.com/pool/universe/libz/libzbd/zbd-utils_1.2.0-1_amd64.deb --output /tmp/zbd-utils.deb
dpkg -i /tmp/libzbd-dev.deb /tmp/libzbd1.deb /tmp/zbd-utils.deb || true
apt-get install -fy
rm -f /tmp/libzbd-dev.deb /tmp/libzbd1.deb /tmp/zbd-utils.deb
fi
fi
if [ ! -d /usr/local/percona-subunit2junitxml ]; then
cd /usr/local
Expand Down

0 comments on commit 60422d8

Please sign in to comment.