Ok it took me long enough to get this here, but I did add some more information about what you need to get nautilus compiled to the HACKING file. I know it is a lot of stuff to get out of CVS, but within two months it will be much less and will be fairly simple. I have started the project to minimize the number packages that need to come that way, but it will take some time, as I have other things to worry about. I also will need to coordinate a release of some modules as there are some bug fixes that nautilus needs from packages like ORBit.
OK, todays topic on build stuff is what to do about packages!
One interesting problem with open source development is you may have to switch back and forth between three different ways of recieving code fairly frequently. The three majore forms are.
- Release Tar Balls
- System Package
So the properties of a module object would be.
- Simply a way to reference the module.
- A number to reference what release this
- Build Prefixes
- arguments to the configure command
- Setup Script
- a set of commands to prepare a build area. That
to the module.
At the moment I don't warrent the confusion of additional logic in this object to handle how you build, I am just going to leave that to the configure() and build().
Now the tricky part is how to allow the user to be able to override parts of the object, in a simple config file. Which brings up the issue, should I create as of yet a new configuration file format? Or should I make it easy for it to be interpreted by my parser. I know all the user interface guys say make it easy for the user! But If I make a new format then they have to learn somthing new! Most people knkow how to write basic perl these days. Also if I make it easily machine interperatable then extending it may be easier.
It is amazing how small the software world is. Just a couple years ago, everything was made by mysterious people elsewhere, now I have met the people who wrote most of the software I use. And it seems the web just extends and fills in the gaps. You take a new job and meet another 20.
- the name in the repository
- basename of tarball
- system package name