On Nov 8, 2011, at 1:17 PM, Bruce Dubbs wrote:

> In the last three weeks, I have updated about 64 packages in BLFS.  I 
> started to look ahead.  This is where we stand:

Bruce,

What you've been doing lately has been commendable, and your effort amazing.

I'm sad that you've come to what appears be an impasse.  Further comments 
inline.

> LFS 7.0 checked:  64
> LFS 6.7 checked:  97
> LFS 6.5 checked: 143
> 
> There are, in addition, somewhere around 320 packages that have no 
> annotation.  That is a total of about 625 packages.
> 
> Another statistic is that the pdf version of BLFS as 1481 pages.
> 
> I will continue to update, but I'll probably slow down as what I've 
> already done has a lot of relatively simple packages (and a few 
> not-so-simple ones).
> 
> What has been obvious for some time is that we cannot produce a BLFS-x.x 
> release.  First, there are not enough developers with the time needed to 
> do the necessary work.  Second, and probably more important, is that 
> with the number of packages in the book, the change rate is just too 
> great to produce such a book in what could be called a timely manner.

Before proceeding further, I'd like to understand the nature of the effort you 
just put into BLFS.  I see the development of BLFS as a somewhat different 
activity from LFS, despite the fact that both use the same medium of DocBook.  
I would guess that become of dependencies (or lack thereof) LFS is a roughly 
linear effort, whereas BLFS (with its philosophy of supporting each package in 
both standalone- and used-along-with-package-X-modes) is a combinatoric effort 
(not to mention the innate combinatoric complexity of managing references).

It would seem to me that BLFS, then, exposes this combinatoric complexity 
mainly in the book.

So, I'm wondering: "Is editing the book; i.e., keeping the SGML DocBook 
up-to-date, the main time sink of developing BLFS?"

* * *

IMO, LFS has two products: a working system, and the book--which serves as 
documentation and an educational resource.  This working system is as important 
a product as the book.  But, because the effort to develop and maintain the LFS 
book is roughly linear (yes, this is my assumption/inference), it doesn't get 
bogged down by itself.  In addition, I don't walk away after following the LFS 
instructions with the feeling that I have to tinker.  While that feeling is 
obviously personal and subjective, the after-taste of going through an LFS 
build is that it's "solid".  That I "don't have to tinker."  And, instead, 
that: "I'd rather not tinker, because it's known to work."

BLFS also has two products: working packages and the book.  But, in the case of 
BLFS, the book seems to be the main source of the effort (likely due to the 
nature of the complexity of supporting so many packages).  It seems clear that 
only when someone wants to build "Package A" using "Package X" as support does 
the book need to require a paragraph of description and a code segment to 
describe how to build A with X.  My point is, it takes someone who actually 
cares about "A with X" to require its inclusion; so, the process of testing "A 
with X" already has a human resource behind it.  In addition, that person could 
probably produce a README or a MediaWiki entry (just some stabs at 
alternatives).  I would imagine, then, that the issue with BLFS is that to 
finalize the inclusion of "A with X"--into the BOOK--requires writing SGML, 
maintaining the references, blah blah blah, and that starts to require much 
much more manpower.

So, in constrast, with BLFS perennially in the "non-release" state, it *always* 
feels like tinkering.  And, that doesn't seem right.  LFS--and by extension 
BLFS could be a very usable Linux system that doesn't make people feel like 
they are "tinkering".  While I realize certain people have legitimate security 
concerns, I don't see how they are any worse than with common distros and the 
ways that casual admins use them.  A "release" of some subset BLFS makes it 
clear that it works with some version of LFS, and quells the feeling that 
something needs "tinkering" at a very low level.  Even though how one 
configures a package is dependent on the capabilities compiled into a package, 
I don't want to worry that my package was compiled incorrectly and will cause 
my app to fail, or that some strange set of dependencies which was at some 
random revision in SVN--is going to introduce subtle errors into my 
application.  That is the purpose of a release.

Now, my assumptions are mainly based around this point--that BLFS has 
combinatoric complexity, and that the book captures--and thus requires--the 
effort to resolve those complexities.  If this assumption is false, then my 
later assertions are equally false...

> I am proposing to send out the following announcement:
> 
> ---------
> 
> BLFS is announcing a new release methodology.  The book will not be 
> released as 'stable' or 'development', but will be produced in an 
> ongoing release cycle.  The book will be entitled "Beyond Linux From 
> Scratch - Version yyyy-mm-dd".  New versions of the book are rendered 
> daily, but the version dates are only changed as content is updated.
> 
> Most package build instructions in the book will be annotated "This 
> package is known to build and work properly using an LFS-x.x platform." 
>  This will give users an indication about when the package was last 
> updated.  In most cases, older instructions will work with little or no 
> modification on more recent versions of packages used in the book.
> 
> ----------

I think BLFS is two things:

        1) a set of instructions that creates a set of working packages on top 
of LFS,

                and 

        2) a book which pretty-prints all this information.

At this point, is it worth questioning why BLFS must be maintained as both that 
set of instructions (implicitly, as someone probably has to test this stuff 
before it goes into the book, right?) as well as an SGML DocBook?  Because a 
set of instructions is likely to be manageable.  But not so manageable when it 
has to be massaged into an SGML DocBook.  If the instructions themselves are a 
product that is manageable--and thus release-able regularly--then I would argue 
that the bulk of the effort ought to be directed at keeping those instructions 
up-to-date and released on a regular schedule (say, in line with LFS, which I 
thought was sort of the end-goal of your recent efforts) and less at the 
DocBook.

I mean, if you can isolate a version of BLFS (e.g., your "BLFS - Version 
yyyy-mm-dd") and you can say: "It works with LFS-x.y", then aren't you at that 
point cutting a release already?  What else could a release of BLFS be, other 
than to say: "The stuff we've identified works with LFS version 
such-and-such."...?  To the extent that it's anything more than that, you'd 
need some sort of testing to get from "released" into "verified" territory, and 
that's a new can of worms...But, let's at least admit there's a difference 
between: "Yes, this will be compiled right if you use these instructions," vs 
"Well, this will *likely* be compiled right, but you won't know until you see 
some weird issue."

Compiling the packages yourself seems to be a major component of the 
attractiveness of LFS and BLFS.  But, if these -FSes are to be anything of 
value, isn't it to ensure that the compilation process is correct?  So, 
furthermore, if LFS can do it--and keep an SGML DocBook up-to-date--that's 
awesome.  But, if BLFS can do it--but CANNOT manage to scare up the resources 
to keep a similar book up-to-date...Who cares?  I mean, if you're a tinkerer, 
you already don't care what state a given product is in.  You have the time & 
inclination to DIY.  If you simply want to use a system, particularly if that 
system is in a "live" setting, would you prefer a set of instructions that 
compiles correctly with a given LFS version?  Or a set of compilation 
instructions that you have to piece together--and get forum support with?  The 
point is--if you're someone who doesn't care what state BLFS is in (maybe 
because you like to tinker), then stick to your message--and don't care.  I 
think there's
  value to having a "stable" BLFS (with the criteria that any stable version 
compiles correctly with a given LFS version).

================================================================

TL;DR - I think the SGML DocBook maintenance is what's causing the complexity 
to be too high to be release-able in a timely manner.  I also think the book 
contents--if divorced from their presentation concerns in DocBook--are useful 
without the book formatting.

The instructions themselves, the meat--the content, very important.  Their 
presentation, less so.  So, put the work into the instructions.  And maybe spin 
the book itself off to some other group who cares that it's in SGML DocBook 
format.  Not that I am suggesting using Word, but quite frankly, even if it 
*was* a Word doc, I couldn't care less.  Yes, I recognize that if BLFS became a 
flat text file, keeping *that* up-to-date will become its own annoying chore 
over time.  But, this is 2011-almost-2012, and I think the smart people here 
could probably figure something out other than SGML DocBook.  How about even 
just maintaining a MediaWiki implementation?  Sure, you would lose all the SGML 
compiler verification...But, frankly...how important is that?  See the next 
quote--

> In addition I can update the web site to reflect this change.  There 
> would be no regular pdf or nochunks versions of the book, but a tarball 
> of the current book's html will be available.

The point is, if there's not going to be a PDF or nochunks released, but just a 
tarball of the current HTML, why not simply forget about the presentation, and 
focus instead on maintaining the instructions for building the system?  I mean, 
isn't this statement, all on it's own, already suggesting that maintaining the 
SGML DocBook is too hard?

So, my question is: "Is maintaining the SGML DocBook the most significant 
burden that fights against the stability--and release-ability--of BLFS as a 
USABLE SET OF WORKING PACKAGES on top of LFS?"

In addition, for those who want to move in a "verified" direction (as in, "this 
works how it's supposed to without crazy surprises, and we've outlined the 
perimeter such that outside of those conditions, the system might not work" vs 
"this compiles correctly")...How about starting to consider the idea of 
"unit-testing" whole systems (or their subsets)?  On one hand, getting around 
to building something as complex as PHP (let's say with database and imaging 
support) and running the PHP unit tests is already testing huge parts of the 
system.  OTOH, a PHP unit test that breaks doesn't really tell you whether it's 
a bug in PHP, or if it was somewhere deep in how you compiled glibc.  I would 
think that creating system testing (I'm not sure what precedents are out there) 
is a better use of time than SGML editing.  Of course, testing will require 
effort and manpower, too, but I'm throwing this bone out there to address some 
obvious follow-up questions about the relative value of BLF
 S "releases".

================================================================

        Q


-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to