Hallo, für OpenSUSE gibt es ja teilweise 64-Bit-Pakete in dnen aber 32Bit-Libs (also libs auf /usr/lib statt /usr/lib64) stecken. Wenn man mal auf software.opensuse.org schaut gibts dazu aber nur die ganz normalen SRC-RPMs. Aus denen lassen sich dann die 64Bit-Pakete bauen. Aber wie krieg ich die 32Bit-Pakete hin (also die mit -32bit im Namen)? Gruß Daniel -- Daniel Spannbauer Systemadministration marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4-6, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 171775 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Mon, 12 May 2014, Daniel Spannbauer schrieb:
für OpenSUSE gibt es ja teilweise 64-Bit-Pakete in dnen aber 32Bit-Libs (also libs auf /usr/lib statt /usr/lib64) stecken.
Wenn man mal auf software.opensuse.org schaut gibts dazu aber nur die ganz normalen SRC-RPMs. Aus denen lassen sich dann die 64Bit-Pakete bauen. Aber wie krieg ich die 32Bit-Pakete hin (also die mit -32bit im Namen)?
Du mußt einfach für i586 (-m32) und die libs eben nach /lib/ statt lib64 packen. Der Unterschied zwischen den i586 und den x86_64-32bit Paketen ist ja eben, daß man letztere ohne Konflikte parallel zu den x86_64 installieren kann. Wenn du im OBS (oder AFAIK lokal per build) (auch via osc) automatisch aus den i586-RPMs x86_64-32bit RPMs haben willst brauchst du "nur" eine baselibs.conf im Projekt. In die muß nur der Paketname des eigentlichen lib-subpackages. Also z.B. ==== baselibs.conf ==== libfoo3 ==== Damit bekommst du mit folgend skizziertem foo.spec folgende RPMs: ==== %define sover 3 Name: foo [..] %package -n libfoo%{sover} %package devel %files -n libfoo%{sover} %{_libdir}/*.so.* %files devel %{_libdir}/*.so %{_includedir}/foo ===== die RPMs i586/libfoo3, i586/foo-devel, x86_64/libfoo3, x86_64/libfoo3-32bit und x86_64/foo-devel. Dazu muß dein OBS-Projekt nur noch das foo.tar.* und foo.changes enthalten ;) Siehe auch: http://en.opensuse.org/openSUSE:Shared_library_packaging_policy Solche Fragen passen besser nach opensuse-packaging, wo übrigens deutsch AFAIK zumindest toleriert wird, obwohl die ML eigentlich englisch ist, und dort sind auch die Leute, die sich wirklich damit auskennen ;) HTH, -dnh -- It's hard to be religious when certain people are never incinerated by bolts of lightning. -- Calvin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 05/12/2014 05:09 PM, schrieb David Haller:
Hallo,
Am Mon, 12 May 2014, Daniel Spannbauer schrieb:
für OpenSUSE gibt es ja teilweise 64-Bit-Pakete in dnen aber 32Bit-Libs (also libs auf /usr/lib statt /usr/lib64) stecken.
Wenn man mal auf software.opensuse.org schaut gibts dazu aber nur die ganz normalen SRC-RPMs. Aus denen lassen sich dann die 64Bit-Pakete bauen. Aber wie krieg ich die 32Bit-Pakete hin (also die mit -32bit im Namen)?
Du mußt einfach für i586 (-m32) und die libs eben nach /lib/ statt lib64 packen. Der Unterschied zwischen den i586 und den x86_64-32bit Paketen ist ja eben, daß man letztere ohne Konflikte parallel zu den x86_64 installieren kann.
Wenn du im OBS (oder AFAIK lokal per build) (auch via osc) automatisch aus den i586-RPMs x86_64-32bit RPMs haben willst brauchst du "nur" eine baselibs.conf im Projekt. In die muß nur der Paketname des eigentlichen lib-subpackages. Also z.B.
==== baselibs.conf ==== libfoo3 ====
Damit bekommst du mit folgend skizziertem foo.spec folgende RPMs:
==== %define sover 3
Name: foo [..]
%package -n libfoo%{sover} %package devel
%files -n libfoo%{sover} %{_libdir}/*.so.*
%files devel %{_libdir}/*.so %{_includedir}/foo =====
die RPMs i586/libfoo3, i586/foo-devel, x86_64/libfoo3, x86_64/libfoo3-32bit und x86_64/foo-devel.
Dazu muß dein OBS-Projekt nur noch das foo.tar.* und foo.changes enthalten ;)
Siehe auch: http://en.opensuse.org/openSUSE:Shared_library_packaging_policy
Solche Fragen passen besser nach opensuse-packaging, wo übrigens deutsch AFAIK zumindest toleriert wird, obwohl die ML eigentlich englisch ist, und dort sind auch die Leute, die sich wirklich damit auskennen ;)
Hallo David, ganz so kompliziert wollte ich es gar nicht :) Es gibt für Paket xxx.rpm ein sub-package xxx-32bit.rpm. Beide Pakete kommen wohl aus einem srpm xxx.src.rpm. Dieses src.rpm hole ich mir, installiere es mit rpm und versuche nun das xxx-32bit.rpm lokal zu bauen. Eigentlich müsste das ja gehen ohne das ich am SPEC rumbaue, oder? Der OBS kanns ja auch. Oder istd as nur eine Eigenschaft des OBS und nicht mit einem lokalenb SuSE nicht so einfach zu machen? Gruß Daniel -- Daniel Spannbauer Systemadministration marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Rechbergstr. 4-6, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 171775 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Daniel Spannbauer [13.05.2014 12:08]:
Am 05/12/2014 05:09 PM, schrieb David Haller:
Hallo,
Am Mon, 12 May 2014, Daniel Spannbauer schrieb:
für OpenSUSE gibt es ja teilweise 64-Bit-Pakete in dnen aber 32Bit-Libs (also libs auf /usr/lib statt /usr/lib64) stecken.
Wenn man mal auf software.opensuse.org schaut gibts dazu aber nur die ganz normalen SRC-RPMs. Aus denen lassen sich dann die 64Bit-Pakete bauen. Aber wie krieg ich die 32Bit-Pakete hin (also die mit -32bit im Namen)?
Du mußt einfach für i586 (-m32) und die libs eben nach /lib/ statt lib64 packen. Der Unterschied zwischen den i586 und den x86_64-32bit Paketen ist ja eben, daß man letztere ohne Konflikte parallel zu den x86_64 installieren kann.
Wenn du im OBS (oder AFAIK lokal per build) (auch via osc) automatisch aus den i586-RPMs x86_64-32bit RPMs haben willst brauchst du "nur" eine baselibs.conf im Projekt. In die muß nur der Paketname des eigentlichen lib-subpackages. Also z.B.
==== baselibs.conf ==== libfoo3 ====
Damit bekommst du mit folgend skizziertem foo.spec folgende RPMs:
==== %define sover 3
Name: foo [..]
%package -n libfoo%{sover} %package devel
%files -n libfoo%{sover} %{_libdir}/*.so.*
%files devel %{_libdir}/*.so %{_includedir}/foo =====
die RPMs i586/libfoo3, i586/foo-devel, x86_64/libfoo3, x86_64/libfoo3-32bit und x86_64/foo-devel.
Dazu muß dein OBS-Projekt nur noch das foo.tar.* und foo.changes enthalten ;)
Siehe auch: http://en.opensuse.org/openSUSE:Shared_library_packaging_policy
Solche Fragen passen besser nach opensuse-packaging, wo übrigens deutsch AFAIK zumindest toleriert wird, obwohl die ML eigentlich englisch ist, und dort sind auch die Leute, die sich wirklich damit auskennen ;)
Hallo David,
ganz so kompliziert wollte ich es gar nicht :)
Es gibt für Paket xxx.rpm ein sub-package xxx-32bit.rpm. Beide Pakete kommen wohl aus einem srpm xxx.src.rpm. Dieses src.rpm hole ich mir, installiere es mit rpm und versuche nun das xxx-32bit.rpm lokal zu bauen. Eigentlich müsste das ja gehen ohne das ich am SPEC rumbaue, oder? Der OBS kanns ja auch. Oder istd as nur eine Eigenschaft des OBS und nicht mit einem lokalenb SuSE nicht so einfach zu machen?
Wenn Du nur lokal ohne OBS bauen willst, schreibe doch BuildArch: i586 ins Spec-File, oder gib dem rpmbuild-Befehl den Parameter --target i586 mit. rpmbuild wird sich schon beschweren, wenn es nicht klappt ;-) Gruß Werner --
Hallo, Am Tue, 13 May 2014, Werner Flamme schrieb:
Daniel Spannbauer [13.05.2014 12:08]:
Am 05/12/2014 05:09 PM, schrieb David Haller:
Am Mon, 12 May 2014, Daniel Spannbauer schrieb:
für OpenSUSE gibt es ja teilweise 64-Bit-Pakete in dnen aber 32Bit-Libs (also libs auf /usr/lib statt /usr/lib64) stecken.
Wenn man mal auf software.opensuse.org schaut gibts dazu aber nur die ganz normalen SRC-RPMs. Aus denen lassen sich dann die 64Bit-Pakete bauen. Aber wie krieg ich die 32Bit-Pakete hin (also die mit -32bit im Namen)?
Du mußt einfach für i586 (-m32) und die libs eben nach /lib/ statt lib64 packen. Der Unterschied zwischen den i586 und den x86_64-32bit Paketen ist ja eben, daß man letztere ohne Konflikte parallel zu den x86_64 installieren kann.
Wenn du im OBS (oder AFAIK lokal per build) (auch via osc) automatisch aus den i586-RPMs x86_64-32bit RPMs haben willst brauchst du "nur" eine baselibs.conf im Projekt. In die muß nur der Paketname des eigentlichen lib-subpackages. Also z.B.
==== baselibs.conf ==== libfoo3 ====
Damit bekommst du mit folgend skizziertem foo.spec folgende RPMs:
==== %define sover 3
Name: foo [..]
%package -n libfoo%{sover} %package devel
%files -n libfoo%{sover} %{_libdir}/*.so.*
%files devel %{_libdir}/*.so %{_includedir}/foo =====
die RPMs i586/libfoo3, i586/foo-devel, x86_64/libfoo3, x86_64/libfoo3-32bit und x86_64/foo-devel.
Dazu muß dein OBS-Projekt nur noch das foo.tar.* und foo.changes enthalten ;)
Siehe auch: http://en.opensuse.org/openSUSE:Shared_library_packaging_policy
Solche Fragen passen besser nach opensuse-packaging, wo übrigens deutsch AFAIK zumindest toleriert wird, obwohl die ML eigentlich englisch ist, und dort sind auch die Leute, die sich wirklich damit auskennen ;)
ganz so kompliziert wollte ich es gar nicht :)
Es gibt für Paket xxx.rpm ein sub-package xxx-32bit.rpm. Beide Pakete kommen wohl aus einem srpm xxx.src.rpm. Dieses src.rpm hole ich mir, installiere es mit rpm und versuche nun das xxx-32bit.rpm lokal zu bauen. Eigentlich müsste das ja gehen ohne das ich am SPEC rumbaue, oder? Der OBS kanns ja auch. Oder istd as nur eine Eigenschaft des OBS und nicht mit einem lokalenb SuSE nicht so einfach zu machen?
Wenn Du nur lokal ohne OBS bauen willst, schreibe doch
BuildArch: i586
ins Spec-File, oder gib dem rpmbuild-Befehl den Parameter
--target=i586
mit. rpmbuild wird sich schon beschweren, wenn es nicht klappt ;-)
So ein i586-Paket läßt sich aber nicht parallel zum x86_64 Paket installieren. Das ist ja die "Magie" von build/osc/OBS bei den -32bit Paketen. $ rpm -qp --provides http://download.opensuse.org/repositories/GNOME:actory/openSUSE_Factory/i586... glib2 = 2.40.0 libglib-2.0.so.0 libglib-2_0-0 = 2.40.0-254.6 libglib-2_0-0(x86-32) = 2.40.0-254.6 $ rpm -qp --provides http://download.opensuse.org/repositories/GNOME:/Factory/openSUSE_Factory/x8... glib2-32bit = 2.40.0 libglib-2.0.so.0 libglib-2_0-0-32bit = 2.40.0-254.6 libglib-2_0-0-32bit(x86-32) = 2.40.0-254.6 $ rpm -qp --provides http://download.opensuse.org/repositories/GNOME:/Factory/openSUSE_Factory/x8... glib2 = 2.40.0 libglib-2.0.so.0()(64bit) libglib-2_0-0 = 2.40.0-254.6 libglib-2_0-0(x86-64) = 2.40.0-254.6 Wie man sieht gibt's die Konflikte glib2 = 2.40.0 und libglib-2_0-0 = 2.40.0-254.6 aus dem i586 bzw. x86_64 Paket. Aber keinen zw. dem x86_64 und dem -32bit Paket. Einfach als i586-Paket backen klappt aber per simplen --target=i586. Nur mit rpmbuild ein -32bit Paket backen bedarf vermutlich einige Tricks im .spec (BuildArch: i586, Provides: ..., evtl. AutoReqProv: off) Und sei froh, daß bei SuSE/x86_64 die 32bit libs nicht unter ../lib32/ liegen ;) HTH, -dnh -- Linus? Whose that? -- clueless newbie on #Linux -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (3)
-
Daniel Spannbauer
-
David Haller
-
Werner Flamme