abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 16:33 | IT novinky

    Vláda jmenovala novým zmocněncem pro digitalizaci a strategickou bezpečnost prvního náměstka ministra vnitra Lukáše Klučku. Ten ve funkci nahradil poslance Roberta Králíčka poté, co Králíček na tento post vládního zmocněnce rezignoval. Klučka chce do roka digitalizovat všechny státní služby tak, aby vyhověly zákonu o právu na digitální služby, přičemž dosavadní plán Fialovy vlády počítal s dokončením digitalizace až někdy v roce

    … více »
    NUKE GAZA! 🎆 | Komentářů: 7
    včera 13:55 | Nová verze

    Byl vydán Mozilla Firefox 149.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně, zobrazení dvou webových stránek vedle sebe v jednom panelu (split view) nebo možnost přidat poznámky k panelům (Firefox Labs). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 149 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 4
    včera 13:22 | Nová verze

    Byly vydány nové verze 5.3.0 a 6.0.0 svobodného multiplatformního programu pro skicování, malování a úpravu obrázků Krita (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Obě verze vycházejí ze stejného zdrojového kódu – rozdíl je v použitých verzích Qt a KDE Frameworks. Krita 6.0.0 je první vydání postavené na Qt 6 a stále je považovaná za experimentální. Má lepší podporu Waylandu. Přináší podporu protokolu Wayland

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 04:22 | Nová verze

    Byla vydána nová verze 10.2 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 nové balíčky Immich, Immich Machine Learning, uv a RustDesk Client.

    Ladislav Hagara | Komentářů: 0
    23.3. 22:11 | Nová verze

    TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 6.0. Příští verze 7.0 je kvůli výkonu přepisována do programovacího jazyka Go.

    Ladislav Hagara | Komentářů: 0
    23.3. 20:33 | Zajímavý článek

    Christian Schaller z Red Hatu na svém blogu popsal své zkušenosti s používáním AI při vývoji open source aplikací pro Linux. Pomocí různých AI aktualizoval nebo vytvořil aplikace Elgato Light GNOME Shell extension, Dell Ultrasharp Webcam 4K, Red Hat Planet, WMDock, XMMS resuscitated (aktualizace z GTK 2 a Esound na GTK 4, GStreamer a PipeWire) a Monkey Bubble. SANE ovladač pro skener Plustek OpticFilm 8200i se mu zatím nepovedl.

    Ladislav Hagara | Komentářů: 5
    23.3. 19:44 | IT novinky

    Americké firmy Tesla a SpaceX postaví v texaském Austinu moderní komplex na výrobu čipů pro umělou inteligenci (AI). Součástí projektu s názvem Terafab budou dvě moderní továrny na výrobu čipů – jedna se zaměří na automobily a humanoidní roboty, druhá na datová centra ve vesmíru. Uvedl to generální ředitel těchto firem Elon Musk. Projekt by podle odhadů měl stát 20 miliard USD (zhruba 425 miliard Kč).

    Ladislav Hagara | Komentářů: 13
    23.3. 15:00 | Nová verze

    Byla vydána nová stabilní verze 6.11 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    23.3. 01:44 | Bezpečnostní upozornění

    Ubuntu 26.04 patrně bude ve výchozím nastavení zobrazovat hvězdičky při zadávání hesla příkazu sudo, změna vychází z nové verze sudo-rs. Ta sice zlepší použitelnost systému pro nové uživatele, na které mohlo 'tiché sudo' působit dojmem, že systém 'zamrzl' a nijak nereaguje na stisky kláves, na druhou stranu se jedná o možnou bezpečnostní slabinu, neboť zobrazování hvězdiček v terminálu odhaluje délku hesla. Původní chování příkazu sudo

    … více »
    NUKE GAZA! 🎆 | Komentářů: 18
    22.3. 21:33 | Komunita

    Projekt systemd schválil kontroverzní pull request, který do JSON záznamů uživatelů přidává nové pole 'birthDate', datum narození, tedy údaj vyžadovaný zákony o ověřování věku v Kalifornii, Coloradu a Brazílii. Jiný pull request, který tuto změnu napravoval, byl správcem projektu Lennartem Poetteringem zamítnut s následujícím zdůvodněním:

    … více »
    NUKE GAZA! 🎆 | Komentářů: 36
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1145 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)

    16. 4. 2007 | David Watzke | Návody | 4823×

    Tento díl je o sandboxu (používaném pro některé fáze testování), kontrolních součtech a běžných problémech, se kterými se patrně občas setkáte.

    QA oznámení

    Ve skriptu ebuild.sh, který je nedílnou součástí Portage, jsou různé kontroly běžných problémů, které mohou způsobit vypsání hlášky začínající na „QA Notice“. V této části článku se dozvíte, jak takové problémy řešit.

    USE Flag foo not in IUSE

    Hláška vás upozorňuje, že jste zapomněli vypsat do proměnné ${IUSE} všechny USE flagy, které v ebuildu používáte. Výjimkou jsou flagy architektur a proměnné vyjmenované v ${USE_EXPAND}, která je nastavena od Portage verze 2.0.51.20 v ${PORTDIR}/profiles/base/make.default — ty do ${IUSE} nepatří, Portage si s nimi poradí sama.

    command in global scope

    Žádný externí kód by neměl být spouštěn v globálním rozsahu. Pokud ovšem byl takto spuštěn, objeví se tato hláška. V závislosti na tom, o co se snažíte, je vhodné použít některé z alternativ.

    sed, awk, grep, egrep, cut, atp.
    Tyto nástroje se v globálním rozsahu často používají k úpravě řetězce s verzí nebo názvem programu. Je dobré se jim vyhýbat a používat buď substituci Bashe, anebo funkce z eclass versionator (vizte man versionator.eclass, je třeba mít nainstalované portage-manpages), které tuto substituci zjednodušují.
    has_version, best_version, portageq
    Ke globálnímu volání těchto funkcí by nemělo nikdy dojít. Nesmíte mít metadata lišící se od systému. Pokud na tuto hlášku narazíte v souvislosti s těmito příkazy, pak byste měli přepsat váš ebuild tak, aby správně používal závislosti — podmiňované nastavování proměnné ${DEPEND} je přípustné jen tehdy, když závisí pouze na statických proměnných obsahujících název programu a verzi (P, PN, PV, PR, PVR a PF).
    python, perl
    Ebuildy jsou skripty v Bashi a používání jiného jazyka jen proto, že jistou věc neumíte napsat v Bashi, je nepřípustné — přinejmenším proto, že uživatelé nemusí mít vždy při sourcování ebuildu kompletní systém.

    foo is setXid, dynamically linked and using lazy bindings

    Dynamicky linkované setXid aplikace by z bezpečnostních důvodů neměly používat lazy bindings (tj. když program začne hledat funkci v knihovnách, až když je zapotřebí) při linkování. Pokud na toto narazíte, máte tyto možnosti:

    • Upravit (opatchovat) Makefile (nebo ekvivalent) balíčku tak, aby při linkování používal přepínače -Wl,-z,now. To je upřednostňované řešení.
    • Načíst si eclass flag-o-matic a použít funkci append-ldflags. Toto ovšem ovlivní všechny binárky, nejen setXid.

    ECLASS foo inherited illegally

    Tato hláška vám sděluje, že načítáte eclass nesprávným způsobem. Všechny eclass (i když funkci z některé potřebuje např. jen jedna architektura), které v ebuildu/eclass načítáte, musí být načteny vždy — existuje výjimka a je stejná jako u proměnné ${DEPEND}, vizte výše. Můžete použít například toto:

    if [[ "${PN##*-}" == "cvs" ]] ; then
    	inherit cvs
    fi

    Sandbox

    Portage používá sandbox pro některé fáze sestavování. Dělá to proto, aby zabránila neoprávněnému zápisu mimo dočasný adresář, kde se kompiluje.

    Když se balík pokusí o něco, co se sandboxu nelíbí, tak se kompilace přeruší a vypíše se chybová hláška s podrobnostmi.

    -------------- ACCESS VIOLATION SUMMARY -------------
    LOG FILE = "/tmp/sandbox-kategorie_-_balik-1.0-31742.log"
    
    open_wr:   /nejaky/soubor
    -----------------------------------------------------

    Kupříkladu open_wr znamená, že došlo k pokusu o otevření souboru pro zápis.

    K těmto chybám dochází logicky nejčastěji při instalaci. Když Makefile respektuje proměnnou DESTDIR, potom je to jednoduché a můžete použít:

    emake DESTDIR="${D}" install

    nebo případně make, pokud paralelní instalace s emake selže. Když to nefunguje, můžete zkusit ještě einstall (bez argumentů), ale ten opravdu jen když první způsob nejde. No a když nejde ani tohle, tak zřejmě budete muset upravit Makefile vy sami a vytvořit si patch (případně použít sed, jde-li o triviální změnu). Pokud se Makefile generuje, ať už pomocí autotools nebo čehokoliv jiného, potom upravte přímo ten soubor, ze kterého se generuje. Oprava většinou nebývá nijak moc složitá a když se vám povede, můžete ji zaslat vývojářům daného programu, kteří ji pak mohou začlenit do dalších verzí.

    K dispozici je několik funkcí pro ovládání a ladění sandboxu. Nepoužívejte je pro řešení problémů, za které může špatný Makefile.

    addread Přidá právo pro čtení.
    addwrite Přidá právo pro zápis.
    adddeny Zakáže zápis.
    addpredict Předstírá právo zápisu.

    Poznámky:

    • Používání addwrite není správným způsobem jak řešit problémy se sandboxem, proto pokud možno používejte addpredict.
    • Všechny tyto funkce berou jako argument jednu položku.
    • Sandbox je rekurzivní, takže pro předstíraný zápis do /neco/aaa a /neco/bbb stačí spustit addpredict /neco.

    Občas může dojít k pokusu o zápis do ${HOME}. V takovém případě je vhodné využít proměnné ${T} a zapisovat tam. Ukázkový příklad je k vidění v ebuildu fluxboxu, který tak řeší generování menu.

    ebegin "Creating a menu file (may take a while)"
    mkdir -p "${T}/home/.fluxbox" || die "mkdir home failed"
    MENUFILENAME="${S}/data/menu" MENUTITLE="Fluxbox ${PV}" \
    	CHECKINIT="no. go away." HOME="${T}/home" \
    	"${S}/util/fluxbox-generate_menu" -is -ds \
    	|| die "menu generation failed"
    eend $?

    Kontrolní součty

    Když napíšete ebuild, před jeho instalací je nutné (poprvé a pak s každou změnou v ebuildu, zdrojácích, patchích, atp.) vytvořit soubor s kontrolními součty (MD5, RMD160 a SHA256). Je to nutné z bezpečnostních důvodů. Soubor se například přenese poškozený, nebo je zmetek už na mirroru, atp. Existuje několik způsobů, jak tyto kontrolní součty vytvořit. Běžně se používá:

    ebuild balicek-1.0.ebuild digest

    Ale pokud chcete rovnou instalovat, můžete použít:

    emerge --digest =balicek-1.0

    Projde i zadání cesty k ebuildu, ale to patrně (podle hlášky, co na vás vyskočí) nemusí vždy fungovat, tak to raději nepoužívejte.

    emerge --digest balicek-1.0.ebuild

    Dalším způsobem téhož je:

    FEATURES=digest emerge =balicek-1.0

    Nebo můžete zadat cestu, ale platí totéž, co jsem psal kousek výš:

    FEATURES=digest emerge balicek-1.0.ebuild
           

    Hodnocení: 89 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    16.4.2007 12:03 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    "Portage si s nimi poradí sama." -- "ta" Portage? Neni to spis "to"?

    "Nesmíte mít metadata lišící se od systému." -- cestejsi by bylo spis "metadata daneho ebuildu nesmi zaviset na prostredi systemu, kde portage pracuje".

    "ebuild digest" -- nepletu li se, prechazi se na "ebuild manifest", lec s ebuildy nepracuju a tak se mozna pletu.
    16.4.2007 12:25 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    "Portage si s nimi poradí sama." -- "ta" Portage? Neni to spis "to"?
    Podle čeho soudíš? Já si také nejsem jistý, tak jsem to ponechal na autorovi. Mně by zase nejrozumnější připadal mužský rod (balíčkovací systém Portage).
    "Nesmíte mít metadata lišící se od systému." -- cestejsi by bylo spis "metadata daneho ebuildu nesmi zaviset na prostredi systemu, kde portage pracuje".
    Tvůj přepis má IMO jiný význam.
    16.4.2007 12:40 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    "Portage si s nimi poradí sama." -- "ta" Portage? Neni to spis "to"?
    Podle čeho soudíš? Já si také nejsem jistý, tak jsem to ponechal na autorovi. Mně by zase nejrozumnější připadal mužský rod (balíčkovací systém Portage).
    Podle "bezne terminologie" na ceskem ML a IRC; domnivam se, ze je "to" o neco beznejsi. Dotaz byl smerovan spise na autora nez na korektora.
    "Nesmíte mít metadata lišící se od systému." -- cestejsi by bylo spis "metadata daneho ebuildu nesmi zaviset na prostredi systemu, kde portage pracuje".
    Tvůj přepis má IMO jiný význam.
    Ano, ma jiny vyznam, to bylo cilem opravy :). Ebuild si "sam od sebe" nesmi menit graf zavislosti, napr. na zaklade v systemu nainstalovanych balicku. Jednim z duvodu je treba to, aby se dala jedna kopie Portage tree pouzit na vice strojich.
    David Watzke avatar 16.4.2007 15:29 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    "Portage si s nimi poradí sama." -- "ta" Portage? Neni to spis "to"?
    To mi přijde divný, ale především je to jedno :-)
    "Nesmíte mít metadata lišící se od systému." -- cestejsi by bylo spis "metadata daneho ebuildu nesmi zaviset na prostredi systemu, kde portage pracuje".
    Tak nějak je to ale myšleno... no, uznávám, že tvoje verze je jasnější...
    "ebuild digest" -- nepletu li se, prechazi se na "ebuild manifest", lec s ebuildy nepracuju a tak se mozna pletu.
    manifest jsem ani neznal, ale podle manuálu jde o něco krapet jiného:
    digest
    	Creates a digest file for the package
    	in /usr/portage/[category]/[package]/files/. 
    	This digest file lists the md5sums  of  all
    	the files found in the SRC_URI.  If the fetched
    	source of the package is corrupt/bogus in some way,
    	the md5sum will catch this.
    
    manifest
    	Updates the manifest file for the package.
    	This performs the second half of the digest
    	command, creating md5sums for the files in the
    	files directory as well as the ebuild.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    16.4.2007 19:17 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    Tak podle GLEPu 44 mam pravdu, digesty jsou prekonany manifestem :).
    Luboš Doležel (Doli) avatar 16.4.2007 16:25 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    Jinak než "ta Portage" to nikdy neřeknu ;-)
    16.4.2007 18:11 ~||~
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    Anglicka slova se v cestine mohou sklonovat libovolne, protoze CZ pravidla pro ne neplati. Tedy spravne to piseme vsichni (ten portage, ta portage, to portage, ty portage).
    egg avatar 16.4.2007 18:52 egg | skóre: 20 | Praha
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    Já bych psal ta portáž. :-) Ale neberte mě vážně, protože mám ve zvyku číst broken packages jako zlámaná pakáž.
    Gilhad avatar 3.5.2007 11:22 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 5 (problémy, sandbox, kontrolní součty)
    já zase čtu ten portydž podle vzoru ten porydž

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.