Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 28. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za červenec (YouTube).
Konečně se ochladilo, možná i díky tomu přestaly na chvíli padat rakety jako přezrálé hrušky, díky čemuž se na Virtuální Bastlírně dostane i na jiná, přízemnější témata. Pokud si chcete jako každý měsíc popovídat s dalšími bastlíři, techniky, vědci a profesory u virtuálního pokecu u piva, Virtuální Bastlírna je tu pro Vás.
Ještě před ochlazením se drát na vedení V411 roztáhl o 17 metrů (přesné číslo není známé, ale drát nepřežil) a způsobil tak… více »Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
PixiEditor byl vydán ve verzi 2.0. Jedná se o multiplatformní univerzální all-in-one 2D grafický editor. Zvládne rastrovou i vektorovou grafiku, pixel art, k tomu animace a efekty pomocí uzlového grafu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GNU LGPL 3.0.
Byly představeny novinky v Raspberry Pi Connect for Organisations. Vylepšen byl protokol auditu pro lepší zabezpečení. Raspberry Pi Connect je oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče. Verze pro organizace je placená. Cena je 0,50 dolaru za zařízení za měsíc.
CISA (Cybersecurity and Infrastructure Security Agency) oznámila veřejnou dostupnost škálovatelné a distribuované platformy Thorium pro automatizovanou analýzu malwaru. Zdrojové kódy jsou k dispozici na GitHubu.
Ubuntu nově pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 3. snapshot Ubuntu 25.10 (Questing Quokka).
Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia Proton Authenticator. S otevřeným zdrojovým kódem a k dispozici na všech zařízeních. Snadno a bezpečně synchronizujte a zálohujte své 2FA kódy. K používání nepotřebujete Proton Account.
Argentinec, který byl náhodně zachycen Google Street View kamerou, jak se zcela nahý prochází po svém dvorku, vysoudil od internetového giganta odškodné. Soud uznal, že jeho soukromí bylo opravdu porušeno – Google mu má vyplatit v přepočtu asi 12 500 dolarů.
Všechno v životě má svůj líc i rub a čím déle jsme na cestě za hledáním dokonalosti, tím více zjišťujeme, jak se nám vzdaluje.
Na lícu distribuce Slackware Linuxu lze mj. spatřit kompaktnost a nekopromisní dodržování osvědčených principů a zásad, zajišťovaných "laskavým diktátorem života" Patrickem Volkerdingem jako jejím jediným správcem. Na stejném místě, ale na straně rubové, lze logicky najít omezenou množinu distribuovaných balíčků, která nemůže uspokojit všechny požadavky svých uživatelů.
Tvorba binárních balíčků se řeší pomocí tzv. SlackBuild skriptů, což nejsou nic jiného než posloupnosti shellových příkazů, kterými se standardně daný software instaluje ze zdrojových souborů. Základy např. zde
(
PDF), ale hlavně podstrom repozitáře sources. Pro svoji potřebu zmírnit nedostatek uvedený v předchozím odstavci, zbastlil jsem kdysi šablonu takového SlackBuild skriptu, který mi s drobnými úpravami slouží dodnes a který jsem si drze dovolil podstrčit do svého prvního blogu K dokonalosti má opravdu daleko, je tam minimum kontrol, aplikace případných patchů není automatizována atd. Nechť si dotyční dotčení kritici toto dopíší sami
Skript se sestává ze 4 logicky souvisejících pasáží(inicializace, konfigurace zdrojů, kompilace zdrojů a relokovaná instalace, sestavení balíčku). Spouští se pod rootem, kritické části 2 a 3 běží pod běžným uživatelem. Pro zdrojáky postavené kolem automake a autoconf většinou stačí jen doplnit hodnoty proměnných v části 1. Skript implicitně počítá, že obsah balíčku se zdrojovými soubory je uložen do adresáře formátu <název balíčku>-<verze>.
Pro squid by mohly být proměnné nastavené např. takto:
...
PKG_NAME="squid" # basic name of a package
PKG_VERSION="2.5.STABLE10" # release version
PKG_ARCH=${PKG_ARCH:-i486} # architecture to build for
PKG_BUILD=${PKG_BUILD:-2loj} # id of build in one release
PKG_DOCS="AUTHORS COPYING* LICENSE README NEWS \
ChangeLog" # distributed documents
PKG_SRC=${PKG_NAME}-${PKG_VERSION}.tar.bz2 # sources tarball name
CONFIG_OPTIONS="--prefix=/usr/local \
--sysconfdir=/etc \
--localstatedir=/var \
--with-pthreads \
--enable-openssl" # options for config. script
TMP=/home/lojza/tmp # temporary files directory
PKG=${TMP}/package-${PKG_NAME} # sources build path
TAR_PARAMS="" # tar extraction parameters
SLACK_PKGDIR="/_archive/slackware/packages" # package destination directory
USER_BUILD=lojza # account used to build srcs
...
Následuje celá šablona.
#!/bin/sh
# SlackBuild template (cl) Triton, 2005
cd `dirname "$0"` # dive into SlackBuild dir first
###############################################################################
### 1/4 ENVIRONMENT VARIABLES INITIALIZATION, BASIC CHECKS ###################
PKG_NAME="" # basic name of a package
PKG_VERSION="" # release version
PKG_ARCH=${PKG_ARCH:-i686} # architecture to build for
PKG_BUILD=${PKG_BUILD:-1trt} # id of build in one release
PKG_DOCS="AUTHORS COPYING* LICENSE README NEWS" # distributed documents
PKG_SRC=${PKG_NAME}-${PKG_VERSION}.tar.gz # sources tarball name
CONFIG_OPTIONS="--prefix=/usr/local \
--sysconfdir=/etc \
--localstatedir=/var" # options for config. script
TMP=/tmp # temporary files directory
PKG=${TMP}/package-${PKG_NAME} # sources build path
SLACK_PKGDIR="/_archive/slackware/packages" # package destination directory
TAR_PARAMS="" # tar extraction parameters
USER_BUILD=triton # account used to build srcs
CWD=`pwd` # SlackBuild directory
CALLWD="$OLDPWD" # directory called from
case ${PKG_ARCH} in
( i386 | i486 | i586 | i686 )
SLKCFLAGS="-O2 -march=${PKG_ARCH} -mcpu=i686 -pipe";;
( s390 | x86_64 )
SLKCFLAGS="-O2";;
( * ) {
echo "Unsupported architecture $PKG_ARCH !"
exit 1
}
esac
export PKG_NAME PKG_VERSION PKG_ARCH PKG_BUILD PKG_DOCS PKG_SRC SLACK_PKGDIR CWD TMP PKG SLKCFLAGS
[ ! -r slack-desc ] && { echo "slack-desc file is missing !"; exit 1; }
[ ! -r ${PKG_SRC} ] && { echo "Source tarball ${PKG_SRC} is missing !"; exit 1; }
if [ -z "$TAR_ARGS" ]; then
if [ `expr "${PKG_SRC}" : ".*\.tar\.gz$"` -ne 0 ] || [ `expr "${PKG_SRC}" : ".*\.tgz$"` -ne 0 ]; then
TAR_PARAMS="xzvf"
elif [ `expr "${PKG_SRC}" : ".*\.tar\.bz[2]$"` -ne 0 ] || [ `expr "${PKG_SRC}" : ".*\.tbz[2]$"` -ne 0 ]; then
TAR_PARAMS="xjvf"
else
echo "Source tarball ${PKG_SRC} doesn't look like an gzipped or bzipped tar !"
exit 1
fi
fi
export TAR_PARAMS
# run parts 2/4 - 3/4 in "safe" user context
su - "$USER_BUILD" -c "{
###############################################################################
### 2/4 SOURCES EXTRACTION, PATCHES APPLYING ##################################
rm -rf ${PKG}
mkdir -p ${PKG}
cd ${TMP}
rm -rf ${PKG_NAME}-${PKG_VERSION}
tar ${TAR_PARAMS} ${CWD}/${PKG_SRC}
cd ${PKG_NAME}-${PKG_VERSION}
#zcat ${CWD}/${PKG_NAME}.diff.gz | patch -p1 --verbose --backup --suffix=.orig
CFLAGS=\"$SLKCFLAGS\" \
CXXFLAGS=\"$SLKCFLAGS\" \
./configure ${CONFIG_OPTIONS}
###############################################################################
### 3/4 SOURCES COMPILATION, INSTALL INTO PACKAGING DIRECTORY, STRIPPING #####
make -j3
make install DESTDIR=${PKG}
# Adjust docs to traditional Slackware location:
[ -d ${PKG}/usr/doc/${PKG_NAME}-${PKG_VERSION} ] || mkdir -p ${PKG}/usr/doc/${PKG_NAME}-${PKG_VERSION}
mv ${PKG}/usr/share/doc ${PKG}/usr
# Add a few more docs:
cp -a ${PKG_DOCS} ${PKG}/usr/doc/${PKG_NAME}-${PKG_VERSION}
mkdir ${PKG}/install
cat ${CWD}/slack-desc > ${PKG}/install/slack-desc
cp ${CWD}/doinst.sh ${PKG}/install/
cd ${PKG}
find . | xargs file | grep 'executable' | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep 'shared object' | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . -type d -name man | xargs -i find {} -type f -name "*.[1-9]" | xargs gzip -9
}" # exit "safe" user context to run 4/4 part as superuser
###############################################################################
### 4/4 POLICIES APPLYING, FINAL PACKAGE CREATING #############################
cd ${PKG}
chown -R root.root .
chgrp -R bin bin sbin usr/bin usr/sbin usr/local/bin usr/local/sbin
/sbin/makepkg -l y -c n ${SLACK_PKGDIR}/${PKG_NAME}-${PKG_VERSION}-${PKG_ARCH}-${PKG_BUILD}.tgz && \
rm -rf ${TMP}/${PKG_NAME}-${PKG_VERSION} ${PKG}
cd ${CALLWD}
Tak a teď se ještě zapsat do příslušného mailing listu a jedna aktualizace může stíhat druhou
Tiskni
Sdílej:
ebuild
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R'
2V,*3$D-EG4PC!<*(%%I"<*$`
`
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R'
2V,*3$D-EG4PC!<*(%%I"<*$`
`
Z'LI0(%:`&/NRU`Y0"@8.L%.%PG(%!D>"<!@C(4&'?`UO!/$"K\2)+!1K',R'
2V,*3$D-EG4PC!<*(%%I"<*$`
`