Po osmi měsících vývoje byla vydána nová verze 0.16.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 244 vývojářů. Přehled novinek v poznámkách k vydání.
Nejnovější X.Org X server 21.1.22 a Xwayland 24.1.10 řeší 5 bezpečnostních chyb: CVE-2026-33999, CVE-2026-34000, CVE-2026-34001, CVE-2026-34002 a CVE-2026-34003.
Po roce vývoje od vydání verze 1.28.0 byla vydána nová stabilní verze 1.30.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.30.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2026-04-13. Přehled novinek poznámkách k vydání. Nově ve výchozím nastavení příkaz sudo vyžaduje heslo.
Společnost Blackmagic Design oznámila vydání verze 21 svého proprietárního softwaru pro editování videí a korekci barev DaVinci Resolve běžícího také na Linuxu. Z novinek je nutno vypíchnout možnost editování fotografií. Základní verze DaVinci Resolve je k dispozici zdarma. Plnou verzi DaVinci Resolve Studio lze koupit za 295 dolarů.
Multipatformní renderovací jádro webového prohlížeče Servo je na crates.io. S vydáním verze 0.1.0 (LTS).
Nadace FreeBSD Foundation před týdnem oznámila projekt Laptop Integration Testing. Vyzvala dobrovolníky, aby pomocí nástroje otestovali podporu FreeBSD na svých zařízeních a výsledky odeslali vývojářům. Vznikla stránka Nejlepší notebooky pro FreeBSD.
Na začátku srpna vstoupí v účinnost nová evropská pravidla transparentnosti pro umělou inteligenci (AI). Zavádějí povinnost jakýkoli AI obsah označit, informovat o takzvaných deepfakes a upozornit uživatele, že komunikuje s umělou inteligencí. Cílem opatření je omezit šíření manipulativního či klamavého obsahu, zvýšit důvěru v digitální prostředí a chránit uživatele.
Connor Byrne z USA používal pro přihlašování na svůj iPhone 13 s iOS 18 heslo obsahující háček. Po aktualizaci na iOS 26.4 se už ale do telefonu nepřihlásí. Při přihlašování nelze tento háček zadat. Apple jej prostě odstranil [The Register].
Linus Torvalds vydal jádro Linux 7.0. Podrobný výčet změn je ke zhlédnutí na stránce Kernel Newbies, stručné výběry v LWN (část první, druhá).
#include
#include "window.h"
#include "windowadapters.h"
#include "adapters_compont.h"
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{
window = NULL;
uii.setupUi(this);
connect(uii.actionExit, SIGNAL(triggered()), this, SLOT(close()));
// -----------------------------------------------------------------------------
QPushButton * adapterButton = new QPushButton;
adapterButton->setText("Adapters");
uii.vboxLayout->addWidget(adapterButton);
connect(adapterButton, SIGNAL(clicked()), this, SLOT(ShowAdapters()));
QPushButton * eraseButton = new QPushButton;
eraseButton->setText("Erase");
uii.vboxLayout->addWidget(eraseButton);
connect(eraseButton, SIGNAL(clicked()), this, SLOT(WindowErase()));
QPushButton * exitButton = new QPushButton;
exitButton->setText("Exit");
uii.vboxLayout->addWidget(exitButton);
connect(exitButton, SIGNAL(clicked()), this, SLOT(close()));
QSpacerItem * spacer1 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
uii.vboxLayout->addItem(spacer1);
scrollArea = new QScrollArea;
uii.vboxLayout1->addWidget(scrollArea);
// ---------------------------------------------------------------------
}
void MainWindow::ShowAdapters()
{
if(window==NULL)
{
window = new windowadapters;
scrollArea->takeWidget();
scrollArea->setWidget(window);
scrollArea->setWidgetResizable(window);
}
}
void MainWindow::WindowErase()
{
if(window!=NULL)
{
window->close();
window=NULL;
}
}
#include QtGui>
#include "window.h"
#include "windowadapters.h"
#include "adapters_compont.h"
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{
window = NULL;
uii.setupUi(this);
connect(uii.actionExit, SIGNAL(triggered()), this, SLOT(close()));
// -----------------------------------------------------------------------------
QPushButton * adapterButton = new QPushButton;
adapterButton->setText("Adapters");
uii.vboxLayout->addWidget(adapterButton);
connect(adapterButton, SIGNAL(clicked()), this, SLOT(ShowAdapters()));
QPushButton * eraseButton = new QPushButton;
eraseButton->setText("Erase");
uii.vboxLayout->addWidget(eraseButton);
connect(eraseButton, SIGNAL(clicked()), this, SLOT(WindowErase()));
QPushButton * exitButton = new QPushButton;
exitButton->setText("Exit");
uii.vboxLayout->addWidget(exitButton);
connect(exitButton, SIGNAL(clicked()), this, SLOT(close()));
QSpacerItem * spacer1 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
uii.vboxLayout->addItem(spacer1);
// ---------------------------------------------------------------------
}
void MainWindow::ShowAdapters()
{
if(window==NULL)
{
scrollArea = new QScrollArea;
window = new windowadapters;
scrollArea->setWidget(window);
scrollArea->setWidgetResizable(window);
uii.vboxLayout1->addWidget(scrollArea);
}
}
void MainWindow::WindowErase()
{
if(window!=NULL)
{
window->close();
window=NULL;
delete scrollArea;
}
}
Tiskni
Sdílej: