You are not logged in.
Pages: 1
Hi,
Today's system upgrade didn't go quite smoothly. An error:
failed to commit transaction (conflicting files)
libtasn1: /usr/share/info/dir exists in filesystem
I've just backed up and deleted the offending file. Everything's fine, unless I haven't yet noticed the problem .
So I'm curious about the nature of the file and wether it's safe to delete. Thanks in advance.
Offline
Type "info" and you will get given an index of all the info files. That index is stored in /usr/share/info/dir. We have just started including info files so we encounter the occasional blip... Should be fixed soon.
Offline
More background: standardly when you "make install" an application that includes info files, the application's makefile will copy its own info files to $DESTDIR/usr/share/info/ and run an index-updater-script (I forget its name right now) that adds the names of the just-installed info files to $DESTDIR/usr/share/info/dir. When an archer creates a package, $DESTDIR will be the_dir_containing_the_PKGBUILD/pkg, and $DESTDIR/usr/share/info will be otherwise empty. So a new $DESTDIR/usr/share/info/dir file gets created, with just the names of that app's own info files. If the archer does nothing further and distributes the package, other archers will try to install it and get errors because they probably already have an index file at /usr/share/info/dir, which this package is now trying to overwrite. As I understand it, the correct thing for the Arch package builder to do is to have their PKGBUILD file install normally, then delete any $DESTDIR/usr/share/info/dir files that may have been created. THEN, in an install script that gets run when the package is installed/removed, write a separate function that explicitly calls the index-updater-script on the installing user's machine.
At least, that's my understanding.
Offline
[...]
At least, that's my understanding.
Which is 100% correct, of course. :]
1000
Offline
I just had this problem on one of my packages. To fix it, I did what Profjim said. I am posting the install file here in case someone wants to use it as a template. Make sure to rm -rf $startdir/pkg/usr/share/info/dir in the PKGBUILD.
post_install() {
if [ -x '/usr/bin/info' -a -e '/usr/share/info/ledger.info' ]; then
echo '>>> Adding ledger entry to info documentation index file.'
install-info --info-dir='/usr/share/info' '/usr/share/info/ledger.info'
fi
}
post_upgrade() {
if [ -x '/usr/bin/info' -a -e '/usr/share/info/ledger.info' ]; then
echo '>>> Updating ledger entry in info documentation index file.'
install-info --info-dir='/usr/share/info' '/usr/share/info/ledger.info'
fi
}
pre_remove() {
if [ -x '/usr/bin/info' -a -e '/usr/share/info/ledger.info' ]; then
echo '>>> Removing ledger entry from info documentation index file.'
install-info --delete --info-dir='/usr/share/info' '/usr/share/info/ledger.info'
fi
}
Offline
Or you could look at /usr/share/pacman/proto-info.install (from the ABS package)
Offline
Good to know. I did not have abs installed.
Offline
Pages: 1