Wie wendet man diesen Patch auf die Source vor dem Kompilieren an?

JohnnyBGoode

Enthusiast
Thread Starter
Mitglied seit
29.01.2010
Beiträge
1.122
Hallo,
ich möchte gerne die aktuellste Samba 4-Version auf einem System testen, das ist zwar OS X, beim Thema Kompilieren und Samba ist die Linux-Community aber stärker, daher möchte ich mich hier melden.
Leider bricht das "make" der unveränderten Samba 4.x-Source unter OS X ab, dies wurde offiziell bestätigt und es gibt einen Patch für die betreffende Datei wscript.

Meine Frage:
Wie wende ich die Informationen aus der verlinkten Nachricht von den Samba-Entwicklern an? Kann ich die Zeilen in eine Textdatei kopieren (von wo bis wo genau?) und anschließend im Terminal etwas wie "patch wscript patchhinweise.txt" im Hauptordner der entpackten Source ausführen?

Vielen Dank für die Hilfe!
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Danke für die Hilfe!

Leider finde ich nirgens ein passende Vorlage, die einem Anfänger sagt, wo genau ein Patch anfängt und wo er aufhört.

Folgendes habe ich getestet, leider scheint da etwas nicht zu funktionieren.

Inhalt der Datei patch.diff:
Code:
---
 source3/wscript | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/source3/wscript b/source3/wscript
index 4f182bf..2083f01 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -349,12 +349,28 @@ int main(int argc, char **argv)
 
     # Check if the compiler will optimize out functions
     conf.CHECK_CODE('''
-if (0) {
-    this_function_does_not_exist();
-} else {
-    return 1;
+#include <sys/types.h>
+size_t __unsafe_string_function_usage_here_size_t__(void);
+#define CHECK_STRING_SIZE(d, len) (sizeof(d) != (len) && sizeof(d) != sizeof(char *))
+static size_t push_string_check_fn(void *dest, const char *src, size_t dest_len) {
+	return 0;
+}
+
+#define push_string_check(dest, src, dest_len) \
+    (CHECK_STRING_SIZE(dest, dest_len) \
+    ? __unsafe_string_function_usage_here_size_t__()	\
+    : push_string_check_fn(dest, src, dest_len))
+
+int main(int argc, char **argv) {
+    char outbuf[1024];
+    char *p = outbuf;
+    const char *foo = "bar";
+    p += 31 + push_string_check(p + 31, foo, sizeof(outbuf) - (p + 31 - outbuf));
+    return 0;
 }''', 'HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS',
-        msg="Checking if the compiler will optimize out functions")
+            addmain=False,
+            add_headers=False,
+            msg="Checking if the compiler will optimize out functions")
 
     # Check if the compiler supports the LL suffix on long long integers
     # AIX needs this
--
1.9.3

Terminal-Ausgabe, ausgeführt im Ordner /samba-4.1.14/source3/:
Benutzer: patch -b wscript patch.diff
patching file wscript
Hunk #1 succeeded at 331 (offset -18 lines).
patch unexpectedly ends in middle of line

Was fehlt da in der Patch-Datei? Ist im Original ein Tippfehler (vgl. Link zur Samba-Nachricht)?
 

Ähnliche Themen

Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh