Skip to content

Commit

Permalink
Delete GNU Texinfo dir file and handle it with a trigger
Browse files Browse the repository at this point in the history
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
  • Loading branch information
lantw44 committed Jun 14, 2015
1 parent 77c053c commit 3d1ba73
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 1 deletion.
15 changes: 15 additions & 0 deletions jhbuild/modtypes/__init__.py
Expand Up @@ -234,6 +234,20 @@ def _clean_la_files(self, buildscript, installroot):
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."""
Expand Down Expand Up @@ -287,6 +301,7 @@ def process_install(self, buildscript, revision):
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:]
Expand Down
3 changes: 2 additions & 1 deletion triggers/Makefile.am
Expand Up @@ -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)
26 changes: 26 additions & 0 deletions triggers/texinfo-dir.trigger
@@ -0,0 +1,26 @@
# 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

0 comments on commit 3d1ba73

Please sign in to comment.