Urgent question!

Adi Linden [email protected]
Mon, 24 Jan 2000 01:24:34 -0600 (CST)


Hi,

> >From the "Write the manual first" method (items in [] are for design 
> information only...fix this if I screwed it up :-)
> -------
> 
> "Main Menu->Manage Packages->Build Package"
> 
> Use this menu operation to create the packages used for your file system.
> If the source file has already been analyized for Pee Wee Linx, you will
> see a list of available packages.
> 
> Choose the package you wish to build from this list. (If you don't see
> the one you want, you have to build your own patch file - see the 500
> page Appendix X describing just how to do this).
> 
> [patch files are stored in Embedded_Build/patches directory]
> 
> If the source file required for this package is not found, you will be 
> prompted for its location. (ie. insert your Red Hat or other distribution
> Source disk and tell pwlconfig where to get the file).
> 
> [Original source files are stored in Embedded_Build/sources/package_name ]
> 
> Once the source file is found, it will be processed for optimized building
> of the binaries.  This may take a while.
> 
> [Processing done by the Embedded_Build/build_pwl/package_name/build.sh ]
> [Processed source files are found in Embedded_Build/mnt ]
> 
> You will now be given a list of all the files within the package. Pick
> and choose the files you want to include in your package (or accept the
> defaults).  All the files you've selected will be stored in your new
> package.
> 
> Now, simply select the package category that best describes your package.
> Or create a new category using "Add Package Category" operation.  Your 
> package will be installed and available for including in your filesystem.
> 
> [packages are found in  Embedded_Build/package/category/package_name.tar]
> 
> If you choose "Add as a default package", the package will be automatically 
> selected for every new project you build.
> 
> [default packages are found in Embedded_Build/package/package_name.tar]

I think the package building process shouldn't be interactive. I.e the
package is build to whatever is configured in the build_pwl.sh script. The
process of picking which binaries to copy into an embedded design would be
done when assembling packages for a particular project.

Perhaps the only choice could be which packages to build from the list of
PeeWeeLinux packages.

> > Ok, here is what I did...
> > 
> > I renamed the extracted_src directory to build_pwl. I thought this might
> > sound ok for a place to hold pwl specific compiled extracted sources.
> > 
> > I added a new directory Embedded_Build/patches to contain the patches that
> > make pwl sources out of generic sources.
> 
> Where are you storing the generic sources ?? see below...

Embedded_Build/sources/

> > Patching the sources will create a script called build_pwl.sh which is in
> > the top directory of the extracted patches sources, i.e:
> > Embedded_Build/build_pwl/boa-0.94.0/build_pwl.sh 
> > 
> > This build_pwl script contains the instructions to actually compile the
> > sources, strip the binaries and copy everything needed for the boa-0.94.0
> > package into Embedded_Build/mnt.
> > 
> > Then the script will tar up the contents of Embedded_Build/mnt and create
> > boa-0.94.0 in Embedded_Build/packages/network_servers
> > 
> Cool...fits right in with the other packages...

Yup.

> > I thought of keeping the Embedded_Build/sources directory dedicated to
> > sources and patches unrelated to PWL.

Sorry, difficult sentence. Got to clarify this. The Embedded_Build/sources
directory contains source tarballs. The original downloaded source
tarballs. It also contains patches supplied by others to make the tarball
work with linux. Those paches are Linux specific (i.e. convert BSD sources
to Linux) and don't have anything to do with PeeWeeLinux.

> There should be room here for 
> Embedded_Build/sources/boa...
> to keep the generic sources and
> Embedded_Build/sources/custom
> for the user to keep their specific stuff..I can default pwlconfig
> to start here when adding custom files to a project.  

I don't think pwlconfig will be able to compile sources not prepared for
PeeWeeLinux with a build_pwl.sh script and whatever patches might be
required. I think if a user wanted to compile apache to run on PeeWeeLinux
today, he'd be on his own extracting the sources wherever and compiling
them and building his own package, a custom.tar package.

> > I've been thinking more about the tar vs. rpm issue. Now I am actually
> > more leaning towards using Redhat independent sources. Just accumulate all
> > the different source packages and patches from who knows where and keep
> > building PeeWeeLinux with it. This could make a Redhat independent
> > system... I could post the source files individually on my site.
> > Essentially an uncompressed Embedded_Build directory of the latest
> > release...  
> 
> That will keep us distro independent...sounds nice. But, how do you get 
> them to start with? copying from RH disk #2 is easy for me...FTP'em ??

Well, PeeWeeLinux could come as a source distro with all the sources
included in the Embedded_Build/sources directory or a user could ftp the
original sources from the PeeWeeLinux ftp site. It's no problem generating
a PeeWeeLinux CD either...

Then again just like installing Redhat, the sources aren't really needed.
They're just there for fun. Just the process of automating this all might
make future upgrades easier. I.e compiling kernel dependent stuff, etc.

> Hmmm...just off the top, I think you can do this:
> 
> loc=$PWD
> cd build_pwl/$pkgSourceDir
> . ./build_pwl.sh
> cd $loc 

That should work. But how do you know how a script was involed? Look at my
distribute script. If you run it from within the script directory it works
fine. Run it from the Embedded_Build directory... oooooops... won't work!

> Seems simple enough, not sure if it will work...I can hack this out
> once you get build_pwl.sh working.  I can integrate it into the pwlconfig
> script and see what happens..

The boa-0.94.0 is working. I didn't manage to get minicom to compile with
termcap. Got to work on that. Here's the procedure to manually build boa.
Take note that I am starting from the Embedded_Build directory:

[adi@big Embedded_Build]$ cd build_pwl
[adi@big build_pwl]$ tar xzvf ../sources/boa-0.94.0.tar.gz
[adi@big build_pwl]$ patch -p0 < ../patches/boa-0.94.0.patch
[adi@big build_pwl]$ cd boa-0.94.0
[adi@big boa-0.94.0]$ chmod 755 build_pwl.sh
[adi@big boa-0.94.0]$ ./build_pwl.sh

Done! Now look into Embedded_Build/packages/network_servers/ and boa is
there. It was there before but it's there again. Delete it before doing
the above and you'll see :)

To recap, here are the directories and what's in them:

sources -------> Unprocessed original source tarballs
patches -------> Patch files to create a PWL source from an
                 extracted source from 'sources'
build_pwl -----> The directory sources are extracted to
                 Very much a temporary directory as the
                 extracted sources aren't needed after
                 a PWL package has been build  
mnt -----------> A temporary directory utilized by the
                 build_pwl.sh to install files and tar
                 the <package>.tar file from. Everything
                 here is deleted when build_pwl starts
                 and when it stops. So make sure theres
                 nothing valuable in here.
build_pwl.sh --> The package dependent build script. It
                 part of the patch file and gets saved
                 when I create the patch and added to
                 the sources when the patch is applied.
                 It's simple list of commands, no error
                 checking at all at this point. I guess
                 it'll have to be cleaned up sometime. 

I also added <package>.README files that contain descriptions of the
packages. Perhaps other fields could be added in the future? The date the
package was build, etc? It goes like this:

    Description:
    ============
    Blah, blah, blah, blah

    END

Does that work ok to integrate as a package info or help screen into
pwlconfig?

And that's about it! PWL 0.19 is available for download at:

http://projects.adis.on.ca/Embedded/
ftp://projects.adis.on.ca/Embedded/

I am uploading to sourceforge 4096 bytes per hour. It'll take a while
until it's up there. I wonder why my connection there is sooooooo slow?
There is 0 traffic on our 256k line except for my sourceforge upload...

TTYL,
Adi


---------------------------------------------------
See the list archives at http://adis.on.ca/archives/
See the PWL homepage at  http://embedded.adis.on.ca
---------------------------------------------------