LINUX.ORG.RU

в ведущих домах Венеции все давно разгуливают в десятых байтострингах

 ,


0

2

Осень, сентябрь. В автобусах, в закусочных то и дело слышны разговоры про непочиненность glib и vty-ui. Всё верно, планета медленно переползает на 7.6.1 с 7.4.2.

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

Типичный пример:

$> cabal-dev install
Resolving dependencies...
In order, the following would be installed:
bytestring-0.9.2.1 (new version)
containers-0.4.2.1 (new version)
binary-0.6.1.0 (new version)
cereal-0.3.5.2 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1,
containers-0.5.0.0 -> 0.4.2.1
curl-1.3.7 +new-base (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1,
containers-0.5.0.0 -> 0.4.2.1
entropy-0.2.1 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
crypto-api-0.10.2 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
pureMD5-2.1.2.1 (reinstall) changes: binary-0.5.1.1 -> 0.6.1.0,
bytestring-0.10.0.0 -> 0.9.2.1
template-haskell-2.8.0.0 (reinstall) changes: containers-0.5.0.0 -> 0.4.2.1
text-0.11.2.3 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
attoparsec-0.10.2.0 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1,
containers-0.5.0.0 -> 0.4.2.1
blaze-builder-0.3.1.0 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
hashable-1.1.2.5 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
parsec-3.1.3 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
unix-2.6.0.0 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
directory-1.2.0.0 (reinstall)
network-2.3.1.0 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
process-1.1.0.2 (reinstall)
hslogger-1.2.1 (new version)
unordered-containers-0.2.2.1 (reinstall)
aeson-0.6.0.2 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1,
containers-0.5.0.0 -> 0.4.2.1
urlencoded-0.3.0.1 (reinstall)
utf8-string-0.3.7 -bytestring-in-base (reinstall) changes: bytestring-0.10.0.0
-> 0.9.2.1
libmpd-0.8.0 (new package)
xml-1.3.12 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
liblastfm-0.0.3.6 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
loh-0.0.0 (new package)
cabal: The following packages are likely to be broken by the reinstalls:
io-choice-0.0.2
ghc-7.6.1
haddock-2.12.0
ghc-syb-utils-0.2.1.1
concrete-typerep-0.1.0.1
derive-2.5.11
cmdargs-0.10
hoogle-4.2.13
QuickCheck-2.5
show-0.4.1.2
Stream-0.4.6
arrows-0.4.4.1
IOSpec-0.2.5
xml-types-0.3.3
xml-conduit-1.0.3.1
texmath-0.6.0.6
pandoc-1.9.4.2
Graphalyze-0.13.0.1
citeproc-hs-0.3.4
wl-pprint-text-1.1.0.0
graphviz-2999.14.1.0
wai-1.3.0
warp-1.3.1
tagsoup-0.12.8
system-filepath-0.4.7
polyparse-1.8
vty-4.7.0.14
regex-tdfa-1.1.8
simple-sendfile-0.2.7
oeis-0.3.1
network-conduit-0.5.0.1
hslogger-1.2.0
cgi-3001.1.8.3
HTTP-4000.2.4
json-0.5
highlighting-kate-0.5.2
csv-0.1.2
http-types-0.7.3.0.1
vault-0.2.0.1
uniplate-1.6.7
hlint-1.8.31
case-insensitive-0.4.0.3
enumerator-0.4.19
blaze-builder-enumerator-0.2.0.5
conduit-0.5.2.4
blaze-builder-conduit-0.5.0.1
attoparsec-conduit-0.5.0.1
blaze-markup-0.5.1.1
blaze-html-0.5.1.0
zip-archive-0.1.1.8
xmonad-contrib-0.10
xmonad-0.10
unlambda-0.1
unix-compat-0.3.0.2
shellish-0.1.4
temporary-1.1.2.3
readline-1.0.1.0
language-c-0.4.2
haskell98-2.0.0.2
dyre-0.8.8
Cabal-1.16.0
bin-package-db-0.0.0.0
hscurses-1.4.1.2
executable-path-0.0.3
xdg-basedir-0.2.1
tar-0.4.0.0
silently-1.2.0.2
hpc-0.6.0.0
hashed-storage-0.5.9
cpphs-1.14
haskell-src-exts-1.13.5
brainfuck-0.1
X11-xft-0.3.1
Use --force-reinstalls if you want to install anyway.

Чудесный кристально ясный выхлоп кабан-девы позволяет моментально понять причину блокировки и предпосылку к ФОРСИРОВАННОМУ ДАУНГРЕЙДУ ЕДРЁНОЙ ТОННЫ ПАКЕТОВ.

Да, либмпд всё сломал своей зависимостью от старых девятых байтострингов, в то время как в ведущих домах Венеции все разгуливают в десятых байтострингах.

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

У меня такой ощущение, что я что-то пропускаю. Что в какой-то параллельной вселенной все нормальные люди нажимают кабан-инсталл и моментально видят строки «дружище, да у тебя же байтостринги десятые, а либмпд хочет девятые».

upd: Да, cabal - не пакетный менеджер, но тем не менее обладает информацией, из-за какого именно пакета происходит конфликт, но не обладает возможностью предоставить её вменяемым образом, как, например, это делает тот же emerge.

★★

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

кто те запретил emerge юзать, а?

src_prepare() {
	sed -e 's@bytestring == 0.9.\*@bytestring@' \
		-e 's@containers >= 0.3 && < 0.5@containers' \
		-i "${S}/${PN}.cabal"
}

да.. мейтейнеру я так и не отписался.

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

Допустим, существует множество людей, лишённых доступа к портежам, оверлеям, гентам. К слову, тэга gentoo здесь нет совершенно умышленно.

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

ну эти люди в большинстве своём довольствуются ghc в репозтории дистра, а там не то, что 7.6, а не факт, что 7.4 будет.

А вообще да, upper bound problem имеется.

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

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

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

ну эти люди в большинстве своём довольствуются ghc в репозтории дистра, а там не то, что 7.6, а не факт, что 7.4 будет.

Из-за кулисы появляется тень пользователя nixos'а.

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

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

anonymous
()

Я как-то заикался в haskell-café, что надо бы в кабале не версии специфицировать, а манифест писать: что из каких пакетов импортируется/экспортируется, и с какими типами. Ну и отдельно поле «у меня работает с такими-то версиями, мамой клянусь». При этом весь манифест может быть написан автоматически (в 99% случаев).

И пусть кабал проверяет, экспортируют ли текущие пакеты то, что новый пакет импортирует, и если да — пусть не вякает про версии, а если нет — пусть инсталлит рекомендованные.

Народ почему-то не впечатлился.

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

Главный редактор «Вестника Здорового Мира» забежал на огонёк.

К слову, в песочнице кабан-девы много не насидишь, не стоит лукавить.

А что такое хсенв, кстати, и какая от него польза?

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

Народ почему-то не впечатлился.

Удивительно.

Отказ от верхних ограничегий на версии зависимостей, в общем, решает проблему в повальном большинстве случаев.

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

Надо бы, видимо, сесть, и написать.

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

В песочнице «кабан-девы» много не насидишь по причине того, что в глобальную куча пакетов кабан-дева никогда писать не будет. Посему крайности получаются две - или всё время собирать свой маленький карманный хакадж в каждом проекте, или воспроизведение описанной выше ситуации.

Известны ли современной науке прецеденты успешного использования хсенва
?

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

Какое отношение твой высер имеет к разделу Development?

anonymous
()
Ответ на: комментарий от dmitry_malikov

звестны ли современной науке прецеденты успешного использования хсенва?

вобще hsenv интересная штука, минимум тем, что в отличии от cabal-dev позволяет использовать несколько версий ghc (судя по описанию), а истории успеха были у сноймана.

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

Ладно, извини, не с момента релиза, а через неделю, чтобы особо ретивые задроты успели перевыпустить свои извержения, совместимые с 7.6

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

сколько с релиза прошло? а из тех пакетов, что есть в gentoo-haskell (далеко не весь portage) не перевыпущено порядка 50 (1/8). И то, что делают с зависимостями в gentoo-haskell это то, что должны делать мейнтейнеры пакетов. Правда мы честно далеко не сразу пинаем мейнейнеров и кидаем им патчи и т.д.

Чтобы установить те же пакеты в песочнице любого вида, придётся провести те же операции, уменьшение требований к версиям пакетов или патчи, так что не надо тут про бесполезность действий или представителей здорового мира.

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

Отказ от верхних ограничегий на версии зависимостей, в общем, решает проблему в повальном большинстве случаев.

или четкое следование version policy.

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

этого дейтства хотя бы proof-of-concept надо, а то вот, например, с автотулсами умеющими подобные проверки гемороя чуть больше, чем много.

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

configure приходится писать ручками. Ну, не на шелле, конечно, в него он компилится, но всё-таки.

Miguel ★★★★★
()

Слава Аллаху, 0.8.0.1 на какадже
!

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