Subtitles for LinuxDays 2016 - Building a free software based development environment - F. Preinstorfer

14   0   0  
  Pause sub
takže děkuji za účast na mé
Prezentace budu mluvit o
budování svobodného vývoje softwaru
životní prostředí nebo potrubí pro malé
Firma v podstatě je to část toho, co jsme
máme a jsme vybudovali v průběhu posledních tří
let v naší společnosti
jmenuji se pěstování rostlin těžší, že jsem
systémový inženýr v malé rakouské
startup společnost a my laboratoř
zkušební zařízení pro celulózy a papíru
Průmysl tak v podstatě stavíme zařízení
že bychom prodávat zákazníkům a těm
Zákazníci ji použít k testování některých aspektech
z např.papíru tak jeden test case
by bylo, kolik vody může kus
papír absorbovat druh zařízení nic
Zejména ozdobný z technologického bodu
z pohledu používáme převážně C ++ takže většina
z měkké až třetina je psáno v
c ++ pak je Python 3 a
samozřejmě glukóza, že budete potřebovat
Všude by v podstatě nadšení a
všechny 15
věděli jste, než ve skutečnosti chtít
mluvit o plynovodu bych rád
představit některé z požadavků, které
jsme měli a ty jsou jen některé z nich
Myslím, že je důležité, aby se váš
pocit z toho, co je požadováno minimálně
pro náš případ užití tak jeden důležitý
požadavkem bylo mít podporu v režimu offline
naše společnost sídlo se nachází ve městě
Rakousko na venkově a že je
skutečně pěkné, když se podíváte z okna
a to můžete vidět zelené trávě v
hory a v podstatě je to ten případ
ale není to výhodné v případě, že chcete
Správné připojení na internet, takže máme
pomalé připojení k internetu a poněkud
šlehat chcete, abychom lépe nespoléhat
příliš mnoho na internetu, který by byl
že by bylo dobré pro nás
Další věc, která známe z minulosti
to, že je velmi prospěšné, že nebude
nezávisí na jednom stroji vývojáře
Někde jsem si jist, že většina z vás
slyšel
příběhy nebo to viděl se svým
vlastní oči, že některé laptop nějaký stroj
v nějaké kanceláři od některých developer
ve skutečnosti nejdůležitějším aspektem
společnost, protože bez těch,
Bez tohoto notebooku Některé produkty mohou
být postavena kdekoliv
Nevím, jestli někdo je tak všechno
takhle, ale já jsem je viděl a oni
Není to skvělé, že tak jsme lepší
na to připravit
Jiná věc je, že by mělo být snadné
použití a snadné použití znamená, že bychom měli používat
nástroje a my bychom měli poskytnout vývojářům
nástroje, které jsou pohodlné s
takže pokud používáme si to by bylo skvělé
v případě, že vývojář může komunikovat s
potrubí a organizovat potrubí nebo
většina z potrubí jen pomocí GET
fér
a jiná věc je, že by mělo být
pochopitelné, myslím, že je to docela
důležité pro vystavěného prostředí, které
aby uživatelé mohli pochopit, že ne
Potřebuji se dostat dostat všechny Eternity velký
Podrobnosti o tom, ale měli byste se podívat
na to a oni by měli říkat v pořádku, vím, že
postaven tento balíček a to šlo z toho
Stroj na tomto stroji tento stroj a
to se stalo, že by bylo, že by se
být fér
a také s pochopitelná
Plynovod znamená, že to je také jeden hackable
tak to může být lze snadno modifikovat a
Hodnota upraveného podle potřeby chci dát
jste velmi minimální přehled o tom, co jsme
mít
to je daleko od bytí kompletní, ale to
obsahuje nejdůležitější aspekty, které
jsou potřebné pro tento 20-ti minut talk, aby
Dám krátký úvod do
všechny díly tady a pak budu
poskytnout vám s některými případy použití v zájmu
dostat svůj pocit z toho, co je
je to možné, takže chceme začít u
Dno zde vlevo, kde máme
developer notebook může být cokoliv,
linux počítači se systémem Windows box mac box
bez ohledu neexistuje žádný určitý požadavek
Na takovém stroji v podstatě vývojářů
by měl cítit pohodlně
se dostat svou práci, takže možná 90
maybe maybe max a některé řízení verzí
Systém by byl by mělo stačit, aby si
začal odtamtud jsme se rozhodli jsme se, aby
pick dostat kolo jako našeho jako úložiště
server pro správu nebo socialismus verze
řídicí systém, protože jsme ji používat
vnitřně hodně jsme to a jsme rádi,
myslím, že je to tady zůstat, takže čteme
takže jsme přišli, že by bylo skvělé, kdyby kdybychom
něco, co zřejmě podporuje
get a také umožňuje vývojářům použít
Zbraň čelit, pokud budou chtít, protože
někteří vývojáři nemají pocit, že záchrana
s s s příkazového řádku a možná
některé úkoly jsou poměrně snadné dělat na takové
webové rozhraní, takže jsme přišli na to by
bylo dobré kolo by bylo by bylo skvělý
Nástroj tady a my jsme docela spokojeni s
Volba vlastně tenkrát, když jsme
Vše to začalo, bylo to trochu drsný, ale
Teď to cítí to je docela dost
docela dobře použít, ze tam jsme se vydáme
se k nádrži je tady v prostřední
Zde jsme vybrali Jenkins, protože jsem byl
na to zvyklí a Mike / procesu cokoliv
práce
pořádku a je to svobodný software, je to v pořádku
použitím Jenkins někdy možná vás
Jenkins by vám některé bolesti hlavy pokud
vy, pokud nechcete použít jako master pouze
Systém takže vás, pokud chcete používat Jenkins
radši ujistěte se, že používáte sestavení poznámky
a nestaví nic na Jenkinse
Samotný nechat Jenkinse všem
orchestrace a všechny ostatní
tam vykazování a tvorbě a bude
tam bude stačit, ale provést
Vychází z jiných strojů, a to je
kde máme několik build nos právo
Zde zákon věci stavějí C ++
Projekt python projekty běhají jednotku
Testy dělají integrační zkoušku cokoliv
je potřeba
odtamtud museli jsme se k námitce a A
námitka je Debbie n verzi kompatibilní
um server úložiště, takže jsme se rozhodli
dodávat náš produkt jako soubor Debianu
balíčky a to je nejpřirozenější a 22
loď balíky v tak i při společném
pravidelná debian úložiště, a tak budete
potřebovat nějaký nástroj pro zpracování balíků a
některé z nich jsou k dispozici, a budeme držet
s prosbou, protože si myslíme, že ani v naší
zažít to zapadá náš případ použití nejlépe tak,
je to myslím, že je napsán a jít
zralý myslím, že ano a je to docela šikovná
k použití má mnoho funkcí a já
myslíš, že získat většinu knihy vlastně
provádí na pravé straně se odpaří
pravá strana o tom tady vás máme
krátká tečkovaná čára znamená, že některá
Síť segregace takže máme většinu
tohoto poplin v naší interní sítě
nebo dokonce všechny z nich většinu z toho a na
Na pravé ruky na vnějším
Síť máme několik vnějších zpětných zrcátek
a že je v podstatě motor X, takže motor
sekera je porci úložiště pro naše
Zákazníci a máme více instancí
z toho tady tak jo Vynechal jsem některé
o vtipné věci skutečně a některé
užitečná věc pro příklad také
mají překlad serveru, takže překladatelů
může skutečně přeložit celý náš
software pomocí jediného jedinou strukturu
Rozhraní používáme webové stránky pro to, ale
je to ve skutečnosti je to hezké, že poskytuje vaše
twitter bootstrap webového rozhraní je to
poměrně snadné použití, ale není to tak
důležité pro ty řeči, ale jen proto, aby
dát vám představu, že to je opravdu
Nejdůležitější složky z
Popelín takže chci, aby mohli začít s
use case a tento případ použití je vybudovat
a uvolnění
stabilní kus softwaru, takže předpokládáme,
že developer zde na svém notebooku
má jeden úložiště a obsahuje
stabilní verze softwaru a také
má všechny informace o debian package
v něm tak toto úložiště je v zásadě
připravený na výstavbu v pořádku, takže to, co developer
je třeba udělat, je v podstatě zavázat svého, aby
zavázat aktuální stav z
úložiště na pobočku uvolnění v tomto
Případ i říkat uvolnit nyní zjevně
tam může být mnoho více, ale za to
Příkladem uvolňuje dost az dobrá
tam celou developer musí udělat, je
tlačit tohoto zdroje získat lásku a dostat
up je nejen vstup do této
potrubí, ale také potřebuje, nebo je ten,
stroj, který je ve skutečnosti zodpovědný za
archivaci veškerý zdrojový kód, takže pokud máte
mají zavazuje na větvi uvolnění a a
na větvi, že by mohlo být potenciálně
odeslány k zákazníkovi
že by bylo velmi vhodné, pokud uděláte
jisti, že tento dopustit nikdy pokračuje
zase pryč
takže si, že vám poskytuje funkci
která se nazývá ochranné poboček a
můžete nastavit jej na projektové bázi
na projektové bázi a vám to umožní
chránit některé větve z bytí
vypouští az nuceni Push to tak,
které mohou vývojáři mohou vyřadit může
vyřadit větve a odtud jsme měli
více než 22 Jenkins v podstatě dostat kolo
upozorní Jenkins o změnách
Některé úložiště pomocí použití, které
Kniha takže to je kámen, že
Standardní funkce get lab API ji
v podstatě upozorní Jenkins Jenkins hej I
mají nějaké změny zde možná budete chtít
něco udělat s ním
tak Jenkins na své straně má obrovský seznam
projektů, které staví staví na
Příklad C ++ projekt poboček uvolňováním
buduje python projekt as noční
verze what-cokoliv Jenkins v zásadě
ví, jak stavět věci, tak to bere
Informace z dobré kolo a oznámení ok
jedná se o c ++ projektu, a to je ve skutečnosti
přicházející z větve uvolňování, takže bych měl
vybudovat uvolnění v podstatě tak, Jenkins
Pár kroků a jsou v zásadě
výběrem jedné z sestavení neposkytuje
vestavěný čisté sestavení prostředí děláme
nesdílí žádnou vystavěného prostředí napříč
směnky, takže jsme se ujistil, že každý software
každý paket je postavena-in, jsou v čisté
a minimální prostředí, pokud jste
zájem jsme pomocí debian Jenkins
záchytný bod pro které je to pěkná sada
v podstatě shell skript, který abstraktní
pryč hodně natvrdlý a kostrbatý
Podrobnosti o balíčkování používali, když
Používáte Jenkins Jenkins zúčtuje
Balíček nebo vestavěný zdrojové poukázky na
stavět binární balíčky běží testy na
balíčků a po sestavení uzel
to udělal shromažďuje všechny výsledky,
sbírá stavitel artefakt a to
poskytuje uživateli s něčím, jako
grafy a zprávy, že to, co všichni
chce mít, takže se jedná o skutečné
místo, kde developer může podívat na
Současný stav tohoto projektu, takže můžete
podívejte se na něj a říkají, jo to je
Dvacáté vybudovat balíček jejích
stavitelé čistý máme 20 unit testy a
a on dokáže rychle se podívat na
že i při stavu, a tento je
Také místo, kde si můžete přizpůsobit
poměrně hodně, takže pokud například postavena
dokumentace kyslík tam jsou některé některé
varování a kyslík nebo v kyslíku
účet
zamknout, že chcete, aby se budete chtít
aby se podívat na tento a podávání zpráv a
a grafů funkci Jenkins bude
tím pravým místem, kde si představit takový
Změny takové detaily, takže předpokládejme
že budova úspěšné a jedním z
že sestavení artefakty je ve skutečnosti binární
Balíky nebo debian balík od
tam
Jenkins vezme balíček a hodí ji do
prosba a námitka se podívat na
Příchozí balíček a stavba
informace, které se dodává s ním
a vývěsní oznámení
ok to je to vypadá uvolnění
Balíček proto, že to přichází od A
větev propuštění z původního get
zavázala dostat větev uvolnění, takže to
říká v pořádku, vím, jak se vypořádat s
uvolňuje Chystám se ho vzít a dát ji
do mé nestabilní distribuci nebo
úložiště pro které pro tuto záležitost, takže
to znamená, že jeden nebo všechny balíky
které jsou postaveny v podstatě nadívané
do jednoho okna repository námitku
Distribuce máme několik z těch,
a já chci jen velmi rychle překonat
nebo přes různých distribucích
máme máme například nestabilní my
mají testování a mají stabilní a
ty slouží různé případy použití, takže
nestálý je distribuce, která
Balíčky jsou hozeny do celou dobu tak,
v případě, že developer vytvoří novou verzi
jakýkoli obal je plněná do nestabilní
Nyní v určitém okamžiku v době, kdy jste v podstatě
chtějí dodávat software pro zákazníky
jinak byste brzy ven
business tak na jednom místě v čase I
developer musí rozhodnout, jo to je
dost dobrý, aby v podstatě dostat do
Zkoušení a testování znamená, že naše
Testování Oddělení QA oddělení může
začnou se podívat na aktuální
stav z
sluchové takže tým může být například
testují, zda nainstaluje z toho
Úložiště fungovat, pokud aktualizace fungovat, pokud
balíčky jsou-li funkcí kompletní
Pracujete-li všechny krabice, které jsou
zapotřebí jsou vlastně va jo
odtud požadujeme Q18 na
v podstatě nástupu do zaměstnání Jenkins a Mark
testing jako stabilní a
stabilní znamená, že je zrcadlí na
externí úložiště na externí
zrcadla, takže jakmile je člen QA říká v pořádku
Tento tato verze testování
Úložiště je dost dobrý, to může být
dodávány zákazníkům dokáže uvádějí na trh
stabilní a vše je tanec mimo
mimo úložiště, takže se jedná o
kompletní sešlý na na celé
potrubí a chci se jen rychle dostat
na s jedním nebo dvěma dalšími případy použití jako
dobře, aby vám dojem z
co je to, co je možné,
takže než jsem chtěl rychle shrnout my
mají zdrojový balíček stabilní rameno s
balíčkování informace v ní my
poslal tento balíček, aby si mohli dostat kolo
se všimli Jenkins Jenkins build
software máme binární Debian
balíček, který je v současné prosbou a
jakmile se kape dolů potrubím
přes nestabilní testování a stabilní něj
Dříve nebo později budeme hit zákazníka
v určitém okamžiku, a obvykle při které
se stane, že zákazník bude hlásit okno
doufejme, že dělá v našem případě tak učiní
pojďme dál s jiným příkladem a
předpokládejme ok takový zákazník hlásí
Buck a předpokládejme, že ok
A manuálových stránek chybí z Debianu
zabalit ty prachy obvykle nedostanou
hlášeno ale předpokládejme, že pro toto
Příkladem, že je tak developer je
pověřený OK se prosím u meziměsíčního stránky do
Tento balíček a teď dělá vytváří
hluchý pobočka v podstatě hluchá a vyzvednout
jakýkoli název by mohl být hluchý balení pro
Příkladem a pak se začne pracovat na
balíček a teď šlo evidentně
stavět všechno sám se mohl
vybudovat byly zabaleny místně tady na
celý test jednotky místně kontrola Picard
kód pokrytí místně všem
věci, ale není potřeba, protože on
Můžete také tlačit tento personál tato smrt
obalů pobočku zde jen proto, aby vstát
Znovu a nechte lásku dělat práci za něj
nebo se tento plynovod dělat práci tak,
vstát opět všimnout Jenkins Jenkins
ví, jak vytvořit balíčky přijde
z jiné větve, ale není opravdu
ohledu na to, tak to vytváří balíčky a znovu
Jenkins řemesla a podávání zpráv, takže uživatel
může docela poměrně snadno spatřit například
Incheon upozornění a lynčování je nástroj
že budete chtít použít v případě,
používáte Debian balíčky je to je
Linter pro Davida sety a je v jejích silách
vás bude upozorňovat na věci, jako je v pořádku je tu
binární v tomto obalu, a to chybí
muž strana, takže předpokládejme, že dnes ráno
Je není pryč a účet je vybudovat
its ok a tak vedle grafů a
Hlášení také musíme mít
debian balíček a v tomto okamžiku je
opět vržen proti námitce a ošklivý
říká, že je to v pořádku, že je to balíček debian
ve skutečnosti je to pěkné, ale to přijde z
někteří větev že nevím to vypadá
jako to přichází z def balení
Neberu to tak, že v podstatě házet
to pryč, takže by se dalo říci, jo to je
To je poněkud nesmyslné příklad
ano, ale to je základem budovy
další věci, na vrcholu, které jsou turn
ukázalo být velmi užitečné, až budete mít
je například použití tohoto toto
potrubí a pomocí jediného bodu A
námitka se rozhodnout, zda balíčků
by měl zasáhnout úložiště umožňuje
že věci, jako je v pořádku, co můžeme udělat v noci
přestavět všech balíčků Debianu na kterékoli
Čas se nikdy zasáhne jakýkoli úložiště
ale můžeme spatřit věci, jako je zmena
PIS nebo gone balení nebo rozbití
balené s těmito takových případech
Další zajímavé faktory a já chci
prostě velmi rychle skočit na to
proto, že jsem už v průběhu času, ale právě
aby vám dojem
To také umožňuje zajistit používání
Případy, jako proč ne vytvořit speciální
Distribuce na appletu serveru
se nazývá def obal a pokud narazíme
takové jiné pozitivní, pokud v případě, že
Balíček hity takový úložiště pro to,
přejít na obalu smrti je tato
V tomto příkladě, takže nejde moc
nestabilní to jít mít obal
a odtud budeme mít pravidelný kabinu a
úložiště, takže jej lze použít interně
podle QA oddělení může být používán podle
vývojáři sama o sobě a to umožňuje
Příkladem dělat velké refaktorování, aniž
lámání nestabilní po dobu dvou měsíců, nebo
tři měsíce, protože může vývojář
vyzvednout jeho zdrojový balíček, který chce, nebo
jakýkoli údajů, který chce proniknout na něj
a tlačit, aby se zavázaly není nepustit
větev, ale do známého vývojové větve
a všechny balíčky, které spadají mimo
Tento známý vývojová větev zasáhla toto
Velmi úložiště a nikdy
někdy jít k zákazníkům, ale že by
umožňují nám některé neméně skvěle interní
Testování a jakmile refactoring se provádí
práce může prostě být sloučeny do
uvolnit praxi a máte první
případ použití zase tak samozřejmě můj čas je
nad právě teď chci jen velmi
rychle přejít přes jít přes několik
lekce, které jsme se naučili
Možná, že jsou užitečné pro vás budu
skvělé, kdybych je znal před
První z nich je lépe ujistit, že
jste opravdu snadné použití a potrubí
snadno použitelný prostředek pro vývojáře bod
zobrazit, pokud používáte dostat do vaší firmy
Ujistěte se, že potrubí je
kontrolovatelné a použitelné jen získat tak
pokud máte, pokud budete potřebovat váš
vývojáři nastavení Jenkins pro jejich
Vlastní software stavba, která by mohla být
problém, protože někteří vývojáři to ani v případě
je to politika společnost, která by měla Jenkins
být použit pro vybudování někteří vývojáři
řekne jo jsem to ignorovat
jemné jiní budou říkat ano, jdu
trvat Jenkinse pro stavbu, ale nikdy jsem
Slyšel unit testů, a je mi to jedno
o grafy asi unit testy ok pokutu
ty ostatní budou říkat v pořádku, vím, jak
jak analyzovat výsledky testů jednotka Che
s Jenkins, který je dobrý a že je spokojený
ale zapomněl, že tam je například
pokrytí kódu, stejně tak to by bylo
velký, aby se ujistil, že můžete
abstraktní pryč od developera a vámi
nevyžadují vývojář na konfiguraci
Jenkins může se podívat na to
žádný problém, ale v podstatě je to lepší
zajistit pro něj myslím, že je
důležité, aby se služby a provoz
real rychle, takže nejsou nestaví vše
funkce, které si myslíte, že jsou
důležité nebo užitečné, ale začít s
Nejdůležitější z nich, a zajistit, aby
Požadavky na změny v průběhu času mmm
se mění velmi často častěji a
radši připravte se na to a
Myslím, že nejlepší přípravou na
měnícím se požadavkům je pro automatizaci as
nejvíce a automatizace znamená ok
Jsem použít ansible použití loutek kuchaře
co budete muset udělat svůj server
konfigurace ale ještě nekončí
protože například dostat hlasitý poskytuje
API byly všechny projekty con mohou být
nakonfigurován programově, takže je tu
není potřeba projít nastavení
několik set projektů a vyžadují a
a členství editovat skupina nebo editovat háky
nebo něco takového, který může být
automatizované pryč, a že by mělo být
automatizovaný způsob
Jiná věc je, pokud používáte Jenkins
tam projekty, jako Jenkins výstřelu
stavitel Nevím, jestli je to v případě lidí
vím to, ale myslím, že je docela užitečné
protože máme málo Nehodlám
tisíc kontrolu obchodů a měnící
jednotlivé díly úlohy nás vyžaduje,
minuta to udělat ručně, a ty by mohly
bavit v příštích dvou týdnů, takže pokud
Používáte sadu pomocí Jenkins ujistit,
nikdy se nedotýkejte konfigurační rozhraní
z toho kromě testování a samozřejmě
Poslední bod je lépe zvolit svého
nástroje moudře
jsme začali s dalším úložišti
Server a bez matchup mnohem
Vyhodnocení protože jsme si mysleli, máme v pořádku
znám ho z minulosti a je to v pořádku, že to
dělá svou práci, ale my jsme hit omezení
poměrně rychle a vlastně, když vás
vytvoření takové potrubí integrace přijít
v průběhu času a vy myslíte, že to je v pořádku
prostě nikdo k úhoně na ně ten,
debian server úložiště nemůže být
tak těžké vytrhnout, že nahoru, ale ve skutečnosti v případě,
Existuje pět dalších služeb, které
Závisí na tom a nějakým způsobem integrovat s
Je to dostat se dostane ošidné
ok, takže je to z mé řeči děkuji
moc za poslech
Máte-li jakékoli dotazy
Můžete je požádat svého informátora čtyři
minut nebo můžete najít kontakt
podrobnosti o mé webové stránky
OK, díky
Ano prosím
podívejte dolů chtěl jsem se zeptat
Kromě těchto nástrojů pro vývojáře jsou
Existují nějaké další kusy svobodného softwaru
pouze z našich dalších aspektů
vaše firma jako účetní jádra
odběratelských vztahů možná ani projekt
Vedení výborná otázka
jsme v současné době migraci pryč od
proprietární plánování podnikových zdrojů
Systém na svobodný software jedna je
volal Triton Já nevím, jestli jste-li vás
vím, že přímo na by bylo přinejmenším
nástrojem, který nás právě teď myslím
Nejsem si jistý, myslím, že se to jmenuje nového
zdraví, který je postaven na zkoušel tak
budete chtít hledat nové zdraví
získat ukázky a podívat se na to, co bylo
možný
ano, prosím, já potřebuji pro prezentaci a
přezkoumat některé sjednoceny do větvení modelu
vychovávat něco podobného pro druh
že máme my mít větvení
modelovat ano a je založen na uvolnění
Jména interně tak to je ten, který jsem
zde představen je vlastně docela
minuta fide jedno máme neomezené Hard
vysvětlit
Takže v podstatě máme máme zprávy
jednou za několik let, nebo to nemusí uvolnit se
jednou za několik let, že na to, že mají jména
a pod tímto jménem jsme vydali
větve a máme rozvoje
větve a máme obalové pobočky
a všechny takové věci, takže ano, co děláme
a pokud máte zájem přijet ke mně
poté a já vám vysvětlí podrobněji
tobě
jo vítány
ano, prosím, jo, jak se vypořádat s
jako dokonce opravdu starý učitel nebyl
jako tři týdny
snažte se jej integrovat s kapelou
povolený jako týdenní nebo prostě rád pokusit
sloučit tyto staré větve na novou verzi
Které další funkce přidané Unikátní
ve způsobu, a které mohou způsobit jiné
druh boxu
ok, takže otázka je, když jsme, když jsme
má takové dlouhé větve rozvoje, které
užíváme a pak budeme baleny
odděleně ať už je sloučit zpět
a vlastně ano, my jsme v podstatě
rebase tak ať dopadne na vývoj
větev nezáleží na nás, takže jsme r
existuje mnoho mnoho výborů, které jsou
spravedlivé pracovní věci pokroku takhle
a jakmile se dostanou zpět na master nebo
větev uvolnění oni jsou obvykle rozmačkaný
do logických commitů s řádnou spáchání
zpráv a pak se celý plynovod
přestavěl nebo software je přestavěn tak,
co nemáme dělat, je nebereme
Vývoj balíky, které hit
Vývoj úložiště a přesunout ji do
nestabilní nebo stabilní úložiště, takže jsme
Ujistěte se, že vše staví skutečně používat
Cesta s verzí tam, takže jsme
Nikdy vzít binární balíky pro
hluchý pro co jsme všechno, co jsme vždy
přestavět druh věcí
OK

Share this subtitle



Description