2011-09-14 digital life Autoconf ist fuer die Welt von Gestern Lang leben die Distributionen! Autoconf und Automake sind Monster, geschrieben um, in Folge der Unix Wars, Software fuer alle Parteien zugaenglich zu machen. Automake versucht dabei die Unzulaenglichkeiten von Make auszu- gleichen. In dieser Hinsicht ist die Sache fuer mich einfach: Make ist schlecht und muss komplett ersetzt werden. Das Trag- ische an Make ist, dass seine Idee so genial war, dass sie nie Zeit zur Reife hatte. Vieles mit dem wir heute kaempfen sind Jugendprobleme von Make. Make hat mir gezeigt, dass man als Projektleiter stark sein muss und immer nach der besten Umsetzung streben sollte. Kompatibili- taet sollte nicht zu hoch gesetzt werden, denn der Wandel ist sicher. Ein Streben nach Stillstand in einer Welt des Wandels ist der sichere Tod. Also: Aendere wenn die Aenderung an sich (nicht der Umstellungsaufwand) sinnvoll erscheint! Ueber Make wollte ich aber gar nicht schreiben. Mir geht es um die Vorarbeiten: configure. Autoconf hat zwei Aufgaben: Zum einen soll herausgefunden werden was das fuer ein Unix ist auf dem man sich befindet; zum anderen soll die Funktionalitaet und Installation der Software angepasst werden koennen. Die beiden Aufgaben bedingen sich teilweise. Fangen wir hinten an: Die Installation. Anpassbare Installation- spfade sind wertvoll. Makefilevariablen lassen sich dazu auf der Kommandozeile setzen. Einen vorhergehenden configure-Aufruf bedarf es dazu nicht. Das Einkompilieren von Pfaden laesst sich damit auch abdecken, wenn man es schon braucht. Mur muss man bei jedem Make-Aufruf die Variablenzuweisungen mit angeben. Das ist laestig. Abhilfe schafft eine Konfigurationsdatei. Diese koennte man bei einem besseren Make auch portabel in das Makefile einbinden. Dann muss allerdings eine Datei bearbeitet werden, was im Vergleich zu einem configure-Aufruf mit einem Dutzend Ar- gumenten, bei denen man immer wieder die Namen vergisst, laestig erscheint. Und ed zu scripten ist heute auch kein Standardkoen- nen der Administatoren mehr. Die Funktionen der Software lassen sich auf die gleiche Art an- passen wie die Installationspfade. Ich glaube, dass mit einem besseren Make, das portables Einbinden von Dateien und bedingte Variablenersetzung erlaubt, diese Aufgabe vollstaendig abgedeckt werden kann. Bleibt noch die Betriebssystemanpassung. Es geht darum herauszufinden auf was fuer einem System man sich befindet, was dieses kann und wo man das findet. Das stellt den interessanten Kern der Autotools dar, der der den groessten Nutzen bringt, und auch den den man am schwierigsten ersetzen kann. Hier nun meine These: Heutzutage macht das Konzept der Distribu- tionen diesen Schritt unwichtig. Endanwender installieren Software nicht mehr von Hand aus den Quellen. Zwischen ihnen und den Anwendungsentwicklern (Upstream) sitzt heute eine durchgaenige Schicht von Distributoren. Diese passen externe Software an und verpacken sie so, dass sie vom En- danwender problemlos und kompatibel installiert werden kann. Die Anpassungen an das Betriebssystem muessen nicht mehr von Pro- grammen automatisiert erraten werden denn Paketierer kennen ihre Distribution und wissen was wie anzupassen ist. Sie koennen die Einstellungen haendisch direkt ausfuehren. Statt Autoconf da- zuzubringen das zu tun was man will, kann man direkt angeben was man will. Ich glaube an die drei (oder vier) Schichten des Softwarestroms: Upstream Programmentwicklung -> Paketierung und Systemorganisa- tion (-> spezifische Zusammenstellung a la Debian Blends) -> En- danwender. In einer solchen Organisation bleibt den Autotools wenig Mehrwert. Lasst sie uns also begraben und damit Gutes tun. Kuenftig heisst es dann nicht mehr ./configure && make && make install sondern vi config.mk && mk install Was die weiterhin haendische Installation von Software durch fortgeschrittene Nutzer angeht, so bin ich schon lange der Meinung, dass es einfacher ist mit dem Editor die eigentlichen Dateien direkt zu bearbeiten als in komplexen Systemen vorne an irgendwelchen Schaltern zu ziehen damit irgendwo hinten irgendwas passiert. http://marmaro.de/apov/ markus schnalke