Přesně před 34 lety, 25. srpna 1991, oznámil Linus Benedict Torvalds v diskusní skupině comp.os.minix, že vyvíjí (svobodný) operační systém (jako koníček, nebude tak velký a profesionální jako GNU) pro klony 386 (486), že začal v dubnu a během několika měsíců by mohl mít něco použitelného.
86Box, tj. emulátor retro počítačů založených na x86, byl vydán ve verzi 5.0. S integrovaným správcem VM. Na GitHubu jsou vedle zdrojových kódů ke stažení také připravené balíčky ve formátu AppImage.
Vláda Spojených států získala desetiprocentní podíl v americkém výrobci čipů Intel. Oznámili to podle agentur americký prezident Donald Trump a ministr obchodu Howard Lutnick. Společnost Intel uvedla, že výměnou za desetiprocentní podíl obdrží státní dotace v hodnotě 8,9 miliardy dolarů (zhruba 186 miliard Kč). Částka podle Intelu zahrnuje dříve přislíbené subvence 5,7 miliardy dolarů z programu CHIPS na podporu výroby čipů v USA,
… více »Organizace Apache Software Foundation (ASF) vydala verzi 27 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.
Knihovna FFmpeg byla vydána ve verzi 8.0 „Huffman“. Přibyla mj. podpora hardwarově akcelerovaného kódování s využitím API Vulcan, viz seznam změn.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2024 (pdf). V loňském roce NÚKIB evidoval dosud nejvíce kybernetických bezpečnostních incidentů s celkovým počtem 268. Oproti roku 2023 se však jedná pouze o drobný nárůst a závažnost dopadů evidovaných incidentů klesá již třetím rokem v řadě. V minulém roce NÚKIB evidoval pouze jeden velmi významný incident a významných incidentů bylo zaznamenáno 18, což oproti roku 2023 představuje pokles o více než polovinu.
Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie). Servo mimo jiné nově zvládne animované obrázky APNG a WebP.
Na chytré telefony a počítačové tablety v Rusku bude od začátku příštího měsíce povinné předinstalovávat státem podporovanou komunikační aplikaci MAX, která konkuruje aplikaci WhatsApp americké společnosti Meta Platforms. Oznámila to dnes ruská vláda. Ta by podle kritiků mohla aplikaci MAX používat ke sledování uživatelů. Ruská státní média obvinění ze špehování pomocí aplikace MAX popírají. Tvrdí, že MAX má méně oprávnění k přístupu k údajům o uživatelích než konkurenční aplikace WhatsApp a Telegram.
Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu srpnový souhrn novinek. Kvůli nedostatečnému zájmu byla ukončena výroba telefonů PinePhone Pro.
Po pěti měsících vývoje byla vydána nová verze 0.15.1 programovacího jazyka Zig (GitHub, Wikipedie). Verze 0.15.0 byla přeskočena. Přispělo 162 vývojářů. Přehled novinek v poznámkách k vydání.
Ebuild je speciální skript v bashi používaný balíčkovacím systémem Gentoo Linuxu - Portage. Obsahuje popis balíčku, licenci, adresu ke zdrojovým kódům, instrukce, jak je rozbalit a případně opatchovat, zkompilovat a nainstalovat. Musí být uložen v kódování UTF-8.
Může mít opravdu mnoho nejrůznějších podob, ale nejprve si ukážeme jeden z jednodušších:
# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: \ # /var/cvsroot/gentoo-x86/x11-themes/ethemes/ethemes-0.16.8.ebuild, \ # v 1.1 2006/08/28 06:14:05 vapier Exp $ DESCRIPTION="Meta package for all the official Enlightenment themes" HOMEPAGE="http://www.enlightenment.org/" SRC_URI="" LICENSE="BSD" SLOT="0" KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sh sparc x86" IUSE="" DEPEND="x11-themes/etheme-BlueSteel x11-themes/etheme-BrushedMetal-Tigert x11-themes/etheme-Ganymede x11-themes/etheme-ShinyMetal"
Na začátku každého ebuildu z Portage najdete tři zakomentované řádky, kterých si vůbec nemusíte všímat: první je copyright, druhý licence a o třetí se stará CVS, takže je nejlepší, když se tam nechá jen "# $Header: $
".
V tomto článku se nebudu zabývat nastavením Portage; jen vysvětlím, co znamenají proměnné, o kterých se později zmíním.
Proměnná | Popis |
PORTDIR |
Adresář, ve kterém se nachází strom Portage. Výchozí hodnota je /usr/portage . Změnit ji můžete například podle FAQ: Jak přesunout Portage?. |
PORTDIR_OVERLAY |
Adresář(e), kam patří ebuildy buď vaše vlastní nebo neoficiální od třetích stran. |
PORTAGE_TMPDIR |
Dočasný adresář pro Portage. Výchozí hodnota je /var/tmp . |
Naše ebuildy určitě nebudeme ukládat do hlavního stromu Portage, tedy ${PORTDIR}
, protože by se za prvé míchaly mezi oficiální ebuildy a za druhé byste o ně hned při další synchronizaci přišli. Patří do adresáře, který si nadefinujete zmiňovanou proměnnou PORTDIR_OVERLAY
v souboru /etc/make.conf
.
Nyní je čas zvolit pro náš ebuild vhodnou kategorii ze seznamu dostupném v souboru ${PORTDIR}/profiles/categories
. Pokud by žádná nevyhovovala, nic vám nebrání vytvořit si kategorii vlastní - potom je ale třeba vytvořit soubor profiles/categories
i v overlayi a zapsat ji tam. Název kategorie může obsahovat malá písmena a-z a pomlčky.
V kategorii si vytvoříme adresář, který bude nést název balíčku. Je vhodné vyhnout se velkým písmenům, přestože je lze použít. Název může obsahovat, stejně jako kategorie, a-z, pomlčky a navíc ještě čísla 0-9, plus a podtržítko.
V tomto adresáři konečně vytvoříme ebuild. Jeho název musí obsahovat název balíčku ve tvaru, který jsme zvolili pro název adresáře. Následuje pomlčka a za ní verze a za ní případně další pomlčka a revize. Nakonec patří přípona '.ebuild
', takže například nazev-baliku-1.0-r1.ebuild
.
Verze se může skládat z jednoho nebo více čísel oddělených tečkou (např. 1.2.3 nebo 20070205). Poslední číslo může být následováno písmenem (např. 1.2b - nepoužívat b
místo _beta
!) nebo některým z řetězců vypsaných v následující tabulce. Řetězce jsou vypsány v pořadí, jak je bere Portage, od nejnižší verze po nejvyšší.
Řetězec | Význam |
_alpha | Alpha verze |
_beta | Beta verze |
_pre | Preview verze |
_rc | RC (release candidate) verze |
(nic) | Normální verze |
_p | Patch level |
Úplně nakonec patří revize. Pár příkladů, jak můžou vypadat takové verze: 0.1_alpha20, 5.0_pre12-r8, 2.3_rc5-r2, 3.6b-r5.
Následující proměnné jsou definovány jen pro čtení. Je vhodné je používat namísto zapisování verzí atp. "napevno". Vždy je totiž cílem to, aby pokud možno stačilo ebuild jen přejmenovat na novou verzi a on bez zásahů rovnou fungoval. To samozřejmě není vždy možné, ale často ano.
Proměnná | Popis |
P | Název a verze balíčku bez revize, například ethemes-0.16.8 . |
PN | Název balíčku, například ethemes . |
PV | Verze balíčku bez revize, například 0.16.8 . |
PR | Revize balíčku, nebo r0 , když nemá revizi. |
PVR | Verze balíčku s revizí, například 0.16.8 (zde bez revize, protože žádnou nemá). |
PF | Název, verze a revize balíčku, například ethemes-0.16.8-r0 . |
A | Všechny zdrojové soubory pro balíček (kromě těch, které jsou podmíněny USE flagy, které máte zakázány - o podmínkách si řekneme později). |
CATEGORY | Kategorie balíčku, například x11-themes . |
FILESDIR | Cesta k podadresáři files/ v adresáři s ebuildem (v tomto případě běžně /usr/portage/x11-themes/ethemes/files ), který je často využíván pro malé patche a soubory. Má hodnotu "${PORTDIR}/${CATEGORY}/${PN}/files ". |
WORKDIR | Pracovní adresář s výchozí hodnotou "${PORTAGE_TMPDIR}/portage/${PF}/work ". |
T | Dočasný adresář, který ebuild může využívat. Má hodnotu "${PORTAGE_TMPDIR}/portage/${PF}/temp ". |
D | Cesta k dočasné instalační cestě. Sem se nejprve nainstaluje každý ebuild, a teprve když projde sandboxem (tzn. nepokouší se nic smazat atp.), tak je nainstalován do ${ROOT} . |
ROOT | Cesta ke kořenovému adresáři systému. Vždy připojte na začátek cesty - vyjímkou je jen proměnná "${D} ". |
Proměnná | Popis |
DESCRIPTION | Stručný popis balíčku. |
HOMEPAGE | Domovská stránka balíčku. |
SRC_URI | Adresa ke zdrojovým kódům. Nepoužívejte v ní proměnnou HOMEPAGE . |
LICENSE | Pod jakou je balíček vydán licencí - název musí přesně (včetně velikosti písmen) odpovídat souboru v adresáři "${PORTDIR}/licenses ". |
SLOT | Určuje, zda bude možné instalovat více verzí paralelně. O slotování si povíme více později. |
KEYWORDS | Architektury, na kterých se balíček sestaví a funguje. Pokud ještě není řádně otestovaný, přidá se před název architektury tilda, takže například ~amd64 . |
IUSE | Všechny USE flagy, které budou u balíčku dostupné. |
Proměnná | Popis |
S | Cesta k dočasnému adresáři s rozbalenými zdrojáky. Výchozí hodnota je "${WORKDIR}/${P} " a ebuild by ji neměl předefinovávat, pokud se nemění - to záleží na názvu adresáře, který se rozbalí ze zdrojáků: pokud je ve tvaru "${P} ", pak není třeba tuto proměnnou definovat. |
DEPEND | Závislosti, které jsou nutné pro sestavení balíčku. |
RDEPEND | Závislosti, které jsou nutné pro spuštění balíčku. |
PDEPEND | Závislosti, které musí být nainstalovány až po balíčku. Zpravidla je vhodné se používání PDEPEND vyhýbat a používat RDEPEND , kromě případů, kdy by to způsobilo kruhové závislosti. |
RESTRICT | Vlastnosti oddělené mezerou, které budou pro daný balíček zakázány. O těch se zmíním jindy. |
PROVIDE | Tato proměnná by měla být použita jen v případě, když balíček poskytuje virtuální cíl. Například blackdown-jdk a sun-jdk poskytují virtual/jdk . Balíčky potom mohou záviset na virtual/jdk a není třeba je pokaždé vyjmenovávat. |
Příští díl bude o funkcích, eclass a příkazech.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
že ebuild je většinou v 7 bitA David hovoří o Ebuildech takže v čem jsou Changelogy je zcela irelevantní. Ale i kdyby byl jen jeden jediný ebuild uložen v kódování jiném než UTF8 a fungovalo to tak to znamená, že ebuildy v UTF8 být nemusí. A vzhledem k tomu že jich je většina v 7bit kódování tak jsou mé argumenty i podložené.
<|>pka
, což daném kódování může znamenat "stopka", a ono to bude fungovat :P Samozřejmě např. pro zobrazování ebuidu bude potřeba širší podpora daného kódování v systému.
Třeba můžeš zcela bezpečně do komentáře napsat // <|>pka, což daném kódování může znamenat "stopka", a ono to bude fungovat :PTo asi těžko, kódování dokumetu by bylo stále 7 bit ASCII. Protože kdyby platilo to co říkáš tak je html kódování což neplatí. HTML je značkovací jazyk. Kódování je o vrstvu níže. TZN můžu nadefinovat hexadeximální hodnotě 6F což je v ASCII
o
třeba význam stopka
. A pokud bych zahrnul podporu pro takovéto kódování do nějaké aplikace tak kdybych otevřel nějaký soubor kde by se vyskytovaly hodnoty 6F tak by se místo ASCII o zobrazilo stopka. 64686F6A
a ve druhém FFFE610068006F006A00
. Jestli alespoň poznáš které je které. A rozdíl mezi 7bit ASCII a UTF8 je hlavně tento. Slovo "ahoj" v HEXA je v jednomMam pocit, ze si tu nekdo plete UTF-8, UTF-16 a jeste navic do toho micha BOM... Byte Order Mark neni nutny a ASCII znaky v UTF-8 zabiraji jeden bajt.64686F6A
a ve druhémFFFE610068006F006A00
.
je odolné proti poškození dat (při náhodném porušení jednoho znaku je stále možné přečíst zbytek řetězce)Stejne jako utf-8
RESTRICT="nomirror"
RESTRICT="fetch"
No, spíš bych používal
- stahovanie z mirrorov a povolit iba stahovanie z oficialnej stranky
RESTRICT="nomirror"
RESTRICT="mirror"
, to je i v manuálu a je to logičtější (protože RESTRICT zakazuje Ano, o tom píšu v druhém díle...
- stahovanie odkialkolvek, uzivatel si musi subor stiahnut sam (ebuild mu ponukne adresu, teda za predpokladu, ze sa dany SW stiahnut da)
RESTRICT="fetch"
Bych neřekl, že je to logičtější. Restrikce = omezení, okleštění, snížení, zmenšení počtuNo? Omezení mirrorů
/etc/make.conf
PROVIDE -- nepouzivaji se ted spise "new-style virtuals", tedy "normalni balicky" typu virtual/*?Používá se obojí:
$ grep PROVIDE /portage/net-print/cups/cups-1.2.7.ebuild PROVIDE="virtual/lpr"Ale virtual/* balíčky jsou podle mě určitě lepší...
Popis promenne $A neni jednoznacny -- ve skutecnosti jde (podle manualu) o vsechny zdrojove kody, ktere aktualne nastavena kombinace USE flagu vyzaduje pro kompilaci; mluvit v tomto kontextu o "zakazanych USE" zavani maskovanim USE flagu, coz mate.Kdybych měl na mysli maskované USE, napsal bych to. Jak mám říkat "zakázaným" USE flagům, aby to nebylo matoucí? Vypnuté?
Tedy neco jako DEPEND=">=media-libs/libtheora-1.0_alpha7 encode".
DEPEND="encode? ( >=media-libs/libtheora-1.0_alpha7 )"
Paklize vyse uvedene zavislosti neni mozne deklarovat, jak se k tomu stavi spravci portage? Nechavaji to na uzivateli (einfo) nebo vyvtareji ebulildy typu media-libs/libtheora-encode a media-libs/libtheora, aby mohli zavislost zapsat?Ano, USE-based dependencies je jedno z omezeni Portage, ktere celkem dost boli. Resi se to osklivym hackem, kdy se pred zacatkem instalace samotneho baliku zjisti, jestli je nejaky balicek sestaven s danym USE, a pokud ne, instalace "chcipne". Funguje to, ale problem je ten, ze tenhle test neprobiha pri sestavovani zavislosti, ale az tesne pred kompilaci. Kazdopadne se na tomhle pracuje, podporou ve stabilni verzi Portage si nejsem jisty, ale je to jedna z veci, ktere "drive nebo pozdeji" budou hotove. Za nekolik let pouzivani jsem na podobne problemy narazil v nekolika malo pripadech, takze si dovolim tvrdit, ze jde spise o "problem cistoty designu" a ne o nejaky realny showstopper.