aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2006-09-19 16:56:25 +0000
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2006-09-19 16:56:25 +0000
commit397f31fcb0b47000c6e5c5c4aaf441970ce06e3a (patch)
tree0df0e0bbc0ef9d4f2a388d4bd634e8683e9a36af /doc
parenta5ad04283516a7ff72cfd33f3221cfd3c10c3b5b (diff)
downloadsimplepkg-397f31fcb0b47000c6e5c5c4aaf441970ce06e3a.tar.gz
simplepkg-397f31fcb0b47000c6e5c5c4aaf441970ce06e3a.tar.bz2
simplepkg 0.4.9pre2
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@5 04377dda-e619-0410-9926-eae83683ac58
Diffstat (limited to 'doc')
-rw-r--r--doc/CHANGELOG56
-rw-r--r--doc/COPYING340
-rw-r--r--doc/README258
-rw-r--r--doc/README.pt_BR254
-rw-r--r--doc/README.simplaret143
-rw-r--r--doc/README.simplaret.pt_BR148
-rw-r--r--doc/TODO5
7 files changed, 1204 insertions, 0 deletions
diff --git a/doc/CHANGELOG b/doc/CHANGELOG
new file mode 100644
index 0000000..847ec3b
--- /dev/null
+++ b/doc/CHANGELOG
@@ -0,0 +1,56 @@
+simplepkg changelog
+-------------------
+
+0.4.9pre2: re-organized the source repository
+ added createpkg
+ updated README and README.pt_BR
+
+0.4.8: simplaret: removed extra folder from slamd64 definition
+ and fixed a typo
+
+0.4.7: templatepkg bugfix on blank template lines and on package deletion
+ changed simplaret working dir in simplaret.conf.new
+
+0.4.6: small bugfix on jail-update that prevented template update
+
+0.4.5: vserver template update
+
+0.4.4: WARNING option on config file for simplaret
+
+ SILENT env var, if a non-zero value, keeps simplaret
+ work silenty when purging and works like if WANRING is set
+ to not null.
+
+ add SIMPLARET_DELETE_DURING config parameter: when set
+ to a non-zero value deletes each package rigth after its
+ installation
+
+0.4.3: openoffice.org template
+
+0.4.2: common.sh: fix on install_packages when handling
+ with similar package names
+
+0.4.1: templatepkg: fixed tagfiles and comment handling
+
+0.4: multi-plataform and version management
+
+ now simplepkg supports jails with architectures and versions
+ others than the main system, read the docs for details.
+
+ added simplaret: a small script for downloading packages
+
+ jail-upgrade
+
+ * arch checking via /etc/slackware-version on each jail
+ * supports multi-arch and multi-version repository
+ * integrated with simplaret
+
+ common.sh: improved functions to support simplaret
+
+0.3.7-0.3.9: bugfix releases
+
+0.3.6: added "-u" option to eval_config to ask for a swaret --update
+
+0.3.5: "main" jail support for jail-update
+
+0.3.4: started changelog :)
diff --git a/doc/COPYING b/doc/COPYING
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/doc/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/doc/README b/doc/README
new file mode 100644
index 0000000..50b0e9d
--- /dev/null
+++ b/doc/README
@@ -0,0 +1,258 @@
+Simplepkg: installation manager and metapackage system
+------------------------------------------------------
+
+Author: Silvio Rhatto <rhatto at riseup.net>
+Licence: GPL
+
+Simplepkg is a non-intrusive package management system running on top of pkgtool.
+It uses templates -- lists of installed packages, scripts and configuration files
+-- allowing the creation of installation profiles that can be used do install a
+complete and configured slackware system in another partition or to create chroot
+environments. The same templating scheme extends slackware packaging system, adding
+metapackages: a list of packages installed or removed with a single command.
+
+Documentation
+-------------
+
+ English documentation: README | http://slack.sarava.org/node/15
+ Portuguese documentation: REAMDE.pt_BR | http://slack.sarava.org/node/12
+
+Description
+-----------
+
+All GNU/Linux distributions comes with a well developed packaging system. The question now
+is how pratical is the way to install, configure and control any changes in a system.
+
+As an example, suppose you should keep a list of about 200 slackware machines, some
+of them used as desktops, others as mail or webservers. If you lost some hardrives
+or usually need to re-install or update some of those boxes.
+
+Using the slackware installation cd and configuring by hand all the time you got a crash
+is a time loss activity and you'll never know if something remained missconfigured. An
+alternative is to keep a complete backup of a machine or some parts of the tree, but for
+a large number of different boxes this procedure costs a lots of resources.
+
+Simplepkg offers an alternative sollution for this and other problems related to installation
+management, allowing you to keep templates of each machine and install a custom slackware
+system with just one or a few commands. Creating and upgrading chroot and vservers is easy
+with simplepkg.
+
+Architecture
+------------
+
+Simplepkg is a set of scripts wrote in the KISS philosophy. Its a pretty simple system, composed
+by the following commands:
+
+ - mkjail: build a slackware jail/installation in a folder
+ - metapkg: install or remove a metapackage
+ - templatepkg: create or update a package list of an installation template
+ - lspkg: show installed packages and its contents
+ - jail-upgrade: upgrade all or some of the jails/installations
+ - jail-update: update all configuration files of a template
+ - rebuildpkg: rebuild a package based on its /var/log/packages entry
+ - simplaret: package retrieval tool
+ - createpkg: donwload, compile and package creationg script based on http://slack.sarava.org/slackbuilds
+
+Simplepkg configs are placed at /etc/simplepkg. Templates are .template files containing an one-by-line
+package list. A template can be something like this:
+
+ aaa_base
+ aaa_elflibs
+ apache
+ bash
+ bin
+ coreutils
+ findutils
+
+Slackware's tagfile format can be used too as a template.
+
+Installation
+------------
+
+The latest version of simplepkg is locate at http://slack.sarava.org/packages/noarch/.
+Install it with the usual way:
+
+ installpkg simplepkg-VERSION-noarch-BUILD.tgz
+
+If you have a working swaret on your system, add this line on you swaret.conf:
+
+ REPOS_ROOT=SlackMidiataticaNoarch%http://slack.sarava.org/packages/noarch
+
+and then issue those commands:
+
+ swaret --update
+ swaret --install simplepkg
+
+Configuration
+-------------
+
+As an example, we'll create a jail based on the packages installed in your slackware
+system. Edit the config file /etc/simplepkg/simplepkg.conf:
+
+ # /etc/simplepkg/simplepkg.conf
+ JAIL_ROOT="/vservers" # where jails are placed
+ SIMPLARET="simplaret" # package grabber program (can be swaret if you have it installed)
+ SIMPLARET_CLEAN="1" # clean package cache before installation
+ SIMPLARET_DELETE_DOWN="1" # clean package cache after the installation
+ SIMPLARET_UPDATE="0" # issue an simplaret --update before install the jail
+ SIMPLARET_PURGE_WEEKS="N" # delete packages older than N weeks from the cache
+ PATCHES_DIR="/storage/package/patches" # where patches are placed
+ DEFAULT_ARCH="i386"
+ DEFAULT=VERSION="10.2"
+ STORAGE="/storage/packages" # where simplepkg store packages
+ PASSIVE_FTP="1"
+
+You should also put in /etc/simplepkg/repos.conf all package repositories you use, like this:
+
+ ROOT-i386="http://slack.sarava.org/packages/slackware"
+ REPOS-i386="slack-sarava%http://slack.sarava.org/packages/slackware/slackware-10.2/"
+ ROOT-x86_64-10.2="http://darkstar.ist.utl.pt/pub/slamd64/"
+ REPOS-x86_64-10.2="slamd-sarava%http://slack.sarava.org/packages/slamd64/slamd64-10.2/"
+
+Instead of simplaret you can use swaret to fetch packages and them your swaret.conf must
+be configured to use the same place as STORAGE to the package cache. In this case you cant
+keep installations and jails with multiple arquitetures and for that reason the use of
+simplaret is recommended.
+
+Creating jails and replicating installations
+--------------------------------------------
+
+ templatepkg my-slackare
+ mkjail jail my-slackware
+
+The previous commands creates a template called my-slackware from based on your installed
+softwares listed in /var/log/packages and then creates a completely new slackware
+tree with all those packages in the folder /vservers/jail (depending on the value of JAIL_ROOT from
+your simplepkg.conf).
+
+If you want that some config files get copied or some scripts executed after install this jail,
+place in the folder /etc/simplepkg/my-slackware.d all your config files (preserving the file
+system hierarchy, i.e, /etc/simplepkg/my-slackware/etc/apache/httpd.conf) and the scripts at
+/etc/simplepkg/my-slackware.s/. The template vserver, which comes in the simplepkg package, has
+an example script to use with mkjail.
+
+You can specify an alternative destination for your jail with a command like
+
+ ROOT=/mnt mkjail hda2 my-slackware
+
+This does exactly what you think: installs slackware in /mnt/hda2 with exactly the same packages
+you have on your system, replacing the need of the slackware installer!
+
+In case no template specified, mkjail uses the one called /etc/simplepkg/default.template.
+
+If you keep your jails in JAIL_ROOT with the same name as the template you used to create it, its
+possible to use the command jail-update to copy all modifications made in the files which their
+counterparts are placed at /etc/simplepkg/jail-name.d. Then you can copy all configuration files
+you edited to the template folder and leave a crontab entry to everyday seek for changes and update
+the template. When you issue the command
+
+ jail-update
+
+all jails listed in /etc/simplepkg/jaillist are updated. This command also updates the package list
+of the template.
+
+To add or remove packages from a template, you can just edit by hand the template file or use the
+command templatepkg with the -a (append) flag, which adds just the new installed packages in the
+template file.
+
+If you want to create a template from a jail, use
+
+ templatepkg jail /vservers/jail
+
+Metapackages
+------------
+
+Another use for the templates is the creation of metapackegs: new users have lots of difficulties
+to track dependencies when installing a software. Using a template containing the name of all
+packages needed by some program allow users to easily install it through the command
+
+ metapkg --install program-name
+
+This seems like swaret or slapt-get, with the only difference in the way metapkg deals with
+dependence resolution. Slapt-get support the slack-required file, wich comes or not with the
+package. Swaret has its own tool for dependence matching.
+
+Simplepkg doesn't wish to substitute those two dependence checking modes, but offer an alternate
+way to distribute packages where dependences are resolved without an specific tool or a change
+in the package itself.
+
+A metapackage, i.e, all installed packages from a template, can be removed with
+
+ metapkg --remove program-name
+
+Upgrading jails
+---------------
+
+Both the main installation (your root system) and your jails are upgraded with the command
+jail-upgrade: just adjust simplepkg.conf's PATCHES_DIR to where you store slackware patches
+(that can be rsync'ed everyday) and do a
+
+ jail-upgrade
+
+This will upgrade your main system and all jails living in JAIL_ROOT. To specify another
+folder, use
+
+ ROOT=/otherroot jail-upgrade
+
+If you want to upgrade just one specific jail,
+
+ jail-upgrade jail-name
+
+To use a patches folder other than PATCHES_DIR, e.g when you have jails with different
+slackware versions, use
+
+ PATCHES=/alternative/patches/folder jail-upgrade jail-name
+
+Different archs and versions
+----------------------------
+
+Simplepkg was idealized to permit a template to create jails from any architecture and version
+of a slackware-like system. Upgrading tasks also are unified. This feature just works if you
+use simplaret and not swaret as the package retrieval tool.
+
+As another example, to create an slack 10.1 installation (assuming your /etc/simplepkg/repos.conf with
+the right configuration), just type
+
+ VERSION=10.1 mkjail my-jail server-template
+
+Different archs can be used too. If you have a x86_64 system and wants to install a slack 10.2
+in a partition, try something like
+
+ ARCH=i386 VERSION=10.2 ROOT=/mnt mkjail hda2 my-slackware
+
+Note that the templates are arch and version independent, as they just contain package names,
+configuration files and scripts. For this reason, the commands templatepkg, metapkg, lspkg and
+jail-update can be used normaly.
+
+To upgrade jails with othes archs and versions, jail-upgrade checks this information through
+/etc/slackware-version for each jail and applies the correspondent patches grabed from
+simplaret (see the proper documentation).
+
+By this way, doesn't matter which versions and archs each of your jails has, jail-upgrade remains
+the same since your patches are sorted by arch an version, as explained in simplaret documentation
+found at http://slack.sarava.org/node/17.
+
+Auxiliar applications: rebuildpkg and createpkg
+-----------------------------------------------
+
+Simplepkg comes with an additional helper tool that recover installed packages which the original
+.tgz file was lost. The command rebuildpkg rebuilds a package from their entry in /var/log/packages.
+As an example,
+
+ rebuildpkg coreutils
+
+rebuilds the coreutils package using the files, scripts and metainformations stored in
+/var/log/packages/ and /var/log/scripts/.
+
+If you want to build you own packages using the scripts available from http://slack.sarava.org/slackbuilds,
+use the createpkg script:
+
+ createpkg package-name
+
+Source
+------
+
+Source code for simplepkg and its package builder can be fetched via subversion:
+
+ svn checkout svn://slack.sarava.org/simplepkg
+
diff --git a/doc/README.pt_BR b/doc/README.pt_BR
new file mode 100644
index 0000000..4e814de
--- /dev/null
+++ b/doc/README.pt_BR
@@ -0,0 +1,254 @@
+Simplepkg: gerenciamento de instalações e metapacotes
+-----------------------------------------------------
+
+Autor: Silvio Rhatto <rhatto at riseup.net>
+Licença: GPL
+
+O simplepkg é um sistema de gerenciamento de pacotes que roda sobre o pkgtool.
+Ele trabalha com templates -- listas com pacotes instalados, scripts e arquivos de configuração
+-- permitindo criar perfis de instalação que podem ser então usados para instalar o sistema numa
+outra partição, criar um chroot específico ou até trabalhar com o conceito de metapacotes: uma
+lista de pacotes que pode ser instalada e removida com apenas um comando.
+
+Documentação
+------------
+
+A documentação mais atualizada do simplepkg está em http://slack.sarava.org/node/12
+
+Descrição
+---------
+
+Todas as distribuições de GNU/Linux já tem algum sistema de empacotamento amadurecido. A questão
+agora é a praticidade de instalar e controlar o que está instalado, tanto pacotes como arquivos
+de configuração de uma máquina.
+
+Imagine por exemplo se você precisa manter uma lista de pacotes de 200 máquinas slackware, sendo
+que algumas são usadas como desktop, outras como servidores web, alguma sendo o servidor de email
+e assim por diante. Imagine agora que você perca o disco de algumas dessas máquinas ou que precise
+cotidianamente reinstalar ou atualizar um sistema.
+
+Usar o cd de instalação do slackware e configurar na mão toda a vez que der um pau faria com que
+você ficasse louco/a e desperdiçasse muito tempo, além do que sempre ocorre de esquecermos algum
+detalhe ou pacote durante a configuração do sistema. Manter um backup completo de cada máquina,
+por outro lado, pode ser muito custoso se o número delas for muito grande.
+
+O simplepkg permite que você mantenha um template para cada grupo de máquinas e com apenas um
+comando instalar o template numa partição. Além do template, você precisa configurar o simplepkg
+para obter pacotes de um repositório local ou remoto.
+
+Gerenciar instalações e metapacotes não é tudo o que o simplepkg faz. Ele pode ser usado até na
+criação de vservers.
+
+Arquitetura
+-----------
+
+O simplepkg é um conjunto de scripts escritos com a filosofia KISS em mente. Ele é um sistema muito
+simples, composto pelos seguintes comandos:
+
+ - mkjail: constrói uma jaula/instalação de slackware numa pasta
+ - metapkg: instala ou remove um metapacote
+ - templatepkg: criar ou adiciona pacotes a um template
+ - lspkg: lista pacotes instalados
+ - jail-upgrade: faz o upgrade nas jaulas
+ - rebuildpkg: reconstrói um pacote a partir de sua entrada no /var/log/packages
+ - simplaret: obtém pacotes de repositórios locais ou remotos
+ - createpkg: baixa, compila e empacota software de acordo com http://slack.sarava.org/slackbuilds
+
+A pasta de configuração e armazenamento de templates é a /etc/simplepkg. Templates são arquivos contendo
+uma lista de pacotes, um pacote por linha e com a extensão .template. Como exemplo, um template poderia se
+chamar minimo.template e conter a seguinte lista:
+
+ aaa_base
+ aaa_elflibs
+ apache
+ bash
+ bin
+ coreutils
+ findutils
+
+Se você quiser também é possível usar um tagfile do slackware como template, sem nem precisar editá-lo.
+
+Instalando o simplepkg
+----------------------
+
+Para baixar o pacote do simplepkg, vá em http://slack.sarava.org/packages/noarch/.
+
+ installpkg simplepkg-VERSAO-noarch-BUILD.tgz
+
+Alternativamente, se você está com o swaret instalado, adicione em seu swaret.conf a linha
+
+ REPOS_ROOT=SlackMidiataticaNoarch%http://slack.sarava.org/packages/noarch
+
+e então digite
+
+ swaret --update
+ swaret --install simplepkg
+
+Configurando o simplepkg
+------------------------
+
+Como exemplo, vamos criar uma jaula baseada nos pacotes instalados no seu slackware. Edite o
+arquivo /etc/simplepkg/simplepkg.conf:
+
+ # /etc/simplepkg/simplepkg.conf
+ JAIL_ROOT="/vservers" # local onde as jaulas serão criadas
+ SIMPLARET="simplaret" # programa que baixa os pacotes (pode ser o swaret se voce o tiver)
+ STORAGE="/var/simplaret" # local onde o simplepkg armazena seus pacotes
+ SIMPLARET_CLEAN="1" # apaga o cache de pacotes antes da instalação da jaula
+ SIMPLARET_DELETE_DOWN="1" # apaga o cache de pacotes após a instalação
+ SIMPLARET_UPDATE="0" # atualiza as listas de pacotes antes de iniciar a instalação da jaula
+ SIMPLARET_PURGE_WEEKS="N" # apaga os pacotes do cache mais velhos que N semanas antes de instalar
+ PATCHES_DIR="/var/simplaret/patches" # local os patches são armazenados
+ DEFAULT_ARCH="i386"
+ DEFAULT=VERSION="10.2"
+ STORAGE="/storage/packages" # where simplepkg store packages
+ PASSIVE_FTP="1"
+
+Para definir quais repositórios de pacotes você usará, edite o arquivo /etc/simplepkg/repos.conf,
+colocando algo como
+
+ ROOT-i386="http://slack.sarava.org/packages/slackware"
+ REPOS-i386="slack-sarava%http://slack.sarava.org/packages/slackware/slackware-10.2/"
+ ROOT-x86_64-10.2="http://darkstar.ist.utl.pt/pub/slamd64/"
+ REPOS-x86_64-10.2="slamd-sarava%http://slack.sarava.org/packages/slamd64/slamd64-10.2/"
+
+Para informações detalhadas sobre o simplaret, consulte seu artigo específico em http://slack.sarava.org/node/16
+
+Se você quer utilizar o swaret em lugar do simplaret, o swaret.conf deve estar bem configurado para que ele
+seja capaz de baixar e instalar todos os pacotes dos templates. Parâmetros como EXCLUDE podem ser um empecilho,
+e se você os remover da sua instalação tenha muito cuidado ao atualizar o seu sistema via swaret --upgrade.
+A desvantagem de usar o swaret é que você não terá como administrar jaulas e instalações de múltiplas arquiteturas.
+
+Criando jaulas e replicando instalações
+---------------------------------------
+
+ templatepkg meu-slackware
+ mkjail jaula meu-slackware
+
+Isso cria o template meu-slackware a partir da sua lista de pacotes em /var/log/packages e cria uma nova árvore
+com esses pacotes na pasta /vservers/jaula (dependendo de qual o valor da variável JAIL_ROOT do simplepkg.conf, é claro).
+
+Se você quiser que alguns arquivos de configuração e executar scripts após a instalação dessa jaula, basta colocarmos na
+pasta /etc/simplepkg/meu-slackware.d/ os arquivos de configuração (dentro da hierarquia de pastas do sistema, isto é,
+/etc/simplepkg/meu-slackware.d/etc/apache/httpd.conf) e os script em /etc/simplepkg/meu-slackware.s/. O template vserver,
+que já vem no mkjail contém um exemplo de script.
+
+Você pode especificar também destinos alternativos para sua jaula, através de um comando do tipo
+
+ ROOT=/mnt mkjail hda2 meu-slackware
+
+O comando acima faz exatamente o que você está pensando: replica sua instalação slackware em /mnt/hda2, dispensando
+totalmente o programa de instalação do slackware!
+
+Caso nenhum template for especificado, o mkjail utiliza o template /etc/simplepkg/default.template.
+
+Se você manter uma jaula em JAIL_ROOT com o mesmo nome que um template, é possível ainda usar o script jail-update
+para copiar todas as alterações de arquivos da jaula na pasta de arquivos do seu template (/etc/simplepkg/nome-da-jaula.d).
+Assim, basta que você copie todos os arquivos de configuração que você editou para essa pasta e deixar o jail-update numa
+crontab para que você tenha sempre um template atualizado e baseado nas jaulas / instalações que você tem rodando e que
+estiverem listadas no arquivo /etc/simplepkg/jailist:
+
+ jail-update
+
+Para adicionar ou remover pacotes de um template, basta editar o arquivo de template. Uma outra forma de adicionar
+arquivos é usando o templatepkg com a opção -a, que adiciona apenas novos pacotes ao template. Se você quiser que o
+templatepkg crie um template a partir de uma jaula, simplesmente use
+
+ templatepkg jaula /vservers/jaula
+
+Metapacotes
+-----------
+
+Outro uso dos templates é a criação de pacotes: imagine por exemplo a dificuldade de um usuário/a novo de slackware
+para instalar o cinelerra e todas as suas dependências. Criando um template contendo o nome de todos os pacotes
+necessários para rodar esse software permite que um usuário instale-o simplesmente com o comando
+
+ metapkg --install cinelerra
+
+O comando sugere uma semelhança com o uso direto do swaret ou do slapt-get, com a única diferença residindo no
+modo como cada um desses programas lida com as dependências de um pacote. Os slapt-get suporta o arquivo
+slack-required, que pode ou não estar presente no pacote. Já o swaret possui uma ferramenta própria para a
+criação de uma lista de dependências.
+
+O simplepkg não pretende substituir esses dois modos de checagem e sim propor uma alternativa de distribuição
+de pacotes em que as dependências são resolvidas sem precisar de um repositório de dependências ou uma modificação
+no próprio pacote, que é o caso do slack-required, um arquivo que na maioria das vezes não está presente.
+
+A remoção de um aplicativo e todas as suas dependências podem ser feitas simplesmente com o comando
+
+ metapkg --remove cinelerra
+
+Upgrade de jaulas
+-----------------
+
+O upgrade de jaulas que estejam em JAIL_ROOT pode ser efetuado com o comando jail-upgrade. Simplesmente coloque
+os patches em PATCHES_DIR e dê o comando
+
+ jail-upgrade
+
+Se você quiser atualizar apenas uma das jaulas que estão em JAIL_ROOT, use
+
+ jail-upgrade nome-da-jaula
+
+Para especificar uma pasta contendo patches diferente de PATCHES_DIR (útil quando você possui jaulas com
+diferentes versões do slackware), simplesmente use
+
+ PATCHES=/local/dos/patches jail-upgrade nome-da-jaula
+
+De modo análogo ao mkjail, é possível indicar ao jail-upgrade uma outra pasta onde a jaula está armazenada:
+
+ ROOT=/otherroot jail-upgrade
+
+Arquiteturas e versões diferentes
+---------------------------------
+
+O simplepkg foi idealizado para permitir que um mesmo template possa ser usado para criar jaulas de
+arquiteturas e versões diferentes de sistemas padrão slackware. A atualização desses sistemas também
+é unificada. Essa possibilidade só é permitida se você usa o simplaret e não o swaret como ferramenta
+de obtenção de pacotes.
+
+Por exemplo, para criar uma instalação de slackware 10.1 (assumindo que suas definições de repositórios
+do /etc/simplepkg/repos.conf contenham locais com slack 10.1), basta usar o comando
+
+ VERSION=10.1 mkjail minha-jaula template-servidor
+
+Arquiteturas diferentes também podem ser usadas. Se você está num sistema x86_64 e quer instalar um
+slack 10.2 numa partição, experimente
+
+ ARCH=i386 VERSION=10.2 ROOT=/mnt mkjail hda2 meu-slackware
+
+Note que os templates independem de arquitetura e versão, já que eles só contém nomes de pacotes,
+arquivos de configuração e scripts. Por isso, o templatepkg, o metapkg, o lspkg e o jail-update
+funcionam normalmente.
+
+Para atualizar suas jaulas, o jail-upgrade checa antes qual a versão e arquitetura de cada uma
+de suas jaulas através do /etc/slackware-version correspondente e a partir disso aplica os patches
+da arquitetura e versão da mesma, usando para isso o simplaret (veja a documentação própria).
+
+Desse modo, mesmo que você tenha jaulas de versões e arquiteturas diversas, usar o comando "jail-upgrade"
+faz a atualização sem problemas, desde que seus patches estejam organizados por arquitetura e versão,
+conforme é detalhado na documentação do simplaret, em http://slack.sarava.org/node/16.
+
+Aplicativos auxiliares: rebuildpkg e createpkg
+----------------------------------------------
+
+O simplepkg acompanha ainda um aplicativo auxiliar que ajuda a recuperar pacotes instalados cujo tgz original
+foi perdido. O comando rebuildpkg reconstrói um pacote a partir de uma entrada no /var/log/packages. O comando
+
+ rebuildpkg coreutils
+
+reconstrói um pacote do coreutils usando os arquivos e as metainformações listadas no arquivo
+do /var/log/packages/ correspondente ao coreutils.
+
+Se você quiser construir seus próprios pacotes baseados nos slackbuilds disponíveis em
+http://slack.sarava.org/slackbuilds, basta utilizar o createpkg:
+
+ createpkg nome-do-pacote
+
+Fonte
+-----
+
+Se você quiser obter diretamente o código-fonte do simplepkg, baixe-o do repositório:
+
+ svn checkout svn://slack.sarava.org/simplepkg
+
diff --git a/doc/README.simplaret b/doc/README.simplaret
new file mode 100644
index 0000000..ce7efbd
--- /dev/null
+++ b/doc/README.simplaret
@@ -0,0 +1,143 @@
+simplaret: simplepkg retrieval tool
+-----------------------------------
+
+Simplaret is a simplepkg tool used to download packages from local and remote repositories.
+With simplaret, one can grab packages for all archictectures and versions of slackware-like
+distributions that follows the mirror guidelines, allowing an easy management all
+jails and slackware installations in a machine, no matter wich arquiteture or version
+each one has.
+
+It was inspired in swaret behavior but don't tries to get its complexity level, but
+execute package download in a different way, where the local repository is organized
+by archictecture and version. It can also search for packages.
+
+Documentation
+-------------
+
+The always updated english documentation is hosted at http://slack.sarava.org/node/17
+
+Downloading and installing
+--------------------------
+
+Simplaret comes with simplepkg, wich installation and configuration is detailed
+at http://slack.sarava.org/node/15. Simplaret uses /etc/simplepkg/simplepkg.conf for
+its definitions and /etc/simplepkg/repos.conf for repository information.
+
+Repository organization
+-----------------------
+
+Simplaret local storage folder is defined through STORAGE parameter and is organized
+in this manner:
+
+ $STORAGE/arch/version/
+
+Packages from contributed repositories (i.e, not from an official distro mirror) are
+stored at
+
+ $STORAGE/arch/version/repository-name/
+
+This means, for example, that slack 10.2 packages are located in
+
+ $STORAGE/i386/10.2/
+
+And the slack.sarava.org's slamd64 packages can be stored in a place such as
+
+ $STORAGE/x86_64/10.2/slack.sarava.org/
+
+In the repository definition file (/etc/simplepkg/repos.conf), the entries must match
+the following schema, something that remembers a swaret.conf:
+
+ ROOT-i386="http://slack.sarava.org/slackware/"
+ ROOT-x86_64="http://ftp.heanet.ie/pub/slamd64/"
+ REPOS-i386-10.2="slack.sarava.org%http://slack.sarava.org/packages/slackware/slackware-10.2/"
+ REPOS-x86_64-10.2="slack.sarava.org%http://slack.sarava.org/packages/slamd64/slamd64-10.2/"
+
+Repositories defined as ROOT are those wich
+
+ - Have packages from the official distro or
+ - Are organized by version according to the mirror guidelines
+
+Repositories defined as REPOS are those containing packages from a specific version or
+non-oficial packages.
+
+When simplaret searches for a package, precedence is given first for ROOT definitions and then
+for REPOS ones. REPOS definitions should also include a identification name, delimited from
+the repository URL by the special sign %.
+
+Fetching the package list
+-------------------------
+
+After configured, simplaret can fetch the package list with
+
+ simplaret --update
+
+This updates the package list from arch defined in DEFAULT_ARCH and version from DEFAULT_VERSION.
+To fetch package listings for x86_64 (slamd64) and version 10.2, use
+
+ ARCH=x86_64 VERSION=10.2 simplaret --update
+
+Searching
+---------
+
+To search for a package, use the following commands as examples:
+
+ simplaret --search coreutils
+
+for a Slack/390 package,
+
+ ARCH=s390 simplaret --search x11
+
+for slack 10.1 with contributed i686 packages,
+
+ ARCH=i686 VERSION=10.1 simplaret --search icecast
+
+Downloading
+-----------
+
+To download a package,
+
+ simplaret --get icecast
+
+Simplaret downloads the first package found with the precedence explaned above.
+Future versions should contain an option to explicit get a package from a
+specific repository.
+
+Downloading patches
+-------------------
+
+From the PATCHES_DIR parameter is possible to specify a folder where patches are
+placed, sorted by arch and version.
+
+Patches for slack 10.2 are always located at
+
+ $PATCHES_DIR/i386/10.2/
+
+In reality, patches are downloaded with a "simplaret --get" and stored in the $STORAGE
+subfolder for its arch and version and a symlink is created in $PATCHES_DIR/$ARCH/$VERSION.
+
+To grab all patches from an arch and version, use
+
+ ARCH=architecture VERSION=version simplaret --get-patches
+
+Purging the cache
+-----------------
+
+Simplaret cache from an arch and version can be purged with a
+
+ simplaret --purge
+
+But why use that?
+-----------------
+
+You may ask why someone wishes to use such tool.
+
+Simplaret was written with a *x86 environment in mind, where lots of jails with different archs
+and versions are installed. Suppose a x86_64 with the following chroots installed:
+
+ - slamd64 10.2
+ - slackware 10.2
+ - slackware 10.1 with additional i686 packages
+ - uSlack (i386 uClibc)
+
+Keep all this stuff update manually is really a headache. Simplaret just tries to make it trivial.
+
diff --git a/doc/README.simplaret.pt_BR b/doc/README.simplaret.pt_BR
new file mode 100644
index 0000000..164294b
--- /dev/null
+++ b/doc/README.simplaret.pt_BR
@@ -0,0 +1,148 @@
+simplaret: ferramenta para obtenção de pacotes
+----------------------------------------------
+
+O simplaret é a ferramenta do simplepkg utilizada para obter pacotes de repositórios locais
+ou remotos. Com ele, você pode não só baixar pacotes do seu sistema slackware como também pode
+baixar de qualquer versão ou arquitetura cujo repositório siga os mirror guidelines, permitindo
+que você gerencie facilmente todas as suas jaulas e instalações de slackware, independentemente
+da arquitetura ou versão que elas utilizem.
+
+Ele foi inspirado no comportamento do swaret mas não pretende de modo algum chegar no nível de
+complexidade deste, mas sim executar a obtenção de pacotes de um modo diferente. Sua finalidade
+é apenas baixar pacotes para que os aplicativos do simplepkg possam utilizá-lo posteriormente.
+O simplaret ainda pode ser usado sozinho para procurar e baixar pacotes.
+
+Documentação
+------------
+
+A documentação atualizada do simplaret se encontra em http://slack.sarava.org/node/16
+
+Obtendo e instalando
+--------------------
+
+O simplaret acompanha o simplepkg e por isso sua instalação e configuração é dada no artigo dosimplepkg.
+Ele utiliza o mesmo arquivo de configuração do simplepkg, o /etc/simplepkg/simplepkg.conf e guarda as
+definições de repositórios em /etc/simplepkg/repos.conf.
+
+Organização do repositório
+--------------------------
+
+O repositório de armazenamento local do simplaret é definido pelo parâmetro STORAGE e é organizado
+da seguinte maneira:
+
+ $STORAGE/arch/version/
+
+Pacotes obtidos num repositório que não seja oficial da distribuição ficam em
+
+ $STORAGE/arch/version/repository-name/
+
+Isso quer dizer, por exemplo, que pacotes do slackware 10.2 ficariam em
+
+ $STORAGE/i386/10.2/
+
+e os pacotes obtidos a partir do repositório slamd64 do slack.sarava.org ficaria, por exemplo, em
+
+ $STORAGE/x86_64/10.2/slack.sarava.org/
+
+No arquivo de repositórios (/etc/simplepkg/repos.conf), as definições de repositório seguem o
+seguinte esquema, semelhante ao formato de configuração do swaret:
+
+ ROOT-i386="http://slack.sarava.org/slackware/"
+ ROOT-x86_64="http://ftp.heanet.ie/pub/slamd64/"
+ REPOS-i386-10.2="slack.sarava.org%http://slack.sarava.org/packages/slackware/slackware-10.2/"
+ REPOS-x86_64-10.2="slack.sarava.org%http://slack.sarava.org/packages/slamd64/slamd64-10.2/"
+
+Repositórios definidos como ROOT são aqueles que
+
+ - Possuem pacotes da distribuição oficial ou
+ - Estão organizados por versão, de acordo com os mirror guidelines
+
+Já os repositórios definidos como REPOS são aqueles que contém pacotes para uma versão específica e/ou
+que são não-oficiais.
+
+Quando o simplaret busca ou obtém um pacote, a precedência pelos repositórios é dada às definições de
+ROOT e em seguinda às de REPOS. As definições REPOS ainda devem possuir, além da URL do repositório, um
+nome para identificá-lo, sendo que esses dois campos são separados por um delimitador.
+
+Baixando as listas de pacotes
+-----------------------------
+
+Após configurá-lo, é preciso atualizar a lista de pacotes:
+
+ simplaret --update
+
+Isso atualiza a lista de pacotes da arquitetura definida em DEFAULT_ARCH e da versão DEFAULT_VERSION
+apenas. Se você quiser forçar a atualização, por exemplo, para a arquitetura x86_64 (slamd64)
+e versão 10.2, basta
+
+ ARCH=x86_64 VERSION=10.2 simplaret --update
+
+Buscando pacotes
+----------------
+
+Para buscar um pacote, esses comandos servem de exemplo:
+
+ simplaret --search coreutils
+
+pacote para o Slack/390,
+
+ ARCH=s390 simplaret --search x11
+
+e para slackware 10.1 com pacotes adicionais em i686,
+
+ ARCH=i686 VERSION=10.1 simplaret --search icecast
+
+Baixando um pacote
+------------------
+
+Para baixar um pacote:
+
+ simplaret --get icecast
+
+O simplaret baixa o primeiro pacote na ordem de precedência dos repositórios.
+Versões futuras deverão conter uma opção que force a obtenção do pacote de um
+repositório específico.
+
+Baixando patches
+----------------
+
+Através do parâmetro de configuração PATCHES_DIR é possível especificar uma pasta
+onde os patches de cada distribuição serão armazenados, organizados também por arquitetura.
+
+Por exemplo, patches do slackware 10.2 ficarão sempre em
+
+ $PATCHES_DIR/i386/10.2/
+
+Os patches na verdade são baixados através de um "simplaret --get" e armazenados na subpasta
+de $STORAGE correspondente e apenas um link simbólico é mantido em $PATCHES_DIR/$ARCH/$VERSION.
+
+Para baixar os patches, use uma chamada do tipo
+
+ ARCH=arquitetura VERSION=versao simplaret --get-patches
+
+E os patches dessa arquitetura e versão serão baixados.
+
+Apagando pacotes
+----------------
+
+O repositório de pacotes de uma arquitetura e versão pode ser apagado com o comando
+
+ simplaret --purge
+
+Mas pra quê serve isso?
+-----------------------
+
+Você pode estar se perguntando: quem utilizaria uma ferramenta que baixa pacotes de várias arquiteturas?
+
+O simplaret foi escrito tendo em mente um ambiente *86 onde várias jaulas de diferentes arquiteturas estão
+instaladas. Suponha por exemplo uma máquina x86_64 que possua as seguintes jaulas:
+
+ - slamd64 10.2
+ - slackware 10.2
+ - slackware 10.1 com pacotes adicionais em i686
+ - uSlack (uClibc para i386)
+
+O condenado/a em questão que roda todas essas jaulas, pelos mais diversos motivos, pode ter uma grande dor
+de cabeça para manter os pacotes em ordem de forma manual. Com o simplaret e eventualmente com o simplepkg,
+a tarefa se torna trivial.
+
diff --git a/doc/TODO b/doc/TODO
new file mode 100644
index 0000000..9178f6e
--- /dev/null
+++ b/doc/TODO
@@ -0,0 +1,5 @@
+simplepkg todo list
+-------------------
+
+TODO list at http://slack.sarava.org/wiki/Main/SimplePKG
+