Bug 120314 - control-center2 package is missing dependency for libfam
Summary: control-center2 package is missing dependency for libfam
Status: RESOLVED FIXED
: 137394 (view as bug list)
Alias: None
Product: SUSE LINUX 10.0
Classification: openSUSE
Component: GNOME (show other bugs)
Version: Final
Hardware: Other All
: P5 - None : Normal
Target Milestone: ---
Assignee: Stanislav Brabec
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-05 06:39 UTC by Michael Scherer
Modified: 2006-01-30 10:43 UTC (History)
7 users (show)

See Also:
Found By: Other
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
gnome-settings-daemon strace output (41.48 KB, application/x-bzip2)
2005-10-05 09:06 UTC, Michael Scherer
Details
rpm -qa | sort (3.92 KB, application/x-bzip2)
2005-10-05 09:07 UTC, Michael Scherer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Scherer 2005-10-05 06:39:53 UTC
During start of the gnome-settings-daemon I got:
% [gissr@mannem] ~/ $ /opt/gnome/lib/control-center-2.0/gnome-settings-daemon
libfam.so.0: cannot open shared object file: No such file or directory
[1128494090,000,xklavier.c:XklStartListen/]   The backend does not require
manual layout management - but it is provided by the application

Need to install package "fam" to fix it.
Problem exists after fresh install of 10.0.
Comment 1 Stanislav Brabec 2005-10-05 08:47:41 UTC
It should not happen. We have a solution described in bug 112846 comment 32.

If libfam.so.0 error is from gnome-vfs2 or libgda wrappers, it means, that you
have not installed nor fam nor gamin - it should not happen, because both
packages require file_alteration, provided only by these two libraries.

If libfam.so.0 error is from other package, RPM requires should contain it and
onl libfam.so.0 provides it.

Please verify, whether fam and/or gamin packages are installed.

rpm -qa | grep '\(fam\|gamin\)'

Could you provide a strace output? You can start minimal session and start
gnome-settings-daemon manually or start different session type than GNOME and
then start it manually:

strace -f -F -o gsd.log /opt/gnome/lib/control-center-2.0/gnome-settings-daemon
Comment 2 Michael Scherer 2005-10-05 09:06:46 UTC
Created attachment 51467 [details]
gnome-settings-daemon strace output
Comment 3 Michael Scherer 2005-10-05 09:07:19 UTC
Created attachment 51468 [details]
rpm -qa | sort
Comment 4 Michael Scherer 2005-10-05 09:08:55 UTC
% [gissr@mannem] ~/ $ rpm -qa | grep '\(fam\|gamin\)'
fam-server-2.6.10-130

You can find any other info in the attached files.
Note that I use the gnome-settings-daemon with PekWM and didn't install the
whole "Gnome-Desktop" group.
Comment 5 Stanislav Brabec 2005-10-05 09:35:07 UTC
Did you seen a YaST warning during installation? Did you answer "Ignore"? If
yes, please run YaST package manager again and select one of choices (if you
have no NFS, select gamin).
Comment 6 Michael Scherer 2005-10-05 10:32:16 UTC
Nope, everything went fine during installation.
And I don't have any unresolved deps at the moment as well.
Neither with yast, nor with yum.
Comment 7 Stanislav Brabec 2005-10-05 11:14:15 UTC
I see, where is the problem:

sbrabec@hammer:~> rpm -q --whatprovides file_alteration
fam-server-2.6.10-130
sbrabec@hammer:~> rpm -q --requires fam-server | grep fam

We need libfam.so.0, but fam-server does not require fam, which provide libfam.so.0.

Work-around:
Install gamin, if you have local file system or fam, if you have NFS-mounted home.

Possible fix 1:
Add "Requires: fam" to fam-server.
Preferred fix.

Possible fix 2:
Add new symbol file_alteration_server.
gnome-vfs and libgda will have Requires: file_alteration file_alteration_server
gamin will Provides: file_alteration file_alteration_server
fam will Provides: file_alteration
fam-server will Provides: file_alteration_server
Correct but complicated fix.

Possible fix 3:
Move "Provides: file_alteration" from fam-server to fam.
Ugly fix, because fam without fam-server does not provide file_alteration for real.

To Adrian Schroeter:
Which fix do ayou prefer?

To Andreas Jaeger:
Is there any way to fix it by YOU? For 10.0 may be simplest possible fix 1
above. But any fix needs to ask user for running YaST2 package manager after
installing YOU.
Comment 8 Andreas Jaeger 2005-10-05 12:57:07 UTC
I don't know how to fix this via YOU.  Harald, any ideas?
Comment 9 Harald Mueller-Ney 2005-10-05 13:09:43 UTC
We need an update containing both packages the one which is changed (new
require) and the one which is required afterwards. The number of packages should
be limited to the smallest set.
The package with the new require will be used a magnet to auto-select the patch
and install an uninstalled rpm by a special you-patchfile flag.

aj has to create a SWAMP
sbrabec should create a normal patchinfo, submit it to the usual directory.
sbracec should assign the bug to me afterwards:

I will make the needed tricky changes introducing Anja into this magic.
Comment 10 Stanislav Brabec 2005-10-05 13:11:58 UTC
Maybe use POST section in patchinfo.

POST:
If you did not installed GNOME nor KDE selection, please run
YaST2 Software Management and Accept to update package dependencies.
Comment 11 Stanislav Brabec 2005-10-05 13:15:22 UTC
Package fam is alread present in 10.0 and needs no change. Do I need to
re-submit libfam without any change or only mention it in patchinfo?
Comment 13 Andreas Jaeger 2005-10-05 14:06:53 UTC
Ok, let's do it.
Maintenance-Tracker-2519
Comment 14 Adrian Schröter 2005-10-05 15:13:07 UTC
the technical right solution would be "Possible fix 2", since it you can run a 
fam-server without using it on the local system, but remote (like on a nfs 
home server). 
Comment 15 Michael Schröder 2005-10-05 15:18:42 UTC
I don't think we can do 2) with a YOU update, so lets go for 1) 
 
For STABLE fam should be changed so that it can do local file monitoring 
without the need for fam-server. We should move the provides to the "fam" 
package if this is implemented. Much cleaner, IMHO. 
Comment 16 Harald Mueller-Ney 2005-10-05 15:23:38 UTC
"Possible fix 2" couldn't be done by YOU without having more packages installed
as needed/wished.
all mentioned packages would be installed by a you update to solve the
dependencies if he has had installed at least one of the mentioned packages.

"Possible fix 1" is to prefer to not install to many package while "Possible fix
2" is technically more correct.
Comment 17 Stanislav Brabec 2005-10-05 15:37:31 UTC
"Possible fix 2" was implemented for STABLE.

Some packages will propagate to PLUS. Because fam is not in supplementary
program, it will cause hard-requirement of gamin. But I won't fix this minor
issue, because it cannot cause any problem.
Comment 18 Michael Schröder 2005-10-05 15:39:44 UTC
Stanislav, I blocked your packages in STABLE. file_alteration_server is IMHO a 
bad idea. See #15. 
Comment 19 Stanislav Brabec 2005-10-05 15:54:30 UTC
> For STABLE fam should be changed so that it can do local file monitoring 
without the need for fam-server.

It means complete rewrite of fam. This rewrite (without remote support) is
called gamin.

For local file systems systems:
- KDE uses inotify directly without FAM and needs libfam.so.0 only for ldd linker.
- GNOME wrapper will prefer gamin, if fam server is not running.

The dependency chain of gnome-vfs2 in STABLE will be fulfilled, if gamin is
installed or both fam and fam-server are installed. This is exactly, what the
wrapper technically needs.
Comment 20 Adrian Schröter 2005-10-05 15:58:16 UTC
no, it does not mean a complete rewrite, only extending libfam. But I do not 
plan to do this anyway. But it could be done by someone, yes. 
Comment 21 Michael Schröder 2005-10-05 16:06:07 UTC
My point is that "file_alteration" should be provided by fam, not fam-server, 
as use use fam to do the monitoring. So it really is fam that should require 
fam-server, not the other way. 
But this would mean that KDE users will need fam-server, which is bad. So fam 
should work for local filesystems with no fam-server. 
Comment 22 Stanislav Brabec 2005-10-05 16:23:15 UTC
Yes, file_alteration was moved from fam-server to fam.

