Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou
… více »Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).
Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.
U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.
Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.
Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
Závislosti jsou softwarové požadavky ebuildu. Existuje několik druhů závislostí.
Do proměnné DEPEND patří všechny závislosti, které jsou třeba pro rozbalení, záplatování, sestavení a instalaci balíčku (s výjimkou implicitních, vizte níže).
Proměnná RDEPEND by měla obsahovat závislosti, které jsou potřeba pro běh programu. Pokud tuto proměnnou nezadáte, nastaví se automaticky na DEPEND.
Při instalaci z binárního balíčku (vytvořeného např. pomocí qpkg nebo quickpkg) se kontroluje pouze RDEPEND, takže je třeba tam přidat i závislosti, které už jsou i v DEPEND.
Do proměnné PDEPEND patří závislosti, které je třeba nainstalovat až po instalaci cílového balíčku. To je užitečné například pro zásuvné moduly instalovaného balíčku. Zpravidla je vhodné se PDEPEND vyhýbat a raději používat RDEPEND, vyjma případů, kde by to způsobilo kruhové závislosti.
Všechny balíčky mají implicitní závislost na systémových věcech (vizte soubory packages* v adresáři a podadresářích $PORTDIR/profiles), jako je třeba gcc a libc. Tyto balíčky mezi závislosti nedávejte, pokud nepotřebujete konkrétní verzi nebo balíček (např. glibc místo uclibc).
*DEPENDVždy je třeba uvést alespoň kategorii a název balíčku, například games-fps/quake3. Přidáním patřičného operátoru před kategorii balíčku lze upřesnit požadovanou verzi.
| Popis | |
| < | Nižší než daná verze |
| > | Vyšší než daná verze |
| <= | Nižší nebo rovno dané verzi |
| >= | Vyšší nebo rovno dané verzi |
| ~ | Libovolná revize dané verze |
Může to vypadat například takto:
DEPEND=">=app-i18n/enca-1.9 <dev-lang/perl-5.10.0"
Při použití (samotného) operátoru = je možné zobecnit požadavek na verzi. Následující příklad se spokojí s jakoukoliv verzí knihovny Qt třetí řady.
=x11-libs/qt-3*
Dále lze také závislosti negovat, čili určit balíčky (třeba i jejich verze), které v systému být nesmí, aby se mohl nainstalovat ten cílový. Stačí přidat vykřičník před název kategorie.
!app-text/pdftohtml !>=app-accessibility/speech-tools-1.2.95_beta !<app-text/texlive-2007
Tolik tedy k určování verzí. Dále lze dát ebuildu na výběr z několika závislostí, které například poskytují stejnou funkčnost. Kupříkladu potřebuje-li váš ebuild Konqueror a vy víte, že jej poskytuje monolitický balíček kde-base/kdebase i rozdělený kde-base/konqueror, můžete napsat toto:
|| ( kde-base/konqueror kde-base/kdebase )
Kulaté závorky určují blok, ke kterému se vztahuje výraz před nimi. V tomto případě to bylo ||, což určuje, že je vyžadován jen jeden balíček z bloku. Pro některé podobné případy, jako je vyžadování některé z implementací JRE, JDK, GhostScript atp., může být lepší záviset na patřičném virtuálním balíčku ($PORTDIR/virtual), který se o to postará za vás.
Tímto se dostáváme k závislostem podmíněným USE flagy. Zápis je podobný předchozí ukázce, jen dáme před závorku místo výrazu || USE flag a za něj otazník. Pokud naopak chcete, aby se některé závislosti nainstalovaly, jen pokud je daný USE flag vypnutý, přidejte před něj ještě vykřičník.
gif? ( media-libs/giflib ) # pokud nejsme na architektuře amd64* a máme povolený # USE flag 'cdf', potřebujeme sci-libs/cdf !amd64? ( cdf? ( sci-libs/cdf )
* USE flag architektury systému je nastaven automaticky.
Všechno vyjmenované lze různě kombinovat. Následující řádek si v případě, že je zapnutý USE flag rar, vyžádá balíček rar nebo unrar (vybrat podle preference si můžete tak, že jeden z balíčků nainstalujete ručně).
rar? ( || ( app-arch/rar app-arch/unrar ) )
V ebuildu balíčku poppler-bindings najdeme tyto závislosti:
RDEPEND="~app-text/poppler-${PV}
cairo? ( >=x11-libs/cairo-1.4 )
gtk? (
>=x11-libs/gtk+-2.6
>=gnome-base/libglade-2
)
qt3? ( =x11-libs/qt-3* )
qt4? ( =x11-libs/qt-4* )"
DEPEND="${RDEPEND}
dev-util/pkgconfig
>=sys-devel/automake-1.9.6"
Balíček poppler-bindings potřebuje k běhu poppler stejné verze, což se dá obecně vyřešit použitím ${PV}, jak si lze všimnout na prvním řádku. Není třeba znovu vypisovat stejné závislosti, proto klidně použijte již nastavenou proměnnou v té následující (v příkladu vidíme použití RDEPEND v DEPEND).
Slotování přijde vhod ve chvíli, kdy chceme umožnit instalaci více verzí jednoho ebuildu, například KDE verze 3.x a 4.x, knihovnu GTK+ verze 1.2 a 2.x, Qt verze 3.3 a 4.x či zdrojové kódy jádra.
Většina balíčků slotování nepotřebuje a v jejich ebuildech se nastavuje SLOT="0". To není totéž jako uvedení prázdného slotu, což vypne slotování úplně a není doporučováno.
Portage umožňuje mít nainstalovanou jednu verzi od každého slotu.
V prvním díle jsem slíbil, že si později povíme více o proměnné RESTRICT a jejích možnostech. Jednotlivé vlastnosti v proměnné oddělujte mezerou. Následuje jejich vysvětlení.
Pro ovlivnění automatického nastavení zrcadel existují restrikce mirror, primaryuri a fetch; mirror zakáže hledání souboru na oficiálních Gentoo zrcadlech, primaryuri změní pořadí hledání tak, že se soubor nejdříve hledá na zrcadlech zadaných v proměnné SRC_URI a teprve poté na těch oficiálních. A fetch se používá tehdy, když licence neumožňuje stažení potřebných souborů přímo a software je třeba nejdříve ručně uložit do $DISTDIR. V takovém případě je třeba do proměnné SRC_URI vypsat pouze názvy souborů a případně definovat funkci pkg_nofetch(), která uživateli vysvětlí, odkud (a který) balíček stáhnout, kam jej uložit a proč. Výchozí definice vypadá následovně:
pkg_nofetch()
{
[ -z "${SRC_URI}" ] && return
echo "!!! The following are listed in SRC_URI for ${PN}:"
local x
for x in $(echo ${SRC_URI}); do
echo "!!! ${x}"
done
return
}
Restrikce test zakáže spuštění src_test(), vizte druhý díl tohoto seriálu.
Chcete-li zabránit automatickému spouštění strip na binárky, nastavte stejnojmennou restrikci. To je vhodné například při instalaci předkompilovaných balíčků, kde by Portage jinak vypisovala varování, protože to řeší po svém.
Restrikce userpriv vynucuje pro celý proces kompilace rootovská práva. To je výchozí chování Portage a změna nastane jen u uživatelů, kteří si tuto vlastnost explicitně povolili pomocí proměnné FEATURES.
Balíčku, který neobsahuje žádné binárky, je vhodné nastavit restrikci binchecks, která zakáže QA kontroly. Toto není určeno k obcházení QA kontrol, o tom se zmíním v příštím díle.
Distribuci binárních balíčků lze zakázat pomocí restrikce bindist. Kupříkladu binární balíčky Firefoxu smíte z licenčního hlediska šířit jen pokud aktivujete USE flag bindist nebo iceweasel. Program quickpkg vás na toto upozorní, alternativa qpkg (z balíčku portage-utils) zatím ne.
Restrikce installsources zakáže stejnojmennou vlastnost, i když je uživatelem explicitně povolená pomocí proměnné FEATURES. Jde o vlastnost, která nainstaluje zdrojové kódy do /usr/src/debug/${CATEGORY}/${PF}, pokud je nainstalovaný debugedit a v CFLAGS nastavený nějaký debugovací přepínač, např. -ggdb.
Sedmý díl bude mimo jiné o EAPI 1 a QA kontrolách.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
vydrž čéče, tohle sem si taky říkal a nakonec jsem se s instalací ocitnul uprostřed té největší gentoo-krize.No jestli tohle byla největší Gentoo krize, tak to není tak strašné. Já si ničeho podstatného nevšiml
|| ( kde-base/kdebase kde-base/konqueror ) je zvolit || ( kde-base/konqueror kde-base/kdebase ), protoze resolvovani zavislosti postupuje od zacatku a je zbytecne uzivateli nutit "velky monoliticky balik kdebase", kdyz z nej staci pouze konqueror.