summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc/repository-setup.txt
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-09-27 16:45:05 +0000
committerNorbert Preining <preining@logic.at>2008-09-27 16:45:05 +0000
commit12158dbaf092b0357e312c0d7c815597a1c2f147 (patch)
tree9ce5ef248da51860aba8d6f5d9a72a7146d08707 /Master/tlpkg/doc/repository-setup.txt
parent24e20c72243cd54a2dc6c1d452002e6e29a01c30 (diff)
write write write
git-svn-id: svn://tug.org/texlive/trunk@10747 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/doc/repository-setup.txt')
-rw-r--r--Master/tlpkg/doc/repository-setup.txt148
1 files changed, 147 insertions, 1 deletions
diff --git a/Master/tlpkg/doc/repository-setup.txt b/Master/tlpkg/doc/repository-setup.txt
index 0f51c18d1e7..affaec632f2 100644
--- a/Master/tlpkg/doc/repository-setup.txt
+++ b/Master/tlpkg/doc/repository-setup.txt
@@ -18,9 +18,155 @@ at tex-live@tug.org.
Contents
--------
+0. Preliminaries
1. Prerequisites
2. Preparing the "repository"
3. tlpsrc files
4. Creating the TeX Live Database
-5. Making the web distribution
+5. Adjusting the revision numbers
+6. Making the web distribution
+
+
+0. Preliminaries
+----------------
+First of all, before you start with providing your own packages, please
+be reminded that you should take good care not to
+- overwrite files which are in a different package
+ The current system does NOT check for files that got overwritten
+- take care not to hose the rest of the TeX Live system,
+ imagine you install a package that removes/deletes the TeX Live Manager
+ tlmgr the user will hardly be able to revert to any working state!
+- test, test, and again TEST before shipping your stuff
+- might be good to avert us at tex-live@tug.org so that we can take a look
+ and comment, or check for other problems. Also, if we change something
+ in the infrastructure you have a better chance in getting notifications
+ and better treatment ;-)
+
+In principle what you have to do is to set up some directory in a layout
+paralleling the one in our repository under Master. See
+http://www.tug.org/texlive/svn/ for details.
+
+That means, with ROOT as the root of your local "repository":
+ ROOT/tlpkg/ infrastructure stuff, modules, scripts
+ ROOT/texmf-dist/ stuff where you should put your
+ TeX code, fonts etc
+ ROOT/texmf{,-doc} if you have the need for that please read
+ first about their usage in the
+ TeX Live Guide.
+
+After that you call the very same scripts as we do when building the
+distribution database in
+ ROOT/tlpkg/texlive.tlpdb
+
+Finally you create/update your web distribution from that ROOT.
+
+
+1. Prerequisites
+----------------
+You need from the TeX Live Repository (see http://www.tug.org/texlive/svn/)
+the contents of at least
+ Master/tlpkg/TeXLive the perl modules
+ Master/tlpkg/bin the scripts for managing
+These files can be checked out via svn, or downloaded from the net. We
+recommend the first variant so that you can update them regularly.
+
+2. Preparing the "repository"
+-----------------------------
+Create a root folder which will mirror our directory layout. We will call
+that root folder ROOT from now on.
+
+Put the above files into
+ ROOT/tlpkg/TeXLive
+ ROOT/tlpkg/bin
+After that put all of YOUR files in a TDS compliant way in one of the texmf
+trees, texmf-dist, texmf, texmf-doc.
+ ROOT/texmf{,-dist,-doc}
+We recommend putting all the files in
+ ROOT/texmf-dist
+or, if you are replacing a package which is already present in TeX Live,
+in the very same places as in TeX Live.
+
+If you really want to replace packages with files in texmf, please think
+twice, and maybe contact us before.
+
+3. tlpsrc files
+---------------
+Now you have to create several TeX Live Package Source files, .tlpsrc files
+and place them into
+ ROOT/tlpkg/tlpsrc
+You have to have ONE .tlpsrc file for each package you want to ship, and
+furthermore ONE for your installation, called 00texlive.config.tlpsrc.
+This should contain (at least) the following lines:
+ name 00texlive.config
+ category TLCore
+ depend container_split_src_files
+ depend container_split_doc_files
+ depend container_format/lzma
+ depend release/YOUR_ID_AND_MAYBE_YEAR
+The "container_split_src_files" and "container_split_doc_files" are options,
+they specify whether at a later stage the container script will generate
+different .tar.lzma for source and doc files, or put all of them into
+one .tar.lzma. It is up to you.
+
+The
+ depend container_format/lzma
+is *obligatory* because currently we do NOT support any other format.
+Finally the
+ depend release/YOUR_ID_AND_MAYBE_YEAR
+is not used, but you could add here some identification string. It is not
+currently used, but tlmgr might at some future point use it.
+
+For the rest of your package you should create .tlpsrc files describing
+their content. Either copy one of our .tlpsrc files, or (much better)
+PLEASE read the documentation of TLPSRC.pm (in POD format, also shipped
+in Master/tlpkg/man/TeXLive-TLPSRC.1, but that might be outdated).
+
+Some guidelines: For simple packages, say a LaTeX package foobar, put all
+the files in
+ ROOT/texmf-dist/tex/latex/foobar/
+ ROOT/texmf-dist/source/latex/foobar/
+ ROOT/texmf-dist/doc/latex/foobar/
+then create a very simple .tlpsrc file foobar.tlpsrc containing:
+ name foobar
+ category Package
+(that is all). The rest will be automatically done by our scripts. If you
+want to understand that, read the section on auto-generated patterns in
+the TLPSRC.pm documentation.
+
+4. Creating the TeX Live Database
+---------------------------------
+If you have set up all your local files, and the tlpsrc files, you can
+create the TeX Live Database in ROOT/tlpkg/texlive.tlpdb by calling
+ perl ROOT/tlpkg/bin/tlpsrc2tlpdb -from-files -all
+The -from-files does use a find command to find all the files in ROOT
+instead of using "svn status" what is done normally. The -all makes
+tlpsrc2tlpdb work on all tlpsrc files present in ROOT/tlpkg/tlpsrc/.
+
+You can add the option
+ -with-win-pattern-warning
+which will warn on missing files for Win32, some of those warnings are
+by default suppressed.
+
+As usual, please read the documentation of tlpsrc2tlpdb (again in POD)
+for further information.
+
+That process will probably ship out some warnings, read them carefully.
+
+After that you should have a files
+ ROOT/tlpkg/texlive.tlpdb
+Your next job is to check that texlive.tlpdb file that the files you
+wanted to have in one package are actually there. Go through all packages
+(starting always with a line "name foobar") and check for the occurring
+files.
+
+If you are not content, work on your patterns to fix that.
+
+There are some scripts in tlpkg/bin/ starting with "check-" which you might
+use for doing some checks on your repository.
+
+5. Adjusting the revision numbers
+---------------------------------
+
+6. Making the web distribution
+------------------------------