Knihovna libpng, tj. oficiální referenční knihovna grafického formátu PNG (Portable Network Graphics), byla vydána ve verzi 1.6.51. Opraveny jsou 4 bezpečnostní chyby obsaženy ve verzích 1.6.0 (vydána 14. února 2013) až 1.6.50. Nejvážnější z chyb CVE-2025-65018 může vést ke spuštění libovolného kódu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 159 (pdf).
Hru Warhammer: Vermintide 2 (ProtonDB) lze na Steamu získat zdarma napořád, když aktivaci provedete do pondělí 24. listopadu.
Virtualizační software Xen (Wikipedie) byl vydán v nové verzi 4.21. Podrobnosti v poznámkách k vydání a přehledu nových vlastností.
Evropská komise schválila český plán na poskytnutí státní pomoci v objemu 450 milionů eur (téměř 11 miliard Kč) na rozšíření výroby amerického producenta polovodičů onsemi v Rožnově pod Radhoštěm. Komise o tom informovala v dnešní tiskové zprávě. Společnost onsemi by podle ní do nového závodu v Rožnově pod Radhoštěm měla investovat 1,64 miliardy eur (téměř 40 miliard Kč).
Microsoft v příspěvku na svém blogu věnovaném open source oznámil, že textové adventury Zork I, Zork II a Zork III (Wikipedie) jsou oficiálně open source pod licencí MIT.
První prosincový týden proběhne SUSE Hack Week 25. Zaměstnanci SUSE mohou věnovat svůj pracovní čas libovolným open source projektům, například přidání AI agenta do Bugzilly, implementaci SSH v programovacím jazyce Zig nebo portaci klasických her na Linux. Připojit se může kdokoli.
Google oznámil, že Quick Share na Androidu funguje s AirDropem na iOS. Zatím na telefonech Pixel 10. Uživatelé tak mohou snadno přenášet soubory z telefonů s Androidem na iPhony a obráceně.
Byla vydána nová verze 8.5 (8.5.0) skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Přináší řadu novinek a vylepšení (URI Extension, Pipe Operator, Clone With, …). Vydána byla také příručka pro přechod z předchozích verzí.
Evropská komise zahájila tři vyšetřování týkající se cloudových platforem Amazon Web Services (AWS) a Microsoft Azure. Evropská exekutiva, která plní také funkci unijního antimonopolního orgánu, chce mimo jiné určit, zda jsou americké společnosti Microsoft a Amazon v cloudových službách takzvanými gatekeepery, tedy hráči, kteří významně ovlivňují provoz internetu a musí dle nařízení o digitálních trzích (DMA) na společném trhu
… více »Nevím jestli si toho všimnul i někdo jiný, ale s masovým rozšířením gitu začala éra totálního úpadku štábní kultury při uvolňování aktualizovaných verzí software, což sebou nejspíš stáhne do sraček i linuxové distribuce, které za sebou nemají týmy placených specialistů co mají hrabání se v software jako svou pracovní náplň. V čem tkví podstata problému.
Díky moderním verzovacím systémům, jako je git se stalo verzování velice pohodlným. Dříve, než byla nějaká verze uvolněná, předcházel jejímu vydání testovací proces, který měl za cíl ověřit, že je vše skutečně funkční. Dnes na to nikdo nemá čas. Změny se totiž v repozitářích objevují tak rychle, že co platilo včera již platit nemusí. A každý zásah do kódu může znamenat jak zavlečení nové chyby, tak změnu chování aplikace, která se za určitých okolností může ukázat jako fatální.
Není sporu o tom, že původní systém založený na tarballech byl pro vývojáře poněkud nepohodlný - kdo by se chtěl zpětně babrat v kódu a hledat opravu, když se kód připravovaný pro další vydání změnil natolik, že v něm už oznámená chyba ani nemusí existovat.
Verzovací systémy to značně ulehčují. Není nic snazšího, než kód, který má být považován za stabilní, umístit do nové věteve. Každý ať si pak z repozitáře klonuje co chce. Opravy nalezených chyb jsou v takovém případě mnohem snazší. Jenže to má háček.
Pro vývojáře, který se ve svém repozitáři hrabe dnes a denně je jasné jak facka, kterou větev lze považovat za stabilní a která je vývojová. Jenže co lidé, kteří sestavují distribuční balíky?
Dříve to bylo zcela jasné. Vydaný balíček měl své číslo verze a z čísla subverze bylo ihned jasné, který kód je novější. Jenže dnes? Opravy se mastí rovnou do příslušné větve a kód se čas od času otaguje více či méně smysluplným číslem subverze. Potud ok.
Jenže pokud je aplikace sestavena z aktuálního kódu, nic takového nemá. V lepším případě sebou nese hash aktuálního commitu. Jenže z toho lze jen stěží poznat ze které větve pochází.
V případě komplexních softwarových balíků, které se skládají s více komponent tak postupně vzniká větší a větší bordel, neboť pozvolna přestává být jasné z jakých verzí byly vlastně sestaveny a jaké podmínky musí být splněny aby vše fungovalo jak má. A pokud se objeví chyba tak vyvstávají zcela zásadní otázky:
Většina lidí v současné době má problém skutečnou příčinu chyby vůbec odhalit. Vývoj díky verzovacím systémům je tak prudký, že věci rozbíjejí na jiných místech dřív, než se stačí opravovat chyby předchozí. Není divu, že pak nastávají situace jakou popisuje aktuální zprávička o dění kolem XscreenSaveru v Debianu. Není v silách maintainerů aby sledovali každý prd. A v případě komponent, které závisí na hromadě dalšího software to zkrátka nejsou schopni zvládat.
Já mám svůj vlastní příklad takového problematického distribučního balíku, kterému se principiálně vyhýbám - Pacemaker. Ne proto, že by ten distribuční balík nebyl funkční, ale nemohu si zkrátka dovolit riskovat rozbití funkčního clusteru kvůli obyčejné aktualizace. Cluster není desktop. Když se rozběhá, tak musí běžet a to i řadu let - pak již není prostor na hledání příčiny toho proč něco nefunguje.
Pacemaker netvoří jen jedna komponenta. Jeho funkcionalita je závislá na celé řadě komponent, které mají své vlastní vývojové repozitáře. A stačí jen drobná změna v chování některé z nich k tomu, aby vaše skvělá konfigurace přestala pro aktualizaci fungovat tak jak má. Jenže Pacemaker je komplexní software, jehož testování není jednoduché - ne každý má k dispozici stroje, na kterých by si mohl vyzkoušet všechny možné i nemožné situace ke kterým může dojít. Uživatelská základna není tak široká, abyste měli s kým váš problém konzultovat a hledání příčiny proč něco najednou přestalo fungovat žere čas, který vám nikdo nezaplatí.
Řeším tedy situaci tím, že používám vlastní binární balíček u kterého mám 100% jistotu že funguje jak má. To jsem se takhle před dvěma lety strefil do šťastného období, kdy zrovna všechno fungovalo jak má. Distribuční balík je v podstatě také funkční, i verze sestavená z aktuálních zdrojových kódů, ale bohužel se nechovají korektně a já nemám čas zjišťovat, zda-li je problém v tom, že chybí něco v konfiguraci, nebo je někde nějaký bug.
Tiskni
Sdílej:
Přijde mi zavádějící tohle připisovat gitu a jeho rozšíření. To, jakým způsobem projekt (ne)označuje, (ne)testuje a (ne)vydává nové verze, je IMHO dáno především náturou a způsobem uvažování jeho vývojářů. Podle mých zkušeností projekty, které buď přešly na git buď z CVS/SVN nebo které předtím ani veřejně přístupný VCS repozitář, svou release policy obvykle nijak zásadně nezměnily.
Git může řadu postupů usnadnit, ale pokud vývojář např. míchá nesouvisející změny dohromady nebo nepíše smysluplné commit message, git ho k tomu sám o sobě nedonutí. A s polikou pro vydávání a označování verzí je to IMHO úplně stejné. Z hlavy mne napadá třeba mplayer, který měl dlouhou dobu jen jeden prastarý (pre-)release a denní snapshoty, a to ještě předtím, než byl k dispozici veřejný VCS repozitář.
vývojář např. míchá nesouvisející změnyto on existuje nejaky system, ktery nesouvisejici zmeny rozezna? Jak?
Jediný takový systém, který znám, je přísný a důsledný maintainer. :-)
Ale to byla podstata mého příspěvku: git může workflow usnadnit a dobře vedenému projektu pomoci. Ale pokud vývojáři nemají disciplínu a na "štábní kulturu" kašlou, nepomůže takovému projektu sebelepší VCS.
Spousta let k plné spokojenosti (teda krom toho že po pár letech v tom začne být obrovský bordel a nejvíc místa na disku sežere adresář /usr/src).A právě o tom to je. Pokud si někdo šmudlá dva tři víceméně podobné stroje, tak je to ještě únosné, ale pokud je těch strojů více, každý pes jiná ves. Každý s jiným účelem, v různých lokalitách, s různou konfigurací - pak se stává situace neúnosnou a bez nástrojů jako Puppet, Chief apod. totálně nezvladatelnou. Po pravdě řečeno - kdybych nezvolil již před lety strategii jakou mám (kritické balíky vlastní provenience, základní konfigurace udržované přes Puppet a sledované přes git) tak už bych byl v pytli.
Pokud si někdo šmudlá dva tři víceméně podobné stroje, tak je to ještě únosné,No moc ne. Hele a dělá si někdo vlastní balíčky nebo dokonce provozuje vlastí repositář?
Hele a dělá si někdo vlastní balíčky nebo dokonce provozuje vlastí repositář?
Třeba já. Dokonce několik.
openSUSE Build Service - výhodou je, že pokud u projektu povolím publikování, výsledné balíčky jsou k dispozici přes URL, které můžu přímo předat "zypper addrepo" a funguje pak stejně jako kterýkoli jiný repozitář.
Až na výjimky (např. snapshoty Firefoxu, u kterých chci, aby nekolidovaly s distribučním balíčkem) se snažím držet FHS a dalších distribučních zvyklostí.
Buď si lze udělat kompletní repo, jako máme třeba pro vlastní buildy cross-kompilátorů. Něco o použití a instalaci těch kompilátorů zde https://rtime.felk.cvut.cz/hw/index.php/Cross_compilers. O použití vání Debian repa na našem serveru https://rtime.felk.cvut.cz/wiki/index.php/Debian_packages_repository a obecně, podle čeho to bylo postavené http://blog.jonliv.es/blog/2011/04/26/creating-your-own-signed-apt-repository-and-debian-packages/
Pokud se jedná o použití jen o použití na jednotlivém počítači nebo o nutnost instalace vybuildovaných balíčků závislostí během kompilace než je odzkoušené, že má smysl balíčky poslat do repa, tak je nejjednodušší provést
mkdir -p /usr/local/debs echo "deb file:/usr/local/debs unstable main" >/etc/apt/sources.list.d/local-debs.list cd /usr/local/debs mkdir -p pool mkdir -p dists/unstable/main/binary-amd64 mkdir -p dists/unstable/main/binary-i386 touch override
Pak si vybuildovat balíky, s tím, že ve vastních mám control třeba nastavené unstable, ale není nutností. Balík, pokud je vybuildovaný třeba před dpkg-buildpackage dám například do /usr/local/debs/pool/fpc, nakopíruji všechny vygenerované *.deb a často si tam schovám i zdrojáky v TARu, abych to měl u sebe a pak provedu
umask 022
ARCHS="amd64 i386"
OVERRIDE=override
DISTRIBUTION=unstable
cd /usr/local/debs || exit 1
for ARCH in $ARCHS ; do
dpkg-scanpackages -a${ARCH} pool ${OVERRIDE} \
>dists/${DISTRIBUTION}/main/binary-${ARCH}/Packages
gzip -c dists/${DISTRIBUTION}/main/binary-${ARCH}/Packages \
>dists/${DISTRIBUTION}/main/binary-${ARCH}/Packages.gz
done
apt-ftparchive -c conf/apt-${DISTRIBUTION}-rtime-release.conf \
release dists/${DISTRIBUTION} >dists/${DISTRIBUTION}/Release
A pak již klasicky
aptitude update aptitude install jmeno-baliku
Většinou tedy jdu spíš přes interaktivní režim a přes "l" vyberu balík a pak vidím, jakou verzi nabízí distribuce (její verze bude podle nastavení distribuce default) a jaké alternativní verzi mám k dispozici včetně té mé a tu si vyberu a nainstaluji. Pokud později distribuce přejde na novější verzi, než mám lokálně přidanou, tak se mi i v updatech automaticky objeví, ale updaty distribuce, které jsou mezi staršími verzemi než je ta moje se automaticky nenabízí. V aptitude si ale kdykoliv mohu verzi vybrat a přeinstalovat mezi nabídkou různých repozitářů, jsou vidět jen aktuální verze z repositářů, vracet se ke starším bez jejich uložení v local nejde a mít v jednom local více verzí pod stejným jménem balíku také povede k tomu, že bude nabízený jen ten nejnovější. Alespoň takto to umím já, možná je nějaká alternativa.
S gitem se to má jako s PHP.Asi tak jako se to s autem má jako s nohou. :)
Neni to spise tim, ze mas obavy, ze lide, jako jsi ty sam, by v ciste kapitalismu posli hlady?To tedy rozhodně nemám. Lidé jako jsem já jsou totiž pro čisté kapitalisty jako ty slepice co jim nesou zlaté vejce. Sice se jim moc nechce sypat zobání, jenže bez něj nejsou ta vejce na kterých stojí jejich byznys. Nedělám si iluze, ale kolik je v téhle zemi lidí co se hrabou v technologiích co já? 50? A to jsem možná přehnal. Ale co tam počítače. Je tolik jiných činností co člověk může dělat a mít z nich potěšení i obživu. Takže opravdu ne. Ale mezi uživit se a parazitovat na práci jiných je nebetyčný rozdíl.
Já mám svůj vlastní příklad takového problematického distribučního balíku, kterému se principiálně vyhýbám - Pacemaker. Ne proto, že by ten distribuční balík nebyl funkční, ale nemohu si zkrátka dovolit riskovat rozbití funkčního clusteru kvůli obyčejné aktualizace. Cluster není desktop. Když se rozběhá, tak musí běžet a to i řadu let - pak již není prostor na hledání příčiny toho proč něco nefunguje.Jen tak mimochodem - Pacemaker už je taky v jessie-backports. Ale automatický upgrade z wheezy na jessie prý fungovat nebude, takže už se těším, že budu mít co na práci
třeba gnunet si snaží vynucovat štábní kulturu používáním svn a ne gitu.Nikoliv. Tedy alespoň podle toho, co tam píšou.
First, we want to be open to new developes and make the learning curve as simple as possible.A proto se člověk musí učit mnohem složitější nástroj namísto nástroje, který může během několika minut používat i pro vlastní projekty.
Sure, git does not prevent this, but it makes it too easy to keep code "private".Tomu subversion nijak nezabrání a nejlepším důkazem je právě dále zmíněný git-svn. Já chápu, že Git není svatý grál, je to jenom nástroj se svými výhodami i omezeními. Chápu i to, že lidé dají vědomě přednost jiným nástrojům. Ale obávám se, že subversion existuje pouze z historických důvodů a udržuje se pouze díky stávající user base.
Nikoliv. Tedy alespoň podle toho, co tam píšou.Vyplývalo mi to právě z toho
Second, as a maintainer I want developers to commit ('push' in Git terminology) often, so we have an integrated version and run automated regression tests, portability analysis, static analysis tools, etc. on the code all the time. Sure, git does not prevent this, but it makes it too easy to keep code "private".ale může být, že jde spíš hlavně o zvyk na svn.
Pacemaker netvoří jen jedna komponenta. Jeho funkcionalita je závislá na celé řadě komponent, které mají své vlastní vývojové repozitáře. A stačí jen drobná změna v chování některé z nich k tomu, aby vaše skvělá konfigurace přestala pro aktualizaci fungovat tak jak máAle souhlasim s tim, ze bude hur. Ale ne kvuli GITu, ale kvuli rezignaci na princip KISS u lidi, kteri se venuji infrastrukture, a snaham budovat obrovske molochy, kde neni jasne, co se deje uvnitr a co souvisi s cim.
"Záporná" role verzovacích systémů je především v tom, že díky svým vlastnostem oddalují okamžik katarzeVerzovaci systemy verzuji, nic vic, nic min. Ze si nekdo zvoli proces vydavani verzi podle svych potreb, je bud jeho nebo tvuj problem, ne verzovaciho systemu. FYI: Podstata meho sdeleni byla uplne jina. Tvuj problem je uz v samotnem Pacemakeru a v jeho (molochovite) architekture a implementaci a za to GIT opravdu nemuze. Pokud mas problem, ze dilci aktualizace neco rozbije, zvazoval bych poohlednuti se po jinem reseni.