Thursday 28 February 2019

Re: arch triplet: "-" <> "_"

Hi Andreas,

On Wed, Feb 27, 2019 at 02:08:29PM -0300, Andreas Hasenack wrote:
> I'm working on the talloc package, and it installs this file when
> building python3 bindings:

> usr/lib/x86_64-linux-gnu/libpytalloc-util.cpython-37m-x86-64-linux-gnu.so.2.1.16

> I can't put that literally in a d/<pkg>.install file, because of the
> architecture. The path component after usr/lib can be replaced by "*",
> but using "*" for the bit in the filename seems it could match
> something else by mistake:

> usr/lib/*/libpytalloc-util.cpython-37m-*.so.*

> So I thought about using dh-exec, just like
> https://wiki.debian.org/Multiarch/Implementation#Dynamic_debian.2F.2A_files
> suggests, but that didn't work.

> The silly problem is that the triplet x86_64-linux-gnu as a directory
> is not the same triplet used in the filename: x86_64-linux-gnu !=
> x86-64-linux-gnu ("-" vs "_")

> Is there a neat solution to this, other than using "*" for the architecture?

No, since x86-64-linux-gnu is not a standard name for the architecture. I
would suggest that you instead simply use the dh-exec substitution for the
first part of the path, and a glob for the second:

usr/lib/${DEB_HOST_MULTIARCH}/libpytalloc-util.cpython-37m-*.so.*

That should minimize any false-positive matches of the glob.

--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer https://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org