Page 1 of 1

Squashfs with gcc, binutils, glibc & make for puppy

Posted: Sat 09 Jul 2005, 06:53
by Guest
Hello fellow puppiests (is that right)


As a proof of concept I decided to give my idea a go of creating a squashfs filesystem with some very very very basic development tools....

Based on the sources and instructions from Linux From Scratch 5.1 it contains the following

filename opttools.sfs
size 54024K

  • 1. binutils-2.14
    2. dejagnu-1.4.4
    3. diffutils-1.4.4
    4. expect-5.41
    5. findutils-4.1.20
    6. gawk-3.1.3
    7. gcc-3.3.3
    8. gettext-0.14.1
    9. glibc-2.3.3-lfs-5.1
    10. grep-2.5.1
    11. linux-headers-2.4.26
    12. make-3.80
    13. ncurses-5.4
    14. patch-2.5.4
    15. perl-5.8.4
    16. sed-4.0.9
    17 tcl8.4.6
    18 textinfo-4.7



Upadte
Just used this configuration to compile a kernel.

Like I said it is a proof of concept at the moment, and I don't expect to compile anything that uses any other libraries than those contained in glibc. What it should let you do is compile some very very console apps....Probably anything that you would find in an introduction to C programming guide...
As a test I mount the filesystem at /opt/tools (it cannot be mounted anywhere else in the filesystem) and compiled and executed the de-riguer "hello world app".
At the moment the squashfs file is about 54 - 55 meg all binaries and libs have been stripped and most docs removed.
What I envision is that all libs,includes and utilities required to compile apps and a kernel would be included so that a development platform is created that should not (?) affect Puppy.The beauty, to me anyways, of doing it this way is if you are running a hd install or running from a live cd you should be able to compile apps, providing you have enough writable disk space.
This is my first attempt at doing something such as this and I would like to hear from some more knowledgable Puppy users who would like to help in testing.

Posted: Sat 09 Jul 2005, 09:20
by BarryK
Bladehunter,
Don't forget that if you create a squashfs file called opt_cram.fs, and place it in the same place as usr_cram.fs or in the places Puppy looks for usr_cram.fs, then Puppy will automatically mount it on /opt.
You may have to check the code that does that, i think it is in /etc/rc.d/rc.sysinit, or rc.local0.

Posted: Sat 09 Jul 2005, 20:47
by GuestToo
mounting squashfs files on /opt will also break some programs like xmms and mplayer and eboard chess, which put symlinks in /opt ... making /opt writable again by using unionfs will fix the problem

Posted: Sat 09 Jul 2005, 22:27
by Guest
As a test I mount the filesystem at /opt/tools (it cannot be mounted anywhere else in the filesystem)

You did mention that before that's why I went for /opt/tools rather than /opt.

Now hopefully that shouldn't break anything from other packages

Posted: Sat 09 Jul 2005, 23:28
by BarryK
So maybe rc.sysinit could look for a file named "opttools.sfs" and mount it on /opt/tools/ at bootup?

Note, I suggest a filename "opttools.sfs" as want to keep it in the 8.3 format, as a cd burned without rockridge or joliet extensions will have this limitation -- well I can't remember exactly, but I do recall getting this limitation when using cdrecord under certain circumstances.
The extension ".sfs" meaning "squash-file-system".

Just a thought.

Posted: Sat 09 Jul 2005, 23:38
by Guest
yep that would work nicely...


The only thing is the opttools.sfs could end being larger than usr...


BTW Do you have a list of the core libraries and versions Puppy uses....I'd like to put them all in opttools.sfs so compiling apps will be seamless..I know it will duplicate alot of what's in /usr already but then again it could be mounted in any system supporting squashfs to compile for puppy....A sort of portable development enviroment for puppy. Just a thought

Posted: Mon 11 Jul 2005, 10:49
by Guest
Update..again

Added m4-1.4
bison-1.8.75
flex-2.5.4a
textinfo-4.7
autoconf-2.5.4
automake-1.8.4
libtool-1.5.6
motor-3.4.0

Motor is an IDE for C,C++,Java and Perl projects, which was compiled natively on Puppy......It is the IDE installed with Vector Linux if anyone has used that..

Hoping to get to a stage where GTK apps can be compiled....

Whilst I know the package is growing I was thinking of releasing a base package (gcc,binutils,make) and if it is used in conjunction with unionfs or copied to a writeable media, either hdd or flash, the rest could be installed via dotpups. I suppose if it is on flash it could become a portable plugin development enviroment for producing puppy apps.Barry has the final say of what goes in and what goes out, but then if one runs RedHat, Mandrake,Debia or whatever the tools and libs are there to compile for puppy without affecting your other installation and with sound knowledge that the compiled apps will run on puppy no questions

Great idea and great work!

Posted: Mon 11 Jul 2005, 11:19
by PeterSieg
Hi, just want to say 'keep going' in that direction!
I think a ready to mount development file system is great!
I would not bather that much about space and want has to be left out...
You will NEVER fullfil everybodys needs.. :lol:
To my opinion, it should contain everything needed to compile the kernel,
command line apps and X-apps with and without GTK. So mostly all,
that is needed to compile the apps that are within Puppy.
Only special things could be left out...

The mount of opt_cram.fs is in rc.syslinux. I was experimenting with
that option myself. I believe Puppy looks for that at the same places,
where it looks for the pup001 file...

PS

BTW: My vacation starts in app. 10 days. Besides that, I am willing to
test.

Posted: Sat 16 Jul 2005, 06:01
by Guest
Project is canned and no longer being supported.