{"id":1757,"date":"2011-02-03T15:41:33","date_gmt":"2011-02-03T13:41:33","guid":{"rendered":"http:\/\/vizZzion.org\/blog\/?p=1757"},"modified":"2011-02-03T15:45:07","modified_gmt":"2011-02-03T14:45:07","slug":"bretzn-vorgestellt","status":"publish","type":"post","link":"https:\/\/vizZzion.org\/blog\/2011\/02\/bretzn-vorgestellt\/","title":{"rendered":"Bretzn vorgestellt"},"content":{"rendered":"<p><img decoding=\"async\" src=\"http:\/\/vizzzion.org\/blog\/wp-content\/uploads\/2011\/02\/bretzn-qtcreator-plugin.png\" title=\"Der Bretzn Qt Creator Plugin\" alt=\"Der Bretzn Qt Creator Plugin\" \/>Softwareentwicklung ist eine nicht ganz triviale Sache. Erstmal muss man nat\u00fcrlich programmieren k\u00f6nnen &#8212; das ist der spassige Teil. Hat man dann allerdings etwas Cooles geschrieben, muss man noch daf\u00fcr sorgen, dass es irgendwie zum Anwender kommt, und dort in&#8217;s System integriert wird. Dass heisst f\u00fcr Linux, dass man Pakete braucht, und ein Repositorium um diese bereit zu stellen. In Zukunft kann man hier auch an Appstores denken, hierzu allerdings sp\u00e4ter mehr. Um also einerseits daf\u00fcr zu sorgen, dass die Software installiert werden kann, andererseits aber auch dass die Entwicklung und Bereitstellung f\u00fcr Entwickler attraktiv ist &#8212; und damit das Angebot an Software vergr\u00f6ssert &#8212; sollte der Prozess so einfach wie m\u00f6glich sein.<\/p>\n<h3>Vom Code zum Paket<\/h3>\n<p>In den letzten Monaten haben wir bei open-slx daran gearbeitet, den Prozess vom funktionierenden Code zu installierbaren Paketen zu vereinfachen. Wir haben uns also mit Nokia und h i v e 01 zusammengesetzt, und einen Plugin f\u00fcr Qt Creator entwickelt, der es einfach, fast trivial, macht, Code zum openSUSE (oder MeeGo) Buildservice hochzuladen, dort zu \u00fcbersetzen, und als Paket bereitzustellen. Hierzu haben wir libattica erweitert, eine Bibliothek, die die Open Collaboration Services in einer API in Qt Stil anbietet. Auf diesen API Erweiterungen baut ein Plugin auf, der es m\u00f6glich macht, mit ein paar Mausklicks Software zu paketieren, und dann \u00fcber die Repos die am OBS h\u00e4ngen anzubieten. (Dies hat zwei Vorteile: RPM Spec-Dateien werden automatisch erstellt (das passiert auf dem OCS Server, der die Kommunikation mit dem OBS relayt), und die Software kann vom OBS f\u00fcr verschiedene CPU Architekturen und Betriebssysteme paketiert werden, was die ganze Arbeit erspart, Entwicklungsumgebungen f\u00fcr allerlei unterst\u00fctzte Systeme vorzuhalten.<\/p>\n<p> <object width=\"640\" height=\"385\"><param name=\"movie\" value=\"http:\/\/www.youtube-nocookie.com\/v\/sqe1pEv95yk?fs=1&amp;hl=en_US\" \/><param name=\"allowFullScreen\" value=\"true\" \/><param name=\"allowscriptaccess\" value=\"always\" \/><embed src=\"http:\/\/www.youtube-nocookie.com\/v\/sqe1pEv95yk?fs=1&amp;hl=en_US\" type=\"application\/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"640\" height=\"385\"><\/embed><\/object><\/p>\n<p>Im Video kann man sehen, wie das funktioniert. Es werden einige Metadaten eingegeben, Accounts eingestellt, und der Code wird hochgeladen. Danach kann man einfach den Buildjobs f\u00fcr verschiedene &quot;Targets&quot; anstossen, sodass das Paket dann z.B. f\u00fcr openSUSE 11.3 auf einem 64 Bit Intel System l\u00e4uft. Der Prozess verl\u00e4uft dann gr\u00f6sstenteils in der &quot;Cloud&quot;, d.h. auf dem OCS und OBS Servern. Auf dem Client braucht man ausser der eigenen &quot;normalen&quot; Entwicklungsumgebung nur den Qt Creator Plugin zu installieren, d.h. keine chroot oder virtuelle Maschinenen aufzusetzen, oder \u00e4hnlich arbeitsaufw\u00e4ndige Dinge.<\/p>\n<h3>Im Laden<\/h3>\n<p><img decoding=\"async\" src=\"http:\/\/vizzzion.org\/blog\/wp-content\/uploads\/2011\/02\/appstore.jpg\" title=\"Prototype Appstore\" alt=\"Prototype Appstore\" \/>Es stellt sich die Frage, warum dies \u00fcber OCS passieren muss, und warum man nicht direkt mit dem Buildservice \u00fcber die REST API oder Werkzeuge wie &quot;osc&quot; kommuniziert. Die OCS Schnittstelle bringt einerseits Appstore Integration, andererseits auch soziale Features, und in Zukunft vermutlich auch ein Abrechnungssystem (die Plattform soll ja auch attraktiv f\u00fcr solche sein, die f\u00fcr ihre Programme Geld verlangen m\u00f6chten). Im Appstore Sprint, der k\u00fcrzlich in N\u00fcrnberg stattfand, wurden einige Fragen zur Clientseite besprochen, und ein erster Prototyp entwickelt. Der Ansatz hier ist deutlich: Im Gegensatz zu &#8216;traditionellen Paketmanagern&#8217; gibt&#8217;s hier auch eine soziale Komponente: Benutzer k\u00f6nnen Software kommentieren und bewerten. Ausserdem ist die Benutzeroberfl\u00e4che ansprechender gestaltet und bietet Screenshots und m\u00f6glicherweise Screencasts. Benutzer k\u00f6nnen Benachrichtigungen bei neuen Ver\u00f6ffentlichungen oder Updates abonnieren.<\/p>\n<p>Mehr Informationen hierzu k\u00f6nnt ihr auf den folgenden Seiten finden:<\/p>\n<ul>\n<li> <a href=\"http:\/\/www.pro-linux.de\/news\/1\/16659\/erste-version-von-bretzn-freigegeben.html\">Erste Version von Bretzn freigegeben<\/a> (Pro-Linux)<\/li>\n<li> <a href=\"http:\/\/dot.kde.org\/2011\/01\/31\/bring-your-kde-application-masses-bretzn\">Bring Your Application to the Masses<\/a> (Dot KDE) <\/li>\n<li> <a href=\"http:\/\/socialdesktop.org\/bretzn\/\">Social Desktop: Project Bretzn<\/a> (socialdesktop.org) <\/li>\n<li> <a href=\"http:\/\/news.opensuse.org\/2011\/02\/01\/bretzn-results-released-into-the-wild\/\"> Bretzn results released into the wild<\/a> (openSUSE News) <\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Softwareentwicklung ist eine nicht ganz triviale Sache. Erstmal muss man nat\u00fcrlich programmieren k\u00f6nnen &#8212; das ist der spassige Teil. Hat man dann allerdings etwas Cooles geschrieben, muss man noch daf\u00fcr sorgen, dass es irgendwie zum Anwender kommt, und dort in&#8217;s System integriert wird. Dass heisst f\u00fcr Linux, dass man Pakete braucht, und ein Repositorium um&hellip; <a class=\"more-link\" href=\"https:\/\/vizZzion.org\/blog\/2011\/02\/bretzn-vorgestellt\/\">Continue reading <span class=\"screen-reader-text\">Bretzn vorgestellt<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,29,36,13,35],"tags":[],"class_list":["post-1757","post","type-post","status-publish","format-standard","hentry","category-german","category-kde","category-open-slx","category-opensuse","category-qt"],"_links":{"self":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts\/1757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/comments?post=1757"}],"version-history":[{"count":4,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts\/1757\/revisions"}],"predecessor-version":[{"id":1761,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts\/1757\/revisions\/1761"}],"wp:attachment":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/media?parent=1757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/categories?post=1757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/tags?post=1757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}