Commit 3d1ba733 authored by Ting-Wei Lan's avatar Ting-Wei Lan

Delete GNU Texinfo dir file and handle it with a trigger

Modules with GNU Texinfo documentation creates new dir files during
'make install', which causes the installed dir file to be replaced with
the newly generated dir file with only one entry. To make GNU Texinfo
usable in JHBuild, we delete the dir file in DESTDIR and handle it
with a new trigger.

It is possible to have unavailable entries in the dir file because
triggers are not run when uninstalling modules. It will be fixed if
'jhbuild postinst' is run or other modules with Texinfo documentation
are successfully built.

https://bugzilla.gnome.org/show_bug.cgi?id=750484
parent 77c053cc
......@@ -234,6 +234,20 @@ class Package:
if os.path.isdir(prefixdir):
self._clean_la_files_in_dir(self, prefixdir)
def _clean_texinfo_dir_files(self, buildscript, installroot):
"""This method removes GNU Texinfo dir files."""
assert os.path.isabs(installroot)
assert os.path.isabs(buildscript.config.prefix)
prefixdir = os.path.join(installroot, buildscript.config.prefix[1:])
if os.path.isdir(prefixdir):
dirfile = os.path.join(prefixdir, 'share/info/dir')
if os.path.isfile(dirfile):
try:
logging.info(_('Deleting dir file: %r') % (dirfile, ))
os.unlink(dirfile)
except OSError:
pass
def _process_install_files(self, installroot, curdir, prefix, errors):
"""Strip the prefix from all files in the install root, and move
them into the prefix."""
......@@ -287,6 +301,7 @@ them into the prefix."""
assert self.supports_install_destdir
destdir = self.get_destdir(buildscript)
self._clean_la_files(buildscript, destdir)
self._clean_texinfo_dir_files(buildscript, destdir)
prefix_without_drive = os.path.splitdrive(buildscript.config.prefix)[1]
stripped_prefix = prefix_without_drive[1:]
......
......@@ -6,6 +6,7 @@ trigger_DATA = \
pango.trigger \
desktop-database.trigger \
mime-database.trigger \
immodules.trigger
immodules.trigger \
texinfo-dir.trigger
EXTRA_DIST = $(trigger_DATA)
# Post-installation hook for GNU Texinfo. -*- mode: sh -*-
#
# Written by Ting-Wei Lan <lantw@src.gnome.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# IfExecutable: install-info
# REMatch: ^share/info/.*\.info
rm -f $JHBUILD_PREFIX/share/info/dir-new
for info in $JHBUILD_PREFIX/share/info/*.info; do
install-info $info $JHBUILD_PREFIX/share/info/dir-new
done
mv $JHBUILD_PREFIX/share/info/dir-new $JHBUILD_PREFIX/share/info/dir
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment