Bug#1098253: onevpl-intel-gpu: please make the build reproducible

2026-05-13 Thread Vagrant Cascadian
On 2026-05-13, Vagrant Cascadian wrote:
> I have uploaded an NMU to DELAYED/10 and pushed to the git repository on
> salsa.

I apparently uploaded directly by accident! I dcut within a minute or
two, but I guess it processed it already... Sorry about the that!

live well,
  vagrant
  
> diff -Nru onevpl-intel-gpu-26.1.2/debian/changelog 
> onevpl-intel-gpu-26.1.2/debian/changelog
> --- onevpl-intel-gpu-26.1.2/debian/changelog  2026-02-23 23:34:47.0 
> -0800
> +++ onevpl-intel-gpu-26.1.2/debian/changelog  2026-05-13 14:59:34.0 
> -0700
> @@ -1,3 +1,11 @@
> +onevpl-intel-gpu (26.1.2-1.1) unstable; urgency=medium
> +
> +  * Non-maintainer upload.
> +  * debian/rules: Pass a deterministic value for MFX_SYSTEM in
> +dh_auto_configure override.  (Closes: #1098253)
> +
> + -- Vagrant Cascadian   Wed, 13 May 2026 
> 14:59:34 -0700
> +
>  onevpl-intel-gpu (26.1.2-1) unstable; urgency=medium
>  
>* New upstream release.
> diff -Nru onevpl-intel-gpu-26.1.2/debian/rules 
> onevpl-intel-gpu-26.1.2/debian/rules
> --- onevpl-intel-gpu-26.1.2/debian/rules  2026-02-23 23:31:23.0 
> -0800
> +++ onevpl-intel-gpu-26.1.2/debian/rules  2026-05-13 14:57:21.0 
> -0700
> @@ -7,7 +7,8 @@
>  override_dh_auto_configure:
>   dh_auto_configure -- \
>   -DBUILD_TESTS=ON \
> - -DBUILD_TOOLS=ON
> + -DBUILD_TOOLS=ON \
> + -DMFX_SYSTEM=Debian
>  
>  %:
>   dh $@ --builddir build/


signature.asc
Description: PGP signature


Bug#1098253: onevpl-intel-gpu: please make the build reproducible

2026-05-13 Thread Vagrant Cascadian
On 2026-05-02, Vagrant Cascadian wrote:
> On 2025-02-18, Chris Lamb wrote:
>> This is because the binary embeds the kernel version into one of the
>> binaries via the MFX_BUILD_INFO macro:
>>
>> │ │ │ ├── ./usr/lib/x86_64-linux-gnu/libmfx-gen.so.1.2.13
> ...
>> │ │ │ │ │ -mediasdk_build_info: Linux-6.12.9+bpo-amd64 6.12.9+bpo-amd64 | 
>> GNU 14.2.0 | glibc 2.40
>> │ │ │ │ │ +mediasdk_build_info: Linux-6.1.0-31-amd64 6.1.0-31-amd64 | GNU 
>> 14.2.0 | glibc 2.40
...
> I *thought* this looked familiar!
>
>   https://bugs.debian.org/1006455
>
> With the newer upstream version, It looks like this can be easily fixed
> in debian/rules with:
>
> diff --git a/debian/rules b/debian/rules
> index 47129d2..95146a9 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -7,7 +7,8 @@
>  override_dh_auto_configure:
> dh_auto_configure -- \
> -DBUILD_TESTS=ON \
> -   -DBUILD_TOOLS=ON
> +   -DBUILD_TOOLS=ON \
> +   -DMFX_SYSTEM=Debian
>
>  %:
> dh $@ --builddir build/
>
> ... or some other deterministic value for MFX_SYSTEM.
>
> At the moment, tests.reproducible-builds.org is not varying the kernel
> version, so it is not detecting this issue, but I can reproduce the
> issue locally. As soon as someone tries to reproduce a build with a
> slightly different kernel version, this will trigger the reproducibility
> issue.
>
> I would like to fix this by performing an NMU with the above patch,
> unless the maintainers would like to tackle this some other way?

I have uploaded an NMU to DELAYED/10 and pushed to the git repository on
salsa.

debdiff attached.

live well,
  vagrant
diff -Nru onevpl-intel-gpu-26.1.2/debian/changelog 
onevpl-intel-gpu-26.1.2/debian/changelog
--- onevpl-intel-gpu-26.1.2/debian/changelog2026-02-23 23:34:47.0 
-0800
+++ onevpl-intel-gpu-26.1.2/debian/changelog2026-05-13 14:59:34.0 
-0700
@@ -1,3 +1,11 @@
+onevpl-intel-gpu (26.1.2-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debian/rules: Pass a deterministic value for MFX_SYSTEM in
+dh_auto_configure override.  (Closes: #1098253)
+
+ -- Vagrant Cascadian   Wed, 13 May 2026 
14:59:34 -0700
+
 onevpl-intel-gpu (26.1.2-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru onevpl-intel-gpu-26.1.2/debian/rules 
onevpl-intel-gpu-26.1.2/debian/rules
--- onevpl-intel-gpu-26.1.2/debian/rules2026-02-23 23:31:23.0 
-0800
+++ onevpl-intel-gpu-26.1.2/debian/rules2026-05-13 14:57:21.0 
-0700
@@ -7,7 +7,8 @@
 override_dh_auto_configure:
dh_auto_configure -- \
-DBUILD_TESTS=ON \
-   -DBUILD_TOOLS=ON
+   -DBUILD_TOOLS=ON \
+   -DMFX_SYSTEM=Debian
 
 %:
dh $@ --builddir build/


signature.asc
Description: PGP signature


Bug#1098253: onevpl-intel-gpu: please make the build reproducible

2026-05-02 Thread Vagrant Cascadian
On 2025-02-18, Chris Lamb wrote:
> Whilst working on the Reproducible Builds effort [0], we noticed that
> onevpl-intel-gpu could not be built reproducibly.
>
> This is because the binary embeds the kernel version into one of the
> binaries via the MFX_BUILD_INFO macro:
>
> │ │ │ ├── ./usr/lib/x86_64-linux-gnu/libmfx-gen.so.1.2.13
...
> │ │ │ │ │ -mediasdk_build_info: Linux-6.12.9+bpo-amd64 6.12.9+bpo-amd64 | GNU 
> 14.2.0 | glibc 2.40
> │ │ │ │ │ +mediasdk_build_info: Linux-6.1.0-31-amd64 6.1.0-31-amd64 | GNU 
> 14.2.0 | glibc 2.40

> A patch is attached that ensures that this value is not passed to the
> compiler, resulting in "no build info" (via an #ifndef already in the
> code).
>
> An alternative approach is perhaps adding:
>
>export DEB_CPPFLAGS_MAINT_APPEND = -DMFX_BUILD_INFO="no build info"
>
> ... to debian/rules, although this will result in "redefinition"
> warnings in the build log as it will cause multiple -DMFX_BUILD_INFO="[…]"
> comand-line arguments.

I *thought* this looked familiar!

  https://bugs.debian.org/1006455

With the newer upstream version, It looks like this can be easily fixed
in debian/rules with:

diff --git a/debian/rules b/debian/rules
index 47129d2..95146a9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,7 +7,8 @@
 override_dh_auto_configure:
dh_auto_configure -- \
-DBUILD_TESTS=ON \
-   -DBUILD_TOOLS=ON
+   -DBUILD_TOOLS=ON \
+   -DMFX_SYSTEM=Debian

 %:
dh $@ --builddir build/

... or some other deterministic value for MFX_SYSTEM.

At the moment, tests.reproducible-builds.org is not varying the kernel
version, so it is not detecting this issue, but I can reproduce the
issue locally. As soon as someone tries to reproduce a build with a
slightly different kernel version, this will trigger the reproducibility
issue.

I would like to fix this by performing an NMU with the above patch,
unless the maintainers would like to tackle this some other way?

live well,
  vagrant


signature.asc
Description: PGP signature


Bug#1098253: onevpl-intel-gpu: please make the build reproducible

2025-02-18 Thread Chris Lamb
Source: onevpl-intel-gpu
Version: 24.3.4-1
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: kernel
X-Debbugs-Cc: [email protected]

Hi,

Whilst working on the Reproducible Builds effort [0], we noticed that
onevpl-intel-gpu could not be built reproducibly.

This is because the binary embeds the kernel version into one of the
binaries via the MFX_BUILD_INFO macro:

│ │ │ ├── ./usr/lib/x86_64-linux-gnu/libmfx-gen.so.1.2.13
│ │ │ │┄ File has been modified after NT_GNU_BUILD_ID has been applied.
│ │ │ │ ├── readelf --wide --notes {}
│ │ │ │ │ @@ -1,4 +1,4 @@
│ │ │ │ │  
│ │ │ │ │  Displaying notes found in: .note.gnu.build-id
│ │ │ │ │OwnerData size Description
│ │ │ │ │ -  GNU  0x0014NT_GNU_BUILD_ID (unique build 
ID bitstring) Build ID: 97c4c33f55d6d62f6a9d25fb95e901bca16c68f0
│ │ │ │ │ +  GNU  0x0014NT_GNU_BUILD_ID (unique build 
ID bitstring) Build ID: b144d3a34b074cb0ee714b4ab17c53b2059e6a71
│ │ │ │ ├── strings --all --bytes=8 {}
│ │ │ │ │ @@ -6387,15 +6387,15 @@
│ │ │ │ │  MFX_ERR_INCOMPATIBLE_VIDEO_PARAM
│ │ │ │ │  MFX_WRN_INCOMPATIBLE_VIDEO_PARAM
│ │ │ │ │  ./_studio/mfx_lib/shared/src/libmfxsw.cpp
│ │ │ │ │  APIImpl_MFXReleaseImplDescription
│ │ │ │ │  APIImpl_MFXQueryImplsDescription
│ │ │ │ │  MFXVideoCORE_SetBufferAllocator
│ │ │ │ │  mediasdk_libva_version: 1.22.0
│ │ │ │ │ -mediasdk_build_info: Linux-6.12.9+bpo-amd64 6.12.9+bpo-amd64 | GNU 
14.2.0 | glibc 2.40
│ │ │ │ │ +mediasdk_build_info: Linux-6.1.0-31-amd64 6.1.0-31-amd64 | GNU 
14.2.0 | glibc 2.40
│ │ │ │ │  mediasdk_copyright: Copyright(c) 2007-2020 Intel Corporation
│ │ │ │ │  mediasdk_product_name: Intel(R) Media SDK
│ │ │ │ │  APIImpl_MFXVideoCORE_SyncOperation
│ │ │ │ │  ./_studio/mfx_lib/shared/src/libmfxsw_async.cpp

A patch is attached that ensures that this value is not passed to the
compiler, resulting in "no build info" (via an #ifndef already in the
code).

An alternative approach is perhaps adding:

   export DEB_CPPFLAGS_MAINT_APPEND = -DMFX_BUILD_INFO="no build info"

... to debian/rules, although this will result in "redefinition"
warnings in the build log as it will cause multiple -DMFX_BUILD_INFO="[…]"
comand-line arguments.

 [0] https://reproducible-builds.org/


Regards,

-- 
  ,''`.
 : :'  : Chris Lamb
 `. `'`  [email protected] / chris-lamb.co.uk
   `-


--- a/debian/patches/reproducible-build.patch   1970-01-01 01:00:00.0 
+0100
--- b/debian/patches/reproducible-build.patch   2025-02-18 11:36:27.514956436 
+
@@ -0,0 +1,14 @@
+Description: Make the build reproducible
+Author: Chris Lamb 
+Last-Update: 2025-02-18
+
+--- onevpl-intel-gpu-24.3.4.orig/builder/FindGlobals.cmake
 onevpl-intel-gpu-24.3.4/builder/FindGlobals.cmake
+@@ -247,7 +247,6 @@ target_compile_definitions(mfx_common_pr
+   INTERFACE
+ ${API_FLAGS}
+ ${WARNING_FLAGS}
+-MFX_BUILD_INFO=\"${BUILD_INFO}\"
+ MFX_API_VERSION=\"${API_VER_MODIF}\"
+ MFX_GIT_COMMIT=\"${git_commit}\"
+ MEDIA_VERSION_STR=\"${MEDIA_VERSION_STR}\"
--- a/debian/patches/series 2025-02-18 11:17:28.157549783 +
--- b/debian/patches/series 2025-02-18 11:36:26.514952356 +
@@ -1 +1,2 @@
 #placeholder
+reproducible-build.patch