После обновления до 20.04, я не могу открыть большие файлы svg. Я получаю:
Ошибка при разборе XML: не может загрузить более 200000 элементов XML
Проблема возникает в Image Viewer и Gimp, в то время как ImageMagick display
, inkscape, libreoffice --draw
stall, ничего не показывая.
Firefox и Chrome открывают файл, но зум Firefox плохой, а Chrome очень медленный и имеет тенденцию к замедлению.
svg пакеты: apt list --installed | grep svg
gir1.2-rsvg-2.0/focal-updates,now 2.48.9-1ubuntu0.20.04.1 amd64 [installed,automatic]
libimage-librsvg-perl/focal,now 0.07-8build5 amd64 [installed]
libqt5svg5/focal,now 5.12.8-0ubuntu1 amd64 [installed,automatic]
librsvg2-2/focal-updates,now 2.48.9-1ubuntu0.20.04.1 amd64 [installed,automatic]
librsvg2-2/focal-updates,now 2.48.9-1ubuntu0.20.04.1 i386 [installed]
librsvg2-common/focal-updates,now 2.48.9-1ubuntu0.20.04.1 amd64 [installed,automatic]
librsvg2-common/focal-updates,now 2.48.9-1ubuntu0.20.04.1 i386 [installed,automatic]
librsvg2-dev/focal-updates,now 2.48.9-1ubuntu0.20.04.1 amd64 [installed]
Это ошибка в пакете Librsvg
. У них 200000 наименований Харкодировали для версий до 2,49,5.
Я могу подтвердить ошибку на Ubuntu 20.04 LTS. Поэтому я сообщил об этом на LaunchPad AS BUG 1916055 . Популярные пострадавшие приложения:
Есть приложения, использующие разные библиотеки и сбой - Карбон, Крита, Кенон.
Возможные обходные пути:
Перекомпилируйте библиотеку локально с патчем, чтобы иметь 1000000 пределов узла XML.
При первом включении репозиториев исходных кодов из программных свойств-GTK
и команд запуска ниже, чтобы получить сборки-зависимости и для исправления с успешным компиляцией:
Sudo APT
sudo apt-add-add-репозитория вселенная
Sudo APT-Add-Repository Multierse
Sudo APT-Add-add-репозиторий ограничен
Sudo APT-Get Update
Sudo APT-Get Dist-Upgrade
sudo apt-get build-dep librsvg2-dev
sudo apt-get install devscripts
CD ~ / Загрузки
APT-Get Source Librsvg2-dev
CD Librsvg-2.48.9
# изменить 200000 на 1000000
Sed -i "S / 200_000 / 1_000_000 /" rsvg_internals / src / limits.rs
dpkg-buildpackage -b -uc -us
sudo apt-get install ../*svg*.deb
Затем версии PIN-пакетов с одной длинной командой:
CAT << EOF | sudo tee /etc/apt/preferences.d/pin-librsvg2.
Пакет: Gir1.2-RSVG-2.0
PIN: выпуск A = сейчас
PIN-приоритет: 1337
Пакет: librsvg22.
PIN: выпуск A = сейчас
PIN-приоритет: 1337
Пакет: librsvg2-bin
PIN: выпуск A = сейчас
PIN-приоритет: 1337
Пакет: librsvg2-dev
PIN: выпуск A = сейчас
PIN-приоритет: 1337
Пакет: Librsvg2-Common
PIN: выпуск A = сейчас
PIN-приоритет: 1337
Пакет: librsvg2-doc
PIN: выпуск A = сейчас
PIN-приоритет: 1337
Эф
И наслаждайтесь:
Использовать зрители и редакторы с различными бэк-концевыми библиотеками: