diff options
-rw-r--r-- | contrib/ci/README.md | 7 | ||||
-rw-r--r-- | contrib/ci/distro.sh | 14 |
2 files changed, 17 insertions, 4 deletions
diff --git a/contrib/ci/README.md b/contrib/ci/README.md index 50b73ec35..6bd2fd92c 100644 --- a/contrib/ci/README.md +++ b/contrib/ci/README.md @@ -36,11 +36,16 @@ package and on Debian in `lsb-release`. The rest of the required packages CI will attempt to install itself, using the distribution's package manager invoked through sudo. -A sudo rule can be employed to selectively avoid password prompts on Red Hat +A sudo rule can be employed to selectively avoid password prompts on RHEL distros: <USER> ALL=(ALL:ALL) NOPASSWD: /usr/bin/yum --assumeyes install -- * +on Fedora distros: + + # We need to use yum-deprecated on Fedora because of BZ1215208. + <USER> ALL=(ALL:ALL) NOPASSWD: /usr/bin/yum-deprecated --assumeyes install -- * + and Debian-based distros: <USER> ALL=(ALL:ALL) NOPASSWD: /usr/bin/apt-get --yes install -- * diff --git a/contrib/ci/distro.sh b/contrib/ci/distro.sh index da797d02f..374e55696 100644 --- a/contrib/ci/distro.sh +++ b/contrib/ci/distro.sh @@ -50,11 +50,19 @@ function distro_pkg_install() { declare prompt=$'Need root permissions to install packages.\n' prompt+="Enter sudo password for $USER: " - if [[ "$DISTRO_BRANCH" == -redhat-* ]]; then + if [[ "$DISTRO_BRANCH" == -redhat-fedora-2[2-9]* ]]; then + # TODO switch fedora to DNF once + # https://bugzilla.redhat.com/show_bug.cgi?id=1215208 is fixed + [ $# != 0 ] && sudo -p "$prompt" \ + yum-deprecated --assumeyes install -- "$@" |& + # Pass input to output, fail if a missing package is reported + awk 'BEGIN {s=0} + /^No package .* available.$/ {s=1} + {print} + END {exit s}' + elif [[ "$DISTRO_BRANCH" == -redhat-* ]]; then [ $# != 0 ] && sudo -p "$prompt" yum --assumeyes install -- "$@" |& # Pass input to output, fail if a missing package is reported - # TODO Remove and switch to DNF once - # https://bugzilla.redhat.com/show_bug.cgi?id=1215208 is fixed awk 'BEGIN {s=0} /^No package .* available.$/ {s=1} {print} |