Переказ наступного:
http://www.linuxquestions.org/questions/slackware-14/xpdf-is-slow-879908/page2.html(Щоб самому не забути, а може знадобиться й іншим.)
Можливо ви помітили, що xpdf 3.02 в Slackware 13.1, 13.37 якось повільно прокручує сторінки. Це пов'язано з невеликою похибкою в коді з числами з рухомою точкою (наскільки я зрозумів), яку виявляє gcc 4.4. В інших дистрибутивах може бути те саме (перевірте). Це легко виправити. Ось перелік дій для Slackware (їх доволі легко адаптувати для компіляції xpdf для власного дистрибутиву, подивіться файл xpdf.SlackBuild).
1. Завантажуємо вихідні тексти xpdf та додаткові файли для побудови програми:
wget -r
ftp://slackware.mirrors.tds.net/pub/slackware/slackware-13.1/source/xap/xpdf/cd slackware.mirrors.tds.net/pub/slackware/slackware-13.1/source/xap/xpdf/
2. Створюємо файл-латку з наступним змістом:
--- xpdf-3.02.orig/xpdf/PDFCore.h
+++ xpdf-3.02/xpdf/PDFCore.h
@@ -40,6 +40,7 @@ class PDFCore;
#define zoomPage -1
#define zoomWidth -2
#define defZoom 125
+#define EPSILON 1.0e-7 // 32-bit floating point machine precision
//------------------------------------------------------------------------
--- xpdf-3.02.orig/xpdf/PDFCore.cc
+++ xpdf-3.02/xpdf/PDFCore.cc
@@ -445,7 +445,7 @@ void PDFCore::update(int topPageA, int s
// object
if (force || pages->getLength() == 0 ||
(!continuousMode && topPageA != topPage) ||
- zoomA != zoom || dpiA != dpi || rotateA != rotate) {
+ zoomA != zoom || fabs( dpiA - dpi ) > EPSILON || rotateA != rotate) {
needUpdate = gTrue;
setSelection(0, 0, 0, 0, 0);
while (pages->getLength() > 0) {
(взято з
http://recipes.gobolinux.org/r/?list=Xpdf&ver=3.02-r2&file=03-float.patch )
Зберігаємо його як xpdf-3.02-float.patch разом з іншими латками в каталозі patches.
3. Редагуємо xpdf.SlackBuild, додаючи наступну команду:
...
zcat $CWD/patches/xpdf_3.02-1.3.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/xpdfrc.diff.gz | patch -p1 --verbose || exit 1
# Латка прокручування:
cat $CWD/patches/xpdf-3.02-float.patch | patch -p1 --verbose || exit 1
...
3. Як root виконуємо xpdf.SlackBuild, після чого за допомогою pkgtool видаляємо старий xpdf та встановлюємо новий:
pkgtool
installpkg /tmp/xpdf-3.02pl6-i486-4.txz
OT:
http://www.gobolinux.org - цікавий проект.