LINUX.ORG.RU

А чем можно заменить QtWebKit в приложении на кутях?

 ,


0

1

Все, что нужно: минимальное форматирование, картинки, гиперссылки (не для перемещения по документу, но для запуска системного браузера).

Т.е. какого-нибудь рендера markdown хватит за глаза.

Задача: показывать новости.

QtWebKit слишком жирный сам по себе, да и статически его не соберешь.

★★★★★

Последнее исправление: derlafff (всего исправлений: 1)

не для перемещения по документу, но для запуска системного браузера
QtWebKit слишком жирный сам по себе, да и статически его не соберешь.

Не троллинга ради, но интереса для: а системный браузер статически соберёшь? Или это не браузер, а дилло какой-то?

border-radius
()
Ответ на: комментарий от border-radius

Кросс-платформенность. Это под линуксом указал зависимость и профит, а под шиндоуз проще завернуть все в один бинарник, чем таскать сотни либ с собой.

derlafff ★★★★★
() автор топика
Последнее исправление: derlafff (всего исправлений: 1)
Ответ на: комментарий от derlafff

А вот кстати, ты Qt5 в статику на оффтоп компилил? Жыыыыыырнющую libicu, которая весит больше чем QtWidgets + QtCore + QtGui отключал?

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

А есть, кстати, что-то наподобие statifier, но чтоб бинарники нормально работали на вёдрах с рандомизацией стека (не помню уже, как это правильно называется)?

border-radius
()
Последнее исправление: border-radius (всего исправлений: 1)
Ответ на: комментарий от border-radius
./platforms/qwindows.dll
./Qt5Widgets.dll
./Qt5Sql.dll
./Qt5PrintSupport.dll
./Qt5OpenGL.dll
./Qt5Network.dll
./Qt5MultimediaWidgets.dll
./Qt5Multimedia.dll
./Qt5Gui.dll
./Qt5Core.dll
./Qt5WebKitWidgets.dll
./Qt5WebKit.dll
./zlib1.dll
./quazip.dll
./libstdc++-6.dll
./libsqlite3-0.dll
./libpng16-16.dll
./libpcre16-0.dll
./libpcre-1.dll
./libjpeg-9.dll
./libintl-8.dll
./libiconv-2.dll
./libharfbuzz-0.dll
./libglib-2.0-0.dll
./libgcc_s_sjlj-1.dll
./libfreetype-6.dll
./libbz2.dll
./SSLEAY32.dll
./LIBEAY32.dll
derlafff ★★★★★
() автор топика
Ответ на: комментарий от border-radius

Не знаю про это. В статических Qt-приложениях частичная статика: сам Qt со всеми своими 3rd party модулями (jpg/zlib/mng/gif и. т. д) влинковывается статически, а остальное — динамика:

exl@exl-Lenovo-G560e:/opt/QtSDKs > ldd qt-opensource-linux-x64-5.3.1.run 
        linux-vdso.so.1 =>  (0x00007fffd8dfe000)
        libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f3ef229b000)
        libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007f3ef2093000)
        libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007f3ef1e76000)
        libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f3ef1c6c000)
        libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f3ef1a30000)
        libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f3ef1776000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f3ef1564000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f3ef122f000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3ef102a000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f3ef0e22000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3ef0c05000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3ef0900000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3ef05fc000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3ef03e6000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3ef001d000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3ef24c6000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f3eefe18000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f3eefbee000)
        libz.so.1 => /usr/local/lib/libz.so.1 (0x00007f3eef9d3000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f3eef7b5000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f3eef5b0000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f3eef3aa000)

Если это всё компилять на каком нибудь Cent OS 5 (дистр с LSB), то полученный бинарник будет работать на всех GNU/Linux дистрах начиная с 2005-го года выпуска, подходящих по архитектуре естественно.

EXL ★★★★★
()
Ответ на: комментарий от derlafff

А если ещё официальную сборочку Qt5 накатить, то там зависимость от icu, так что как раз по размеру простенькая Qt-аппликуха выйдет как Java/C# Hello-world вместе с JRE или .NET; Qt 5 мало того, что разросся, так ещё пихают всякие огромные либы в зависимости. Это удручает.

EXL ★★★★★
()
Ответ на: комментарий от EXL

icu — всего 20Мб

У нас получается в распакованном виде на 60Мб: http://build.ttyh.ru/job/ttyhlauncher-i686/

Если собирать статически и софтину, и вебкит, то в итоге получается больше, но если избавиться от вебкита, то получится бинарник на ~30Мб в распакованном виде. Т.е. уже почти прекрасно.

derlafff ★★★★★
() автор топика
Ответ на: комментарий от border-radius

Я думаю, что часть можно выпилить, но это такой геморрой, а все они мелкие по отдельности.

derlafff ★★★★★
() автор топика
Ответ на: комментарий от derlafff

icu — всего 20Мб

Чуть больше.

exl@exl-Lenovo-G560e:/media/Windows/Qt/Qt5.3.1/5.3/mingw482_32/bin > du -h *icu*
23M     icudt52.dll
3.2M    icuin52.dll
2.0M    icuuc52.dll
/28.2M

exl@exl-Lenovo-G560e:/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/lib > du -h *icu{data,i18n,uc}*.so.*.*
23M     libicudata.so.52.1
2.7M    libicui18n.so.52.1
1.8M    libicuuc.so.52.1
/27.5M

EXL ★★★★★
()
Ответ на: комментарий от derlafff

Хм, кто сказал? Всегда жму им, вроде ничего странного в потреблении RAM или ресурсов компа не замечал. Всё так же отзывчиво, как и без него.

EXL ★★★★★
()
Ответ на: комментарий от border-radius

Извини, но ничем не смогу тебе помочь. Насколько я знаю, ты клепаешь свой Web-ориентированный дистрибутив. Ты хочешь получить standalone-приложение? ИМХО, в собственносклёпанном дистрибутиве я бы оставил в standalone/static'е только busybox и использовал разделяющие библиотеки везде.

EXL ★★★★★
()
Ответ на: комментарий от EXL

вендузятники. у меня-то венды даже на виртуалке нету, так что проверить не могу.

derlafff ★★★★★
() автор топика
Ответ на: комментарий от derlafff

За патчи спасибо. Не знал про них.

EXL ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Насколько сложные страницы оно может отображать?

Уровня narod.ru

С картинками?

Ага. Ссылки, списки, цвета, шрифты, картинки, таблицы. Короче RichText. Для простенькой документации — самое то.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Ясно, спасибо :) Полезная информация, не знал что QTextEdit может страницы просто отображать...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от EXL

Я клепаю свой Web-ориентированный дистрибутив на базе Арча, там мне не надо заморачиваться на статику. И браузер в нём - dwb. А вот свой экспериментальный браузер хотелось бы статифицировать. Ну да ладно, это не критично.

border-radius
()
Ответ на: комментарий от EXL

Жыыыыыырнющую libicu, которая весит больше чем QtWidgets + QtCore + QtGui

ЕМНИП, в ику больше всего весят данные, которые нужны для поддержки всяких там иероглифов и прочего «ненужно».
Но это все можно отконфигурировать до вменяемого размера, да!

AF ★★★
()
Ответ на: комментарий от derlafff

Наложил патчик qt5-qtwebkit-dont-depend-on-icu.patch, получил:

In file included from ./wtf/unicode/Unicode.h:32:0,
                 from ./wtf/text/ASCIIFastPath.h:31,
                 from ./wtf/text/WTFString.h:28,
                 from wtf/DateMath.h:54,
                 from wtf/DateMath.cpp:73:
./wtf/unicode/icu/UnicodeIcu.h:29:27: fatal error: unicode/uchar.h: No such file or directory

Может надо -noicu куда-нибудь добавлять?

ZenitharChampion ★★★★★
()
Ответ на: комментарий от derlafff

Нашёл spec-файл и скопировал оттуда список патчей и их параметров -p0 и -p1. Патчи 5 и 6 оказались уже наложены - убрал. Ничего не изменилось. Попробовал версию 5.3.1 вместо 5.3.2 - ничего не изменилось. Установил libicu-dev - пошло дальше! Но разве это «отвязывание» от ICU? У меня четыре варианта действий 1). Собрать с ICU 2). Использовать официальные сборки Qt 3). Зарепортитоь баг и дождаться обновления патчей 4). Дождаться «отвязывания» лаунчера от QtWebkit.

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от ZenitharChampion

Они не наложены, они реверсивные. Накладывай их с -R. Там в спеке все эти опции есть

derlafff ★★★★★
() автор топика
Последнее исправление: derlafff (всего исправлений: 1)
12 декабря 2015 г.

Т.е. какого-нибудь рендера markdown хватит за глаза.

Бери libsoldout

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.