[Pkg-pascal-devel] Bug#806488: Bug#806488: view3dscene: FTBFS: v3dsceneraytrace.pas Error: Identifier not found "TImageFormat"

Michalis Kamburelis michalis.kambi at gmail.com
Sun Nov 29 06:52:48 UTC 2015


Paul Gevers wrote:
> This makes me wonder, does fpc have any reasonable symbols
> tracking mechanism? I guess it does (at least in ppu files), so
> should we extend the Debian tooling dh_makeshlibs/dh_shlibsdeps to
> be able to handle the fpc situation?

ppu files indeed hold the 100% information about unit's interface
(what symbols are exported, what other units are used etc.).

You could probably use this information to automatically detect
dependencies, or detect when something from the API was removed. But
this would need writing and maintaining the tool to do this, which
seems non-trivial, at least if I understand the desired usage. To
check for API compatibility breakage (like in this case) --- it seems
easier to just attempt recompiling and see what is required/broken:)

Hm, although to detect dependencies between Pascal programs/libraries,
using

  ppudump *.ppu | grep 'Uses unit'

may be a useful solution... Going only a little further, this trivial
snippet:

  find . -iname *.ppu -execdir ppudump '{}' ';' | grep 'Uses unit' |
awk '{ print $3 }' | sort -u

tells you what Pascal units are used by the project at a glance. Which
I guess would be helpful to automatically fill what Debian packages
'fp-units-xxx' should be required.

> 
>> The view3dscene sources in SVN are of course adjusted since a
>> long time, but there hasn't been a view3dscene release since some
>> time.
> 
> If you don't want to release newer version for these kind of 
> incompatibilities, or if you want to go to something fully based
> on version control versions, than let's discuss. We can come up
> with working schemes if you want. I am not strict on having
> upstream tar balls (although it is nice that people can check the
> checksum of the Debian tar ball versus the one provided by
> upstream). So if you are more for rolling release, we could do
> that.
> 

I think the current approach is OK. If you take the latest stable
release of Castle Game Engine and view3dscene, they *should* be
compatible, that's my goal. I always make extensive view3dscene tests
together with CGE release (as they are related quite closely), so I
always should release view3dscene with CGE.

I simply forgot to do it this time... it's my human error, not a
system error, I say:)


> Could you at least communicate these kind of changes pro-active on
> this list or somewhere in your own domain where we can pick it up
> (via push communication). Or just a clear "THIS BREAKS API" note in
> some changelog, I scan all the changed between two versions during
> import of the tar ball.

I try to document everything in the release notes. But sometimes I cut
off from release notes changes that I consider "tiny", since the
release notes are usually too long anyway.

In case of my own programs, and *especially* in case of view3dscene,
they often use obscure APIs of the engine, APIs that (I suspect) are
not really used widely. That was the case with TImageFormat, and
that's why it slipped from the changelog. Small API breakage that I
thought would go unnoticed... until it got noticed:)

Point taken, I'll try to communicate such breakage next time! And
also, to always keep latest release CGE and view3dscene releases
compatible. I can't avoid the fact that they are very tightly related
(that's a feature actually, view3dscene being a "swiss army knife of
the engine", important tool to inspect 3D and 2D files). But I always
update them simultaneously in SVN, and so they should also be released
together.

> 
>> I'm attaching a minimal patch that, when applied to view3dscene
>> 3.15.0 sources, makes them compile with Castle Game Engine
>> 5.2.0:) Tested with FPC 2.6.4.
> 
> If possible, could you check also with 3.0.0. That was released
> last week and I am preparing the upload (to experimental) still.
> When we verified all reversed dependencies (help would be nice), I
> want to ask for a transition slot.
> 

Tested: CGE 5.2.0 with view3dscene 3.15.0 (with my patched attached
earlier) compile fine with FPC 3.0.0, on Linux x86_64 at least:)

Same for CGE SVN with view3dscene SVN.

Regards,
Michalis



More information about the Pkg-pascal-devel mailing list