[haiku-development] Re: Questions about build system and a few tools

  • From: "Ingo Weinhold" <ingo_weinhold@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sat, 02 Apr 2011 17:12:59 +0200

On Sat, 2 Apr 2011 16:21:40 +0200 Corneliu-Claudiu Prodescu 
<cprodescu@xxxxxxxxxxxxxx> wrote:
> I am new to the project and I want to get involved (as part of GSOC or
> not).

Welcome!

> I have a few questions regarding:
> * jam build system :
>    - in file build/jam/FileRules at line 243 : What effect has this
> (i.e. where is INITIALIZED variable held). Assuming we start the build
> process... it reaches that... then we stop it and restart. How does
> the system know that INITIALIZED on $(directory) is already 1. (I'm
> asking because I believe there is a flaw there... I'll get back with a
> bug report ASAP).

INITIALIZED is a jam variable. It is not persistent in any way. If you 
terminate and restart jam any variables save for built-in variables will be 
unset again and the built-ins will have their default value.

> * package management system. From what I read, there isn't exactly
> such a thing, but there are pseudo-packages which include install /
> uninstall scripts. Where could I find a sample?

The package format (*.pkg) we inherited from BeOS works a bit like that. 
There's a PackageInstaller application included with Haiku, which can 
extract/install those packages. The format doesn't have any future though; we 
support it only for compatibility reasons.

The "optional packages" that you might have encountered in the context of the 
build system are simple zip files. They don't have any install/uninstall 
scripts, but include a special description file (.OptionPackageDescription) 
which contains a few meta information like copyrights and licensing data. Per 
convention they are unzipped to the root directory of the boot volume, though 
there might be a few exceptions. The mechanism was initially only intended for 
the build system (to outsource third party software, slimming down the 
repository size and build times), but a script named installoptionalpackage has 
since been added to install optional packages in a running system.

Finally there is work being done towards a real package management solution. 
Oliver Tappe has been working on it recently and you can read some more about 
it in his blog [1].

> * "file" equivalent command. I've downloaded the system, built a VM
> image and noticed the command file is missing... Is there an
> equivalent or have I done something wrong?

The command might be missing. I don't know whether it is part of any GNU 
utilities package and we don't have that package or have just accidentally or 
intentionally disabled the command. I don't think there's any equivalent.

CU, Ingo

[1] http://haiku-os.org/blog/zooey/

Other related posts: