Byl vydán Debian 12.10, tj. desátá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Byla vydána nová verze 4.5 svobodného notačního programu MuseScore (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Byla vydána nová verze 8.6.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2025. Na programu je celá řada zajímavých přednášek a workshopů. Vstup je zdarma. Přednášky lze sledovat i online na YouTube.
Byla vydána nová verze 2.49.0 distribuovaného systému správy verzí Git. Přispělo 89 vývojářů, z toho 24 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Premiér Petr Fiala (ODS) dnes na síti X vyloučil, že by za jeho vlády mohla začít platit vyhláška, podle níž by poskytovatelé internetového připojení měli uchovávat adresy internetových stránek, na které se lidé připojují.
Flock 2025, tj. konference pro přispěvatele a příznivce Fedory, proběhne od 5. do 8. června v Praze.
Zemřel Mark Klein, který dlouhá léta pracoval pro telekomunikační firmu AT&T a proslavil se jako whistleblower, když zveřejnil informace o spolupráci AT&T s agenturou NSA. Cílem spolupráce bylo sledovat veškerou komunikaci občanů za pomocí zařízeních v místnosti 641A. O spolupráci obou subjektů napsal knihu Wiring Up The Big Brother Machine...And Fighting It.
Byla vydána nová verze 16 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Texas Instruments představil nejmenší mikrokontrolér na světě MSPM0C1104. Je o 38 % menší než současné nejmenší mikrokontroléry. Má pouze 1,38 mm².
Není to náhodou tak, že rozhoduje to, co si myslí systémový ldconfig?
Tj. pokud soubor přejmenujete, tak na systému, kde má binár nakonec běžet, je potřeba upravit ld.so.conf (přidat správnou cestu) a spustit /sbin/ldconfig, aby se změna promítla do ld.so.cache (nebo jak se to ve Vašem distru jmenuje). Binár dynamicky slinkovaný na jednom systému proti jedné verzi knihovny (jménu souboru.so) bude fungovat transparentně i na jiném systému kde je jiná verze téže knihovny (jiné číslo ve jménu souboru .so) - za předpokladu, že na cílovém systému o knihovně ldconfig ví, a za důležitého předpokladu, že se mezi verzemi nezměnily Vámi používané prototypy funkcí a obsahy structů (jinak segfault).
Pokud chcete "distribuovat správnou verzi knihovny se svým vlastním binárem", asi Vám nakonec nezbyde než to slinkovat staticky :-|
Hint: zkuste se mrknout, jaké soubory to hledá, pomocí utility "strace" .
(Jak to sakra dělá Gobo Linux?)
A hele, ono je možné natáhnout knihovnu i explicitně / programově - ale z Cčka je to krkolomné.
http://www.ibm.com/developerworks/linux/library/l-dynamic-libraries/index.html
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Žádná transparentnost ala perlový Dynaloader. Je to dáno rozdílem mezi staticky typovaným kompilátorem (C) a dynamickým interpreterem (Perl). Když chcete v Cčku volat funkci, třeba i nepřímo přes pointer, musíte už při kompilaci znát její prototyp (ne jméno, ale počet a typy argumentů). Nepříjemným důsledkem pro Vás je, že i když ve Vašem případě znáte předem kompletní hlavičkový soubor knihovny, tak pokud byste ji chtěl loadovat explicitně přes dlopen(), budete si muset ve Vašem kódu explicitně deklarovat prototyp ke každé funkci, kterou chcete použít (a budete ji muset volat přes pointer). Opravte mě někdo jestli kecám...
-rpath se používá až při spouštění, takže když máte ./lib, bute to relativně k adresáři, ze kterého spouštíte; to asi nechcete... dejte tam absolutní cestu. Pro linker při linkování potřebujete -L./lib.
Mrkněte na výstup "ldd binárka", potom taky RTFM ld.so, zvláště LD_DEBUG, RPATH a $ORIGIN.
Soubor libknihovna.so bez verze je pouze link na jednu z verzí, které máš nainstalovány -- typicky na tu poslední, což zařizuje ldconfig -- a používá se pouze v čase kompilace.
Přesnější by bylo napsat při linkování (při kompilaci potřebujete jen hlavičkové soubory).
-R
. Něco jako (snad jsem zkopíroval tu správnou část):
XLINKER=-Xlinker # or empty for Solaris ... $(CC) $(LDFLAGS) -o $@ -L. $(XLINKER) -R $(XLINKER) . $(OBJFILES)
Proč to neslinkujete staticky?
Jinak bych se trochu bál, že knihovna zkopírovaná jako hotový binární soubor bude mít další svoje vlastní "dependencies", které na cílovém systému mohou haprovat - ale konkrétně s SDL nemám v tomto směru zkušenosti...
Tiskni
Sdílej: