Debian Control File mit sed manipulieren

fbartels

Member
Hallo,

ich bastel gerade an einem kleinen Repository (mit reprepro) um dort Pakete für Zarafa bereitzustellen. Jetzt ist es die Eigenheit von Zarafa, Pakete mit identischer Versionsnummer für z.B. Lenny und Etch bereitzustellen, die aber nicht identisch vom Inhalt sind (andere md5 etc und reprepro meckert).

Die das Problem mit der gleichen Versionsnummer löse ich nun, indem ich z.B. ~lenny an die Versionsnummer anhänge:
Code:
sed -i '/Version:/ s/$/~'$dist'/' $BUILDDIR/DEBIAN/control

Das ist aber leider nur die halbe Miete, wie ich nach einem Test feststellen musste. Der String ~'dist' muss ebenfalls in der Depends:-Zeile an zwei Werte (falls Vorhanden) angefügt werden, anbei beispielhaft zwei Zeilen:

Code:
Depends: libc6 (>= 2.7-1), libcurl3 (>= 7.16.2-1), libgcc1 (>= 1:4.1.1), libldap-2.4-2 (>= 2.4.7), libssl0.9.8 (>= 0.9.8f-5), libstdc++6 (>= 4.2.1), libuuid1 (>= 1.05), zarafa (= 6.30.7-18277), lsb-base

Code:
Depends: libc6 (>= 2.7-1), libcomerr2 (>= 1.01), libgcc1 (>= 1:4.1.1), libical0 (>= 0.44), libkrb53 (>= 1.6.dfsg.2), libldap-2.4-2 (>= 2.4.7), libmysqlclient15off (>= 5.0.27-1), libncurses5 (>= 5.6+20071006-3), libpam0g (>= 0.99.7.1), libssl0.9.8 (>= 0.9.8f-5), libstdc++6 (>= 4.2.1), libuuid1 (>= 1.05), libvmime0 (>= 0.7.1), libxml2 (>= 2.6.27), zlib1g (>= 1:1.1.4), lsb-base, locales, libvmime0 (<< 0.8.0)

Wobei die Werte die ich dort Manipulieren möchte, die folgenden sind: (-> ist zu vertehen als "wird zu")
  • zarafa (= 6.30.7-18277) -> zarafa (= [0-9][.][0-9]{2}[.][0-9]{1,2}[-][0-9]{5}~'$DIST')
  • libvmime0 (>= 0.7.1) -> 0.7.1-*~'$DIST' (da es unterschiedliche Builds zu einer Version gibt
  • libical0 (>= 0.44) -> selbe geschichte wie bei libvmime0

Nur irgendwie finde ich nicht die richtigen Befehle für sed (oder stehe einfach auf dem Schlauch). Vielleicht hat hier ja jemand eine Idee.

Wo ich gerade noch einmal selber über diesen Text fliege.
Kurz gefasst: Ich will an eine beliebige Zahlenkette, die auf ein Signalwort folgt den String ~$dist dranhängen, welcher bei Ausführung in einem Shell Skript in z.B. ~lenny umgewandelt wird.

Gruß Felix

PS: habe es inzwischen auch im Debianforum gepostet
 
Last edited by a moderator:
Back
Top