fix CPACK build dependency

This commit is contained in:
Ryo Nakamura
2022-11-20 18:02:13 +09:00
parent b6b283f8b5
commit e22bc5523b
4 changed files with 58 additions and 27 deletions

View File

@@ -80,15 +80,19 @@ if(UNIX AND NOT APPLE) # on linux
execute_process(COMMAND
bash "-c" "cat /etc/os-release|grep '^VERSION_ID='|cut -d '=' -f 2|tr -d '\"'"
OUTPUT_VARIABLE DIST_VER OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND
bash "-c" "${mscp_SOURCE_DIR}/scripts/print-install-deps.sh ${DIST_NAME}-${DIST_VER}"
OUTPUT_VARIABLE DIST_DEP OUTPUT_STRIP_TRAILING_WHITESPACE)
set(PACKAGE_FILE_NAME
${PROJECT_NAME}_${PROJECT_VERSION}-${DIST_NAME}-${DIST_VER}-${ARCH})
set(CPACK_DEBIAN_FILE_NAME ${PACKAGE_FILE_NAME}.deb)
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libssh-4")
set(CPACK_DEBIAN_PACKAGE_DEPENDS ${DIST_DEP})
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/upa/mscp")
set(CPACK_RPM_FILE_NAME ${PACKAGE_FILE_NAME}.rpm)
set(CPACK_RPM_PACKAGE_REQUIRES "libssh")
set(CPACK_RPM_PACKAGE_REQUIRES ${DIST_DEP})
set(CPACK_RPM_PACKAGE_HOMEPAGE "https://github.com/upa/mscp")
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
endif() # on linux
@@ -119,7 +123,7 @@ foreach(x RANGE ${DIST_LISTLEN})
add_custom_target(docker-build-${DOCKER_INDEX}
COMMENT "Build mscp in ${DOCKER_IMAGE} container"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${mscp_SOURCE_DIR}
COMMAND
docker build -t ${DOCKER_IMAGE} -f docker/${DOCKER_INDEX}.Dockerfile .)

View File

@@ -44,35 +44,27 @@ patch introduces asynchronous SFTP Write, which is derived from
https://github.com/limes-datentechnik-gmbh/libssh (see [Re: SFTP Write
async](https://archive.libssh.org/libssh/2020-06/0000004.html)).
- macOS
```console
brew install openssl
```
- ubuntu
```console
sudo apt-get install zlib1g-dev libssl-dev libkrb5-dev
```
Clone and build this repositoy.
Currently macOS and Linux (Ubuntu, CentOS, Rocky) are supported.
```console
# 1. clone this repository
git clone https://github.com/upa/mscp.git
cd mscp
# prepare patched libssh
# 2. install build dependency
bash ./scripts/install-build-deps.sh
# 3. prepare patched libssh
git submodule init
git submodule update
cd libssh && git apply ../patch/libssh-0.10.4.patch
# configure mscp
# 4. configure mscp
cd ..
mkdir build && mv build
cmake ..
# in macOS, you may need OPENSSL_ROOT_DIR for cmake like:
## in macOS, you may need OPENSSL_ROOT_DIR for cmake like:
cmake .. -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl
# build

View File

@@ -1,18 +1,30 @@
#!/bin/bash -e
#!/bin/bash -eu
#
# Install build dpenedencies.
source /etc/os-release
platform=$(uname -s)
if [ -e /etc/os-release ]; then
source /etc/os-release
platform=${platform}-${ID}
fi
set -x
case $ID in
ubuntu*)
apt-get install -y gcc make cmake libssh-dev
case $platform in
Darwin)
brew install openssl
;;
centos* | rhel* | rocky*)
yum install -y gcc make cmake libssh-devel rpm-build
Linux-ubuntu*)
sudo apt-get install -y \
gcc make cmake zlib1g-dev libssl-dev libkrb5-dev
;;
Linux-centos* | Linux-rhel* | Linux-rocky*)
sudo yum install -y \
gcc make cmake zlib-devel openssl-devel rpm-build
;;
*)
echo "unsupported dependency install: $ID"
echo "unsupported platform: $platform"
exit 1
;;
esac

23
scripts/print-install-deps.sh Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/bash -e
#
# Print install dpenedencies on Linux. CMake runs this script to obtain deps for CPACK.
# mscp dependes on packages on which libssh depends.
source /etc/os-release
release=$1
case $release in
ubuntu-20.04*)
echo "libc6 (>= 2.27), libgssapi-krb5-2 (>= 1.17), libssl1.1 (>= 1.1.1), zlib1g (>= 1:1.1.4)"
;;
ubuntu-22.04*)
echo "libc6 (>= 2.33), libgssapi-krb5-2 (>= 1.17), libssl3 (>= 3.0.0~~alpha1), zlib1g (>= 1:1.1.4)"
;;
centos* | rhel* | rocky*)
echo "glibc crypto-policies krb5-libs openssl-libs libcom_err"
;;
*)
echo "unsupported install dependency: $release"
exit 1
esac