Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.
Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.
Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.
Apple představil iPhone Pocket pro stylové přenášení iPhonu. iPhone Pocket vzešel ze spolupráce značky ISSEY MIYAKE a Applu a jeho tělo tvoří jednolitý 3D úplet, který uschová všechny modely iPhonu. iPhone Pocket s krátkým popruhem se prodává za 149,95 dolarů (USA) a s dlouhým popruhem za 229,95 dolarů (USA).
Byla vydána nová stabilní verze 7.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 142. Přehled novinek i s náhledy v příspěvku na blogu.
Společnost Epic Games vydala verzi 5.7 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
print "wow!"
Soubor __main__.py způsobí, že je složka foo nyní "spustitelná". Můžeme tedy zavolat "python2 foo".
Nyní vytvoříme ze složky zip soubor:
python2 -m zipfile -c foo.zip foo/*
Zip soubor je také spustitelný:
python2 foo.zip
Vytvoříme soubor "foo" a do něj zapíšeme shebang:
#!/usr/bin/env python2
Nakonec obsah zipu zapíšeme na konec souboru foo a povolíme spuštení:
cat foo.zip >> foo
chmod +x foo
Voilá, máme spustitelnou binárku! :)
Uvedený postup ukázal David Bezley ve své přednášce Modules and Packages: Live and Let Die! (čas 45min) na konferenci PyCon 2015.
Tiskni
Sdílej:
#!/usr/bin/env php <?php Phar::mapPhar(); include 'phar://myphar.phar/index.php'; __HALT_COMPILER(); ... a tady následuje archiv
python3 -m zipfile -c foo.zip foo/* funguje, kdežto zip foo.zip foo/* ne?
Do zápisku by se pak hodil tenhle odkaz, zmíněn v prezentaci.
Proč ale python3 -m zipfile -c foo.zip foo/* funguje, kdežto zip foo.zip foo/* ne?protože takhle do archivu nacpeš i ten adresář, ale python očekává pouze jeho obsah, tohle by mělo fungovat:
zip -j foo.zip foo/*
Bez tejto vlastnosti by nebolo možné urobiť samorozbaľovacie zip (s príponou .exe).
cat $0 | tail -c +30 | tar xf a pak je přilepený ten tarball. (btw. jak skipnout prvních N bajtů souboru? dd nefunguje a tail -c +N IMHO není podporovaný všude)
S tarom musí človek vedieť presný offset. Na zip postačuje obyčajné unzip subor.exe.
S tarom musí človek vedieť presný offset.Přesně tak. Tyhle prasárny fakt miluju, ještě když je to nakombinovaný s naprosto dementním stahovacím systémem...
Jako mnohem větší prasárna mi přijde, že stáhneš soubor z Internetu po HTTP a ani nezkontroluješ jeho hash.
Nyní vytvoříme ze složky zip soubor:
Že by inspirace Javou?
(JAR)
Nakonec obsah zipu zapíšeme na konec souboru foo a povolíme spuštení:
V Javě není potřeba ani nic takhle hackovat – použije se standardní mechanismus: binfmt_misc.
Vytvoříme si soubor Test.java s obsahem např.:
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
System.out.println(Arrays.toString(args));
}
}
Zkompilujeme a spustíme:
#Zkompilujeme: javac Test.java #Vytvoříme JAR: jar cfe test.jar Test Test.class # nastavíme spustitelný příkaz chmod +x test.jar # spustíme jako běžnou binárku ./test.jar ahoj
binfmt_misc se řídí buď příponou nebo magickým číslem – takže přípona může být libovolná. Viz binfmt_misc: spouštíme javovské programy podobně jako nativní binárky
BTW: pro Python by to mělo fungovat taky:
$ cat /proc/sys/fs/binfmt_misc/python2.7 enabled interpreter /usr/bin/python2.7 flags: offset 0 magic 03f30d0a $ cat /proc/sys/fs/binfmt_misc/python3.4 enabled interpreter /usr/bin/python3.4 flags: offset 0 magic ee0c0d0a
Keďže jar súbory sú normálne zip súbory
Úplně normální ne – sice je tam na začátku taky PK, ale další bajty jsou jiné. Můžeš si to vyzkoušet – příkaz file dokáže rozlišit ZIP a JAR.