Opened 16 years ago

Closed 8 years ago

#14729 closed defect (fixed)

gnome installations do not register the schema files with gconf

Reported by: reiffert@… Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: Cc: billitch@…, gerald@…, landonf (Landon Fuller), nox@…, rjt-gramps@…, shadow@…, toralf@…, vincent-opdarw@…, cooljeanius (Eric Gallager)
Port: gksu gthumb pidgin planner

Description

Gnome ports install schema files to ${prefix}/etc/gconf/schema/ Those files need to be registered along with gconftool-2. Placing them in the directory is not enough.

I recently discovered the advantages and allready added the following scope to port:gnucash port:gnome-vfs and port:yelp It appears that port:gnome-control-center does it equally.

post-activate {
        # We need to register some stuff to gconf. Just putting the
        # schema files to the right place is not enough.
        # You can watch the successful installation with gconf-editor.

        system "cd ${prefix}/etc/gconf/schemas && \
        GCONF_CONFIG_SOURCE=`${prefix}/bin/gconftool-2 --get-default-source` ${p
refix}/bin/gconftool-2 --makefile-install-rule \
                desktop_default_applications.schemas \
                desktop_gnome_url_handlers.schemas \
                system_dns_sd.schemas \
                system_http_proxy.schemas \
                system_smb.schemas"
}

Please remember to replace those schemas through the port's schema files you are upgrading.

You can validate the successful schema registration by launching gconf-editor.

Kind regards Thomas

Change History (15)

comment:1 Changed 16 years ago by reiffert@…

Status: newassigned

Unfourtunatly my first attempt doesnt work well on port variants. Currently I'm writing a gnome portgroup for handling the situation. Until the portgroup reaches your macports installation with a new macports release, use the following on your gnome port:

set storagedir  ${prefix}/etc/macports/gconf
set storagefile $storagedir/${name}

post-destroot {
 	# We need to register some stuff to gconf. Just putting the
 	# schema files to the right place is not enough.
	# For now we store the files in
	# ${prefix}/etc/macports/gconf/${name} and use that file
	# in post-activate. Until there is no better solution
	# this will make it into the gnomeportgroup

        # Find all .schemas file in the destroot
	fs-traverse schema ${destroot}${prefix}/etc/gconf/schemas {
		if { [ file isfile $schema ] } {
			lappend schemafiles $schema
		}
	}


        # And put them in etc/macports/gconf/$name
	if { [ llength $schemafiles ] > 0 } {
		file mkdir ${destroot}${storagedir}
		set fh [open ${destroot}${storagefile} w]
		foreach file $schemafiles {
			puts $fh [exec basename $file]
		}
		close $fh
	}
}

post-activate {
	if { [file exists ${storagefile} ] } {
		set fh [open ${storagefile} r]
		while { ! [eof $fh] } {
			lappend schemafiles [gets $fh]
		}
		close $fh
	}

	set schemastring [join $schemafiles " "]

         system "cd ${prefix}/etc/gconf/schemas && \
         GCONF_CONFIG_SOURCE=`${prefix}/bin/gconftool-2 --get-default-source` ${prefix}/bin/gconftool-2 --makefile-install-rule $schemastring"
 }

comment:2 Changed 16 years ago by jmroot (Joshua Root)

MIME and desktop databases also need to be updated in post-activate, like so:

system "${prefix}/bin/update-desktop-database -q ${prefix}/share/applications; true"
system "${prefix}/bin/update-mime-database ${prefix}/share/mime; true"

The "; true" is so activate doesn't fail if the applications or mime directories don't exist. (See r35289.)

comment:3 Changed 16 years ago by jmroot (Joshua Root)

Cc: billitch@gmail.com,gerald@grisbi.org,landonf@macports.org,nox@macports.org,rjt-gramps@thegrindstone.me.uk,shadow@dementia.org,toralf@procaptura.com,vincent-opdarw@vinc17.orgbillitch@gmail.com, gerald@grisbi.org, landonf@macports.org, nox@macports.org, rjt-gramps@thegrindstone.me.uk, shadow@dementia.org, toralf@procaptura.com, vincent-opdarw@vinc17.org

Oh, and --disable-update-mimedb --disable-update-desktopdb needs to be added to the configure args somewhere, otherwise conflicting files are created in the destroot.

comment:4 Changed 16 years ago by gui-dos (Guido Soranzio)

Another command frequently needed after installing is

${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}(bin/opt/local/share/icons/hicolor

comment:5 in reply to:  4 Changed 16 years ago by gui-dos (Guido Soranzio)

${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}(bin/opt/local/share/icons/hicolor

Oops: I meant:

${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}/share/icons/hicolor

comment:6 Changed 15 years ago by nox@…

libgsf's GConf schemas are now properly registered during activation time since r41441.

comment:7 Changed 15 years ago by nox@…

Why do we need GCONF_CONFIG_SOURCE when we are registering in the default gconf source?

comment:8 Changed 15 years ago by nox@…

libgweather taken care of in r41484.

comment:9 Changed 15 years ago by (none)

Milestone: Port Enhancements

Milestone Port Enhancements deleted

comment:10 Changed 14 years ago by jmroot (Joshua Root)

Cc: devans@… added

comment:11 Changed 14 years ago by dbevans (David B. Evans)

As of now, the following GNOME ports install GConf schema files but do not properly register them

gksu
gthumb
pidgin
planner

The following both install and properly register schemas

anjuta
at-spi
bug-buddy
conglomerate
devhelp
drivel
empathy
eog
epiphany
evince
file-roller
gcalctool
gconf-editor
gdm
gedit
gnome-applets
gnome-control-center
gnome-games
gnome-keyring
gnome-mag
gnome-media
gnome-netstatus
gnome-panel
gnome-session
gnome-settings-daemon
gnome-system-monitor
gnome-terminal
gnome-utils
gnome-vfs
gnucash
gnumeric
gst-plugins-good
gucharmap
libcanberra
libgail-gnome
libgnome
libgnomekbd
libgweather
metacity
nautilus
seahorse
seahorse-plugins
teg
totem
vino

comment:12 in reply to:  11 Changed 11 years ago by cooljeanius (Eric Gallager)

Replying to devans@…:

As of now

Is this still the case now, 3 years later? I've noticed you've been working on doing this with a lot of gnome ports lately...

comment:13 Changed 11 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:14 Changed 8 years ago by mf2k (Frank Schima)

Cc: devans@… removed
Keywords: gnome gconf gconftool-2 removed
Owner: changed from reiffert@… to devans@…
Port: gksu gthumb pidgin planner added
Status: assignednew

reiffert has retired. See #51270. Dave, maybe you can re-evaluate the status and close this out?

comment:15 Changed 8 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: newclosed

Closing as fixed.

gksu and associated libraries libgksu12 and libgksuui10 removed in r149949. Development abandoned in 2006. More current ports use policykit to manage privileged access.
gthumb fixed to properly register gconf schemas in r72313, current versions use gsettings/dconf instead of gconf and properly register their schemas as well.
pidgin still uses gconf but now properly registers its gconf schemas in post-activate, not sure when this got fixed.
planner fixed in r149950, maintainer timeout, to properly register it's gconf schemas. No word from billitch in some time so this port may be abandoned.

Thanks to Frank for pointing out that this ticket was still open!

Note: See TracTickets for help on using tickets.