7a5cc6cad5
For now this is kept at its very basics. Dependencies are handled via pgkdep, they are not explicitly defined by the .rpm itself. Currently, up to four .rpm packages are being built: spdk spdk-devel spdk-libs spdk-dpdk-lib Together they include all binaries|libs|header files + some setup scripts which are commonly used throughout the repo. Installation paths are hardcoded to: /usr/local/{bin,lib{,/dpdk},include}: - binaries - libraries - header files /usr/libexec/spdk: - scripts /etc: - configuration files Signed-off-by: Michal Berger <michalx.berger@intel.com> Change-Id: Ic5f067c4e7b8da3d697ee469bc9c794d5a0a035b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6436 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
50 lines
1.1 KiB
Bash
Executable File
50 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# This script simply iterates over all libs SPDK binaries link
|
|
# to and returns a list of .rpm packages SPDK may depend on. At
|
|
# the end, the list strictly relates to how the SPDK build was
|
|
# ./configure'ed.
|
|
|
|
shopt -s nullglob
|
|
|
|
rpmdir=$(readlink -f "$(dirname "$0")")
|
|
rootdir=$(readlink -f "$rpmdir/../")
|
|
rc=0
|
|
|
|
bins=("$rootdir/"build/{bin,examples}/*)
|
|
(($#)) && bins=("$@")
|
|
|
|
((${#bins[@]} > 0)) || exit 0
|
|
|
|
source /etc/os-release
|
|
[[ $ID == fedora || $ID == centos || $ID == rhel ]] || exit 0
|
|
|
|
declare -A deps=()
|
|
for bin in "${bins[@]}"; do
|
|
if ! type -P "$bin"; then
|
|
printf '%s is missing\n' "$bin" >&2
|
|
rc=1
|
|
continue
|
|
fi
|
|
while read -r name _ lib _; do
|
|
[[ -n $lib ]] || continue
|
|
[[ -z ${deps["$lib"]} ]] || continue
|
|
if [[ ! -e $lib ]]; then
|
|
lib=$name pkg="missing"
|
|
rc=1
|
|
elif ! pkg=$(rpm -qf "$lib"); then
|
|
pkg=${lib##*/}
|
|
fi
|
|
deps["$lib"]=$pkg
|
|
done < <(LD_TRACE_LOADED_OBJECTS=1 "$bin")
|
|
done
|
|
|
|
if [[ -n $LIST_LIBS ]]; then
|
|
for lib in "${!deps[@]}"; do
|
|
echo "$lib:${deps["$lib"]}"
|
|
done
|
|
else
|
|
printf '%s\n' "${deps[@]}"
|
|
fi | sort -u
|
|
|
|
((rc == 0))
|