OpenCSW Bug Tracker


Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0005085 [libgamin_dev] minor always 2013-07-01 20:23 2013-10-27 09:11
Reporter mi View Status public  
Assigned To raos
Priority normal Resolution fixed  
Status closed  
Summary 0005085: libgamin_dev creates broken symlink for libfam.so
Description After installing libgamin_dev I got the following files:

% grep libfam /var/sadm/install/contents
/opt/csw/lib/libfam.so=libfam.so.0.0.0 s none CSWlibgamin-dev
/opt/csw/lib/sparcv9/libfam.so=libfam.so.0.0.0 s none CSWlibgamin-dev

Note, that there are two symlinks -- but not the files they are pointing at. The libfam.so.0.0.0 does not exist neither in /opt/csw/lib nor in /opt/csw/lib/sparcv9

Perhaps, the symlink should point at libgamin.so?
Additional Information Solaris 10. Using libgamin_dev-0.1.10,REV=2011.12.09-SunOS5.10 and libgamin1_0-0.1.10,REV=2011.12.09
Tags No tags attached.
Attached Files

- Relationships

-  Notes
(0010458)
dam (administrator)
2013-07-01 22:15

The libfam.so.0 library is in fact in CSWlibfam0, but as it is a legacy library it is not pulled in by default:
  http://sourceforge.net/apps/trac/gar/browser/csw/mgar/pkg/gamin/trunk/Makefile#L46 [^]
I am not sure if pulling in this library is a requirement. Maybe you can elaborate the working of
the software you are compiling against fam?
(0010459)
raos (manager)
2013-07-02 08:01

I believe to know, that there is software out there which checks for existence libfam (can't recall which one though). Further, according to https://people.gnome.org/~veillard/gamin/differences.html, [^] libfam from gamin is binary compatible to the SGI fam implementation.

So, even tough, SGI libfam is legacy, I would pull in gamin libfam in libgamin-dev.

Opinions?
(0010462)
mi (reporter)
2013-07-03 21:12

The software I'm building needs fam.h to compile and -lfam to link. Whether -lfam is provided by FAM or Gamin does not matter -- Gamin is a drop-in replacement for FAM. It is API-compatible and, perhaps, even ABI compatible...

For example, on my FreeBSD desktop I have:
% pkg_info -W /opt/lib/libfam.so.0
/opt/lib/libfam.so.0 was installed by package gamin-0.1.10_4

CSWgamin, instead, installs libgamin.so. In such a case, perhaps, libfam.so should be a symlink to libgamin, but not a broken symlink to libfam.so.0.0.0.
(0010463)
dam (administrator)
2013-07-03 21:30

Just to make sure: Does your software compile after you install CSWlibfam0 ?
(0010464)
mi (reporter)
2013-07-04 02:14

Yes, it does. It was written for FAM -- before Gamin appeared on the scene. All of the FAM-using software out there can be built against either. Gamin is just more feature-full and has more OS-specific backends (kqueue for BSD, /dev/poll for Solaris, inotify or whatever on Linux, etc.) to do its job efficiently.
(0010477)
raos (manager)
2013-07-07 21:30

Just pushed a respin of gamin in unstable, which pulls in libfam when ibgamin_dev is installed.
(0010479)
mi (reporter)
2013-07-08 16:08

raos, could you clarify, please? My reading of your last comment is that libgamin_dev now depends on FAM, which would be very very wrong...
(0010480)
raos (manager)
2013-07-08 17:17

Sorry for the fuzz. What I meant: when installing libgamin_dev, or CSWlibgamin-dev, for that matter, *gamin's* CSWlibfam0 will be automatically installed. In other words, I is now the same way as on FreeBSD, for instance.
(0010481)
mi (reporter)
2013-07-08 17:31

Thanks, but what will gamin's CSWlibfam0 install? All that's currently wrong with gamin_dev is that the libfam.so.0 symlink it creates points at the non-existant libfam.so.0.0.0 instead of the present libgamin.so

Will CSWlibfam0 create the missing libfam.so.0.0.0? Will that be identical to libgamin.so or a link (symbolic or hard) to it?
(0010486)
raos (manager)
2013-07-09 17:33

> All that's currently wrong with gamin_dev is that the libfam.so.0 symlink it creates points at the non-existant libfam.so.0.0.0 instead of the present libgamin.so

Doing that so would be wrong. Even FreeBSD did not do it that way.

When you install libgamin_dev, you will now automatically receive CSWlibfam0 as a dependency, which will provide (create) libfam.so.0.0.0.

Now, there is libfam.so points to libfam.so.0.0.0 and libgamin-1.so (there is no libgamin.so) points to libgamin-1.so.0.1.10.

Judging from the file size, libfam.so.0.0.0 and libgamin-1.so.0.1.10 are not identical.

Anyhow, use pkgutil to update libgamin_dev and try to rebuild your application.
(0010487)
mi (reporter)
2013-07-09 18:24

You are right, that FreeBSD does not create libgamin.so. The gamin package (we don't split things into foo and foo_dev -- that seems like a Linux thing) installs simply libfam.so, which is a symlink to libfam.so.0. The CSW package does install the same library as libgamin-1.so.*, which is fine. All that's needed is for the libfam.so to exist and point to a valid, Gamin-provided library.

When I reported the broken symlink, I expected the symlink to be fixed to point to libgamin.so. Dragging in the actual FAM in order to install Gamin (or Gamin_dev) is crazy -- Gamin is a replacement for FAM, it can not require FAM to function.

If CSWlibfam0's libfam.so.0.0.0 and CSWgamin's libgamin-1.so.0.1.10 are not identical, then either CSWlibfam0 is installing an older version of Gamin implementation or it is simply the FAM implementation. Neither choice is a good one.

Pointing libfam.so to libgamin-1.so.0.1.0 seems like the best solution at this time -- it is what I did by hand here and my application is working...
(0010489)
raos (manager)
2013-07-10 07:54

Just to make sure we're on the same page. When I'm talking about libfam, I don't talk about *SGI FAM*. SGI FAM has gone. The libfam I talk, comes with gamin. It is part of the upstream release. Also the symlinks, they are created by the upstream release of gamin. And so far, I don't see any reason why the upstream release should be wrong.


Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker