** Description changed:

  The ELF package note metadata introduced in dpkg 1.22.6ubuntu11 (refined
  in 1.22.6ubuntu14) can cause this failure:
  
  ```
  gcc fatal error: environment variable ‘DEB_HOST_ARCH’ not defined
  ```
  
  This happens when the `-specs=/usr/share/dpkg/elf-package-
  metadata.specs` parameter is set but the needed environment variables
  are not set. Cases:
  
  1. Only the LDFLAGS is queried from dpkg-buildflags. Affected source
  packages builds: python3.12, openjdk-21, cdbs (causing dvbstreamer and
  rp-pppoe fail to build)
  
  2. autopkgtests
+ 
+ 3. debugging a crash of an application build with the -spec parameter
  
  This approach is too fragile. An alternative approach would be to specify the 
`--package-metadata` linker flag directly. The problem with that approach is 
that the curly brackets and quotation marks need to be escaped. Example 
failure: Building dpkg would add this parameter to the LDFLAGS:
  ```
  
-Wl,--package-metadata,{"type":"deb","os":"ubuntu","name":"dpkg","version":"1.22.6ubuntu15","architecture":"amd64"}
  ```
  The following configure script call (non-relevant parameters deleted):
  ```
  $ gcc 
-Wl,--package-metadata,{type:deb,os:ubuntu,name:dpkg,version:1.22.6ubuntu15,architecture:amd64}
  /usr/bin/ld: cannot find {type:deb: No such file or directory
  /usr/bin/ld: cannot find os:ubuntu: No such file or directory
  /usr/bin/ld: cannot find name:dpkg: No such file or directory
  /usr/bin/ld: cannot find version:1.22.6ubuntu15: No such file or directory
  /usr/bin/ld: cannot find architecture:amd64}: No such file or directory
  ```
  
  Proposed solution: Add support for an `--escaped-package-metadata` parameter 
to the linkers that takes an URL encoded (RFC 3986) parameter. Example:
  ```
  
-Wl,--encoded-package-metadata,%7B%22type%22:%22deb%22%2C%22os%22:%22ubuntu%22%2C%22name%22:%22dpkg%22%2C%22version%22:%221.22.6ubuntu15%22%2C%22architecture%22:%22amd64%22%7D
  ```

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2071468

Title:
  ELF package metadata failure: environment variable ‘DEB_HOST_ARCH’ not
  defined

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/asymptote/+bug/2071468/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to