[Pkg-pascal-devel] Castle Game Engine build tool

Michalis Kamburelis michalis.kambi at gmail.com
Sun Feb 14 23:59:38 UTC 2016


>> It's all open-source and reproducible work, and could be rebuild by
>> anyone or even automated. But I don't think it's in Debian's
>> scope/interest to do it?
>
> If this can be done with tools in Debian, I don't object too much. But I
> really appreciate it to have build targets (maybe not run by default
> thought) such that it can be VERIFIED that it can be rebuild. If we
> can't build with tools in Debian, we need to strip (see below).

Some of them possibly can be recompiled with tools in Debian, although
I think nobody tried.

For Windows libraries: Compiling Windows DLLs requires Windows
compilers --- Cygwin or MinGW environment. But Debian does package
mingw. So maybe it is possible... although I did never try using mingw
Debian packages to compile DLLs.

Having a build targets in the Makefile (or scripts) to redo this
compilation (under any OS) would be *great*, yeah:) But again it needs
work, that simply was not done a long time ago when we gathered these
libraries. Some of them were recompiled manually (I was using MinGW on
Windows), some downloaded from trusted sources (like SourceForge
gnuwin32 project, http://gnuwin32.sourceforge.net/ ). I very agree
that it's important to be able to reproduce it (it would also allow us
to test and upgrade these libraries with ease), but it's just not done
*yet*.

Someone would have to go now and try to recompile them, hunting for
sources and compilation instructions for all of them. And then,
recording this in a script. It's no fun (it's far from developing an
Object Pascal cool game engine), that's why noone has done it yet. I
personally probably also will not do it very soon... even though I
agree it's important to do it. Sooner or later it will be necessary
anyway, and I placed it on my long TODO list.

For Android libraries, compiling them requires Android NDK, which is
not in Debian (yet?). I actually wrote a simple script to
clone+recompile it:
http://svn.code.sf.net/p/castle-engine/code/trunk/castle_game_engine/tools/build-tool/data/android/integrated-components/sound/jni/compile_openal.sh
.

>> I don't think you're interested in
>> maintaining Windows library versions within Debian:) These libraries
>> are useful only when packaging the game to Windows or Android. If you
>> want to use them on Linux, you will probably want also cross-compiler
>> stuff for Windows/Android, which is not provided in Debian anyway.
>> (Even getting Android SDK in Debian is a task in progress as far as I
>> know, https://wiki.debian.org/AndroidTools ).
>
> Do I understand correctly that we could build the Windows/Android
> libraries, but nobody running plain Debian could use them? Then I don't
> think it is useful now to actually include them.

That's true. Since plain Debian doesn't include FPC cross-compiler to
Windows or Android (and since Debian is not Windows:), people using
plain Debian would not find these libraries useful.

That's why I agree that it's probably simplest for Debian to just remove them:)

>
>> So it seems to me that removing these libraries from Debian
>> distribution, on Debian side, would be simplest. Just remove the
>> mentioned dirs
>>
>>   tools/build-tool/data/external_libraries/
>>   tools/build-tool/data/android/integrated-components/sound/
>
> Ok. And if it can be easily verified that these libraries can be build,
> than I don't object too much of having them in your tar ball. As long as
> it's free and can be build with tools in Debian, than I have no strong
> objections having them in the SOURCE. We will just not ship them.

As mentioned above: they are all open-source and it should be
possible. But *easily* verifying that it's possible... not yet,
unfortunately. Contributions are of course very welcome, but I doubt
that compiling Windows libraries is fun for anyone here:)

>
>> Removing them on my (CGE) side would mean that I prepare and upload a
>> special tar.gz that is really only for Debian usage...
>
> I see your point. So let's not do it. We can strip on Debian side if we
> need to. Then, we just need to check carefully with ever new source from
> you. Would it be too much to ask to make and maintain a target to strip
> convenience copies from the tree, such that we can check that we
> stripped everything that needs to be stripped?

You mean like a target in the Makefile "strip-precompiled-libraries",
that simply does "rm -Rf ..." on the necessary directories? Sure,
that's very doable, done:)

Regards,
Michalis



More information about the Pkg-pascal-devel mailing list