Edison Design Group po více než 30 letech zveřejnil zdrojový kód svého EDG C/C++ front-endu. Ten proslul širokou podporou standardů C++ a kompatibilitou s dialekty kompilátorů od Microsoftu, GNU, Clangu, Sunu a dokonce i s prehistorickým cfrontem. EDG byl použit například v kompilátoru Intel C++ Classic, kompilátoru NVCC od firmy NVIDIA pro platformu CUDA nebo v našeptávači kódu IntelliSense v produktech společnosti Microsoft. Projekt nyní spravuje organizace The C++ Alliance a kód je dostupný pod licencí Apache 2.0, doplněnou o výjimky projektu LLVM.
Pocket Tank je malé kapesní virtuální akvárium postavené na vývojové desce ESP32-S3-Touch-AMOLED-1.8. Na dvoujádrovém mikrokontroléru ESP32-S3 s 8 MB PSRAM a 16 MB flash paměti běží jak simulace akvária, tak i malý jazykový model určující chování rybiček. Lokální model o velikosti 7,56 MB se 14 miliony parametrů vznikl destilací modelu Gemma 4 26B, tedy učitele s 26 miliardami parametrů. Kromě firmwaru pro skutečný modul s AMOLED
… více »Open-source nástroj Jevstiller vytváří (destiluje) malý lokální model, který se průběžně učí z odpovědí komerční služby Jev. Běžné dotazy vyřizuje přímo na vlastním hardware, čímž může řádově zkrátit čas odezvy a snížit provozní náklady díky menšímu využívání zpoplatněného API. Nejisté požadavky Jevstiller posílá do Jevu, rovněž průběžně kontroluje náhodná dvě procenta dotazů Jevem. Pokud se lokální model začne s Jevem rozcházet,
… více »Konference LinuxDays 2026 proběhne již tento víkend 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Konference LinuxDays 2026 znamená desítky přednášek a workshopů, zástup zajímavých osobností, místo pro setkání, spoustu nových nápadů a informací a stánky řady různých projektů: Fedora, openSUSE, vpsFree.cz, Mozilla, MacGyver - bastlíři SH, OpenAlt a mnoho dalších. Vstup je volný.
Microsoft oznámil, že WSL kontejnery (WSLC) aneb linuxové kontejnery ve Windows Subsystem for Linux (WSL) jsou již obecně dostupné. Současně popsal jejich architekturu.
openSUSE Leap 16.1 vstoupil do RC fáze. Nově lze instalovat jako standardní systém (Standard) nebo jako neměnný systém s atomickými aktualizacemi (Immutable). Samostatná neměnná distribuce openSUSE Leap Micro končí.
Byl vydán Mozilla Firefox 157.0. S nejvýraznější vizuální proměnou za poslední roky. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 157 bude brzy k dispozici také na Flathubu a Snapcraftu.
Rodina produktů Raspberry Pi se rozšířila o Raspberry Pi Smart Display Module. Deska pro Raspberry Pi Compute Module 5 se zasouvá přímo do displejů dle specifikace Intel SDM. Cena desky je 30 dolarů.
Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla
… více »lintianuscan a uupdatedget a dputpbuilder, builddlintianBez tohoto nástroje se určitě neobejdete, pokud budete chtít svůj balíček dostat do distribuce, protože to je první věc, kterou budou ostatní kontrolovat. Jedná se o nástroj pro automatické zjišťování chyb, které tvůrce balíčku spáchal. V poslední době prožívá poměrně bouřlivý vývoj, takže je vhodné používat vždy poslední verzi z unstable, protože jen tak získáte nejaktuálnější sadu kontrol.
Jak jeho výstup může vypadat, se podívejte na následujícím výpisu (jako příklad zde posloužil balíček, který jsem právě kontroloval):
$ lintian deejayd_0.6.3-1_i386.changes W: deejayd: spelling-error-in-description gstreamer GStreamer
První písmeno určuje závažnost problému (E - chyba, W - varování, I - informace, N - poznámka), následuje jméno balíčku (ať už binárního nebo zdrojového), tag chyby a případné podrobnější informace. Ve výchozím nastavení se informační hlášky nezobrazují, nicméně je dobré si je zapnout pomocí přepínače -I, protože většinou se stejně jedná o naší chybu. Dalším důležitým přepínačem je -i, kterým se zobrazí podrobnější popis nalezeného problému (pokud nám z tagu není jasné, v čem je vlastně problém). Kompletní výpis pak může vypadat takto:
$ lintian -Ii deejayd_0.6.3-1_i386.changes I: deejayd source: build-depends-without-arch-dep docbook-xsl N: N: The control file lists the given package in Build-Depends, but no N: architecture-dependent packages are built. If all the packages built N: are architecture-independent, the only packages that should be listed N: in Build-Depends are those required to run the clean target (such as N: debhelper if you use dh_clean). Other build dependencies should be N: listed in Build-Depends-Indep instead. N: N: Refer to Policy Manual, section 7.6 for details. N: I: deejayd source: build-depends-without-arch-dep python-central I: deejayd source: build-depends-without-arch-dep xsltproc W: deejayd: spelling-error-in-description gstreamer GStreamer N: N: Lintian found a spelling or capitalization error in the package N: description. Lintian has a list of common misspellings that it looks N: for. It does not have a dictionary like a spelling checker does. It is N: particularly picky about spelling and capitalization in package N: descriptions since they're very visible to end users. N:
Nyní již našel lintian více problémů a také nám napsal více informací, jak je opravit. Pokud jste vzorně vypracovávali domácí úkoly, zkuste si nyní váš balíček zkontrolovat a opravte nalezené chyby.
Dalším nástrojem pro kontrolu balíčků je linda, která kdysi vznikla z důvodu nespokojenosti s lintianem, ale v dnešní době již nic zásadního navíc nenabízí a klidně ji můžeme ignorovat, protože testy, které přinášela navíc jsou již v současné době začleněny do lintianu.
uscan a uupdateV prvním díle jsme zmínili soubor debian/watch a tentokrát se na něj podíváme podrobněji. Program uscan načte tento soubor a pokusí se na webových stránkách v něm definovaných najít nejnovější dostupnou verzi programu. Jak vypadá soubor debian/watch pro dříve rozebíraný balíček photo-uploader vidíte na následujícím výpisu:
version=3 http://dl.cihar.com/photo-uploader/latest/photo-uploader-(.*)\.tar.gz
Na prvním řádku určíme verzi, kterou používáme, a na dalším je definováno, kde má uscan hledat aktuální verze programu. Vyhledávání se provádí pomocí regulárního výrazu a část v závorkách určuje verzi programu (pokud je závorek víc, jsou tyto části pospojovány tečkami a dohromady určují verzi). Můžeme zadat jediné URL (jako je na našem příkladu) nebo URL, které má program stáhnout a regulární výraz, který má být ve stránce vyhledáván, například:
version=3 http://news.tiker.net/dl/software/tagpy /news.tiker.net/download/software/tagpy/tagpy-(.*)\.tar\.gz
Jestli je balíček aktuální, zjistíme programem uscan:
$ uscan --report-status Processing watchfile line for package photo-uploader... Newest version on remote site is 0.5, local version is 0.5 => Package is up to date
Program umí i přímo stáhnout nový tarball a přebalit ho do .tar.gz. Pokud má zabalený program z nějakého důvodu jinou verzi než náš balíček (například jsme museli zdrojové kódy přebalit z licenčních důvodů), je možné pomocí dalších parametrů v souboru debian/watch zadat téměř libovolné přejmenovávání verzí.
Ve spojení s aktualizací balíčku na novou verzi se ještě může hodit uupdate, který aktualizuje balíček na novější verzi pomocí nového tarballu (který jsme stáhli uscanem). Bohužel pro většinu situací, kdy je balíček spravován ve VCS, se tento nástroj moc nehodí, takže od jeho používání se ustupuje.
dget a dputPoslední nástroje, na které se dnes podíváme, jsou dget a dput. Ty slouží pro stahování a nahrávání balíčků. Protože zdrojový balíček se obvykle skládá z více souborů, tak nám ušetří několik kroků, které by bylo nutné provést.
Použití dget je jednoduché - stačí mu předhodit URL s .dsc souborem a on se postará o ostatní. Případně nám i balíček rovnou rozbalí (pokud zadáme parametr -x):
$ dget -x http://ftp.cz.debian.org/debian/pool/main/e/enca/enca_1.9-1.dsc
dget: retrieving http://ftp.cz.debian.org/debian/pool/main/e/enca/enca_1.9-1.dsc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 582 100 582 0 0 3985 0 --:--:-- --:--:-- --:--:-- 0
dget: retrieving http://ftp.cz.debian.org/debian/pool/main/e/enca/enca_1.9.orig.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 657k 100 657k 0 0 432k 0 0:00:01 0:00:01 --:--:-- 480k
dget: retrieving http://ftp.cz.debian.org/debian/pool/main/e/enca/enca_1.9-1.diff.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 17257 100 17257 0 0 60397 0 --:--:-- --:--:-- --:--:-- 106k
dpkg-source: extracting enca in enca-1.9
dpkg-source: unpacking enca_1.9.orig.tar.gz
dpkg-source: applying ./enca_1.9-1.diff.gz
Pro nahrávání zase slouží dput. Tomu jako parametry dáváme kam nahrát a soubor .changes, který jsme získali kompilací balíčku. Umístění, kam nahráváme, musíme mít nadefinované v konfiguračním souboru ~/.dput.cf (tedy kromě nahrávání přímo do Debianu resp. Ubuntu, které je výchozí). Jak bude vypadat pro nahrávání přes scp vidíte níže, pro případné podrobnější informace o formátu konfigurace se podívejte do dokumentace.
[example] fqdn = ssh.example.com login = nijel method = scp incoming = /tmp
Pro nahrávání můžete použít i další nástroj - dupload. Asi není důvod ho používat, ale pro úplnost ho zde zmiňuji. Samozřejmě používá jinou konfiguraci než dput a jako největší rozdíl vidím fakt, že v současné době není aktivně udržován.
pbuilder, builddPokud už máme nějaký zdrojový balíček a chceme z něj vytvořit binární, nemusí se nám vždy hodit dpkg-buildpackage a instalování všech závislostí pro kompilaci do systému, který používáme. Pro tyto účely vznikl pbuilder, který se chová podobně jako buildd, jenž se stará o kompilaci balíčků na build serverech.
Protože pbuilder při běhu provádí chroot, musí být spouštěn pod uživatelem root. Před prvním použitím si musíme nejdříve připravit základní build systém, který se bude při kompilaci balíčků používat. O to se postará příkaz pbuilder create a tím vzniklý tarball můžeme kdykoliv aktualizovat (a měli bychom to dělat pravidelně) pomocí pbuilder update.
Jakmile máme tento systém připravený, můžeme již začít kompilovat balíčky. pbuilder vždy nejdříve nainstaluje potřebné balíčky a pak spustí kompilaci našeho balíčku. Pro zjednodušení používání existuje ještě wrapper pdebuild, který můžeme použít stejně jako dpkg-buildpackage. Výsledné balíčky se standardně ukládají do /var/cache/pbuilder/result/, ale pomocí přepínače
--buildresult je můžete uložit do libovolného adresáře.
Pokud chcete balíček dostat do distribuce, je vhodné si jeho kompilaci vyzkoušet v pbuilderu. Získáte tím totiž stejné prostředí jako používá buildd, a tudíž máte možnost odhalit případné problémy, které při kompilaci na build serverech nastanou (například chybějící závislosti).
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
$ lintian pokus_0.1_all.deb | wc -l 0 $ apt-extracttemplates pokus_0.1_all.deb E: pokus_0.1_all.deb nie je platný DEB balík. E: Prior errors apply to pokus_0.1_all.deb