Skip to content

Commit

Permalink
Merge pull request #1633 from pSchlarb/rocksdbfix
Browse files Browse the repository at this point in the history
Quickfix for #1632
  • Loading branch information
WadeBarnes authored Feb 24, 2023
2 parents d52d92b + b65cb9f commit 48c9d8e
Show file tree
Hide file tree
Showing 3 changed files with 142 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
* text=auto

# Declare files that will always have LF line endings on checkout.
**/publishPackages text eol=lf
**/publishPackages text eol=lf
*.sh text eol=LF
2 changes: 2 additions & 0 deletions build-scripts/ubuntu-2004/build-3rd-parties.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ function build_rocksdb_deb {
VERSION_TAG="rocksdb-$VERSION"

git clone https://github.com/evernym/rocksdb.git /tmp/rocksdb
scriptpath="$(dirname "$(realpath "$0")")"/make_rocksdb.sh
cd /tmp/rocksdb
git checkout $VERSION_TAG
cp $scriptpath /tmp/rocksdb/build_tools/make_package.sh
sed -i 's/-m [email protected]/-m "Hyperledger <[email protected]>"/g' \
./build_tools/make_package.sh
PORTABLE=1 EXTRA_CFLAGS="-fPIC" EXTRA_CXXFLAGS="-fPIC" ./build_tools/make_package.sh $VERSION
Expand Down
138 changes: 138 additions & 0 deletions build-scripts/ubuntu-2004/make_rocksdb.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# shellcheck disable=SC1113
#/usr/bin/env bash

set -e

function log() {
echo "[+] $1"
}

function fatal() {
echo "[!] $1"
exit 1
}

function platform() {
local __resultvar=$1
if [[ -f "/etc/yum.conf" ]]; then
eval $__resultvar="centos"
elif [[ -f "/etc/dpkg/dpkg.cfg" ]]; then
eval $__resultvar="ubuntu"
else
fatal "Unknwon operating system"
fi
}
platform OS

function package() {
if [[ $OS = "ubuntu" ]]; then
if dpkg --get-selections | grep --quiet $1; then
log "$1 is already installed. skipping."
else
# shellcheck disable=SC2068
apt-get install $@ -y
fi
elif [[ $OS = "centos" ]]; then
if rpm -qa | grep --quiet $1; then
log "$1 is already installed. skipping."
else
# shellcheck disable=SC2068
yum install $@ -y
fi
fi
}

function detect_fpm_output() {
if [[ $OS = "ubuntu" ]]; then
export FPM_OUTPUT=deb
elif [[ $OS = "centos" ]]; then
export FPM_OUTPUT=rpm
fi
}
detect_fpm_output

function gem_install() {
if gem list | grep --quiet $1; then
log "$1 is already installed. skipping."
else
# shellcheck disable=SC2068
gem install $@
fi
}

function main() {
if [[ $# -ne 1 ]]; then
fatal "Usage: $0 <rocksdb_version>"
else
log "using rocksdb version: $1"
fi

if [[ -d /vagrant ]]; then
if [[ $OS = "ubuntu" ]]; then
package g++-4.8
export CXX=g++-4.8

# the deb would depend on libgflags2, but the static lib is the only thing
# installed by make install
package libgflags-dev

package ruby-all-dev
elif [[ $OS = "centos" ]]; then
pushd /etc/yum.repos.d
if [[ ! -f /etc/yum.repos.d/devtools-1.1.repo ]]; then
wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo
fi
package devtoolset-1.1-gcc --enablerepo=testing-1.1-devtools-6
package devtoolset-1.1-gcc-c++ --enablerepo=testing-1.1-devtools-6
export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc
export CPP=/opt/centos/devtoolset-1.1/root/usr/bin/cpp
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/c++
export PATH=$PATH:/opt/centos/devtoolset-1.1/root/usr/bin
popd
if ! rpm -qa | grep --quiet gflags; then
rpm -i https://github.com/schuhschuh/gflags/releases/download/v2.1.0/gflags-devel-2.1.0-1.amd64.rpm
fi

package ruby
package ruby-devel
package rubygems
package rpm-build
fi
fi
gem_install fpm

make static_lib
make install INSTALL_PATH=package

cd package

LIB_DIR=lib
if [[ -z "$ARCH" ]]; then
ARCH=$(getconf LONG_BIT)
fi
if [[ ("$FPM_OUTPUT" = "rpm") && ($ARCH -eq 64) ]]; then
mv lib lib64
LIB_DIR=lib64
fi

fpm \
-s dir \
-t $FPM_OUTPUT \
-n rocksdb \
-v $1 \
--prefix /usr \
--url http://rocksdb.org/ \
-m [email protected] \
--license BSD \
--vendor Facebook \
--depends "libgflags-dev" \
--depends "libsnappy-dev" \
--depends "zlib1g-dev" \
--depends "libbz2-dev" \
--depends "liblz4-dev" \
--description "RocksDB is an embeddable persistent key-value store for fast storage." \
include $LIB_DIR
}

# shellcheck disable=SC2068
main $@

0 comments on commit 48c9d8e

Please sign in to comment.