Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost PINE64 kvůli nedostatku a vysokým cenám DRAM a eMMC dočasně pozastavuje výrobu linuxových zařízení. Výroba zařízení jako PineTime, PineVoice a Pinecil pokračuje.
Společnost Stripe se dohodla na akvizici společnosti OpenRouter. Za 7,5 miliardy dolarů.
Byla vydána nová verze 1.27 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
V pátek 28. srpna se v Praze uskuteční již osmý Mobile Linux Hackday. Jako obvykle se potkáme v pražské pobočce SUSE v Karlíně na Křižíkově, takže kromě mobilního Linuxu je to tentokrát i příležitost přijít se podívat na nově zrekonstruované kanceláře. Začínáme v 10:00, ale dorazit můžete samozřejmě kdykoliv v průběhu dne. Setkáním vás provede David Heidelberg, vývojář GPU ovladačů v Mesa 3D a jeden z hlavních lidí české komunity kolem … více »
Představen byl Raspberry Pi Compute Module 5 Programming Jig. Jedná se o zařízení umožňující připravit Compute Module 5 do plně funkčního stavu bez nutnosti použití dalších vstupně / výstupních desek. Podporuje automatizaci pomocí nástroje rpi-sb-provisioner. Podrobnosti v dokumentaci.
Hackeři ve Francii ukradli data více než půl milionu daňových poplatníků. Je to jeden z největších hackerských útoků v dějinách země. O útoku z konce června informovala až teď daňová správa. Teprve od pondělí dotčeným občanům zasílá e-maily s instrukcemi, jak postupovat dál. Hackeři se sice nedostanou k penězům dotyčných, hrozí ale věrohodné podvody. Hackeři získali třeba celá jména, údaje o rodinných příslušnících nebo také údaje o
… více »Společnost Framework představila nový Framework Laptop 12 s Intel Core Series 3, Thunderbolt 4, Wi-Fi 7, volitelnou čtečkou otisků prstů a podsvícenou klávesnicí s open-source firmwarem ZMK. Objednat lze s předinstalovanou Fedorou 44 KDE Plasma.
Byl vydán Mozilla Firefox 154.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 154 bude brzy k dispozici také na Flathubu a Snapcraftu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 168 (pdf).
Creating compile log /var/log/sorcery/compile/rlwrap-0.33.bz2 Creating tablet in directory /var/state/sorcery/tablet/rlwrap/20091126140339 Creating install log /var/log/sorcery/install/rlwrap-0.33 Creating MD5 log /var/log/sorcery/md5sum/rlwrap-0.33 Creating cache file /var/cache/sorcery/rlwrap-0.33-i686-pc-linux-gnu.tar.bz2 rm: invalid argument: `' Finished processing install requests. Spells installed successfully: ------------------------------ rlwrapZprvu se předpokládalo, že se jedná o chybu v sorcery. Stejná hláška se ale začala objevovat i při překladě ze zdrojových kódů pomocí ./configure; make. Například balíček libXt:
make[3]: Entering directory `/usr/src/libXt-1.0.7/src' CC ActionHook.lo rm: invalid argument: `' CC Alloc.lo rm: invalid argument: `' CC ArgList.lo rm: invalid argument: `'Změnilo se chování příkazu rm. V souboru NEWS se u příkazu rm píše pouze o změnách při práci s read-only souborovým systémem. Tady se ale o read-only souborový systém nejedná. Nakonec se zjistilo, že danou hlášku lze vypsat příkazem rm "".
# rm "" rm: invalid argument: `'Nikdo asi nebude úmyslně mazat soubor "", což vlastně není žádný soubor, poněvadž jsou uvozovky zpracovány shellem. Problém nastává, pokud chci v shell skriptu smazat soubor, jehož jméno mám v nějaké proměnné. Například rm "$A" v případě, že proměnnou A nemám definovanou. V sorcery byl problém vyřešen jednoduše. Prostě se před spuštěním příkaze rm zkontroluje, zda se opravdu jedná o soubor:
- rm -f $IW_LOG $C_LOG $TMP_INST_LOG $TMP_MD5_LOG "$STAGE_INST_LOG" \ - "$spell_sub_depends" "$spell_rsub_depends" "$spell_depends" + for file in "$IW_LOG $C_LOG" "$TMP_INST_LOG" "$TMP_MD5_LOG" \ + "$STAGE_INST_LOG" "$spell_sub_depends" "$spell_rsub_depends"\ + "$spell_depends" + do + [[ -f $file ]] && rm -f "$file" + doneJe tady ale jiný problém. Co se stane při spuštění příkazu rm a b "" c? Předchozí verze příkazu rm zahlásí chybu (rm: cannot remove `': No such file or directory) a soubory a b c smaže. Nová verze také zahlásí chybu (rm: invalid argument: `'), i když jinou, soubory ale nesmaže.
$ rm --version | head -n 1 rm (GNU coreutils) 7.6 $ touch a b c; rm a b "" c; ls rm: cannot remove `': No such file or directory # rm --version | head -n 1 rm (GNU coreutils) 8.1 # touch a b c; rm a b "" c; ls rm: invalid argument: `' a b cHolt není rm jako rm. Co by vlastně měl příkaz rm provést a jakou chybovou hlášku vypsat při spuštění rm ""? Je lepší "No such file or directory" nebo "invalid argument"? Těžko říct. Jisté ale je, že skripty fungující i několik let a využívající chybu nebo vlastnost předchozí verze rm se budou muset zkontrolovat a případně upravit.
Tiskni
Sdílej:
rm (GNU coreutils) 7.6
** Improvements rm: rewrite to use gnulib's fts This makes rm -rf significantly faster (400-500%) in some pathological cases, and slightly slower (20%) in at least one pathological case. rm -r deletes deep hierarchies more efficiently. Before, execution time was quadratic in the depth of the hierarchy, now it is merely linear. However, this improvement is not as pronounced as might be expected for very deep trees, because prior to this change, for any relative name length longer than 8KiB, rm -r would sacrifice official conformance to avoid the disproportionate quadratic performance penalty. Leading to another improvement: rm -r is now slightly more standards-conformant when operating on write-protected files with relative names longer than 8KiB.Ono totiz uz selze inicilalizace fts (inicializace souboru pro smazani). Predtim se soubory neinicializovali najednou (nepouzivalo se fts) a chyba se preskocila (ted selze inicializace jako celek). By me zajimalo jak to hodlaj resit, az se nekdo ozve.
-f?
# rm --version | head -1 rm (GNU coreutils) 8.1 # touch -f a b c; rm a b "" c; ls rm: invalid argument: `' a b c #
# touch a b c; rm -f a b "" c; ls rm: invalid argument: `' a b c
Odpověď si můžeme přečíst v rm(1p):
For each file the following steps shall be taken:
1. If the file does not exist:
a. If the -f option is not specified,
rm shall write a diagnostic
message to standard error.
b. Go on to any remaining files.