"It wasn't raining when       "First they ignore you,
     Noah built the ark."          then they laugh at you,
           -- Howard Ruff          then they fight you,
                                   then you win."
                                       -- Mahatma Ghandi

When I kicked off our OpenPKG Project in November 2000, except knowing
very well where I wanted to go, I had nothing more than a bunch of
initial software installation scripts (in BnP/Perl format) flying around
in my home directory (see http://www.openpkg.org/project/history.php for
more details about the OpenPKG history).

The bootstrap package [0] (at this time still named just "rpm" ;-)
was -- and actually still is -- the most challenging and most cool
package. Although it is far away from being an elegant piece of software
engineering, even after 6 years I'm still rather proud about it as I
consider it one of my masterpieces of Unix hacking tricks. If you are a
Unix developer and want to easily become crazy within a single day, I
recommend you to dive into our "openpkg" package -- looking and trying
to understand all of its subtle details makes you either totally crazy
within hours or, if you survive, you can really feel blessed as a Unix
hacker ;-)

Then the "make", "gcc", "perl", "openssl" and "openssh" packages
were one of our first. These packages nowadays are well known in the
OpenPKG world as one of the few CORE class packages. Just for packaging
"gcc" (at this time still at vendor version 2.95) I required even a
few _weeks_ because of the necessary fiddling with GCC's nasty build
environment of these older times. Thanks to Autoconf and friends this
has changed dramatically (at least for most pieces of software) during
the last years.

And then immediately came our "all dancing, all singing" package:
"apache" [1]. Since its earliest times it was an extremum in every
aspect. It has one of the largest and most complex .spec files, it
has over 60 build-time %options, it is spiked with a large number of
resulting %if/%else/%endif constructs, it was revised a few hundred
times in total, etc.

Well, perhaps it is such complex because Apache 1.3's vendor build
environment is such strange. Hmmm... as I know the developer of this
Apache 1.3 build environment on a first name basis, perhaps I should
just direct my complains directly to him. Ops, seems like I then have to
blame myself ;-) At least, if you ever want to see how far one can go
with a single OpenPKG RPM package, look at this one.

Well, and today, after exactly 6 years of steadily development and over
81000 CVS repository transactions [2], I'm very proud to announce that
in OpenPKG-CURRENT we now have:
                       _   ___   ___   ___
                      / | / _ \ / _ \ / _ \
                      | || | | | | | | | | |
                      | || |_| | |_| | |_| |
                      |_|o\___/ \___/ \___/

                   high-quality, concise and clean
                      OpenPKG RPM packages [3]

And since recently, all those 1000 packages are now
easily browsable, searchable and reviewable online under
http://www.openpkg.org/product/packages/

                              - - - -

    "To create quality software,        "It worries me however, to realize
     the ability to say no is usually    how tough an ass-hole I have had to
     far more important than the         be, in order to get to stick to the
     ability to say yes."                principle of doing things right,
              -- Michi Henning           rather than 'just hack it in'."
                                               -- Poul-Henning Kamp

But, why is this raw number of packages of any interest? The FreeBSD
ports collection even counts 15.000 packages and Debian counts over
20.000 packages AFAIK!?

Well, if those 1000 OpenPKG RPM packages would be just the result of
simple copying & pasting a few lines of packaging specification of other
vendors, this would be no remarkable achievement (and could have been
achieved within a much shorter time, of course).

But we did all this really 100% from scratch, with a very small team
of core developers and the resulting packages are really ultra concise
and clean ones (in contrast to just providing the plain software
packaging functionality). And it was never our goal to package "just
everything flying around" (what FreeBSD ports and Debian more or less
do). Additionally, although we also have some small number of desktop
applications packaged, we always focused (and still focus) on server
applications only.

Thanks to our extremely restrictive quality assurance via automated
"linting" (those who do not know: on every package commit transaction
the sources are first automatically checked for syntax and semantic
errors), even after 6 years of bi-daily updates and improvements,
we have no single package which has any major or minor syntax or
style discrepancies. All of our 1000 packages are fully aligned and
consistent.

Yes, I know, some developers now cry as they often wished OpenPKG's
development guidelines would be a lot less strict. But, sorry, that's
what OpenPKG RPM source packages are all about by design: conciseness
and cleanness. And this we were able to achieve over the time range of 6
years via extremely strict development guidelines only ;-)

OTOH, yes, I know very well that most of our users are neither aware of
nor interested in those facts. They more or less just want perfectly
working software packages. Well, I'm confident OpenPKG provides this,
too. At least after 5 years of being deployed in large production
setups, we know that our current OpenPKG status provides both a very
complete set of software package for Unix server computing and a
rock-solid run-time of those servers and their services.

We will try hard to keep OpenPKG for you at the quality level
it currently is, also in the future...

Yours,
                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

[0] http://www.openpkg.org/product/packages/?package=openpkg
[1] http://www.openpkg.org/product/packages/?package=apache
[2] | $ egrep "^[AMDT]" history  | wc -l
    |    81065
[3] | $ ls -l */*.spec | wc -l
    |     1000

______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
User Communication List                      openpkg-users@openpkg.org

Reply via email to