From patchwork Thu Feb 21 16:37:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thadeu Lima de Souza Cascardo X-Patchwork-Id: 1046257 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4450WD2LHrz9sDL; Fri, 22 Feb 2019 03:37:28 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1gwrLf-0002r6-KX; Thu, 21 Feb 2019 16:37:23 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1gwrLe-0002qa-K7 for kernel-team@lists.ubuntu.com; Thu, 21 Feb 2019 16:37:22 +0000 Received: from [194.204.107.10] (helo=localhost.localdomain) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1gwrLe-00075e-9Z for kernel-team@lists.ubuntu.com; Thu, 21 Feb 2019 16:37:22 +0000 From: Thadeu Lima de Souza Cascardo To: kernel-team@lists.ubuntu.com Subject: [bionic/gcp-edge 1/2] UBUNTU: Packaging: Introduce copy-files and local-mangle Date: Thu, 21 Feb 2019 13:37:18 -0300 Message-Id: <20190221163719.1762-2-cascardo@canonical.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190221163719.1762-1-cascardo@canonical.com> References: <20190221163719.1762-1-cascardo@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/1786013 Two new scripts are introduced in order to do some of the copying and mangling of copies that update-from-*master does. One of the changes on copy-files compared to update-from-*master is that the -c option is given to rsync, so it compares checksums of files in order to decide whether they are different and need an update. That's necessary because sometimes files will have the same size and their modified time will be whithin one second or the original file will be older because git checked it out earlier. The script is split in two so the copy-files may be shared between different kernel tress and the very specific changes are done on the local-mangle file, which is different between trees. Also, in order to make the copy-files the same one for all trees, some of the copies and updates are dependent on a local.conf file, which is present only on those trees where it's needed. The contents of those files are not so easily generated, so they are not part of update.conf. Signed-off-by: Thadeu Lima de Souza Cascardo --- debian.gcp-edge/scripts/helpers/copy-files | 67 ++++++++++++++++++++ debian.gcp-edge/scripts/helpers/local-mangle | 6 ++ 2 files changed, 73 insertions(+) create mode 100755 debian.gcp-edge/scripts/helpers/copy-files create mode 100755 debian.gcp-edge/scripts/helpers/local-mangle diff --git a/debian.gcp-edge/scripts/helpers/copy-files b/debian.gcp-edge/scripts/helpers/copy-files new file mode 100755 index 000000000000..0ce0afe84578 --- /dev/null +++ b/debian.gcp-edge/scripts/helpers/copy-files @@ -0,0 +1,67 @@ +#!/bin/bash -eu + +if [ -f debian/debian.env ]; then + # shellcheck disable=SC1091 + . debian/debian.env +fi + +if [ ! -d "${DEBIAN}" ]; then + echo You must run this script from the top directory of this repository. + exit 1 +fi + +CONF="${DEBIAN}"/etc/update.conf +if [ -f "${CONF}" ]; then + # shellcheck disable=SC1090 + . "${CONF}" +fi + +FOREIGN_ARCHES="" +LOCAL_CONF="${DEBIAN}/etc/local.conf" +if [ -f "${LOCAL_CONF}" ]; then + # shellcheck disable=SC1090 + . "${LOCAL_CONF}" +fi + +SKIP_RULES_D=${SKIP_RULES_D:-} + +# +# Pick up any master branch changes to udeb modules or firmware. +# +rsync -avc --delete "${DEBIAN_MASTER}/d-i/" "${DEBIAN}/d-i" + +# +# Update configs from master +# +rsync -avc --delete "${DEBIAN_MASTER}/config/" "${DEBIAN}/config" + +# +# Update package and DTB settings from master. +# +if [ -z "${SKIP_RULES_D}" ] ; then + rsync -avc "${DEBIAN_MASTER}/rules.d/"*.mk "${DEBIAN}/rules.d/" +fi + +# Remove the .mk files from the arch's that are not supported +for i in ${FOREIGN_ARCHES} +do + rm -f "${DEBIAN}/rules.d/${i}.mk" + git rm -f --ignore-unmatch "${DEBIAN}/rules.d/${i}.mk" || true +done + +# +# Update modprobe.d from master +# +# Some releases (trusty) don't have this directory, and rsync would fail +# without this check. +if [ -d "${DEBIAN}/modprobe.d/" ]; then + rsync -avc --delete "${DEBIAN_MASTER}/modprobe.d/" "${DEBIAN}/modprobe.d" +fi + +cp -p "${DEBIAN_MASTER}/control.d/"*.inclusion-list "${DEBIAN}/control.d" + +cp -p "${DEBIAN_MASTER}/reconstruct" "${DEBIAN}/reconstruct" + +if [ -x "${DEBIAN}/scripts/helpers/local-mangle" ]; then + "./${DEBIAN}/scripts/helpers/local-mangle" +fi diff --git a/debian.gcp-edge/scripts/helpers/local-mangle b/debian.gcp-edge/scripts/helpers/local-mangle new file mode 100755 index 000000000000..616b88f6289c --- /dev/null +++ b/debian.gcp-edge/scripts/helpers/local-mangle @@ -0,0 +1,6 @@ +#!/bin/bash -eu + +# shellcheck disable=SC1091 +. debian/debian.env + +echo -e 'skipabi=true\nskipmodule=true\nskipretpoline=true' >> "${DEBIAN}/rules.d/hooks.mk"