Огромный .svg. Как открыть в 20.04

После обновления до 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]
3
задан 4 March 2021 в 23:21

1 ответ

Это ошибка в пакете Librsvg . У них 200000 наименований Харкодировали для версий до 2,49,5.

Я могу подтвердить ошибку на Ubuntu 20.04 LTS. Поэтому я сообщил об этом на LaunchPad AS BUG 1916055 . Популярные пострадавшие приложения:

  • Глаз Гном
  • Глаз Мэт, Атрил
  • GIMP

Есть приложения, использующие разные библиотеки и сбой - Карбон, Крита, Кенон.

Возможные обходные пути:

  • Перекомпилируйте библиотеку локально с патчем, чтобы иметь 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
    Эф
     

    И наслаждайтесь:

    EoM with patched librsvg2

  • Использовать зрители и редакторы с различными бэк-концевыми библиотеками:

    • веб-браузеров, такие как Firefox, Chromium, Konqueror
    • LibReOffice Draw
    • Inkscape (потребности> 14 ГБ ОЗУ)
3
ответ дан 18 March 2021 в 23:33

Другие вопросы по тегам:

Похожие вопросы: