SliTaz Spk
================================================================================


The SliTaz Spk toolset provides tools and utils to handle SliTaz packages.


Spk
-------------------------------------------------------------------------------
Spk is the main tool to handle and play with SliTaz packages, it handles multiple
packages on a cmdline and a wide range of --options which will perform tasks such
as adding or removing packages using the toolset. Spk itself provides some small
commands such as ls or info.


Toolset
-------------------------------------------------------------------------------
Spk is separated into many small tools following the UNIX philosophy: one tool
for one task but do that task well. Here is a list of proposed tools and their
functions:

	* spk-ls      : List packages and packages files
	* spk-add     : Install local or online pkgs
	* spk-rm      : Remove packages with confirming option
	* spk-up      : Upgrade the whole system
	* spk-search  : Search for packages or files
	* spk-mirror  : Manage official and extra mirrors, generate lists (gendb)
	* spk-convert : Convert .deb/.rpm/.ipk/.apk to .tazpkg
	* spk-doctor  : Diagnose the packages DB and install state
	* spk-tui     : Full ncurses TUI (browse, search, install/remove, upgrade)
	* spk-sql     : Optional SQLite index over the package lists (fast search)

Tools speak a common, scriptable grammar: --raw (flat TSV) and --trame
(single JSON object, errors as JSON on stderr) on top of the human output.


LibSpk
-------------------------------------------------------------------------------
Libspk provides base functions and internal variables used by almost all spk-tools.
Libspk must be installed via 'make install-lib' to develop spk-tools.

	* Source: libtaz.sh, libpkg.sh, slitaz.conf
	* Internal Spk variables (lowercase, not configurable)
	* Display package info
	* ...


Devnotes
-------------------------------------------------------------------------------
Some random and useful notes.

	* packages.info: canonical TSV catalogue (cook-pkgdb or spk-mirror gendb)
	  PACKAGE VERSION CATEGORY SHORT_DESC WEB_SITE TAGS "PACKED UNPACKED" \
	  DEPENDS RSUM PROVIDE [NOARCH]   (tab-separated)
	* packages.md5 format : de9f76250657000958ee0120d376613e  package-1.0.tazpkg
	* packages.sql : optional SQLite index derived from the above by spk-sql
	* log package/install.log and package/up.log to keep trace
	* ...

Since we use latest libtaz.sh, slitaz.conf and libpkg.sh code you must install
these files to develop the Spk Toolset:

	$ hg clone http://hg.slitaz.org/slitaz-base-files
	$ cd slitaz-base-files
	$ make install-libtaz
	$ make install-libpkg
	$ make install-slitaz


Coding style
--------------------------------------------------------------------------------
Here are the spk coding style notes, follow them if you want your code included
in the package. These rules are in addition to cookutils coding style, please
also read the cookutils/README


	* No bash, be Busybox Ash compatible
	* Use libtaz.sh, slitaz.conf and libpkg.sh
	* ...

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

