New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #14729 (assigned defect)

Opened 5 years ago

Last modified 3 years ago

gnome installations do not register the schema files with gconf

Reported by: reiffert@… Owned by: reiffert@…
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: gnome gconf gconftool-2 Cc: devans@…, billitch@…, gerald@…, landonf@…, nox@…, rjt-gramps@…, shadow@…, toralf@…, vincent-opdarw@…
Port:

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

comment:1 Changed 5 years ago by reiffert@…

  • Status changed from new to assigned

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 5 years ago by jmr@…

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 5 years ago by jmr@…

  • Cc changed from 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.org to 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.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 follow-up: ↓ 5 Changed 5 years ago by gui_dos@…

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 5 years ago by gui_dos@…

${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 5 years ago by nox@…

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

comment:7 Changed 5 years ago by nox@…

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

comment:8 Changed 5 years ago by nox@…

libgweather taken care of in r41484.

comment:9 Changed 4 years ago by anonymous

  • Milestone Port Enhancements deleted

Milestone Port Enhancements deleted

comment:10 Changed 3 years ago by jmr@…

  • Cc devans@… added

comment:11 Changed 3 years ago by devans@…

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
Note: See TracTickets for help on using tickets.