Firma Murena představila /e/OS verze 2.0. Jde o alternativní sestavení Androidu bez aplikací Google. Mezi novinkami je podrobnější nastavení ochrany soukromí před sledováním aplikacemi. Murena prodává několik smartphonů s předinstalovaným /e/OS (Fairphone, repasovaný Google Pixel 5).
Do 30. května lze v rámci akce Warhammer Skulls 2024 získat na Steamu zdarma hru Warhammer 40,000: Gladius - Relics of War.
HelenOS (Wikipedie), tj. svobodný operační systém českého původu založený na architektuře mikrojádra, byl vydán ve verzi 0.14.1. Přehled novinek v poznámkách k vydání. Vypíchnou lze nabídku Start. Videopředstavení na YouTube.
BreadboardOS je firmware pro Raspberry Pi Pico (RP2040) umožňující s tímto MCU komunikovat pomocí řádkového rozhraní (CLI). Využívá FreeRTOS a Microshell.
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 24.05. Přehled novinek i s náhledy a videi v oficiálním oznámení. Do balíku se dostalo 5 nových aplikací: Audex, Accessibility Inspector, Francis, Kalm a Skladnik.
Byla vydána (𝕏) nová verze 18.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.
V neděli 26. května lze navštívit Maker Faire Rychnov nad Kněžnou, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byla vydána nová stabilní verze 3.20.0, tj. první z nové řady 3.20, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou počáteční podporu 64bitové architektury RISC-V.
Společnost Jolla na akci s názvem Jolla Love Day 2 - The Jolla comeback představila telefon se Sailfish OS 5.0 Jolla Community Phone (ve spolupráci se společností Reeder) a počítač Jolla Mind2 Community Edition AI Computer.
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: