aboutsummaryrefslogtreecommitdiff
path: root/contrib/pam_modules/pam_passwdqc/ci/install-dependencies.sh
diff options
context:
space:
mode:
authorGordon Tetlow <gordon@FreeBSD.org>2023-11-03 17:37:48 +0000
committerGordon Tetlow <gordon@FreeBSD.org>2023-11-03 17:37:48 +0000
commite4fe068d29c902225fa3733db09af214cbfb3c02 (patch)
treef8f9cbff2b52e2e05c2e8e64aea2fc3210583273 /contrib/pam_modules/pam_passwdqc/ci/install-dependencies.sh
parent00d65bdc4b6c36b0692588d71ca18ff080826a75 (diff)
Vendor import of pam_passwdqc v2.0.3.vendor/pam_modules/passwdqc/v2.0.3vendor/pam_modules
Diffstat (limited to 'contrib/pam_modules/pam_passwdqc/ci/install-dependencies.sh')
-rwxr-xr-xcontrib/pam_modules/pam_passwdqc/ci/install-dependencies.sh86
1 files changed, 86 insertions, 0 deletions
diff --git a/contrib/pam_modules/pam_passwdqc/ci/install-dependencies.sh b/contrib/pam_modules/pam_passwdqc/ci/install-dependencies.sh
new file mode 100755
index 000000000000..17124d527dc6
--- /dev/null
+++ b/contrib/pam_modules/pam_passwdqc/ci/install-dependencies.sh
@@ -0,0 +1,86 @@
+#!/bin/sh -ex
+#
+# Copyright (c) 2018-2020 The strace developers.
+# All rights reserved.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+j=-j`nproc` || j=
+type sudo >/dev/null 2>&1 && sudo=sudo || sudo=
+common_packages='file gettext libaudit-dev libpam0g-dev make'
+
+retry_if_failed()
+{
+ for i in `seq 0 99`; do
+ "$@" && i= && break || sleep 1
+ done
+ [ -z "$i" ]
+}
+
+updated=
+apt_get_install()
+{
+ [ -n "$updated" ] || {
+ retry_if_failed $sudo apt-get -qq update
+ updated=1
+ }
+ retry_if_failed $sudo \
+ apt-get -qq --no-install-suggests --no-install-recommends \
+ install -y "$@"
+}
+
+git_installed=
+clone_repo()
+{
+ local src dst branch
+ src="$1"; shift
+ dst="$1"; shift
+ branch="${1-}"
+
+ [ -n "$git_installed" ] || {
+ apt_get_install git ca-certificates
+ git_installed=1
+ }
+
+ case "$src" in
+ *://*) ;;
+ *) local url path
+ url="$(git config remote.origin.url)"
+ path="${url#*://*/}"
+ src="${url%$path}$src"
+ ;;
+ esac
+
+ retry_if_failed \
+ git clone --depth=1 ${branch:+--branch $branch} "$src" "$dst"
+}
+
+case "$TARGET" in
+ x32|x86)
+ packages="$common_packages gcc-multilib"
+ ;;
+ *)
+ packages="$common_packages gcc"
+ ;;
+esac
+
+case "$CC" in
+ gcc-*)
+ retry_if_failed \
+ $sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
+ case "$TARGET" in
+ x32|x86)
+ apt_get_install $packages "$CC"-multilib "$CC"
+ ;;
+ *)
+ apt_get_install $packages "$CC"
+ ;;
+ esac
+ ;;
+ clang*)
+ apt_get_install $packages "$CC"
+ ;;
+ *)
+ apt_get_install $packages
+ ;;
+esac