On 2/23/08, Alec Warner <[EMAIL PROTECTED]> wrote: > On 2/20/08, Felipe Contreras <[EMAIL PROTECTED]> wrote: > > Hi gentooists, > > > > I've been reading news sites about some changes happening in Gentoo > > and I thought it might be a good time to submit some ideas I've been > > baking for several years. > > > > I come from a Linux From Scratch background, I like the feeling of > > knowing every single corner of my system and the fact that there isn't > > anything that I don't want or need. However, typing every single > > command by hand is far from ideal, so at first I started writing some > > scripts and eventually I wrote a build system that suited my needs. I > > did it in bash for several reasons. > > > > After a while I realized bash wasn't exactly the best language to > > write such thing. Mainly because: > > > > a) The code ends up with a lot of stuff for handling strings properly > > (like escaping sequences) > > > Yes this is annoying > > > > b) Error are difficult to handle since bash doesn't have exceptions > > > I disagree here: most errors are fatal anyway any non fatal errors can > be printed and saved via the elog facility. > > > > c) Persistent information is difficult to achieve (no database stuff) > > > How is this a bash limitation? Most languages don't have 'database > stuff' built in. > I don't see how saving stuff to files is much different than the env > dumping we do in bash?
Er, I meant saving stuff to databases ;) > > > > d) Package information is difficult to fetch/store (no objects/struct) > > > Yes. > > > > > > A more featured language could allow for example: filtered output, > > exception handling->state storage->resuming. > > > > But the big deal is with the package definition, recently I learned > > about Domain Specific Languages, and I think that is the best option. > > > > A new dsl allows many interesting features in the package definition > > itself like: inheritance, exceptions, arrays, hash tables, objects, > > modules, documentation, information messages, etc. > > > Note that most languages allow for the same things...so why would we > author our own language? What runtime would it use? > > > > > > Take this example: > > > > package Binutils < Gnu > > definition > > @version = "2.17" > > @name = "binutils" > > super() # run the Gnu definition stuff > > > > @config_opts = "--disable-nls --with-sysroot=\"#{$sys_root}\" > > --enable-shared --disable-multilib" > > end > > > > steps > > build > > cd #{$top_build_dir} > > mkdir -p [EMAIL PROTECTED] > > cd [EMAIL PROTECTED] > > :configure "script" => "../[EMAIL PROTECTED]/configure", "opts" => > @config_opts > > make configure-host > > make > > end > > > > install > > cd #{$top_build_dir} > > cd [EMAIL PROTECTED] > > make install > > end > > end > > end > > > > This is based on an already working prototype made in Ruby, so it's > > biased towards Ruby facilities. > > > It looks Rakish ;) > > > > > > I've tried different build systems: rpm, dpkg, autopackage. > > Unfortunately I never tried ebuild because it was based on bash as far > > as I could tell. > > > Typically a 'build system' would refer to 'autotools' or 'ant' or > 'setuptools' not an ebuild. > > > > > > After almost a decade of using Linux I still haven't found a build > > system that suits all my needs. AFAIK ebuild is the most advanced but > > it's still relying on ancient technology (bash scripts) so there will > > always be limitations despite the brilliant ideas. > > > Bash is not 'ancient' and it works suprisingly well for the vast > majority of cases. I realize using a high level language would > probably make some tasks easier (mmm dicts and real arrays). There is > the matter of porting over 10000 ebuilds however ;) > > > > > > The core of a distribution is the "packaging" system, and the core of > > the packaging system is the building system, which has no reason not > > to be distribution agnostic, and actually, packaging system agnostic. > > > > Why not create a new build system with a state of the art programming > > language, and an advanced DSL that actually other distributions could > > use? > > > I would talk to Drobbins, he was talking about something like this to > manage complexity. > > > > > > I would like to hear your opinions on this matter. > > > > -- > > Felipe Contreras > > > > -- > > gentoo-dev@lists.gentoo.org mailing list > > > > > -- gentoo-dev@lists.gentoo.org mailing list