Package: rubber Version: 1.1+20100306-1 Severity: important Tags: patch The lastest version of texlive to move into testing includes a security feature in bibtex which breaks rubber on any application that uses bibtex, as far as I can tell.
The issue has to do with a configuration option (openout_any = p) which keeps bibtex from writing to any path outside of the directory it is currently working in. This means that if the full path is specified, bibtex will always fail. You can see another place this bug has shown up here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666572 In the case of rubber, the bibtex.py latex_module is passing around the full path even though it is in a local directory and will work with just the basename. I've created a patch which use runs the basename function from os.path on the directory and which, at least on my system, solves this problem nicely. Let me know if you have any questions or if there's something else I'm missing. This is my first time in the rubber source code so let me know if I've got astray. -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-3-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages rubber depends on: ii dpkg 1.16.4.3 ii install-info 4.13a.dfsg.1-10 ii python 2.7.3~rc2-1 ii python-support 1.0.15 ii texlive-latex-base 2012.20120611-3 rubber recommends no packages. Versions of packages rubber suggests: ii imagemagick 8:6.7.7.10-3 pn sam2p <none> pn transfig <none> -- no debconf information
--- src/latex_modules/bibtex.py 2010-08-12 09:46:10.000000000 -0400 +++ /usr/share/pyshared/rubber/latex_modules/bibtex.py 2012-08-07 19:06:01.000000000 -0400 @@ -407,7 +407,7 @@ def setup (doc, context): global biblio - biblio = Bibliography(doc, doc.target) + biblio = Bibliography(doc, basename(doc.target)) doc.hook_macro('bibliography', 'a', biblio.hook_bibliography) doc.hook_macro('bibliographystyle', 'a', biblio.hook_bibliographystyle) def command (command, args):