website diff de/devel/forge.php @ rev 1312
german pages de/devel/ and de/artwork/ updated according to english pages
author | Hans-G?nter Theisgen |
---|---|
date | Sun Apr 23 17:06:09 2017 +0100 (2017-04-23) |
parents | 702cf77de7a6 |
children | 38797c549c69 |
line diff
1.1 --- a/de/devel/forge.php Fri Jul 27 10:52:12 2012 +0200 1.2 +++ b/de/devel/forge.php Sun Apr 23 17:06:09 2017 +0100 1.3 @@ -1,1 +1,331 @@ 1.4 -../../en/devel/forge.php 1.5 \ No newline at end of file 1.6 +<!DOCTYPE html> 1.7 +<html lang="de"> 1.8 +<head> 1.9 + <meta charset="UTF-8"> 1.10 + <title>SliTaz-Schmiede</title> 1.11 + <meta name="description" content="slitaz Entwickler Schmiede"> 1.12 + <meta name="keywords" lang="en" content="slitaz, devel, hg, bugs"> 1.13 + <meta name="author" content="Christophe Lincoln, HGT"> 1.14 + <?php include("../../lib/html/meta-link.html"); ?> 1.15 +</head> 1.16 +<body> 1.17 + 1.18 +<?php 1.19 +include("../../lib/html/header.de.html"); 1.20 +include("../../lib/html/nav.de.html"); 1.21 +include("../../lib/lang.php"); 1.22 +?> 1.23 + 1.24 +<!-- Content --> 1.25 +<section id="content"> 1.26 + 1.27 +<h2>Gemeinschaftliche Verwaltung</h2> 1.28 + 1.29 +<ul> 1.30 + <li><a href="#kiss">„KISS“ und Standards respektieren.</a></li> 1.31 + <li><a href="#tank">Rechner für die Entwicklung und die Internetpräsenz.</a></li> 1.32 + <li><a href="#repos">Mercurial-Depots.</a></li> 1.33 + <li><a href="#gui">Grafische Oberflächen in GTK und CGI</a></li> 1.34 + <li><a href="#iconv">Implementierung von iconv().</a></li> 1.35 + <li><a href="#pkgs">SliTaz-Pakete erzeugen.</a></li> 1.36 + <li><a href="#website">Verwaltung der Internetpräsenz.</a></li> 1.37 +</ul> 1.38 + 1.39 +<h2 id="kiss">„KISS“ und Standards respektieren</h2> 1.40 + 1.41 +<p> 1.42 + „Keep it simple (KISS)“: befolgen Sie die besten Standards, entwerfen und schreiben 1.43 + Sie sorgfältig Dokumentation von hoher Qualität, erzeugen Sie ein stabiles und robustes System und 1.44 + halten Sie das Wurzeldateisystem <code>rootfs</code> in dem Direktstatrt-ISO-Abbild so klein, dass 1.45 + es auf Rechnern mit mindestens 128 MiB Arbeitsspeicher geladen werden kann. Dennoch ist es möglich 1.46 + GTK+2, Dialog, Kommandoprozeduren oder PHP-Werkzeuge in die Distribution zu übernehmen. Die Idee ist 1.47 + keine Doppelarbeit zu leisten und nicht schmalspurig zu denken... 1.48 +</p> 1.49 + 1.50 +<h2 id="tank">Entwicklungstank - Rechner für die Entwicklung und die Internetpräsenz</h2> 1.51 + 1.52 +<p> 1.53 + Jeder Mitwirkende kann sich über einen sicheren Zugang an dem Projekt-Rechner anmelden, kann dort 1.54 + Plattenplatz belegen, ein Verzeichnis <code>Public</code> anlegen und all Entwicklerwerkzeuge nutzen. 1.55 + Entwickler können Pakete erzeugen und Verwalter der Spiegel-Depots können diese synchronisieren. 1.56 + Auf diesem Rechner befindet sich auch der Kompilierungsautomat, die Dateien zum Laden über das 1.57 + Netzwerk und „SliTaz Pro“: <a href="http://tank.slitaz.org/">tank.slitaz.org</a> 1.58 +</p> 1.59 + 1.60 +<p> 1.61 + Anleitungen zum Erstellen von Paketen auf diesem Rechner finden sich im Kochbuch: 1.62 + <a href="http://doc.slitaz.org/de:cookbook:buildhost">Entwicklungstank</a>. 1.63 +</p> 1.64 + 1.65 +<h2 id="repos">Mercurial-Depots</h2> 1.66 + 1.67 +<p> 1.68 + SliTaz-Mercurial- (oder Hg-) Depots können von jedem unter dem URL 1.69 + <a href="http://hg.slitaz.org/">http://hg.slitaz.org/</a> angesehen und dupliziert werden. 1.70 + Benutzer mit Schreibrecht können über die Adresse <code>repos.slitaz.org</code> direkt auf 1.71 + die Depots zugreifen. Beim Schreiben müssen ein Benutzername und ein Kennwort angegeben werden. 1.72 + Mercurial verwendet Python. Es kann auf SliTaz mit <code>tazpkg get-install mercurial</code> 1.73 + installiert werden. 1.74 +</p> 1.75 + 1.76 +<h3>~/.hgrc</h3> 1.77 + 1.78 +<p> 1.79 + Vor dem Transfer des ersten Beitrags auf den Entwicklungsrechner (mit <code>hg push</code>) 1.80 + muss eine korrekte Konfigurationsdatei <code>~/.hgrc</code> erstellt werden. Darin sollte 1.81 + Ihre E-Mail-Adresse und Ihr richtiger Name enthalten sein. Hier ein Beispiel: 1.82 +</p> 1.83 +<pre class="script"> 1.84 +[ui] 1.85 +username = Vorname Nachname <name@example.de> 1.86 +</pre> 1.87 + 1.88 +<h4>Duplizieren, Ändern, Änderungen lokal übernehmen und Änderungen transferieren</h4> 1.89 + 1.90 +<p> 1.91 +Ein Depot, z.B. der Wok <code>wok</code>, wird wie folgt lokal dupliziert: 1.92 +</p> 1.93 +<pre> 1.94 + $ hg clone http://repos.slitaz.org/wok 1.95 +</pre> 1.96 +<p> 1.97 +Jetzt muss das Verzeichnis <code>wok</code> als Arbeitsverzeichnis eingestellt werden, sonst funktionieren die 1.98 +<code>hg</code>-Kommandos nicht. Zum Anzeigen aller oder nur der letzten Änderungen: 1.99 +</p> 1.100 +<pre> 1.101 + $ hg log 1.102 + $ hg head 1.103 +</pre> 1.104 +<p> 1.105 +Nach dem Hinzufügen oder Ändern von einer oder auch mehrerer Dateien den Änderungsstatus anzeigen und die Änderungen 1.106 +lokal übernehmen: 1.107 +</p> 1.108 +<pre> 1.109 + $ hg add 1.110 + $ hg status 1.111 + $ hg commit -m "kurze beschreibung der vorgenommenen änderungen" 1.112 + $ hg log 1.113 +</pre> 1.114 +<p> 1.115 +Mit <code>hg rollback</code> können Sie die letzte Änderung rückgängig machen. Bevor Sie die 1.116 +Änderungen in das Depot transferieren, sollten Sie zwischenzeitliche Änderungen anderer übernehmen: 1.117 +</p> 1.118 +<pre> 1.119 + $ hg pull 1.120 + $ hg push 1.121 +</pre> 1.122 +<p> 1.123 +Das ist schon alles; Ihre Änderungen, Quellprogramme oder Korrekturen sind jetzt im Depot. 1.124 +</p> 1.125 + 1.126 +<h4>Ein lokal dupliziertes Depot aktualisieren</h4> 1.127 + 1.128 +<p> 1.129 +Ein lokal dupliziertes Depot kann aus dem SliTaz-Depot aktualisiert werden mit: 1.130 +</p> 1.131 +<pre> 1.132 + $ hg pull -u 1.133 +</pre> 1.134 + 1.135 +<h4>Weitere nützliche Kommandos</h4> 1.136 + 1.137 +<p> 1.138 +Weitere <code>hg</code>-Kommandos: 1.139 +</p> 1.140 +<ul> 1.141 + <li><code>hg help</code> : Zeigt alle möglichen Kommandos.</li> 1.142 + <li><code>hg rollback</code> : Die letzte Aktion (commit, pull, push) rückgängig machen.</li> 1.143 + <li><code>hg log <package></code> : Das Änderungsprotokoll eines Paketes zeigen.</li> 1.144 + <li><code>hg head</code> : Die letzte Änderung anzeigen.</li> 1.145 +</ul> 1.146 + 1.147 +<h2 id="gui">Grafische Oberflächen - reines C/GTK, Yad, Vala/Genie und CGI</h2> 1.148 + 1.149 +<p> 1.150 + Es gibt viele Möglichkeiten, mit „open source“-Produkten eine Benutzeroberfläche zu erzeugen. 1.151 + Bis zur Version 3.0 von SliTaz haben wir hauptsächlich Gtkdialog verwendet, um gefällige 1.152 + und komplexe Oberflächen in GTK zu erstellen, wobei die Anweisungen ausgeführt wurden ohne 1.153 + übersetzt werden zu müssen. Aber gtkdialog wird nicht mehr gewartet und es fehlen viele 1.154 + neuere GTK-Funktionalitäten. Daher sind wir bei einfachen Grafikfenstern auf Yad umgestiegen. 1.155 + Bei der Verwaltung des Systems und der Pakete sowie bei den Konfigurationswerkzeugen sind wir 1.156 + auf TazPanel umgestiegen, eine Web-Oberfläche mit CGI-Nutzung, die mit xHTML 5 und CSS 3 1.157 + programmiert wird. 1.158 +</p> 1.159 +<p> 1.160 + Yad ist sehr einfach, kann aber keine komplexen Oberflächen erzeugen: schon 1.161 + zwei oder drei Einträge mit Marken und einige Schaltflächen sind nicht möglich. Daher mussten 1.162 + wir eine andere Möglichkeit suchen. Der Vorteil eines Interpreters ist, dass die Anweisungen 1.163 + nicht übersetzt werden müssen sondern zur Laufzeit verarbeitet werden, was die Anwendung 1.164 + allerdings verlangsamt. 1.165 + Programme in C zu schreiben ist komplex und daran werden sich weniger Mitwirkende beteiligen, da 1.166 + Kommandoprozeduren leichter zu verstehen sind. Daher lautet die Richtlinie jetzt: 1.167 + unsere Kommandoprozeduren beibehalten und verbessern und Benutzeroberflächen dafür in GTK oder CGI 1.168 + zur Verfügung stellen. 1.169 +</p> 1.170 +<p> 1.171 + Es gibt viele neue Programmiersprachen, die GTK verwenden, z.B. Genie, Vala oder GTKaml. 1.172 + Beachten Sie aber, dass sie nicht so verbreitet sind wie C und GTK und nicht wirklich 1.173 + leichter zu erlernen und zu nutzen sind. Für einfache Grafikfenster können Sie Kommandoprozeduren 1.174 + benutzen. Sie können auch Vala benutzen, aber reines GTK braucht für ein einzelnes Fenster auch nur 14 1.175 + Anweisungszeilen: 1.176 +</p> 1.177 +<pre> 1.178 +#include <gtk/gtk.h> 1.179 + 1.180 +int main(int argc, char *argv[]) 1.181 +{ 1.182 + GtkWidget *window; 1.183 + 1.184 + gtk_init(&argc, &argv); 1.185 + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 1.186 + g_signal_connect (G_OBJECT (window), "destroy", 1.187 + G_CALLBACK (gtk_main_quit), NULL); 1.188 + 1.189 + gtk_widget_show(window); 1.190 + gtk_main(); 1.191 + return 0; 1.192 +} 1.193 +</pre> 1.194 +<p> 1.195 + Wenn Sie sich nicht sicher sind, welche Programmiersprache Sie verwenden sollen, können Sie Ihre Wahl 1.196 + bei der „Mailing“-Liste zur Diskussion stellen. 1.197 + Wenn Sie nur eine einfache grafische Oberfläche brauchen, können Sie sich <code>tazbox</code> im 1.198 + Depot <code>slitaz-tools</code> ansehen; das Paket enthält kleine Programme für die grafische Oberfläche 1.199 + wie z.B. ein Abmeldefenster. TazWeb ist das erste Teilprojekt von SliTaz, das in reinem GTK geschrieben wurde. 1.200 + Sie können es ansehen um zu lernen, wie man die Funktion <code>system()</code> in einer grafischen 1.201 + Oberfläche verwenden kann. So verwendet TazWeb beispielsweise <code>wget</code> zum Dateitransfer und 1.202 + <code>sed</code> um Lesezeichen hinzuzufügen. 1.203 +</p> 1.204 +<p> 1.205 + Yad-Anweisungsprozeduren sollten die TazYad-Richtlinien befolgen: 1.206 + <a href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/README">README</a> und 1.207 + <a href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/tazyad">Programmierbeispiele</a> 1.208 +</p> 1.209 + 1.210 +<h2 id="iconv">Implementierung von iconv()</h2> 1.211 + 1.212 +<p> 1.213 + SliTaz verwendet iconv() aus der GNU glibc - alle Pakete, die <code>libiconv</code> anbieten, 1.214 + müssen die Bibliothek aus <code>glibc-locale</code> verwenden. 1.215 + Daher gibt es kein Paket <code>libiconv</code> (1.2 MB) mehr in SliTaz. 1.216 +</p> 1.217 + 1.218 +<h2 id="pkgs">SliTaz-Pakete erzeugen</h2> 1.219 + 1.220 +<p> 1.221 + Für die offizielle Paketerzeugung werden die Kochwerkzeuge verwendet. Diese sind in dem Paket <code>cookutils</code> 1.222 + enthalten, das in jedem SliTaz-System installiert ist, wie auch das 1.223 + <a href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.de.html">Kochwerkzeuge-Handbuch</a> für die Verwendung der Kochwerkzeuge. Damit werden Pakete erzeugt, die von TazPKG verwaltet werden können. 1.224 +</p> 1.225 +<p> 1.226 + Die Pakete werden bei SliTaz automatisch von <a href="http://cook.slitaz.org/">„Cooker“</a> aus einem 1.227 + Quellpaket und einem Rezep im Wok erzeugt. Im Kochbuch ist das Format der 1.228 + <a href="http://doc.slitaz.org/de:cookbook:receipt">Rezepte</a> beschrieben. 1.229 + Die Beschreibung der Kochwerkzeuge und der Rezepte sollten Sie gelesen haben, bevor Sie mit der 1.230 + Paketerzeugung beginnen. 1.231 +</p> 1.232 +<p> 1.233 + Bei der Auswahl eines Paketes für SliTaz sollten nur solche in Betracht kommen, die 1.234 + nützlich sind und funktionieren. Davon sollten Sie das kleinste verfügbare auswählen. 1.235 + Es sollten nicht mehrere Pakete mit gleicher Funktionalität erstellt werden. 1.236 + Die aktuelle Auswahl der Pakete ist aber nicht festgeschrieben. Wenn es eine Alternative zu einem Paket 1.237 + gibt, die noch kleiner ist, mehr Funktionen enthält oder mit ein paar KB mehr <em>attraktiver</em> ist, 1.238 + kann die Übernahme bei der „Mailing-Liste“ diskutiert werden. 1.239 + Besondere Anforderungen werden an Pakete gestellt, die in Direktstart-ISO-Abbilder 1.240 + übernommen werden sollen. Bei diesen sollten Symbolinformationen aus den Objektprogrammen 1.241 + sowie unnötige Abhängigkeiten und Übersetzeroptionen entfernt werden. 1.242 + Im Allgemeinen werden solche Pakete vor der Freigabe ebenfalls bei der „Mailing-Liste“ zur 1.243 + Diskussion gestellt. 1.244 +</p> 1.245 +<p> 1.246 + Bevor Sie beginnen, Pakete für SliTaz zu übersetzen und erzeugen, stellen Sie zur Vermeidung von 1.247 + Doppelarbeit sicher, dass es etwas entsprechendes nicht schon im 1.248 + <a href="http://download.tuxfamily.org/slitaz/packages/undigest/">inoffiziellen Wok</a> 1.249 + gibt. Die Mitglieder der „Mailing-Liste“ geben gerne Hinweise und das 1.250 + <a href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.de.html">Kochwerkzeuge-Handbuch</a> 1.251 + sollte für Anfänger hilfreich sein. 1.252 +</p> 1.253 + 1.254 +<h3 id="pkgs-naming">Benennung von Paketen</h3> 1.255 + 1.256 +<p> 1.257 + In den meisten Fällen stimmt der Name des Paketes mit dem Namen des Quellpaketes überein. Ausnahmen sind 1.258 + Python, Perl, PHP, Ruby und Lua-Module. Beispielsweise heisst das Paket, 1.259 + das ein „Kid template system“, in Python und XML geschrieben, enthält: 1.260 + <code>python-kid</code>. 1.261 +</p> 1.262 + 1.263 +<h2 id="website">Verwaltung der Internetpräsenz</h2> 1.264 + 1.265 +<p> 1.266 + Die Internetpräsenz wird über das Mercurial-Depot <code>website</code> administriert. Dieses kann dupliziert 1.267 + werden mit: 1.268 +</p> 1.269 +<pre> 1.270 + $ hg clone http://hg.slitaz.org/website 1.271 + oder wenn Sie die entsprechende Berechtigung haben: 1.272 + $ hg clone http://repos.slitaz.org/website 1.273 +</pre> 1.274 + 1.275 +<h3>xHTML-Programmierstil</h3> 1.276 + 1.277 +<p> 1.278 + Die Seiten und verschiedene <em>Handbücher</em> sind in xHTML 1.0 transitional 1.279 + programmiert. Die Überschrift der Stufe 1 wird nur einmal (ganz oben) verwendet, 1.280 + Stufe 2 ist der Titel des Dokuments und die Stufen 3 und 4 werden für weitere Abstufungen 1.281 + der Überschriften benutzt. Wenn eine Liste statt „smart anchors“ verwendet wird, 1.282 + beginnt sie oben, direkt unterhalb einer Überschrift der Stufe 2. 1.283 + Absätze werden in die Markierungen <code><p></p></code> eingeschlossen. 1.284 + Für Einrückungen werden Tabulatoren verwendet. Dies ist in der Semantik begründet und sie 1.285 + benötigen weniger Speicherplatz. Zur Darstellung von Kommandonamen oder ähnlichem innerhalb 1.286 + eines Absatzes wird vorzugsweise <code><code></code> verwendet. 1.287 + Beispiele für die Anwendung von Kommandos in einem Terminal werden als formatierter Text mit 1.288 + <code><pre></code> ausgegeben, z.B.: 1.289 +</p> 1.290 +<pre> 1.291 + $ command 1.292 +</pre> 1.293 +<p> 1.294 + Zur Anzeige von Text, der kopiert und eingefügt werden kann, wie etwa Kommandoprozeduren, 1.295 + Quellprogrammausschnitte, Konfigurationsdateien usw. wird ebenfalls 1.296 + <code><pre></code> verwendet, aber mit einer CSS-Klasse namens “script”. Beispiel: 1.297 +</p> 1.298 +<pre class="script"> 1.299 +<pre class="script"> 1.300 + 1.301 +code... 1.302 + 1.303 +</pre> 1.304 +</pre> 1.305 +<p> 1.306 + <em>Hervorgehobene</em> Wörter erhalten das Merkmal <code><em></code> 1.307 + und interne Verknüpfungen sind stets relativ. Denken Sie auch daran, Ihr Programm 1.308 + mit dem <em>„validator“</em> des W3C auf Konformität zu prüfen. 1.309 +</p> 1.310 + 1.311 +<h2 id="diff">Diff und patch</h2> 1.312 + 1.313 +<p> 1.314 + Die Programme <code>diff</code> und <code>patch</code> dienen der Erstellung einer Datei, die 1.315 + Unterschiede zwischen zwei Dateien enthält und mit deren Hilfe die Änderungen angewendet werden können. 1.316 + Diese Technik wird oft angewendet, wenn mehrere Personen an einem Projekt arbeiten, damit Änderungen 1.317 + an einer Originaldatei klar extrahiert werden können. Um eine <code>diff</code>-Datei zu erstellen, 1.318 + die mit einem Texteditor für Menschen gut lesbar ist, muss die Option <code>-u</code> angegeben werden: 1.319 +</p> 1.320 +<pre> 1.321 + $ diff -u file.orig file.new > file.diff 1.322 +</pre> 1.323 +<p> 1.324 +Zum Anbringen der Änderungen an der Originaldatei: 1.325 +</p> 1.326 +<pre> 1.327 + $ patch file.orig file.diff 1.328 +</pre> 1.329 + 1.330 +<!-- End of content --> 1.331 +</section> 1.332 + 1.333 +<?php include("../../lib/html/footer.html"); ?> 1.334 + 1.335 +</body> 1.336 +</html>