Opravdu je to znát. Používáme Gentoo na stavbu různých embedded mini systémů, takže solver pracuje s těmi nejdivočejšími scénáři (cross-compilation, velmi různorodé USE flags, různé privátní patchsety) a už s prvními -3.* verzemi nám klesly CI časy na polovinu (samotná kompilace je blesková protože 64 jader, emerge jede v jednom).
Bohužel to sdílet nemůžu. Malý mimopražský think-tank který dělá embedded vývoj pro různorodé (malé i obrovské, soukromé i státní) zákazníky s orientací na bezpečnost a spolehlivost. Vše pod NDA, nově i něco pod PT (přísně tajné, ale žádní mimozemšťani, jen naprosto zbytečná byrokracie, aby se neoprávněná osoba nedozvěděla, že PLC komunikuje IP protokolem verze čtyři!).
Praxe je monotónní, v podstatě je to vždycky i.MX6 SoC na různě vybavených deskách, vyrábí se to v malých sériích (stovky ks). Pracujeme často s vlastními staršími produkty, protože nově vyvinutá deska jde na zkoušky/certifikace (teploty, vibrace, radiace, ...) a teprve potom, třeba i po roce, se reálně začne dělat na aplikaci.
Původně jsme to měli postavené na Exherbu, mimochodem :-) toho času tam byla cross-kompilace mnohem propracovanější. Gentoo za poslední roky ale neskutečně pokročilo, a tak jsme během první vlny covidu udělali čistku.
Exherbo byla zajímavá distribuce, jeden čas jsem ji chvilku používal. Potom jsem zjistil, že v sice Gentoo si musím nabalíčkovat každý pátý program, ale v Exherbu každou druhou věc. A tak přišel čas na pá-pá (neboť v té době mělo Exherbo asi 5 vývojářů, něco jako Gentoo dneska).
Co se týká i.MX6, jste docela blízko MNT Reform a Librem 5, ale ty nakonec šli do i.MX8
A v jakem stavu se dostava to distro do zarizeni? Je to full-blown Gentoo nebo jedete nejaky embedded build (davneji neco existovalo, ale pak snad ta vetev umrela?)... nebo si to cistite od nepotrenych veci az po zbuildeni?
S tim souvisi taky - zda je to cross compile stage 1, nebo jedete nejaky zpusobem chroot/qemu?
7. 9. 2020, 21:51 editováno autorem komentáře
Do zařízení to jde osekané na kost, nejdřív jsme měli hooky v Portage co trochu pročistily /image/ než se to nasypalo do /, ale teď už tohle neděláme. Postaví a otestuje se systém, načež z něj mastering skript vyzobe jen ty soubory, které potřebuje. Pracuje s listem věcí (binárek, souborů), co má vzít, a sám si dohledává závislosti (ldd dá seznam knihoven, podle basename najde související věci v /usr/share atd.).
Produkt má blíž k systému s busyboxem, read-only rootfs atd.
Cross-compiling prošel vývojem, ustálili jsme se na dnes doporučované Gentoo metodě, tj. crossdev a $TARGET-emerge wrapper kolem cross-toolchainu. K tomu qemu-user kvůli balíčkům, co během kompilace něco nativního spouští.
7. 9. 2020, 22:40 editováno autorem komentáře
První půlka 2010s byla krize, Gentoo byla kopa rovnáků na vohejbáky a drželo to pohromadě silou vůle. Paludis v Exherbu byl opakem, striktně se držel specifikace a nutil upstream opravovat svoje prasárny. Pak se vývoje Portage chopila nová vlna lidí, hodně se zapracovalo na předvídatelnosti a dodržování EAPI, zjevně se v mnoha věcech inspirovali v Exherbu... Portage je teď všestranný nástroj s dokumentací a oficiálními způsoby, jak dělat věci, už to není "tohle zakomentuj v /usr/bin/emerge" :-) a naopak Paludis už v Gentoo není.
Namátkou konkrétně jde o @sets, konfigurovatelné repozitáře (dřív byl jen jeden repozitář plus "overlays" :), přesun adresářů na správná místa (např. dřív byl strom v /usr/portage (!), dnes je správně ve /var/db/portage), modulární konfigurace (už není vše v jednom obřím make.conf souboru)...
nejak jsem nezaznamenal presun stromu z /usr/portage do /var/db/portage - mam /var/db/pkg, ale to je neco jineho. eapi se proste vyviji tak jako temer vsechno. kdyz se podivate na svoji praci pred 10 lety, delal byste to dnes stejne? tim chci rict, ze jsem jako uzivatel gentoo nepocitoval tyhle utrapy, ktere popisujete i kdyz chapu, ze gentoo developera to mohlo stvat.
ja pouzivam gentoo od roku 2004 (nebo mozna dokonce od 2003) a to vyhradne, jen si sem tam odskocim k macu, kdyz potrebuju notebook. na gentoo ocenuji, ze jako jedno z mala dister nenuti pousivam sytstemd, coz povazuju za do nebe rvouci paskvil, ale to uz je na jinou debatu. jeste ze to gentoo mame :-)