Nur mal schnell mein Lizentiat mit SVN branchen …

Da ich mich langsam aber sicher daran machen sollte, meine im Herbst 2009 abgeschlossene Lizentiatsarbeit zu publizieren, nahm ich mir vor einigen Tagen vor, die über SVN versionierten LaTeX-Dateien zu branchen. Dies ist nötig, weil ich für die Publikation deutlich andere Anforderungen an das Format der Arbeit habe als beim Lizentiat.

Aus dem im theoretisch einminütigen Vorgang mit svn copy wurde dann aber leider ein mehrstündiger Installations- und Debuggingmarathon. Etwas, dass in der IT leider viel zu oft vorkommt.

subversion: Versuch 1

Was war geschehen? Zuerst einmal sprach mein unter Mac OS X installierter SVN-Client in der Version 1.4 nicht mehr mit dem mittlerweile auf 1.6 aktualisierten SVN-Server, der unter Debian GNU/Linux installiert ist.

Ein

sudo port install subversion

ging aber fürchterlich schief:

---> Computing dependencies for subversion
---> Fetching apr
---> Attempting to fetch apr-1.3.8.tar.bz2 from http://apache.mirroring.de/apr
---> Attempting to fetch apr-1.3.8.tar.bz2 from http://www.mirrorservice.org/sites/ftp.apache.org/apr
---> Attempting to fetch apr-1.3.8.tar.bz2 from http://apache.multidist.com/apr
---> Attempting to fetch apr-1.3.8.tar.bz2 from http://arn.se.distfiles.macports.org/apr
---> Attempting to fetch apr-1.3.8.tar.bz2 from http://apache.mirror.rafal.ca/apr
---> Attempting to fetch apr-1.3.8.tar.bz2 from http://www.ibiblio.org/pub/mirrors/apache/apr
---> Attempting to fetch apr-1.3.8.tar.bz2 from http://archive.apache.org/dist/apr
---> Verifying checksum(s) for apr
---> Extracting apr
---> Configuring apr
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_apr/work/apr-1.3.8" && ./configure --prefix=/opt/local --with-installbuilddir=/opt/local/share/apr-1/build " returned error 77
Command output: checking build system type... powerpc-apple-darwin9.8.0
checking host system type... powerpc-apple-darwin9.8.0
checking target system type... powerpc-apple-darwin9.8.0
Configuring APR library
Platform: powerpc-apple-darwin9.8.0
checking for working mkdir -p... yes
APR Version: 1.3.8
checking for chosen layout... apr
checking for gcc... /usr/bin/gcc-4.0
checking for C compiler default output file name...
configure: error: in `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_apr/work/apr-1.3.8':
configure: error: C compiler cannot create executables
See `config.log' for more details.

Error: The following dependencies failed to build: apr apr-util db46 sqlite3 readline cyrus-sasl2 openssl neon serf
Error: Status 1 encountered during processing.

XCode

Das Problem war rasch gefunden: Da ich meinen PowerMac G5 vor einigen Wochen von Max OS X 10.4 (Tiger) auf 10.5 (Leopard) aktualisiert hatte, gab es ein Problem mit dem C-Compiler. In Foren wurde empfohlen, XCode auf die neueste Version zu bringen. Ich hatte 2.5 installiert, doch aktuell ist Version 3.

Da ich eine Download-Orgie von Apples ADC-Server verhindern wollte, suchte ich in meinem Software-Ordner nach Installationsmedien für Mac OS X 10.5 — und fand diese tatsächlich. Im Ordner „Optional Installs“ lag dann auch prompt XCode 3 bereit.

subversion: Versuch 2

Nach einer einstündigen Installation von XCode war der Compiler ready. MacPorts stoppte aber beim erneuten

sudo port install subversion

mit einer anderen Fehlermeldung:

---> Verifying checksum(s) for db46
Error: Checksum (md5) mismatch for patch.4.6.21.1
Error: Checksum (md5) mismatch for patch.4.6.21.2
Error: Checksum (md5) mismatch for patch.4.6.21.3
Error: Checksum (md5) mismatch for patch.4.6.21.4
Error: Target org.macports.checksum returned: Unable to verify file checksums
Log for db46 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_db46/main.log
Error: The following dependencies failed to build: ...
Error: Status 1 encountered during processing.

Der Fehler ist im Netz bekannt. Zu seiner Behebung wurde empfohlen:

If you’re in a terrible rush, then you can do the following:

run port install db46 (which is going to fail)

change dir to where the port command downloaded the stuff (mine is /opt/local/var/macports/distfiles/db4/4.6.21_6)

remove the patches

do:
for i in 1 2 3 4; do echo $i && wget http://distfiles.macports.org/db4/4.6.21_6/patch.4.6.21.$i; done

run „port install db46“ again

Quelle: db46 – Checksum (md5) mismatch for patch.4.6.21.X

Der angegebene Pfad stimmte bei mir nicht. Und leider konnte ich die Anweisung mit der for-Schleife auch nicht in einer Shell ausführen und musste deshalb die Patches eigenhändig runterladen. Danach konnte subversion und seine Abhängigkeiten aber problemlos kompiliert werden.

svn copy

Nun endlich war ich ready:

svn copy http://repo.tld/lizentiat/ http://repo.tld/publikation/

Dies (und viele andere Aktionen auch, wie bspw. ein simples svn del resultierten in einem Segmentation Fault.

svn serf oder neon?

Wie ich nach einigem googlen herausfand, musste ich die svn-Konfiguration unter /etc/subversion/servers auf dem Debian-Server anpassen:

...
http-library = neon
...

Bis anhin war die verwendete Library serf gewesen.

Anschliessend konnte ich — mit ca. 2-3-stündiger Verspätung — endlich den Branch erzeugen und die ersten Anpassungen am Layout vornehmen.