!!! VECPKG : The New Vector Linux Packages System
==================================================

Without doubt, the idea behind all of this new things
is the new package system. Since VL 5.0, Vector Linux 
packages system has been renewed, comprising of:
* A software plaza with well structured packages.
* User get a new VECPKG to browse, select, download and
  install the packages from tha plaza.
* For vecteloper, an automatic build scripts to produce
  the packages that compatible with the structure.
* A possible dependency system is underway, but wait until VL 6.0.

This documents introduce the new packages organisation,
software plaza and the vecpkg that will download the 
packages from FTP site.


----------
!! 1. PACKAGES ORGANISATION

Vector Linux organizes the packages in a tree structure 
according to their base library and their group.
* The libraries express the layered dependency
* The groups represent the usage

For example, if a package placed as :

/x11/gtk/NET/firefox-1.0-i586-vl5.tgz

it means:
- It needs the libraries from x11/BASE and x11/gtk/BASE
- It categorized as NETwork applications

What is the advantage ?


! 1.1. Allow BASE library optimisation.

The well known base libraries are:
<pre>
cli : Command Line Interface. Everything that runs on text mode.
x11 : X-Windows system. The basic for GUI applications.
x11/gtk : light GUI toolkit. 
x11/gtk2 : medium GUI toolkit.
x11/qt : medium GUI toolkit.
x11/gtk2/gnome : heavy desktop environment.
x11/qt/kde : heavy desktop environment.
</pre>

Knowing the base libraries, enable us to make a 
clean and compact distro. For example:
# VL-dynamite includes only cli, x11 and x11/gtk.
# VL-standard uses cli, x11, x11/gtk, x11/gtk2 and x11/sdl
# VL-deluxe add the standard with x11/gtk2/gnome
# VL-soho add the standard with x11/qt and x11/qt/kde, even /x11/fltk


! 1.2 Allow EASY LAYERED DEPENDENCY

If a user want to install /x11/gtk/NET/firefox-1.0-i586-vl5.tgz,
just make sure everything in /x11/BASE and /x11/gtk/BASE are installed.
Not so clean, but ... could it be easier ?.


! 1.3. Allow PACKAGE variances

Some applications can be compiled for different base libraries,
for example we can have firefox for GTK1 and for GTK2.
So, vl-dynamite certainly uses the gtk1 variance 
/x11/gtk/NET/firefox-0.8_gtk1-i586-vl5.tgz
while the others might use the 
/x11/gtk2/NET/firefox-0.8-i586-vl5.tgz variance.
Note: We can have only one variance installed at the same time.


! 1.4. Allow CATEGORIZATION

The applications is placed according to their USAGE, which is
somewhat similar with the windows manager's menu. For example, 
if users find out their IceWM or KDE menu has fewer Multimedia 
applications, try to find other apps under MM directory. For 
each BASE library, the cateqories are:

BASE: the base libraries, mostly required
CORE: essentials and custom packages, mostly included in the ISO.
DEV: development systems
EDIT: editors
EDU: educational and sciense applications.
ENT: Entertainment (games, toys)
GR: Graphics
MM: Multimedia
OFC: Office
SET: User interface related settings
SYS: System related configurator
UTIL: Utilities

----------
!! 2. THE SOFTWARE PLAZA

Software plaza is the online repository of Vector Linux packages.
It is an FTP site, where the packages are organized as
has been described before. To enhance the browsing speed,
a file named PKGLIST.TXT is provided on the top level directory.
It lists the packages, their description and their size.

Note for software plaza maintainers, the PKGLIST.TXT 
can be generated automatically using pkglist script.
Make sure the PKGLIST.TXT is up to date or the customers
will miss the newest packages.

------
!! 3. VECPKG

Vecpkg is the shoping utility that will get the packages from the source.
It is, in usual Vector Linux style, a simple yet effective program
that able to:
* Select the source, whetter a FTP site, a CDROM or a local directory.
* After a source is chosen, vecpkg reads the PKGLIST.TXT.
* Based on PKGLIST.TXT information, vecpkg allows users to select
  base libraries. If users run Vector standar for example,
  they already have x11, gtk1 and gtk2 base libraries. They should 
  add qt and kde libraries for upgrading to SOHO.
* After the base libraries are selected, vecpkg presents the
  available packages. Users may choose what he want to.
* Then the vecpkg made final confirmation.
* Vecpkg downloads the packages. By default, vecpkg puts 
  the downloaded packages under /home/ftp/pub/veclinux-VER.
  The reason is, that directory can be published using proftpd,
  so users can easily raising up a mirror site.
* Vecpkg installs the packages.
* Enjoy your new toys ;-)


