Parancssoros subversion használata saját aláírású tanusítvánnyal

Múltkoriban írtam arról, hogy szívtam a Debian upgrade miatt.

Másnap vettem észre, hogy a Subversion sem működik, mert valami rehandshake hibája van. Valami ilyesmi formában:

svn info https://svn.example.org/svn/main/
svn: OPTIONS of 'https://svn.example.org/svn/main': Could not read status line: SSL error: Rehandshake was requested by the peer. (https://svn.example.org) 

Kis keresés után találtam ezt az oldalt, ahol leírják a hiba okát és a kommentek között megtaláltam a megoldást is.

A probléma magja az, hogy az Apache2 konfigja úgy van beállítva (nyilván nem véletlenül), hogy csak olyan klienseket engedjen be, akiknek van érvényes kliens-tanusítványuk. Anno mi magunk generáltunk egy szerver tanusítványt, amivel aláírjuk a kliensekét. Azóta már van egy rendes, hitelesített tanusítvány is, de nincs telepítve, mert a 20+ kliensre generálja újra az, akinek hat anyja van... :S

Na mindegy, szóval az új (5-ös) Debian alatt (és az erre épülő többi rendszerben is) a Subversion a libneon-gnutls könyvtárat használja az SSL kommunikációhoz, ami nem szereti az ilyen önhatalmúlag alírt  tanusítványokat. A megoldás az, hogy újra kell fordítani a Subversion csomagokat, hogy ne ezt, hanem a sima libneon-t használják.

Debian alatt azért nem 100%-ig úgy megy, mint ahogy a kommentek között leírták, mert több olyan parancs is van, amihez kell a sudo jog. Mondjuk szerintem Ubuntu alatt is, de mindegy. Meg is csináltam, f@szán működött is. Akkor ezt már nem akartam megírni, mert utólag már nem volt kedvem.

De most újra előjött a gond: valami frissítés megint lejött, és visszaállította az eredeti állapotot. Suxx. :(

Szóval nekiugrottam újra és most már meg is írom, hogy legközelebb csak copy-paste-elni kelljen innen. :)

Tehát a lépések:

  1. mkdir tmp
  2. cd tmp
  3. apt-get source subversion
  4. sudo apt-get build-dep subversion
  5. sudo apt-get install fakeroot libneon26-dev
  6. cd subversion-1.5.1dfsg1
  7. DEB_BUILD_OPTIONS="nocheck no-javahl no-apache no-ruby" fakeroot debian/rules binary
  8. sudo dpkg -i ../libsvn1_1.5.1dfsg1-2_i386.deb ../subversion_1.5.1dfsg1-2_i386.deb ../subversion-tools_1.5.1dfsg1-2_all.deb

Ellenőrzés:

  • ldd `which svn` | grep neon

Valami ilyesmit kell, hogy adjon:

libsvn_ra_neon-1.so.1 => /usr/lib/libsvn_ra_neon-1.so.1 (0xf7c82000)
libneon.so.26 => /usr/lib/libneon.so.26 (0xf7766000)

That's all folks. ;)