adriantr09 / gecko-mediaplayer

Automatically exported from code.google.com/p/gecko-mediaplayer
GNU General Public License v2.0
0 stars 0 forks source link

--disable-schemas-install not working correct #8

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Using --disable-schemas-install during configure
2. make
3. make install

Now the schema files will not be copied to /etc/gconf/schemas. On other
applications the schema file get copied to /etc/gconf/schemas but they just
do not get installed using gconftool-2.

What version of the product are you using? On what operating system?
0.9.0

Please provide any additional information below.
If Gconf is supported copy the schema files to /etc/gconf/schemas and if
--disable-schemas-install is given do not install these using gconftool-2

Original issue reported on code.google.com by markus.k...@googlemail.com on 12 Nov 2008 at 6:35

GoogleCodeExporter commented 8 years ago
According to what I have seen in the gconf examples, when you choose
--disable-schemas-install the files should not be copied and they should not be
registered in gconf. Under what use case are you wanting this particular 
behavior. 

Original comment by kdeko...@gmail.com on 12 Nov 2008 at 5:08

GoogleCodeExporter commented 8 years ago
Hi..

thx for the reply.

I'm working on Slackware buildscripts that create packages for Slackware Linux 
(just
like the .spec files for rpm based distributions). Like other people who are 
working
on packages for Slackware the packages will be created using

  './configure && make && make install DESTDIR=xyz'

If the schema files get installed (not copied!) using gconftool-2 into
  ${DESTDIR}/etc/gconf/gconf.xml.defaults
and the package will get installed later then that directory would replace the 
whole
gconf-database. For the packages i do maintain i have to use
'--disable-schemas-install' or, for packages that do not support that correct, 
delete
that directory. 

For me it's not a problem to add the gecko-schema-files manually (since this is 
the
only package i have to modify) but the idea behind that might be that you can 
install
many packages and then simply run gconftool-2 for every schema-file in
etc/gconf/schemas to install all schemas at once.

If that is correct what you said about the gconf examples then a lot of GNOME 
related
packages do work different to the examples (just installed more then 60 
packages).

Here is a sample line from gedit during 'make install' with 
--disable-schemas-install':

test -z "/etc/gconf/schemas" || /usr/bin/mkdir -p "/etc/gconf/schemas"
 /usr/bin/ginstall -c -m 644 'gedit.schemas' '/etc/gconf/schemas/gedit.schemas'

Same from totem:

test -z "/etc/gconf/schemas" || /usr/bin/mkdir -p "/etc/gconf/schemas"
 /usr/bin/ginstall -c -m 644 'totem.schemas' '/etc/gconf/schemas/totem.schemas'
 /usr/bin/ginstall -c -m 644 'totem-video-thumbnail.schemas'
'/etc/gconf/schemas/totem-video-thumbnail.schemas'
 /usr/bin/ginstall -c -m 644 'totem-handlers.schemas'
'/etc/gconf/schemas/totem-handlers.schemas'

When i look to the Makefiles i think schemas get copied to /etc/gconf/schemas 
but the
section that would run gconftool-2 to install the schemas is commented out. In 
case
of totem the Makefile.in in totem/data looks like that:

install-data-local: $(schema_DATA)
@GCONF_SCHEMAS_INSTALL_TRUE@    if test -z "$(DESTDIR)" ; then \
@GCONF_SCHEMAS_INSTALL_TRUE@    for p in $^ ; do \
@GCONF_SCHEMAS_INSTALL_TRUE@        GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE)
$(GCONFTOOL) --makefile-install-rule $$p 2>&1 > /dev/null; \
@GCONF_SCHEMAS_INSTALL_TRUE@    done \
@GCONF_SCHEMAS_INSTALL_TRUE@    fi

And after compile the Makefile in totem/data looks like that:

install-data-local: $(schema_DATA)
#  if test -z "$(DESTDIR)" ; then \
#    for p in $^ ; do \
#      GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL)
--makefile-install-rule $$p 2>&1 > /dev/null; \
#    done \
#  fi

So it looks like the schemas get copied and if --disable-schemas-install is 
used they
will not get installed to the gconf database.

Markus

Original comment by markus.k...@googlemail.com on 12 Nov 2008 at 7:07

GoogleCodeExporter commented 8 years ago
Well if you want to patch up the Makefile.am in gecko-mediaplayer, I'd be 
willing to
look at it. But I know I did find an example somewhere, otherwise I would not 
have
known how to do it. I use the same type of setup in gnome-mplayer as well. 

I realize you are trying to save some CPU by delaying the run of gconftool, but 
are
you really saving that much?

Original comment by kdeko...@gmail.com on 12 Nov 2008 at 7:20

GoogleCodeExporter commented 8 years ago
Well, like i said, i could fix the package manually. It's not about saveing CPU 
time,
it's just i have to fix the install since gecko-mediaplayer behaves different 
to many
other packages.

I just used google to find some documentation but that was not that easy. From 
what i
understand Fedora and OpenSuSE do also use --disable-schemas-install when 
building
the RPM and then run gconftool-2 from the "%post" section during install. And 
i'm
sure for the same reason:

If they would use '--with-gconf' then gecko-mediaplayer would install the schema
files to the ${DESTDIR}/etc/gconf/gconf.xml.defaults directory. If such an RPM 
would
be installed it would also overwrite the systems gconf database. That is why 
Fedora
also uses --disable-schemas-install (for other packages that will support that) 
and
do only install the new schema files from the '%post' section of the rpm 
install script.

I prefer to install all schemas at once but for single packages i do also add a
'%post' section to the slackware specific install script, just like Fedora or 
OpenSuSE.

So it is not to save CPU time... it's just to get conmpatible with other 
packaging
rules. Using '--with-gconf' to create the schemas and 
'--disable-schemas-install' to
not install the schemas to the temporary install location and packagers do have 
to
add the schema files manually to the package using

  'cp file1 file2 file3 file4 file5 ${DESTDIR}/etc/gconf/schemas'

As i understand that option it will prevent the Makefile to install the schem 
files
to the temporary system gconf database, it will not prevend the makefile from 
copy
the files itself... but i may be wrong.

Markus

Original comment by markus.k...@googlemail.com on 12 Nov 2008 at 8:15

GoogleCodeExporter commented 8 years ago
P.S. I forgot to add that i do not have enough knowledge to patch the makefile 
myself
so it might be best to make my script to remove these extra files from the 
package or
to use :

export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
make install DESTDIR=xyz
unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL

like described here:
http://fedoraproject.org/wiki/PackagingDrafts/ScriptletSnippets#GConf

Have not tested that myself with gecko-mediaplayer yet...

Original comment by markus.k...@googlemail.com on 12 Nov 2008 at 8:25

GoogleCodeExporter commented 8 years ago

Original comment by kdeko...@gmail.com on 6 Feb 2009 at 8:09