Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
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.