RE: [Leaf-devel] Re: Standards and due process :-)

2002-03-01 Thread Luis.F.Correia

Adding water to a boiling and already full kettle...

Why can't we use a concept similar to this:

assume
vfat is used
/assume

Package name: pppd-2.1.4
Package files: pppd-2.1.4-bin.lrp, pppd-2.1.4-conf.lrp

pppd-bin.lrp contains all necessary binaries and 'non-editable' scripts,
pppd-conf.lrp contains all configurable files.

All we will need then is to backup only the ???-conf.lrp files.

I am perfectly aware of the problems this solution brings along,
but hey, at least it's one more opinion/idea!

Take care


-Original Message-
From: David Douthitt [mailto:[EMAIL PROTECTED]] 
Sent: Friday, March 01, 2002 3:39 AM
To: LEAF Development
Subject: Re: [Leaf-devel] Re: Standards and due process :-)


On 2/28/02 at 4:24 PM, Serge Caron [EMAIL PROTECTED] wrote:

 For example, LEAF/LRP has in its unwritten feature set
 that users must log in. I have on occasions removed
 tinylogin and replaced the getty lines in
 /etc/inittab with /bin/ash  /dev/ttyn  /dev/ttyn 21.

This is similar to what Trinux does - no login.

 Don't want to commit to gnu's sed? Use busybox sed during
 the load sequence and let the user supply whatever he
 wants.

Oxygen doesn't use sed during boot.

 I want the user to float the baseline any way
 she sees fit for her situation. I don't WANT to provide packages for 
 everything that she MAY want! When she finds a sed she likes, she 
 decides how and where it will be packaged. As long the tools to do so 
 are available, who cares what is running in system xyz?

With the maximal fragmentation in Oxygen, one can strip out GNU sed for
minised (or whatever) if it is desired - just rm sed.lrp and put in the
desired msed.lrp...

It sounds almost like you want a minimal set of enumerated binaries and
functions, and then Oxygen would add set X and Dachstein would add set Y.

It sounds like ANSI FORTH (did I say this before?).  ANSI FORTH has a CORE
Word Set, and a FLOAT Word Set, etc.  An ANSI compliant FORTH may have a
minimal number of Sets, but if they are compliant then it is ANSI Compliant
with the CORE, [...etc...] Word Sets.

Is this what you have in mind?

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-03-01 Thread Charles Steinkuehler

 Adding water to a boiling and already full kettle...

 Why can't we use a concept similar to this:

 assume
 vfat is used
 /assume

 Package name: pppd-2.1.4
 Package files: pppd-2.1.4-bin.lrp, pppd-2.1.4-conf.lrp

 pppd-bin.lrp contains all necessary binaries and 'non-editable' scripts,
 pppd-conf.lrp contains all configurable files.

 All we will need then is to backup only the ???-conf.lrp files.

 I am perfectly aware of the problems this solution brings along,
 but hey, at least it's one more opinion/idea!

I'm strongly considering something like this if I ever get back to working
on the packaging system again (currently stuck in boot-strap  development
environment issues), although I'd probably do something like:
pppd-2.1.4.leaf
pppd-2.1.4.conf

There's also the issue of using a single default store package, which
could possibly also be supported by the same package system.  The user could
then choose how they wanted to backup...by individual package, or en
masse.

Charles Steinkuehler
http://lrp.steinkuehler.net
http://c0wz.steinkuehler.net (lrp.c0wz.com mirror)


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-03-01 Thread Charles Steinkuehler

 It sounds almost like you want a minimal set of enumerated binaries and
 functions, and then Oxygen would add set X and Dachstein would add set Y.

 Nope. No. Nein. Niet. Non. :-)

 There is NO baseline.

 There is one standard: the formation of a package.

 The final decision on a configuration always rest with the user and she
 expects the tools to do her job.

There actually *IS* a baseline implicit in the above.  *SOMETHING* has to
get linux booted, create/mount a root filesystem, and load the proverbial
package.  This implies some sort of boot-strapping code, as well as some
sort of package format.

Allow me to wander off on a slight philosophical tangent...

I think the core question is what makes LEAF LEAF?  What are the consistent
features between all the distributions we think of as being part of the LEAF
family?

There are *LOTS* of tiny linux distributions, and a rapidly growing number
of embedded linux distributions...what makes LEAF different from any of
these?

Many things come to mind, but I think the core feature is the dynamic
generation of a linux run-time environment on boot.  The embedded guys build
a complete environment on their high-powered development machine, then burn
a static filesystem image into their ROM, flash, or whatever storage media
they're using, and that's pretty much the end of it.  You may not even be
able to write to a file, much less be able to install a package for new
functionality.

The tiny linux distribution folks are also substantially different from
LEAF.  Virtually all of these distributions are based on running from a
hard-disk, and are essentially slimmed down versions of various full
releases.  Typically, if you don't have a hard-drive (or a good aproximation
of one), you can't effictively run one of these distributions.

LEAF, LRP, and a few other micro-distributions are designed to run without a
hard-disk, yet be extensible via a packaging system.  IMHO, this is the
single most unique and identifying feature of LEAF's many distributions, and
what sets us apart from the broader linux community in general.  Additional
characteristics like the linuxrc script, and the 2.2 series kernel patches,
exist due to the requirements of having a packaging system and dynamically
constructing the run-time environment at boot.

We've inherited a set of packaging and boot-strap conventions from LRP.
It's already been shown that the boot-strap conventions are not required to
make a LEAF system...this is evidence that while essential to a system
actually working, the specific boot methodology is *NOT* a critically core
part of LEAF.

So...who wants to start playing with the packaging system and re-defining
LEAF?

Once the packaging system is smart enough to know which files are
configuration files (and maybe even able to tell which files have changed),
it becomes much easier to support a variety of potentially complex issues,
allowing users, developers, or the in-between tinkerers to setup backups
and the loading of configuration data the way they want.

Lots of nifty ideas about this, but not enough time to jot everything down,
and I don't want David getting mad at me again ;-)

Seriously, I hope to have some time next week to begin to get some of the
ideas bouncing around in my head out into the open, where they can grow and
develop from everyone's input (or maybe they'll shrink back and be killed by
the light).

Charles Steinkuehler
http://lrp.steinkuehler.net
http://c0wz.steinkuehler.net (lrp.c0wz.com mirror)


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-03-01 Thread Michael D. Schleif


Charles Steinkuehler wrote:
 
  It sounds almost like you want a minimal set of enumerated binaries and
  functions, and then Oxygen would add set X and Dachstein would add set Y.
 
  Nope. No. Nein. Niet. Non. :-)
 
  There is NO baseline.
 
  There is one standard: the formation of a package.
 
  The final decision on a configuration always rest with the user and she
  expects the tools to do her job.
 
 There actually *IS* a baseline implicit in the above.  *SOMETHING* has to
 get linux booted, create/mount a root filesystem, and load the proverbial
 package.  This implies some sort of boot-strapping code, as well as some
 sort of package format.

Yes -- the bounds to which are the objects of my lines of questioning .
. .

[ snip ]

 Once the packaging system is smart enough to know which files are
 configuration files (and maybe even able to tell which files have changed),
 it becomes much easier to support a variety of potentially complex issues,
 allowing users, developers, or the in-between tinkerers to setup backups
 and the loading of configuration data the way they want.

Believe it or not, this is the end to all of my lines of questioning. 
Once we know this and know what can be expected -- and, corrallarily,
what cannot be known -- then, and only then, can that system be ``in
control'' and we can say that we are managing that system.  Until that
time, there is simply too little known about that system to quantify the
degree of certainty that we can claim.

Perhaps, this is where David parts company, since he is not interested
in building firewalls; rather, his interest -- imho -- lies more in
pushing various limits of these creatively designed systems.  Yes, that
is admirable creativity and inventiveness -- kudos, David!  However, my
primary interest in LEAF is management, monitoring and security based. 
I, for one, do *not* see these priorities as mutually exclusive; rather,
I believe that these, and others equally different, views can coexist
and grow and flourish together under the aegis of LEAF . . .

 Lots of nifty ideas about this, but not enough time to jot everything down,
 and I don't want David getting mad at me again ;-)
 
 Seriously, I hope to have some time next week to begin to get some of the
 ideas bouncing around in my head out into the open, where they can grow and
 develop from everyone's input (or maybe they'll shrink back and be killed by
 the light).

I look forward to new ideas . . .

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-28 Thread David Douthitt

On 2/28/02 at 4:24 PM, Serge Caron [EMAIL PROTECTED] wrote:

 For example, LEAF/LRP has in its unwritten feature set
 that users must log in. I have on occasions removed
 tinylogin and replaced the getty lines in
 /etc/inittab with /bin/ash  /dev/ttyn  /dev/ttyn 21.

This is similar to what Trinux does - no login.

 Don't want to commit to gnu's sed? Use busybox sed during
 the load sequence and let the user supply whatever he
 wants.

Oxygen doesn't use sed during boot.

 I want the user to float the baseline any way
 she sees fit for her situation. I don't WANT to provide
 packages for everything that she MAY want! When she finds
 a sed she likes, she decides how and where it will be
 packaged. As long the tools to do so are available, who
 cares what is running in system xyz?

With the maximal fragmentation in Oxygen, one can strip out GNU sed
for minised (or whatever) if it is desired - just rm sed.lrp and put
in the desired msed.lrp...

It sounds almost like you want a minimal set of enumerated binaries
and functions, and then Oxygen would add set X and Dachstein would add
set Y.

It sounds like ANSI FORTH (did I say this before?).  ANSI FORTH has a
CORE Word Set, and a FLOAT Word Set, etc.  An ANSI compliant FORTH may
have a minimal number of Sets, but if they are compliant then it is
ANSI Compliant with the CORE, [...etc...] Word Sets.

Is this what you have in mind?

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-27 Thread Serge Caron

Hello David,

Sorry for the pause :-)

There is a picture that is becoming clearer and clearer from your posts. I
will quote your post slightly out of sequence to bring some focus to this:

-Original Message-
From: David Douthitt [EMAIL PROTECTED]
To: Serge Caron [EMAIL PROTECTED]; LEAF Development
[EMAIL PROTECTED]
Date: February 23, 2002 10:14 PM
Subject: Re: [Leaf-devel] Re: Standards and due process :-)


[out of sequence :)]

 Clearly, LEAF is designed to allow packages to overwite each other's
files.

Not designed to.  It's just that the more capabilities you put into

You are working under the premise that a file has one and only one package
of residence. Please note that this is an observation and not a value
judgment of any kind: AFAIK, there is nothing wrong with this premise.

The natural consequence of this premise is that packages can be loaded in an
indeterminate order since, under this premise, there is no name space
conflict between packages. Hence
[out of sequence :)]

In Dachstein the load order is explicitly stated; in Oxygen the load
order is indeterminate (since all packages are loaded automatically).


You do not enforce this premise:
[out of sequence :)]
the packaging, the more space it takes up.  Bullet-proofing,
dependency checking, space checking, menu interfaces - it all takes up
space.  apkg is more powerful than lrpkg (I'd say) and I suspect it's

Some files are duplicated in config.lrp...
[out of sequence :)]
 Is the intent of your post to demonstrate that Oxygen
 already has a default store, albeit one reserved to *.conf
 files?

I don't know if you'd call it a default store - it's a way of
configuring the system so you can boot from CDROM.

...as you noted elsewhere, this single package is loaded last and is
therefore excluded from possible name space conflicts since it is processed
differently than any other package. This does not impact your premise.


However even with the original idea, root.lrp was NOT supposed to
change.  So the only things that will show up in any package defined
by ./ will be files that SHOULD be in another package


This is a not a natural consequence of your premise. You are implictly
claiming that there is a mapping of the entire file system into LEAF/LRP
packages for everybody to consult. You are also claiming that it is an error
to store in root.lrp any contents other than what you designed in.

The former claim is Michael's quest: if there is such a mapping, where can
we consult it and where is the body that will manage such a beast? If there
is no such mapping, where are the guidelines in designing a package?

The later claim means that the base system is not extensible.

Is my understanding correct?

Regards,

Serge Caron



___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-23 Thread David Douthitt

On 2/23/02 at 11:52 AM, Serge Caron [EMAIL PROTECTED] wrote:

 In all kindness, please use the setup that is most
 confortable for you. As soon as you move ./ out of the
 RAM disk, you get all kinds of benefits.

However even with the original idea, root.lrp was NOT supposed to
change.  So the only things that will show up in any package defined
by ./ will be files that SHOULD be in another package

At least with ./ not in the root package the default.lrp or whatever
will be quite small.

 Are you giving an example where files are dynamically
 stored in a package other than their package of origin?

Yes.

 Is the intent of your post to demonstrate that Oxygen
 already has a default store, albeit one reserved to *.conf
 files?

I don't know if you'd call it a default store - it's a way of
configuring the system so you can boot from CDROM.

 Thank you. To answer one of Michael's question, that
 miniature nc has enough power to create havoc on a
 network if an intruder gets in the box. At one point in
 time, netcat was the utility of choice for hackers and
 sysadmins alike. I will create a small script to replace
 the subset of Charles's mail command that is used by
 multicron-d.

Oxygen uses ssmtpd, a minimalist SMTP daemon that recognizes a bare
minimal set of sendmail options...

No nc... my problem with nc is I don't want a space conflict with the
full implementation of nc (which I have in a package).

 Clearly, LEAF is designed to allow packages to overwite each other's
files.

Not designed to.  It's just that the more capabilities you put into
the packaging, the more space it takes up.  Bullet-proofing,
dependency checking, space checking, menu interfaces - it all takes up
space.  apkg is more powerful than lrpkg (I'd say) and I suspect it's
quite a bit larger too.

 Nobody owns anything and the load order determine which
 contents stays on top.

In Dachstein the load order is explicitly stated; in Oxygen the load
order is indeterminate (since all packages are loaded automatically).

 This includes deleted files and it is possible, for
 example, to compute an MD5 digest taking into account
 these deleted files which means that it would be
 IMPOSSIBLE to reproduce this digest once the machine is
 running. So, if you build a system in a secure area and
 compute this digest, simply computing it again at boot
 time and displaying the signature will tell you right away
 if the system has been tampered with.

I'm not sure if I followed all that - but Oxygen apkg already supports
md5 digests ( /var/lib/lrpkg/pkg.md5 ) and verifies the md5sums
during the boot process.

 Think of it this way: there can be a miniature sed during
 the time packages are loaded and a full blown gawkish
 monster available by the time the startup script for you
 package is started. Unlike the present situation, the
 monster does not have to be part of the enclosure: you can
 have a measure of redundancy that allows the enclosure to
 use busybox sed, for example, until such a time that the
 real thing is loaded whithout having the enclosure claim
 to be the exclusive residence of sed.

The Oxygen boot process does not use sed, and instead has GNU sed 3.0
in a package on the disk (sed.lrp).

 v5.0.4 innovates in detecting the shell under which it is
 running. It is a lttle bit more pro-active. We are still
 mostly talking ash and busybox ash.

I mentioned already that busybox ash comes directly from ash sources.


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-19 Thread Mike Noyes

At 2002-02-18 23:31 -0600, David Douthitt wrote:
Well, that's not quite what I had in mind.  For me, I was thinking
more along the lines of:

A distribution developer perhaps runs a script, writes some shell
code, etc. - and creates a package (or shell script, really) which
tests for various things.  The script (or scripts) would work within
the LEAF environment...

Then a package creator (or software developer) would run a compilation
of these scripts (which would have some overlap... and which overlap
would be removed...) and it would tell him if his code was compatible
with the environment or not.  These scripts would be available to run
in the LEAF environment, or any environment...

David,
This would be great. We definitely need a way to test packages against 
current releases/branches. Will redirection to file of output created by 
the package test run be possible? I'd like to see this information included 
in, or distributed with our packages.

I'd prefer to see the information distributed with our packages in a 
separate parseable file. This will allow creation of a phpWS module, that 
is able to index our packages by release/branch compatibility


OT: regexp question
BTW, is it possible to use a not bracket expression against a string?
Here is an example that doesn't work. :-(

'Content-Type: .*[^\(plain\|signed\)]'

--
Mike Noyes [EMAIL PROTECTED]
http://sourceforge.net/users/mhnoyes/
http://leaf.sourceforge.net/content.php?menu=1000page_id=4


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-19 Thread Charles Steinkuehler

 I apolologize for leaving in the middle of an important conversation.
 Unfortunately, this will happen from time to time. Life gets in the way
:-)

Leaving in the middle?  I never even got involved :

Hopefully it's not too late to start jumping in...

 My personal experience is that you ride change, much like a horse,
sometimes
 just for fun, sometimes to get from point A to point B.

It's the falling off and turning into Christopher Reeve part that I'm
worried about :-)

 In this case, I have submitted an idea supported by a bunch of
definitions.
 The idea is that the contents of our initial RAM disks be unambiguously
 enumerated which imply that root (/) be moved to any other package (your
 choice!) which I call the default store.

 This does not require any adherence to any foreign code, programs or the
 like. In fact I can implement the entire concept in Oxygen 1.9 by editing
 two DATA files. The first one is root.list which contains the single entry
 ./ and which I replace with the unambiguous enumeration of the contents of
 root.gz (see the appendix below). The second one is any other file I
choose
 as my default store: my personnal preference is home.lrp and I edit
 home.list to contain the single entry ./.

This is perhaps the clearest example of what you're after you have provided
to date...thinking about this more, I'm not even sure a default store of
any sort is necessarily a great idea.  On one hand, the default package
means there are no orphaned files, but the overlapping nature of the
existing package list format leads to lots of problems in it's own right.  I
need to think about this some more...

 The code that I have submitted to support these ideas also promotes ease
of
 deployment, ease of documentation, extensibility, and support for run of
the
 mill appliances. The fact is, much of the code that runs once init
 receives control is the same in LRP, *stein, Bering and a number of other
 derivatives. Once he has a grasp that everything else can be enumerated,
 Michael can take the root appliance in the above floppy and document its
 tacit specifications. Again, this can be done from the appliance point
of
 view without being reflected in code.

 In the meantime, I haved continued to lower this baseline. The page
 http://leaf.sourceforge.net/devel/scaron/leaf.htm has been updated to
 reflect release of v5.0.3 as well as introduce v5.1.0 and v5.3.0. This
 documents (alas poorly) the process of creating enclosures and shifting
the
 baseline anyway the end user sees fit. Doing this made me realize how I
can
 change the backup code to avoid loosing files enumerated in the xxx.links
 package lists, which happens, for example, when a busybox applet is
replaced
 with the real thing. v5.0.3 also drops the POSIXness stuff, without
breaking
 *stein and Bering, AFAIK: see the caveat below :).

Packaging enhancements!  Lowering the baseline!  All good to me! :-)

Actually, while I haven't been real involved in the disucssions here lately,
I have been doing a bit of LEAF oriented work.  I've been investigating the
Gentoo ebuild process, and checking out some potential scripting languages
(mainly Forth derivations and Lua).  I think I'm ready to lower the bar
even more:  *NO* glibc, *NO* shell, and a *VERY SMALL* initial ramdisk that
bootstraps the rest of the distribution.  This should all be possible using
a self-contained scripting lanugage that has the capability to do kernel
calls.  Very much like e3, which talks to the kernel directly rather than
using a c library, the bootstrap code can be made very small.  By using tiny
interpreted language like Forth, the boot process can still be made
flexible.  The key part I'm still checking into is being able to dynamically
extend the scripting language once the system is booted, enabling more
normal functionality, including honoring of local setting and similar.

The Gentoo portage system also looks like it's tailor-made to create a
compile environment for LEAF.  I've successfully installed Gentoo into a
directory on a RedHat system.  While I currently cannot (and don't want to)
boot directly into Gentoo (that wasn't the point), I *CAN* boot into RedHat,
chroot to the Gentoo system, and ebuild to my hearts content.  With the
portage system already setup to handle system-wide user preferences for
things like target CPU, optimization levels, etc, it should be fairly easy
to make a LEAF system specification, and allow developers to both compile
the entire system from source (very hard to do at the moment), as well as
customize their systems.  A plus is the ebuild files are pretty tiny, and
perfectly suited for CVS archiving/versioning.

The one (potential) drawback to the portage system is it seems to be
restricted to x86 platforms at the moment, and I'd like to see support for
other architectures.  I have yet to crawl through the guts of the portage
system and see if the Gentoo folks have thought this far ahead (srpms *DO*
support keeping info for 

Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-19 Thread Serge Caron


-Original Message-
From: Charles Steinkuehler [EMAIL PROTECTED]
To: Serge Caron [EMAIL PROTECTED]; [EMAIL PROTECTED]
[EMAIL PROTECTED]
Date: February 19, 2002 3:28 PM
Subject: Re: [Leaf-devel] Re: Standards and due process :-)


It's the falling off and turning into Christopher Reeve part that I'm
worried about :-)

I think you chose a perfect example. The courage of that man makes you
forget the horse altogether.

This is perhaps the clearest example of what you're after you have provided
to date...thinking about this more, I'm not even sure a default store of
any sort is necessarily a great idea.  On one hand, the default package
means there are no orphaned files, but the overlapping nature of the
existing package list format leads to lots of problems in it's own right.
I
need to think about this some more...



Now we're talking! If these were sets, the union of all the xyz.list files
is not equal to the universe of files available on the system (represented
by /) because some files are created by running programs, operators,
intruders :). So the set of orphaned files contains interresting stuff in
its own right. However, this is only the obvious part of the iceberg.

In the long term, I want to be able to run from secure media. In the short
term, I use CD for write protected storage and floppy for write-enabled
storage (wich I write-protect between sessions :). Suppose a package
designer stores something in /etc/mypackage (which is either a file or
directory, your choice). This designer has many choices:
1- claim /etc/mypackage as part of this package
2- rely on an unwritten standard or tacit convention that /etc belongs to
another package (presumably etc.lrp)
3- rely on the user's knowledge of the LEAF standard that his file will end
up in the default store.

If /etc/mypackage is also a directory, the package designer can optimize
the backup operation by omitting certain temporary files (enumerated in
xyz.anything.list).

Suppose that the system of partial backups is finely tuned so that modified
files always end up in write-enabled storage. Suppose also that packages
from read-only storage are always loaded before packages from write-enabled
storage, eg, you don't loose modifications. Finaly, presume the goodwill of
the package developer, eg, package xyz claims nothing out of its immediate
territory.

This above set of conventions places the entire burden of protecting this
package in the hands of the package designer with no support from the LEAF
appliance it is supporting or the user operating the machine. This is
precisely Michael's line of questioning. If there is a standard, then the
user knows what is going on and backup is one of the user's many
responsibilities. However, we all know that history has been written before
us and that pppd uses /etc/ppp and dhcpd uses /var/state, etc: addressing
the problem from this angle IS next to impossible, especially if we try to
make a sysadmin out of the user.

This user is also subject to constraints of his own. The readme file in /
stating that trespassers will be prosecuted to the maximum extent of the law
is a real life example. The file belongs to the user and even he can't
choose the location. Another example is dropped files. You and I may find
that dropping /var/run/xyz.pid files is OK. Unfortunately, it does not match
many audit policies, including those of my organization.

None of these things are issues if the filesystem is persistent storage such
as hard disk. When it is not, you have to expect that somebody else than
LEAF will select which files goes to write-enabled storage. As of now, I am
doing OK by rewriting most lists (on the fly!) and saving the default store.

This system is far from perfect and this is why I am supporting Michael's
quest :-)


Packaging enhancements!  Lowering the baseline!  All good to me! :-)



Actually, the baseline goes lower every release :-)

even more:  *NO* glibc, *NO* shell, and a *VERY SMALL* initial ramdisk that
bootstraps the rest of the distribution.  This should all be possible using


Precisely! This is why the appliance boundary is set to start with
/sbin/init. Anything before that should be abstracted as turn it on and it
works. The term enclosure was coined because it is not a box and you
can't throw it away. On the other hand, the component must ship with the
appliance (red paint, anyone?  :).

a self-contained scripting lanugage that has the capability to do kernel
calls.  Very much like e3, which talks to the kernel directly rather than
using a c library, the bootstrap code can be made very small.  By using
tiny
interpreted language like Forth, the boot process can still be made
flexible.  The key part I'm still checking into is being able to
dynamically


flexible is a nightmare until you explicitly specify the side effects of
the load order. The bootstrap loader loads THE ramdisk before the kernel and
you can be certain that things are what they look like when linuxrc gets
control

Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-19 Thread Michael D. Schleif


Serge Caron wrote:
 
 I apolologize for leaving in the middle of an important conversation.
 Unfortunately, this will happen from time to time. Life gets in the way :-)

I, too, have been erstwhile distracted and now is not the best time to
take on all detractors.

It is disconcerting when one's words are taken other than literally and
totally out of context.  Never let it be said that that, alone, stopped
me ;

Nevertheless, now that Serge is back online, a few comments are in line:

[ snip ]

 It is emotions and feelings that will drive Mike to discount his opinion
 because he is not producing code and it is emotions and feelings that
 prompt Charles to put value where value is due. I entirely support the
 expression of these emotions and feelings (which includes humor: I guarantee
 that if you can laugh at yourself, you will NEVER cease to be amused :).
 
 My personal experience is that you ride change, much like a horse, sometimes
 just for fun, sometimes to get from point A to point B.

Sometimes, I ride the horse, because I am a horseman and horsemanship
(change management) is a job at which I excel.

 In this case, I have submitted an idea supported by a bunch of definitions.
 The idea is that the contents of our initial RAM disks be unambiguously
 enumerated which imply that root (/) be moved to any other package (your
 choice!) which I call the default store.

``Unambiguous enumeration'' sounds precipitously close to defining
convention, since convention, by definition, is ``General agreement or
concurrence; arbitrary custom; usage; conventionality.''  When you
distill a process down to its basic steps, then you have discovered that
process's standard mode of operation.

O, my!  There is that dangerous word: standard.

Nowhere in this process of discovery have I mentioned stricture,
restriction, preclusion, obstruction, commandment, law, edict -- nor any
other synonym for boundary, imposition nor limitation.  That, dear
readers, is intentional.

[ snip ]

 I have seen this idea mocked and the discussion go all over the map from
 intents of imposing a de facto standard to attempts of restricting the
 expression of individuality of developers. Yet, given the fact that Oxygen
 1.9+ may be compatible with tar.gz and plain gz ramdisks, and given the fact
 that the default store always retain the standard LRP format, I can only
 see benefits from this idea for Oxygen. Because it is an idea, it can be
 implemented by anybody in the form of their choice and does not have to BE
 part of a product offering. It can be documented and left at that. In my
 case, I wanted to use the product NOW and I choose to edit the two files.
 Further, when Oxygen 1.9+ becomes available, I will drop my home.lrp on the
 new kit and reboot with all my stuff intact. Instant upgrades are always
 interesting :).

And, they are *possible*, because you have discovered the conventions
and standards inherent in Oxygen 1.9+.  If that is all that you have
accomplished, that would be enough to illustrate my point.  However,
your theses are far more extensible than that, which prompts me to
pursue this further . . .

 Not only do I think that David Douthitt is wright when he says there is no
 baseline, I aim to write my code for a minimalist implementation of
 everything (including sed :). My baseline is lower than his. However,
 Michael Schleif is also wright when he says In fact, a system, such as leaf
 and lrp, is and always has been founded on a -- confusing -- myriad of tacit
 specifications.  It is this implied set of conventions that I am
 addressing -- the fact that these specifications are largely unwritten and,
 therefore, understood by a very small minority. 

