Minimyth gar build system

Announce/Discuss projects you are working on for MiniMyth

Moderator: Pablo

dna
Member
Posts: 16
Joined: Tue Nov 04, 2003 2:13 pm
Location: Phoenix, AZ

Minimyth gar build system

Post by dna »

Here's a link to the gar build I've been working on:

ftp://www.frizzlefry.com/minimyth-gar.0.01.tar.gz

This is the ultra-alpha not really usable version but its getting there.

Once I clean it up a little more I'll set it up on my box's cvs server.

Cheers,
Dan

Edit 12/22:

Anon-cvs access
cvs :pserver:anonymous@frizzlefry.com
null password, just hit enter.
Last edited by dna on Mon Dec 22, 2003 11:44 pm, edited 1 time in total.
lmatter
Contributor
Posts: 632
Joined: Sat Aug 23, 2003 5:13 pm
Location: California, USA

Post by lmatter »

Wow Dan, this is awesome. It's just what I was looking for.

I'm looking forward to having this in CVS so I can help out with it. I guess my first chore will be to fill out the X part.

So are you comfortable hosting the CVS of this? I can check to see if my webhosting supports CVS, but I doubt it. And from what I hear sourceforge CVS is less than ideal.

Thanks for your hard work.


(If anyone else wants to play: download, untar, cd to meta/minimyth and "make" or "make install" - go get a coffee. Maybe two).

Larry
lmatter
Contributor
Posts: 632
Joined: Sat Aug 23, 2003 5:13 pm
Location: California, USA

Post by lmatter »

I'm having a problem when gar tries to build devfsd. The ftp download fails:

Code: Select all

--11:59:52--  ftp://ftp.atnf.csiro.au/pub/people/rgooch/linux/daemons/devfsd/devfsd-v1.3.25.tar.gz
           => `download/partial/devfsd-v1.3.25.tar.gz'
Resolving ftp.atnf.csiro.au... done.
Connecting to ftp.atnf.csiro.au[130.155.192.44]:21... connected.
Logging in as anonymous ... 
Error in server response, closing control connection.
Retrying.
But if I manually download it (using wget and cutting and pasting the URL from the right parts of the makefile) it works.

Ever seen this before?

Thanks.
lmatter
Contributor
Posts: 632
Joined: Sat Aug 23, 2003 5:13 pm
Location: California, USA

Post by lmatter »

OK, I found the problem. The timeout in gar.lib.mk for the ftp wget command needs to be bigger. I set it to 20 (from 10) seconds (on line 60).

Larry
dna
Member
Posts: 16
Joined: Tue Nov 04, 2003 2:13 pm
Location: Phoenix, AZ

Post by dna »

I'm glad you like :D
lmatter wrote:
So are you comfortable hosting the CVS of this? I can check to see if my webhosting supports CVS, but I doubt it. And from what I hear sourceforge CVS is less than ideal.
Its not a problem, my surplus e-bay server sits around all day dreaming of its glory days and looking bored so I try to keep it happy. I'm on a cable connection but I think the bandwidth requirements will be pretty low. I'll start working on getting it into CVS and try to get it set up tonight or tommorow, got to check out the security situation first.

Dan
lmatter
Contributor
Posts: 632
Joined: Sat Aug 23, 2003 5:13 pm
Location: California, USA

Post by lmatter »

Just want to let people know that this gar build is one of my top priorities. DNA has set up cvs access for me and I am trying to help him get it to a releaseable state. He did a lot of work on this and it is pretty amazing. It takes a *long* time to build everything as you could imagine).


Larry
lmatter
Contributor
Posts: 632
Joined: Sat Aug 23, 2003 5:13 pm
Location: California, USA

Post by lmatter »

Here's an update to the gar build. Anon CVS is available:

Anon-cvs access:
cvs :pserver:anonymous@frizzlefry.com
null password, just hit enter.

then cvs checkout minimyth.

It is currently very much in flux. Feel free to poke around but please don't be surprised of entire directories disappear with no warning.

Currently it builds a root image that boots and starts up ash on 4 consoles. it also starts up telnetd so you can telnet into it. X builds, but is not installed on the root image yet so you don't get much bang for the build-buck at this point. This does include the latest epia patches as well as Ivor Hewitt's MPEG2 patches. Not sure if it works yet :-)

Also, translucency fs is working. I use it to allow the /etc directory to be overwritten. Check it out if your curious (look in /etc/rc).

Check out the tree, cd to meta/minimyth, and do "make install" . When it is done (about 3 hours on an XP 2200) there will be a rootfs and a kernel in meta/minimyth/work.

Enjoy
Larry
jmw
Member
Posts: 32
Joined: Thu Nov 13, 2003 4:39 am

Post by jmw »

I wanted to try this out... But there appears to be some missing information. What is the repository name?

What exactly is the command to type to connect to cvs?

I tried:

cvs -d :pserver:anonymous@frizzlefry.com/minimyth login

but it says the repository doesn't exist.

jmw
lmatter
Contributor
Posts: 632
Joined: Sat Aug 23, 2003 5:13 pm
Location: California, USA

Post by lmatter »

Sorry, the previous information was incomplete. Here is the rest of it:

cvs -d :pserver:anonymous@frizzlefry.com/usr/local/cvs login
(no password)
cvs -d :pserver:anonymous@frizzlefry.com/usr/local/cvs checkout minimyth

Larry
jmw
Member
Posts: 32
Joined: Thu Nov 13, 2003 4:39 am

Post by jmw »

Wow! What a cool system this GAR thing is.

So... I got it all built. I had to make a few minor changes to get everything to build. One was in the X11/XFree86/manifest file. A few variable names seemed to be missing - it was attempting to copy files to the host OS's lib dir instead of the one we're building (and of course it didn't have permission - now i know why you should never do builds as root
:lol: ) . My manifest file looks like this:

------
${WORKSRC}/programs/xinit/xinit:${DESTDIR}/usr/X11R6/bin/xinit
${WORKSRC}/programs/Xserver/XFree86:${DESTDIR}/usr/X11R6/bin/XFree86
${WORKSRC}/lib/X11/libX11.so.6:${DESTDIR}/usr/X11R6/lib/libX11.so.6
${WORKSRC}/programs/rgb/rgb.txt:${DESTDIR}/usr/X11R6/lib/X11/rgb.txt
${WORKSRC}/../XF86Config:${DESTDIR}/etc/X11/XF86Config
------

And the other is that the download location for the mysql client is no longer available. I had to find a different mirror and use 4.0.17 instead of 4.0.15a. I modified the top of mysql-client/Makefile to look like this:
-------
GARNAME = mysql
#GARVERSION = 4.0.15a
GARVERSION = 4.0.17
CATEGORIES = utils
#MASTER_SITES = http://mysql.he.net/Downloads/MySQL-4.0/
DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz
MASTER_SITES = http://mirror.services.wisc.edu/mysql/D ... MySQL-4.0/
PATCHFILES =
-------


Now, to figure out how to get this running on the Epia... I don't think it's as simple as making the whole thing into a cramfs image.

I notice there's not yet support for modules. I think I might be able to figure it out, based on the Makefiles that are already present. If I get any of that going, i'll post the results here.

Thanks lmatter and dna.

jmw
lmatter
Contributor
Posts: 632
Joined: Sat Aug 23, 2003 5:13 pm
Location: California, USA

Post by lmatter »

Oh, sorry, I guess I didn't check those changes in yet. It's cool that you figured it out; guess you're groking gar.

I'm still not sure if I'm going to build mysql as a client yet, or just grab what I need from the host. I don't want to turn this into another gentoo, so I'm cheating on some stuff and just copying it from the build machine.

When things are working well, I may expand the scope to build all the depenencies.

Anyway, once your "make install" completes you will have a bootable kernel and rootfs (already crammed) in the meta/minimyth/work directory. Give it a try. It only goes to console mode now (and telnetd is running). I know for a fact that the kernel will not work with the cle266 hardware (I tried it) but I built one in a similar fashion that did, so I just need to see what changed.

And it should have modules in there, just not loaded (and probably not with a proper modules.conf file). Play around with lsmod and insmod.

Since it's the holidays right now I won't have a lot of time to tinker for the next week or so.

Larry
dhartman
Member
Posts: 30
Joined: Sat Dec 13, 2003 9:05 pm

Post by dhartman »

Larry,

Please reconsider this statement.
lmatter wrote: I'm still not sure if I'm going to build mysql as a client yet, or just grab what I need from the host. I don't want to turn this into another gentoo, so I'm cheating on some stuff and just copying it from the build machine.
Larry
Here's my reason for wanting to use GAR for the WHOLE thing or nothing at all. I worked for several months with Midori Linux back about 2 years ago. Very similar concept to GAR. The major problem with Midori was the idiots who set it all up, intermingled the host OS and the target OS and it made it very difficult to use without many modifications.

This has soo much potential to do exactly what we want AND be able to be built on damn near any distro. I have no desire to use any other distro than Slackware. Therefore, I wouldn't be able to just copy binaries from my base distro and use them in the GAR build. I know it will be more work up front. I just feel that the results will be far superior to the alternative.

Darrick
lmatter
Contributor
Posts: 632
Joined: Sat Aug 23, 2003 5:13 pm
Location: California, USA

Post by lmatter »

I hear what you're saying.

While I'm still trying to get everything basically working, I will be copying some libs (but not binaries). For the moment these will be glibc, mysql (maybe), qt (maybe), and a few assorted libs for networking (libresolv, etc). Everything else is built. Once things are basically working, I will look into building more of these dependencies. I like to take baby steps.

I did recently have a somewhat frustrating experience with gentoo where I decided I would try it and it took like two days of non-stop compiling before I had a system that was barely usable. I probably did something wrong, but I was following the docs as best I could. I don't want minimyth to take all day to build.

I think we should be ok not building glibc itself, since everything we are building will be against whatever glibc you have on your system. I should just be able to copy the runtime over to the rootfs. Correct me if I'm wrong.

And I will be depending on folks using other distros to help me keep this building cleanly.

Thanks,
Larry
dhartman
Member
Posts: 30
Joined: Sat Dec 13, 2003 9:05 pm

Post by dhartman »

Larry,

Hmmm. I was under the impression that the GAR system is more a chroot environment where everything required to build the packages was required to be within the chroot (ala Linux From Scratch). It generally would take a long time to build the FIRST time, but changes in the future which didn't change the base build system wouldn't take long. Perhaps this will be more work than necessary for not much gain. It might be simpler to just create a chroot build environment based on a current distro with the proper dependancies pre-installed. New souce could be dropped into a directory within that environment and a script could compile the new source, then create the rootfs.

If GAR works the way I think it works, you would want to build glibc etc inside the GAR system because a pre-build GAR base could be downloaded and installed on any distro.

I do feel your pain with Gentoo. I did a stage 1 install on my c3-933 based laptop...2 days to emerge kde/xfree.

In anycase, I would like to get a new minimyth built with the new 0.13 modules. The current minimyth works great with 0.13 but I'd like to add things like mythmusic etc. One step at a time though. My backend system is finally stable.

Darrick
dna
Member
Posts: 16
Joined: Tue Nov 04, 2003 2:13 pm
Location: Phoenix, AZ

Post by dna »

dhartman wrote:
If GAR works the way I think it works, you would want to build glibc etc inside the GAR system because a pre-build GAR base could be downloaded and installed on any distro.
Gar isn't really a chroot environment, its just a bunch of makefiles kind of like portage. It really doesn't matter which system you use to build with right now since everything is built against the same libs that are copied into the cramfs filesystem. I admit that this isn't ideal from a purist standpoint (ie, the pure LFS movement) but I can't see any real problems with it and this is what Larry's been doing anyway. I had this setup to build glibc and all the other libs at first but then you have to have have the same glibc on both the gar build and the host and there are some linker problems with newer glibcs that the lnx-bbc people have been working on.

Check out the last working lnx-bbc-2.0 and the Debian buildroot to see what would be involved with doing it "The Right Way." First it builds a sane toolchain then it builds the apps that go on the cd. On my 1.8ghz box it takes 4-5 hours to build and uses about 4 gigs.

I've been working on a "make package" rule using Slackware package tools which with a chroot environment will be able to do what you are asking for. Its a unrelated side project I've been working on but it would be easy enough to port over. It will be a while before its added since it changes a lot of the build system and I'm not really sure what Larry's future plans are.

Once Larry gets out his next release, we can start doing some real tweaking on this thing. I have some ideas I've been sitting on so I don't mess up what he's working on and postpone the next release.

Dan
Post Reply