[Pkg-pascal-devel] Bug#997940: view3dscene: FTBFS with fpc 3.2.2

Abou Al Montacir abou.almontacir at sfr.fr
Sat Oct 30 21:09:10 BST 2021


Hi Paul,

On Sat, 2021-10-30 at 15:21 +0200, Paul Gevers wrote:
> So all libraries need a Depends on a binary from src:fpc with an upper
> limit (generated during the build).
In some sense, this is done as any FPC library should depend on RTL package fp-
units-rtl-${UPSTREAM_VERSION} with >= condition.
This implies that if 3.2.2 is introduced instead of 3.2.0 then the library in
the repository is not usable anymore.
However in practice, the upgrade of FPC will leave old version installed and
thus users will be able to continue using old library with old compiler.
>  In that way, the Debian
> infrastructure knows that a rebuild (or potentially manual action) is
> needed. We don't want it to be too tight.
I don't know exactly hos Debian infrastructure decides to rebuild or not a
package, but what I can imagine is that view3dscene build depends on castle-
engine (which depends on fp-units-rtl-3.2.0) and on fp-compiler.
In this case fp-compiler will be pulled as 3.2.2 and will drag fp-units-rt-3.2.2
while fp-units-rtl-3.2.0 will be dragged by direct dependency.
In this case, the build system thinks it has got all dependencies but in
reality, ppu files of castle-engine, that are compiled with fp-compiler 3.2.0
will net be usable by 3.2.2 compiler.
>  When you said "any new version
> of FPC" do you mean each patch level too, or on only minor level? How
> about Debian new uploads?
For a ppu to be used by the compiler is should:
   1. have the same ppu version as the one supported by the compiler. This may
      not be the case between different upstream releases.
   2. be compiled with an RTL version that have the very same interface for used
      units. If any unit from RTL changed interface, then the compiler will fail
      to use it and will ask for recompiling the library unit that is using it.
      It is important to note that changes of the code of any inline function is
      considered as an interface change (think as in C inlines functions are in
      .h files).
   3. be compiled using -Ur flag to avoid the compiler to try to recompile it if
      implementation is changed (this happens usually after a bug fix).

When we upload a new Debian version, we are generally changing implementation.
This is falls under the case number 3. We should be safe and would not need to
recompile anything.

I hope this makes the situation clearer.
-- 
Cheers, Abou Al Montacir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-pascal-devel/attachments/20211030/a8b094c2/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: This is a digitally signed message part
URL: <http://alioth-lists.debian.net/pipermail/pkg-pascal-devel/attachments/20211030/a8b094c2/attachment-0001.sig>


More information about the Pkg-pascal-devel mailing list