troubleshooting:thumbnails
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| troubleshooting:thumbnails [2017/11/12 00:15] – [factory sample code] djbuldog | troubleshooting:thumbnails [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 13: | Řádek 13: | ||
| * gnome-thumbnail-factory je knihovna, volá thumbnails, viz description [[https:// | * gnome-thumbnail-factory je knihovna, volá thumbnails, viz description [[https:// | ||
| - | * pokusy | ||
| - | * vytvořil jsem [[troubleshooting: | ||
| - | * ''/ | ||
| - | * jestli bude vůbec zavolán a co dostane na vstup | ||
| - | * pak bych mohl debugovat ten program.... který selhal | ||
| - | * binárka se vůbec nezavolala při přístupu na fotky v nautilus (ani po vymazání cache) | ||
| - | * přitom v mime je minimálně '' | ||
| - | * dotazy na IRC | + | ===== Pokusy ===== |
| - | * Hi, after some upgrades (4 months ago) the thumbs for files are not generated. I found out that gnome-thumbnail-factory should call thumbnailers. I have tried to simple wrap gdk-pixbuf-thumbnailer and it is not execuded. I dont know why :) Only / | + | |
| - | ===== nápady ===== | + | * vytvořil jsem [[troubleshooting: |
| + | * ''/ | ||
| + | * jestli bude vůbec zavolán a co dostane na vstup | ||
| + | * pak bych mohl debugovat ten program.... který selhal | ||
| + | * binárka se vůbec nezavolala při přístupu na fotky v nautilus (ani po vymazání cache) | ||
| + | * přitom v mime je minimálně '' | ||
| * vytvořit si vlastní program, co používá gnome-thumbnail-factory | * vytvořit si vlastní program, co používá gnome-thumbnail-factory | ||
| Řádek 31: | Řádek 28: | ||
| * našel jsem krásný [[https:// | * našel jsem krásný [[https:// | ||
| * co to vytáhnout ze zdrojáků nautilus? | * co to vytáhnout ze zdrojáků nautilus? | ||
| - | * musel jsem doinstalovat: | + | * musel jsem doinstalovat: |
| + | * '' | ||
| * zasekl jsem se na závislosti, | * zasekl jsem se na závislosti, | ||
| - | ==== factory sample code ==== | + | ==== Vlastní program |
| * bude to takový mix ... přepsání toho python sample do c++ po vzoru nautilus :D :D | * bude to takový mix ... přepsání toho python sample do c++ po vzoru nautilus :D :D | ||
| Řádek 147: | Řádek 145: | ||
| </ | </ | ||
| + | ==== Zjištění z vlastního programu ==== | ||
| + | |||
| + | * z prostého spuštění programu jsem nic nezjistil | ||
| + | |||
| + | < | ||
| + | ./ | ||
| + | filepath: / | ||
| + | initialized with GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE set to: 1 | ||
| + | uri: file:/// | ||
| + | mime_type: image/png | ||
| + | mtime: 1416338848 | ||
| + | can thumbnail res: 1 | ||
| + | generated pixbuf??: 0 | ||
| + | calling create_failed_thumbnail skipped | ||
| + | </ | ||
| + | |||
| + | * spuštění strace mi taky moc neřeklo | ||
| + | * spuštění programu na virtuálním debian fungovalo a náhled vytvořilo | ||
| + | * z porovnání strace jsem zjistil že: | ||
| + | * virtuální debian soubor s png obrázkem otevřel a následně načítal knihovnu '' | ||
| + | * potom soubor s obrázkem celý přečetl | ||
| + | * pharaon soubor vůbec neotevřel snažil se otevírat nějaký soubor flatpak-info | ||
| + | |||
| + | * když jsem na pharon spustil strace více ukecaný, tak jsem se konečně dozvěděl, co se děje :) | ||
| + | |||
| + | < | ||
| + | strace -vf -s 1024 ./ | ||
| + | .. | ||
| + | pid 15953] execve("/ | ||
| + | ... | ||
| + | pid 15953] write(2, " | ||
| + | .. | ||
| + | </ | ||
| + | |||
| + | * on se snaží spusitt bwrap (BubbleWrap), | ||
| + | * dělá to asi kvůli zvýšení bezpečnosti | ||
| + | * např. ta zranitelnost spuštění škodlivého kódu přes wine při pokusu extrahovat ikonu z exe souboru | ||
| + | * kontroloval jsem, že bwrap má nastaven setuidbit, ale v kernel ty user namespaces ('' | ||
| + | |||
| + | |||
| + | * zapnutí v kernel napomohlo :D | ||
| + | * debian prý by default blokuje user namespaces přes sysctl | ||
| + | * je vůbec ten usernamespace v kernel potřeba? neměl by stačit ten setuidbit? | ||
| + | * tohle se snaží udělat thumbnail-factory | ||
| + | |||
| + | < | ||
| + | mkdir / | ||
| + | "/ | ||
| + | </ | ||
| + | |||
| + | * výsledek | ||
| + | |||
| + | < | ||
| + | bwrap: Creating new namespace failed, likely because the kernel does not support user namespaces. | ||
| + | </ | ||
| + | |||
| + | * přes strace jsem našel jen jedno podezřelé (za to může asi to zakázané user ns přes sysctl?) | ||
| + | |||
| + | < | ||
| + | stat("/ | ||
| + | </ | ||
| + | |||
| + | * zjistil jsem, že problém jde replikovat nejjednodušeji takhle | ||
| + | |||
| + | < | ||
| + | bwrap --unshare-all bash | ||
| + | </ | ||
| + | |||
| + | * hele.. a co dělá ten unshare-all? | ||
| + | * https:// | ||
| + | * zapnul jsem namespace pro PID, UTS, IPC a jede to !!! :) | ||
troubleshooting/thumbnails.1510442113.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
