From 1d2f370a9e5ef5b6dfd1b26ffe1e19eea455feac Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 24 Apr 2017 18:25:41 +0000 Subject: doc updates git-svn-id: svn://tug.org/texlive/trunk@44019 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/doc/TeXLive-square.png | Bin 25328 -> 0 bytes Master/tlpkg/doc/TeXLive-square.xcf | Bin 58629 -> 0 bytes Master/tlpkg/doc/bitmap2eps.ico | Bin 3262 -> 0 bytes Master/tlpkg/doc/bitmap2eps.svg | 525 --------------------- Master/tlpkg/doc/graphics/README | 6 + Master/tlpkg/doc/graphics/TeXLive-square.png | Bin 0 -> 25328 bytes Master/tlpkg/doc/graphics/TeXLive-square.xcf | Bin 0 -> 58629 bytes .../doc/graphics/texlive-installer-graphic.xcf | Bin 0 -> 199473 bytes Master/tlpkg/doc/historic/multi-repository.txt | 151 ++++++ Master/tlpkg/doc/historic/new-installer-layout.txt | 100 ++++ Master/tlpkg/doc/historic/tl-security-proposal.txt | 130 +++++ Master/tlpkg/doc/historic/tlmgr-shell.txt | 55 +++ Master/tlpkg/doc/multi-repository.txt | 151 ------ Master/tlpkg/doc/new-installer-layout.txt | 100 ---- Master/tlpkg/doc/releng.txt | 2 +- Master/tlpkg/doc/texlive-installer-graphic.xcf | Bin 199473 -> 0 bytes Master/tlpkg/doc/tl-security-proposal.txt | 130 ----- Master/tlpkg/doc/tlmgr-shell.txt | 55 --- Master/tlpkg/doc/tlmgr.ico | Bin 4286 -> 0 bytes Master/tlpkg/doc/tlmgr.svg | 245 ---------- Master/tlpkg/doc/tnc_config.vbs | 252 ---------- 21 files changed, 443 insertions(+), 1459 deletions(-) delete mode 100644 Master/tlpkg/doc/TeXLive-square.png delete mode 100644 Master/tlpkg/doc/TeXLive-square.xcf delete mode 100644 Master/tlpkg/doc/bitmap2eps.ico delete mode 100644 Master/tlpkg/doc/bitmap2eps.svg create mode 100644 Master/tlpkg/doc/graphics/README create mode 100644 Master/tlpkg/doc/graphics/TeXLive-square.png create mode 100644 Master/tlpkg/doc/graphics/TeXLive-square.xcf create mode 100644 Master/tlpkg/doc/graphics/texlive-installer-graphic.xcf create mode 100644 Master/tlpkg/doc/historic/multi-repository.txt create mode 100644 Master/tlpkg/doc/historic/new-installer-layout.txt create mode 100644 Master/tlpkg/doc/historic/tl-security-proposal.txt create mode 100644 Master/tlpkg/doc/historic/tlmgr-shell.txt delete mode 100644 Master/tlpkg/doc/multi-repository.txt delete mode 100644 Master/tlpkg/doc/new-installer-layout.txt delete mode 100644 Master/tlpkg/doc/texlive-installer-graphic.xcf delete mode 100644 Master/tlpkg/doc/tl-security-proposal.txt delete mode 100644 Master/tlpkg/doc/tlmgr-shell.txt delete mode 100644 Master/tlpkg/doc/tlmgr.ico delete mode 100644 Master/tlpkg/doc/tlmgr.svg delete mode 100644 Master/tlpkg/doc/tnc_config.vbs (limited to 'Master/tlpkg') diff --git a/Master/tlpkg/doc/TeXLive-square.png b/Master/tlpkg/doc/TeXLive-square.png deleted file mode 100644 index 03fd5065493..00000000000 Binary files a/Master/tlpkg/doc/TeXLive-square.png and /dev/null differ diff --git a/Master/tlpkg/doc/TeXLive-square.xcf b/Master/tlpkg/doc/TeXLive-square.xcf deleted file mode 100644 index 477915804b8..00000000000 Binary files a/Master/tlpkg/doc/TeXLive-square.xcf and /dev/null differ diff --git a/Master/tlpkg/doc/bitmap2eps.ico b/Master/tlpkg/doc/bitmap2eps.ico deleted file mode 100644 index be4be44b3d1..00000000000 Binary files a/Master/tlpkg/doc/bitmap2eps.ico and /dev/null differ diff --git a/Master/tlpkg/doc/bitmap2eps.svg b/Master/tlpkg/doc/bitmap2eps.svg deleted file mode 100644 index aac123a3914..00000000000 --- a/Master/tlpkg/doc/bitmap2eps.svg +++ /dev/null @@ -1,525 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/Master/tlpkg/doc/graphics/README b/Master/tlpkg/doc/graphics/README new file mode 100644 index 00000000000..c38e538065a --- /dev/null +++ b/Master/tlpkg/doc/graphics/README @@ -0,0 +1,6 @@ +This file and all the graphics are public domain. + +*-square is used for the github repository. + +*-installer is used both for the GUI installer and in the manual. +It needs to be updated for every release. diff --git a/Master/tlpkg/doc/graphics/TeXLive-square.png b/Master/tlpkg/doc/graphics/TeXLive-square.png new file mode 100644 index 00000000000..03fd5065493 Binary files /dev/null and b/Master/tlpkg/doc/graphics/TeXLive-square.png differ diff --git a/Master/tlpkg/doc/graphics/TeXLive-square.xcf b/Master/tlpkg/doc/graphics/TeXLive-square.xcf new file mode 100644 index 00000000000..477915804b8 Binary files /dev/null and b/Master/tlpkg/doc/graphics/TeXLive-square.xcf differ diff --git a/Master/tlpkg/doc/graphics/texlive-installer-graphic.xcf b/Master/tlpkg/doc/graphics/texlive-installer-graphic.xcf new file mode 100644 index 00000000000..5da7dae326d Binary files /dev/null and b/Master/tlpkg/doc/graphics/texlive-installer-graphic.xcf differ diff --git a/Master/tlpkg/doc/historic/multi-repository.txt b/Master/tlpkg/doc/historic/multi-repository.txt new file mode 100644 index 00000000000..ca1192e080b --- /dev/null +++ b/Master/tlpkg/doc/historic/multi-repository.txt @@ -0,0 +1,151 @@ +Multi source support in TeX Live v2 +----------------------------------- +DEVELOPMENT NOTES -- SEE THE MANUAL PAGE OF TLMGR FOR CORRECT STATUS +===================================================================== + +v2 of this patches has changed completely the idea of implementation. +Background of the new idea is to leave the code base of tlmgr.pl itself +as untouched as possible, and merge everything into TLPDB. TLPDBs can +now either be a normal one as before, or a virtual one, collection +different sources. + +(completely independent from generalized revisions) +[karl: good.] + +1) extension of the location part in 00texlive.installation +----------------------------------------------------------- + +The opt_location: line in 00texlive.installation normally gives the +repository to be used. It can now contain a list of repositories in the +form + repo1[#tag1] repo2[#tag2] ... + +Management of these items is thorugh + tlmgr repository +action. + tlmgr repository list + tlmgr repository add repo [tag] + tlmgr repository remove name +If no tag is given then internally (but not in the tlpdb) the tag +and the repo path is the same. + +Removing is done by entering the tag (not the repo), but if no tags were +given that is the same. + + +If there are more than one tag, then there has to be one tagged + main +which is the main repository. + +By default, if you start with only one entry (as before, the main), +and add a new one, the tag "main" is automatically added to the +previous tag to make all run smooth. + +THe repo at "main" is used for various settings, the main configuration +options, etc etc. Idea is still that everyone has the main repo CTAN +(or mirror or ...), and can add some sub-repos. + +2) invocation of tlmgr/installation +----------------------------------- + +Normally tlmgr will install the candidate with the highest revision number. + +This is controlled by + TLPDB::virtual_candidate +For now the policy is the highest rev number, but we can add later +different policies. + +[karl: ok, given pinning below. otherwise i don't like it.] +[norbert: Why, can you explain why you don't like that the highest revision + number wins?] +[k2: because it is random, except in the one case where you want to use + it. that is, i understand that you want to copy a tl package, make + some local fixes, and install it locally, keeping track of the rev + number. that's fine for you. but there's no way most people are + going to bother with that. if mojca sets up a context repo, say, + those revision numbers are (should be) completely independent of tl's + revision numbers. therefore, all the context packages should be + pinned to the context repo, so the context repo always wins. without + pinning, it would be an unmaintainable situation.] + +That will be achieved by + tlmgr install package + +[FOR NOW THE FOLLOWING IS NOT IMPLEMENTED!!] +If you want to install a package from a specific mirror you can do + tlmgr install package/TAG + (tlmgr install package/SOURCE) +where TAG is the tag given above, and SOURCE is the full source address. +So continuing the above example we could call + tlmgr install package/department +or + tlmgr install package/http://server.local.uni/texlive/packages +(maybe we don't allow the later form ...?) +[karl: well, if it's done, then I see no reason not to support it.] + +done + +3) pinning +---------- + +tlmgr will evaluate an additional config file + ROOT/tlpkg/pinning +or the one given via cmdline + tlmgr -pins /path/to/pinning/file +[karl: maybe it should be found in texmf-local/tlpkg? look there + before ROOT/tlpkg but allow both? maybe other places too. have to think + about it. Also, the filename should be something clearer, perhaps + tlpkgpins.txt.] +[norbert: agreed, that texmf-local might be a better place. should be + thought out] + +That file contains lines + package:tag:pin +where package is a package name or * (or regexp? or glob context* eg?) +[glob is better than regexp in this case I think] +and tag is [a-z0-9,]+ as for tags above, or *, +and pin is an integer between 0 and 1000. + +Now the evaluation *which* package will be installed will be done as follows: + +1) create the list of candidates, i.e., all tlpobj from different sources + where the name matches the one to be installed +[karl: if a package is pinned to a single source (99% case, seems to + me), the other sources (e.g., default ctan) won't even be considered, right?] + +[norbert: well, it depends. There will be a default pin value of say 500, + and you can give pin values lower than 500 to prefer packages from other + sources, or higher pin values to prefer these sources] + +[k2: I understand there is all this flexibility, but that's not my +point. I envision the single most common use of this (by far) to say +"get package foo from my special location bar", where foo is a local +font, or tlmgr from tlcritical. In these cases, the user will set a +single location. And then it would be a waste of time for tlmgr to even +consider looking at the default location (tlnet) for foo. It should not +even be a candidate.] + + +2) compute the pins of all the candidates + +3) if there are different pins cancel those candidates with a non-maximal pin + (i.e., let pin_max = max { pin(candidate) : candidate in candidates }, + and new candidates are those with pin(candidate) = pin_max) + +4) within all the remaining candidates choose the one with the highest + revision number + + +======================================== + +Consequences of the above: +- no source: part necessary in the revisions +- packages can be pinned to a specific source, and will not be updated + even if another source ships a higher version number +- no changes to the general server infrastructure are needed +- default installations continue as before +- normal installations with multiple sources but without pinning will + simply *do*the*right*thing*, namely install the highest revision number. +[karl: it's unclear to me that that is the right thing, in general, but + I can see how it is the right thing in some cases, e.g., yours, so fine.] +[norbert: see above ... I don't see the wrong point ;-) ] diff --git a/Master/tlpkg/doc/historic/new-installer-layout.txt b/Master/tlpkg/doc/historic/new-installer-layout.txt new file mode 100644 index 00000000000..3b869c4e1fc --- /dev/null +++ b/Master/tlpkg/doc/historic/new-installer-layout.txt @@ -0,0 +1,100 @@ +Documentation of the content of the %vars hash which is the only way to +transport ship information between various installer menus and the main +program. + +1) collections and schemes +-------------------------- +selected collections/schemes + collection- 0|1 OUT + scheme- 0|1 OUT +total number of collections + n_collections_available 84 IN +and the number of collections selected: + n_collections_selected 1 OUT +the selected scheme + selected_scheme scheme- OUT + + +2) platforms +------------ +location of the arch + diskbin_ 0|1 IN/OUT + netbin_ 0|1 IN/OUT +the current one + inst_platform IN +the current platform ??? + this_platform IN +number of systems available in total + n_systems_available 15 IN +number of systems selected + n_systems_selected 3 OUT + + +3) options +---------- +build all formats + option_fmt 0|1 OUT +letter instead of A4 + option_letter 0|1 OUT +install symlinks (on unix) + option_symlinks 0|1 OUT +and the respective destinations for the symlinks + sys_info OUT + sys_bin /usr/local/bin OUT + sys_man /usr/local/man OUT +do install the doc files + option_doc 0|1 OUT +do install the src files + option_src 0|1 OUT +destination paths + TEXMFSYSVAR /home/norbert/tltest/2008/texmf-var OUT + TEXDIR /home/norbert/tltest/2008 OUT + TEXMFLOCAL /home/norbert/tltest/texmf-local OUT + TEXMFHOME ~/texmf OUT + +4) other stuff ??? +------------------ +total size to be used + total_size 54 DEDUCED +no idea ???? + page 0 + + +NEW LAYOUT +========== + +%MediaData = ( + media => CD|DVD|NET + location => /path/to/master | base-url + release => NNNN + tlpdb => the respective tlpdb + all_collections => [ ... ] + std_collections => [ ... ] + lang_collections => [ ... ] + lang_doc_collections => [ ... ] + schemes => [ ... ] + n_collections => NN + n_schemes => NN + diskbins => [ ... ] + netbins => [ ... ] + n_systems_available => NN (== #(#diskbins u #netbins)) + this_platform => +) + +%vars = ( + systems => [ ... ] # those selected for installation + collections => [ ... ] # those selected for installation + selected_scheme => scheme- + option_fmt => 0|1 + option_letter 0|1 OUT + option_symlinks 0|1 OUT + sys_info OUT + sys_bin /usr/local/bin OUT + sys_man /usr/local/man OUT + option_doc 0|1 OUT + option_src 0|1 OUT + TEXMFSYSVAR /home/norbert/tltest/2008/texmf-var OUT + TEXDIR /home/norbert/tltest/2008 OUT + TEXMFLOCAL /home/norbert/tltest/texmf-local OUT + TEXMFHOME ~/texmf OUT +) diff --git a/Master/tlpkg/doc/historic/tl-security-proposal.txt b/Master/tlpkg/doc/historic/tl-security-proposal.txt new file mode 100644 index 00000000000..b2d4a65a2f4 --- /dev/null +++ b/Master/tlpkg/doc/historic/tl-security-proposal.txt @@ -0,0 +1,130 @@ +Security Proposal for TeX Live +============================== +(last change NP 2016-03-19) + +Changelog: +* 20160409 +* 20160319 + key management, rewrite +* 20160307 + use md5 for location digest - saved tlpdb filename + switch to sha512 +* 20160104 + initial document + + +Aim is to give higher security and verification level to downloaded +and installed packages of TeX Live. There are two possible attacks +we want to detect: + +Attack scenaria +=============== +breach of ctan mirror + can be detected via gpg signature +breach of tug.org + revoke subkey + inform CTAN to tear down all mirrors + maybe have tlmgr action update-pubkey for receiving new subkey? + prepare new repo with new signing subkey + + +TODO +* location of the gpg keys + texlive.infra or new package texlive.keys + texlive.keys should be treated with special priority and updated + before anything else (?) + +Definitions: +* checksum: defined via tl_checksum, currently is sha512 +* short checksum: defined via tl_short_digest, currently md5 + + +Verification Level 1: tlpdb +=========================== +When a tlpdb is downloaded from the remote server there are two +steps of verification: +* download tlpdb +* download tlpdb.checksum +* if gpg is available + - download tlpdb.checksum.gpg + . if not available, continue without error! + - verify gpg signature + . if success, continue + . if failure, error out +* verify tlpdb checksum + +Verification Level 2: containers +================================ +The tlpdb ships size and checksum information of each container. +These are verified after download. + + +Verification of the installer +============================= +For the installer +* installer packages are sha512 hashed (already done!) +* the sha512 files are gpg signed with our gpg tlnet key +* our public gpg key is included in texlive.infra package + (or in a separate texlive.keys package!) + + +Other usage +=========== +short checksum of *location* string of remote end +if the database is present (tlpkg/texlive.tlpdb.MD5SUM) and the +md5sum downloaded from 1) and the saved md5sum agree, do not +redownload the remote tlpdb but use local copy + + +Key management +============== +One master key TeX Live which is kept +offline at kb and np + +On signing sub key which is kept on tug.org for automatic signing of tlpdb. + + +Key generation howto +==================== + +BASE=.../ +MAIN=$BASE/main +SUB=$BASE/sub +PUBONLY=$BASE/pub + +create gpg key +-------------- +(To be done only once or when key is compromised!) + gpg --homedir $MAIN --no-use-agent genkey + .... + + gives keyid KEYID (now 0x06BAB6BC) + +create signing sub key +---------------------- +(needs to be done when we feel like it, not necessary for each year) + + gpg --homedir $MAIN --no-use-agent --expert --edit-key $KEYID + gpg> addkey + ... + choose 4 (RSA (sign only)), expires 18m + +create subkey only dir for tug.org +---------------------------------- +with gpg <= 2.0 we need to export secret subkeys, remove secret subkey +(that removes all), and import only subkeys back in + rm -rf $SUB + cp -a $MAIN $SUB + gpg --homedir $SUB --no-use-agent --output secret-subkeys --export-secret-subkeys $KEYID + gpg --homedir $SUB --no-use-agent --delete-secret-key $KEYID + gpg --homedir $SUB --no-use-agent --import secret-subkeys + + +create pubkey only dir for inclusion in texlive repo +---------------------------------------------------- + rm -rf $PUBONLY + cp -a $SUB $PUBONLY + gpg --homedir $PUBONLY --no-use-agent --delete-secret-key $KEYID + rm $PUBONLY/*~ + + diff --git a/Master/tlpkg/doc/historic/tlmgr-shell.txt b/Master/tlpkg/doc/historic/tlmgr-shell.txt new file mode 100644 index 00000000000..7c2491f4291 --- /dev/null +++ b/Master/tlpkg/doc/historic/tlmgr-shell.txt @@ -0,0 +1,55 @@ +TeX Live Manager Shell +====================== + +to be written + +TODO & BUGS +------------ +* need to restart after self update + +* installation from shell - command + init-location + + + +Description +----------- + +after starting, tlmgr shell echos out the protocol version + $ tlmgr shell + protocol NNN +where NNN is a natural number, increasing when some commands +are added, changed. + +Question: +Handling of settings: e.g., how to mimic --repository and how +to distinguish it from settings to be saved into the tlpdb. +(--repository is used only for one incantation, but not saved +into tlpdb) + +Commands: +--------- +* set + sets some variables not to be saved into the tlpdb + set repository ... == --repository + set debug-translation 1 == --debug-translations + set machine-readable 1 == --machine-readable + set no-execute-actions 1 == --no-execute-actions + set require-verification 0|1 == --(no-)require-verification + set verify-downloads 0|1 == --(no-)verify-downloads + +* quit|end|byebye + ends the session + +* load local|remote + loads the local or remote database + the remote tlpdb is determined by either the setting in the + loaded local tlpdb, or by the "repository" setting (see above) + +* save + saves the local tlpdb (this is also done by several actions) + +All other actions are converted to commands and behave in the +absolut same way. + + diff --git a/Master/tlpkg/doc/multi-repository.txt b/Master/tlpkg/doc/multi-repository.txt deleted file mode 100644 index ca1192e080b..00000000000 --- a/Master/tlpkg/doc/multi-repository.txt +++ /dev/null @@ -1,151 +0,0 @@ -Multi source support in TeX Live v2 ------------------------------------ -DEVELOPMENT NOTES -- SEE THE MANUAL PAGE OF TLMGR FOR CORRECT STATUS -===================================================================== - -v2 of this patches has changed completely the idea of implementation. -Background of the new idea is to leave the code base of tlmgr.pl itself -as untouched as possible, and merge everything into TLPDB. TLPDBs can -now either be a normal one as before, or a virtual one, collection -different sources. - -(completely independent from generalized revisions) -[karl: good.] - -1) extension of the location part in 00texlive.installation ------------------------------------------------------------ - -The opt_location: line in 00texlive.installation normally gives the -repository to be used. It can now contain a list of repositories in the -form - repo1[#tag1] repo2[#tag2] ... - -Management of these items is thorugh - tlmgr repository -action. - tlmgr repository list - tlmgr repository add repo [tag] - tlmgr repository remove name -If no tag is given then internally (but not in the tlpdb) the tag -and the repo path is the same. - -Removing is done by entering the tag (not the repo), but if no tags were -given that is the same. - - -If there are more than one tag, then there has to be one tagged - main -which is the main repository. - -By default, if you start with only one entry (as before, the main), -and add a new one, the tag "main" is automatically added to the -previous tag to make all run smooth. - -THe repo at "main" is used for various settings, the main configuration -options, etc etc. Idea is still that everyone has the main repo CTAN -(or mirror or ...), and can add some sub-repos. - -2) invocation of tlmgr/installation ------------------------------------ - -Normally tlmgr will install the candidate with the highest revision number. - -This is controlled by - TLPDB::virtual_candidate -For now the policy is the highest rev number, but we can add later -different policies. - -[karl: ok, given pinning below. otherwise i don't like it.] -[norbert: Why, can you explain why you don't like that the highest revision - number wins?] -[k2: because it is random, except in the one case where you want to use - it. that is, i understand that you want to copy a tl package, make - some local fixes, and install it locally, keeping track of the rev - number. that's fine for you. but there's no way most people are - going to bother with that. if mojca sets up a context repo, say, - those revision numbers are (should be) completely independent of tl's - revision numbers. therefore, all the context packages should be - pinned to the context repo, so the context repo always wins. without - pinning, it would be an unmaintainable situation.] - -That will be achieved by - tlmgr install package - -[FOR NOW THE FOLLOWING IS NOT IMPLEMENTED!!] -If you want to install a package from a specific mirror you can do - tlmgr install package/TAG - (tlmgr install package/SOURCE) -where TAG is the tag given above, and SOURCE is the full source address. -So continuing the above example we could call - tlmgr install package/department -or - tlmgr install package/http://server.local.uni/texlive/packages -(maybe we don't allow the later form ...?) -[karl: well, if it's done, then I see no reason not to support it.] - -done - -3) pinning ----------- - -tlmgr will evaluate an additional config file - ROOT/tlpkg/pinning -or the one given via cmdline - tlmgr -pins /path/to/pinning/file -[karl: maybe it should be found in texmf-local/tlpkg? look there - before ROOT/tlpkg but allow both? maybe other places too. have to think - about it. Also, the filename should be something clearer, perhaps - tlpkgpins.txt.] -[norbert: agreed, that texmf-local might be a better place. should be - thought out] - -That file contains lines - package:tag:pin -where package is a package name or * (or regexp? or glob context* eg?) -[glob is better than regexp in this case I think] -and tag is [a-z0-9,]+ as for tags above, or *, -and pin is an integer between 0 and 1000. - -Now the evaluation *which* package will be installed will be done as follows: - -1) create the list of candidates, i.e., all tlpobj from different sources - where the name matches the one to be installed -[karl: if a package is pinned to a single source (99% case, seems to - me), the other sources (e.g., default ctan) won't even be considered, right?] - -[norbert: well, it depends. There will be a default pin value of say 500, - and you can give pin values lower than 500 to prefer packages from other - sources, or higher pin values to prefer these sources] - -[k2: I understand there is all this flexibility, but that's not my -point. I envision the single most common use of this (by far) to say -"get package foo from my special location bar", where foo is a local -font, or tlmgr from tlcritical. In these cases, the user will set a -single location. And then it would be a waste of time for tlmgr to even -consider looking at the default location (tlnet) for foo. It should not -even be a candidate.] - - -2) compute the pins of all the candidates - -3) if there are different pins cancel those candidates with a non-maximal pin - (i.e., let pin_max = max { pin(candidate) : candidate in candidates }, - and new candidates are those with pin(candidate) = pin_max) - -4) within all the remaining candidates choose the one with the highest - revision number - - -======================================== - -Consequences of the above: -- no source: part necessary in the revisions -- packages can be pinned to a specific source, and will not be updated - even if another source ships a higher version number -- no changes to the general server infrastructure are needed -- default installations continue as before -- normal installations with multiple sources but without pinning will - simply *do*the*right*thing*, namely install the highest revision number. -[karl: it's unclear to me that that is the right thing, in general, but - I can see how it is the right thing in some cases, e.g., yours, so fine.] -[norbert: see above ... I don't see the wrong point ;-) ] diff --git a/Master/tlpkg/doc/new-installer-layout.txt b/Master/tlpkg/doc/new-installer-layout.txt deleted file mode 100644 index 3b869c4e1fc..00000000000 --- a/Master/tlpkg/doc/new-installer-layout.txt +++ /dev/null @@ -1,100 +0,0 @@ -Documentation of the content of the %vars hash which is the only way to -transport ship information between various installer menus and the main -program. - -1) collections and schemes --------------------------- -selected collections/schemes - collection- 0|1 OUT - scheme- 0|1 OUT -total number of collections - n_collections_available 84 IN -and the number of collections selected: - n_collections_selected 1 OUT -the selected scheme - selected_scheme scheme- OUT - - -2) platforms ------------- -location of the arch - diskbin_ 0|1 IN/OUT - netbin_ 0|1 IN/OUT -the current one - inst_platform IN -the current platform ??? - this_platform IN -number of systems available in total - n_systems_available 15 IN -number of systems selected - n_systems_selected 3 OUT - - -3) options ----------- -build all formats - option_fmt 0|1 OUT -letter instead of A4 - option_letter 0|1 OUT -install symlinks (on unix) - option_symlinks 0|1 OUT -and the respective destinations for the symlinks - sys_info OUT - sys_bin /usr/local/bin OUT - sys_man /usr/local/man OUT -do install the doc files - option_doc 0|1 OUT -do install the src files - option_src 0|1 OUT -destination paths - TEXMFSYSVAR /home/norbert/tltest/2008/texmf-var OUT - TEXDIR /home/norbert/tltest/2008 OUT - TEXMFLOCAL /home/norbert/tltest/texmf-local OUT - TEXMFHOME ~/texmf OUT - -4) other stuff ??? ------------------- -total size to be used - total_size 54 DEDUCED -no idea ???? - page 0 - - -NEW LAYOUT -========== - -%MediaData = ( - media => CD|DVD|NET - location => /path/to/master | base-url - release => NNNN - tlpdb => the respective tlpdb - all_collections => [ ... ] - std_collections => [ ... ] - lang_collections => [ ... ] - lang_doc_collections => [ ... ] - schemes => [ ... ] - n_collections => NN - n_schemes => NN - diskbins => [ ... ] - netbins => [ ... ] - n_systems_available => NN (== #(#diskbins u #netbins)) - this_platform => -) - -%vars = ( - systems => [ ... ] # those selected for installation - collections => [ ... ] # those selected for installation - selected_scheme => scheme- - option_fmt => 0|1 - option_letter 0|1 OUT - option_symlinks 0|1 OUT - sys_info OUT - sys_bin /usr/local/bin OUT - sys_man /usr/local/man OUT - option_doc 0|1 OUT - option_src 0|1 OUT - TEXMFSYSVAR /home/norbert/tltest/2008/texmf-var OUT - TEXDIR /home/norbert/tltest/2008 OUT - TEXMFLOCAL /home/norbert/tltest/texmf-local OUT - TEXMFHOME ~/texmf OUT -) diff --git a/Master/tlpkg/doc/releng.txt b/Master/tlpkg/doc/releng.txt index db93de62e3c..f8fd97666eb 100644 --- a/Master/tlpkg/doc/releng.txt +++ b/Master/tlpkg/doc/releng.txt @@ -111,7 +111,7 @@ A.0. Specifics for tlperl update: svn rm `cat /tmp/c1` svn add --parents --no-auto-props `cat /tmp/c2` svn status | fgrep \? # shouldn't be any - find tlperl -name \*.dll | xargs svn propset svn:executable 1 + find tlperl -name \*.dll -o -name \*.exe | xargs svn propset svn:executable 1 find tlperl -type d -empty | xargs svn rm # repeat until no output update tlperl/README.TEXLIVE svn commit when ready ... diff --git a/Master/tlpkg/doc/texlive-installer-graphic.xcf b/Master/tlpkg/doc/texlive-installer-graphic.xcf deleted file mode 100644 index 5da7dae326d..00000000000 Binary files a/Master/tlpkg/doc/texlive-installer-graphic.xcf and /dev/null differ diff --git a/Master/tlpkg/doc/tl-security-proposal.txt b/Master/tlpkg/doc/tl-security-proposal.txt deleted file mode 100644 index b2d4a65a2f4..00000000000 --- a/Master/tlpkg/doc/tl-security-proposal.txt +++ /dev/null @@ -1,130 +0,0 @@ -Security Proposal for TeX Live -============================== -(last change NP 2016-03-19) - -Changelog: -* 20160409 -* 20160319 - key management, rewrite -* 20160307 - use md5 for location digest - saved tlpdb filename - switch to sha512 -* 20160104 - initial document - - -Aim is to give higher security and verification level to downloaded -and installed packages of TeX Live. There are two possible attacks -we want to detect: - -Attack scenaria -=============== -breach of ctan mirror - can be detected via gpg signature -breach of tug.org - revoke subkey - inform CTAN to tear down all mirrors - maybe have tlmgr action update-pubkey for receiving new subkey? - prepare new repo with new signing subkey - - -TODO -* location of the gpg keys - texlive.infra or new package texlive.keys - texlive.keys should be treated with special priority and updated - before anything else (?) - -Definitions: -* checksum: defined via tl_checksum, currently is sha512 -* short checksum: defined via tl_short_digest, currently md5 - - -Verification Level 1: tlpdb -=========================== -When a tlpdb is downloaded from the remote server there are two -steps of verification: -* download tlpdb -* download tlpdb.checksum -* if gpg is available - - download tlpdb.checksum.gpg - . if not available, continue without error! - - verify gpg signature - . if success, continue - . if failure, error out -* verify tlpdb checksum - -Verification Level 2: containers -================================ -The tlpdb ships size and checksum information of each container. -These are verified after download. - - -Verification of the installer -============================= -For the installer -* installer packages are sha512 hashed (already done!) -* the sha512 files are gpg signed with our gpg tlnet key -* our public gpg key is included in texlive.infra package - (or in a separate texlive.keys package!) - - -Other usage -=========== -short checksum of *location* string of remote end -if the database is present (tlpkg/texlive.tlpdb.MD5SUM) and the -md5sum downloaded from 1) and the saved md5sum agree, do not -redownload the remote tlpdb but use local copy - - -Key management -============== -One master key TeX Live which is kept -offline at kb and np - -On signing sub key which is kept on tug.org for automatic signing of tlpdb. - - -Key generation howto -==================== - -BASE=.../ -MAIN=$BASE/main -SUB=$BASE/sub -PUBONLY=$BASE/pub - -create gpg key --------------- -(To be done only once or when key is compromised!) - gpg --homedir $MAIN --no-use-agent genkey - .... - - gives keyid KEYID (now 0x06BAB6BC) - -create signing sub key ----------------------- -(needs to be done when we feel like it, not necessary for each year) - - gpg --homedir $MAIN --no-use-agent --expert --edit-key $KEYID - gpg> addkey - ... - choose 4 (RSA (sign only)), expires 18m - -create subkey only dir for tug.org ----------------------------------- -with gpg <= 2.0 we need to export secret subkeys, remove secret subkey -(that removes all), and import only subkeys back in - rm -rf $SUB - cp -a $MAIN $SUB - gpg --homedir $SUB --no-use-agent --output secret-subkeys --export-secret-subkeys $KEYID - gpg --homedir $SUB --no-use-agent --delete-secret-key $KEYID - gpg --homedir $SUB --no-use-agent --import secret-subkeys - - -create pubkey only dir for inclusion in texlive repo ----------------------------------------------------- - rm -rf $PUBONLY - cp -a $SUB $PUBONLY - gpg --homedir $PUBONLY --no-use-agent --delete-secret-key $KEYID - rm $PUBONLY/*~ - - diff --git a/Master/tlpkg/doc/tlmgr-shell.txt b/Master/tlpkg/doc/tlmgr-shell.txt deleted file mode 100644 index 7c2491f4291..00000000000 --- a/Master/tlpkg/doc/tlmgr-shell.txt +++ /dev/null @@ -1,55 +0,0 @@ -TeX Live Manager Shell -====================== - -to be written - -TODO & BUGS ------------- -* need to restart after self update - -* installation from shell - command - init-location - - - -Description ------------ - -after starting, tlmgr shell echos out the protocol version - $ tlmgr shell - protocol NNN -where NNN is a natural number, increasing when some commands -are added, changed. - -Question: -Handling of settings: e.g., how to mimic --repository and how -to distinguish it from settings to be saved into the tlpdb. -(--repository is used only for one incantation, but not saved -into tlpdb) - -Commands: ---------- -* set - sets some variables not to be saved into the tlpdb - set repository ... == --repository - set debug-translation 1 == --debug-translations - set machine-readable 1 == --machine-readable - set no-execute-actions 1 == --no-execute-actions - set require-verification 0|1 == --(no-)require-verification - set verify-downloads 0|1 == --(no-)verify-downloads - -* quit|end|byebye - ends the session - -* load local|remote - loads the local or remote database - the remote tlpdb is determined by either the setting in the - loaded local tlpdb, or by the "repository" setting (see above) - -* save - saves the local tlpdb (this is also done by several actions) - -All other actions are converted to commands and behave in the -absolut same way. - - diff --git a/Master/tlpkg/doc/tlmgr.ico b/Master/tlpkg/doc/tlmgr.ico deleted file mode 100644 index 6f0c37f54e0..00000000000 Binary files a/Master/tlpkg/doc/tlmgr.ico and /dev/null differ diff --git a/Master/tlpkg/doc/tlmgr.svg b/Master/tlpkg/doc/tlmgr.svg deleted file mode 100644 index 6e60a8f273c..00000000000 --- a/Master/tlpkg/doc/tlmgr.svg +++ /dev/null @@ -1,245 +0,0 @@ - - - -image/svg+xml - - \ No newline at end of file diff --git a/Master/tlpkg/doc/tnc_config.vbs b/Master/tlpkg/doc/tnc_config.vbs deleted file mode 100644 index 51f5784d671..00000000000 --- a/Master/tlpkg/doc/tnc_config.vbs +++ /dev/null @@ -1,252 +0,0 @@ -Option Explicit - -Dim oWsh, oExec, oEnv, sTmp, oTmp, sTL, sGS, sVal, sDat, dDat, oFS -Dim sP, sPr, bFirstConfig, bAdobe, sAdobe, i, j, s - -On Error Resume Next - -Set oWsh = Wscript.CreateObject("WScript.Shell") -Set oFS = CreateObject("Scripting.FileSystemObject") -Set oEnv = oWsh.Environment("PROCESS") - -''''''''''''''''''''''''''''''''''' -' WMI hocuspocus for deleting registry keys recursively, from -' http://www.tek-tips.com/viewthread.cfm?qid=674375&page=8 - -const hkcr=&h80000000 -const hkcu=&h80000001 -const hklm=&h80000002 - -Dim oReg - -Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}//" _ - & "./root/default:StdRegProv") - -Function DeleteRegEntry( sHive, sEnumPath ) - - Dim lRC, sKeyName, sNames - - ' Attempt to delete key. If it fails, start the subkey - ' enumeration process. - On Error Goto 0 - lRC = oReg.DeleteKey(sHive, sEnumPath) - ' The deletion failed, start deleting subkeys. - If (lRC <> 0) Then - - ' Subkey Enumerator - On Error Resume Next - - lRC = oReg.EnumKey( sHive, sEnumPath, sNames ) - - For Each sKeyName In sNames - If Err.Number <> 0 Then Exit For - lRC = DeleteRegEntry( sHive, sEnumPath & "\" & sKeyName ) - Next - ' On Error Goto 0 - - ' At this point we should have looped through all subkeys, trying - ' to delete the registry key again. - lRC = oReg.DeleteKey( sHive, sEnumPath ) - End If -End Function -''''''''''''''''''''''''''''''''''' - -' the installer calls this script with a parameter; -' the menu shortcut for later reconfiguration calls it without -Set oTmp = Wscript.Arguments -bFirstConfig = (oTmp.count >= 1) - -sTL = "" -s = Left (wscript.version, 3) -s = replace (s, ".", "") -i = CInt(s) -If i < 56 Then - sTL = _ - oFS.GetFolder(oFS.GetFile(Wscript.ScriptFullName).ParentFolder).ParentFolder -Else - sTmp = "" - ' ask kpathsea - Set oExec = oWsh.Exec("kpsewhich -var-value=SELFAUTOPARENT") - sTmp = oExec.StdOut.ReadAll - Err.clear() - If sTmp <> "" then - sTmp = replace(sTmp, vbCr, "") - sTmp = replace(sTmp, vbLf, "") - sTL = replace(sTmp, "/", "\") - End If -End If -If sTL = "" Then - MsgBox "TeX Live not found; aborting...", vbOKOnly+vbCritical, "Error" - quit -End If -sTL = oFS.GetFolder(sTL).ShortPath -'wscript.echo "Root: " & sTL - -If Not bFirstConfig then - i = MsgBox("Please make sure that TeXnicCenter is not running!", _ - vbOKCancel+vbExclamation, "Check for TeXnicCenter") - If i = vbCancel Then - wscript.quit(1) - End If -End If - -Const sPro = "HKCU\software\toolscenter\texniccenter\profiles\" - -' remove old settings recursively - -Err.clear -DeleteRegEntry hkcu, "software\toolscenter\texniccenter\profiles" -Err.clear - -' [pdf]latex -For Each sPr in Array( _ - "LaTeX => DVI\", "LaTeX => PDF\", "LaTeX => PS\", "LaTeX => PS => PDF\") - sP = sPro & sPr - oWsh.RegWrite sP & "RunLatex", 1, "REG_DWORD" - If sPr = "LaTeX => PDF\" Then - oWsh.RegWrite sP & "LatexPath", sTL & "\bin\win32\pdflatex.exe" - Else - oWsh.RegWrite sP & "LatexPath", sTL & "\bin\win32\latex.exe" - End If - oWsh.RegWrite sP & "LatexArgs", "-synctex=-1 -interaction=nonstopmode ""%Wm""" - oWsh.RegWrite sP & "LatexStopOnError", 0, "REG_DWORD" - oWsh.RegWrite sP & "RunBibTex", 1, "REG_DWORD" - oWsh.RegWrite sP & "BibTexPath", sTL & "\bin\win32\bibtex.exe" - oWsh.RegWrite sP & "BibTexArgs", """%bm""" - oWsh.RegWrite sP & "RunMakeIndex", 1, "REG_DWORD" - oWsh.RegWrite sP & "MakeIndexPath", sTL & "\bin\win32\makeindex.exe" - oWsh.RegWrite sP & "MakeIndexArgs", """%bm""" - oWsh.RegWrite sP & "CloseViewBeforeCompilation", 0, "REG_DWORD" -Next - -' postprocessing: dvips -For Each sPr in Array("LaTeX => PS\", "LaTeX => PS => PDF\") - sP = sPro & sPr & "PostProcessors\" -oWsh.RegWrite sP & "PostProcessor0", _ - "DviPs" & vbLf & _ - sTL & "\bin\win32\dvips.exe" & vbLf & """%Bm.dvi""" & vbLf & vbLf -Next - -' postprocessing: ps2pdf -sGS = replace(sTL, "\", "/") & "/tlpkg/tlgs/" -oWsh.RegWrite sPro & "LaTeX => PS => PDF\PostProcessors\PostProcessor1", _ - "gswin32c" & vbLf & _ - sTL & "\tlpkg\tlgs\bin\gswin32c.exe" & vbLf & _ - "-I""" & sGS & "lib;" & sGS & "fonts;" & sGS & "Resource""" & _ - " -sPAPERSIZE#a4 -dPDFSETTINGS#/prepress -dCOMPATIBILITYLEVEL#1.3" & _ - " -dNOPAUSE -dBATCH -q -dSAFER -sDEVICE#pdfwrite" & _ - " -sOutputFile#""%Bm.pdf"" ""%Bm.ps""" & vbLf & vbLf - -' viewing: dvi -sPr = "LaTeX => DVI\" -oWsh.RegWrite sPro & sPr & "ViewerPath", _ - "wscript """ & sTL & "\tlrug\dviout.vbs""" - -For Each s in Array("ViewCurrentCmd\", "ViewProjectCmd\") - sP = sPro & sPr & s - oWsh.RegWrite sP & "ProcessCmd", _ - "wscript """ & sTL & "\tlrug\dviout.vbs""" & vbLf & """%bm.dvi""" - oWsh.RegWrite sP & "DDECmd", vbLf & "System" & vbLf & vbLf -Next - -' viewing: ps -sPr = "LaTeX => PS\" -oWsh.RegWrite sPro & sPr & "ViewerPath", "wscript """ & sTL & "\tlrug\psv.vbs""" -For Each s in Array("ViewCurrentCmd\", "ViewProjectCmd\") - sP = sPro & sPr & s - oWsh.RegWrite sP & "ProcessCmd", _ - "wscript """ & sTL & "\tlrug\psv.vbs""" & vbLf & """%bm.ps""" - oWsh.RegWrite sP & "DDECmd", vbLf & "System" & vbLf & vbLf -Next - -' viewing: pdf -' when reconfiguring, check for Adobe Reader; -' if found, ask whether to use it -If bFirstConfig Then - bAdobe = False -Else - Err.clear - bAdobe = True - sTmp = oWsh.RegRead("HKCR\AcroExch.Document\Shell\Open\Command\") - If Err.number>0 Then - bAdobe = False - Err.clear - Else - 'wscript.echo "open command:" & vbnewline & stmp & vbnewline - If InStr(sTmp, """") = 1 Then - sTmp = Mid(sTmp, 2) - End If - i = InStr(sTmp, ".exe") - If i=0 Then - bAdobe = False - Else - sAdobe = Mid(sTmp, 1, InStr(sTmp, ".exe")+3) - 'wscript.echo "reader:" & sAdobe - Err.clear - oTmp = oFS.GetFile(sAdobe) - If Err.number>0 Then - bAdobe = False - Err.clear - 'wscript.echo sadobe & " not a file" - End If - End If - End If -End If -If bAdobe Then - i = MsgBox( "Use Adobe Reader/Acrobat instead of SumatraPDF?", _ - vbYesNo+vbQuestion, "PDF viewer") - If i = vbNo Then - bAdobe = False - End If -End If -'If badobe Then -' wscript.echo "reader: " & sadobe -'Else -' wscript.echo "no reader" -'End If - -For Each sPr in Array("LaTeX => PDF\", "LaTeX => PS => PDF\") - If bAdobe Then - oWsh.RegWrite sPro & sPr & "ViewerPath", sAdobe - oWsh.RegWrite sPro & sPr & "CloseViewBeforeCompilation", 1, "REG_DWORD" - For Each s in Array("ViewCurrentCmd\", "ViewProjectCmd\") - sP = sPro & sPr & s - oWsh.RegWrite sP & "ActiveType", 1, "REG_DWORD" - oWsh.RegWrite sP & "ProcessCmd", vbLf - oWsh.RegWrite sP & "DDECmd", "acroview" & vbLf & "control" & vbLf & _ - "[DocOpen(""%bm.pdf"")][FileOpen(""%bm.pdf"")]" & _ - vbLf & sAdobe - ' "[MenuitemExecute(""GoBack"")]" & - Next - sP = sPro & sPr & "ViewCloseCmd\" - oWsh.RegWrite sP & "ActiveType", 1, "REG_DWORD" - oWsh.RegWrite sP & "ProcessCmd", vbLf - oWsh.RegWrite sP & "DDECmd", _ - "acroview" & vbLf & "control" & vbLf & _ - "[DocClose(""%bm.pdf"")]" & vbLf - Else - oWsh.RegWrite sPro & sPr & "ViewerPath", sTL & "\sumatrapdf\SumatraPDF.exe" - oWsh.RegWrite sPro & sPr & "CloseViewBeforeCompilation", 0, "REG_DWORD" - For Each s in Array("ViewCurrentCmd\", "ViewProjectCmd\") - sP = sPro & sPr & s - oWsh.RegWrite sP & "ActiveType", 1, "REG_DWORD" - oWsh.RegWrite sP & "DDECmd", "SUMATRA" & vbLf & "control" & vbLf & _ - "[ForwardSearch(""%bm.pdf"",""%nc"",%l,0)]" & vbLf & _ - sTL & "\sumatrapdf\SumatraPDF.exe" - 'oWsh.RegWrite sP & "ProcessCmd", _ - ' sTL & "\SumatraPDF\SumatraPDF.exe" & vbLf & """%bm.pdf""" - oWsh.RegWrite sP & "ProcessCmd", vbLf - Next - oWsh.RegWrite sPro & sPr - End If -Next - -If Not bFirstConfig Then - If bAdobe then - MsgBox "TeXnicCenter now configured for TeX Live 2008 and Adobe Reader", _ - 0, "TeXnicCenter Configuration" - Else - MsgBox "TeXnicCenter now configured for TeX Live 2008 and SumatraPDF", _ - 0, "TeXnicCenter Configuration" - End If -End If -- cgit v1.2.3