Byl vydán Mozilla Firefox 152.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 152 bude brzy k dispozici také na Flathubu a Snapcraftu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.7 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Hříčka xsnow, která na ploše spustí sněžení, je protestware. Pokud jste v Rusku (LANG=ru), zobrazuje ukrajinské vlajky.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala beta verzi Ubuntu Touch 24.04-2.0. Nová verze již počítá s výřezy pro fotoaparát (notch) a zaoblenými rohy displeje. Webový prohlížeče Morph přešel z Chromia 87 na Chromium 134. Do shellu Lomiri byl přidán editor snímků obrazovky.
V Praze probíhá Flock 2026, tj. konference pro přispěvatele a příznivce Fedory. Přednášky lze sledovat také na YouTube.
Node-RED (Wikipedie, GitHub), webová aplikace postavená na Node.js pro vizuální programování a propojování hardwarových zařízení, API a online služeb, byl vydán ve verzi 5.0. Přehled novinek v příspěvku na blogu.
Byla vydána nová verze 3.27.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 5 zranitelností.
Řídící výbor GCC schválil záměr do GCC začlenit backend WebAssembly.
Po 9 týdnech vývoje od vydání Linuxu 7.0 oznámil Linus Torvalds vydání Linuxu 7.1. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a časem také na Linux Kernel Newbies.
Cheat Engine (Wikipedie) je s verzí 7.7 k dispozici už také pro Linux. Jedná se o proprietární skener/debugger paměti používaný především k cheatování v počítačových hrách.
#include <sys/types.h>
#include <sys/event.h>
#include <sys/time.h>
#include <stdio.h>
#include <fcntl.h>
int main(void)
{
int kq, flags;
if ((kq = kqueue()) == -1)
return -1;
if ((flags = fcntl(kq, F_GETFL, NULL)) == -1)
return -1;
printf("FD_CLOEXEC: %s\n", (flags & FD_CLOEXEC) ? "yes" : "no");
return 0;
}
Odpověď zní:
FD_CLOEXEC: no
#include <sys/types.h>
#include <sys/event.h>
#include <sys/time.h>
#include <stdio.h>
#include <fcntl.h>
int main(void)
{
int kq, flags;
if ((kq = kqueue()) == -1)
return -1;
if ((flags = fcntl(kq, F_GETFD, NULL)) == -1) /* Nikoli GETFL, ale GETFD*/
return -1;
printf("FD_CLOEXEC: %s\n", (flags & FD_CLOEXEC) ? "yes" : "no");
return 0;
}
Závěr je ale stejný, COLOEXEC by default není, což je standardní, neznám žádný FD, který by tento bit měl ve výchozím stavu.
Bit lze pak nastavit pomocí
fcntl(kq, F_SETFD, FD_CLOEXEC);Omlouvám se za počáteční zmatenost. FreeBSD mám na desktopu, ale programuji hlavně pro Linux.
COLOEXEC by default není, což je standardní, neznám žádný FD, který by tento bit měl ve výchozím stavu.Já taky ne, ale spoustě systémových volání jde nastavit flag, aby to tak bylo.
Omlouvám se za počáteční zmatenost. FreeBSD mám na desktopu, ale programuji hlavně pro Linux.Nic se neděje, alespoň se někdo snaží pomoci. Nastavit potom jde, ale protože se jedná o knihovnu, nemůžu zaručit, jak jsem zmínil výše, že uživatel nemá další vlákno, kde forkuje, a mezi kqueue() a fcntl() pak vzniká race-condition, kdy mi může deskriptor uniknout do uživatelova podprocesu.
The kqueue() system call creates a new kernel event queue and returns a descriptor. The queue is not inherited by a child created with fork(2).Proces před exec() většinou sebe fork()ne, takže v tomto případě nastavení CLOEXEC není třeba. Problém bude, když nějaké vlákno přímo zavolá exec() bez forknutí.
Tiskni
Sdílej: