Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
TeXlive je možné instalovat jako balíček v linuxové distribuci nebo přímo ze stránek TeXlive. První řešení je přímočařejší a snadnější, má ale nevýhodu: dostanete na disk ne zcela aktuální verze programů a maker a nemůžete využít to, co se skrývá za slovem „live“. TeXlive sám totiž sestává ze skoro šesti tisíc vlastních balíčků, mnohé z nich se vyvíjejí a upgrady nových verzí balíčků jsou k dispozici na síti i několikrát týdně. TeXlive je živoucí organismus.
Jednou ročně (obvykle v květnu) po větším upgradu je přeznačena verze TeXlive na aktuální rok a je vytvořen DVD obraz, který je vylisován pro účely archivace a rozeslání členům TeXových sdružení jako suvenýr (k čemu jinému by to potřebovali). Autoři linuxových distribucí pak tyto obrazy přebírají a dělají z nich balíček. Při té příležitosti někdy přiohnou některé výchozí konfigurační parametry (umístění souborů, koncepce vyhledávání atd.).
Pokud se rozhodnete instalovat TeXlive přímo, stačí stáhnout
instalační skript a spustit jej. Je
to perlovský skript install-tl
, který nabídne na terminálu v textovém
módu možnost výchozího nastavení základních parametrů, umožní stanovit rozsah
instalace a spustí samotnou instalaci jednotlivých balíčků ze sítě završenou
automatickým vygenerováním potřebných formátů. Výhodou tohoto postupu je, že pak
kdykoli je možné upgradovat jednotlivé balíčky z TeXlive pomocí nástroje
tlmgr
a udržovat tak nejnovější verze softwaru.
Linuxový uživatel musí při přímé instalaci TeXlive počítat bohužel také s nevýhodou: jeho systém není zpraven o tom, že je TeXlive instalován, takže při instalaci jakéhokoli dalšího linuxového balíčku se závislostí na TeXlive mu jej linuxová distribuce nainstaluje znovu. Vzniká poněkud chaos.
Jako každý obvyklý balíček sestává i TeXlive z binárních programů
a dat. Mezi binárními programy najdeme nejen TeXové klony (pdftex
,
luatex
, xetex
), ale i spoustu dalších obslužných programů.
Některé z nich jsou uvedeny v následující tabulce.
afm2pl, afm2tfm | konverze metrik PostScriptových fontů formátu Type1 |
bibtex, bibtex8, bibtexu | seznamy literatury generované z bibliografických databází |
biber | nástupce bibTeXu, o řád komplikovanější |
ctangle, cweave | manipulace se zdrojovými soubory .cweb |
dvitype | extrahuje příkazy z dvi do čitelného formátu |
dvitty | extrahuje text dokumentu z dvi |
dvidvi, dviconcat, dvibook, ... | konverze z dvi a modifikace dvi |
dvihp, dvilj | konverze z dvi do jazyka tiskárny |
dvips | konverze z dvi do PostScriptu |
dvipdfm, xdvipdfmx | konverze z dvi do PDF |
xdvi | jednoduché prohlížedlo dvi v X Window Systému |
gftopk, gftype | manipulace s bitmapovým formátem fontů PK (zastaralé) |
fmtutil, fmtutil-sys | nástroj na udržování předgenerovaných formátů |
fontinst | instalace fontů v Type1 formátu pomocí virtuálních popisů |
httex, htlatex | převod dokumentu do html, xml |
kpsewhich | trasovací nástroj pro vyhledávání dat |
makeindex, xindy | starší a novější nástroj na sestavování rejstříků |
mf | Knuthův Metafont |
mktexlsr = texhash | obnovení vyhledávací databáze pro kpathsea |
mktexpk, gsftopk, ps2pk, ttf2pk | manipulace s bitmapovým formátem fontů PK |
mpost | Metapost, rozšíření Metafontu s výstupem do PostScriptu |
musixtex | sazba not |
patgen | generování vzorů dělení slov ze slovníků |
pstops, psbook, psselect | konverze a modifikace PostScriptu |
t1asm, t1disasm, t1... | konverze a manipulace s Type1 formátem fontů |
tangle, weave, tie | manipulace se zdrojovými soubory .web |
texconfig, texconfig-sys | nabídka základní konfigurace TeXlive |
updmap, updmap-sys | obnova .map souborů, konfigurace Type1 resp. TrueType fontů |
vlna | doplnění vlnky za neslabičné přeložky |
Zajímavost: zhruba v roce 2010 se z TeXlive vytratil klasický Knuthův
TeX. Binárka pdftex
jej totiž dokáže nahradit docela věrně, když je
potřeba.
Data jsou sdružena do adresářového stromu označeného tradičně texmf
(ačkoli to dnes už nejsou jen data pro TeX a Metafont). Na první úrovni jsou
adresáře členěny podle charakteru dat. Nejpodstatnější adresáře ukazuje následující
tabulka.
bibtex | data pro BibTeX |
context | makra pro ConTeXt |
doc | veškerá dokumentace k balíčkům z TeXlive |
fonts | metriky fontů, virtuální fonty i kompletní fonty |
makeindex | data pro Makeindex |
metafont | makra pro Metafont |
metapost | makra pro Metapost |
source | typicky zdrojové soubory balíčků maker před konverzi Docstripem |
tex | makra pro TeX, tj. pro plainTeX, LaTeX, LaTeXové balíčky maker atd. |
web2c | konfigurační soubory, soubory s předgenerovanými formáty |
xindy | data pro Xindy |
I na dalších úrovních jsou adresáře členěny. Například adresář
fonts
obsahuje podadresáře podle formátu dat souvisejících s fonty,
viz tabulku.
afm | metriky PostScriptových fontů |
enc | encoding soubory vymezující 256 znakové výřezy PostScriptových fontů |
map | mapovací soubory propojující TFM s PostScriptovými fonty |
ofm | fonty ve formátu OTF |
opentype | fonty ve formátu OpenType |
pk | fonty v pravěkém bitmapovém formátu PK |
source | zdrojové soubory pro generování fontů pomocí Metafontu |
tfm | metriky fontů které čte přímo i klasický TeX |
truetype | fonty ve formátu TrueType |
type1 | fonty ve formátu PostScript Type1 |
vf | virtuální fonty |
Binárky jsou většinou slinkovány s knihovnou kpathsea
, což umožní
sofistikované vyhledávání dat. Tomu se budu věnovat za chvíli. Kromě toho
binárky TeXových klonů dokáží načíst formát podle názvu, pod kterým jsou
vyvolány (v terminologii jazyka C: podle argumentu nula, který si funkce
main()
převezme z příkazového řádku). Vysvětlím to na příkladě.
Představme si, že uživatel napíše:
latex dokument
Protože latex
je umístěn na některé z cest v seznamu proměnné
prostředí PATH
, něco se spustí. Můžete si ověřit, že latex
je
jen link na pdftex
, takže se spustí nakonec pdftex
. Ten pozná,
že byl vyvolán pod jménem latex
a zavede tedy před zahájením
činnosti předgenerovaný formát latex.fmt
. Pracuje tedy stejně, jakoby byl
zavolán pomocí
pdftex -fmt latex dokument
TeX potřebuje ke své činnosti najít zdrojový text dokumentu, použitá makra,
předgenerovaný formát, fonty, konfiguraci k fontům (tzv. map
soubor
a enc
soubory), obrázky, atd. Platí zlaté pravidlo, že toto vše
prvně hledá v aktuálním adresáři a pokud to tam nenajde, vyhledá to „někde
v distribuci“. Bohužel za slovy „někde v distribuci“ se skrývá poněkud
komplikovaný proces. Než jej aspoň částečně poodhalím, zformuluji kromě výše
uvedeného zlatého pravidla ještě další.
Stříbrné pravidlo: textový soubor je hledán TeXem nejprve tak, jak je
specifikován. Když není nalezen, připojí se přípona .tex
a je hledán
znovu. Takže třeba při latex dokument
je nejprve hledán soubor
dokument
v aktuálním adresáři. Když není nalezen, je hledán
dokument.tex
v aktuálním adresáři. Když ani ten není nalezen, je
hledán dokument
na prvním místě „někde v distribuci“, dále na témže
místě dokument.tex
, dále na druhém místě „někde v distribuci“
dokument
, dokument.tex
atd.
Koncepce prohledávání „někde v distribuci“ je zanesena do
souboru texmf.cnf
, jehož vyhledání je natvrdo zabudováno
do každé binárky slinkované s kpathsea
. Vyhledání
texmf.cnf
začíná v místě samotné binárky (tj. například
v /usr/local/bin
), postupně přechází k nadřazenému a dvakrát
nadřazenému adresáři a v každém patře se pokusí podívat také do
podadresáře share/texmf-local/web2c
, texmf-local/web2c
,
share/texmf-dist/web2c
, texmf-dist/web2c
. První výskyt souboru
texmf.cnf
použije. Můžete se do něj podívat také. Doporučuji podívat se
též do dokumentace ke kpathsea. Zjistíte, že způsob
prohledávání všech ostatních souborů je vysoce konfigurovatelný. V souvislosti
s obsahem souboru texmf.cnf
učiním ještě dvě poznámky:
Všechny proměnné použité v texmf.cnf
(například TEXMF
,
TEXINPUTS
atd.) mohou být nastaveny také jako proměnné prostředí. Pak
mají přednost před konfigurací z texmf.cnf
. Dále si povšimněte dvou
vykřičníků použitých jako prefix některých cest v texmf.cnf
.
V těchto adresářích není prohledávání přímé, ale jen prostřednictvím
předgenerovaného souboru ls-R
, který je potřeba po každé změně
adresářového stromu obnovit příkazem texhash
alias mktexlsr
.
Zapomenete-li na to a dáte „někam do distribuce“ nový soubor, nepřestanete se
divit, že ho TeX nemůže najít.
Aby toho nebylo dost, na počítači typicky existuje celý les texmf
stromů. Základní texmf-dist
obsahuje soubory z distribuce, při
upgradu se mohou změnit. Místní texmf-local
může obsahovat konfiguraci
správce systému pro všechny uživatele, která by měla mít přednost před konfigurací
v texmf-dist
a která není zničena upgradem ani odstraněním
TeXlive distribuce. Dále texmf-var
obsahuje přechodně generované soubory.
Uživatel může mít ve svém HOME
adresáři také svůj texmf
nebo
.texmf
, nebo .texlive-číslo-verze
atd. Tyto stromečky by měly
mít přednost i před texmf-local
.
Zdá se vám to příliš komplikované a náchylné k omylům uživatelů? Nejste
sami, mně taky. Připomíná mi to pravidlo: dejte vývojářům silný nástroj (jakým je
kpathsea
) a během krátké chvíle jej zneužijí tak, že se v tom
skoro nikdo nevyzná. Osobně sám často musím přistoupit k použití unixového
strace
a prozkoumat, jakým způsobem TeX šmejdí po disku a kde
všude hledá svá data, abych dohledal problém. S nástrojem kpsewhich
,
který je k tomu určen přímo v TeXlive, jsem se nikdy moc nekamarádil.
Je sice možné vytvořit formát *.fmt
přímým voláním odpovídajícího
TeXového klonu s parametrem -ini
a případnými dalšími parametry,
ale pak přibývá starost, kam výsledný soubor umístit, aby ho TeX našel. Uživatel
může být těchto starostí zproštěn, použije-li nástroj fmtutil
(pro
uživatelskou konfiguraci) nebo fmtutil-sys
(pro konfiguraci sdílenou
všemi uživateli udržovanou správcem systému). Nástroj pracuje s konfiguračním
souborem fmtutil.cnf
, ve kterém jsou parametry pro generování
odpovídajících formátů zapsány.
Dalším podobným nástrojem je updmap
respektive updmap-sys
,
který udržuje konfigurační soubory pro fonty .map
v podobě, které
rozumí pdfTeX nebo jiné obslužné programy (např. dvips
). Více napoví
příslušná manová stránka.
Uvedené nástroje jsou skripty (perl respektive bash) a volají se
z příkazového řádku. Chce-li uživatel volit z nabídek, je k dispozici
skript texconfig
nebo texconfig-sys
, který nabízí
v textovém terminálu výběr dalšího postupu při konfiguraci a zavolá nakonec
editor na správný konfigurační soubor nebo spolupracuje s dříve zmíněnými
nástroji.
Jak bylo řečeno, TeXlive obsahuje tisíce balíčků od stovek různých autorů, kteří mají rozličné názory na to, jak je možné jejich dílo použít a dále šířit. Často je tento názor inspirován Knuthovou licencí, která je něčím jako „patent na název“. Jinak si s tím můžete dělat v podstatě cokoliv. Myšlenka svobodného použití a víceméně volného šíření je společná všem balíčkům z TeXlive.
Je nutné si uvědomit, že „patent na název“ chrání i uživatele programu
a jeho částí (tj. např. maker) před příliš živelným vývojem, během kterého by
při odkazu na název makra (např. příkazem \input
) nebylo možné spolehnout
se v zásadě na nic. Na podobné myšlence je proto postavena i licence
většiny LaTeXových balíčků (LPPL). Lidem kolem Debianu se jeví tento přístup málo
liberální a měli velké potíže vůbec TeX a případně distribuci
všech dalších balíčků do svého licenčně ortodoxního systému zařadit. Na
základě toho probíhal docela dlouhodobý a hluboký názorový střet mezi
debianisty a TeXisty, který velmi podrobně shrnul Frank Mittelbach
ve svém článku. Chápu sice, že
se kdysi Stallman rozhodl proti svému „komerčnímu nepříteli“ bojovat jeho vlastními
zbraněmi (tj. licencemi) a jevilo se to jako docela účelné. Přesto osobně mám
na to jiný názor. Ale to sem asi nepatří.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: