LINUX.ORG.RU
ФорумTalks

Чё там у гентушников?

 , ,


0

3

Я тут подумываю, а не вернуться ли мне на генту. Правда, от этих мыслей меня существенно подташнивает. Тем не менее, не поделитесь ли, товарищи гентушники,

  1. чё у вас там новенького, кроме бинарных пакетов?

  2. Насколько runit юзабелен как полная замена OpenRC? Поддерживается ли он для всех сервисов?

2a. К слову, а почему они вообще до сих пор от этого громоздкого говна мамонта не отказались? (Гы, на всякий случай уточню, что я про OpenRC.)

  1. Недопонял я, что там с ускорением портежа. Вижу USE=native-extensions, но недопонял, много ли он на данный момент даёт и какие дальнейшие планы?
★★★★★

Последнее исправление: dimgel (всего исправлений: 3)
Ответ на: комментарий от mittorn

Ну если в софте в NEEDED прописано lib.so.1 и lib.so.2 вместо lib.so, то всё ок. А если нет, в.ч. мейнтейнеры не пропатчили на эту тему, – то только nixos. :)

Вообще мне было очень странно, что такие лютые хардкорщики завязались на systemd.

UPD2: Я конечно не в тему ляпнул, но если разные версии встают в разные prefix, то это уже почти nixos – насколько я помню тутошние о ней рассказы. Хз как в ней, но я бы тогда (в роли мейнтейнера пакетов) собирал бы LD_LIBRARY_PATH для софта из этих префиксов.

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

Тогда развернмте свою мысль, пожалуйста.

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

собирал бы LD_LIBRARY_PATH для софта из этих префиксов.

Или даже лучше симлинкал бы из префиксов зависимостей в префикс софта.

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

Или даже лучше симлинкал бы из префиксов зависимостей в префикс софта

Вроде бы никсось как-то так и работает.

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

всегда можешь собрать свой .deb со своими патчами и блекджеком.

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

А если прописан lib.so то не будет проблемы отсутствующей solib зависимости. Может быть проблема ломанного API, но это уже проблема версионирования библиотеки, а не дистрибутива и такую библиотеку нужно бандлить вместе с использующим её софтом. Для lib.so API должно быть обратно совместимо, тогда проблемы не будет

mittorn ★★★★★
()

чё у вас там новенького, кроме бинарных пакетов?

Старые небинарные пакеты уже неспособны удовлетворить мсье?

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

Да хоть флетпак. Всё же такое принудительное слотирование это опциональная фича, а вот preserved libs необходимая. к старым версиям библиотек линковка производиться не будет и они будут присутствовать только с одной целью сохранения работоспособности ПО. Такое просто необходимо бинарным дистрам, в которые дособираются пакеты (aur, pkgbuild в арче например), а так же в которых могут быть кастомные репы.
В арче этого нет и с ним проблемы. Во первых, если сторонняя репа не обновила пакеты, а библиотека в основной репе обновилась, софт из кастомной репы ломается будучи прилинкованным к старой версии.
Во-вторых, собранный из сорцов софт пересобирать каждый раз при обновлении замучаешься.
Вот я собрал недавно mesa из исходников, при этом разумеется пришлось редактирвоать pkgbuild, т.к он написан через одно место и там за каким-то хреном включен omx, который никто не использует, но выключен gles1.
И конечно же после первого же обновления эта mesa перестала работать т.к она зачем-то прилинковало ICU

mittorn ★★★★★
()
    • Ого, чего завезли, даже и не знал.
    • А хз.

2а. - А зачем? Только вчера вышел новый релиз.

    • Вроде, стал быстрее и менее глючен.
Ololo_Trololo
()
Последнее исправление: Ololo_Trololo (всего исправлений: 2)
Ответ на: комментарий от mittorn

А если прописан lib.so то не будет проблемы отсутствующей solib зависимости.

Нет уж, спасибо.

Может быть проблема ломанного API, но это уже проблема версионирования библиотеки, а не дистрибутива

Насмотрелся я на форуме артикса, как сломанную зависимость КАЖДЫЙ СУКА ПЕРВЫЙ норовит починить с помощью ln -s lib.so.2 lib.so.1. Прям мечтаю дождаться, когда кто-нибудь из этих дятлов в конце концов убьёт свою систему – и себя самого заодно.

и такую библиотеку нужно бандлить вместе с использующим её софтом.

И снова – нет уж, спасибо. Как по мне, идея борьбы с dll/so-hell путём таскания с собой всех своих зависимостей – это что-то из серии «лучшее средство от перхоти – гильотина». Нет башки – нет проблемы. Действенно, но больно уж неэффективно и тупорыло. Никсосники же вон справились, и вполне элегантно.

Для lib.so API должно быть обратно совместимо, тогда проблемы не будет

А это из серии «мышки, станьте ёжиками». :) Не будет такого никогда.

Сколько тут уже народу плакалось отчаянно, что каждый норовит хоть что-нибудь, да сломать между версиями. Хоть сука одну функцию, да переименовать! :)

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

(1) Программирование – крайне скучное и унылое занятие. А уж если ты спец, то уже в момент постановки задачи знаешь оптимальное её решение, а дальше – часы, дни, недели, месяцы рутины, когда ни влево, ни вправо шагу не сделать. С ума сойти можно. Давай хоть над именами переменных поиздеваемся. Некоторые ещё в каментах матерятся (гы, и в именах переменных тоже), но при работе на дядю это как правило не есть хорошо.

(2) Рутина-рутиной, но мозги пашут на полную. Что вдвойне противно. Поэтому я люблю рефакторить: при должном умении, это самое тупое занятие из всех возмозжных, при этом и мозги отдыхают, и польза привносится (причём зачастую поболе, чем если кодить всё это же время). А какой рефакторинг самый простой и даже в IDE автоматизирован? Правильно. :) А раз он автоматизирован в IDE, то переименование одной переменной или функции никакого удовольствия не доставит – слишком быстро (гусары, молчать!). Поэтому что? Правильно: ДАВАЙТЕ ПЕРЕИМЕНУЕМ НА@#$ ВСЁ!!! =)

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

Старые небинарные пакеты уже неспособны удовлетворить мсье?

Да я просто спросил. Большинство системных пакетов мелкие, там что сорц, что бинарь, разница несущественна. А для всяких там хромов с офисами бинарники были почти всегда (зато когда их временно не было, что случалось, – вот это была засада).

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

Нет уж, спасибо.

оно и так без solib ошибки сломается при обновлении в этом случае, разницы нет

Насмотрелся я на форуме артикса, как сломанную зависимость КАЖДЫЙ СУКА ПЕРВЫЙ норовит починить с помощью ln -s lib.so.2 lib.so.1. Прям мечтаю дождаться, когда кто-нибудь из этих дятлов в конце концов убьёт свою систему – и себя самого заодно.

И правильно сделает. Потому что софт не просто так линкуется к lib.so.1

И снова – нет уж, спасибо. Как по мне, идея борьбы с dll/so-hell путём таскания с собой всех своих зависимостей – это что-то из серии «лучшее средство от перхоти – гильотина». Нет башки – нет проблемы. Действенно, но больно уж неэффективно и тупорыло. Никсосники же вон справились, и вполне элегантно.

Ну и сиди со сломанной системой, в которой после обновления библиотеки будут случаться рандомные сегфолты и stack buffer overflow

Сколько тут уже народу плакалось отчаянно, что каждый норовит хоть что-нибудь, да сломать между версиями. Хоть сука одну функцию, да переименовать!

Софт с таким библиотеками в любом случае будет разваливаться при сборке, как разваливается постояннно wlroots или wxwidgets. Это такие библиотеки, которые работают только когда их бандлят с собой сабмодулем. По другому их не используют в нормальном софте. Вон, раст-сообщество давно это поняло и там cargo сам всё собирает и статически влинковывает. И никто не жалуется, хоть и всё перелопачивают каждый минорный апдейт. Но внешнее API динамических библиотек всё равно должно быть стабильным

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

Софт с таким библиотеками в любом случае будет разваливаться при сборке,

В этом собственно и кайф source-based: сломанные зависимости определяются в момент сборки-установки, а не когда оно в рантайме подохнет. Прямая аналогия со статической vs динамической типизацией.

Ну и сиди со сломанной системой,

В силу вышесказанного, на генте со сломанной системой мне сидеть ЕМНИП не доводилось. В отличие от мать его артикса. Думаешь, чего я тут срач развожу? Да потому что wine/dxvk сдох, и скайрим не запускается!!! :CRY: :((((

Софт с таким библиотеками в любом случае будет разваливаться при сборке,

См. выше.

как разваливается постояннно wlroots или wxwidgets.

Шо, и на генте тоже? Не помню/не верю. Зато помню кучу system-* юз-флагов, которые у меня были врублены почти все почти всегда.

Вон, раст-сообщество давно это поняло и там cargo сам всё собирает и статически влинковывает.

А вот это уже совсем другое! (c) Статическая линковка – это ОЧЕНЬ православно, потому что LTO. А вот таскать за собой чужие so-шки – ваще не православно.

Но внешнее API динамических библиотек всё равно должно быть стабильным

Ясен пень, должно. Кто ж спорит-то? :)

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

А вот это уже совсем другое! (c) Статическая линковка – это ОЧЕНЬ православно, потому что LTO.

Если только 90% твоего бинарника не будут составлять чужие либы, которые и так есть в дистрах.

А вот таскать за собой чужие so-шки – ваще не православно.

Хотя бывает так, что без вариантов.

pr849
()
Ответ на: комментарий от mittorn

Для lib.so API должно быть обратно совместимо, тогда проблемы не будет

Это кажется называется semantic versioning? Когда старшая цифра версии инкрементируется при несовместимых изменениях, средняя – при совместимых, младшая – при багфиксах. Несовместимые изменения часто неизбежны в процессе развития, а таскать за собой легаси-фасады всех предыдущих версий… ну, такое себе. И не факт, что всегда возможно.

pr849
()
Ответ на: комментарий от dimgel

wlroots постояно ломает API, потому я несколько раз пытался собирать на нём что-то год-два назад и всё ломалось. Причём были проблемы как неправильного количества аргументов функций при сборке, так и когда я собрал что-то и обновил wlroots, но уже установленныое собранное со старой версией ПО запускалось и где-то портило память из-за изменения количества аргументов. То есть wlroots всё ещё не готов и это не проблема дистра.
Касательно wxwidgets - он как 10 лет назад рассыпался, так и сейчас. Там правда уже не проблема ломки API. Пересборка той же весии wxwidgets другой версией компилятора ломает весь софт, который его использует. Причём он выдаёт runtime ошибку - то есть на стадии сборки это никак не определяется, просто запускаешь что-то собранное с wxwidgets и оно дёргает cxa_terminate.
Касательно же ломки API - я с этим сталкивался при сборке софта на wxwigdets в хомяке - там кучу свойств попереименовали где-то в 2016 году.

Так же есть (правда уже менее критичная) проблема практически со всем софтом, использующим STL в API.
Пересобрал библиотеку более новым/старым компилятором, у него std::string поменялся. Потом собираешь софт - он пыталется линковаться к функциям с другим std::string и не находит их.
Ну и при пересборке с gcc/clang тоже не находились какие-то зависимости. C++ API - зло и такие библиотеки надо бандлить. Rust сразу стал делать так, чтобы не ограничивать доступные для API типы - всё гарантированно собирается одним компилятором и не рассыпется.

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

Именно, и чтобы не было проблем - lib.so есть, линковка может происходить к нему, но .soname в библитеке указывает на lib.so.1
И при ломающих изменениях можно всё так же линковать к lib.so, но линковка по soname уже подхватит lib.so.2 когда что-то поменяется.
при этом сама версия библиотеки может быть и lib.so.2.21, но будет симлинк lib.so.2 для того чтобы при минорных изменениях софт продолжал работать и lib.so к которому можно линковаться, получив lib.so.N в .soname

mittorn ★★★★★
()

а не вернуться ли мне на генту

Если хочешь быть богатым, 
Если хочешь быть счастливым - 
Оставайся, мальчик, с нами.
Будешь нашим кораблём!
Chord ★★★★
()
Ответ на: комментарий от mittorn

wlroots […]

Да уж… Вспомнил, что это про вяленый, т.е. на генте я его не застал (ну или по крайней мере не ставил никогда). Ещё одно подтверждение, что вяленый делают говнохипстеры.

Пересобрал библиотеку более новым/старым компилятором, у него std::string поменялся.

Единственный случай на моей памяти – была смена ABI (что-то там в name mangling поменяли), но это было один раз, мейнтейнеры заранее всем уши прожжужали насквозь, и у меня всё прошло гладко (гы, т.е. свет в процессе пересборки @system не выключался; да и @system ЕМНИП был весь на голых сях).

C++ API - зло и такие библиотеки надо бандлить.

Нет уж, спасибо. Львиная доля софта на большинстве десктопов – на плюсах, с динамической линковкой огроменной Qt, огроменных кедовых либ и т.п. – и всё работает. Таскать все эти огроменные либы с каждой софтиной – дичь и бред.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 2)
Ответ на: комментарий от dimgel
Если хочешь быть богатым, 
Если хочешь быть счастливым - 
Возвращайся, мальчик, в Генту.
Будешь нашим кораблём!
Chord ★★★★
()
Ответ на: комментарий от dimgel

У Qt более-менее стабильное ABI и если QString в аргументах функции - это проблемы не создаёт. А вот если там затесался std::string - жди беды т.к к ним то аллокатор добавляют то ещё что и оно ломается не только от версии компилятора, но ещё и от указанной версии стандарта. И вообще STL лучше сразу на помойку отправлять, не просто так в qt свои строки, в llvm свои, да почти где угодно свои.

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

Ну я не устраивал бенчмарки, но субъективно да, стало быстрее.

А на старой машине (i3-2120) бинарники тоже неплохо так ускоряют, в моём сетапе где-то 30-35% тянет с бинхоста, остальное по-прежнему компиляется.

На новой машине бинхост не юзаю (i5-12400), там и так всё быстро компиляет

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

не знаю, eix вроде всегда быстро работал, там же своя БД.
Обычный расчёт у меня в последнее время не больше 10 секунд, притом что помню, как ждал по полчаса расчёт, который в итоге выдавал ошибку из-за bdeps

mittorn ★★★★★
()

Господи, да сколько ж тут юродивых с клоунами да фейспалмами. Затрахался уже в игнор добавлять. А потом эти же люди плачутся про токсичный рунет, где на любой вопрос тебе вместо ответа десятью разными способами объясняют, что ты дурак.

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

Господи, да сколько ж тут юродивых с клоунами да фейспалмами. Затрахался уже в игнор добавлять. А потом эти же люди плачутся про токсичный рунет, где на любой вопрос тебе вместо ответа десятью разными способами объясняют, что ты дурак.

Так Вы, Батенька, дурак и есть.

Я тут подумываю, а не вернуться ли мне на генту. Правда, от этих мыслей меня существенно подташнивает.

Ну так проблюйся и сформируй мысль.

чё у вас там новенького, кроме бинарных пакетов?

В Gentoo стабильность.

Насколько runit юзабелен как полная замена OpenRC? Поддерживается ли он для всех сервисов?

Настолько, насколько сам настроишь. Но по второму вопросу видно, что ты ни в зуб ногой, так как в runit пускалки однострочные. Один раз разбираешься, вопросы не возникают.

К слову, а почему они вообще до сих пор от этого громоздкого говна мамонта не отказались? (Гы, на всякий случай уточню, что я про OpenRC.)

Гы, разложи громоздкость и почему мамонт. Агрументы ждём (не дождёмся, так как ты не имеешь знаний), начинающий тролль.

Недопонял я, что там с ускорением портежа. Вижу USE=native-extensions, но недопонял, много ли он на данный момент даёт и какие дальнейшие планы?

В news тебя забанили или в английский не умеешь? translation Google, я так понимаю, тоже?

Да уж… Вспомнил, что это про вяленый, т.е. на генте я его не застал (ну или по крайней мере не ставил никогда). Ещё одно подтверждение, что вяленый делают говнохипстеры.

Я принимаю прямое участие в разработке tiled клиентов. Хипстер? Не думаю. Говно? Там собралось как довольно много компетентных, думающих людей, что что-то решают, так и «идейных» трансгендеров, навязанных спонсорами. Сейчас явно лучше, чем было. Появилась конкуренция в реализации. Но… Не тебе судить. Ты же быдло, «вяленый», «говнохипстеры». Иди пивца ебани и порассуждай, как тормозит portage.

masterOf
()
Ответ на: комментарий от dimgel

Плевать. Ты меня и мой труд обзываешь, который я делаю не на зп.

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

Но по второму вопросу видно, что ты ни в зуб ногой, так как в runit пускалки однострочные.

К слову сказать, я нигде и не утверждал, что я в нём разбираюсь. И разбираться буду только если решу-таки вернуться на генту. Пока что мне на s6 хорошо.

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

И превратить систему тупо в помойку. Скажи зачем мне на сервере кишки от иксов апачей и прочей дряни? Я не хочу их видеть там. Поэтому джента.

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

Что-то на яндекс-зеркале с 5 февраля, похоже, ничего не обновляется. Даже снапшоты срезов дерева старые.

Upd. Какой-то глюк браузера - почистил кэш и всё появилось.

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

зачем мне на сервере кишки от иксов апачей и прочей дряни

Я так недавно на debian хотел поглядеть, так он мне с qemu ещё и звуковых либ потянул вагон...
Сразу решил, что увидел достаточно )

GAMer ★★★★★
()
Последнее исправление: GAMer (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)