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

Reply via email to