Request for Review: hula
Michael Schwendt
bugs.michael at gmx.net
Sat Apr 16 09:38:46 UTC 2005
On Fri, 15 Apr 2005 20:33:20 -0400, Kevin Gray wrote:
> This is the second package update of hula. Information on the software can be
> found at www.hula-project.org.
>
In order to build it, I've had to add the following missing
build requirements:
libtool (as before)
openssl-devel
Try to get upstream to ship a good tarball, where you don't need to run
autogen.sh.
> I made the changes you referenced earlier. There is one thing that I dont
> completely understand due to my ignorance, and I was wondering if you had
> some insight. The .so files that should be in the -devel package are required
> by hula to run, so the package will always need hula and hula-devel to run.
> Is this the norm for a -devel package? Thanks for the help...
Well, you have moved _all_ shared libraries into the -devel packages, not
just .a/.la/.so from /usr/lib, which are only needed for development.
$ sudo rpm -ivh /home/qa/tmp/rpm/RPMS/hula-r178-2.i386.rpm
error: Failed dependencies:
libhulalogger.so.0 is needed by hula-r178-2.i386
libhulamdb.so.0 is needed by hula-r178-2.i386
libhulamemmgr.so.0 is needed by hula-r178-2.i386
libhulamsgapi.so.0 is needed by hula-r178-2.i386
libhulaxpl.so.0 is needed by hula-r178-2.i386
Generally, *.so files are symlinks pointing to versioned *.so.* libraries
(note the subtle difference, *.so is not equal to *.so.*). Unless the *.so
files are accessed at run-time (e.g. via dlopen), they are only needed at
compile/link-time (option -lfoo in compiler command line means to link
against libfoo.so). If you wanted to install multiple versions of a
library at once, e.g. libfoo.so.0 and libfoo.so.1, you could not have
multiple *.so symlinks with the same file name pointing to different files
(should it be libfoo.so -> libfoo.so.0 or libfoo.so -> libfoo.so.1?).
That's why *.so files, which are needed at compile/link-time only, usually
are put into -devel packages.
Programs are linked against versioned *.so.* libraries. These dependencies
are caught automatically by rpmbuild (see "rpm --query --requires
packagename"). Good programs, which open libraries at run-time, open
versioned files too, and not non-versioned ones like "libfoo.so". Or they
put run-time loaded non-versioned *.so libs into private sub-directories
and not store "modules" ("plugins" or hula "snapins") in the root of
%{_libdir}.
Of course, where you are unsure and where parallel installation of
multiple versions is not planned, you could include all *.so symlinks
in the main package and don't worry.
In detail:
drwxr-xr-x root root 0 /usr/lib/hulamdb
-rw-r--r-- root root 71460 /usr/lib/hulamdb/libmdbfile.a
-rwxr-xr-x root root 68156 /usr/lib/hulamdb/libmdbfile.so
This run-time loaded *.so file and its directory belong into the main
package, the static archive *.a is not needed.
-rw-r--r-- root root 16722 /usr/lib/libhulalogger.a
lrwxrwxrwx root root 22 /usr/lib/libhulalogger.so
lrwxrwxrwx root root 22 /usr/lib/libhulalogger.so.0
-rwxr-xr-x root root 19152 /usr/lib/libhulalogger.so.0.0.0
A core hula library. The *.a/*.so files can be moved into -devel package.
The *.so.* files are needed in the main package. The executables are
linked against them. See package dependencies quoted above.
-rw-r--r-- root root 20858 /usr/lib/libhulamdb.a
lrwxrwxrwx root root 19 /usr/lib/libhulamdb.so
lrwxrwxrwx root root 19 /usr/lib/libhulamdb.so.0
-rwxr-xr-x root root 23604 /usr/lib/libhulamdb.so.0.0.0
Same as with libhulalogger.
-rw-r--r-- root root 91808 /usr/lib/libhulamemmgr.a
lrwxrwxrwx root root 22 /usr/lib/libhulamemmgr.so
lrwxrwxrwx root root 22 /usr/lib/libhulamemmgr.so.0
-rwxr-xr-x root root 63192 /usr/lib/libhulamemmgr.so.0.0.0
Same as with libhulalogger.
-rw-r--r-- root root 59092 /usr/lib/libhulamsgapi.a
lrwxrwxrwx root root 22 /usr/lib/libhulamsgapi.so
lrwxrwxrwx root root 22 /usr/lib/libhulamsgapi.so.0
-rwxr-xr-x root root 55332 /usr/lib/libhulamsgapi.so.0.0.0
Same as with libhulalogger.
-rw-r--r-- root root 22218 /usr/lib/libhulaxpl.a
lrwxrwxrwx root root 19 /usr/lib/libhulaxpl.so
lrwxrwxrwx root root 19 /usr/lib/libhulaxpl.so.0
-rwxr-xr-x root root 19296 /usr/lib/libhulaxpl.so.0.0.0
Same as with libhulalogger.
-rw-r--r-- root root 14898 /usr/lib/libwacert.a
lrwxrwxrwx root root 18 /usr/lib/libwacert.so
lrwxrwxrwx root root 18 /usr/lib/libwacert.so.0
-rwxr-xr-x root root 18248 /usr/lib/libwacert.so.0.0.0
-rw-r--r-- root root 35208 /usr/lib/libwanmail.a
lrwxrwxrwx root root 19 /usr/lib/libwanmail.so
lrwxrwxrwx root root 19 /usr/lib/libwanmail.so.0
-rwxr-xr-x root root 34584 /usr/lib/libwanmail.so.0.0.0
-rw-r--r-- root root 5818 /usr/lib/libwastdobj.a
lrwxrwxrwx root root 20 /usr/lib/libwastdobj.so
lrwxrwxrwx root root 20 /usr/lib/libwastdobj.so.0
-rwxr-xr-x root root 8076 /usr/lib/libwastdobj.so.0.0.0
These three above are webadmin agent modules, which belong into the main
package. *.a files not needed, since *.so files are loaded at run-time,
and *.so symlinks point to *.so.*, so all but *.a files are needed here.
drwxr-xr-x root root 0 /usr/lib/modweb
-rw-r--r-- root root 4174572 /usr/lib/modweb/aurora.ctp
-rw-r--r-- root root 253682 /usr/lib/modweb/libmwcal.a
-rwxr-xr-x root root 200644 /usr/lib/modweb/libmwcal.so
-rw-r--r-- root root 238438 /usr/lib/modweb/libmwmail.a
-rwxr-xr-x root root 204256 /usr/lib/modweb/libmwmail.so
-rw-r--r-- root root 81702 /usr/lib/modweb/libmwpref.a
-rwxr-xr-x root root 72540 /usr/lib/modweb/libmwpref.so
-rw-r--r-- root root 57984 /usr/lib/modweb/public.ctp
Same as with the libwa*. Files *.a not needed, only the *.so are needed
in the main package here.
%doc INSTALL : irrelevant to end-users
%doc NEWS ChangeLog : empty
--
Fedora Core release 3.91 (Pre-FC4) - Linux 2.6.11-1.1236_FC4
loadavg: 0.01 0.01 0.03
More information about the fedora-extras-list
mailing list