---------- Forwarded message ----------
From: Alexey Eremenko <al4321(a)gmail.com>
Date: Apr 19, 2006 4:48 PM
Subject: Attention: Lots of SUSE packages are packaged incorrect
To: suse-linux-e(a)suse.com
Hi all !
I would like to discuss with the SUSE community one mistake commonly
done by SUSE packagers: more specifically - the RPM architecture in
SUSE.
I have found a LOT of noarch packages built for the i586 architecture
in SUSE Linux 10.0.
I propose to people to identify those packages, that should be made
"noarch" but for some obscure reason are not.
Most packages that were built in the incorrect way were documentation,
but some others were written in Interpreted languages. (like Python)
One example of interpreted language package that is i586 but should be
noarch is :
"eric" IDE
I have not dive too deep, but I'm sure there are other examples.
The other incorrectly packaged packages are docs - quick search returns me:
linux:/mnt/cdrom/suse/i586 # ls | grep doc | sort | cat -n
1 apache2-doc-2.0.54-10.i586.rpm
2 atk-doc-1.10.3-2.i586.rpm
3 at-spi-doc-1.6.6-2.i586.rpm
4 bind-doc-9.3.1-8.i586.rpm
5 cvs-doc-1.12.12-4.i586.rpm
6 docbook2x-0.8.5-5.i586.rpm
7 gconf2-doc-2.12.0-2.i586.rpm
8 glib2-doc-2.8.1-3.i586.rpm
9 gnome-doc-utils-0.4.0-2.i586.rpm
10 gnome-panel-doc-2.12.0-5.i586.rpm
11 gnome-vfs2-doc-2.12.0-9.i586.rpm
12 gtk2-doc-2.8.3-4.i586.rpm
13 gtksourceview-doc-1.4.1-2.i586.rpm
14 kdelibs3-doc-3.4.2-24.i586.rpm
15 krb5-doc-1.4.1-5.i586.rpm
16 libbonobo-doc-2.10.1-3.i586.rpm
17 libbonoboui-doc-2.10.1-3.i586.rpm
18 libglade2-doc-2.5.1-9.i586.rpm
19 libgnomecanvas-doc-2.12.0-2.i586.rpm
20 libgnome-doc-2.12.0.1-2.i586.rpm
21 libgnomeprint-doc-2.12.0-4.i586.rpm
22 libgnomeprintui-doc-2.12.0-3.i586.rpm
23 libgnomeui-doc-2.12.0-3.i586.rpm
24 libgsf-doc-1.12.1-3.i586.rpm
25 libicu-doc-3.4-3.i586.rpm
26 libreadline-java-javadoc-0.8.0-11.i586.rpm
27 lilypond-documentation-2.6.3-2.i586.rpm
28 python-twisted-doc-2.0.0-2.i586.rpm
29 qt3-devel-doc-3.3.4-28.i586.rpm
30 samba-doc-3.0.20-4.i586.rpm
31 xen-doc-html-3.0_6715-2.i586.rpm
32 xen-doc-pdf-3.0_6715-2.i586.rpm
33 xen-doc-ps-3.0_6715-2.i586.rpm
now, 33 doc packages are i386 ? And, of course all of them contain
binaries, huh!
:)
Look, it wastes time & server space to get noarch packges built for
different platforms.
Why is this ?
OS: SUSE Linux 10.0
-Alexey Eremenko. 19.04.2006.
> Most packages that were built in the incorrect way
> were documentation, but some others were written in
> Interpreted languages. (like Python)
Double-No:
(1) Many documentation packages are probably really architecture
independent, but if architecture dependent binaries were built from the same
source package, the documentation package is archictecture dependent, too,
for purely practical reasons. This is especially the case for all gtk-doc
packages.
(2) Python modules are not noarch! Marking them as noarch is one of the most
frequent mistakes made by third party packagers. To find out if a package is
noarch, do *not* ask yourself "is it written in an interpreted language" -
ask yourself "will the unmodified RPM work on all architectures". For Python
modules, the answer to this question is "no".
> One example of interpreted language package that is
> i586 but should be
> noarch is :
> "eric" IDE
No! Look at the file list of the eric package:
/usr/bin/eric3
/usr/bin/eric3-api
/usr/bin/eric3-doc
/usr/bin/eric3-helpviewer
/usr/bin/eric3-qregexp
/usr/bin/eric3-re
/usr/bin/eric3-trpreviewer
/usr/bin/eric3-uipreviewer
/usr/bin/eric3-unittest
/usr/lib/python2.4/site-packages/eric3
/usr/lib/python2.4/site-packages/eric3/APIs
/usr/lib/python2.4/site-packages/eric3/APIs/python.api
/usr/lib/python2.4/site-packages/eric3/APIs/qt.api
/usr/lib/python2.4/site-packages/eric3/APIs/qtaxcontainer.api
/usr/lib/python2.4/site-packages/eric3/APIs/qtcanvas.api
/usr/lib/python2.4/site-packages/eric3/APIs/qtext.api
/usr/lib/python2.4/site-packages/eric3/APIs/qtgl.api
/usr/lib/python2.4/site-packages/eric3/APIs/qtnetwork.api
/usr/lib/python2.4/site-packages/eric3/APIs/qtsql.api
/usr/lib/python2.4/site-packages/eric3/APIs/qttable.api
/usr/lib/python2.4/site-packages/eric3/APIs/qtui.api
/usr/lib/python2.4/site-packages/eric3/APIs/qtxml.api
/usr/lib/python2.4/site-packages/eric3/Checks
/usr/lib/python2.4/site-packages/eric3/Checks/SyntaxCheckerDialog.py
/usr/lib/python2.4/site-packages/eric3/Checks/SyntaxCheckerDialog.pyc
/usr/lib/python2.4/site-packages/eric3/Checks/SyntaxCheckerForm.py
/usr/lib/python2.4/site-packages/eric3/Checks/SyntaxCheckerForm.pyc
/usr/lib/python2.4/site-packages/eric3/Checks/Tabnanny.py
/usr/lib/python2.4/site-packages/eric3/Checks/Tabnanny.pyc
/usr/lib/python2.4/site-packages/eric3/Checks/TabnannyDialog.py
[...]
As you can see, all the Python modules are installed in
"/usr/lib/python2.4/site-packages". And now, where is the site-packages
directory on x86_64? It's in "/usr/lib64/python2.4/site-packages". Therefore
the unmodified RPM will *not* work on x86_64, and that's why the package has
to be architecture dependent even though Python is an interpreted language.
By the way, even pure shell scripts can be architecture specific if they
hardcode "/usr/lib" or "/usr/lib64" somewhere.
I think it's quite a good opportunity to point that out here once and
forever, to improve the quality of third party packages for SUSE Linux.
Right now there are many, many pseudo-noarch Python packages from third
party repositories out there that simply don't work on x86_64.
As far as it concerns your examples of documentation packages: I had a quick
look over the list and am very sure that most of them are built from
architecture dependent source packages. To be honest, I don't think that
more than maybe a handful of packages in SUSE Linux are really incorrectly
marked as architecture specific.
--
Analog-/ISDN-Nutzer sparen mit GMX SmartSurfer bis zu 70%!
Kostenlos downloaden: http://www.gmx.net/de/go/smartsurfer
There is a significant bug in Evolution which prevents Evolution to be
used against an Exchange server as described in
http://bugzilla.gnome.org/show_bug.cgi?id=335561
A patch has been created however it will be made available in Evolution
2.6.2 which will be available on May 31st. Since 10.1 is coming out
these days can the patch be included in the Evolution package ?
http://bugzilla.gnome.org/attachment.cgi?id=63665&action=view
It is a patch against evolution-data-server. I patched it up by hand and
things work well.
Thanks,
Vladimir
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Started building on 10.1 RC1 and I noticed two things:
1) there's a bug in the %suse_update_desktop_file macro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(in the /usr/lib/rpm/suse_macros file)
I always use that macro like this:
%suse_update_desktop_file -r "%{name}" Foo Bar
The -r flag overwrites categories that already exist in the .desktop
file (without -r, it just appends to the existing).
That doesn't work on 10.1, the bug + workaround is described here:
https://bugzilla.novell.com/show_bug.cgi?id=166170
Workaround: edit /usr/lib/rpm/suse_macros and change line 48:
%suse_update_desktop_file() \
into this:
%suse_update_desktop_file(cinrud) \
2) all your spec files that build using python setuptools are hosed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The default prefix for builds with Python setuptools (setup.py) is now
/usr/local instead of /usr
So you need to change the
%__python ./setup.py install --root="%{buildroot}"
line into this:
%__python ./setup.py install --prefix="%{_prefix}" --root="%{buildroot}"
Then it works as expected.
I wanted to file a bug for this one as well, but I've been told it's
explicitely wanted that way.
Could someone @SUSE comment on this one ? Adrian ?
Is it a bug or is it intended ?
cheers
- --
-o) Pascal Bleser http://linux01.gwdg.de/~pbleser/
/\\ <pascal.bleser(a)skynet.be> <guru(a)unixtech.be>
_\_v The more things change, the more they stay insane.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
iD8DBQFEPwhLr3NMWliFcXcRAnvAAJ4lVwxoce+5rF7waX9KtGINqNz/MgCcC9bN
63i7af2m9M1KlrzagL4yS/U=
=1glY
-----END PGP SIGNATURE-----
Hello everybody!
For everybody working in the embedded systems area: I now have packaged
squashfs for 10.1 on i586 and x86_64.
Get it at http://pi3.informatik.uni-mannheim.de/~schiele/suse/10.1/ and have
fun.
Robert
--
Robert Schiele Tel.: +49-621-181-2214
Dipl.-Wirtsch.informatiker mailto:rschiele@uni-mannheim.de
"Quidquid latine dictum sit, altum sonatur."