Viel Glück
Ich hoffe weniger auf mein Glück, als auf Eure Hilfe. Open source bedeutet doch, dass man verstehen darf, warum etwas nicht funktioniert .
Viel Glück
Ich hoffe weniger auf mein Glück, als auf Eure Hilfe. Open source bedeutet doch, dass man verstehen darf, warum etwas nicht funktioniert .
Open source bedeutet doch, dass man verstehen darf, warum etwas nicht funktioniert .
Deswegen die Links von mir, da steht, wie man es macht und warum man so etwas wie Du vorhast nicht macht.
"We believe in building great technology through open collaboration, without barriers or bureaucrats."
Fangen wir von vorne an, ich würde dies aber in einer virtuellen Umgebung machen.
Als User:
Wir erstellen die Verzeichnisse in unserem /home:
Wir erstellen die versteckte Konfigurationsdatei .rpmmacros mit folgendem Inhalt:
Das Temporäre Build setze ich in mein /home:
Jetzt wird das Repo passen zu meiner Distribution (openSUSE 13.2) hinzugefügt:
zypper ar -f http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.2/ Windows
Jetzt lade ich das src.rpm herunter (nur wenn das src-Repo eingebunden ist):
Im Verzeichnis ~/rpmbuild/SOURCE sind dann die Dateien:
ls -la rpmbuild/SOURCES/
insgesamt 824
drwxr-xr-x 2 xxx users 4096 29. Mär 10:40 .
drwxr-xr-x 10 xxx users 4096 8. Feb 12:38 ..
-rw-r--r-- 1 xxx users 1630 11. Jun 2014 libnice-0.1.7.patch
-rw-r--r-- 1 xxx users 827258 11. Jun 2014 libnice-0.1.7.tar.gz
-rw-r--r-- 1 xxx users 405 11. Jun 2014 libnice-0.1.7-win64.patch
Das spec-File ist dann:
Mache Deine Änderungen in dem spec-File oder den Dateien und baue es als User neu:
Wenn das ohne Fehler durchgelaufen ist, findest Du das rpm in ~/rpmbuild/RPMS und Du kannst es als root (jetzt wird zum ersten Mal der User root benutzt, alles ander wird als User gemacht) installieren.
Erstmal vielen Dank für Deine Hilfe!
Mein Ergebnis ist allerdings noch seltsam: Ich bekomme beim Bauen Linkerfehler. Habe mir dann die Version 0.1.7 direkt von der Projektseite geholt, direkt gebaut und bekomme genau die gleichen Linkerfehler. Daraufhin habe ich mir die neueste Version 0.1.10 von der Projektseite geholt und die lief durch.
Offenbar wurde früher die libnice nur nativ unter Windows gebaut, während wir ja jetzt mit mingw cross bauen.
Ich werde also morgen mit Hilfe Deiner Instuktionen bei mir ein 0.1.10-Paket bauen und installieren.
So baue ich direkt:
Habe mir einen neuen user "libnicex" angelegt,
Vorbereiten des rpmbuild-Verzeichnisses
libnicex@linux-r7zz:~> mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}
libnicex@linux-r7zz:~> echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
libnicex@linux-r7zz:~> echo '%_tmppath %(echo $HOME)/rpmbuild/tmp' >> ~/.rpmmacros
Zuweisen des mingw-repositories (root-terminal)
Password:
linux-r7zz:~ # zypper ar -f http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.2/ Windows
Adding repository 'Windows' ..............................................[done]
Repository named 'Windows' already exists. Please use another alias.
linux-r7zz:~ #
Holen der libnice-0.1.7-Quellen von mingw
libnicex@linux-r7zz:~> zypper si mingw32-libnice
Reading installed packages...
Loading repository data...
Resolving package dependencies...
The following source package is going to be installed:
mingw32-libnice
1 source package to install.
Overall download size: 812.8 KiB. Already cached: 0 B After the operation,
additional 815.7 KiB will be used.
Continue? [y/n/? shows all options] (y):
Retrieving: mingw32-libnice-0.1.7-8.11.src.rpm .............[done (397.4 KiB/s)]
Checking for file conflicts: .............................................[done]
libnicex@linux-r7zz:~> ls -la rpmbuild/SOURCES/
total 824
drwxr-xr-x 2 libnicex users 4096 Mar 30 11:40 .
drwxr-xr-x 8 libnicex users 4096 Mar 30 11:37 ..
-rw-r--r-- 1 libnicex users 1630 Jun 11 2014 libnice-0.1.7.patch
-rw-r--r-- 1 libnicex users 827258 Jun 11 2014 libnice-0.1.7.tar.gz
-rw-r--r-- 1 libnicex users 405 Jun 11 2014 libnice-0.1.7-win64.patch
Alles anzeigen
Holen von libnice-0.1.10 von der libnice-Projektseite
libnicex@linux-r7zz:~> ls Downloads/
libnice-0.1.10.tar.gz
libnicex@linux-r7zz:~> ls rpmbuild/SOURCES/
libnice-0.1.7.patch libnice-0.1.7.tar.gz libnice-0.1.7-win64.patch
libnicex@linux-r7zz:~> mv Downloads/libnice-0.1.10.tar.gz rpmbuild/SOURCES/
Ersetzen von "0.1.7" durch "0.1.10"
libnicex@linux-r7zz:~> cd rpmbuild/SOURCES/
libnicex@linux-r7zz:~/rpmbuild/SOURCES> ls
libnice-0.1.10.tar.gz libnice-0.1.7.tar.gz
libnice-0.1.7.patch libnice-0.1.7-win64.patch
libnicex@linux-r7zz:~/rpmbuild/SOURCES> rm libnice-0.1.7.tar.gz
libnicex@linux-r7zz:~/rpmbuild/SOURCES> mv libnice-0.1.7.patch libnice-0.1.10.patch
libnicex@linux-r7zz:~/rpmbuild/SOURCES> mv libnice-0.1.7-win64.patch libnice-0.1.10-win64.patch
libnicex@linux-r7zz:~/rpmbuild/SOURCES> find . -name "*0.1.7*"
libnicex@linux-r7zz:~/rpmbuild/SOURCES> cd ..
libnicex@linux-r7zz:~/rpmbuild> cd ..
libnicex@linux-r7zz:~> find . -name "*0.1.10*"
./rpmbuild/SOURCES/libnice-0.1.10.patch
./rpmbuild/SOURCES/libnice-0.1.10.tar.gz
./rpmbuild/SOURCES/libnice-0.1.10-win64.patch
libnicex@linux-r7zz:~> find . -name "*0.1.7*"
libnicex@linux-r7zz:~> grep -r "0.1.7" *
rpmbuild/SPECS/mingw32-libnice.spec:Version: 0.1.7
rpmbuild/SPECS/mingw32-libnice.spec:Patch0: libnice-0.1.7.patch
rpmbuild/SPECS/mingw32-libnice.spec:Patch1: libnice-0.1.7-win64.patch
rpmbuild/SOURCES/libnice-0.1.10.patch: AC_INIT([libnice],[0.1.7])
libnicex@linux-r7zz:~> grep -r "0.1.7" *
libnicex@linux-r7zz:~> grep -r "0.1.10" *
rpmbuild/SPECS/mingw32-libnice.spec:Version: 0.1.10
rpmbuild/SPECS/mingw32-libnice.spec:Patch0: libnice-0.1.10.patch
rpmbuild/SPECS/mingw32-libnice.spec:Patch1: libnice-0.1.10-win64.patch
rpmbuild/SOURCES/libnice-0.1.10.patch: AC_INIT([libnice],[0.1.10])
Alles anzeigen
Bauen des "neuen" Pakets
libnicex@linux-r7zz:~> export PKG_CONFIG_PATH=/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig:/usr/i686-w64-mingw32/sys-root/mingw/share/pkgconfig
libnicex@linux-r7zz:~> export PKG_CONFIG=/usr/bin/i686-w64-mingw32-pkg-config
libnicex@linux-r7zz:~> cd rpmbuild/SPECS/
libnicex@linux-r7zz:~/rpmbuild/SPECS> rpmbuild -ba mingw32-libnice.spec
Executing(%prep): /bin/sh -e /home/libnicex/rpmbuild/tmp/rpm-tmp.sYC0wU
+ umask 022
+ cd /home/libnicex/rpmbuild/BUILD
+ cd /home/libnicex/rpmbuild/BUILD
+ rm -rf libnice-0.1.10
+ /usr/bin/gzip -dc /home/libnicex/rpmbuild/SOURCES/libnice-0.1.10.tar.gz
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd libnice-0.1.10
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ echo 'Patch #0 (libnice-0.1.10.patch):'
Patch #0 (libnice-0.1.10.patch):
+ /usr/bin/cat /home/libnicex/rpmbuild/SOURCES/libnice-0.1.10.patch
+ /usr/bin/patch -p0 --fuzz=0
patching file agent/address.c
Hunk #1 succeeded at 62 (offset 4 lines).
patching file agent/pseudotcp.h
Hunk #1 FAILED at 60.
1 out of 1 hunk FAILED -- saving rejects to file agent/pseudotcp.h.rej
patching file configure.ac
patching file gst/Makefile.am
error: Bad exit status from /home/libnicex/rpmbuild/tmp/rpm-tmp.sYC0wU (%prep)
RPM build errors:
Bad exit status from /home/libnicex/rpmbuild/tmp/rpm-tmp.sYC0wU (%prep)
Alles anzeigen
Buildproblem!
libnicex@linux-r7zz:~/rpmbuild/SPECS> cd ~
libnicex@linux-r7zz:~> find . -name "*pseudotcp*"
./rpmbuild/BUILD/libnice-0.1.10/docs/reference/libnice/tmpl/pseudotcp.sgml
./rpmbuild/BUILD/libnice-0.1.10/agent/pseudotcp.h.rej
./rpmbuild/BUILD/libnice-0.1.10/agent/pseudotcp.h
./rpmbuild/BUILD/libnice-0.1.10/agent/pseudotcp.c
./rpmbuild/BUILD/libnice-0.1.10/agent/pseudotcp.h.orig
./rpmbuild/BUILD/libnice-0.1.10/tests/test-pseudotcp-fuzzy.c
./rpmbuild/BUILD/libnice-0.1.10/tests/test-pseudotcp-fin.c
./rpmbuild/BUILD/libnice-0.1.10/tests/test-pseudotcp-random.sh
./rpmbuild/BUILD/libnice-0.1.10/tests/test-pseudotcp.c
./rpmbuild/BUILD/libnice-0.1.10/win32/vs9/test-pseudotcp.vcproj
libnicex@linux-r7zz:~> cat ./rpmbuild/BUILD/libnice-0.1.10/agent/pseudotcp.h.rej
--- agent/pseudotcp.h
+++ agent/pseudotcp.h
@@ -60,10 +60,18 @@
#ifdef G_OS_WIN32
# include <winsock2.h>
-# define ECONNABORTED WSAECONNABORTED
-# define ENOTCONN WSAENOTCONN
-# define EWOULDBLOCK WSAEWOULDBLOCK
-# define ECONNRESET WSAECONNRESET
+# ifndef ECONNABORTED
+# define ECONNABORTED WSAECONNABORTED
+# endif
+# ifndef ENOTCONN
+# define ENOTCONN WSAENOTCONN
+# endif
+# ifndef EWOULDBLOCK
+# define EWOULDBLOCK WSAEWOULDBLOCK
+# endif
+# ifndef ECONNRESET
+# define ECONNRESET WSAECONNRESET
+# endif
#endif
#include "agent.h"
libnicex@linux-r7zz:~>
Alles anzeigen
Offenbar ist der Paketier-Patch von 0.1.7 in der Version 0.1.10 misslungen. Werde mir die Unterschiede in den Versionen genauer anschauen.
So baut man auch kein Paket, indem man einfach nur die alten Versionen ersetzt!!!
Wer weiss, was da als requires vorhanden sein muss.
Damit ist hier Schluss für mich.
Habe den Patch der rejected wurde rausgeschmissen und einen weiteren der danach auftrat ebenfalls.
Anschließend lief der Build durch (s.u.).
ZitatWer weiss, was da als requires vorhanden sein muss.
./configure fragt die dependenten Bibliotheken ab. Ausserdem baue ich das Paket für mich. Ich rechne ganz sicher damit, dass es noch jede Menge Probleme geben wird, wenn ich das Endresultat, also den Pidgin-3.0.0-Build unter Windows installiere. Aber ich muss installieren, um überhaupt feststellen zu können, welche Probleme es gibt.
Jetzt ist die Frage, wie ich das gebaute minwg32-libnice -0.1.10 unter openSUSE für die weiteren Builds installiere. Oder wie ich ggf. feststelle, ob noch etwas schief gelaufen ist.
...
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/libnicex/rpmbuild/BUILDROOT/mingw32-libnice-0.1.10-8.11.x86_64
Wrote: /home/libnicex/rpmbuild/SRPMS/mingw32-libnice-0.1.10-8.11.src.rpm
Wrote: /home/libnicex/rpmbuild/RPMS/noarch/mingw32-libnice10-0.1.10-8.11.noarch.rpm
Wrote: /home/libnicex/rpmbuild/RPMS/noarch/mingw32-gstreamer-libnice-0.1.10-8.11.noarch.rpm
Wrote: /home/libnicex/rpmbuild/RPMS/noarch/mingw32-gstreamer-0_10-libnice-0.1.10-8.11.noarch.rpm
Wrote: /home/libnicex/rpmbuild/RPMS/noarch/mingw32-libnice-devel-0.1.10-8.11.noarch.rpm
Wrote: /home/libnicex/rpmbuild/RPMS/noarch/mingw32-libnice-tools-0.1.10-8.11.noarch.rpm
Wrote: /home/libnicex/rpmbuild/RPMS/noarch/mingw32-libnice-debug-0.1.10-8.11.noarch.rpm
Executing(%clean): /bin/sh -e /home/libnicex/rpmbuild/tmp/rpm-tmp.0LQ8VS
+ umask 022
+ cd /home/libnicex/rpmbuild/BUILD
+ cd libnice-0.1.10
+ /usr/bin/rm -rf /home/libnicex/rpmbuild/BUILDROOT/mingw32-libnice-0.1.10-8.11.x86_64
+ rm -rf filelists
Alles anzeigen