Sean Russell wrote:
> Hi Andrew,
> 
> First off, let me say "bravo".  There are enough distributions that
> follow the FHS, for those who don't want to deviate, and even a few
 > that don't.  However, without exploration, we're never going to
 > improve anything.

Thanks, but I'm not really bothered that much. I designed it to fulfill 
my needs as a simple customisable distro for a large cluster of servers, 
but I've added to it since I liked it so much. If other people like it 
or even parts of it, then great :)

> Tha
> Question:
> 
> 	/pkg/bash/1.2.3/
> 	/pkg/bash/2.3.4/
> 	...
> 
> or just /pkg/bash?  Allowing multiple versions of the same package on
> the same machine is a nice feature.
> 

Yes, it maintain version information for upgrades, but it doesn't 
support multiple installed version. A specific version of the rubyx has 
details of the latest known good packages, but allows you to specify 
exactly the glibc, gcc, binutils and kernel you want to use.
A newer version of the rubyx script will have updated package details. 
It is entirely possible to get a newer version of the rubyx script and 
upgrade all or selected packages of course.

For instance, my cluster machines are configured with rubyx version 9, 
like this

rubyx --root mydistro --krep 2.5 --ktag v2.5.69 --glibc date:2003:06:01 
--threadlib nptl --binutils binutils-2_14-branch --gcc gcc_3_3_release 
--languages c,c++ --arch pentium4 --distro net disk

This is my known good configuration for those machines.

If rubyx became popular, I can imagine particular setups gaining in 
reputation and becoming the 'recommended stable' setup, unstable, etc, 
just as it does here in micro.

> 
> I'd be interested in seeing an 'rbuild' (or whatever your ebuilds are

Here you go then...

#=============================================================================== 

class Pkg_Glibc < Package
#=============================================================================== 


   def initialize()
     super("Gnu C library")
     join('bootstrap','base')
     need('linux')
     want('sed','gawk','bison','perl','texinfo')
     @ipri = 2
   end
 
#----------------------------------------------------------------------------- 

   def download()
     rsync('rsync://sources.redhat.com/glibc-cvs', 'glibc')
     http('people.redhat.com','/drepper/nptl',$nptlver, $nptlsum)
   end
 
#----------------------------------------------------------------------------- 

   def build()
     checkout('glibc','libc',$glibc_tag)
     bash "tar --directory=libc -xjf "+path($root,'usr/src',NPTLVER)
     ruby "Dir.mkdir('work')"
     ruby "Dir.chdir('work')"
     ruby "ENV['CFLAGS'] << ' -mno-sse2'"
     ruby "ENV['CXXFLAGS'] << ' -mno-sse2'"
     bash "../libc/configure --build=#{HOST} #{STDCONFIG} "+
       "--disable-profile --enable-add-ons=#{$thread_lib} 
--enable-kernel=2.4 "+
       "--with-headers=#{path($root,'pkg/linux/usr/include')} 
--without-cvs"
     bash "make -j#{$max_make_jobs}"
     bash "make -j#{$max_make_jobs} -k check" if $check
     bash "make -j#{$max_make_jobs} install_root=#{prefix} install"
     bash "make -j#{$max_make_jobs} install_root=#{prefix} 
localedata/install-locales"
     ruby "File.makedirs(path(etcdir,'config/rubyx'))"
     ruby "File.open(path(etcdir,'config/rubyx','glibc_tag'),'w') { |f| 
f<<$glibc_tag }"
     ruby "File.open(path(etcdir,'config/rubyx','thread_lib'),'w') { |f| 
f<<$thread_lib }"
   end
 
#----------------------------------------------------------------------------- 

end; Pkg_Glibc.new()


> called).  Do you echo Gentoo's "we don't own the sources" standpoint?
> 

I tend to ignore politics in order to get the job done (see my license 
:) ), and I'm not familiar with this standpoint. All I have is a script, 
which downloads it's source from the home sites from each package, and 
builds according to the rules it has. The script contains patches where 
necessary. I don't maintain a private archive of sources.

> 
>>More for the expert than gentoo though; If you regularly play with 
> 

If you need/want a custom distro for your machine, rubyx might be useful
If you want to learn about linux, rubyx is probably easier than LFS, 
because you can see exactly what its doing, without the pain of typing 
everything in... (Yes - I've been there too :) )

> Yow.  How is this possible?  By the first time I'd installed Gentoo,
> it was the first time I'd had to hand-craft (not tweak; *craft*) an X
> config file in several years.  Having seen Knoppix, I'm amazed that
> distributions require any amount of user intervention any longer.
> 

If you want to put in a cd and come back in half an hour to a complete 
distro, rubyx isn't for you :)

> On the other hand, I'd be much more willing to contribute to a
> Ruby-based distribution than a Python-based distribution, so maybe I'd
> be able to do something about this.
> 

Cool! My main motivation for putting rubyx 'out there' is to hopefully 
get massive package support, like Gentoo etc. I've put in the packages I 
use, but it's a tiny subset of those available

> 
> 
> What does maintenance look like?

Maintenance involves checking out the latest version of rubyx, then doing

rubyx --install all --pretend

Which will get you a list of newer packages that would be upgraded. Then 
just knock off the --pretend to upgrade everything, or be more 
selective. Up to you.


> 
> Thanks for doing this.  Gentoo is almost perfect, but I'm handicapped
> in contributing by my own stubborn refusal to write any more Python.
> 

You might not like it, but if you do, any contributions will be 
gratefully recieved :)

I'm setting up a rubyx based webserver on my broadband at home and will 
make the script available from there asap. With a fair wind, that might 
be sometime this weekend ;)

Andrew Walrond

PS

Just so as you know; rubyx uses bitkeeper to extract kernel sources, and 
you must have bitkeeper installed before you can use it. Bitkeeper is by 
far the best way of accessing the kernel sources, and being a pragmatic 
guy who hates lawyers and politics, I use it quite happily (Even though 
Larry ignored my attempts to buy it for my commercial activities. I'm 
still sulking about it now ;) )
You will need to investigate for yourself the ramifications of your use 
of bitkeeper (which is, simply put, is free for open source purposes, 
with some exceptions)

However, I am aware of certain peoples sensibilities in this area, and 
might implement a cvs alternative now Larry has made a cvs gateway 
available. I'm in no pressing hurry to do this though :)