Ticket #14729 (assigned defect)
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: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:9 Changed 4 years ago by anonymous
- Milestone Port Enhancements deleted
Milestone Port Enhancements deleted
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


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" }