Hi Volkert,
On 19.03.2017 12:46, Volkert wrote:
Hello,
After quite a bit of fruitless Googling for an answer first, I initially
posted this in the VirtualBox forums, where I was referred to this
mailing list.
My question is the following:
What is the correct way to assemble a single "fat" (as in
multi-platform) extension pack, just like Oracle managed to do with its
closed-source extension pack?
The correct way is whatever achieves the result... Oracle is using a
complex staged build setup for building all necessary binaries from one
single source tree (a good part of the logic is in the root directory
Makefile.kmk, but don't take that as the only solution). Use whatever
solution suits you.
If I build one of the example extension packs bundled with the
VirtualBox OSE source code, such as the bus mouse extension pack or the
VNC extension pack, the result is indeed a .vbox-extpack file, but one
that has been built for one target platform only and that can therefore
only be installed on a VirtualBox version on the same platform. In other
words, a .vbox-extpack file built in Linux cannot be installed in a
VirtualBox installation on Windows. Of course I understand that I would
have to compile my extension pack(s) on each platform separately, but so
far, I haven't been able to find any standard script that would bundle
platform-specific .vbox-extpack files into a single "fat" multi-platform
.vbox-extpack file for convenient distribution, like Oracle's
PUEL-licensed extension pack.
There's no such script. Our Makefile.kmk is collecting the list of
files, uses it to create the manifest and finally creates a .tar.gz of
the whole lot. Not rocket science, and the logic is *exactly* the same
as in the BusMouseSample directory. So you wouldn't gain any additional
knowledge from the closed source Makefile.kmk
You just need to build things for all architectures, and set
VBOX_WITH_EXTPACK_OS_ARCHS appropriately (it defaults to just one arch,
the current one).
Perhaps such a script already exists in the code base in plain sight and
I just missed it, but regardless, I hope someone can help me out with this.
The sample Makefile.kmk does everything, so maybe that's the "script"
you're looking for.
Also, if there are any additional concerns to be aware of when building
such multi-platform extension packs, such as the signing of binary files
and archives with certificates and such, I would be happy to learn about
those as well.
Signing is definitely an issue on Windows, and it works just the usual
way. Don't see any reason to repeat everything from the Microsoft etc.
docs, especially because we don't use the standard way due to internal
Oracle process reasons, and explaining the Oracle process is entirely
useless for anyone not at Oracle.
If you run into any kind of signature verification issues (in some areas
VirtualBox is extremely paranoid, more paranoid than the OS itself) then
let us know.
Hope it helps... curious what kind of extpack is going to land soon :D
Klaus
Thank you kindly in advance!
Volkert
_______________________________________________
vbox-dev mailing list
vbox-dev@virtualbox.org
https://www.virtualbox.org/mailman/listinfo/vbox-dev