Package: libtiff-dev
Version: 4.5.0-2
Severity: important
X-Debbugs-Cc: [email protected]
User: [email protected]
Usertags: multiarch

To reproduce: try to install libtiff-dev:amd64 and libtiff-dev:i386
together.

Expected result: they are co-installable, as they used to be in 4.4.0-6
(they claim to be co-installable, by having Multi-Arch: same set).

Actual result:

> Preparing to unpack .../5-libtiff-dev_4.5.0-2_amd64.deb ...
> De-configuring libtiff-dev:i386 (4.4.0-6), to allow configuration of 
> libtiff-dev:amd64 (4.5.0-2) ...
> Unpacking libtiff-dev:amd64 (4.5.0-2) over (4.4.0-6) ...
> Preparing to unpack .../6-libtiff-dev_4.5.0-2_i386.deb ...
> Unpacking libtiff-dev:i386 (4.5.0-2) over (4.4.0-6) ...
> dpkg: error processing archive 
> /tmp/apt-dpkg-install-vWc1tH/6-libtiff-dev_4.5.0-2_i386.deb (--unpack):
>  trying to overwrite shared 
> '/usr/share/man/man3/TIFFCustomDirectory.3tiff.gz', which is different from 
> other instances of package libtiff-dev:i386

This appears to be happening because one man page mostly has ASCII "straight"
quote marks and apostrophes (U+0027 APOSTROPHE, U+0022 QUOTATION MARK)
and the other has Unicode directional quote marks such as
U+2019 RIGHT SINGLE QUOTATION MARK and U+201C LEFT DOUBLE QUOTATION MARK:

│ │   --- 
libtiff-dev_4.5.0-2_amd64/usr/share/man/man3/TIFFCustomDirectory.3tiff.gz
│ ├── +++ 
libtiff-dev_4.5.0-2_i386/usr/share/man/man3/TIFFCustomDirectory.3tiff.gz
│ │ ├── TIFFCustomDirectory.3tiff
│ │ │ @@ -120,15 +120,15 @@
│ │ │  EXIF and GPS tags, respectively.
│ │ │  .SH NOTES
│ │ │  .sp
│ │ │  Be aware
│ │ │  .INDENT 0.0
│ │ │  .IP \(bu 2
│ │ │  that until a directory is not written to file AND read back, the query
│ │ │ +functions won\(aqt retrieve the correct information!
│ │ │ -functions won’t retrieve the correct information!
│ │ │  .IP \(bu 2
│ │ │  that the newly created directory will not exist on the file till
│ │ │  \fI\%TIFFWriteDirectory()\fP, \fI\%TIFFCheckpointDirectory()\fP,
│ │ │  \fI\%TIFFFlush()\fP or \fI\%TIFFClose()\fP has been called.
│ │ │  .IP \(bu 2
│ │ │  that \fI\%TIFFCreateDirectory()\fP and \fI\%TIFFWriteDirectory()\fP
│ │ │  create a new directory, free the \fB*tif\fP structure and set up a new 
one.
│ │ │ @@ -167,15 +167,15 @@
│ │ │  .sp
│ │ │  A sequence to handle a second (or third) TIFF directory \- in this case
│ │ │  the GPS IFD \- is as follows:
│ │ │  .INDENT 0.0
│ │ │  .IP 1. 3
│ │ │  Create TIFF file
│ │ │  .IP 2. 3
│ │ │ +Complete the "normal" metadata
│ │ │ -Complete the “normal” metadata
│ │ │  .IP 3. 3
│ │ │  Set the tag for the custom directory with a “dummy” value in order to
│ │ │  get the tag reserved. The final value will be inserted lateron. This
│ │ │  prevents the main directory from being written to the file again at an
│ │ │  additional area, leaving the first memory area unused:
│ │ │  .UNINDENT
│ │ │  .INDENT 0.0

One very easy way to work around this would be to move the man pages
for the API into the Architecture: all libtiff-doc binary package,
which would ensure that any present or future reproducibility issues in
the man pages can never break multiarch co-installation, and would also
reduce the size of libtiff-dev by about 15%.

I don't know why this is happening, and I suspect it might be
non-deterministic. Looking at reproducible-builds, the most recent
builds of tiff_4.5.0-1_i386 in experimental had similar differences,
but in the HTML manual in the -doc package, rather than the man pages in
the -dev package. Similarly, the most recent builds of tiff_4.5.0-1_arm64
had quoting differences in the HTML *and* the man pages.

I find it particularly odd that in the man page I quoted, *some* of the
quote marks are Unicode in both cases, but some of them vary.

The man pages are generated by sphinx, so I would guess that the root
cause might be a sphinx issue? The only differences in installed packages
between the amd64 and i386 buildds when building 4.5.0-2 were:

-binutils-x86-64-linux-gnu_2.39.90.20230104-1
+binutils-i686-linux-gnu_2.39.90.20230104-1
-file_1:5.44-1
+file_1:5.41-4
-liblsan0_12.2.0-13
-libmagic-mgc_1:5.44-1
+libmagic-mgc_1:5.41-4
-libmagic1_1:5.44-1
+libmagic1_1:5.41-4
+libtsan2_12.2.0-13
-tar_1.34+dfsg-1.1
+tar_1.34+dfsg-1

none of which seem like things that should affect how sphinx generates man
pages. Both buildds had LC_ALL=C.UTF-8 and no other locale-related
environment variables.

Full buildd logs for the versions I tried to install, in case there are
any clues there:
https://buildd.debian.org/status/fetch.php?pkg=tiff&arch=amd64&ver=4.5.0-2&stamp=1673395932&raw=0
https://buildd.debian.org/status/fetch.php?pkg=tiff&arch=i386&ver=4.5.0-2&stamp=1673397288&raw=0

    smcv

Reply via email to