aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Spoerl <axel.spoerl@qt.io>2022-07-20 09:49:24 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-07-21 05:56:33 +0000
commit470accfdc9acbb49b408697558f64bac067d9b3d (patch)
tree0d7e8894326ebcbcd7916550518da379ea97f873
parent422edc0baba937e0df9a088b388a83f0f198d559 (diff)
Harden cache delete script and extend to all Linux CI platforms
Log script activities and deleted toplevel cache files/directories. Use sudo to override permissions in cache. Remove legacy single file based cache if it exists by error. Create cache directory with appropriate permissions if missing. Change-Id: Id6ad930bf8ba9233eeea8a7602d25c98d0058409 Reviewed-by: Simo Fält <simo.falt@qt.io> (cherry picked from commit aa9095d4cd235918118f6ec8f524806e3510e6ca) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rwxr-xr-xcoin/provisioning/common/linux/cleanup_cache.sh96
-rwxr-xr-xcoin/provisioning/qtci-linux-CentOS-8.3-x86_64/99-cleanup.sh44
-rwxr-xr-xcoin/provisioning/qtci-linux-RHEL-8.2-x86_64/99-cleanup.sh44
-rwxr-xr-xcoin/provisioning/qtci-linux-RHEL-8.4-x86_64/99-cleanup.sh44
-rwxr-xr-xcoin/provisioning/qtci-linux-SLES-15_SP3-x86_64/99-cleanup.sh44
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-cleanup.sh44
-rwxr-xr-xcoin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/99-cleanup.sh44
-rwxr-xr-xcoin/provisioning/qtci-linux-openSUSE-15.3-x86_64/99-cleanup.sh14
8 files changed, 362 insertions, 12 deletions
diff --git a/coin/provisioning/common/linux/cleanup_cache.sh b/coin/provisioning/common/linux/cleanup_cache.sh
new file mode 100755
index 00000000..df5bdea3
--- /dev/null
+++ b/coin/provisioning/common/linux/cleanup_cache.sh
@@ -0,0 +1,96 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# This script needs to be called at the end of provisioning, to clean the cache directory
+
+set -e
+set -f
+QT_USER="qt"
+CACHE=".cache"
+
+echo "---- starting cache cleanup."
+
+# skip if user qt does not exist
+echo "---- checking user $QT_USER"
+if grep -q "^$QT_USER:" /etc/passwd; then
+ echo "(**) found user $QT_USER"
+else
+ echo "(WW) user $QT_USER not found."
+ echo "---- skipping cache cleanup."
+ exit 0;
+fi
+
+# assume /home/qt as ~ won't expand into sudo
+CACHEDIR="/home/$QT_USER/$CACHE"
+
+# delete files from a directory if it exists
+echo "---- checking cache directory $CACHEDIR"
+if sudo [ -d "$CACHEDIR" ]; then
+ if [ "$(sudo ls -A $CACHEDIR)" ]; then
+ echo "(WW) cache in $CACHEDIR is not empty."
+ echo "---- removing content:"
+
+ # List files and delete in a loop as wildcard won't expand into sudo
+ FILES=`sudo ls -A1 $CACHEDIR`
+ while read FILE;
+ do
+ echo "--- rm -rf $FILE"
+ sudo rm -rf "$CACHEDIR/$FILE"
+ done <<< $FILES
+ else
+ echo "(**) cache in $CACHEDIR is empty."
+ fi
+else
+ if sudo [ -f "$CACHEDIR" ]; then
+ # replace a cache file with a directory
+ echo "(WW) $CACHEDIR is a file."
+ echo "---- removing $CACHEDIR."
+ sudo rm -rf "$CACHEDIR"
+ else
+ echo "(WW) cache directory $CACHEDIR not found."
+ fi
+
+ # create new cache directory and assign rights
+ echo "---- creating cache director $CACHEDIR."
+ sudo mkdir "$CACHEDIR"
+ sudo chown $QT_USER:users $CACHEDIR
+ sudo chmod 700 $CACHEDIR
+fi
diff --git a/coin/provisioning/qtci-linux-CentOS-8.3-x86_64/99-cleanup.sh b/coin/provisioning/qtci-linux-CentOS-8.3-x86_64/99-cleanup.sh
new file mode 100755
index 00000000..7c2090b8
--- /dev/null
+++ b/coin/provisioning/qtci-linux-CentOS-8.3-x86_64/99-cleanup.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+"$(dirname "$0")"/../common/linux/cleanup_cache.sh
diff --git a/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/99-cleanup.sh b/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/99-cleanup.sh
new file mode 100755
index 00000000..7c2090b8
--- /dev/null
+++ b/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/99-cleanup.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+"$(dirname "$0")"/../common/linux/cleanup_cache.sh
diff --git a/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/99-cleanup.sh b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/99-cleanup.sh
new file mode 100755
index 00000000..7c2090b8
--- /dev/null
+++ b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/99-cleanup.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+"$(dirname "$0")"/../common/linux/cleanup_cache.sh
diff --git a/coin/provisioning/qtci-linux-SLES-15_SP3-x86_64/99-cleanup.sh b/coin/provisioning/qtci-linux-SLES-15_SP3-x86_64/99-cleanup.sh
new file mode 100755
index 00000000..7c2090b8
--- /dev/null
+++ b/coin/provisioning/qtci-linux-SLES-15_SP3-x86_64/99-cleanup.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+"$(dirname "$0")"/../common/linux/cleanup_cache.sh
diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-cleanup.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-cleanup.sh
new file mode 100755
index 00000000..7c2090b8
--- /dev/null
+++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/99-cleanup.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+"$(dirname "$0")"/../common/linux/cleanup_cache.sh
diff --git a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/99-cleanup.sh b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/99-cleanup.sh
new file mode 100755
index 00000000..7c2090b8
--- /dev/null
+++ b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/99-cleanup.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+"$(dirname "$0")"/../common/linux/cleanup_cache.sh
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/99-cleanup.sh b/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/99-cleanup.sh
index f7ae1507..7c2090b8 100755
--- a/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/99-cleanup.sh
+++ b/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/99-cleanup.sh
@@ -39,16 +39,6 @@
##
#############################################################################
-# This script needs to be called at the end of provisioning, to clean the cache directory
+set -ex
-echo "*********************************************"
-CACHEDIR="/home/qt/.cache"
-if [ -d "$CACHEDIR" ]; then
- [ "$(ls -A $CACHEDIR)" ] && echo "Cache in $CACHEDIR is not empty. Removing content." || echo "Empty cache found in $CACHEDIR";
- rm -rf $CACHEDIR/*;
-else
- echo "Cache directory $CACHEDIR not found. Creating.";
- mkdir $CACHEDIR;
- chown qt:users $CACHEDIR;
-fi
-echo "*********************************************"
+"$(dirname "$0")"/../common/linux/cleanup_cache.sh