patch erstellen: Probleme mit autotools?

Dieses Thema im Forum "Programmieren allgemein" wurde erstellt von Gast1, 22.03.2013.

  1. #1 Gast1, 22.03.2013
    Zuletzt von einem Moderator bearbeitet: 22.03.2013
    Gast1

    Gast1 Guest

    Hi
    Ich versuche nun schon seit bestimmt 5 Stunden einen Patch zu erstellen, habe aber nur Probleme damit. Vielleicht kennt ja hier jemand ein paar gute Hilfen die über das Patchen einer simplen Textdatei hinaus gehen.

    Ich habe zu dem Programm htop ein neues Feature hinzugefügt. Dazu musste ich einige Dateien bearbeiten, und 2 neue hinzufügen.
    Um das Programm dann kompilieren zu können habe ich folgendes getan:
    Code:
    ./autogen.sh
    ./configure
    make
    ./htop
    
    Funktionierte. Anschließend natürlich mit make distclean wieder alles sauber gemacht.

    Ich weiß nicht ob's wichtig ist, aber das steht in autogen.sh drin:
    Code:
    aclocal -I m4
    autoconf
    autoheader
    libtoolize --copy --force
    automake --add-missing --copy
    

    Nun wollte ich nur noch "mal eben" einen Patch erstellen, damit die Änderungen mit der Zeit bzw. dem nächsten Update nicht verloren gehen, und ich die Änderungen leicht auf anderen System.

    Code:
    diff -urN -x "*.m4" htop-1.0.2-orig htop-1.0.2 > htop-1.0.2-temperature.patch
    
    $? war 1, aber der Patch schien in Ordnung zu sein. Ich vermute das Problem lag daran, dass die geänderten Dateien nun UTF-8 codiert waren, während die originalen ASCII verwendeten. (das ergab kurzes googlen und ein Check mit file)

    Wenn ich nun aber den Patch in das htop auf meinem Linux From Scratch einspiele bekomme ich Probleme:
    Code:
    patch < ../htop-1.0.2-temperature.patch
    ./configure --prefix=/usr --mandir=/usr/share/man  --enable-unicode --enable-cgroup
    make
    #scripts/MakeHeader.py Header.c
    #make: scripts/MakeHeader.py: Command not found
    #make: *** [Header.h] Error 127
    
    Das Command not found bezieht sich auf python, das Script selber ist vorhanden. Ohne dem Patch bekomme ich keine Probleme.

    Was habe ich falsch gemacht? Wie geht man an so etwas ran? :think:
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gast1, 23.03.2013
    Zuletzt von einem Moderator bearbeitet: 23.03.2013
    Gast1

    Gast1 Guest

    So, habe jetzt eine funktionierende Lösung, aber ist allerdings äußerst hässlich.
    Zunächst habe ich ein Patch erstellt der die die Erwähnung des Python-Scripts aus den Makefiles entfernt.
    Anschließend habe ich dann wie folgt den anderen Patch erstellt. (Hier wurde wieder der original-code, also mit den Python-aufrufen genommen)
    Code:
    cp -v ../*.c .
    
    #CRT.c
    #Header.c
    #TemperatureMeter.c
    #Meter.c
    
    vim Makefile.am
    # Die neue c-datei, und den Namen des später erzeugten Headers hinzufügen:
    #>myhtopsources = … TemperatureMeter.c
    #>myhtopheaders = … TemperatureMeter.h
    
    ./autogen.sh
    ./configure
    make
    # hier wird das Script aufgerufen und erzeugt die Header
    
    make distclean
    # distclean löscht die Header nicht, sodass ein erneutes aufrufen des Python-Scripts nicht nötig ist, was im Regelfall auch nicht getan wird.
    cd ..
    
    # Anschließend wird der Patch erzeugt. - Da ich eine neuere Version der Autotools habe nehme ich einiges an Ballast aus dem Patch, der dadurch verschuldet ist.
    diff -urN -x ltmain.sh -x "config*" -x "*.m4" -x "autom4te.cache" -x "htop.1" htop-1.0.2-orig htop-1.0.2 > htop-1.0.2-temperature.patch
    
    Schade dass ein eigentlich nützlicher Code durch dieses Rumgehampel mit den Autotools nur mit der Brechstange in ein Projekt reingepatcht werden kann… Diese beiden Patches sind jedenfalls kaum dazu geeignet an andere weiter gegeben zu werden. (Ich werde sie dennoch hochladen, und den Link später hier posten. Allerdings ohne dieses Python-gefrickel.)

    Nachtrag
    Hier gibt's den vereinfachten Patch der nur den Code hinzufügt. https://gist.github.com/redeagle/5227747
    Sauer angewendet wird das ganze wie folgt:
    Code:
    tar xf htop-1.0.2.tar.gz
    cd htop-1.0.2
    patch < ../htop-1.0.2-temperature.patch
    ./autogen.sh
    ./configure
    make -j8
    
    Als Abhängigkeiten kommt, wie der Thread es erahnen lässt, Python hinzu :) Zudem muss auch das lm_sensors Paket installiert sein, da ich die Temperaturwerte mit dem Programm sensors abfrage.
     
Thema:

patch erstellen: Probleme mit autotools?

Die Seite wird geladen...

patch erstellen: Probleme mit autotools? - Ähnliche Themen

  1. Patch erstellen mit patch oder diff

    Patch erstellen mit patch oder diff: Hallo zusammen Versuche gerade die Sache mit den Patches wirklich zu verstehen, denn ich habe nicht viel Erfahrung damit. Habe folgende...
  2. Patch CD erstellen

    Patch CD erstellen: Hallo linux User, ist es moeglich eine Patch-CD fuer Fedora Core 3 zu erstellen, die ich dann woechentlich aktualisieren kann (rsync,...
  3. Ubuntu LTS: Viele Sicherheitslücken ungepatcht

    Ubuntu LTS: Viele Sicherheitslücken ungepatcht: Einem Bericht des Computer-Magazins »ct« zufolge kann die von »Ubuntu LTS« versprochene Langzeitpflege nicht das halten, was sie verspricht. Viele...
  4. Googles erster monatlicher Android-Patchday

    Googles erster monatlicher Android-Patchday: Die Sicherheitslücke Stagefright hat offensichtlich Wirkung hinterlassen. Google, Samsung und LG sagten zu, monatliche Sicherheitsupdates zur...
  5. Grsecurity will Verfügbarkeit der stabilen Patches einschränken

    Grsecurity will Verfügbarkeit der stabilen Patches einschränken: Das Grsecurity-Projekt kapituliert vor den fortgesetzten Verletzungen der GPL und der Markenrechte durch große Unternehmen, da es nicht über genug...