Google zveřejnil seznam 1220 projektů od 195 organizací (Debian, GNU, openSUSE, Linux Foundation, Haiku, Python, …) přijatých do letošního, již dvacátého, Google Summer of Code.
Na základě DMCA požadavku bylo na konci dubna z GitHubu odstraněno 8535 repozitářů se zdrojovými kódy open source emulátoru přenosné herní konzole Nintendo Switch yuzu.
Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.
O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).
Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.
Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.
Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.
sieve_before
a sieve_after
, které umožňují definovat další Sieve skripty (nebo celé adresáře se skripty). Pravidla v sieve_before
se zpracují před uživatelskými pravidly, sieve_after
po nich (ale jen v případě, že zpráva zůstává ve zpracování). Takže pokud už se má nějaké zpracování vynucovat všem uživatelům (i když to obecně nevidím jako přínosné), lze to využít. Všechny tyto skripty (stejně jako skript s globálními pravidly) se musí předem kompilovat pomocí sievec
.
Vy sieve_before a sieve_after pouzivate uspesne?Nepoužívám vůbec. Zatím jsem neměl takovou potřebu a obecně mě nenapadá příliš případů, kdy to má smysl (proto jsem to ani neuvedl v článku). Nicméně to mohu příležitostně vyzkoušet.
sieve_before
a funguje bez problémů.
... xfilter "/usr/sbin/spamc" ... if (/^X-Spam-Status: *Yes/) { exception { to ... } } ...
require ["fileinfo", "copy"]; if header :contains "X-Spam-Status" "Yes" { setflag "$Junk"; fileinto ".Spam"; stop; } else { "fileinto" :copy folder: "/home/backup/%d/%n";Nicmene mi to nefunguje. Domnival jsem se, ze misto %d se doplni domena.tld a misto %n username. Existuje nejaky elegantni a funkcni zpusob, jak dostat z hlavicky uzivatele a domenu (treba i nejak parsovat To:)...?
if
, to else
už je zbytečné. Mimochodem zbytečný je i příkaz stop
, protože akce fileinto
ruší implicitní keep
(viz RFC 5228, bod 2.10.2) a žádný jiný důvod k uvedení zde není.
Není to myšleno jako zálohování (když tam vidím to backup)? Pokud ano, tak mi to nepřijde jako příliš smysluplné řešení, spíš jako takové "velkobratrské" (ukládá se všechno, nezálohuje se stav ke konkrétnímu okamžiku).
editheader
podle RFC 5293, bylo by to velmi jednoduché - stačilo by podle obálkového příjemce vytvořit novou hlavičku (např. X-Original-Recipient
), pak to přeposlat na speciálního uživatele (třeba velkybratr@moje.domena
), u něj pak tuto hlavičku rozežírat a zprávy správně třídit. Jenže protože zatím toto rozšíření podporováno není, nelze takové řešení použít.
Možná by se ale dala rozežírat hlavička Delivered-To
, protože je možné (ale to právě nevím), že se přidává do zprávy až na konci zpracování LDA. Chtělo by to prověřit, zda tam po přeposlání kopie nejsou ty hlavičky dvě. Pokud je tam opravdu jen ta první, je vyhráno - stačí hlavičku pomocí :domain
a :localpart
rozežrat do proměnných a podle nich pak uložit zprávu do správné složky.
require ["fileinfo", "copy", "envelope"]; if header :contains "X-Spam-Status" "Yes" { setflag "$Junk"; fileinto ".Spam"; stop; } else { "fileinto" :copy folder: "/home/backup/:domain/:localpart"; }
require ["fileinto", "copy", "envelope", "variables"]; ... if allof(envelope :domain :matches "to" "*", envelope :localpart :matches "to" "*") { fileinto :copy "/home/backup/${1}/${2}"; }Je to jen hrubý nástřel. Dělá to to, že se vyhodnocují obě části adresy obálkového příjemce, dají se do proměnných a tyto proměnné se pak použijí. Jenže zásadní problém bude v tom, že asi nebude možné použít absolutní cestu k poštovní složce (nezkoušel jsem, v dokumentaci o tom nic není, nicméně velmi pochybuji).
To:
, která nemusí odpovídat skutečnosti. Hlavičku Delivered-To:
jsem teď zkusil, ale tu použít nelze, protože se tam vloží ve druhém exempláři při doručování po přeposlání.
To ale stale neresi situaci, kdy potrebuji mit kopie ne v Maildiru urciteho uzivatele, ale v uplne jine cesteTo je velmi snadno řešitelné tím, že se ten Maildir umístí na tu správnou cestu.
Jeste mne teda napada vlozit pred frontu (v master.cf) skript, ktery by udelal kopii, respektive nakopiroval email do zaloh a zpravu poslal zpet do fronty postfixu kde ji prevezme deliver. Tohle asi neni uplne nejsistci reseni.Pak existují ještě jiná řešení. Tak například využít incron, pokud by už uměl rekurzivně sledovat celé podstromy filesystému (ššššššššš - to se snáší popel na moji hlavu ). Nebo použít jiné programy, které už to umějí, např. inotify-tools. Pak stačí jen chytat událost
IN_MOVED_TO
, testovat, zda šlo o přesun z adresáře tmp
do new
v rámci inboxu (protože to je operace, kterou je završeno doručení zprávy) a pak už jen kopírovat příslušné zprávy.
zda šlo o přesun z adresáře tmp do new v rámci inboxuResp. spíš nejen v rámci inboxu, ale ve všech poštovních složkách kromě spamové.
Tiskni Sdílej: