Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 297684

Summary: dev-libs/glib tests removes /usr/share/applications/gedit.desktop in real system
Product: Gentoo Linux Reporter: Pacho Ramos <pacho>
Component: [OLD] GNOMEAssignee: Gentoo Linux Gnome Desktop Team <gnome>
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Package list:
Runtime testing required: ---

Description Pacho Ramos gentoo-dev 2009-12-20 19:01:43 UTC
I am seeing this behavior since I started to run tests some months ago. The problem is that, from time to time, I got gedit.desktop file removed after updating my system. Finally, seems that today I have found the culprit:

I get this problem now with dev-libs/glib-2.22.3, but I am getting this since a lot of time, then, it's not a regression

My emerge --info:
Portage (default/linux/amd64/10.0/desktop, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.32-gentoo x86_64)
System uname: Linux-2.6.32-gentoo-x86_64-AMD_Athlon-tm-_64_Processor_3200+-with-gentoo-1.12.13
Timestamp of tree: Sun, 20 Dec 2009 17:00:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p35
dev-java/java-config: 2.1.9-r2
dev-lang/python:     2.6.4
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.6.4-r3
sys-apps/baselayout: 1.12.13
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.27-r2
CFLAGS="-march=native -O2 -pipe"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests autoaddcvs ccache cvs distlocks fixpackages multilib-strict news parallel-fetch protect-owned sandbox sfperms sign strict test test-fail-continue unmerge-logs unmerge-orphans userfetch"
LINGUAS="es es_ES en_US"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/portage/local/layman/suka /usr/local/portage"
USE="3dnow 3dnowext X a52 aac acl acpi alsa amd64 applet avahi bash-completion berkdb branding bzip2 cairo cddb cdinstall cdr cleartype cli consolekit cracklib crypt css cups cxx daap dbus djvu dri dts dvd dvdr dvi eds emboss encode evo exif fam fat ffmpeg firefox flac fortran fuse gdbm gif glitz gnome gnome-keyring gpm gstreamer gtk hal iconv imagemagick java jpeg kdehiddenvisibility kpathsea latex libnotify lyx lzma mad mikmod mmx mmxext mng modules mono mp3 mp4 mpeg mudflap multilib musicbrainz nautilus ncurses network network-cron nls nptl nptlonly ntfs nvidia ogg opengl openmp pam pango pch pcre pdf perl png policykit ppds pppd python qt3support qt4 quicktime readline reflection reiserfs scanner sdl session spell spl sse sse2 ssl ssse3 startup-notification svg sysfs t1lib tcpd threads thunar tiff truetype unicode usb v4l2 vcd vorbis webkit x264 xattr xcb xinetd xml xmp xorg xpm xulrunner xv xvid zeroconf zlib" ALSA_CARDS="via82xx" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="es es_ES en_US" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa" 

Reproducible: Always
Comment 1 Pacho Ramos gentoo-dev 2009-12-20 19:08:50 UTC
Running in grep in sources dir has the following:
$ grep -r gedit *
ChangeLog.pre-2-0:	looking for and regedit.
docs/reference/glib/html/glib-Bookmark-file-parser.html:          &lt;bookmark:application name=<span class="number">&quot;GEdit&quot;</span> count=<span class="number">&quot;2&quot;</span> exec=<span class="number">&quot;gedit </span><span class="symbol">%u</span><span class="number">&quot;</span> timestamp=<span class="number">&quot;1115726763&quot;</span>/&gt;
docs/reference/glib/tmpl/bookmarkfile.sgml:          <bookmark:application name="GEdit" count="2" exec="gedit %u" timestamp="1115726763"/>
gio/glocalfileoutputstream.c:/* Some of the file replacement code was based on the code from gedit,
gio/tests/desktop-app-info.c:  if (g_file_test ("/usr/share/applications/gedit.desktop", G_FILE_TEST_EXISTS))
gio/tests/desktop-app-info.c:      info = (GAppInfo*)g_desktop_app_info_new ("gedit.desktop");
tests/testglib.c:      g_print ("found regedit as %s\n", g_find_program_in_path ("regedit"));

Maybe the culprit is in gio/tests/desktop-app-info.c

What really surprises me is how the test can remove desktop file in REAL system (I thought sandbox would prevent it)
Comment 2 Gilles Dartiguelongue gentoo-dev 2009-12-20 21:54:31 UTC
sandbox should indeed stop such thing to happen. Adding sandbox to CC so they can enlighten us.
Comment 3 SpanKY gentoo-dev 2009-12-21 00:29:21 UTC
glib calls remove() which no one uses and so sandbox has never wrapped it.  i'll update sandbox to catch it, but glib's test is going to start failing, so ...
Comment 4 SpanKY gentoo-dev 2009-12-21 02:17:40 UTC
fixed in git:;a=commitdiff;h=2b8b95c186881a5abe295efba52d54ee7b8f4979

now the glib test throws:
F: remove
S: deny
P: /usr/share/applications/gedit.desktop
A: /usr/share/applications/gedit.desktop
R: /usr/share/applications/gedit.desktop
C: /var/tmp/portage/dev-libs/glib-2.22.3/work/glib-2.22.3/gio/tests/.libs/desktop-app-info
Comment 5 SpanKY gentoo-dev 2009-12-21 02:19:49 UTC
or rather, it might not since there's an addpredict in src_test by default.  the output i posted is a manual sandbox run to show the remove() is caught.  so you might not have to change anything and we can consider the issue fixed with sandbox-2.3+.
Comment 6 Gilles Dartiguelongue gentoo-dev 2009-12-21 09:40:26 UTC
thanks vapier, we'll try to see if we can make upstream stop trying to do tests with real data so we can drop the predict stuff hopefully.
Comment 7 Gilles Dartiguelongue gentoo-dev 2010-01-28 23:59:28 UTC
added a workaround to 2.22.4 ebuild, keeping this bug open until it's reported upstream.
Comment 8 Pacho Ramos gentoo-dev 2010-01-29 09:33:47 UTC