To distill a set of foreign processes into a common set of shared
conventions and standards *IS* a baseline!

If there is nothing in common between any two LEAF distributions, then
there could not be such camaraderie as evidenced by this List Service. 
Fact is, there is more in common between these several distributions
than there is between any two developers themselves.  The fact that this
genre, if you will, ``a class of artistic endeavor having a
characteristic form or technique'', otherwise known as Linux Embedded
Appliance Firewall, has a future and is moving from the status quo
toward mainstream 2.4x kerneldom, tells me that this dialectic is a
process in motion.

What longterm purpose does it serve to keep these specifications arcane?

 I believe that it is possible to have these specifications without a
 baseline. When told that it was impossible to abstract something that would
 be common to 2.2 and 2.4 kernels, I actually produced a floppy on which
 people can comment. To quote from my February 11 post:
 You CAN voice your opinion and submit suggestions WITHOUT spending long
 hours in quality control. And so can anyone else. There is a disk at
  http://leaf.sourceforge.net/devel/scaron/discussion.img. It contains one
 boot loader, two kernels, four 

Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-19 Thread Michael D. Schleif


Serge Caron wrote:
 

[ snip ]

 In the long term, I want to be able to run from secure media. In the short
 term, I use CD for write protected storage and floppy for write-enabled
 storage (wich I write-protect between sessions :). Suppose a package
 designer stores something in /etc/mypackage (which is either a file or
 directory, your choice). This designer has many choices:
 1- claim /etc/mypackage as part of this package
 2- rely on an unwritten standard or tacit convention that /etc belongs to
 another package (presumably etc.lrp)
 3- rely on the user's knowledge of the LEAF standard that his file will end
 up in the default store.
 
 If /etc/mypackage is also a directory, the package designer can optimize
 the backup operation by omitting certain temporary files (enumerated in
 xyz.anything.list).
 
 Suppose that the system of partial backups is finely tuned so that modified
 files always end up in write-enabled storage. Suppose also that packages
 from read-only storage are always loaded before packages from write-enabled
 storage, eg, you don't loose modifications. Finaly, presume the goodwill of
 the package developer, eg, package xyz claims nothing out of its immediate
 territory.
 
 This above set of conventions places the entire burden of protecting this
 package in the hands of the package designer with no support from the LEAF
 appliance it is supporting or the user operating the machine. This is
 precisely Michael's line of questioning. If there is a standard, then the
 user knows what is going on and backup is one of the user's many
 responsibilities. However, we all know that history has been written before
 us and that pppd uses /etc/ppp and dhcpd uses /var/state, etc: addressing
 the problem from this angle IS next to impossible, especially if we try to
 make a sysadmin out of the user.

Yes.  Again, that a system successfully boots up is great!  That I know
what to expect in a system long after bootup is quite another thing ;

Perhaps, once we understand how the system works, it might be possible
to agree on silly little things like location of configuration files. 
If it contributes to better system performance, better system security,
c., perhaps it may not be out of line to suggest that /var/state/dhcp
be a symbolic link to /etc/dhcp?  Such a thing is trivial to a package
developer; but, no such step will likely be taken, unless there is some
convention that lends credence and bestows value to this decision.

 This user is also subject to constraints of his own. The readme file in /
 stating that trespassers will be prosecuted to the maximum extent of the law
 is a real life example. The file belongs to the user and even he can't
 choose the location. Another example is dropped files. You and I may find
 that dropping /var/run/xyz.pid files is OK. Unfortunately, it does not match
 many audit policies, including those of my organization.
 
 None of these things are issues if the filesystem is persistent storage such
 as hard disk. When it is not, you have to expect that somebody else than
 LEAF will select which files goes to write-enabled storage. As of now, I am
 doing OK by rewriting most lists (on the fly!) and saving the default store.
 
 This system is far from perfect and this is why I am supporting Michael's
 quest :-)

Building on your notion of ``unambiguous enumeration'', let it be said
that the more that we know about a running system, the more that we
understand the processes in motion that comprise that system, the more
secure we can be.  What is security?  Part of it is knowing that a
system is performing according to a specific set of specifications. 
Knowing which files, in what state and allowable contents, c. we should
expect on the running system is, itself, a specification.  As such, that
specification is also a standard by which we can measure such
interesting Events as system load, performance, intrusion, c.

[ snip ]

 I am less excited by the building of the LEAF components themselves at this
 point (No! I do NOT like Red Hat 5.2 :-). I am certain that we can come up
 with an unambiguous way of specifying the whole system, even if we have to
 point out all the gotchas one by one. Then I will be excited for anything
 else I can put in there :-)

Once we arrive at this ``unambiguous way of specifying the whole
system'', then we have blown the lid off of previous limitations. 
Developers can concentrate on creating packages even better suited to
the LEAF environment.  As it is, we grab some off-the-shelf source,
compile it on our slink over there in the corner and figure out how to
shoehorn it into an LRP file.  There is much more that many more people
can do to contribute to the greater good of this project, once the
system is understandable to outsiders . . .

What do you think?

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we 

Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-19 Thread David Douthitt

On 2/19/02 at 6:25 AM, Mike Noyes [EMAIL PROTECTED]
wrote:

 At 2002-02-18 23:31 -0600, David Douthitt wrote:

 David,
 This would be great. We definitely need a way to test
 packages against current releases/branches. Will
 redirection to file of output created by the package test
 run be possible? I'd like to see this information included
 in, or distributed with our packages.
 
 I'd prefer to see the information distributed with our
 packages in a separate parseable file. This will allow
 creation of a phpWS module, that is able to index our
 packages by release/branch compatibility

Gak!  I was just thinking that someone (like an rcf developer or a
Shorewall developer, etc.) would test their software against the
current versions - and that would be that.

You're going in way over my head - seems like overkill.  I'd just say
the following: Compatable with: DistroX versionZ; DistroY versionQ
etc...

Or very possibly, a script that would run and test it.  So thus, not
only the developer could use it, but a general user.  The script would
run, and then it would say one of two things:


This software will not
run on your system.  Check
the messages above for the
reason.


...or...

Compatability verified!

 OT: regexp question
 BTW, is it possible to use a not bracket expression
 against a string?
 Here is an example that doesn't work. :-(
 
 'Content-Type: .*[^\(plain\|signed\)]'

The (...|...) construct is not recognized by much - I know egrep
(grep -e) recognizes it, but grep does not.

If you have UNIX in a Nutshell (worth getting!) look up the regexp
section - in mine, that's one of the most commonly used parts.  Not
every regexp function is available everywhere there's regexps to be
had (like vi, grep, egrep, sed...)

Also, the way you've got it there, you are looking for anything that
starts with:

Content-Type: 

...followed by any characters, then followed by one of the characters
NOT in the set of: ( a e i d g l n p ) |

If you are using a compatable egrep, you want:

egrep Content-Type: .*(plain|signed)

You could do the same thing with sed this way:

sed -n '/Content-Type: / {
/plain/p
/signed/p
}'
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-19 Thread David Douthitt

I was thinking...

If you make root.list contain specific files, and move the
specification of ./ to another package, that raises some interesting
things  What if instead of gloming onto home.lrp, you create
overflow.lrp or default.lrp?

One nice benefit would be that if that package grows, one would KNOW
it and the root.lrp package in systems that still use it would not
grow without bound if something is messed up.

On 2/19/02 at 5:23 PM, Serge Caron [EMAIL PROTECTED] wrote:

 Suppose that the system of partial backups is finely tuned
 so that modified files always end up in write-enabled
 storage. Suppose also that packages from read-only storage
 are always loaded before packages from write-enabled
 storage, eg, you don't loose modifications. Finaly,
 presume the goodwill of the package developer, eg, package
 xyz claims nothing out of its immediate territory.

Oxygen already supports the use of config.lrp, which is a package
containing ALL files listed in *.conf files and saved in package
format - and this package is loaded *LAST* after all other packages.

This means that you can update the conf files and then save them to a
floppy which is used during a CDROM boot - in which case your
configuration is used and the system is configured just how you want
it.
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-19 Thread David Douthitt

On 2/19/02 at 2:25 PM, Charles Steinkuehler [EMAIL PROTECTED]
wrote:

 Actually, while I haven't been real involved in the
 disucssions here lately, I have been doing a bit of LEAF
 oriented work.  I've been investigating the Gentoo ebuild
 process, and checking out some potential scripting
 languages (mainly Forth derivations and Lua).  I think I'm
 ready to lower the bar even more:  *NO* glibc, *NO*
 shell, and a *VERY SMALL* initial ramdisk that bootstraps
 the rest of the distribution.  This should all be possible
 using a self-contained scripting lanugage that has the
 capability to do kernel calls.  Very much like e3, which
 talks to the kernel directly rather than using a c
 library, the bootstrap code can be made very small.  By
 using tiny interpreted language like Forth, the boot
 process can still be made flexible.  The key part I'm
 still checking into is being able to dynamically extend
 the scripting language once the system is booted, enabling
 more normal functionality, including honoring of local
 setting and similar.

Actually, this sounds like a ForthOS to me... The idea of running
FORTH under Linux, or UNIX, or DOS, or Windows is actually new and
against the grain..  FORTH was designed as its own environment, the
way Smalltalk was - except FORTH is small :)

A Forth system can include things like assembler, editor, multitasking
in less than 64k - or even less.  And the way Forth is, you EXTEND the
language when you program in it.

I've not heard of a FORTH router, but why not?  Would be fun to get
back into FORTH again...

 The Gentoo portage system also looks like it's tailor-made
 to create a compile environment for LEAF.  I've
 successfully installed Gentoo into a directory on a
 RedHat system.  While I currently cannot (and don't want
 to) boot directly into Gentoo (that wasn't the point), I
 *CAN* boot into RedHat, chroot to the Gentoo system, and
 ebuild to my hearts content.

One of these days I'll install GenToo somewhere.  However, first I've
got to get my learning caught up on this OpenBSD/mac68k and
Solaris/i86 I've just installed within the last week :)

 With the
 portage system already setup to handle system-wide user
 preferences for things like target CPU, optimization
 levels, etc, it should be fairly easy to make a LEAF
 system specification, and allow developers to both compile
 the entire system from source (very hard to do at the
 moment),

I'm starting to get something together myself that will do this.  I'm
using the FreeBSD ports tree as my model, which is where GenToo took
its inspiration from.  I'm trying to write everything in sh (in
makefiles) - which is much more powerful than people usually think :-)

I'm nearly done doing this for root.gz in Oxygen; right now I've been
doing binaries, one at a time.  Next will be to gather all of the
binaries together, create a filesystem, populate it, and then compress
it to create root.gz...

I'll also be upgrading all of the binaries in 1.8 and 1.9 since these
new binaries all use glibc 2.1 - I think some of the root binaries
still use glibc 2.0 calls, since I was also creating packages at the
same time and wanted to use glibc 2.0 wherever possible.

Now that packages and the base (root.gz) system trees are separate
no problem.  I expect I'll upload the entire tree in one of the coming
weeks.
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-18 Thread David Douthitt

On 2/17/02 at 5:52 AM, Mike Noyes [EMAIL PROTECTED]
wrote:

 At 2002-02-16 21:31 -0600, David Douthitt wrote:
 I was thinking one would run this script in a LEAF
 environment - and it would be set up by a developer, who
 defines what is needed.  Then you could boot Oxygen (or
 PacketFilter, or...) and run this script which tests the
 environment.
 
 David,
 Exactly. Then I thought we could take this output, and use
 it to check  new packages for release/branch
 compatibility. The output could be placed in a text file,
 and parsed by another script that is designed to test
 packages. This new script wouldn't run from a LEAF
 environment. Instead, it would use a development
 environment.
 
 A release/branch lead developer runs the environment test
 script on his/her release/branch. He then places the
 output files on our site. A package developer downloads
 the environment test script output files to a machine with
 the package test script. The package developer then tests
 his/her new package.

Well, that's not quite what I had in mind.  For me, I was thinking
more along the lines of:

A distribution developer perhaps runs a script, writes some shell
code, etc. - and creates a package (or shell script, really) which
tests for various things.  The script (or scripts) would work within
the LEAF environment...

Then a package creator (or software developer) would run a compilation
of these scripts (which would have some overlap... and which overlap
would be removed...) and it would tell him if his code was compatible
with the environment or not.  These scripts would be available to run
in the LEAF environment, or any environment...

 $ lrp_pkg_tst.pl foo.lrp
 Testing foo.lrp ...
 file structure: OK
 program name: foo
 program version: 1.00
 libc version: 2.1.3
 Checking compatibility with Oxygen...
Parsing 1.9 output: yes
Parsing 1.8 output: yes
Parsing Dec.2000 output: no
 Checking compatibility with Dachstein...
Parsing 1.0.2 1680: no
Parsing 1.0.2 CD: no

I was thinking more like:

# lrp_pkg_tst.sh requirements.txt
Testing for test -z option... yes
Testing for test -n option... yes
Testing for NFS mount... no
Testing for root.lrp... no
Testing for 1.68M disk... no
Testing for vfat support... no
Testing for iso9660 support... no
Testing for ide support... no
[...etc...]

Summary:
Oxygen support: Ok
Dachstein support: Ok
Bering support: No

#
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-17 Thread Mike Noyes

At 2002-02-16 21:31 -0600, David Douthitt wrote:
I was thinking one would run this script in a LEAF environment - and
it would be set up by a developer, who defines what is needed.  Then
you could boot Oxygen (or PacketFilter, or...) and run this script
which tests the environment.

David,
Exactly. Then I thought we could take this output, and use it to check  new 
packages for release/branch compatibility. The output could be placed in a 
text file, and parsed by another script that is designed to test packages. 
This new script wouldn't run from a LEAF environment. Instead, it would use 
a development environment.

A release/branch lead developer runs the environment test script on his/her 
release/branch. He then places the output files on our site. A package 
developer downloads the environment test script output files to a machine 
with the package test script. The package developer then tests his/her new 
package.

$ lrp_pkg_tst.pl foo.lrp
Testing foo.lrp ...
file structure: OK
program name: foo
program version: 1.00
libc version: 2.1.3
Checking compatibility with Oxygen...
   Parsing 1.9 output: yes
   Parsing 1.8 output: yes
   Parsing Dec.2000 output: no
Checking compatibility with Dachstein...
   Parsing 1.0.2 1680: no
   Parsing 1.0.2 CD: no

I thought it was possible to determine the libc version used for compiling 
a package. The program name and version may require package developer 
intervention.

After the new package is tested by the script, a text file is generated 
that can be included with the package, or kept separate. The output would 
provide information similar to your package repository .desc file.


Now if you could just generate this set of (command) requirements
(and option requirements) on the fly from a script

That would be nice. :-)
However, I don't think we'll see it any time soon, if ever. :-(

--
Mike Noyes [EMAIL PROTECTED]
http://sourceforge.net/users/mhnoyes/
http://leaf.sourceforge.net/content.php?menu=1000page_id=4


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-16 Thread David Douthitt

On 2/15/02 at 10:15 PM, David Douthitt [EMAIL PROTECTED] wrote:

 Perhaps what we NEED is a test suite - a sort of
 minimalist autoconf which details what works and what
 doesn't...

Like this:

Checking for busybox date no
Checking for busybox install no
Checking for ip... yes
Checking for netstat... no
Checking for route... no
Checking for ifconfig... no

...etc...
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-16 Thread Mike Noyes

At 2002-02-16 07:25 -0600, David Douthitt wrote:
On 2/15/02 at 10:15 PM, David Douthitt [EMAIL PROTECTED] wrote:

  Perhaps what we NEED is a test suite - a sort of
  minimalist autoconf which details what works and what
  doesn't...

Like this:

Checking for busybox date no
Checking for busybox install no
Checking for ip... yes
Checking for netstat... no
Checking for route... no
Checking for ifconfig... no

...etc...

David,
Would it be possible to apply something like this to package testing. e.g.

Checking for program name: foo.bar
Checking for program version: 1.00
Checking for libc version: 2.1.3
Checking compatibility with Bering: no
Checking compatibility with Dachstein: no
Checking compatibility with Oxygen: yes
Checking compatibility with PacketFilter: no
Checking compatibility with WRP: no

--
Mike Noyes [EMAIL PROTECTED]
http://sourceforge.net/users/mhnoyes/
http://leaf.sourceforge.net/content.php?menu=1000page_id=4


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-16 Thread Mike Noyes

David,
I should know better than to post this early in the morning. I didn't 
express myself well. See in-line comments below for an explanation. Sorry. :-(

At 2002-02-16 05:42 -0800, Mike Noyes wrote:
At 2002-02-16 07:25 -0600, David Douthitt wrote:
On 2/15/02 at 10:15 PM, David Douthitt [EMAIL PROTECTED] wrote:

  Perhaps what we NEED is a test suite - a sort of
  minimalist autoconf which details what works and what
  doesn't...

Like this:

Checking for busybox date no
Checking for busybox install no
Checking for ip... yes
Checking for netstat... no
Checking for route... no
Checking for ifconfig... no

...etc...

David,
Would it be possible to apply something like this to package testing.

Scratch the question above and replace it with:

Would it be possible to parse the autoconf output above for package testing?

  e.g.

Checking package file structure: OK

Checking for program name: foo.bar
Checking for program version: 1.00
Checking for libc version: 2.1.3
Checking compatibility with Bering...

 Parsing Bering autoconf output: no

Checking compatibility with Dachstein...

 Parsing Dachstein autoconf output: no

Checking compatibility with Oxygen...

 Parsing Oxygen autoconf output: yes

Checking compatibility with PacketFilter: no

 Parsing PacketFilter autoconf output: no

Checking compatibility with WRP: no

 Parsing WRP autoconf output: no

--
Mike Noyes [EMAIL PROTECTED]
http://sourceforge.net/users/mhnoyes/
http://leaf.sourceforge.net/content.php?menu=1000page_id=4


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-16 Thread David Douthitt

On 2/16/02 at 6:20 AM, Mike Noyes [EMAIL PROTECTED]
wrote:

 At 2002-02-16 05:42 -0800, Mike Noyes wrote:
 At 2002-02-16 07:25 -0600, David Douthitt wrote:
 On 2/15/02 at 10:15 PM, David Douthitt [EMAIL PROTECTED] wrote:
 
   Perhaps what we NEED is a test suite - a sort of
   minimalist autoconf which details what works and what
   doesn't...
 
 Like this:
 
 Checking for busybox date no
 Checking for busybox install no
 Checking for ip... yes
 Checking for netstat... no
 Checking for route... no
 Checking for ifconfig... no
 
 ...etc...
 
 David, Would it be possible to apply something like this
 to package testing.
 
 Scratch the question above and replace it with:
 
 Would it be possible to parse the autoconf output above
 for package testing?

I wasn't talking about actually USING autoconf...

   e.g.
 
 Checking package file structure: OK

Anyway, apkg -v already does this...

 Checking for program name: foo.bar
 Checking for program version: 1.00
 Checking for libc version: 2.1.3

Checking for program version requires a way to find it out.  Not only
that, it implies that if you need 1.00 but have 2.01a_Beta3 then
you're alright - but try to program that...

Finding the libc version is probably limited to checking the filename
in /lib - but is limited again in the comparison values...

 Checking compatibility with Bering...
 
  Parsing Bering autoconf output: no
 
 Checking compatibility with Dachstein...
 
  Parsing Dachstein autoconf output: no
 
 Checking compatibility with Oxygen...
 
  Parsing Oxygen autoconf output: yes
 
 Checking compatibility with PacketFilter: no
 
  Parsing PacketFilter autoconf output: no
 
 Checking compatibility with WRP: no
 
  Parsing WRP autoconf output: no

I was thinking one would run this script in a LEAF environment - and
it would be set up by a developer, who defines what is needed.  Then
you could boot Oxygen (or PacketFilter, or...) and run this script
which tests the environment.

Now if you could just generate this set of (command) requirements (and
option requirements) on the fly from a script
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread guitarlynn

I would just like to thank everyone for this discussion.

Due to limited examples and precise wording designed to
be clear (but somehow let most of the information vague),
I am finally coming into a more complete understanding
of what was originally proposed, and what direction some
developers would like to go. 

In a very basic sense, what is proposed is that the developers
fully document _how_ and _what_ something is loaded, not to
mention _what_ exactly is being used. A repository or port
system would be used for each developers system, so users
should not be confused to what will and will not work will this
particular system and a clear direction to take when they need
something that is not necessarily provided or capable or being
done with the said existing system.

I don't think anyone would argue that something clearly along
these lines would best be implemented at _this_ point in time.

I am most likely the common denominator to the general public
among the developers ... I am not a professional programmer
by any means, I just know enough to generally get done _what_ 
I am aiming for within my limited skills. I look forward to seeing 
the process and result of the vast and broad knowledge that
exists within this group. It should be interesting and educational
for me!

Meanwhile, I'll be off doing docs, packaging, maybe a custom
image, and the list (I really should think a little more before
responding ... I make some real un-intelligent posts on a regular 
basis).

Thx all!

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Michael D. Schleif


Correction: my bad . . .

Michael D. Schleif wrote:
 
 VoilĂ !
 
 Serge Caron wrote:
 
  Let me reduce my confusion to its firstmost problem: How does your sed
  process facilitate ``*I don't backup program binaries*''?
  
  AFAIK, ${pkg}.list files -- _minus_ ${pkg}.exclude.list files -- define
  which files comprise the ${pkg} package -- correct?
  
  Once you eliminate all files under etc, /etc and ./etc from ${pkg}.list
  files, what you have left is ``a bunch of binaries'' -- am I wrong?
  
  Wouldn't you reach this same end if all files under etc, /etc and ./etc
  were only listed in ${pkg}.exclude.list files?
  
  Until I fully understand this premise of yours, I do not know how to
  proceed . . .
 
  OK, so lets process this from the start. Here is the contents of
  /var/lib/lrpkg/bindc.list, an old BIND 8.something package:
 
etc/init.d/bind
etc/named.conf
usr/sbin/named
usr/sbin/ndc
var/lib/lrpkg/bindc.*
var/named
 
  Only concentrate on those two etc entries. The package author did not define
  a .local file to backup just part of the package. The package is running off
  CD and I can't rewrite it there :-). Finally, even if I could, I DO NOT WANT
  to. I want to keep this package in whatever form it was delivered for the
  entire duration of its useful life.

[ snip ]

 Two (2) questions, at this point:
 
 [1] The *only* way to make your ${pkg}.list modifications stick is to
 perform a backup -- right?  Since your example, bindc.lrp, includes *NO*
 LIST file and you have no time to create one, then you need to backup
  
  This should read: LOCAL

 the *entire* package, just to enforce persistence of this modification
 -- right?  If so, what do you gain?  Hopefully, it is not a large
 package, nor that you have only that floppy on which to store it ;

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Michael D. Schleif


Correction #2: my bad . . .

Michael D. Schleif wrote:
 
 VoilĂ !
 
 Serge Caron wrote:
 
  Let me reduce my confusion to its firstmost problem: How does your sed
  process facilitate ``*I don't backup program binaries*''?
  
  AFAIK, ${pkg}.list files -- _minus_ ${pkg}.exclude.list files -- define
  which files comprise the ${pkg} package -- correct?
  
  Once you eliminate all files under etc, /etc and ./etc from ${pkg}.list
  files, what you have left is ``a bunch of binaries'' -- am I wrong?
  
  Wouldn't you reach this same end if all files under etc, /etc and ./etc
  were only listed in ${pkg}.exclude.list files?
  
  Until I fully understand this premise of yours, I do not know how to
  proceed . . .
 
  OK, so lets process this from the start. Here is the contents of
  /var/lib/lrpkg/bindc.list, an old BIND 8.something package:
 
etc/init.d/bind
etc/named.conf
usr/sbin/named
usr/sbin/ndc
var/lib/lrpkg/bindc.*
var/named
 
  Only concentrate on those two etc entries. The package author did not define
  a .local file to backup just part of the package. The package is running off
  CD and I can't rewrite it there :-). Finally, even if I could, I DO NOT WANT
  to. I want to keep this package in whatever form it was delivered for the
  entire duration of its useful life.

[ snip ]

 Two (2) questions, at this point:
 
 [1] The *only* way to make your ${pkg}.list modifications stick is to
 perform a backup -- right?  Since your example, bindc.lrp, includes *NO*
 LIST file and you have no time to create one, then you need to backup
 the *entire* package, just to enforce persistence of this modification
 -- right?  If so, what do you gain?  Hopefully, it is not a large
 package, nor that you have only that floppy on which to store it ;
 
 Perhaps, this is a calling for creation of this file:
 
 /var/lib/lrpkg/*.list
   
   This should be `local'

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Michael D. Schleif


David Douthitt wrote:
 
 On 2/14/02 at 8:05 AM, Michael D. Schleif [EMAIL PROTECTED] wrote:
 
  I know that it is available; but, it is *not* included in
  DCD -- is it included in Oxygen?  I do not argue against
  its usage; rather, I am often frustrated by lack of real
  awk, sed and sort -- not to mention cmp and diff ;
 
 As far as I know, both Oxygen and Dachstein use GNU sed; Oxygen just
 happens to use sed 3.0 and Dachstein something older I think.

Sorry, I was running off at the keyboard and forgot to check this:

# /bin/sed -V
GNU sed version 2.05

 mawk.lrp is available, as is diff.lrp.  I think busybox comes with
 sort - 0.60.2 anyway, in Oxygen...

The point is, it is one thing to get a basic system to boot and
initialize -- it is quite another to manage the running system.

I agree that [mn]*awk is a luxury that may not be warranted in a base
system.

However, to manage the running system, it may be prudent to monitor
changes to that running system, especially since one of the primary
reasons for that system is to guard and protect the rest of the network
on which it resides.

In that spirit, I believe that real sort, cmp and possibly diff are
warranted.

 But cmp?  Who needs that?

Besides the it's size?

# uname -a
Linux Loki 2.2.19 #1 Sat Oct 20 18:09:49 EST 2001 i686 unknown

# ls -l /usr/bin/cmp /usr/bin/diff
-rwxr-xr-x1 root root 9336 Aug 23 05:58 /usr/bin/cmp
-rwxr-xr-x1 root root62076 Aug 23 05:58 /usr/bin/diff

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Michael D. Schleif


David Douthitt wrote:
 
 On 2/14/02 at 4:36 PM, Michael D. Schleif [EMAIL PROTECTED] wrote:
 
  For example, /var/log is the standard residence of logfiles.
 
 Is it?  Only in Linux apparently; my Unixware and HP-UX systems use
 /var/adm/syslog.

I am sorry that you always miss my point.

We are on the LEAD List Service and happen to be discussing LEAF
issues.  However interesting it maybe to discuss AIX, HP-UX, Irix, c.,
these are non sequitur to this particular discussion.

  For example, the root directory (/) should be residence to
  directories *only* or, at least, *no* ordinary nor
  executable files -- or, should it?
 
 Many UNIXes (most?) use / as root's home directory.

In your opinion, is that a `good' choice?

  For example, /etc should house, among else, configuration
  files, including a system of symbolic links facilitating
  system initialization, c. -- but, then, what about /var
  or /usr/local or /opt?
 
 ...and what about /var/state and /var/spool/cache?

Precisely my point!

 Not only is standardization impossible, but the little variances are
 what makes a distribution individual and perhaps better than others.

Nothing is impossible.

In fact, your dependent clause, again, is my point!  We have something
in LEAF that is unique and worth defining better.

 I could list variance after variance - both within Linux distributions
 and out:
 
 * ip vs. ifconfig/netstat/route
 * /etc/init.d ; /etc/rc.d/init.d ; /sbin/init.d ...
 * /var/log ; /var/adm/syslog
 * apkg v. lrpkg
 * /usr/local/bin ; /opt
 * / vs. /root (home dir)
 * BSD /etc/rc vs. SysV /etc/rc.d/S000script ...
 * Some system binaries were commonly put into /etc...
 * System administration tools: linuxconf, webadmin, sysadm, sadm,
 smit, sam
 * vi vs. anything else (emacs?)
 * Package management: pkgadd; swinstall; rpm; debpkg; etc..
 * Compression: compress; gzip; bzip2; zip...

Again, what is your point in context of LEAF?

 I don't think we can force standardization - it's this sort of thing
 that makes the djbtools license so offensive...

How many times need I state: ``NO, I am not advocating any system of
commandments and laws, transgression of which invokes the ire of the
greater community; rather, I believe that it is important -- no,
critical -- that I, as LEAF user and, especially, as LEAF developer --
know what I can expect from a small set of system constructs.''

To take statements out of context does not make your arguments stronger.

What do you think?

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Mike Noyes

At 2002-02-15 09:58 -0600, Michael D. Schleif wrote:
How many times need I state: ``NO, I am not advocating any system of
commandments and laws, transgression of which invokes the ire of the
greater community; rather, I believe that it is important -- no,
critical -- that I, as LEAF user and, especially, as LEAF developer --
know what I can expect from a small set of system constructs.''

Everyone,
I have a few comments. Please remember I'm not a programmer.

One of the reasons we started this project was to include diverse 
ideas/implementations of the original LRP. To facilitate this we have never 
forced any developers to follow specific standards. Ideas that are seen as 
good by the community will prosper, while ideas that are found to be 
impractical/undesirable will wane. You never know where the next great idea 
will come from, and this model allows new ideas to prosper.

Naturally groups of developers will agree on specific proposals/ideas. This 
doesn't mean that they have the right to impose those proposals/ideas on 
others.

We don't want the fragmentation of the past to repeat in the present.

Michael,
Please write up your proposal for the file structure. Post it on our site, 
and let each developer decide if it's useful.

Note: I am in no way saying, that you should stop advocating your idea.

--
Mike Noyes [EMAIL PROTECTED]
http://sourceforge.net/users/mhnoyes/
http://leaf.sourceforge.net/content.php?menu=1000page_id=4


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Michael D. Schleif


Serge Caron wrote:
 

[ snip ]

 I am waiting for a plane and cannot do that right now. I suggest you visit
 http://leaf.sourceforge.net/devel/scaron/leaf.htm with a fresh eye and mess
 around with the discussion.img floppy.
 
 Please take apart root.lrp before you start (just for fun!). If I remember
 correctly, the floppy is designed to loose klogd if you backup root before
 you edit /bin/busybox.links to remove the line /sbin/klogd. So you can
 experiment either way. Don't flame me if it's too simple :-)

I didn't realize that you had a webpage and formal presentation of your
theses.  Clearly, I entered this discussion through some later portal ;

Where is this `discussion.img floppy'?  I cannot find it referenced on
your site . . .

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Matt Schalit

Michael D. Schleif wrote:
 
 David Douthitt wrote:

[snip]

  Not only is standardization impossible, but the little variances are
  what makes a distribution individual and perhaps better than others.
 
 Nothing is impossible.
 
 In fact, your dependent clause, again, is my point!  We have something
 in LEAF that is unique and worth defining better.


And I think that's where some people miss the point.  LEAF is 
not one thing, nor one project.  It's an place for people who 
build Linux Embedded Appliances to gather and develop their 
whosymawhatchits.  I never was under the impression that any
two LEAF projects had to have anything in common at all.

Dave is expressing that the individuality of one person's
project that happens to be developed on leaf.sf.net, when
compared to another developed on the same leaf.sf.net,
is what makes them unique, special, stand on their own merit.

What other seem to want to do is compare a non-existent
sort of semi-official because it follows a standard
LEAF distro with some other persons floppy OS project, 
perhaps freesco or something.

That doesn't work.  This place is just a central location
for people to congregate.  I don't think it's a top down,
standards producing enumeration of anything.  But that's
just what I took from Mike Noyes's explanation of what
LEAF was when I joined.

Regards

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Mike Noyes

At 2002-02-15 15:34 -0800, Matt Schalit wrote:
That doesn't work.  This place is just a central location
for people to congregate.  I don't think it's a top down,
standards producing enumeration of anything.  But that's
just what I took from Mike Noyes's explanation of what
LEAF was when I joined.

Everyone,
I'll take Matt's explanation a little further.

This is a single project, but it's not monolithic. It's more of an 
evolutionary model, where various releases/branches are allowed to develop. 
Over time they may diverge, merge, and borrow from each other. 
Releases/branches survive on their merits, and the willingness of their 
lead developer(s) to continue working on them.

Developers are free to help with any release/branch they wish. 
Releases/branches that are popular will likely receive more developer 
attention than ones that aren't.

If a developer has an idea that a release/branch lead developer doesn't 
wish to use, he/she can always create another release/branch. This prevents 
fragmentation to multiple sites/locations on the Internet, and promotes 
survival of the fittest (evloution).

It's a sort of controlled chaos that benefits all. Developers are able to 
share and propose ideas. Look at each others code. Lead developers no 
longer have to write all of their documentation, maintain web sites, or 
answer all of their own support requests. Users are able browse a single 
site and chose a release/branch that fits their needs.

Of corse, the people that write the code may change this model if they 
wish. I haven't contributed any code to our project, so my opinion isn't 
worth much.

--
Mike Noyes [EMAIL PROTECTED]
http://sourceforge.net/users/mhnoyes/
http://leaf.sourceforge.net/content.php?menu=1000page_id=4


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread Matt Schalit

Serge Caron wrote:
 

 Hello Matt,
 
 First, the important stuff:
 
 or any of us lacked passion.  That's kind of insulting.  And what
 
 Please accept a direct apology from me to you for no other reason than the
 fact that your feelings were hurt.

No problem, my feelings weren't hurt.  I was stating a fact.  You 
called this list ho-hum, and that's an opinion devoid of any basis 
in fact.  You contrasted this ho-humness with the passion reflected 
in MDS's posts.  We don't deserve to be on the opposite side of that 
contrast, despite your limited analysis to the contrary.  You're
apparent willingness to describe your credentials is contrasted by
your lack of doing your homework concerning the depth of commitment
of the other users and the list's current state in history.  May I
suggest you backtrack a couple of years and read the Linux Router
Project mailing list archive on Geocrawler, following the development
and disposition of that group to here.  You'll find peaks and valleys, 
great posts and tragic happenings.  

  The history is rich and colorful, and the current group dynamic has 
never been better.  What some people may not see is that we're functioning 
at a less than obvious level due mainly to the fact that so many people 
have already done such a fantastic job and and find they need to multitask 
more clocks to the rest of their life -- seeing that many LEAF parts 
work well, for all intents and purposes.  So Joe User comes along  wants 
this option or that option? bam.  They got it.  Someone updates 
ssh?bam it's done.

That's 97X.. bam.. the future of rock and roll.

 
   It's plenty interesting to read your threads and see the breadth
 of your opinions.  I've said before that it's always refreshing to
 
 Thank you. Please DO NOT PUT your flame thrower away!


Roger that.  I've been bad lately, though.  Must follow golden rule 
more.  Did you catch my essay on Basic PC Architecture in the 
802.11/pcmcia/ide thread on leaf-user?


 
 exactly happened three weeks ago?  You showed up?  And you tore the low
 level guts out of Dachstein and want to call that PacketFilter?  And
 
 My posts are polite and as factually true as I can make them. 

Affirmative.  It was the tone that I made note of by quoting
your very words, the snippets of which, though taken out of
context, make for interesting reading.


 PacketFilter
 is a 60kb file that cannot contain Dachstein. If you read the manual,
 Charles is directly credited for allowing this 60kb file to be distributed
 with his stuff. Further, as pointed out to David elsewhere, I do not intend
 to make a distribution just for the purpose of providing an environment in
 wich to run PacketFilter. This leaves you with very little material to
 support your opinion that I want to promote a dumb filtering device to the
 level of Dachstein.


Mmmm, I don't know.  That last part sounds like you found an
opinion in my post about PacketFilter, its application, its 
packaging, or what you want to do with it.  What I did was 
bring up the question of it's originality and the veracity
of creating something less than original while promoting
that everyone adhere to it, even if it has some basis in fact.
I tried to collect your words for examination rather than pass
judgment on them.



 you don't like our file structure and our documentation?  You think we
 make stupid decisions in our quaint little space and that comlicates
 your life?  Indeed.
 
 
 As you acknowledged in the beginning of your message, you have collected
 things out of context. The onus is on you to support your comments.

Yes I quoted those out of context, and I think I got it right.
If I wanted to be more thorough, I could have included more context
and been fair enough to quote your showing respect for others.
You took jabs at things in this project and in ways that others
do not.  That sticks out.  I've been on enough lists with enough
classic unixers to have met up with this style of communication.
Though spicy, I have to yet to learn its benefit.  Others enjoy 
discussing things with you due to your technical skill and fresh 
view.  And I like reading some of it, but not when you offer up 
your analysis of us in the tone I mentioned.

Regards,
Matt

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-15 Thread David Douthitt

On 2/15/02 at 9:58 AM, Michael D. Schleif [EMAIL PROTECTED] wrote:

 David Douthitt wrote:
  
  On 2/14/02 at 4:36 PM, Michael D. Schleif [EMAIL PROTECTED] wrote:
  
   For example, /var/log is the standard residence of logfiles.
  
  Is it?  Only in Linux apparently; my Unixware and HP-UX
  systems use
  /var/adm/syslog.
 
 I am sorry that you always miss my point.
 
 We are on the LEAF List Service and happen to be
 discussing LEAF issues.  However interesting it maybe to
 discuss AIX, HP-UX, Irix, c., these are non sequitur to
 this particular discussion.

Not entirely.  One of the things I wanted to do with LEAF was a form
of the standardization you were mentioning - except my attempt was
towards a UNIX-like system.  That was one of the reasons I absolutely
hated giving up on ifconfig, netstat, and route powerful or not,
'ip' ONLY exists in Linux (can you say non-standard?)

That's also one of the reasons that e3 starts in vi mode in Oxygen -
that and the fact that I LIKE vi :-)

   For example, the root directory (/) should be residence to
   directories *only* or, at least, *no* ordinary nor
   executable files -- or, should it?
  
  Many UNIXes (most?) use / as root's home directory.
 
 In your opinion, is that a `good' choice?

But that's not the point :P  I hate seeing .ssh .mail etc all spread
about in / but anyway...

  Not only is standardization impossible, but the little
  variances are what makes a distribution individual and
  perhaps better than others.
 
 Nothing is impossible.

Getting three people to agree is :-)

 In fact, your dependent clause, again, is my point!  We
 have something in LEAF that is unique and worth defining
 better.

I think I see your point.

  I could list variance after variance - both within Linux
  distributions and out:

 Again, what is your point in context of LEAF?

What about all the differences IN LEAF projects... one's I've listed
already?

* glibc 2.1 vs 2.0 - and soon may include 2.2 besides.
* apkg vs. lrpkg
* automatic loading of packages vs. having to enter *EVERY SINGLE ONE*
into lrp.conf
* GNU sed 2.x vs GNU sed 3.x
* ipchains vs ipfwadm vs iptables
* Linux 2.2 vs 2.4 vs. 2.0
* Multivolume support (during boot) vs. NO multivolume support
* busybox contents - I suspect Dachstein busybox is about 120k or
less; Oxygen busybox is now hovering about 320k or somewhere around
there - and is statically linked
* Unpatched Linux kernels vs. specialized LRP patched kernels...

Can every LEAF developer agree on each of these?  I suspect not...

 How many times need I state: ``NO, I am not advocating any
 system of commandments and laws, transgression of which
 invokes the ire of the greater community; rather, I
 believe that it is important -- no, critical -- that I, as
 LEAF user and, especially, as LEAF developer -- know what
 I can expect from a small set of system constructs.''

You almost sound like you are advocating something like the last ANSI
FORTH standard.  The ANSI FORTH standard defined a number of word
sets.  Words are like functions in C, but then any new programs
are indistinguishable from the base

Anyway, the ANSI committee defined word sets like CORE (the very
minimalist most basic words) FLOAT (floating point, normally not
included in FORTH environments...) EXTENDED and others (names escape
me).

What if we had a LEAF core set which meant things like:

* these commands will be included
* these commands will act this way

and an extended set which may or may not be present, but if they
are, they must act the proper way and they must all be present. 
That's how the ANSI FORTH standard works; a compliant FORTH system can
say they include the CORE set, the EXTENSION set, or whatever...
 
 To take statements out of context does not make your
 arguments stronger.

You seem to have very strong feelings about this and other things. 
Persuasive argument must be level-headed.

I still feel like one can't get three people to agree on anything. 
The ANSI FORTH committee was hogbound for YEARS.  Alternately, the new
standard often doesn't look like anything which is available!  The
ANSI FORTH and ANSI COBOL (object oriented!) went this way.

Perhaps what we NEED is a test suite - a sort of minimalist autoconf
which details what works and what doesn't...
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Serge Caron

Hello Michael,

Glad to be of service!

I am confused ;

[1] Shouldn't your sed process:

 sed -e /^etc/d -e /^[/]etc/d -e /^[.][/]etc/d \
 ${pkg}  ${pkg}.light

actually be this?

 sed -n /^[./]*etc/p ${pkg}  ${pkg}.light



I am only concerned with deleting lines that start with etc..., /etc..., and
./etc... (Note that this will match a directory like /etcold but I don't
care). So the first attempt is to produce a new file list that does not have
any of those lines.

[2] How do you account for ${pkg}.exclude.list?


${pkg}.exclude.list is a proper substring of ${pkg}.list and therefore gets
included in the for loop.

[3] How do you account for CONF files that do not reside under /etc?

This particular code snippet treated /etc one way and /var a completely
different way. I could integrate both by producing a different exclusion
list for the default store. I'll think about it.

[4] Where do you get `cmp'?


cmp is a busybox applet. If don't have Andersen kit at hand, there is a
rather plump busybox on the discussion.img disk that I referred to earlier
this week. O'Reilly Linux in a nutshell has proper documentation for it.

Regards,

Serge Caron



___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Michael D. Schleif


Serge Caron wrote:
 
 Glad to be of service!
 
 I am confused ;
 
 [1] Shouldn't your sed process:
 
  sed -e /^etc/d -e /^[/]etc/d -e /^[.][/]etc/d \
  ${pkg}  ${pkg}.light
 
 actually be this?
 
  sed -n /^[./]*etc/p ${pkg}  ${pkg}.light
 
 I am only concerned with deleting lines that start with etc..., /etc..., and
 ./etc... (Note that this will match a directory like /etcold but I don't
 care). So the first attempt is to produce a new file list that does not have
 any of those lines.

This is where I get lost.  When you said:

``When I want to backup, I simply remove the write protect tab on the
floppy. I can assure you that it takes a lot of config data to fill
1.6Mb of compressed space.''

I thought that you were backing up *only* config data.  How does your
sed process facilitate this quoted intent of yours?

By-the-by, this is considerably faster:

sed -e /^[./]*etc/d ${pkg}  ${pkg}.light

 [2] How do you account for ${pkg}.exclude.list?
 
 ${pkg}.exclude.list is a proper substring of ${pkg}.list and therefore gets
 included in the for loop.

Yes, I know; but, how does including excluded data facilitate your
needs?

 [3] How do you account for CONF files that do not reside under /etc?
 
 This particular code snippet treated /etc one way and /var a completely
 different way. I could integrate both by producing a different exclusion
 list for the default store. I'll think about it.

Yes, or similarly . . .

 [4] Where do you get `cmp'?
 
 cmp is a busybox applet. If don't have Andersen kit at hand, there is a
 rather plump busybox on the discussion.img disk that I referred to earlier
 this week. O'Reilly Linux in a nutshell has proper documentation for it.

I know that it is available; but, it is *not* included in DCD -- is it
included in Oxygen?  I do not argue against its usage; rather, I am
often frustrated by lack of real awk, sed and sort -- not to mention cmp
and diff ;

What do you think?

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Serge Caron

Hello again,

This is where I get lost.  When you said:

``When I want to backup, I simply remove the write protect tab on the
floppy. I can assure you that it takes a lot of config data to fill
1.6Mb of compressed space.''

I thought that you were backing up *only* config data.  How does your
sed process facilitate this quoted intent of yours?



Actually, the process is more like *I don't backup program binaries* :-).
Because of the subset of programs I work with, taking care of /etc and
 /var - /var/log - /var/adm - /var/lib/lrpkg - /var/run - /var/lock -
/var/spool -/var/tmp } gives me what I want. YMMV :)

By-the-by, this is considerably faster:

 sed -e /^[./]*etc/d ${pkg}  ${pkg}.light



Linux people are usually more intelligent than I am. Your sed mask allows
for stuff like ...etc and ../../../etc and all kinds of ganes that I prefer
not to play :). Following your intervention, the original sed command now
reads
  sed -e /^etc[[:space:]]*$/d -e /^[/]etc[[:space:]]*$/d \
-e /^[.][/]etc[[:space:]]*$/d \
-e /^etc[/]/d -e /^[/]etc[/]/d -e /^[.][/]etc[/]/d \
   ${pkg}  ${pkg}.light

This is part of a startup script that runs a few times a year. I am more
concerned with exactness than speed of execution. Your method is
_definitely_ faster but does not gives me exactly what I want.

 [2] How do you account for ${pkg}.exclude.list?

 ${pkg}.exclude.list is a proper substring of ${pkg}.list and therefore
gets
 included in the for loop.

Yes, I know; but, how does including excluded data facilitate your
needs?


Sorry for taking your question litterally :). I will presume that you
understand that the set of files destined for the default store is the set
of all files on the machine minus the set of all the files enumerated in
each of all other packages and minus the set of files excluded for the
default store.

Suppose the default store is named gizmo and some other package exclude
/etc/thisthat. The backup code in LRP, Dachstein, Oxygen, etc concatenate
all the file lists for all packages other than gizmo in a single exclusion
list. Therefore, if something is excluded from one package, it is also
excluded from all other packages.

When I want a snapshot of my machines, I want _everything_ in etc. Life is
like that :-)


 [3] How do you account for CONF files that do not reside under /etc?
 
 This particular code snippet treated /etc one way and /var a completely
 different way. I could integrate both by producing a different exclusion
 list for the default store. I'll think about it.

Yes, or similarly . . .


Like I said above, I do not handle /var the same way as I handle etc. The
programs I use store their data in /etc or /var or both. It can be extended
to anything else. Eventually, the need to run write-protected will change.
However, this solution works today.

 [4] Where do you get `cmp'?

[snip]

I know that it is available; but, it is *not* included in DCD -- is it
included in Oxygen?  I do not argue against its usage; rather, I am
often frustrated by lack of real awk, sed and sort -- not to mention cmp
and diff ;



Gee, I really had a push-button mind when I answered you. Michael, bear with
me for a few more seconds.

For one of his shows, Ed Sullivan had invited a lion tamer who usually put
his entire head in the lion's mouth at the end of his act. It was explained
to him, in writing, that the act took 10 minutes. By showtime, due to
overbooking and delays, Sullivan tells the lion tamer that once the curtain
rises, he has two minutes for his act. OK, says the lion tamer, but YOU
explain it to the lion. :-)

Now, to answer your question: you are looking for a baseline specification
:-). David Douthitt is *RIGHT* when he says that there should not be a
baseline specification, either explicitly specified for LEAF or indirectly
specified by refering to a distribution. We are dealing with unspecidied
hardware constraint, some of which are not obvious as in the case of the
write-protect switch. As a case in point, Bering does not have netstat, a
fixture in this environment since the early LRP days. In the confined space
of a floppy, Jacques Nilo decided something that made sense for his project
and he can revisit his decision at any time. In the meanwhile, you have
Bering to play with.

The difficulty here is formalizing your ability to repackage your baseline
and go on with your life (or your LEAF :). I think we can overcome this
difficulty but I will wait for your comments on the process.

Regards,

Serge Caron


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Michael D. Schleif


Serge Caron wrote:
 
 This is where I get lost.  When you said:
 
 ``When I want to backup, I simply remove the write protect tab on the
 floppy. I can assure you that it takes a lot of config data to fill
 1.6Mb of compressed space.''
 
 I thought that you were backing up *only* config data.  How does your
 sed process facilitate this quoted intent of yours?
 
 Actually, the process is more like *I don't backup program binaries* :-).
 Because of the subset of programs I work with, taking care of /etc and
  /var - /var/log - /var/adm - /var/lib/lrpkg - /var/run - /var/lock -
 /var/spool -/var/tmp } gives me what I want. YMMV :)

[ snip ]

Let me reduce my confusion to its firstmost problem: How does your sed
process facilitate ``*I don't backup program binaries*''?

AFAIK, ${pkg}.list files -- _minus_ ${pkg}.exclude.list files -- define
which files comprise the ${pkg} package -- correct?

Once you eliminate all files under etc, /etc and ./etc from ${pkg}.list
files, what you have left is ``a bunch of binaries'' -- am I wrong?

Wouldn't you reach this same end if all files under etc, /etc and ./etc
were only listed in ${pkg}.exclude.list files?

Until I fully understand this premise of yours, I do not know how to
proceed . . .

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Serge Caron

Hello Michael,

[ snip ]

Let me reduce my confusion to its firstmost problem: How does your sed
process facilitate ``*I don't backup program binaries*''?

AFAIK, ${pkg}.list files -- _minus_ ${pkg}.exclude.list files -- define
which files comprise the ${pkg} package -- correct?

Once you eliminate all files under etc, /etc and ./etc from ${pkg}.list
files, what you have left is ``a bunch of binaries'' -- am I wrong?

Wouldn't you reach this same end if all files under etc, /etc and ./etc
were only listed in ${pkg}.exclude.list files?

Until I fully understand this premise of yours, I do not know how to
proceed . . .

OK, so lets process this from the start. Here is the contents of
/var/lib/lrpkg/bindc.list, an old BIND 8.something package:

  etc/init.d/bind
  etc/named.conf
  usr/sbin/named
  usr/sbin/ndc
  var/lib/lrpkg/bindc.*
  var/named

Only concentrate on those two etc entries. The package author did not define
a .local file to backup just part of the package. The package is running off
CD and I can't rewrite it there :-). Finally, even if I could, I DO NOT WANT
to. I want to keep this package in whatever form it was delivered for the
entire duration of its useful life.

Once the package is LOADED, I delete the two etc lines from the list. This
means that any other package can now claim these two files. If these files
were enumerated in, say, /var/lib/lrpkg/bindc.exclude.list, they would be
excluded from every other package AND bindc.lrp. This is important, please
stop here if it is not clear.

Now, by removing these lines, I can either backup these files in the default
store (root.lrp if you are using Dachstein) or I could create a
configuration package. If I did this, I could be missing out on other stuff.
If I were to run on a hard disk, the persistent nature of the storage medium
hides the problem: eveything you left will be there when you power the
machine up again.

What I want is the entire contents of etc (and other stuff) as if I was
working with persistent storage without affecting each package.

Dachstein loads the default store BEFORE anything else and this is not
helping your understanding. If etc/named.conf is in both root.lrp and
bindc.lrp, the later MUST overwrite the former because the package loading
code is in root.lrp. By separating the default store from the boot loading
code, you can load the default store in the order YOU chose :-) Cool!

I suggest you try the discussion.img floppy which has a default store
separate from root. Perhaps by experimenting with this disk, it will become
clearer? If you get confused by the alternating kernels, I can package
something more obvious.

Regards,

Serge Caron



___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Michael D. Schleif


Serge Caron wrote:
 

[ snip ]

 mds said:
 By-the-by, this is considerably faster:
 
  sed -e /^[./]*etc/d ${pkg}  ${pkg}.light
 
 Linux people are usually more intelligent than I am. Your sed mask allows
 for stuff like ...etc and ../../../etc and all kinds of ganes that I prefer
 not to play :).

Nevertheless, since all backup operations are performed from root (/) --
a very sound *convention* and *standard*, yes? -- what is the actual
difference between our regex's, other than doing everything in one (1)
call to shell?

 Following your intervention, the original sed command now
 reads
   sed -e /^etc[[:space:]]*$/d -e /^[/]etc[[:space:]]*$/d \
 -e /^[.][/]etc[[:space:]]*$/d \
 -e /^etc[/]/d -e /^[/]etc[/]/d -e /^[.][/]etc[/]/d \
${pkg}  ${pkg}.light

If you must:

sed -e /^etc[[:space:]]*$/d
/^[/]etc[[:space:]]*$/d
/^[.][/]etc[[:space:]]*$/d
/^etc[/]/d
/^[/]etc[/]/d
/^[.][/]etc[/]/d ${pkg}  ${pkg}.light

Or:

sed -e /^[.]\{0,1\}[/]\{0,1\}etc[[:space:]]*$/d
/^[.]\{0,1\}[/]\{0,1\}etc[/]/d ${pkg} \
 ${pkg}.light

Or:

sed -e /^[.]\{0,1\}[/]\{0,1\}etc[/[:space:]]*$/d ${pkg} \
 ${pkg}.light

I really don't like to see repeated calls to same executable in
production code -- just part of my process ;

[ snip ]

 When I want a snapshot of my machines, I want _everything_ in etc. Life is
 like that :-)

Didn't you just *exclude* these same files in your sed process?  How do
you get everything that you just excluded _after_ explicitly excluding
it?

Clearly, I am missing something profound here . . .

[ snip ]

 Now, to answer your question: you are looking for a baseline specification
 :-). David Douthitt is *RIGHT* when he says that there should not be a
 baseline specification, either explicitly specified for LEAF or indirectly
 specified by refering to a distribution. We are dealing with unspecidied
 hardware constraint, some of which are not obvious as in the case of the
 write-protect switch. As a case in point, Bering does not have netstat, a
 fixture in this environment since the early LRP days. In the confined space
 of a floppy, Jacques Nilo decided something that made sense for his project
 and he can revisit his decision at any time. In the meanwhile, you have
 Bering to play with.

This is where I believe that we really part company.  Since you insist
on this choice of words, I have no choice, but to take you literally:

``there should not be a baseline specification''

If this is the case and it is *explicitly* enforced, then it follows --
absolutely -- that nobody can build any package for leaf/lrp and expect
that it will perform according to any given specification!  Period.

In fact, a system, such as leaf and lrp, is and always has been founded
on a -- confusing -- myriad of tacit specifications.  It is this implied
set of conventions that I am addressing -- the fact that these
specifications are largely unwritten and, therefore, understood by a
very small minority.  I maintain that, without any specification, there
would be no lrp and no leaf and no List Service on which to debate these
arcane issues.

It is another fact that I cannot, nor can anybody else, willy-nilly
construct any haphazard package, load it into a running leaf/lrp
environment and expect that that system will continue to run with its
baseline integrity; much less, that my package will perform as I
expect.  We are dealing with systems predicated on baseline security and
integrity -- are we not?

Therefore, I insist that *NOW* is the time to publish an explicit set of
baseline conventions and standards for leaf -- prior to landing squarely
in the midst of 2.4.x land!

Let us take what has been learned from years of LRP, take what has
worked best, discard what has proven most costly -- however many or few
those specifications might be -- and make a clean break with the past. 
Draw a line in the sand -- this side is the new land of LEAF and that
other side is the past and LRP.  Again, these clear demarcations --
devised solely in the spirit of the lean and mean and embeddedness that
we admire most in LEAF -- can only contribute to the greater good.

NO, I am not advocating any system of commandments and laws,
transgression of which invokes the ire of the greater community; rather,
I believe that it is important -- no, critical -- that I, as LEAF user
and, especially, as LEAF developer -- know what I can expect from a
small set of system constructs.

For example, /var/log is the standard residence of logfiles.  Looking
under that directory, I should never find executable files -- or, should
I?

For example, the root directory (/) should be residence to directories
*only* or, at least, *no* ordinary nor executable files -- or, should
it?

For example, /etc should house, among else, configuration files,
including a system of symbolic links facilitating 

Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Michael D. Schleif


VoilĂ !

Serge Caron wrote:
 
 Let me reduce my confusion to its firstmost problem: How does your sed
 process facilitate ``*I don't backup program binaries*''?
 
 AFAIK, ${pkg}.list files -- _minus_ ${pkg}.exclude.list files -- define
 which files comprise the ${pkg} package -- correct?
 
 Once you eliminate all files under etc, /etc and ./etc from ${pkg}.list
 files, what you have left is ``a bunch of binaries'' -- am I wrong?
 
 Wouldn't you reach this same end if all files under etc, /etc and ./etc
 were only listed in ${pkg}.exclude.list files?
 
 Until I fully understand this premise of yours, I do not know how to
 proceed . . .
 
 OK, so lets process this from the start. Here is the contents of
 /var/lib/lrpkg/bindc.list, an old BIND 8.something package:
 
   etc/init.d/bind
   etc/named.conf
   usr/sbin/named
   usr/sbin/ndc
   var/lib/lrpkg/bindc.*
   var/named
 
 Only concentrate on those two etc entries. The package author did not define
 a .local file to backup just part of the package. The package is running off
 CD and I can't rewrite it there :-). Finally, even if I could, I DO NOT WANT
 to. I want to keep this package in whatever form it was delivered for the
 entire duration of its useful life.

OK, now I see!  Somehow, if you explicitly stated this before, I cannot
find it in your previous posts.  Dear me, I am too literal, again ;

Actually, I faced this same dilemma many months ago; but, I conquered it
in quite a different manner -- I keep my own DCD development tree and
have finely tuned *ALL* LIST and LOCAL files to my particular needs.  In
fact, now that I have successfully attained a leaf developer site, I
have been thinking about publishing what I believe to be the correct
LIST and LOCAL files for those packages included in DCD and those else
that I use.  Is this a case for convention and standards, or is
willy-nilly construction of these files adequate to the task?

Your process has the added benefit of placing *ALL* LIST elements in one
(1) file -- something I have on my todo list; but, have not taken time
to achieve, especially in light of Charles' musings on redoing the
entire package thingy anyway.  O, that is what we are discussing, huh?

Two (2) questions, at this point:

[1] The *only* way to make your ${pkg}.list modifications stick is to
perform a backup -- right?  Since your example, bindc.lrp, includes *NO*
LIST file and you have no time to create one, then you need to backup
the *entire* package, just to enforce persistence of this modification
-- right?  If so, what do you gain?  Hopefully, it is not a large
package, nor that you have only that floppy on which to store it ;

Perhaps, this is a calling for creation of this file:

/var/lib/lrpkg/*.list

[2] Now, I must ask, again, how do you account for configuration files
that reside elsewhere, say /usr/share/snmp/snmpd.conf?  It seems to me
that exceptions -- remember, the more the merrier! -- are quite costly
and speak loudly in support of those issues that I take with your
previous statement:

``there should not be a baseline specification''

 Once the package is LOADED, I delete the two etc lines from the list. This
 means that any other package can now claim these two files. If these files
 were enumerated in, say, /var/lib/lrpkg/bindc.exclude.list, they would be
 excluded from every other package AND bindc.lrp. This is important, please
 stop here if it is not clear.

Yes, good point.  Nevertheless, this is, perhaps, the most pernicious
flaw in the current system.

Did anybody say that the current system is perfect?  Notwithstanding,
the convention-al, standard-ness to its essence?  No, I am not flaming
the current system, nor any part thereof; rather, it is this learning
process that begs for elucidation, regardless whether or not you like
the terms 'convention' and 'standards'!  If the current system changes
-- I guarantee that it will -- the convention is to publish those
changes to the user community, such that users of the system can use the
system in the proscribed manner.

 Now, by removing these lines, I can either backup these files in the default
 store (root.lrp if you are using Dachstein) or I could create a
 configuration package. If I did this, I could be missing out on other stuff.
 If I were to run on a hard disk, the persistent nature of the storage medium
 hides the problem: eveything you left will be there when you power the
 machine up again.

[1] If they reside in root.lrp -- *always* the FIRST package loaded! --
then, your laziness in not creating bindc.list bites you in the a**,
because bindc.lrp just over-wrote your precious configuration files!

[2] If you are going to ``create a configuration package'', then why
bother with this kludge at all?  Why not build a better mousetrap and be
done with it?

 What I want is the entire contents of etc (and other stuff) as if I was
 working with persistent storage without affecting each package.

Yes, we all do -- at minimum cost.  

Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Serge Caron

Hello again,

-Original Message-
From: Michael D. Schleif [EMAIL PROTECTED]
To: Serge Caron [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED] [EMAIL PROTECTED]
Date: February 14, 2002 5:34 PM
Subject: Re: [Leaf-devel] Re: Standards and due process :-)


Nevertheless, since all backup operations are performed from root (/) --
a very sound *convention* and *standard*, yes? -- what is the actual


AFAIK, it is sound.

Or:

 sed -e /^[.]\{0,1\}[/]\{0,1\}etc[/[:space:]]*$/d ${pkg} \
  ${pkg}.light

I really don't like to see repeated calls to same executable in
production code -- just part of my process ;



Your code is more than likely correct. However, the metacharacters { and }
are not used in sed according to O'Reilly's Linux in a nutshell (3rd
edition, chapter 9). I have seen different sed implementations in LRP and I
must say I am very conservetive :-). I do not understand your last comment
as sed is loaded only once either way. Perhaps you know something that I
don't.

[ snip ]

 When I want a snapshot of my machines, I want _everything_ in etc. Life
is
 like that :-)

Didn't you just *exclude* these same files in your sed process?  How do
you get everything that you just excluded _after_ explicitly excluding
it?

Clearly, I am missing something profound here . . .



I do not exclude these files from any package. I merely delete their
inclusion in specific packages. This is not the same.

[ snip ]

 Now, to answer your question: you are looking for a baseline
specification
 :-). David Douthitt is *RIGHT* when he says that there should not be a
 baseline specification, either explicitly specified for LEAF or
indirectly
 specified by refering to a distribution. We are dealing with
unspecidied
 hardware constraint, some of which are not obvious as in the case of the
 write-protect switch. As a case in point, Bering does not have netstat, a
 fixture in this environment since the early LRP days. In the confined
space
 of a floppy, Jacques Nilo decided something that made sense for his
project
 and he can revisit his decision at any time. In the meanwhile, you have
 Bering to play with.

This is where I believe that we really part company.  Since you insist
on this choice of words, I have no choice, but to take you literally:

 ``there should not be a baseline specification''

If this is the case and it is *explicitly* enforced, then it follows --
absolutely -- that nobody can build any package for leaf/lrp and expect
that it will perform according to any given specification!  Period.



Thank you. Not only do we not part company, we agree that it is _absolutely_
required to enumerate the exact feature set of this and that distribution.
However, the environment IS confined. So just saying load busybox, for
example, is not sufficient. It is required to say, in fill in your
distribution name the binaries available are fill in the list and the
exact feature set is one more enumeration. So, if this distribution is
using the busybox sed instead of the full flavor Debian sed, YMMV. Is this
unreasonable to ask? And don't you want to know it before you assemble
everything in place?

In fact, a system, such as leaf and lrp, is and always has been founded
on a -- confusing -- myriad of tacit specifications.  It is this implied
set of conventions that I am addressing -- the fact that these
specifications are largely unwritten and, therefore, understood by a
very small minority.  I maintain that, without any specification, there
would be no lrp and no leaf and no List Service on which to debate these
arcane issues.



You are correct again. For example, the fact that I decide to store files
elsewhere than in their original package is definitely going against the
grain. Step 1 in what you say is to identify that the usual practice or
implied convention or tacit specification is to store the file in its
original package. Step 2, is to face reality: you can't do that if you run
from a CD or ROM or write-protected media. Step 3, is to come up with a
reasonable alternative to the problem.

It is another fact that I cannot, nor can anybody else, willy-nilly
construct any haphazard package, load it into a running leaf/lrp
environment and expect that that system will continue to run with its
baseline integrity; much less, that my package will perform as I
expect.  We are dealing with systems predicated on baseline security and
integrity -- are we not?

Therefore, I insist that *NOW* is the time to publish an explicit set of
baseline conventions and standards for leaf -- prior to landing squarely
in the midst of 2.4.x land!


You have my support. However, it is one thing to say thou shall have
busybox with these xyz applets and to insist that a distribution has this
or that tool. For example, as Charles notes on his site, ip sadly' does
not have a command to place a card in promiscuous mode. The question is not
whether I use busybox ifconfig or the full flavor ifconfig just to place a
card in promiscuous mode. The question

Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread Serge Caron


-Original Message-
From: Michael D. Schleif [EMAIL PROTECTED]
To: Serge Caron [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED] [EMAIL PROTECTED]
Date: February 14, 2002 6:20 PM
Subject: Re: [Leaf-devel] Re: Standards and due process :-)



VoilĂ !

[snip]
 Only concentrate on those two etc entries. The package author did not
define
 a .local file to backup just part of the package. The package is running
off
 CD and I can't rewrite it there :-). Finally, even if I could, I DO NOT
WANT
 to. I want to keep this package in whatever form it was delivered for the
 entire duration of its useful life.

OK, now I see!  Somehow, if you explicitly stated this before, I cannot
find it in your previous posts.  Dear me, I am too literal, again ;

Actually, I faced this same dilemma many months ago; but, I conquered it
in quite a different manner -- I keep my own DCD development tree and
have finely tuned *ALL* LIST and LOCAL files to my particular needs.  In
fact, now that I have successfully attained a leaf developer site, I
have been thinking about publishing what I believe to be the correct
LIST and LOCAL files for those packages included in DCD and those else
that I use.  Is this a case for convention and standards, or is
willy-nilly construction of these files adequate to the task?



OK. You build /var/lib/lrpkg/xyz.local files with your choice of files that
have dynamic contents and should be included in a partial backup and your
choice of files that have static contents (tables, binaries, ...) and should
only be included in a full backup. Then you use lrcfg (or some other tool)
to specify for each package wheter you want a partial or a full backup.
Finally, you also specify, per package, the destination device.

So, if you run 10 packages on CD, you may end up with 7 partial packages on
floppy. This is Charles design and there is NOTHING wrong with it.


Your process has the added benefit of placing *ALL* LIST elements in one
(1) file -- something I have on my todo list; but, have not taken time
to achieve, especially in light of Charles' musings on redoing the
entire package thingy anyway.  O, that is what we are discussing, huh?



My process, as you put it, is simply to dis-associate some files with the
original package they came from. One of the difficulty in LRP is that you
CANNOT have exact same file name in two different packages. Both packages
will load, the last one overwritting the first one. If you backup either
package, the file is dropped because the filelist of one package is the
exclusion list of the second one.

Breaking this association removes the difficulty entirely. I can then, if I
want to, backup to whole lot in package gizmo.lrp if that is what I fancy.

Two (2) questions, at this point:

[1] The *only* way to make your ${pkg}.list modifications stick is to
perform a backup -- right?  Since your example, bindc.lrp, includes *NO*
LIST file and you have no time to create one, then you need to backup

Oops! Did I go wrong somewhere? Here is what I sent you: Here is the
contents of
/var/lib/lrpkg/bindc.list, an old BIND 8.something package:

  etc/init.d/bind
  etc/named.conf
  usr/sbin/named
  usr/sbin/ndc
  var/lib/lrpkg/bindc.*
  var/named


Since the contents of /var/lib/lrpkg/bindc.list is explicitly listed, there
is a LIST file.


the *entire* package, just to enforce persistence of this modification
-- right?  If so, what do you gain?  Hopefully, it is not a large
package, nor that you have only that floppy on which to store it ;


If I modify the contents of the list file and I were to do a backup, then I
would loose some contents of the original package. However, I am explicit in
giving the example that I run from a CD (I would prefer ROM :) and that,
regardless of the storage media, I do NOT want to modify the original
package. In other words, there are packages for which I will never backup.


Perhaps, this is a calling for creation of this file:

 /var/lib/lrpkg/*.list


The file is already there, per above.

[2] Now, I must ask, again, how do you account for configuration files
that reside elsewhere, say ?  It seems to me
that exceptions -- remember, the more the merrier! -- are quite costly
and speak loudly in support of those issues that I take with your
previous statement:

 ``there should not be a baseline specification''

I gave as an example a code snippet for /etc from a rather specific machine
down the hall for which we wanted write-protection at all times. Again, my
personnal experience with LEAF/LRP is that there will be new dynamic
contents every time you introduce a new package in a configuration. Your
package likes /usr/share/snmp/snmpd.conf and BIND likes /var/named. /etc is
easier to do than /usr.

To be specific, if a package maintains dynamic contents in /usr/sbin then I
HAVE to backup the original package (full or partial). However, I currently
do not run such packages and, I my experience, most package developers have
behaved. Do you have a different

Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread David Douthitt

On 2/14/02 at 8:05 AM, Michael D. Schleif [EMAIL PROTECTED] wrote:

 I know that it is available; but, it is *not* included in
 DCD -- is it included in Oxygen?  I do not argue against
 its usage; rather, I am often frustrated by lack of real
 awk, sed and sort -- not to mention cmp and diff ;

As far as I know, both Oxygen and Dachstein use GNU sed; Oxygen just
happens to use sed 3.0 and Dachstein something older I think.

mawk.lrp is available, as is diff.lrp.  I think busybox comes with
sort - 0.60.2 anyway, in Oxygen...

But cmp?  Who needs that?
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread David Douthitt

On 2/14/02 at 4:28 PM, Serge Caron [EMAIL PROTECTED] wrote:

 Date: Wed, 13 Feb 2002 22:34:18 -0600
 From: David Douthitt [EMAIL PROTECTED]
 Subject: Re: [Leaf-devel] Re: Standards and due process :-)
 To: LEAF Development [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 
 On 2/13/02 at 8:16 PM, Serge Caron [EMAIL PROTECTED] wrote:
 
 How's this different from Oxygen and Dachstein and how
 they read their configuration data from the floppy?  I
 can create a package which contains nothing but
 configuration files, put it onto a floppy disk, and boot
 the Oxygen Bootable CDROM using that configuration

 The point is that this default store is loaded last,
 overwriting anything loaded from ANY package. It is not
 package specific and it is all inclusive (as far as /etc
 and /var go).

The Oxygen config.lrp is the same exact thing - except instead of
pulling from /etc and /var, it pulls all configuration files.  Just
like yours, it is loaded LAST.  That's what makes it a configuration
file; it doesn't matter where in the boot process it is found; it is
still loaded last (saved in /tmp and loaded from there...)

 For booting purposes the use of root.lrp is dead;
 however, a script to convert root.lrp to a root.gz is
 practically a neccessity.  The LRP patches can't be used
 on any kernel newer than 2.4.5 last I heard; so this
 kills the use of a *.tar.gz file for booting.

 Am I to understand that this will be a ONE-TIME script,
 run as part of an installation procedure, or is this a
 viable option that users sticking with 2.2 kernels will
 have in the long run?

Neither.  This would be general purpose script to be used this way:

# cd /tmp
# apkg -c root
# mkfs.image root | gzip -c -  /mnt/floppy/root.gz

...or some variation.  The script I'm refering to is here called
mkfs.image.

 a real Repository would be with hyperlinks, descriptions,
 home pages, etc and requires a new package extension.
  I've not done as much as I ought, but it mainly uses a
 new file /var/lib/lrpkg/pkg.desc which contains all of
 the information

 Grrreat! Here is the dope for
 http://leaf.sourceforge.net/devel/scaron/nistnet.lrp

The file I mentioned would be included in nistnet.lrp, and would be
similar to:

Name: nistnet
Version: 2.0.10
URL: http://www.antd.nist.gov/itg/nistnet/nistnet-2.0.10.tar.gz
Description: A Network Emulator from the US NIST
Group: Network/Diagnostics

...and so forth.  I'm going from memory; check
http://leaf.sf.net/pub/oxygen/development/ for more information.

As I said, it needs work.
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread David Douthitt

On 2/14/02 at 3:34 PM, Serge Caron [EMAIL PROTECTED] wrote:

 Linux people are usually more intelligent than I am. Your
 sed mask allows for stuff like ...etc and ../../../etc and
 all kinds of ganes that I prefer not to play :). Following
 your intervention, the original sed command now reads

...I just LOVE a good sed challenge :-)

   sed -e /^etc[[:space:]]*$/d -e /^[/]etc[[:space:]]*$/d \
 -e /^[.][/]etc[[:space:]]*$/d \
 -e /^etc[/]/d -e /^[/]etc[/]/d -e /^[.][/]etc[/]/d \
${pkg}  ${pkg}.light

First, with GNU sed:

sed -e '..' -e '..' -e '...'

can be written as:

sed '; .; .'

...also, it would appear that your matches are overlapping...  why
not:

sed '/\.*\/*etc/{
/^etc[ ^I]*$/d
/^\.\/etc[ ^I]*$/d
/^\/etc[ ^I]*$/d
/^etc\//d
/^\.\/etc\//d
/^\/etc\//d
}' $pkg  $pkg.light

The first line matches only those things that contain etc with any
number of periods and slashes (in that order) - which means you've
just ruled out a TON of things.  Should be faster - only one match...

Using \. instead of [.] will save you one '.' - and it is probably
faster to use a single character instead of a set.

You don't need curly brackets ${} unless it is unclear where the name
starts and ends so ${pkg} is unnecessary, as is ${pkg}.light
(period stops the name) - but ${pkg}light and ${pkg}2 are necessary
if you want pkglight and pkg2 for names...

 As a case in point, Bering does not have netstat, a
 fixture in this environment since the early LRP days. In
 the confined space of a floppy, Jacques Nilo decided
 something that made sense for his project and he can
 revisit his decision at any time. In the meanwhile, you
 have Bering to play with.

netstat was also removed from Oxygen a while back; I think Linux in
general has made plain that netstat / route / ifconfig are to be
considered old and one is to use ip instead.

Oxygen dumped all three when space got tight; they are available as
packages.
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-14 Thread David Douthitt

On 2/14/02 at 4:36 PM, Michael D. Schleif [EMAIL PROTECTED] wrote:

 For example, /var/log is the standard residence of logfiles.

Is it?  Only in Linux apparently; my Unixware and HP-UX systems use
/var/adm/syslog.

 For example, the root directory (/) should be residence to
 directories *only* or, at least, *no* ordinary nor
 executable files -- or, should it?

Many UNIXes (most?) use / as root's home directory.

 For example, /etc should house, among else, configuration
 files, including a system of symbolic links facilitating
 system initialization, c. -- but, then, what about /var
 or /usr/local or /opt?

...and what about /var/state and /var/spool/cache?

Not only is standardization impossible, but the little variances are
what makes a distribution individual and perhaps better than others.

I could list variance after variance - both within Linux distributions
and out:

* ip vs. ifconfig/netstat/route
* /etc/init.d ; /etc/rc.d/init.d ; /sbin/init.d ...
* /var/log ; /var/adm/syslog
* apkg v. lrpkg
* /usr/local/bin ; /opt
* / vs. /root (home dir)
* BSD /etc/rc vs. SysV /etc/rc.d/S000script ...
* Some system binaries were commonly put into /etc...
* System administration tools: linuxconf, webadmin, sysadm, sadm,
smit, sam
* vi vs. anything else (emacs?)
* Package management: pkgadd; swinstall; rpm; debpkg; etc..
* Compression: compress; gzip; bzip2; zip...

I don't think we can force standardization - it's this sort of thing
that makes the djbtools license so offensive...
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-13 Thread Matt Schalit

Serge Caron wrote:
 
 Hello Michael,
 
 God! its good to see words like passion in this otherwise hum-drum list.
 
 Not only am I not crititical of your position (I entirely support it!!!), I
 will repeat that you are free to answer (or not) at your convenience and on
 your terms.
 
 And I will respectfully read whatever you publish with interest and passion.
 
 Regards,
 
 Serge Caron


Hey Serge,
  It's plenty interesting to read your threads and see the breadth 
of your opinions.  I've said before that it's always refreshing to
learn from a variety of people considering all their experiences.  
Over the course of your posts you've taken the opportunity to try 
to stir up the nest with a certain tone set by your words that I've
collected here out of context:

 hum-drum list
 passion
 social responsibility
 attained a critical mass
 we are old enough to see
 will make LEAF grow
 effortlessly
 All LEAF/LRP releases are only scripts
 the proposal is painfully clear
 provide an unambiguous enumeration
 I find mildly amusing is that people are confused
 You do the math.
 Having spent several million dollars of my own money
 Up until 3 weeks ago, LEAF was a quaint little space
 It follows that best practice would be
 an obvious waste that is not acceptable
 Common sense dictates
 This library is obviously not used in the appliance
 This is the type of stupid political decision that is made to save face
 You and I have no time or desire left for stupidity
 as long as these gentlemen continue to maintain their present offering
 Freedom is something I value more than grown up games.


I'm not sure where you got the idea that this list, this project,
or any of us lacked passion.  That's kind of insulting.  And what 
exactly happened three weeks ago?  You showed up?  And you tore the low
level guts out of Dachstein and want to call that PacketFilter?  And 
you don't like our file structure and our documentation?  You think we
make stupid decisions in our quaint little space and that comlicates
your life?  Indeed.

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-13 Thread Michael D. Schleif


Serge Caron wrote:
 

[ snip ]

 By formulating the concept of a default store and that of an exclusion list,
 here is _what_I_do_today_ : I boot from a CD which gives me all the storage
 I need for the job at hand. I define my default store to be on the _floppy_.
 So far, so good? Then I have this code snippet as part of the boot sequence:
 
 for pkg in /var/lib/lrpkg/*.list; do
   sed -e /^etc/d -e /^[/]etc/d -e /^[.][/]etc/d \
   ${pkg}  ${pkg}.light
   cmp -s ${pkg} ${pkg}.light
   if [ $? = 0 ]; then
 rm ${pkg}.light
   else
 echo ${pkg}
 mv ${pkg}.light ${pkg}
   fi
 done

[ snip ]

I am confused ;

[1] Shouldn't your sed process:

sed -e /^etc/d -e /^[/]etc/d -e /^[.][/]etc/d \
${pkg}  ${pkg}.light

actually be this?

sed -n /^[./]*etc/p ${pkg}  ${pkg}.light

[2] How do you account for ${pkg}.exclude.list?

[3] How do you account for CONF files that do not reside under /etc?

[4] Where do you get `cmp'?

-- 

Best Regards,

mds
mds resource
888.250.3987

Dare to fix things before they break . . .

Our capacity for understanding is inversely proportional to how much we
think we know.  The more I know, the more I know I don't know . . .

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Re: Standards and due process :-)

2002-02-13 Thread David Douthitt

On 2/13/02 at 8:16 PM, Serge Caron [EMAIL PROTECTED] wrote:

 By formulating the concept of a default store and that of
 an exclusion list, here is _what_I_do_today_ : I boot from
 a CD which gives me all the storage I need for the job at
 hand. I define my default store to be on the _floppy_. So
 far, so good? Then I have this code snippet as part of the
 boot sequence:

Yeah!  CODE!  :)

 for pkg in /var/lib/lrpkg/*.list; do
   sed -e /^etc/d -e /^[/]etc/d -e /^[.][/]etc/d \
   ${pkg}  ${pkg}.light
   cmp -s ${pkg} ${pkg}.light
   if [ $? = 0 ]; then
 rm ${pkg}.light
   else
 echo ${pkg}
 mv ${pkg}.light ${pkg}
   fi
 done

How about this:

for pkg in /var/lib/lrpkg/*.list ; do
   if grep -q [./]*etc ; then
  sed '/[^\/]*etc/d' $pkg $pkg.2
  mv $pkg.2 $pkg
  echo $pkg
   fi
done

 Yes! Every package list that claimed anything in /etc is
 rewritten! When I want to backup, I simply remove the
 write protect tab on the floppy. I can assure you that it
 takes a lot of config data to fill 1.6Mb of compressed
 space. Further, if the floppy is lost or if something BAD
 happens, the machine still boots from the CD: removing the
 floppy is akin to a master reset on the memory, not the
 software. The entire experience is almost identical to
 running from ROM. Sharing it will only improve the
 process. For example, the enclosure can CREATE on the fly
 an empty package if the default store is not specified.
 See the discussion.img floppy that is idling somewhere.

How's this different from Oxygen and Dachstein and how they read their
configuration data from the floppy?  I can create a package which
contains nothing but configuration files, put it onto a floppy disk,
and boot the Oxygen Bootable CDROM using that configuration

And I DON'T have to rewrite all of the packages...

 I understand completely. The process of changing the way
 something is stored is usually referred to as a
 conversion and you will provide at a later date the
 conversion procedure for your RAM disk. Will you still be
 supporting the old LRP patches, eg, will Oxygen 1.9+
 support both the old tar.gz RAM disk and the new gz only
 RAM disk?

For booting purposes the use of root.lrp is dead; however, a script to
convert root.lrp to a root.gz is practically a neccessity.  The LRP
patches can't be used on any kernel newer than 2.4.5 last I heard; so
this kills the use of a *.tar.gz file for booting.

 I am not certain I understand everything you wrote there,
 but I understand that you would be happy to include
 additional packages in your repository. I am correct?

One of the ways I felt I could help LEAF (or LRP) was to package up
everything I wanted - or everything in sight, which was about the same
thing :-)

The repository is one of two things.  I've tried to make a repository
in that I've been gathering a lot of packages together, too.  However,
a real Repository would be with hyperlinks, descriptions, home pages,
etc and requires a new package extension.  I've not done as much
as I ought, but it mainly uses a new file /var/lib/lrpkg/pkg.desc
which contains all of the information

This information is then read by the Lua script and converted to
HTML
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel