Distributing TeX and Friends - methods, pitfalls, advise
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 90 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/40276 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 201364 / 90
2
5
8
10
12
13
14
15
17
19
21
24
25
28
29
31
32
34
36
39
40
43
44
46
50
51
52
54
55
57
58
62
65
66
67
78
79
87
88
00:00
Distribution (mathematics)Video gameType theoryComputer programmingWebsiteComputer architectureElectronic mailing listEmailAlpha (investment)Computer animation
00:52
Distribution (mathematics)Configuration spaceWeb pageDistribution (mathematics)Expandierender GraphFlow separationVideo gameTape driveState of matterComputer animation
01:40
Local GroupAdditionMultiplication signBit rateGroup actionRevision controlSoftwareSpacetimePhysical systemSoftware developerAdditionExtension (kinesiology)Data miningData managementProjective planeVideo gameProduct (business)State of matterFreewarePlanningComputer animationLecture/Conference
03:22
Computing platformUniform convergenceSoftwareTrailMacro (computer science)Distribution (mathematics)Computing platformBinary codeOperating systemComputer fileCombinational logicOperator (mathematics)InformationState of matterSlide rulePhysical systemDifferent (Kate Ryan album)Computer architectureComputer animationLecture/Conference
04:28
MultiplicationUniform convergenceRevision controlDistribution (mathematics)Sinc functionAuthorizationProcess (computing)Data managementVideo gamePhysical systemRepository (publishing)Probability density functionSource codeDifferent (Kate Ryan album)Computer fontWebsiteSoftware developerMoment (mathematics)Regulator geneWorkstation <Musikinstrument>FreewareSoftwareSoftware testingInclusion mapForm (programming)Error messageException handlingElectronic program guidePresentation of a groupDisk read-and-write headComputer animationLecture/Conference
06:11
Line (geometry)Directory serviceComputer fileWindowSoftwareWeb pageMultiplication signDistribution (mathematics)InternetworkingWordVideo gameDirectory serviceData managementComputer fileComputer animationLecture/Conference
07:08
Formal languageDistributed computingNetwork topologyConfiguration spaceComputer fileDistribution (mathematics)HierarchyPosition operatorWater vaporGroup actionComputer programmingDirectory serviceDrop (liquid)Performance appraisalLattice (order)Level (video gaming)Context awarenessLocal ringContrast (vision)Centralizer and normalizerComputer animationLecture/Conference
08:31
Read-only memoryState of matterConfiguration spaceComa BerenicesPhysical systemDifferent (Kate Ryan album)Form (programming)Computer programmingTape driveComputer fontComputer fileNormal (geometry)Computer animation
09:11
Formal languageFormal languageComputer filePhysical systemUtility software1 (number)Phase transitionSemiconductor memoryFile formatCASE <Informatik>Group actionDistribution (mathematics)Revision controlContrast (vision)Lecture/Conference
09:55
Host Identity ProtocolPhysical systemVideo gameMoment (mathematics)Network topologyWeb pageRootPhysical systemComputer fileDirectory serviceConfiguration spaceShared memoryCASE <Informatik>View (database)Semiconductor memoryLimit (category theory)Standard deviationConnectivity (graph theory)Line (geometry)NeuroinformatikConfidence intervalSimulationUltraviolet photoelectron spectroscopyUniform resource locatorWorkstation <Musikinstrument>Coma BerenicesArithmetic meanChainQuicksortOrder (biology)Computer animationLecture/Conference
12:50
outputComputer fontConfiguration spaceConvex hullComputer configurationTunisComputer fileConfiguration spaceLevel (video gaming)Direction (geometry)Process (computing)MetreExecution unitError messageComputer configurationAdaptive behaviorComputer fontLocal ringFile formatMathematicsPhysical systemProper mapElectric generatorConfidence intervalProbability density functionComputer programmingDesign by contractComputer animationLecture/Conference
14:09
Computer fontoutputConfiguration spaceComputer configurationDistribution (mathematics)Network topologyComputer fileMobile appTape driveLocal ringVideo gameAsynchronous Transfer ModeOperator (mathematics)MathematicsMappingConfiguration spaceComputer animationLecture/Conference
14:56
Hill differential equationAsynchronous Transfer ModePhysical systemVideo gameSource codeComputer fontComputer fileMappingConfiguration spaceLevel (video gaming)Different (Kate Ryan album)Maxima and minimaFlow separationSet (mathematics)Data storage deviceXMLLecture/Conference
15:54
Read-only memoryoutputFile formatMultiplication signNeuroinformatikMetropolitan area networkDependent and independent variablesDistribution (mathematics)DistancePersonal digital assistantUniverse (mathematics)MathematicsComputer fontComputer fileGoodness of fitIdentity managementPhysical systemAsynchronous Transfer ModeoutputAdaptive behaviorSemiconductor memoryData managementAdhesionStructural loadYouTubeContent (media)Dot productForm (programming)Computer programmingAdditionBitSoftware testingGroup actionComputer animationLecture/Conference
18:16
System callPattern languageFile formatElectric generatorProcess (computing)Level (video gaming)Materialization (paranormal)Arithmetic progressionRight angleMathematicsContent (media)Arithmetic meanVideo gameMultiplication signExecution unitComputer fileMoment (mathematics)AuthorizationGroup actionDistribution (mathematics)Formal languageContext awarenessPartition (number theory)Coma BerenicesNormal (geometry)HierarchyPoint (geometry)Matching (graph theory)Data managementEuler anglesGoodness of fitException handlingFrequencyBitComputer animationLecture/Conference
21:21
Fluid staticsInformationFile formatRevision controlFamilyComputer fileSingle-precision floating-point formatDatabaseDescriptive statisticsArithmetic meanFile formatState of matterLine (geometry)ParsingRevision controlFluid staticsMereologyData recoveryContent (media)Level (video gaming)Similarity (geometry)Computer networkComputer animationLecture/Conference
22:28
File formatEndliche ModelltheorieLine (geometry)Arithmetic meanSequenceKey (cryptography)DatabaseFlow separationGroup actionComputer fontCategory of beingRevision controlComputer animationLecture/Conference
23:08
MathematicsComputer fileRevision controlData managementNumberPhysical systemAdditionObject (grammar)Coefficient of determinationElectronic mailing listSpacetimeDisk read-and-write headLibrary catalogFerry CorstenSource codeSoftware1 (number)Descriptive statisticsLecture/Conference
24:31
Latin squareInformationConfiguration spaceFile formatMetropolitan area networkMixed realityGraph (mathematics)CodeComputer fileStatement (computer science)Network topologyMathematicsLine (geometry)Level (video gaming)Revision controlGroup actionLecture/Conference
25:19
Line (geometry)BitMixed realityLevel (video gaming)Computer fileFile formatPattern languageException handlingComputer configurationProbability density functionRule of inferenceFormal languageWordLatent heatCodeData managementStructural loadFile viewerDistribution (mathematics)Context awarenessAuditory maskingConfiguration spaceComputer animationLecture/Conference
27:14
Asynchronous Transfer ModePoint (geometry)NumberCountingVideo gameHeegaard splittingDistribution (mathematics)Web pageXMLLecture/ConferenceComputer animation
27:57
Hill differential equationVideo gameSingle-precision floating-point formatDistribution (mathematics)Computer fileConfiguration spaceLevel (video gaming)Data managementHeegaard splittingRevision controlProcess (computing)Moment (mathematics)Electronic mailing listPartition (number theory)Real numberDirected graphMusical ensembleLine (geometry)Service (economics)Formal languageContent (media)Web pageOrder (biology)Right angleArithmetic meanPhysical systemLecture/Conference
30:10
Video gameMultiplication signNumberBootingStatement (computer science)Mathematical optimizationHeegaard splittingBitMixed realityDistribution (mathematics)Single-precision floating-point formatComputer animationLecture/Conference
31:33
Heegaard splittingInternetworkingSinc functionEmailEnterprise architectureGraphical user interfaceDemosceneElectronic mailing listDistribution (mathematics)WindowVortexWeightVideo gameFreewareINTEGRALOpen setBitWebsiteComputer animationLecture/Conference
32:47
Hardy spaceUser interfaceInclusion mapDuality (mathematics)Formal languageMultiplication signGraphics tabletDisk read-and-write headParallel portVideo gameNeuroinformatikHeegaard splittingAxiom of choiceCoefficient of determinationComputer fileSource codeConfiguration spaceDifferent (Kate Ryan album)BitCartesian coordinate systemDistribution (mathematics)Binary codeComputer architectureFile archiverMaxima and minimaReal numberOperator (mathematics)Open setFreewareFile formatClient (computing)Scripting languageMathematicsWeightSystem administratorAuthorizationStatement (computer science)Software developerSingle-precision floating-point formatRevision controlNetwork topologyPattern languageSinc functionIndependence (probability theory)WordState of matterElectronic mailing listWindowCompilation album1 (number)Message passingIntelligent NetworkExistential quantificationWhiteboardFlow separationEstimationOperating systemLevel (video gaming)ArmoutputRootWorkstation <Musikinstrument>HypermediaVariable (mathematics)EmailXMLComputer animationLecture/Conference
39:11
Video gameWeb pageConfiguration spacePhysical systemComputer fileLimit of a functionLevel (video gaming)XMLComputer animationLecture/Conference
39:54
MereologyLink (knot theory)Video gameMereologyDistribution (mathematics)Computer architectureCombinational logicConfiguration spacePower (physics)PermanentCASE <Informatik>MathematicsSoftwareRepository (publishing)Source codeBinary codeProcess (computing)MiniDiscRevision controlControl flowScripting languageServer (computing)Open setWeb pageBuildingNear-ringPoint (geometry)Multiplication signSpacetimeEscape characterNumberD-branePortable communications deviceMomentumPosition operatorTouchscreenComputer filePhysical systemData managementFlagXMLComputer animationLecture/Conference
43:56
BuildingScripting languageLink (knot theory)Data managementMathematicsComputer fileComputer programmingDistribution (mathematics)Game controllerFeedbackPhysical systemDemosceneModule (mathematics)SpacetimeDirectory serviceParallel portNormal (geometry)Independence (probability theory)DampingWeb pageSelectivity (electronic)Multiplication signProgramming paradigmBasis <Mathematik>RandomizationLine (geometry)Context awarenessDatabaseVideo gameWeb 2.0Projective planeEstimationScripting languageState of matter1 (number)DiagonalFormal languagePower (physics)Single-precision floating-point formatSoftware testingLattice (order)Computer animationLecture/Conference
46:59
Multiplication signDistribution (mathematics)Latent heatElectronic mailing listCoordinate systemEmailWeb pageSoftware developerElectronic program guidePhysical systemComputer animation
47:42
Source codeBinary codeVideo gameHierarchyFlow separationLecture/Conference
48:34
Library (computing)Fiber (mathematics)Distribution (mathematics)CompilerRight angleRevision controlVideo gameRepository (publishing)Disk read-and-write headRootPhysical systemBuildingBinary code1 (number)Traffic reportingComputer architectureTopological vector spaceData managementVirtual machineComputer programmingView (database)Medical imagingArtificial neural networkSource codeVapor barrierMereologyCombinational logicVideoconferencingNetwork topologySphereDirectory serviceLink (knot theory)Limit (category theory)Tape driveChannel capacityComputer fontRule of inferenceLecture/Conference
Transcript: English(auto-generated)
00:00
Yeah, I mean, as I said, how do you say, one of the members of the Take Live team, I originally started from the Debian side. Actually, originally from the Take Live side, it was just, it was really architecture for take alpha, Linux and take alpha. And later on, I take it in 2005 for Take Live
00:22
for Debian, and then I got more and more involved into Take Live itself. I've asked him and now, since 2007, I've written the whole infrastructure, so, yeah. The talk is about distributing Take Live because we get on the mailing list often questions, we often see problems since the distributions
00:40
have messed it up, how to package Take Live. I see, I mean, it's written here, distributing take, but since we are speaking about Unix or whatever, why does this exist? It's mostly Take Live. Thomas Ester stopped working on Take Live,
01:01
probably most of you have heard of Take Live in several years ago, anyway, and so now most distributions, not practically all use Take Live as the base. So what is Take Live? Take Live is a distribution of take with a lot of things. It aims as in, okay, well, that's the overview.
01:22
I don't need to see this. So what is take? I don't, we not speak about take. I don't give an introduction to take. I hope everyone knows how to program take, especially these nice things here with a lot of expand after. But this is not today's talk. Today is more about Take Live and how to package it.
01:41
So it started in 93, that is quite some time ago, when the TouchTake user group started to distribute, that was long before it was called Take Live, and from 95, we will issue as a CD at that time, based on TTake, who must hesitate, and 96C, so the first version called Take Live.
02:04
At that time, what we actually in this live from the take time, it was actually a live system. So we plugged in the CD into the drive and had a running take system on it. That is unfortunately not possible anymore because we run out of space. The next few steps in 2005 and 2000 is when the most,
02:23
as all the non-free software was removed. I just mentioned the big steps. In 2002, we added Mac OS support. 2005, it's not so important. From 2006 to 2009, Carl Berwick took over from Robin and saw the addition of TTake, so now very common,
02:43
especially for multilingual types, I think. Yeah, TTake stopped being developed, and it took about 10 years that it got phased out of the development. Since 2007, we have the Take Live manager in production, and in the last years, that coincides with my move to Japan.
03:01
I'm now living in Japan. The Japanese take support was introduced with TTake and Apti, so these are different extensions for the very complicated Japanese life technique. And last year, it was just for another pity project of mine to rewrite Apti. Okay, what are the features of Take Live?
03:22
Well, it aims to be complete, so everything that is free, according to FSF guidelines, should be included. Actually, we want to have everything in on CTAN, so we pull everything from CTAN. CTAN is the comprehensive take art with network. Most people have probably known the CTAN, the Perl,
03:42
so that's very similar. We have currently what is 2,474 packages, so that means one package consists of up to hundreds of files. That means one package from CTAN on set, macro package, or whatever. It is micro platform and micro operating system.
04:03
We are currently supporting 10 different architectures. So we have 10 architectures, eight operating systems, well, the combinations amount to eight in combination, because you cannot combine everything with everything, where we ship actual binaries with Take Live. So we have our own distribution channels,
04:22
and we ship the binaries for these architectures. It is uniform across platforms. So CTAN was only Unix. We have, this is, so Take Live is now shipped from Windows, Mac OS, and Linux as a Unix distribution. We have our own package manager, Take Live manager,
04:42
which is responsible for a huge amount of things. And we've seen, I've rewritten the infrastructure in 2007 to nine, we have now daily updates. So when Autor submits a new version to the CTAN system, when we get notified, and then by semi-automated process,
05:01
this stuff is included in our subversion repository, and from the subversion repository once by day, there is a rebuild station pushed out to the CTAN network. So that was actually a big error, because now everybody complains, hey, I've seen three days, we don't have any updates. And well, we are trying to be deep in for your FSF free,
05:27
EFSG free with a few exceptions, we don't care for some, I'm a deep in developer, but at the moment I think of the deep in developer and the Tech Live had some crazy freaking regulations
05:40
not to include nice fonts and layouts. Big examples, for example, the font installation guide, which is from Lehman, has a very nice layout font, very beautiful presentation, which you cannot ship because the fonts are commercial. We ship the source code of the document, but we cannot ship the font, so we cannot ship the nice PDF.
06:02
And yeah, so, but in the DVM, on the Tech Live site we do this. So these are the only differences. So both our Tech Live distribution channels, we have one DVD per year, it's normally in June around, and this stays for about one year
06:21
and you can go back quite some time, but most people nowadays use it very conveniently, we call it Tech Live network distribution, you just download a very small installer, which is written in Perl, and for Windows we have to ship the Perl installer and suck up all the installation.
06:41
This changes the directory on the C file network, so, and this is where the Tech Live manager pulls stuff. Okay, so that was a big background on what Tech Live is. So now what, I mean, I assume, well, I don't assume much that you know about Tech,
07:02
but there are a few things you have to know, and the one thing is that there is something which creates always problems in the distribution system, that we have configuration files that are stacked and non-stacked. So what are the non-stacked, and this is quite easy, this is like most configuration files we have in the distribution system,
07:21
we have a hierarchy of trees, and the most, the uppermost in the hierarchy file is picked up as configuration file. Think about whatever configuration file a local user program often is, ships a general configuration in DPC, and you can have your, in your home directory,
07:42
the same configuration file, but with exceptions, and then your personal copy has a higher priority. So, but then the old one is normally not, well, it bends, so that if it's not stacked, then only yours is stacked. In contrast to this, these are stacked, so we have every copy of the file,
08:02
we are here considering not different names, but always the same file name, or five percent are all evaluated. So these are two different levels, we will see examples in a minute. So what are, and these are four packages, or readers, readers, they have, so I mean, I know I'm in the same position,
08:21
I'm also packaging, but also writing. There are practically four files, more or less, where this is a group of files, that have to be taken care of. They are the central configuration files that they pack. The first one most people have heard about is the takemf.com, that's the general configuration file. Normally not many things have to be changed,
08:42
this is since 2012 state, so the text programs read all the takemf.com file files and evaluate them in the proper way. And update made from content, this is for embedding fonts, so we know there are thousands of fonts in the text system, and how to,
09:01
the different engines, tbips, tbipdfm, xtbi, how they use fonts and which fonts are used, this is governed by this one. This is also since 2012 state, so all the update made files are ready. In contrast to the non-stake ones, these are format utility, so this is a definition
09:21
of formats, which are memory dumps, this is more probably from where we come to take this data and language definition files, in fact they provide which hyphenations are available in the text system. So let's go through these four files, so five groups, one by one.
09:41
So takemf.com, that has a lot of settings, but for distributions, I want you only to remember the only thing you should change in most cases is the path, because that might change where you put the files. So these are the trees that are predefined in the takemf.com file, and here,
10:03
R is the root, but in the takelife system, R would be takelife 2012 at the moment. So that, and they are also in increasing order, so this is the, well actually, this one here is the uppermost, and this is the lowest, so a file that is found here
10:21
overrides a file that is found here. Takemf, this is where 95% of the files are, there are about 20,000 or 50,000 files, they are here, takemf local, straightforward, this is what the system might use, takemf main, that might get dropped with 2013, because we had an idea to have
10:44
the shareable, non-shareable components, but it turned out nobody actually used it and you can use it even without this. And then now the system, so variable data, generated data, and configuration files, the user tree in home directory and the user.
11:00
So these are the files, the trees that are predefined, and these three views just often change them. For example, in DPN, this one is used as a share takelife takemf, this is used as a local share takemf, this is used as a share takelife takemf,
11:22
and so on, so we change this. And the only thing is, yeah, typical example is, for example, takemf sysconfig, what was sysconfig? It's the system-wide configuration for this whole installation, so it makes sense to have, for example, DPC takemf. And this is then a fully standard
11:40
tech directory, standard compliant tree. So what is the normal things we recommend to do for the reduced distributed adjustment of these tree locations? Maybe add some trees, that makes sense. This is something we do in DPN. And anything else should not be necessary.
12:00
I mean, there are memory adjustments if you, but we have set up the values in a way that even if you'll start everything, you shouldn't write any memory limit. So if you actually hit this, then you probably know what you have to do, or you can ask us. So as I said, this is a stacked one, so since all of them are red,
12:22
you don't need to copy all of it. Just like here, create a new file takemf, you can put in only the changed values, nothing else. It's very easy if you check the DPN system, as of currently, we see it, mistakes left 2012, so we have a very simple configuration file
12:40
that consists of four lines, or something, or three lines, just a few passages. Last page should be done. Okay, that was the easy case. So what is the other thing? Configure update map, configuration map. So what is update map? Update map is a very strange thing. Actually, it's a meta-processor for directives.
13:01
So what it is, it reads the config files. In the config files, there are references to map files. These map files contain font definitions, and after that, it merges them all together, and generates proper configuration files for DBIBDFM, PDFTECH, DBIPS, and some other programs,
13:25
because the formats likely differ here. And there are also some options here, so which font do you want the other D or the ULE fonts. Then, that is something important. Every change in the availability of font,
13:42
but it means that you set and start a new font package, you use and remove the font package, needs adaption of these files, and needs a rerun. This is one of the core errors for most D students, they just don't do this, and then users are surprised that they manage, well, a lot of error messages.
14:02
Since it is stacked, since 2012, it's stacked now, local system adoptions can be easily handled by just putting them in tkmf-local or in some other tree. So they are local. In DBIBDFM, for example, we have the take-life sheets, everything under user-share-take-life, and the other font packages in user-share-take-mf,
14:23
and each one generates its own app that makes the config files. So that is something packages, distribution should remember. If you have a change in your availability of fonts, you have to rerun Applit Maps, and you have to regenerate the file or change it.
14:43
Otherwise, the user will see strange things happening. So what is this new operation? What I just mentioned is that you see what's going on. So all Applit Maps config files are read in these trees, and so this is the highest priority, this is the lowest priority, highest priority. Forget the user mode for now, just the system mode.
15:03
For distributors, the user mode is not interesting. And then, so that means that, well, we have, for example, one, we ship in take-life, then we have this file and this file. This file contains all the font definitions that are there in take-life. This one in tkmf-main contains only the general settings,
15:24
and the rest is up to the user. For example, on my system, I have several fonts I purchased, or I start from different sources. I put them in take-map-local and just put the respective maps file in this. That's all, and then run Applit Maps, there's nothing else. People who have seen take-life before on Debian
15:43
remember this common update Applit Map, that is gone. No need anymore, because Applit Map now reads all files. Okay, next configuration file, also very prone to get forgotten by a retrist distributor is the format utilities, which format.
16:02
So that is from a time, yeah, when I look here, then probably everyone has used computers at this time. When Knuth wrote this back in the 80s, there was speed and memory was a big issue. So he devised in his test program, and made the content mode, which was a bit more evolved,
16:23
but had more features, but it took more time. That loaded all the initial definitions and then dumped out a format, a memory time, so to say, and then later on just loaded his memory up. And this is, yeah, it's 2013 now,
16:40
but this is still what's happening in the test world. Yeah, you don't have to wonder. I mean, new formats that you will take, get rid of this, but still we have the fact that these formats, these times have to be recreated. So, input file for this, yeah, one of, so this formatutd.com specifies
17:01
how to generate these times. This is the content of the formatutd.com. And it's not staying, so there's only one, all right, local stuff, but this is also something which normally don't happen. Font additions are very common in this system. Many people have to assist themselves.
17:21
Think about in a university department or a company, you have your private font, your identities, and company font, the university font, which you have to use. By new formats are relatively rare, I have to say.
17:41
Again, like with apt-get-nipsys, every change with the availability of formats needs a regeneration or adaptation of this file and a rerun of one of the utilities. So this is something which also happens depending on your package manager from the distribution side, you install, you remove.
18:01
This is something that has to be taken in account. Hyphenation patterns, that's actually a group since, I don't know, three years now, we have this dot.lua, that's the Lua tag, the definitions. Again, during format generation, these formats read in hyphenation patterns,
18:24
and this is in a special format, and these hyphenation sub-patterns are done together with the memory format. So that's all, yeah, back in the 80s, could everything be read nowadays, more easily, but, well, that's transition in progress. So if change is the hyphenation,
18:41
and this language dot, lounge, def, and that Lua, they define for different engines, for the latest, so this is for the late-touch-based, this is for the e-touch-based, and this is for the lower-touch-based. And again, if something changes, please remember, something changes in the hyphenation, you have to repeat the formats.
19:00
Otherwise, it doesn't match. I mean, that is something what I remember last year, you get the question, what's going on? We installed the new hyphenation, but when I ran late-touch, it actually not available. Well, the format was not regenerated. That's the simple point. Exception is that this one is a runtime file, so you don't have to do anything but to fix it,
19:22
you will have to know what's going on. So, other things, with respect to touch-life, is if you want to package it, you have to know a bit about the structure, so we have a hierarchy of packages. On the top are schemes, we have currently nine schemes. They collect together, well, they have overlapping
19:43
contents, so they are not exclusive, so typically a theme, smart, context, theme normal, theme everything. So these are the top levels. That is what, in our installation process, the user gets asked on the front side, what do you want to start,
20:00
what do you want, everything, we have a CDP which tries to resemble CDP at the time. In the middle, there are collections. There are 84 at the moment, I think yesterday. They are not overlapping. That means they are a partition of the contents. This is important, why? Package managers are not, distribution packages,
20:22
not happy when one file is in two packages. I mean, there are conflicts, you know this. Probably, so these collections, we keep them not overlapping, so a partition of the contents. So they collect related material.
20:41
So we have late-age formats, extra, so some extra-strange format for Arabic language support, all kind. And on the lowest level, we have package, take-life packages. We have now 2,490 something. This is the smallest unit. They relate directly to what an author,
21:02
a package writer uploads to C++ in 99.9%. Typical examples, BMA, Commas, PGF, things you might, what you use, for example, when you use late-age, use package PGF or something. So these are the hierarchy of packages.
21:20
And other things that are necessary for packaging. I think at the end, you will have to take contact with this piece here. It's, before 2007, that was not, there were thousands of single files, which might also be nice, but they were in XML, and who wants to parse XML?
21:42
Nobody. So when I rewrote this, I changed the format into something much more adjustable to, well, comment-line parsing, Linux tools. It's just package description files of DVM. If you know what the package files in DVM are, they are stanzas separated by a new line.
22:04
And that's it. So we have this take-life database describes the whole state of one installation, meaning also the whole state of the take-life network, even when it's compressed. It's a simple text file, so plain lines.
22:21
We have revision numbers for single packages. This is always generated from static content, blah, blah, blah, blah, blah. Yeah, I mean, we have a lot of Perl models. For those, I mean, I come back to this later on. So how does it look like? Very easy. Well, if you have seen one of the packages, find the table, and you know, well, there's name upload,
22:41
that's one of the package name, or name memoir, and then the rest, and in between is an empty line. So it's a sequence of key value pairs separate by an empty line or more. And you have one group per package, so that's take-life package. And we have some meet-up database. So that is, for example, an example I copied from two days ago, the droid font.
23:04
So here's the typical examples. You have the name, what kind of categories, revision, this is our internal revision number from the subversion system, the highest change revision of all the competing files. This is what it is based on, our take-life manager base updates purely
23:22
on the revision number, but not on version numbers, because version numbers in the take-life are horrible. They are going up, down, wobbling around, so they are not technically always increasing, but with subversion numbers, revision numbers, yeah. Then we have the short and the long description. I deleted the rest of the long description.
23:42
They are taken from the take catalog. We have execute. We will discuss this later on. This can be forgotten. This might be interesting, doc files, so that are documentation files. Then here comes, identified once based, a list of documentation files. They can have some tags here, that would be nice.
24:02
Then we have source files, which are used to generate and run files. These are the ones that have to be actually inside, because they are used for running. And there is additional catalog data, like where it is found on the CTA network, when it was last updated on the catalog,
24:20
what is the license according to the catalog, and what is the version according to the catalog. So this is one of these, of the files. So you might ask where this, we mentioned this execute, I mentioned this execute, and I mentioned the four configuration files, where the first is the take man conflict,
24:41
but then the forms, the hyphenations, and the format. So these, where is this information coming in? This information is coming exactly from this execute. Think about it as like a post install action trigger. You have to do something. So here are the execute statements.
25:01
The one is add map, add mixed map, and add country map. It's simple, in this update name conflict file, there can be either statement map, blah, blah, mixed map, blah, blah, country map. So typically line is this one. It means you should add a line, map, called this to your update map conflict file.
25:22
And when you remove this package, you should remove this map line again, because it's not here. And mixed map and country map are different for country map of this Japanese. So for the formats, we have add format. Don't ask me why I have sometimes low and sometimes upper, just historically, I think.
25:41
That is a bit more complicated. This is not the line exactly as it should end up. So it gives the name of the format, which engine. So the PDF latest format is combined with the PDF latest engines. This gives the language stuff. This is where the hyphenation patterns are. And then some options, what should be run.
26:04
From this line, we have the Perl code, but you can easily pass it yourself. One line for format.gpt.conf has to be generated. And for hyphen, that's getting more complicated. We have the name, fast, for example. Then these are configuration options.
26:20
How many, where you can put the hyphen. You cannot split the word in one character on the left side, then all the rest. Some rules, linguistic rules that are not allowed. So they are put here. And then loader files and hyphenation patterns file and then some exceptions if there are. From this, again, you can generate the SQL code available in a nice form,
26:41
but you can easily do it yourself by reading the specification. Generate the language of the viewer file. So these execute, they can have to be taken into account. So if you package something, take like for a distribution, and you split into smaller unit,
27:01
you have to think about, well, if my user installs something that relates to one of these execute statements, then the package manager has to do something. So, package in Paradema, how do we package this? We are now at 3.6 gigabytes that is going to be live.
27:22
That makes it, first of all, I didn't count the number of bytes. And that makes it very, no, completely impossible to do anything by hand. I mean, checking everything by hand, it takes years. So, there are different ways to package,
27:40
to split or not split. So the first one, I would say, all or nothing. There is one distribution package which contains everything. You have one package, it's called take life, or take or whatever. Yeah, first make up. It has some advantages and some disadvantages. Collection splitting, you see split at the collection level.
28:04
Single packages, so you split one distribution package, whatever, really merges as a next one take life package. And then there's list mode, let's go through them. So all or nothing, so the advantage of all or nothing is yeah, well it's easy, you don't have to care.
28:21
The good thing is you don't have to care about the configuration files, you just install what we are shipping. Because if you remove, then you remove everything. So that's the nice thing, but I wouldn't recommend it. We get even in other distributions already complete, oh, it's 200 megabytes, it's too big.
28:41
Whenever a user wants to install take, he has to install 3.6 gigabyte at the top. I'm not sure if most people will be happy. So, I don't know any distribution is using this at the moment. Yeah, right, that's different how to build it.
29:02
And the Debian also uses four huge hardwalls. But what you're shipping Debian at the end, you build from these four huge hardwalls, we build 90 or 100 binary packages. And this is what the user starts and sees because the user doesn't see the big process. This is different if you are on port system,
29:22
or in VST where you have to download everything. Or, I don't know, some other distributions, I don't know anything. So, that might be a real problem, yeah? So collection splitting, the advantage is that it is somehow nice to the package manager of the distribution, because as I said,
29:41
collections are a partition of the content, so there's no overlap. So you know if you have a file which is contained in one collection via a package, then it is definitely not in the other, so there are no file conflicts but it is the package manager. And there are not too many individual files. So that was when I proposed in 2005
30:02
to package-take-live, to Debian. I said, okay, what should we do? So I proposed in the take-live, mainly this, because you can obviously say, should we have one take-live package that would be, yeah, at that time 2,000 something packages when, well, the Debian crowd cried at me.
30:22
Never, because the boot double is suddenly the number. Anyway, so that is, that's a nice thing. The disadvantage is that the packaging is not trivial because you have to collect all containing packages, you have to collect all the execute statements, so then you have to invest a bit of time and to optimize this, because you don't want to do it,
30:43
well, maybe you want to do it once a year, but you might do it more often. So Debian and Ubuntu, well, the Ubuntu just paid for this in Debian, which I supposed to change. So package splitting, so this is straightforward, very fine-grained, nice, simple, clear.
31:01
Allows also to do very quick fixes for single packages if you want. Disadvantages is the huge number of packages, as I mentioned before, 2,000, 3,000, I don't know. So this is something I have to think. As far as in Fedora and Zuza are taking this approach. Okay, mixed node, I don't know.
31:23
I cannot see anything, but then I know that some is invariant. Okay, let's do a distribution breakdown. From what I know, I guess at the round, I searched the internet for what they are doing, so Debian and Ubuntu is, we know since Edge,
31:41
we have paid live in it. It was in 2005, it's based on collections printing. Fedora has paid live since FZ6 and uses package splitting. Zuza since SLE, whatever, Enterprise 11, and open Zuza something. Package splitting, free BSD uses also package splitting
32:01
since 2009. Open BSD was one of the first after our DBM in 2017, which is the only one using mixed splitting with about four packages. Next BSD, it was recently on our mailing list a big discussion how to do. Then we have, well, it's not completely correct
32:22
to use, discuss this thing, but we have Mac OS, we have Mac tech since many years. It's based on tech life, ships tech life as is with some graphical interface, nice. Very good integration. On Windows, we have Vodex, which is the site to be packaged. We have tech life by tech, it's practically the same.
32:41
And we have the independent. So let's go through the distributions a bit in detail. So DBM, so Vudy had tech ones, actually the 2H, tech three, and tech life 2005, where we had both parallel. So we tried for some time, we didn't know what will happen.
33:01
At that time, it wasn't clear how to continue. But then since language, we had 2007, squeeze 2009, and VZ will be half 2012. So more or less almost what is currently on that. Ubuntu had a hard time a bit to take that because they always release just before
33:22
or froze the distribution, just before I could get out the packages for DBM. So hard they had to like 2007, or these ones, precise, I think that is the biggest one, precise just released in April, and the DBM packages came out in April.
33:41
So that didn't work out nicely. But well, yeah, I mean, I have realized also, client data, so the current development has took life, 2012, and for precise, there are PPAs for 2012. So we have one package per collection. We have, it's also something I will mention a bit later on
34:03
that there are architecture dependent files, real binaries, not scripts. Real binaries are built from a different source package and also ships a different binary package while we want to keep application to a minimum. And if you know a bit about DBM, well, if you have a package that is for every architecture
34:23
or then you don't have a complicated application, you just have it once in the archive. But if you have to combine something, then you have to have every architecture supported in DBM. So we keep that to a minimum and ship everything in architecture independent files.
34:41
Our take-life route, this is now about 2012, is user-share-take-life, that's new since 2012. So we have user-share-take-life, take-him-f this, user-share-take-life, take-him-f. We add an additional tree, which we call take-him-f-dbn, which is user-share-take-him-f, where packages that are not in, well, we are packaged separately from take-life,
35:03
I am installing some, and we have something I think that is the only distribution, actually. I mean, this process, since there's a requirement in DBM, you probably know, this is since you have administrator changes. So if someone changes some of the hyphenation patterns or the format definitions and removes the package
35:22
and installs the package, these changes have to be persistent. There is something particular to DBM. I don't know any, well, Ubuntu, any other distribution you have this, and that creates a lot of problems. Of course, it's not too easy. Fedora, well, we have Fedora, yeah, T-TECH,
35:40
2007 came into six, and 2010, interestingly, is available in 13 and 14, and 11 from 13 to seven, and now we have to take words for the others. They use a single package splitting again, so one Fedora package, one T-TECH package. They did very big things from our side,
36:03
from our native side, a very detailed license check. In the consequence of this, a lot of packages have been either removed or checked with the original authors. Please give us a decent license statement so that we created with us a nice clean up of many things.
36:22
There are no persistency of administrative changes. The post-installation script of Fedora just changes configuration files down. And, well, if the administrator wants to change something, it gets lost afterwards.
36:41
SUSE has, 2010, so these are, I mean, if I, especially, even if one of the distributors wants to correct me, I am open, but this is what I could grasp from the net. So we have now 12.2 has both, and the development version has 2012.
37:01
Again, single package splitting, they use, they merge these two trees, they can have distant TECH, our TECH and we have two trees into one user shared T-T-M-E-D. It might be something that we anyway have the next year, also for the whole T-TECH life distribution that we got rid of this split. They have the configuration files in BTC-TECH-NF
37:23
and set it up as TECH-NF-SUSE-CONFLICT, but no persistency, so if we change it, one of us are synthetic, and you remove and reinstall and get lost. As a operating system, free BSD, one package splitting, also I couldn't really make out from cursory,
37:41
look how they handle this. Open BSD is very long time since 2007, that was one of the first. That has an interest in splitting in base, minimum, full, and dogs. How this is handled with overlapping files, I don't know, but it seems, yeah, since 2007 up to 2010.
38:03
Net BSD recently someone came up with the T-T-M-E-D distribution, this is the one I want to package for Net BSD, I said please look at the other BSDs, even if you need them. Mac OS I mentioned already has a very nice wrap-up in Mac, very highly recommendable, it's very well done.
38:20
Windows, again, has take-life upstream, we provide our own installer, practical installer, wizard installer, and we have pro-text, and then there is the independent mid-text, actually now in the text, when there are practically only two distributions, is this take-life, which is for everything, and mid-text, which is for Windows,
38:40
take-life is also for Windows, but mid-text has more, how to say, well, since the target's only Windows, it's more streamlined for Windows, that's good, but nobody ever... It's the best choice if you have to do something practical with it.
39:02
Okay, yeah. Okay, what I want to close is with, I mentioned already many things that these two computers should take, here in the, when their packaging take-life, I want to come up with, again, with a few warning and common pitfalls. The first one is, I never use take-life,
39:21
I have no idea what take is, but I take it now. It sounds crazy, but I have seen this, not too, well, and I can only see, yeah, okay, forget it, because it's impossible. It's not just running, configure, make, make, install, and then try everything, no. You have to, please install it,
39:42
please run it, please get to use what the system runs, and after this thing about packaging. Improper configuration file handling is by far the biggest problem. What I mentioned already for, yeah, shipping, typically, example, you ship parts of take-life, you split it,
40:01
but you ship the update make-compute file, which we have in the distribution, which contains all the fonts, and that doesn't work out. So that is something, while, well, the last 20 or a half, now I was talking about this configuration. That was, in the last years, often the case. A problem, especially for the BSD,
40:21
is what is upstream. As I mentioned before, we have the DVD distribution that changes once. During this time, we now want to create power peak, power files, so whatever. But between these releases, once per year, we have daily updates to the state-like net distribution, but there are no revision numbers,
40:42
there are no SCN, there are no DXMs, there is nothing. And there is no history. So the CTA network cannot keep copies for everything. That's impossible, nobody has it. And that's a big problem for BSD ports, as far as I understand, because they have to download a fixed set,
41:02
and the scripts have to work on the set. But the problem is, I mean, the upstream, the download for port for building is a moving target, and then often the port building breaks. So that is something which is a problem. Yeah, I have to say, this is something I am happy to,
41:21
with anyone having suggestions, what we can do, but we don't have neither the disk space, nor the network capability, nor the resources to keep a history of every disk. Yes? How big would it be in a disk? Have you made a destination?
41:47
Probably, if you keep for one year, I don't know, 10 year back, 15? It's more that someone has to set up and link it into the CTA distribution network. That is the problem.
42:02
I mean, of course, or on the TAC server, where we repeat the main architecture. I mean, there's something, yeah, there's something near open. If someone just says, I mean, there are scripts, so everything is available. Someone, if you think it makes sense, and you want to have this, you could, but there's something one can discuss.
42:20
I'm not sure, but I'm not sure if the TAC server is happy about it. So, I know from BSP, this is a real problem. I mean, yeah. Binaries and source. As I say, page life has its own distribution channels. We have our own installer,
42:41
we have our own package manager, and we ship binaries. We don't repeat them during the year. We have, as I mentioned, 18 architecture OS combinations. The big process is a huge pain. You get updated binaries from all the biggest, sometimes we don't have automated system. We don't have anything like this.
43:02
I mean, just, if you weren't here. So, we cannot do this during the year. There are private, independent repositories, so you can get updated binaries if you want. I, myself, have one for a Japanese case, binaries, where we pick stuff so that we can do. But, in general, it is not fast.
43:22
Our source repository, the subversion repository, changes permanently. From what I looked it up, it's changing in the packaging way permanently. And that does, so that means that it often does not relay the source repository to what actually is shipped. So, you have to think about as we distribute,
43:42
as in the distribution, what I'm basing my binaries on. On the subversion, on the release version. So, this is something you have to take into care. Okay, last and big warning, whatever the user tries for, don't ship the tagline manager. First, it will probably not work
44:03
because you have no tagline manager. Second, you don't want an independent program messing around with the files that are under your distribution package manager control and change them, update them, change them, devise them, or whatever. You don't want this. Whatever the user says, you just say, no, please.
44:23
I mean, there is something, I have a page for user-mode tagline manager. Nobody ever tested it. I called for tests. It's still open. Something that users can, in style, use the tagline manager to manage their home directories
44:40
and use, so to say, the whole tagline infrastructure, which we provide as tagline, to update and install new packages into their home tagline manager. But you should never allow the tagline manager to mess around in your system. I mean, if the distribution works in this way, then it's okay, but normally, I don't think that any distribution
45:02
wants outside programs to change, is something. Recommendations, this is what I'm closing, so get to know the system. Yes, I mentioned before, I don't know tagline. I don't know tag, but I package it. No, get to know, install it. Run the normal installer. It's not, I mean, at the end, this space is, for normal users, not such a thing.
45:21
I have on my laptop, which is a big H. I don't know how many installations are tagline, parallel. Learn Perl. There are all the infrastructure. Every scene that tagline is driving this. Every scene is broken in Perl. All the scripts, all the updates, all the scenes you see there is everything in Perl,
45:41
all the access to the database, to the execute scene, all is wrapped up in Perl modules that are documented. So if, yeah, it helps. Look around, please. Also, if you think about for a new distribution, that is not this and one after already,
46:01
then look around what others have done. Tech Live, it was first packaged even in 2005, and we have now many packages, many distributions are shipping. If you want to package it, then you look around. What I mentioned before was one of these BSD variants, what is net BSD, wants to start from scratch when there are
46:20
three or two independent other BSD packagings. I mean, yeah, waste of time. Select the paradigm that fits your need. So for your distribution, for your political, also this is often a political, even if it was a political, I mean, there were no technical reasons that fits your distribution requirements,
46:42
this kind of diagram, so everything, or a single package, or indeed people. And last, please contact us. We want to know, we can help you, we have enough experience in this kind of stuff. So if there are any problems with contacts, so where can you contact us? The main webpage for Tech Live is there.
47:02
There are a lot of sub-pages. The main coordination is done on Tech Live, this is not user support, they send your users out. Please don't put them, if you have a request, this is for development. We often get questions from users we often have, but it's for development. We have a specific mailing list for distributions.
47:24
It's not very active, like this just, but this is something where people from practically all the distribution maintain as a subscriber and have the knowledge, and if you want to contact me and that person, then I'm also here. Okay, I think it's exactly my time I have.
47:42
Thanks for the attention, and yeah, I hope you've been far asleep. Okay, thank you. Thank you. Thank you. Thank you. Thank you.
48:03
Thank you. You mean the binary. Sorry, what, Tech Live consists of a source tree
48:23
which reads the binaries, and a run tree, and they are both in one subversion hierarchy, but if you get the source .r.gz and you make configure, make making start or make world, you don't get the tech system. You get the binaries. The binaries have to be put in the right place
48:42
in the run file, in the run. That's, yeah, also I speak. Simply because it doesn't make sense to have, well, as I mentioned before, the median, the source, the building of the binaries, it's not so, I mean, it's big.
49:01
We have, I don't know, 50 programs that are combined, but it's still manageable. While the whole tree is 3.9 gigabytes, it's not something. Other than that, it's not complicated besides, yeah, on strange architect, if you have a build strip, if you run it, you get all the binaries again.
49:20
By default, everything is started to be linked. By default, yeah, these are the defaults, but you can easily adapt it. So in Debian, of course, we have dynamic linking. We have the binaries, we have, so shared library for link capacity. So, yeah. One is if you never use the tape system,
49:45
it is good enough to know how to separate the package. How to put fonts together, you can never run tape before. You can check, oh, that's a new system that I, it's just, if you come from Windows, and I say, oh, this is a new system, now, it's still a distribution,
50:01
I can't tell you what it's all about. How do you set up a system with new units? And tape is a big infrastructure, we've got lots of rules in here. Which relate to each other.
50:28
No, no, no, no, no, no, you mess up two things.
50:40
The binaries are committed to our subversion repository because we need them for our distribution channels. But health life, I see it, health life has its own installer, which you can, everyone, even a user without root permissions, can install it in its home directory or running health life, it's no problem. And for this, we ship binaries,
51:02
recompile exactly what you need. These binaries have to be in the subversion, it's not okay to submit from this subversion. But the distributors, like I, as DBM, you know, the DBM that I have now, I don't use these binaries, I am not allowed even to use them, I have to build them on my big machine,
51:21
and you use the newly built binaries in DBM, especially because there are many architectures or architectural limits combinations that are not supported by the binaries that we support in that life. So, you have to repeat it. The binaries we commit to the subversion are purely our distribution channels,
51:42
and we have to shoot them because we want people to be able to keep the start and get the running system. And that's of course difficult because I mean, we provide our binaries for the Linux on the oldest machine and the oldest OS we can find, because otherwise someone cries,
52:01
oh, I cannot find GBC2 or whatever, some library. So, yeah, that's fact, unfortunately. So that's the reason why the compile that binaries we have to ship are mostly statically linked, are mostly fixed and ready, but the distributor should not, never, never, never use them. I mean, actually, even if it was forbidden,
52:22
they would be rejected out of there. Any other questions? Good, thanks.