BICK to drop Sparc support

Phil Howard <[email protected]> Wed, 30 Oct 2002 10:52:43 -0600
Newsgroups gmane.linux.redhat.sparc
Message-ID <[email protected]>
I have previously been releasing a package called BICK, which builds
bootable ISO images from file trees, with support for both Intel x86
PC and Sun Sparc platforms, even integrated into the same image so it
can boot on either (and, of course, run a different set of binaries).

Ref:  http://freshmeat.net/projects/bick/

Several problems have plagued the project, but the biggest one is the
collision between SILO, and mkisofs (now part of cdrtools).  SILO is
principly a hard drive boot loader, but can be used on CDROMs when a
patch it supplies is used to modify the mkisofs command so that when
the ISO is built with certain options, the SILO boot loader knows how
to find what it needs to find to load the kernel.

This has been a problem because mkisofs has seen upgrades which are
even included in various distributions, before SILO has upgraded the
patch to work with the new version.  But even with the patch now up
to date with mkisofs, the biggest problem remains that this still
requires patching mkisofs and recompiling, and mkisofs (and cdrtools)
is one of the more difficult packages to get compiled right (mostly
because its author, Jörg Schilling, has a very customized compilation
system, and doesn't treat Linux favorably (and has some valid points
in regard to that as well; see README.linux in cdrtools).

Long ago, SILO dealt with ISO images by having a program that modified
a produced ISO image to integrate the SILO boot time sectors into it,
and make the modifications necessary.  I believe SILO should go back
to that method, as opposed to attempting to track changes to mkisofs.
Alternatively, SILO should be designed to figure out where things are,
such as looking at the partition table and accessing the kernel image
in a partition, or finding its data blocks by reading the ISO filessytem
data pointers at run time instead of depending on a stored pointer.

Sun Sparc has a special way of handling partitions for booting kernels.
Why can't Linux be booted that way, too?  Apparently most everything
else can be done that way.

I do not want to require everyone who uses BICK on an Intel x86 system
to have to recompile cdrtools.  I do not want to have to distribute a
binary of mkisofs with BICK, which probably has to then be linked with
a number of different library versions so everyone can use it.

And I do not want to get into making modifications to SILO.  Hacking
things like that is good for one's own uses, but for long term software
releasing, this is really not a good practice.  Not only would I then
be dependent on SILO keeping up with cdrtools, but I'd further have to
make sure my patch to SILO would keep up, which would just be extra
work for me to do that I really don't need to add on.  Further, the
documentation on how certain things work in the Sparc machines, such
as the assembly language interfaces to the PROM code, has been hard to
find, and I just don't have the time to learn it on a code-and-debug
basis, or reverse engineer it from existing code (which cannot be an
exhaustive form of reference).

I am also a bit disillusioned by the directions Sun is taking with
regard to the support of Linux.  Basically, they are drawing a line
between Sparc and Intel's x86 architecture, and making that line also
be a line between Solaris and Linux (with regard to their support).
As I'm sure everyone here also believes, I believe these two lines
should be orthogonal, and either OS should be available for either
architecture, and that Sun should be happy to sell Sparc hardware to
Linux users looking for an alternative to Intel.

This has already resulted in dropping Sun Sparc from my business plans,
which were originally the inspiration to make BICK have Sparc support.
I will be looking at what options might be coming onto the market for
the PPC architecture, as an alternative to Sparc for the alternative
to Intel, but in the mean time, my business plans will be Intel-only.
That business is not about BICK, per se; it would just be a user of it.

I had intended to make this decision a couple months ago.  But I just
didn't really spend any time on the BICK project until now, so it was
simply held off.  But at this time I do need to have BICK move forward,
and the Sparc support is currently holding it back.  BICK version 0.8.0
supports Sparc, but version 0.9.0 most likely will not.  I'm hoping to
have the next BICK version out within a month, despite a big rewrite of
a large part of it.

The point I want to emphasize is that this decision is reversable.  If
conditions change, I could go back to adding Sparc support.  However,
the further BICK moves forward into Intel-only territory, the harder it
probably will be to add that support back in.  I will try to leave the
door open based on my understanding of how Sun Sparc booting works, but
that understanding was never 100% complete, and without practicing it
could certainly fade out as I move along.  It may end up that I can do
a Sparc version of BICK, but not an integrated one which would make a
dual-platform ISO.

I regret this decision, but it simply has to be made, and I no longer
have the time to put it off any further.

-- 
Phil Howard
[email protected]