KDE does not use fam at all for local file systems. But library has to be
installed, because KDE is linked with it.
Comment 23 Michael Schröder 2005-10-05 16:48:07 UTC
You completely missed my point. 
Comment 24 Stanislav Brabec 2005-10-05 17:31:07 UTC
Well. Could you explain me again, what do you propose, please.

My current submit should provide exactly following:
- KDE will requires only fam (but not fam-server, which is only needed for
remote notification)
- GNOME requires either gamin or both fam and fam-server
- not introducing unneeded dependencies
- no changes of fam implementation
- Virtual fam_alteration means lib\(fam\|gamin-0\).so.0
- Virtual fam_alteration_server is a package, which provides file alteration
service.
Comment 25 Michael Schröder 2005-10-05 17:45:56 UTC
IMHO file_alteration_server is stupid. Require: file_alteration means you want 
a working file_alteration service. This should be enough. 
 
My point is that 'fam' doesn't work without fam-server, so it either should 
get fixed or an 'Requires: fam-server' should be added. 
Comment 26 Stanislav Brabec 2005-10-05 20:11:25 UTC
No, file_alteration means only file_alteration library (I can rename this
virtual to file_alteration_library to be clean). I cannot require its name
directly, because ot can be one of two libraries.

file_alteration_server means package, which provides service

fam does not work without fam-server, but provides required library, which is
enough for KDE. The same splitting is used for other libraries and server
programs as well.
Comment 27 Michael Schröder 2005-10-06 10:19:07 UTC
Argh. Please think a bit. You need a working 'file_alteration' *service* in 
gnome_vfs2 and libgda. No one needs two different provides for this. 
 
The current KDE setup is a kind of a hack, because it can do with a crippled, 
not working fam. But the setup is broken, it currently makes no sense to use 
fam if fam-server is not installed. 
 
(I think the fam packages are named a bit wrong: fam-server should be fam and 
fam should be fam-libs.) 
 
What I'm proposing for STABLE (until the fam code is changed) is the 10.0 
solution: fam-server requires fam, i.e. fam requires fam-libs, makes sense, 
no? 
Comment 28 Stanislav Brabec 2005-10-06 10:53:40 UTC
Having fam-server without fam makes sense, if you have desktop-less NFS server,
you need only fam-server and not fam (see comment 14).

Having fam without fam-server makes sense for KDE on local file system.

But if you have installed GNOME, you need both library and server - either gamin
or both fam and fam-server. That is why I introduced two virtuals for GNOME.
Comment 29 Michael Schröder 2005-10-06 11:09:36 UTC
I know all that. I'm saying that 1) two virtuals suck and 2) it doesn't hurt a 
desktop less NFS server if the very small fam package is also installed.  
Comment 30 Stanislav Brabec 2005-10-06 11:25:50 UTC
If it is OK for Adrian (see comment 14), you can use "Possible fix 1" from
comment 7. In this case simply reject my submits of fam, gamin, libgda and
gnome-vfs2 and check-in /work/SRC/old-versions/10.0/all/fam to STABLE.
Comment 31 Michael Schröder 2005-10-06 12:08:08 UTC
I'll talk to adrian. Thanks. 
Comment 32 Anja Stock 2006-01-11 16:36:30 UTC
Michael, what did Adrian say? :-)
Comment 33 Stanislav Brabec 2006-01-24 17:41:22 UTC
This was already fixed long time ago by an optional patch in YaST Online Update.
Comment 34 Stanislav Brabec 2006-01-30 10:43:39 UTC
*** Bug 137394 has been marked as a duplicate of this bug. ***