Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Pozn. autora: Tristní situace okolo dokumentace OBS se během psaní tohoto článku změnila. Proto může následující text p.t. čtenáři připadat jako sprosté opisování, ale není tomu tak. Jednalo se o poměrně otravnou práci, kdy jsem otravoval tvůrce OBS dotazy a dělal vlastní pokusy. Alespoň některé výsledky jsou na výše zmíněném portále vidět.
Proč bychom chtěli stavět svou vlastní instanci OBS? Vždyť přece existuje běžící build.opensuse.org? Důvody mohou být různé. Autor měl motivaci následující:
Potřeboval sestavovat balíky závislé na proprietárním software, který součástí oficiální OBS být nemůže.
Potřeboval sestavovat proprietární software pro mnoho distribucí a nerad by se zbláznil z virtuálních strojů.
Jakožto tvůrce balíků se necítí nejsilnější a při přípravě spec souborů dělá chyby. V oficiální OBS musel často čekat minuty i hodiny, než se dostane na řadu, zabral si cenné systémové prostředky, a pak sledoval, jak build padá s chybou na třetím řádku spec souboru.

Buildservice je služba složená z několika částí. Stručný popis práce je zhruba následující.
Dispatcher (volaný klientem nebo interní notifikací) spustí worker. Worker stahuje binární balíky z repserveru, zdrojové kódy ze srcserveru a výsledné balíčky posílá zpět repserveru. Repserver může předat balíčky k podpisu signeru, pak je zařadí do lokálního repozitáře a informuje publisher, že může balíky publikovat do veřejného download repozitáře.
osc, ale také různé GUI programy nebo např. Android aplikace.Autory OBS doporučováno jako nejsnadnější cesta instalace. Appliance je v podstatě image disku, který může uživatel nakopírovat na zvolené médium. Jednotlivé části OBS se samy nakonfigurují. Kompilované balíky jsou pak ukládány na předdefinovaný disk.
Appliance by se měly snadno aktualizovat. Na druhou stranu použití appliance může představovat bezpečnostní riziko, protože implicitně otvírá své porty celé okolní síťi.
Občas se objeví jako výsledek dobrovolnické práce. Obsahuje všechny komponenty OBS, většinou starší verze, a je nakonfigurována pouze na lokální použití – tj. žádné DNS, žádný přístup na virtualizovaného hosta (guest) z okolní sítě.
Funguje ale automaticky, bez nutnosti jakékoliv konfigurace. I proto je to ideální způsob, jak si OBS vyzkoušet. Také řeší motivační bod č. 3 – odladit balík před finálním sestavením na oficiální OBS.
Je jedno, jestli se jedná o instalaci přímo na server/desktop nebo o instalaci do virtuálního stroje (zde by autor doporučil k rychlé a hrubé instalaci SuseStudio).
Samotná instalace je popsána v souboru README.SETUP (/usr/share/doc/packages/obs-api/). V následujícím textu uvedu doplňky chybějícího, popř. ozřejmím nejasnosti.
Po standardní instalaci jsou služby nastaveny s lokálními IP adresami:
| Služba | Adresa |
|---|---|
| WebUI | http://127.0.42.1 |
| API | http://127.0.42.2 |
| Download | nenastaveno, nebo v případě appliance/image http://localhost |
Pokud chceme OBS zpřístupnit i do lokální nebo veřejné sítě, je třeba výše uvedené adresy změnit.
Zvolená doménová jména (DNS už nastaveno) se změní v konfiguraci virtuálních serverů použitého web serveru. V případě Lighttpd v souboru /etc/lighttpd/vhosts.d/obs.conf.
Příklad:
$HTTP["host"] =~ "build.yarpen.cz\.?" { rails_app = "webui"
rails_root = "/srv/www/obs/webui"
rails_procs = 5
# production/development are typical values here
rails_mode = "production"
log_root = "/srv/www/obs/webui/log"
include "vhosts.d/rails.inc"
}
$HTTP["host"] =~ "api.yarpen.cz\.?" {
rails_app = "api"
rails_root = "/srv/www/obs/api"
rails_procs = 5
# production/development are typical values here
rails_mode = "production"
log_root = "/srv/www/obs/api/log"
include "vhosts.d/rails.inc"
}
$HTTP["host"] =~ "download.yarpen.cz\.?" {
server.name = "download.yarpen.cz"
server.document-root = "/srv/obs/repos/TOra/"
dir-listing.activate = "enable"
# … a dalsi vlastnosti vypisu adresaru
}
Dále je třeba změnit hodnotu proměnné FRONTEND_HOST v souboru /srv/www/obs/webui/config/environments/production.rb tak, aby obsahovala URL OBS API.
Přestože obs signer běží a tváří se spokojeně, výsledné balíky nejsou podepsané. Pokusíme se to tedy změnit:
Ruční editací nastavíme cestu k sign binárce v souboru /usr/lib/obs/server/BSConfig.pm odkomentovat řádek:
our $sign = '/usr/bin/sign'
do konfiguračního souboru /etc/sign.conf doplníme:
user: build@suprdomena.com allow: 127.0.0.1 phrases: /root/.phrases
Hodnota user je identifikátor GPG klíče, který buď již existuje, nebo si jej vytvoříme (gpg --gen-key)
Vytvoříme adresář /root/.phrases
# mkdir /root.phrases
A v něm do souboru se jménem build@suprdomena.com (user v /etc/sign.conf)
# echo tajneheslo > /root/.phrases/build@suprdomena.com
Dále se ujistíme, že je v souboru /root/.gnupg/options uvedena volba force-v3-sigs. Pokud soubor neexistuje, tak jej vytvoříme.
# echo force-v3-sigs > /root/.gnupg/options
Nyní je čas testu.
# rcobssignd start # cd /nejaky/adresar/s/rpm # sign nejaky-balik-ktery-zkusim-podepsat.rpm
Jestliže se balík podařilo podepsat bez chyby, stačí zrestartovat OBS služby a znovu sestavit již existující balíky. V logu (/srv/obs/logs) se začnou objevovat záznamy o úspěšném podepisování.
Nejprve je třeba nastavit OBS tak, aby daný SW dokázala nalézt a použít. Pokud není použitý SW k dispozici v podobě balíků, musíme z něj balíček vytvořit a následně jej naimportovat do vlastního OBS projektu. V následujícm textu dále předpokládejme, že budeme používat Oracle Instant Client, který je v dispozici v podobě RPM balíčků.
Vytvořme nový OBS projekt, který bude sloužit jako veřejnosti neviditelný repozitář OBS. Potom vytvořme adresářovou strukturu, která se do OBS snadno naimportuje. Buď ve webovém rozhraní, nebo pomocí osc:
$ osc -A $API meta prj Oracle:InstantClient:11.2 -F – <<XML
<project name="Oracle:InstantClient:11.2">
<title>Oracle Instant Client 11.2</title>
<description>InstantClient from Oracle OTN.</description>
<person role="maintainer" userid="pvanek"/>
<person role="bugowner" userid="pvanek"/>
<build>
<enable/>
</build>
<publish>
<disable/>
</publish>
<debuginfo>
<disable/>
</debuginfo>
<repository name="standard">
<arch>x86_64</arch>
<arch>i586</arch>
</repository>
</project>
XML
Všimněte si zejména vypnutého parametru publish. Licence nejspíše neumožňuje proprietární balíky redistribuovat, takže si je koncový uživatel bude muset nainstalovat sám.
V nově vzniklém projektovém adresáři na OBS serveru /srv/obs/build/Oracle\:InstantClient\:11.2/standard/ nyní připravíme repozitářovou strukturu:
$ cd /srv/obs/build/Oracle\:InstantClient\:11.2/standard/ $ mkdir i586 x86_64 $ mkdir i586/:full x86_64/:full $ find $ora_rpm_dir -name *i386.rpm | xargs -I@ ln @ i586/:full $ find $ora_rpm_dir -name *x86_64.rpm | xargs -I@ ln @ x86_64/:full $ /usr/lib/obs/server/bs_admin --rescan-repository Oracle:InstantClient:11.2 standard i586 $ /usr/lib/obs/server/bs_admin --rescan-repository Oracle:InstantClient:11.2 standard x86_64 $ chown -R obsrun:obsrun /srv/obs/build/Oracle:InstantClient:11.2
Krok volitelný – dá se nahradit specifikací ve spec souboru. Aby nově sestavované balíky rovnou nacházely požadované závislosti, upravíme konfiguraci projektu, který bude Oracle klienta používat:
$ osc meta prjconf -e mujprojekt
Required: oracle-instantclient11.2-basic
Required: oracle-instantclient11.2-devel
Nyní musíme cílový projekt donutit, aby bral náš Oracle repozitář na vědomí:
$ osc meta prj -e mujprojekt
<project name="mujprojekt">
<title>Lorem ipsum…</title>
<description></description>
<person role="maintainer" userid="pvanek"/>
<person role="bugowner" userid="pvanek"/>
<repository name="openSUSE_11.2">
<path project="openSUSE.org:openSUSE:11.2" repository="standard"/>
<!-- nasledujici radek "prida" oracle repo do hlavniho repozitare distribuce -->
<path project="Oracle:InstantClient:11.2" repository="standard"/>
<arch>x86_64</arch>
<arch>i586</arch>
</repository>
</project>
A kocháme se výsledky.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
)) Nebo aircrack :D