mbox series

[Unstable,0/1] UBUNTU: [Packaging] Check do_lib_rust before linking Rust lib files

Message ID 20240627165346.78336-1-noah.wager@canonical.com
Headers show
Series UBUNTU: [Packaging] Check do_lib_rust before linking Rust lib files | expand

Message

Noah Wager June 27, 2024, 4:52 p.m. UTC
[Impact]

Commit: "UBUNTU: [Packaging] introduce do_lib_rust and enable it only on
generic amd64" introduces the "do_lib_rust" variable in rules.d/ that
avoids generating the extra rust package when unset/false. However, this
is not checked when inserting a symlink to the linux-lib-rust package
directory in the headers, resulting in a dangling symlink when rust is
turned off. This can cause issues when e.g. building dkms modules
against the headers, where the build will fail due to not finding the
directory.

[How to reproduce it]

1. Build linux-headers-* package for kernel with rust disabled (e.g.
realtime)
2. Install (or extract) the package
3. View corresponding /usr/src/linux-headers-*/ directory
4. Observe /usr/src/linux-headers-*/rust -> ../linux-lib-rust-* but
linux-lib-rust is never built and installed

[Fix]

Check the existing do_lib_rust variable is true before trying to symlink
the linux-lib-rust files.

[Test plan]

1. Apply the fix and rebuild the kernel headers packages
2. Install or inspect the headers
3. Ensure /usr/src/linux-headers-*/rust points to an existing directory

[Regression potential]

Very low. This is a simple fix, and it only impacts rust packaging for
kernels with do_lib_rust unset/false so the visibility is low.

Noah Wager (1):
  UBUNTU: [Packaging] Check do_lib_rust before linking Rust lib files

 debian/rules.d/2-binary-arch.mk | 2 ++
 1 file changed, 2 insertions(+)

Comments

Juerg Haefliger June 28, 2024, 8:29 a.m. UTC | #1
We also want this in Noble, no?

...Juerg


> [Impact]
> 
> Commit: "UBUNTU: [Packaging] introduce do_lib_rust and enable it only on
> generic amd64" introduces the "do_lib_rust" variable in rules.d/ that
> avoids generating the extra rust package when unset/false. However, this
> is not checked when inserting a symlink to the linux-lib-rust package
> directory in the headers, resulting in a dangling symlink when rust is
> turned off. This can cause issues when e.g. building dkms modules
> against the headers, where the build will fail due to not finding the
> directory.
> 
> [How to reproduce it]
> 
> 1. Build linux-headers-* package for kernel with rust disabled (e.g.
> realtime)
> 2. Install (or extract) the package
> 3. View corresponding /usr/src/linux-headers-*/ directory
> 4. Observe /usr/src/linux-headers-*/rust -> ../linux-lib-rust-* but
> linux-lib-rust is never built and installed
> 
> [Fix]
> 
> Check the existing do_lib_rust variable is true before trying to symlink
> the linux-lib-rust files.
> 
> [Test plan]
> 
> 1. Apply the fix and rebuild the kernel headers packages
> 2. Install or inspect the headers
> 3. Ensure /usr/src/linux-headers-*/rust points to an existing directory
> 
> [Regression potential]
> 
> Very low. This is a simple fix, and it only impacts rust packaging for
> kernels with do_lib_rust unset/false so the visibility is low.
> 
> Noah Wager (1):
>   UBUNTU: [Packaging] Check do_lib_rust before linking Rust lib files
> 
>  debian/rules.d/2-binary-arch.mk | 2 ++
>  1 file changed, 2 insertions(+)
>
Paolo Pisati June 28, 2024, 9:12 a.m. UTC | #2
On Thu, Jun 27, 2024 at 09:52:37AM -0700, Noah Wager wrote:
> [Impact]
> 
> Commit: "UBUNTU: [Packaging] introduce do_lib_rust and enable it only on
> generic amd64" introduces the "do_lib_rust" variable in rules.d/ that
> avoids generating the extra rust package when unset/false. However, this
> is not checked when inserting a symlink to the linux-lib-rust package
> directory in the headers, resulting in a dangling symlink when rust is
> turned off. This can cause issues when e.g. building dkms modules
> against the headers, where the build will fail due to not finding the
> directory.
> 
> [How to reproduce it]
> 
> 1. Build linux-headers-* package for kernel with rust disabled (e.g.
> realtime)
> 2. Install (or extract) the package
> 3. View corresponding /usr/src/linux-headers-*/ directory
> 4. Observe /usr/src/linux-headers-*/rust -> ../linux-lib-rust-* but
> linux-lib-rust is never built and installed
> 
> [Fix]
> 
> Check the existing do_lib_rust variable is true before trying to symlink
> the linux-lib-rust files.
> 
> [Test plan]
> 
> 1. Apply the fix and rebuild the kernel headers packages
> 2. Install or inspect the headers
> 3. Ensure /usr/src/linux-headers-*/rust points to an existing directory
> 
> [Regression potential]
> 
> Very low. This is a simple fix, and it only impacts rust packaging for
> kernels with do_lib_rust unset/false so the visibility is low.

Acked-by: Paolo Pisati <paolo.pisati@canonical.com>
Noah Wager July 3, 2024, 3:50 p.m. UTC | #3
Yes, it would be good to get this into Noble. Should I submit the patch
again to Noble, or is that unnecessary?

Noah

On Fri, Jun 28, 2024 at 10:29:03AM +0200, Juerg Haefliger wrote:
> We also want this in Noble, no?
> 
> ...Juerg
> 
> 
> > [Impact]
> > 
> > Commit: "UBUNTU: [Packaging] introduce do_lib_rust and enable it only on
> > generic amd64" introduces the "do_lib_rust" variable in rules.d/ that
> > avoids generating the extra rust package when unset/false. However, this
> > is not checked when inserting a symlink to the linux-lib-rust package
> > directory in the headers, resulting in a dangling symlink when rust is
> > turned off. This can cause issues when e.g. building dkms modules
> > against the headers, where the build will fail due to not finding the
> > directory.
> > 
> > [How to reproduce it]
> > 
> > 1. Build linux-headers-* package for kernel with rust disabled (e.g.
> > realtime)
> > 2. Install (or extract) the package
> > 3. View corresponding /usr/src/linux-headers-*/ directory
> > 4. Observe /usr/src/linux-headers-*/rust -> ../linux-lib-rust-* but
> > linux-lib-rust is never built and installed
> > 
> > [Fix]
> > 
> > Check the existing do_lib_rust variable is true before trying to symlink
> > the linux-lib-rust files.
> > 
> > [Test plan]
> > 
> > 1. Apply the fix and rebuild the kernel headers packages
> > 2. Install or inspect the headers
> > 3. Ensure /usr/src/linux-headers-*/rust points to an existing directory
> > 
> > [Regression potential]
> > 
> > Very low. This is a simple fix, and it only impacts rust packaging for
> > kernels with do_lib_rust unset/false so the visibility is low.
> > 
> > Noah Wager (1):
> >   UBUNTU: [Packaging] Check do_lib_rust before linking Rust lib files
> > 
> >  debian/rules.d/2-binary-arch.mk | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
>
Stefan Bader July 4, 2024, 7:44 a.m. UTC | #4
On 03.07.24 17:50, Noah Wager wrote:
> Yes, it would be good to get this into Noble. Should I submit the patch
> again to Noble, or is that unnecessary?

Without seperate submission (which also needs a bug report) there will 
not be any Noble change. That is under the SRU process now.

-Stefan

> 
> Noah
> 
> On Fri, Jun 28, 2024 at 10:29:03AM +0200, Juerg Haefliger wrote:
>> We also want this in Noble, no?
>>
>> ...Juerg
>>
>>
>>> [Impact]
>>>
>>> Commit: "UBUNTU: [Packaging] introduce do_lib_rust and enable it only on
>>> generic amd64" introduces the "do_lib_rust" variable in rules.d/ that
>>> avoids generating the extra rust package when unset/false. However, this
>>> is not checked when inserting a symlink to the linux-lib-rust package
>>> directory in the headers, resulting in a dangling symlink when rust is
>>> turned off. This can cause issues when e.g. building dkms modules
>>> against the headers, where the build will fail due to not finding the
>>> directory.
>>>
>>> [How to reproduce it]
>>>
>>> 1. Build linux-headers-* package for kernel with rust disabled (e.g.
>>> realtime)
>>> 2. Install (or extract) the package
>>> 3. View corresponding /usr/src/linux-headers-*/ directory
>>> 4. Observe /usr/src/linux-headers-*/rust -> ../linux-lib-rust-* but
>>> linux-lib-rust is never built and installed
>>>
>>> [Fix]
>>>
>>> Check the existing do_lib_rust variable is true before trying to symlink
>>> the linux-lib-rust files.
>>>
>>> [Test plan]
>>>
>>> 1. Apply the fix and rebuild the kernel headers packages
>>> 2. Install or inspect the headers
>>> 3. Ensure /usr/src/linux-headers-*/rust points to an existing directory
>>>
>>> [Regression potential]
>>>
>>> Very low. This is a simple fix, and it only impacts rust packaging for
>>> kernels with do_lib_rust unset/false so the visibility is low.
>>>
>>> Noah Wager (1):
>>>    UBUNTU: [Packaging] Check do_lib_rust before linking Rust lib files
>>>
>>>   debian/rules.d/2-binary-arch.mk | 2 ++
>>>   1 file changed, 2 insertions(+)
>>>
>>
> 
> 
>