V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.
Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).
MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.
int groups = 0;
/* whichever comes first */
while ( (i < magnets) && (!feof(fp)) )
{
fgets(buf, BUFMAX, fp);
i++;
/* input validation */
if ( ((buf[0] == '+') && (buf[1] == '-')) || ( (buf[0] == '-') && (buf[1] == '+')) ) {
/* first magnet in queue */
if (last_pole == 'x') {
last_pole = buf[1];
groups = 1;
continue;
}
if (buf[0] == last_pole) {
groups++;
}
last_pole = buf[1];
}
else {
fprintf (stderr, "ERROR: invalid entry! Skipping this line.. \n");
continue;
}
}
fprintf (stdout, "%d\n", groups);
int
main (void)
{
int n, res = 1;
char x, y, yprev;
if (scanf("%d", &n) != 1)
goto err;
if (scanf(" %c%c", &x, &yprev) != 2)
goto err;
for (; --n; yprev = y)
{
if (scanf(" %c%c", &x, &y) != 2)
goto err;
if (yprev != y)
res++;
}
printf("%d\n", res);
return EXIT_SUCCESS;
err:
puts("Invalid input");
return EXIT_FAILURE;
}
Tiskni
Sdílej: