LINUX.ORG.RU
ФорумTalks

libpng

 , , шишка


0

1

Стоит консольной утилите линкануть функцию например такую http://man7.org/linux/man-pages/man3/realpath.3.html из библиотеки шишки как она получает в зависимости libpng15.so.15 Много консольных прог таким макаром имеют в зависимостях либпнг, консольные программы без графики - рисовальные зависимости - это что за Глаз Саурона за нами через шишколибу из консоли подглядывает?

★★★★★

Много консольных прог таким макаром имеют в зависимостях либпнг, консольные программы без графики - рисовальные зависимости

Например?

goingUp ★★★★★
()

Ты гонишь:

$ qlist -Iv | grep libpng
media-libs/libpng-1.6.29
$ cat test.c 
#include <err.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	char *resolved_path;

	if ((resolved_path = realpath("/etc/mtab", NULL)) == NULL)
		err(EXIT_FAILURE, "cannot resolve /etc/mtab");

	puts(resolved_path);
	free(resolved_path);

	exit(EXIT_SUCCESS);
}
$ gcc -std=c11 -Wall -O2 -o test test.c
$ lddtree test 
test => ./test (interpreter => /lib64/ld-linux-x86-64.so.2)
    libc.so.6 => /lib64/libc.so.6
        ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 2)
Ответ на: комментарий от Deleted

На ник посмотри сначала :)

Да, я уже потом понял, что напильнику отвечаю.

kirk_johnson ★☆
()

Проблемы бинарных дистрибутивов и их мейнтейнеров.

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

Например?

$ ldd /usr/bin/sed
        linux-vdso.so.1 =>  (0x00007fff02d17000)
        /usr/lib64/freetype-infinality/libfreetype.so.6 (0x00000033dc000000)
        /usr/lib64/cairo-freeworld/libcairo.so.2 (0x00000033e9200000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00000033d8800000)
        libc.so.6 => /lib64/libc.so.6 (0x00000033d6c00000)
        libm.so.6 => /lib64/libm.so.6 (0x00000033d7000000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00000033d7800000)
        libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00000033e8200000)
        libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00000033dd000000)
        libpng15.so.15 => /lib64/libpng15.so.15 (0x00000033db800000)
        libXrender.so.1 => /lib64/libXrender.so.1 (0x00000033dcc00000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00000033d9400000)
        libz.so.1 => /lib64/libz.so.1 (0x00000033d8000000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00000033d7400000)
        /lib64/ld-linux-x86-64.so.2 (0x00000033d6800000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00000033dbc00000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00000033d9800000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00000033d9000000)
$ ldd /usr/bin/realpath
        linux-vdso.so.1 =>  (0x00007fffc9dff000)
        /usr/lib64/freetype-infinality/libfreetype.so.6 (0x00000033dc000000)
        /usr/lib64/cairo-freeworld/libcairo.so.2 (0x00000033e9200000)
        libc.so.6 => /lib64/libc.so.6 (0x00000033d6c00000)
        libm.so.6 => /lib64/libm.so.6 (0x00000033d7000000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00000033d7800000)
        libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00000033e8200000)
        libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00000033dd000000)
        libpng15.so.15 => /lib64/libpng15.so.15 (0x00000033db800000)
        libXrender.so.1 => /lib64/libXrender.so.1 (0x00000033dcc00000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00000033d9400000)
        libz.so.1 => /lib64/libz.so.1 (0x00000033d8000000)
        /lib64/ld-linux-x86-64.so.2 (0x00000033d6800000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00000033dbc00000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00000033d9800000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00000033d7400000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00000033d9000000)

В /usr/bin/ куда в консольное бинарное, хз для чего нужное, ни ткни, шанс нарваться на libpng15.so большой: amidi, bash, pgmtofs, pamchannel и т.д.

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

На ник посмотри сначала :)
Dimez ★★★★★ (12.01.2018 14:18:15) Агрессивный зашоренный ламер, фанат офф. обновлений боящийся антивирусов. Обиженный свидетель искривления задницы Эйнштейна.

Так всегда смотрю, спасибо движку - консервоголовых «героев» нужно определять по цвету штанов!

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

Ты гонишь:
$ qlist -Iv | grep libpng

$ qlist -Iv | grep libpng
bash: qlist: команда не найдена...

Искал не через ldd а через хз что чтобы не найти, ты бы получше отмазу для шишки придумал.

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

Агрессивный зашоренный ламер

АХАХАХАА!

фанат офф. обновлений боящийся антивирусов

АХАХАХААААААА!!!!

Made my day!

Deleted
()
Ответ на: комментарий от Napilnik
[Kuzz@tachikoma tmp]$ ldd /usr/bin/sed
        linux-vdso.so.1 (0x00007ffce1d25000)
        /opt/ksm/libksm_preload.so (0x00007f80e4b6c000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007f80e4963000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f80e473a000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f80e4357000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f80e4153000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007f80e3f4e000)
        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f80e3cca000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f80e4f8b000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f80e3aab000)
[Kuzz@tachikoma tmp]$ 
ldd /usr/bin/realpath
        linux-vdso.so.1 (0x00007ffeee3b6000)
        /opt/ksm/libksm_preload.so (0x00007f27a2961000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f27a257e000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f27a237a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f27a2d70000)

Бгг…

Kuzz ★★★
()

А вообще, вот это

        /usr/lib64/freetype-infinality/libfreetype.so.6 (0x00000033dc000000)
        /usr/lib64/cairo-freeworld/libcairo.so.2 (0x00000033e9200000)
скорее всего грузится прелоадом и уже тянет все остальное за собой

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

Значит простыня зависимостей, это плата за красивые буквы, которая настигает и в консоли тоже.

Napilnik ★★★★★
() автор топика

Есть такая категория людей - им везде нужно руками залезть, везде поковыряться, во всём разобраться. Нормальные люди делают это осторожно, чтобы ничего не сломать, разбираются в теме и учатся. Но есть клинические индивиды, которым как об стенку горох - если куда-то залезли то непременно ничего не поняли и всё сломали, и потом залезут второй раз, и опять сломают и ничего не поймут, а потом полезут в другое место и там то же самое, а сверху ещё накрутят костылей чтобы сломанное как-то заработало, сломав что-нибудь в других местах, и, разумеется, так и не сделав для себя никаких выводов.

Вот у таких обычно и начинаются странные эффекты, типа линковки libpng ко всему подряд.

Потому что когда-то такому поциенту в голову приходит гениальная идея суперускорить себе систему обновлением libpng из git master собранным непременно clang'ом из git master, и да: он собирает новую версию, как-то решает проблемы сборки поиском недостающих инклудов в сети, нечаянно удаляет старую, понимает что что-то перестал запускаться софт, начинает лихорадочно восстанавливать библиотеку, восстанавливает не той версии и не до конца, косячит с симлинками, накручивает сверху ещё libmap, LD_LIBRARY_PATH и LD_PRELOAD, всё сразу. В итоге что-то как-то начинает работает (только падают при открытии файлов gimp и inkscape, но они прямо сейчас не нужны, так что хрен с ними), и софт использующий что-то что зависит от libpng перестаёт собираться (но это решается добавлением в окружение LDFLAGS с -lpng, а до кучи оно добавляется ещё и в CFLAGS, CXXFLAGS, обязательно в CPPFLAGS и на всякий случай CCFLAGS, также непременно добавить строчку с MAKE_ARGS со всеми этими флагами, потом погуглить и распихать везде ещё и rpath и ещё пачку разных флагов за которые зацепится глаз).

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

Через месяц когда понадобится всё-таки gimp, обнаружить что он падает при открытии файлов, написать на форум своего дистрибутива и может даже в багтрекер гимпа (естественно на ломаном английском и без подробностей). Поняв что никто почему-то не решает проблему обозвать форумчан ламьём, разработчиков гимпа тупыми идиотами, свой дистрибутив говном, а пакаджеров криворукими имбецилами. НИ В КОЕМ СЛУЧАЕ НИ НА СЕКУНДУ НЕ ВСПОМНИТЬ о своих манипуляциях с libpng. ВООБЩЕ. Расстроиться, сменить дистрибутив. Решить обновить libjpeg из git master...

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

Глядя на смеющегося долбоклюя, не разделяю его радости. Чем больше мудрости, тем больше печали.

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

Вот у таких обычно и начинаются странные эффекты, типа линковки libpng ко всему подряд.

Это в федоре так шишковская либа была сделана. Пока с ней не линкуешься, такого эффекта нет.

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

Это вывод из запощеных простыней? Или гипотеза из общих соображений?

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

ни ткни, шанс нарваться на libpng15.so большой

O_o

Canterlot$ ldd `which {bash,sed,sam}` 
/usr/local/bin/bash:
        Start            End              Type Open Ref GrpRef Name
        00001c4c3ab00000 00001c4c3ae0f000 exe  1    0   0      /usr/local/bin/bash
        00001c4ec8c8b000 00001c4ec8ee1000 rlib 0    1   0      /usr/lib/libcurses.so.14.0
        00001c4e572cd000 00001c4e574d8000 rlib 0    1   0      /usr/local/lib/libintl.so.6.0
        00001c4ec14a5000 00001c4ec17a2000 rlib 0    2   0      /usr/local/lib/libiconv.so.6.0
        00001c4f16f75000 00001c4f17255000 rlib 0    1   0      /usr/lib/libc.so.92.2
        00001c4e70e00000 00001c4e70e00000 ld.so 0    1   0      /usr/libexec/ld.so
/usr/bin/sed:
        Start            End              Type Open Ref GrpRef Name
        00000b533b900000 00000b533bb09000 exe  1    0   0      /usr/bin/sed
        00000b560583b000 00000b5605b1b000 rlib 0    1   0      /usr/lib/libc.so.92.2
        00000b557c900000 00000b557c900000 ld.so 0    1   0      /usr/libexec/ld.so
/usr/local/plan9/bin/sam:
        Start            End              Type Open Ref GrpRef Name
        00000619d5300000 00000619d5542000 exe  2    0   0      /usr/local/plan9/bin/sam
        0000061c82337000 0000061c8255d000 rlib 0    1   0      /usr/lib/libm.so.10.0
        0000061c0a3fc000 0000061c0a609000 rlib 0    1   0      /usr/lib/libutil.so.13.0
        0000061bf1967000 0000061bf1b70000 rlib 0    1   0      /usr/lib/libpthread.so.25.1
        0000061c8c396000 0000061c8c676000 rlib 0    1   0      /usr/lib/libc.so.92.2
        0000061bea200000 0000061bea200000 ld.so 0    1   0      /usr/libexec/ld.so

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

Бубунта последней версии? Твои статистические данные пригодятся!

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

Это в федоре так шишковская либа была сделана. Пока с ней не линкуешься, такого эффекта нет.

Что такое «шишковская либа» и зачем ты с ней линкуешься?

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

Что такое «шишковская либа»

Вроде бы libc, библиотека языка Ши (Си).

и зачем ты с ней линкуешься?

А нужна она для вот такого:

function realpath(name:pchar;resolved:pchar):pchar;cdecl;external 'c';

function realpath2(XX5: ansistring):ansistring;
begin
realpath2:=realpath(pchar(XX5),PPCV);
end;

В лазарусе есть реализация подобной функции на базе функции читающей из файла прописанный в нём симлинк, но это же сколько потом с поиском трахаться надо чтобы на 100% правильный путь потом воссоздать. А правильный путь нужен чтобы у редактируемого файла был уникальный «пачпорт» - имя файла и путь в ФС с симлинками могут быть фейковыми. Пока до тестирования и воспроизведения этой функции не добрался, а экспроприация чужой - несколько строчек. К сожалению, ядро линукса такую функцию не предоставляет.

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

Вроде бы libc, библиотека языка Ши (Си).

Что мешало сразу писать по-людски?

Это в федоре так шишковская либа была сделана.

Нет, это ты у себя все сломал:

└► ldd /usr/bin/sed /usr/bin/realpath | grep -e png -e font | wc -l ; cat /etc/redhat-release 
0
Fedora release 27 (Twenty Seven)

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

Что мешало сразу писать по-людски?

В смысле, называть соСИской или СИськой?)

Нет, это ты у себя все сломал:

Fedora release 27 (Twenty Seven)

Чини логику. Если у тебя федора 27 версии, то из этого не следует что у всех, у кого федора, она тоже этой версии. А в разных версиях за красивые шрифты разработчики боролись по разному. Так что в моей федоре libpng сделана системной либой НЕ мной.

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

В смысле, называть соСИской или СИськой?)

Нет, так и написать — libc.

Если у тебя федора 27 версии, то из этого не следует что у всех, у кого федора, она тоже этой версии.

Озвучь номер версии твоей федоры.

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

Да вали ты со своей федоры,

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

тебе там налинковали злобные мейнтейнеры

Так в Омерике на тот момент действовали патентные ограничения на сглаживание шрифтов и её рабы складывали 2 и 2 хентайными способами чтобы получилось не по патентованному. Сейчас эти патенты вроде кончились.

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

Нет, так и написать — libc.

Ты в коде слово «libc» видел? Погрепай получше, может найдёшь;) Или мне ради твоего душевного спокойствия нужно изучить кучу исходников чтобы точно убедиться что функция тырится именно из libc? Потому что если я отвечу утвердительно, а там окажется совсем не то, то есть вероятность, что местные резинотехнические изделия возопиют: «Напильник соврал, как и всегда до этого!!!!! Мы так ждали и дождались!»

Озвучь номер версии твоей федоры.

RFRemix17 Легче стало?

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

Ты в коде слово «libc» видел?

Слов «шишковская либа» я в нем тоже не видел.

RFRemix17

└► dnf download --releasever 17 $(rpm -qf --qf '%{name} ' $(which sed realpath))
└► rpm2cpio coreutils-8.15-10.fc17.x86_64.rpm | cpio -idv
└► rpm2cpio ~/sed-4.2.1-10.fc17.x86_64.rpm | cpio -idv
└► find '(' -name sed -o -name realpath ')' -executable -type f -exec ldd '{}' +
./usr/bin/realpath:
	linux-vdso.so.1 (0x00007ffcc35c9000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f2acd2b4000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f2acd697000)
./bin/sed:
	linux-vdso.so.1 (0x00007ffefc7be000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fd549e09000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fd549a26000)
	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fd5497a2000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fd54959e000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fd54a032000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd54937f000)

Напильник соврал, как и всегда до этого!!!!!

Ну ты же сам все понимаешь.

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

Так в Омерике на тот момент действовали патентные ограничения на сглаживание шрифтов и её рабы складывали 2 и 2 хентайными способами чтобы получилось не по патентованному. Сейчас эти патенты вроде кончились.

Шта?

Не знаю, что ты реально хочешь донести, но если у тебя там не поддельные выводы ldd, то так быть не должно. Показать то, как должно быть, не могу, потому что у меня те же sed и realpath слинкованы статически.

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

Слов «шишковская либа» я в нем тоже не видел.

Нормальная абстракция!

Напильник соврал, как и всегда до этого!!!!!

Ну ты же сам все понимаешь.

И? Ты некачественно смухлевал произвёв измерения некорректным способом дабы опорочить невинного человека своей клеветой. Я мерил в своём дистре, на реальном железе, а ты - хз в какой клоаке, соответственно и получил желаемые результаты вместо правильных.

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

но если у тебя там не поддельные выводы ldd, то так быть не должно.

Именно что должно. На этом дистре, или на своём предыдущем, я системную png либу переименовывал, а вместо неё ставил в систему более новую и перезагружался. Система колом встала, пришлось возвращать всё как было.

realpath слинкованы статически.

А вот это интересно, ссылку на src.rpm кинуть можешь?

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

Ты некачественно смухлевал

Исключительно смелое заявление.

дабы опорочить невинного человека

Опорочить тебя больше, чем ты сам себя порочишь, невозможно.

получил желаемые результаты вместо правильных

Повторить мои действия может любой желающий — команды я привел, а специально для тех, у кого нет под рукой федоры, привожу ссылки на пакеты: http://fedora-mirror01.rbc.ru/pub/fedora-archive/fedora/linux/updates/17/x86_..., http://fedora-mirror01.rbc.ru/pub/fedora-archive/fedora/linux/updates/17/x86_....

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

Именно что должно. На этом дистре, или на своём предыдущем, я системную png либу переименовывал, а вместо неё ставил в систему более новую и перезагружался. Система колом встала, пришлось возвращать всё как было.

Да ты поехавший, libpng в твоём случае это симптом, а не причина.

А вот это интересно, ссылку на src.rpm кинуть можешь?

Не могу, у меня же гента, а не бинарный дистр.

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

Опорочить тебя больше, чем ты сам себя порочишь, невозможно.

Как удивительно это слышать от

Потому что если я отвечу утвердительно, а там окажется совсем не то, то есть вероятность, что местные резинотехнические изделия возопиют: «Напильник соврал, как и всегда до этого!!!!! Мы так ждали и дождались!»

Напильник соврал, как и всегда до этого!!!!!

Ну ты же сам все понимаешь.

Да я понимаю, что таким заявлением ты добровольно и осознанно подписался под определением резинотехнического изделия, но промолчал об этом открытии, но раз ты сам так настаиваешь...

Повторить мои действия может любой желающий — команды я привел

А теперь ты настаиваешь на своём ламеризме.

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

Да ты поехавший, libpng в твоём случае это симптом, а не причина.

Ты тупой фанатик, который от открытия наличия недокументированной фичи линукса срёт кирпичами. Только что проверял ldd тестового_бинаря в виртуальной машине на почти пустом дистре - там вместо простыни оказалось зависимость всего от трёх либ, что косвенно подтверждает уже не раз озвученное выше предположение, что дополнительные зависимости в сишные динамические бинари добавляют дистрибутивные украшалки шрифтов. А ты от наличия такой линуксовой фичи трубу железобетонную полутораметрового диаметра произведи, мне в хозяйстве пригодится.

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

Глючишь. libpng на тебя плохо действует, а росконадзор-тян про такую фичу и не знает, иначе уже запретила бы сайты её распространяющие.

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

Хорошо написано, спасибо! :)

Только агрессивный поциент всё равно думает, что только он Д'Артаньян, а все остальные - не совсем :-)

Deleted
()
Ответ на: комментарий от kirk_johnson

Эвтаназиолог обойдётся дешевле и он вылечит с гарантией. Психотерапевт же явно возьмёт деньги вперёд и не даст никаких гарантий.

redgremlin ★★★★★
()
Ответ на: комментарий от i-rinat

У психотерапевтов есть супервизоры. Есть ли супервизоры у супервизоров — вопрос хороший.

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

Знатно у вас прибомбило! Столько кирпичей, а бетонную трубу никто и не ---рал:( Но вы там касторки хлебаните и кагалом покамлайте ещё, может что и получится.

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