From patchwork Wed Oct 19 16:03:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dimitri John Ledkov X-Patchwork-Id: 1692073 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) 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: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=RELbt+d7; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MswWQ464xz23jk for ; Thu, 20 Oct 2022 03:03:29 +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 1olBXJ-0003Bg-Kg; Wed, 19 Oct 2022 16:03:17 +0000 Received: from smtp-relay-internal-1.internal ([10.131.114.114] helo=smtp-relay-internal-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1olBXH-00038q-IH for kernel-team@lists.ubuntu.com; Wed, 19 Oct 2022 16:03:15 +0000 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 3C7F93F367 for ; Wed, 19 Oct 2022 16:03:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1666195395; bh=6opxyNJGisnM7gBIqarDJhpbBWK6xaPTrnhTZniNHnM=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=RELbt+d7h6CfhGFVsEE+akqzkZYS7cgu6sTxRAmfygcR5p9GRp0b2SL8Dd0omI0B+ FD/e36Pl6T8JIQvo+2P6MCasv8lht9NsV+cIlIb/tHSVJ+zvzKDpZ53FxPEqAdSopi 4Zn5XJ4cWu6uvjnEolMNbdO/LPjgTKSl4bEtfg+YONjZqXnGeBbnOLWUPE0IF9rs7K 5+M4ZSLJdOIUPEh3PkY6T5SaHVB8RvLrS/bX0StdTM3hwdyveu7HAjEUqPNHqNw8Db o+mngUXH39gx8lwN8NYpwkAFD4r5aONXArJCzmyop5Ld/Uqm/xY2KZaRSURWRKQ78G Nd5Wlq9BNpagQ== Received: by mail-wm1-f72.google.com with SMTP id v23-20020a1cf717000000b003bff630f31aso181700wmh.5 for ; Wed, 19 Oct 2022 09:03:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6opxyNJGisnM7gBIqarDJhpbBWK6xaPTrnhTZniNHnM=; b=z2kfs3w22Xw8MS4e+gYBu9TlUAyksn54RCs8ZlrHN7saK5oY/flGxvGdO4iTHTSwES bvdSM4b1NQyzxl9JJ7zoXcraVlMMzjhAL2rtlIfx+HtKKUDYUqteowTHDj6O4Tid9De5 AVm4OTc75PLUV+ooh+pvvitlah+yut9AObNfz+kj1FfLEdPGMfYIiUlk4g/dHbOpV1cE +/zhZ3cBi+8MhCFjYOnpqm/w02mPG7MInYIUkyYlewPVFzLtxipjWE4lP4PvK8Zl+A6c S/YaSuR8Tjzv0H7Loiwy4X6/ZAs2SdrNZmZlx4eZszlc0tx4rxi5tTX513vRasIOPWtm JvUw== X-Gm-Message-State: ACrzQf1QRaDkTABDe8PqBWM+m9ZeG+1dwuyQu3hIsp75WEdhVlsgLXDI qhZk7H8JZiFikfX7RR/ttLrXQIBjyzWOZtqP8DOufXd7dLGFZ7+WC8FD1FcE+q60B88jlr9QLtY CK69saCeRFp+u2DTVIDcGYfqsH1nfBS2OhSgaZLYJRQ== X-Received: by 2002:a5d:5a11:0:b0:22e:3ed1:e426 with SMTP id bq17-20020a5d5a11000000b0022e3ed1e426mr5596654wrb.642.1666195394301; Wed, 19 Oct 2022 09:03:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5etmQR8UXnKKi+Gwr27gCyRml8RQ5WF4oReGolFPwOgodWdqCCT2B/gklYMf4V17BgJvykQw== X-Received: by 2002:a5d:5a11:0:b0:22e:3ed1:e426 with SMTP id bq17-20020a5d5a11000000b0022e3ed1e426mr5596599wrb.642.1666195393711; Wed, 19 Oct 2022 09:03:13 -0700 (PDT) Received: from localhost ([2a01:4b00:85fd:d700:d919:b739:b55:2d20]) by smtp.gmail.com with ESMTPSA id l35-20020a05600c1d2300b003b477532e66sm2902210wms.2.2022.10.19.09.03.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Oct 2022 09:03:13 -0700 (PDT) From: Dimitri John Ledkov To: kernel-team@lists.ubuntu.com Subject: [UNSTABLE][PATCH] UBUNTU: [Packaging] Support skipped dkms modules Date: Wed, 19 Oct 2022 17:03:06 +0100 Message-Id: <20221019160306.22429-1-dimitri.ledkov@canonical.com> X-Mailer: git-send-email 2.34.1 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" In recent releases we have fixed up most dkms modules to correctly detect, and skip building dkms modules when compiling against incompatible kernels. For example, trying to build a WiFi driver against a kernel without 80221 config enabled, results in dkms returning error code 9 skipped build, due to incompatibility. Our DKMS autopkgtests already honor such cases, and mark test results as passing for skipped {kernel, dkms-module} combinations. Improve kernel's dkms-build script to distinguish failed versus skipped builds, by propagating exact status code. For standalone skipped dkms modules, skip generating an empty deb packages. Also do not fail over missing make.log for the skipped dkms builds, which do not have one. This change will enable us to use a static list of dkms-versions across all kernels, without need to do anything special for cases were a vendored dkms module is declared incompatible in dkms.conf for a given kernel. For example, v4l2loopback incompatible with cloud kernels that do not enable CONFIG_VIDEO, or backports-iwlwifi incompatible with kvm kernel. This patch is tested against working, skipepd, and FTBFS dkms modules, which correctly built the full kernel, skipped some dkms modules, or failed the overall build. Signed-off-by: Dimitri John Ledkov --- debian/rules.d/2-binary-arch.mk | 3 ++- debian/scripts/dkms-build | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk index eb3acba7d7..46cf3499bc 100644 --- a/debian/rules.d/2-binary-arch.mk +++ b/debian/rules.d/2-binary-arch.mk @@ -66,7 +66,7 @@ define build_dkms_sign = ) endef define build_dkms = - ARCH=$(build_arch) CROSS_COMPILE=$(CROSS_COMPILE) $(SHELL) $(DROOT)/scripts/dkms-build $(dkms_dir) $(abi_release)-$* '$(call build_dkms_sign,$(builddir)/build-$*)' $(1) $(2) $(3) $(4) $(5) + rc=0; ARCH=$(build_arch) CROSS_COMPILE=$(CROSS_COMPILE) $(SHELL) $(DROOT)/scripts/dkms-build $(dkms_dir) $(abi_release)-$* '$(call build_dkms_sign,$(builddir)/build-$*)' $(1) $(2) $(3) $(4) $(5) || rc=$$?; if [ "$$rc" = "9" ]; then echo do_$(4)_$*=false >> $(builddir)/skipped-dkms.mk; rc=0; fi; if [ "$$rc" != "0" ]; then exit $$rc; fi endef define install_control = @@ -604,6 +604,7 @@ endif $(call dh_all,linux-libc-dev) endif +-include $(builddir)/skipped-dkms.mk binary-%: pkgimg = $(bin_pkg_name)-$* binary-%: pkgimg_mods = $(mods_pkg_name)-$* binary-%: pkgimg_ex = $(mods_extra_pkg_name)-$* diff --git a/debian/scripts/dkms-build b/debian/scripts/dkms-build index 67566a47df..6690322476 100755 --- a/debian/scripts/dkms-build +++ b/debian/scripts/dkms-build @@ -166,14 +166,13 @@ $fakeroot /usr/sbin/dkms build --no-prepare-kernel --no-clean-kernel \ --sourcetree "$dkms_dir/source" \ --dkmstree "$dkms_dir/build" \ --kernelsourcedir "$dkms_dir/headers/linux-headers-$abi_flavour" \ - "$dkms_conf" || rc=1 + "$dkms_conf" || rc=$? # Find the log and add it to our own. for log in "$dkms_dir/build/$dkms_package/$dkms_version/$abi_flavour"/*/"log/make.log" "$dkms_dir/build/$dkms_package/$dkms_version/build/make.log" do - [ -f "$log" ] && break + [ -f "$log" ] && sed -e "s@$dkms_dir@<>@g" <"$log" done -sed -e "s@$dkms_dir@<>@g" <"$log" # If this build failed then exit here. [ "$rc" != 0 ] && exit "$rc"