Vojenské zpravodajství (VZ) se v březnu zapojilo do mezinárodní operace proti aktivitám hackerské skupiny APT28, která je spojovaná s ruskou vojenskou zpravodajskou službou GRU a která přes slabě zabezpečené routery prováděla kybernetické útoky na státní a další organizace v ČR i zahraničí. Operaci vedl americký Federální úřad pro vyšetřování (FBI) a jejím cílem bylo odebrat útočníkům přístup k napadeným zařízením a ty následně … více »
Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.
Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.
Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.
Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání
… více »Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout
… více »Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Balíček pro Debian se kompiluje spuštěním souboru debian/rules. Dříve mohl být tento skript libovolný, ale v současné době se už musí jednat o makefile (tedy skript pro Make) s pevně danou sadou cílů:
build - povinný cíl, který zkompiluje programbuild-arch a build-indep - volitelné cíle pro kompilaci architekturově závislých a nezávislých částí balíčkubinary, binary-arch, binary-indep - povinné cíle pro vytvoření balíčku; první vytvoří všechny, další dva opět jen balíčky závislé respektive nezávislé na architektuřeclean - povinný cíl, který má za úkol vrátit vše, co mohly provést výše uvedené cíleget-orig-source - volitelný cíl, který by měl vytvořit soubor orig.tar.gz, pokud je pro jeho vytváření potřeba nějaká úprava originálního zdrojeTučně zvýrazněné cíle tedy musí mít každý balíček. Kromě těchto cílů si můžeme
definovat libovolné vlastní, obvyklé ještě bývá mít cíle configure pro
konfiguraci (tedy například puštění skriptu ./configure) a install pro provedení instalace (make install).
Pro kompilaci balíčků potřebujeme minimálně sadu nazvanou "build essentials";
tyto balíčky se nám nainstalují při instalaci balíčku build-essential.
Dále by se všechny balíčky měly kompilovat pod superuživatelem root, aby bylo možné vytvářet soubory se správnými právy. Protože to však není zrovna bezpečná cesta, vznikl wrapper fakeroot (ve stejnojmenném balíčku), který předstírá, že proces běží pod uživatelem root a přístupy na soubory emuluje tak, aby přístupová práva zůstala zachována po dobu jeho běhu. Pro kompilační proces tak vše vypadá, že běží pod superuživatelem, ale ve skutečnosti se
používá běžný účet uživatele.
Poslední nástroj, který nám usnadní práci, bude dh-make. Ten použijeme na vytvoření základní kostry balíčku. Postup v články byl zkoušen s verzí 0.44 a je možné, že jiné verze budou produkovat trochu jiné výsledky.
Před dalším krokem proto nainstalujte vše potřebné:
# apt-get install dh-make fakeroot build-essential
Jako ukázkový balíček zabalíme aplikaci hello.
Nedělá nic užitečného, ale na pochopení základů vytváření balíčků nám postačí.
Vytváření balíčku obvykle spočívá v mnoha krocích, a proto byl vytvořen nástroj
dh_make (z balíčku dh-make), který nám základní kroky usnadní.
Program dh_make vytvoří základní strukturu balíčku, předhodí nám hromadu ukázkových souborů a vůbec se snaží zjednodušit první kroky. Jak již víme z
prvního dílu, originální tarball by se měl jmenovat trochu jinak než ten
stažený, takže ho přejmenujeme a rozbalíme:
$ wget -q http://osdn.dl.sourceforge.net/sourceforge/abeni/hello-0.1.tar.gz $ mv hello-0.1.tar.gz hello_0.1.orig.tar.gz $ tar xfz hello_0.1.orig.tar.gz $ cd hello-0.1/
Nyní již může přijít na řadu dh_make. Ten můžeme pustit bez jakýchkoliv parametrů a na základní vlastnosti se nás zeptá, ale je lepší mu zadat další vlastnosti balíčku prostřednictvím parametrů.
Parametr -c určuje licenci, pod kterou balíček je, a tím pro nás dh_make připraví vhodnou šablonu pro soubor debian/copyright. V našem případě je program hello pod GNU GPL a použijeme tedy -c gpl.
Pomocí dalších parametrů můžeme zadat typ balíčku. Pokud ho nezadáme, tak se nás na něj dh_make zeptá, takže to není nezbytně nutné.
Další informace čerpá dh_make z proměnných prostředí DEBEMAIL a DEBFULLNAME - ty obsahují jméno a e-mail správce balíčku (stejné proměnné používají i další nástroje, převážně pak ty z balíčku devscripts).
Nyní již tedy víme, co budeme potřebovat, a můžeme dh_make spustit:
$ export DEBFULLNAME='Stojan Jakotyč' $ export DEBEMAIL='stojan@example.com' $ dh_make -c gpl Type of package: single binary, multiple binary, library, kernel module or cdbs? [s/m/l/k/b] s Maintainer name : Stojan Jakotyč Email-Address : stojan@example.com Date : Tue, 05 Feb 2008 14:32:06 +0900 Package Name : hello Version : 0.1 License : gpl Type of Package : Single Hit <enter> to confirm: Skipping creating ../hello_0.1.orig.tar.gz because it already exists Done. Please edit the files in the debian/ subdirectory now. hello uses a configure script, so you probably don't have to edit the Makefiles.
Vytvořil se nám adresář debian, který obsahuje jak vygenerované soubory, tak i příklady pro ostatní. Příklady pro mnoho dalších akcí nás u takto
jednoduchého balíčku nezajímají a adresář debian můžeme poněkud pročistit jejich odstraněním:
$ rm debian/*.ex debian/*.EX
Balíček nyní můžeme zkusit zkompilovat nástrojem dpkg-buildpackage (z
balíčku dpkg-dev), ale brzy narazíme na chyby, takže se tento proces asi bez našeho zásahu neobejde (parametr -rfakeroot není v novějších verzích potřeba):
$ dpkg-buildpackage -rfakeroot dpkg-buildpackage: source package hello dpkg-buildpackage: source version 0.1-1 dpkg-buildpackage: source changed by Stojan Jakotyč <stojan@example.com> dpkg-buildpackage: host architecture i386 fakeroot debian/rules clean dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. /usr/bin/make distclean make[1]: Entering directory `/tmp/firstdeb/hello-0.1' make[1]: *** No rule to make target `distclean'. Stop. make[1]: Leaving directory `/tmp/firstdeb/hello-0.1' make: *** [clean] Error 2 dpkg-buildpackage: failure: fakeroot debian/rules clean gave error exit status 2
Pro náš balíček bohužel dh_make neodhadl správně všechny příkazy v
debian/rules, takže se budeme muset podívat, jak vlastně tento soubor vypadá. Pokud si ho otevřete v editoru, uvidíte mnoho příkazů debhelperu - dh_*. V tuto chvíli si jich nebudeme všímat, protože výchozí chování nám prozatím vyhovuje a budou podrobněji popsány v dalších dílech seriálu.
První chyba, na kterou jsme narazili, je při volání make distclean. Problém je, že v této době ještě nemusí být vytvořen soubor Makefile, takže tento příkaz může selhat. Správné řešení tohoto problému je otestování existence souboru Makefile před spuštěním tohoto příkazu:
[ ! -f Makefile ] || $(MAKE) distclean
Při dalším spuštění dpkg-buildpackage narazíme na problém s parametry pro configure, protože náš balíček používá starší verzi autoconfu. Řešení tohoto problému je opět jednoduché - stačí přesunout předávání proměnných CFLAGS a LDFLAGS před volání ./configure:
CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs" ./configure ...
Nyní již by nám dpkg-buildpackage měl vytvořit binární i zdrojový balíček:
... dpkg-deb: vytvářím balík `hello' v `../hello_0.1-1_i386.deb'. signfile hello_0.1-1.dsc gpg: skipped "Stojan Jakotyč <stojan@example.com>": secret key not available gpg: [stdin]: clearsign failed: secret key not available dpkg-genchanges >../hello_0.1-1_i386.changes dpkg-genchanges: including full source code in upload dpkg-buildpackage: full upload (original source is included) dpkg-buildpackage: warning: Failed to sign .dsc and .changes file
Můžeme si pogratulovat, právě jsme vytvořili první balíček. Výsledek po dnešním dílu si také můžete stáhnout zde: hello_0.1-1.dsc, hello_0.1-1.diff.gz, hello_0.1.orig.tar.gz. Nicméně do dokonalosti má balíček ještě daleko.
Jako domácí úkol si do příštího dílu můžete upravit soubory, které jsme popsali v minulých dílech. Další problém, který můžete vidět ve výstupu dpkg-buildpackage, je, že se nepodařilo balíček podepsat. Na opravení této chyby stačí vygenerovat PGP klíč pro našeho uživatele. Domácích úkolů už máte dost, příště si podrobněji rozebereme, co se děje v debian/rules.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
a to sa uz v command line nejako vyznam (okrem bashu)……
configure: warning: CFLAGS=-g -O2: invalid host type configure: warning: LDFLAGS=-Wl,-z,defs: invalid host type configure: error: can only configure for one host and one target at a time make: *** [config.status] Error 1
dpkg-buildpackage: set CPPFLAGS to default value:
dpkg-buildpackage: set CFLAGS to default value: -g -O2
dpkg-buildpackage: set CXXFLAGS to default value: -g -O2
dpkg-buildpackage: set FFLAGS to default value: -g -O2
dpkg-buildpackage: set LDFLAGS to default value: -Wl,-Bsymbolic-functions
dpkg-buildpackage: source package hello
dpkg-buildpackage: source version 0.1-1
dpkg-buildpackage: source changed by Stojan Jakotyc <stojan@example.com>
dpkg-buildpackage: host architecture i386
fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
/usr/bin/make distclean
make[1]: Entering directory `/home/inx/balicky/hello-0.1'
make[1]: *** No rule to make target `distclean'. Stop.
make[1]: Leaving directory `/home/inx/balicky/hello-0.1'
make: [clean] Error 2 (ignored)
rm -f config.sub config.guess
dh_clean
dpkg-source -b hello-0.1
dpkg-source: building hello in hello_0.1-1.tar.gz
dpkg-source: building hello in hello_0.1-1.dsc
debian/rules build
dh_testdir
# Add here commands to configure the package.
cp -f /usr/share/misc/config.sub config.sub
cp -f /usr/share/misc/config.guess config.guess
./configure --host=i486-linux-gnu --build=i486-linux-gnu --prefix=/usr --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info CFLAGS="-g -O2" LDFLAGS="-Wl,-z,defs"
configure: warning: CFLAGS=-g -O2: invalid host type
configure: warning: LDFLAGS=-Wl,-z,defs: invalid host type
configure: error: can only configure for one host and one target at a time
make: *** [config.status] Error 1
dpkg-buildpackage: failure: debian/rules build gave error exit status 2
stačí přesunout předávání proměnných CFLAGS a LDFLAGS před volání ./configure
./configure --host=i486-linux-gnu --build=i486-linux-gnu --prefix=/usr --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info CFLAGS="-g -O2" LDFLAGS="-Wl,-z,defs"
a přitom by mělo být:
CFLAGS="-g -O2" LDFLAGS="-Wl,-z,defs" ./configure --host=i486-linux-gnu --build=i486-linux-gnu --prefix=/usr --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info