Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším
… více »Byl vydán Mozilla Firefox 155.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 Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.
Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.
Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.
Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.
IKEA a XBOX představují kolekci YXSTABY (pdf). Ta přináší designová a praktická řešení, díky nimž se prostor pro hraní během sekundy promění v útulný a harmonický domov.
Jonathan Thomas oznámil vydání verze 4.0 nelineární střižny OpenShot. Nově podporuje nahrávání obrazu a zvuku, vylepšuje uživatelské rozhraní, mj. color grading, přidává další efekty a mnoho dalšího (seznam změn).
Proběhlo hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu si odhlasovali zodpovědné využívání generativní umělé inteligence.
Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří vývoj Flatpaku částkou 508 640 eur.
Byla vydána první veřejná verze v7.0-mk2 projektu Multikernel (mklinux), který umožňuje spouštět více nezávislých linuxových jader současně na jednom stroji bez hypervizoru.
DEST_DIR=~/build
cd ffmpeg ; \
./configure --prefix=${DEST_DIR} --libdir=${DEST_DIR} --enable-gpl \
--enable-shared --enable-libvorbis --enable-libogg --enable-pp --enable-swscaler
make
make install
cd ../mlt
./configure --prefix=${DEST_DIR} --libdir=${DEST_DIR} --enable-gpl \
--enable-motion-est --enable-mmx --avformat-swscale
make
make install
cd ../mlt++
./configure --prefix=${DEST_DIR} --libdir=${DEST_DIR}
make install
cd ../kdenlive
sh bootstrap
./configure --prefix=${DEST_DIR} --libdir=${DEST_DIR}
make
make install
Bude to fungovat jak zamýšlím?
Je nutné nastavovat libdir?
Bude výsledná aplikace spustitelná i z jiného adresáře, pokud ji například zkopíruji (vč knihoven ffmpeg a mlt) do /opt/kdenlive? Nebo je navždy přikovaná k adresáři určenému v době kompilace (buildování)?
Musím se přiznat, že tyhle otázky mě už dlouho ležely v hlavě, ale dosud jsme je nepotřeboval řešit. /usr/local postačoval. Ne tak nyní.
O LD_LIBRARY_PATH vím, nicméně všude od toho zrazují, např
http://xahlee.org/UnixResource_dir/_/ldpath.html - Why LD_LIBRARY_PATH is bad.
Jak přemluvit linuxový program, aby primárně použil knihovny z vlastního (pod)adresáře, místo systémových, a zároveň byl nezávislý na adresářovém umístění v souborovém systému?
Děkuji
ld.so... pro vice man ld.so
snad jsem to moc nedomotal :)
./bar budeš spúšťať LD_LIBARY_PATH=/usr/local/foo/lib ./bar. Dá sa to tiež použiť v KDE menu/ikonkách takže to nejak nepohodlné nie je.
Používam Slackware a nerád používam binárne balíky, ktoré priamo v Slackware-i nie sú. A tak si kompilujem svoje veci. Vždy do /usr/local/meno-aplikacie. Samozrejme, že občas narazím na závislosti a tak kompilujem aj knižnice - rovnakým spôsobom: /usr/local/meno-knižnice. Občas je to trocha trápenie, ale človek sa sem tam aj niečo naučí. Týmto spôsobom mi funguje avidemux, mplayer, xdtv, tvtime, fontforge, scribus, audacity, inkscape, Battle For Wesnoth, lxdoom, ldescent, pingus, ... (Jedine čo so nedokázal rozbehať bola cinelerra - ale to je problém ich build-u.) A problém s tým nie je.
/usr/local ale /usr/local/menokniznice
Oni by mi ji pak ten bleeding-edge ffmpeg ze svn a mlt začaly používat další aplikace a to NECHCI.
Nie sme na windowsoch. Samo od seba sa nič používať nezačne. Pokiaľ nainštaluješ knižnice do adresárov, ktoré nie sú v /etc/ld.so.conf a nemáš globálne nastavené LD_LIBRARY_PATH tak mplayer, amarok či xine nemajú odkiaľ vedieť, že na systéme pribudlo nejaké /usr/local/ffmpeg-pre-kdenlive/lib/libffmpeg-x.y.so. Problém býva len presvedčiť kompiláciu aplikácie o tom, kde hľadať tú knižnicu. Občas je na to switch pre configure. Občas treba pre shell, v ktorom kompiluješ, upraviť PKG_CONFIG_PATH, a občas treba hacknúť configure.
/usr/local/ffmpeg-pre-kdenlive tam to asi opravdu linker hledat nebude.
I když jeden nikdy neví
V SUSE do /etc/ld.so.conf.d si vesele vpašoval svoji cestu mplayer plugin pro Mozillu.
Ještě by mě zajímalo jak to řešíte práva do /usr/local. Tam má standardně právo zápisu jen root, ne?
Problém býva len presvedčiť kompiláciu aplikácie o tom, kde hľadať tú knižnicu.
Co LD_LIBRARY_PATH, ta se při pekladu nebere v úvahu?
No pak tu máme CFLAGS a LDFLAGS.
make install do odresára, ktorý vlastní. Výhodou je, že pokiaľ make install chce písať niekam inam, tak sa o tom dozviem.
> Co LD_LIBRARY_PATH, ta se při pekladu nebere v úvahu? No pak tu máme CFLAGS a LDFLAGS.
To je síce pravda, ale existujú napr. inštalačné skripty, ktoré tieto premenné predefinovávajú.
ld má volbu -rpath, která určuje, kde se mají hledat knihovny při runtime linkování... Ale jak to přesně funguje, to si nejsem jistej...
ld se vola behem sestavovani, gcc hleda standardne v /usr/include a pripadne -I -L pro dalsi adresare.
... A less common technique (and less documented it seems) is to use something called an RPATH. RPATH is like LD_LIBRARY_PATH in that it tells the runtime linker "look in this directory for shared libraries". The key difference between RPATH and LD_LIBRARY_PATH is that RPATH is written into the binary itself it's not an environment variable. ...http://www.the-martins.org/index.php?name=Sections&req=viewarticle&artid=6&page=1 Soft intro to rpath
gcc -Wl,--rpath,../lib -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3 -I"/home/espinosa/src/ffmpeg" -I"/home/espinosa/src/ffmpeg" -I"/home/espinosa/src/ffmpeg"/libavutil -I"/home/espinosa/src/ffmpeg"/libavcodec -I"/home/espinosa/src/ffmpeg"/libavformat -I"/home/espinosa/src/ffmpeg"/libswscale -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -DHAVE_AV_CONFIG_H -I"/home/espinosa/src/ffmpeg"/libswscale -I"/home/espinosa/src/ffmpeg"/libavcodec -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/home/espinosa/src/ffmpeg" -I"/home/espinosa/src/ffmpeg" -I"/home/espinosa/src/ffmpeg"/libavutil -Wl,--rpath,../lib -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3 -c -o allcodecs.o allcodecs.c In file included from allcodecs.c:27: avcodec.h:2499: warning: ‘ImgReSampleContext’ is deprecated avcodec.h:2505: warning: ‘ImgReSampleContext’ is deprecated gcc: --rpath: linker input file unused because linking not done gcc: ../lib: linker input file unused because linking not done gcc: --rpath: linker input file unused because linking not done gcc: ../lib: linker input file unused because linking not doneNení to chyba, jen varování. Mám se tím zabývat? Také je s podivem, že se to tam dostalo dvakrát! Nemám raději nastavit LDFLAGS?
espinosa@esplaptop:~/build/bin> /sbin/ldconfig /sbin/ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
LD_RUN_PATH a ne RPATH.
RPATH je buď starý název, nebo se používá v jiných systémech než linux (BSD? Solaris?).
Co je důležité, reaguje to na relativní cesty jak má. Díky tomu pak bude možné výsledný balík binárka a knihovny zkopírovat na libovolné místo (eh to jsem ještě nezkoušel..), třeba na /opt/kdenlive nebo /usr/local/kdenlive.
Výsledek je izolovaný od knihoven systému, můžete tak mít více verzí ffmpeg, mlt nebo kdenlive. Pokud se knihovna nenajde v přednastaveném adresáři (přednastaveném LD_RUN_PATH) hledá se dále již standardním způsobem podle cest co jsou v ld.so.conf resp. nastavení LD_LIBRARY_PATH. Tohle je důležité, aby se našli knihovny jako libc, libswscal, liblame, libmpeg2 které jsme nekompilovali ale chceme je vzít ze systému, distribuční verze.
Takhle pak může vypadat skript:
export DEST_DIR=~/build/kdenlive export PATH=$DEST_DIR/bin:$PATH export LD_RUN_PATH=../lib cd ffmpeg && ./configure --prefix=$DEST_DIR --enable-gpl --enable-shared --enable-libvorbis --enable-libogg --enable-pp && make && make install && cd ../mlt && ./configure --prefix=$DEST_DIR --enable-gpl --disable-mmx --avformat-swscale make && make install && cd ../mlt++ && ./configure --prefix=$DEST_DIR && make && make install && cd ../kdenlive && sh bootstrap && ./configure --prefix=$DEST_DIR && make && make install ;;Dobrá pomůcka pro zjištění, zda se LD_RUN_PATH prosadila do vašich knihoven a binárek je příkaz
ldd:
espinosa@esplaptop:~/build/kdenlive/bin# ldd ../share/mlt/modules/libmltavformat.soPozor, pokud používáte relativní adresy, tak je důležité z jakého adresáře příkaz ldd voláte! A ještě podrobnější výpis jak se knihovny hledají:
espinosa@esplaptop:~/build/kdenlive/bin#LD_DEBUG=libs ./kdenlive
Tiskni
Sdílej: