APPLIED: [JAMMY/linux-restricted-modules-oem-5.17|intel-iotg][PATCH] UBUNTU: [Packaging] LRMv6: add multi-architecture support
Timo Aaltonen
tjaalton at ubuntu.com
Tue Jun 28 21:02:55 UTC 2022
On 28.6.2022 19.20, Dimitri John Ledkov 🏳 🌈 wrote:
> Applied to jammy/linux-restricted-modules-oem-5.17 &
> jammy/linux-restricted-modules-intel-iotg
>
> NB! neither of these kernels appear to have kinetic tress.
>
> NB! @tjaalton despite
> https://lists.ubuntu.com/archives/kernel-team/2022-June/131379.html I
> didn't see this commit pushed to the git tree for oem-5.17 packaging
> of lrm.
that's because I had it committed locally, waiting for the cranking of
the kernel
> On Fri, 17 Jun 2022 at 16:09, Dimitri John Ledkov
> <dimitri.ledkov at canonical.com> wrote:
>>
>> BugLink: https://bugs.launchpad.net/bugs/1968774
>>
>> Signed-off-by: Dimitri John Ledkov <dimitri.ledkov at canonical.com>
>> ---
>>
>> This patch upgrades LRMv5.2 to LRMv6.0 in:
>> - jammy/linux-restricted-modules-oem-5.17
>> - jammy/linux-restricted-modules-intel-iotg
>>
>> To update packaging to feature parity with LRM jammy generic.
>>
>> debian/lrm-version | 2 +-
>> debian/scripts/gen-rules | 1 +
>> debian/scripts/gen-rules.lrg | 43 ++++++++++++++++++++++++++---
>> debian/scripts/gen-rules.lrm | 53 ++++++++++++++++++++++++++++++------
>> debian/scripts/gen-rules.lrs | 12 ++++++++
>> 5 files changed, 97 insertions(+), 14 deletions(-)
>>
>> diff --git a/debian/lrm-version b/debian/lrm-version
>> index ef425ca982..e0ea36feef 100644
>> --- a/debian/lrm-version
>> +++ b/debian/lrm-version
>> @@ -1 +1 @@
>> -5.2
>> +6.0
>> diff --git a/debian/scripts/gen-rules b/debian/scripts/gen-rules
>> index 48944818a8..c5c36a60e8 100755
>> --- a/debian/scripts/gen-rules
>> +++ b/debian/scripts/gen-rules
>> @@ -1,4 +1,5 @@
>> #!/bin/bash
>> +set -e
>>
>> src_package=$(LC_ALL=C dpkg-parsechangelog -SSource)
>> case "$src_package" in
>> diff --git a/debian/scripts/gen-rules.lrg b/debian/scripts/gen-rules.lrg
>> index 61ad057804..db613272ae 100755
>> --- a/debian/scripts/gen-rules.lrg
>> +++ b/debian/scripts/gen-rules.lrg
>> @@ -1,4 +1,15 @@
>> #!/bin/bash
>> +set -e
>> +
>> +validate_unique()
>> +{
>> + [ "$#" = "2" ]
>> + local duplicates=$(echo $2 | tr " " "\n" | sort | uniq -d)
>> + if [ "$duplicates" ]; then
>> + echo "EE: duplicate values in $1" 1>&2
>> + exit 1
>> + fi
>> +}
>>
>> # Pick out relevant version and package information including our predecessor
>> # packages: linux -> linux-restricted-modules-signatures -> linux-restricted-modules
>> @@ -58,6 +69,7 @@ do
>> *) continue ;;
>> esac
>>
>> + validate_unique "archs" "$archs"
>> for arch in $archs
>> do
>> case " $build_archs " in
>> @@ -66,8 +78,6 @@ do
>> esac
>> done
>>
>> - targets=$(echo "$archs" | sed -e 's/\</nvidia-/g')
>> -
>> while read package version extra
>> do
>> case "$package" in
>> @@ -87,14 +97,39 @@ do
>> *\ signonly\ *) continue ;;
>> esac
>>
>> + # If package specifies arch= keys, only build it on
>> + # the intersection of kernel flavour arches & the
>> + # package arches, otherwise build for all kernel
>> + # flavour arches.
>> + pkg_archs=
>> + for cmd in $extra
>> + do
>> + case "$cmd" in
>> + arch=*) pkg_archs="$pkg_archs ${cmd#arch=}" ;;
>> + esac
>> + done
>> + # No package arches set, build for everything
>> + if [ -z "$pkg_archs" ]; then
>> + pkg_archs=$archs
>> + else
>> + # Package arches set, build for intersection
>> + validate_unique "pkg_archs" "$pkg_archs"
>> + pkg_archs=$(sort <(echo $archs | tr " " "\n") <(echo $pkg_archs | tr " " "\n") | uniq -d | tr "\n" " ")
>> + # No intersection, skip
>> + if [ -z "$pkg_archs" ]; then
>> + continue
>> + fi
>> + fi
>> +
>> + targets=$(echo "$pkg_archs" | sed -e 's/\</nvidia-/g')
>> suffix_minus=$(echo "$package" | sed -e 's/nvidia-graphics-drivers-//')
>> suffix_under=$(echo "$suffix_minus" | sed -e 's/-/_/g')
>> suffix_short=$(echo "$suffix_minus" | sed -e 's/-server/srv/g')
>>
>> - echo "II: build $package for $flavour $archs"
>> + echo "II: build $package for $flavour $pkg_archs"
>>
>> cat - >>"debian/control.interlock-up" <<EOL
>> - linux-objects-nvidia-${suffix_minus}-${src_abi}-${flavour} (>= ${src_lrm_version}) [${archs}],
>> + linux-objects-nvidia-${suffix_minus}-${src_abi}-${flavour} (>= ${src_lrm_version}) [${pkg_archs}],
>> EOL
>>
>> # debian/rules.gen
>> diff --git a/debian/scripts/gen-rules.lrm b/debian/scripts/gen-rules.lrm
>> index 574a00ec3a..223918f50a 100755
>> --- a/debian/scripts/gen-rules.lrm
>> +++ b/debian/scripts/gen-rules.lrm
>> @@ -1,4 +1,15 @@
>> #!/bin/bash
>> +set -e
>> +
>> +validate_unique()
>> +{
>> + [ "$#" = "2" ]
>> + local duplicates=$(echo $2 | tr " " "\n" | sort | uniq -d)
>> + if [ "$duplicates" ]; then
>> + echo "EE: duplicate values in $1" 1>&2
>> + exit 1
>> + fi
>> +}
>>
>> # Pick out relevant version and package information including our predecessor
>> # packages: linux -> linux-restricted-modules-signatures -> linux-restricted-modules
>> @@ -70,8 +81,7 @@ do
>> *) continue ;;
>> esac
>>
>> - targets=$(echo "$archs" | sed -e 's/\</nvidia-/g')
>> -
>> + validate_unique "archs" "$archs"
>> cat - >>"debian/control.interlock-up" <<EOL
>> linux-headers-${src_abi}-${flavour} (>= @VERSION@) [${archs}],
>> EOL
>> @@ -95,11 +105,36 @@ EOL
>> *\ signonly\ *) continue ;;
>> esac
>>
>> + # If package specifies arch= keys, only build it on
>> + # the intersection of kernel flavour arches & the
>> + # package arches, otherwise build for all kernel
>> + # flavour arches.
>> + pkg_archs=
>> + for cmd in $extra
>> + do
>> + case "$cmd" in
>> + arch=*) pkg_archs="$pkg_archs ${cmd#arch=}" ;;
>> + esac
>> + done
>> + # No package arches set, build for everything
>> + if [ -z "$pkg_archs" ]; then
>> + pkg_archs=$archs
>> + else
>> + # Package arches set, build for intersection
>> + validate_unique "pkg_archs" "$pkg_archs"
>> + pkg_archs=$(sort <(echo $archs | tr " " "\n") <(echo $pkg_archs | tr " " "\n") | uniq -d | tr "\n" " ")
>> + # No intersection, skip
>> + if [ -z "$pkg_archs" ]; then
>> + continue
>> + fi
>> + fi
>> +
>> + targets=$(echo "$pkg_archs" | sed -e 's/\</nvidia-/g')
>> suffix_minus=$(echo "$package" | sed -e 's/nvidia-graphics-drivers-//')
>> suffix_under=$(echo "$suffix_minus" | sed -e 's/-/_/g')
>> suffix_short=$(echo "$suffix_minus" | sed -e 's/-server/srv/g')
>>
>> - echo "II: build $package for $flavour $archs"
>> + echo "II: build $package for $flavour $pkg_archs"
>>
>> # debian/rules.gen
>> cat - >>"debian/rules.gen" <<EOL
>> @@ -126,7 +161,7 @@ EOL
>>
>> Package: linux-modules-nvidia-${suffix_minus}-${flavour}\${variant:suffix}
>> Build-Profiles: <!stage1>
>> -Architecture: ${archs}
>> +Architecture: ${pkg_archs}
>> Section: kernel
>> Provides: \${dkms:nvidia-${suffix_minus}-modules}, nvidia-prebuilt-kernel
>> Depends:
>> @@ -142,7 +177,7 @@ EOL
>>
>> Package: linux-objects-nvidia-${suffix_minus}-${src_abi}-${flavour}
>> Build-Profiles: <!stage1>
>> -Architecture: ${archs}
>> +Architecture: ${pkg_archs}
>> Section: kernel
>> Priority: optional
>> Built-Using: \${linux:BuiltUsing}
>> @@ -160,7 +195,7 @@ Description: Linux kernel nvidia modules for version ${src_abi} (objects)
>>
>> Package: linux-modules-nvidia-${suffix_minus}-${src_abi}-${flavour}
>> Build-Profiles: <!stage1>
>> -Architecture: ${archs}
>> +Architecture: ${pkg_archs}
>> Section: kernel
>> Priority: optional
>> Built-Using: \${linux:BuiltUsing}
>> @@ -187,11 +222,11 @@ EOL
>> transition=*)
>> from="${cmd#transition=}"
>> from_minus=$(echo "$from" | sed -e 's/nvidia-graphics-drivers-//')
>> - echo "II: general transition $from -> $package ($from_minus -> $suffix_minus)"
>> + echo "II: general transition $from -> $package ($from_minus -> $suffix_minus) $pkg_archs"
>> cat - >>"debian/control.d/migrate-nvidia" <<EOL
>>
>> Package: linux-modules-nvidia-${from_minus}-${flavour}\${variant:suffix}
>> -Architecture: ${archs}
>> +Architecture: ${pkg_archs}
>> Section: oldlibs
>> Depends: linux-modules-nvidia-${suffix_minus}-${flavour}\${variant:suffix}
>> Description: Extra drivers for nvidia-${from_minus} for the ${flavour} flavour (dummy transitional package)
>> @@ -214,7 +249,7 @@ do
>> esac
>>
>> # debian/control.d/transitionals-local
>> - echo "II: manual transition linux-modules-nvidia-$from -> linux-modules-nvidia-$to"
>> + echo "II: manual transition linux-modules-nvidia-$from -> linux-modules-nvidia-$to $archs"
>> cat - >>"debian/control.d/transitionals-local" <<EOL
>>
>> Package: linux-modules-nvidia-${from}
>> diff --git a/debian/scripts/gen-rules.lrs b/debian/scripts/gen-rules.lrs
>> index c28fc2f66b..e2ab3a1493 100755
>> --- a/debian/scripts/gen-rules.lrs
>> +++ b/debian/scripts/gen-rules.lrs
>> @@ -1,4 +1,15 @@
>> #!/bin/bash
>> +set -e
>> +
>> +validate_unique()
>> +{
>> + [ "$#" = "2" ]
>> + local duplicates=$(echo $2 | tr " " "\n" | sort | uniq -d)
>> + if [ "$duplicates" ]; then
>> + echo "EE: duplicate values in $1" 1>&2
>> + exit 1
>> + fi
>> +}
>>
>> # Pick out relevant version and package information including our predecessor
>> # packages: linux-restricted-generate -> linux-restricted-signatures -> linux-restricted-modules
>> @@ -57,6 +68,7 @@ do
>> *) continue ;;
>> esac
>>
>> + validate_unique "archs" "$archs"
>> targets=$(echo "$archs" | sed -e 's/\</nvidia-/g')
>>
>> echo "II: build linux-signatures-nvidia-${src_abi}-${flavour} for ${archs}"
>> --
>> 2.32.0
>>
>
>
--
t
More information about the kernel-team
mailing list