LINUX.ORG.RU
ФорумTalks

HTTP3 до Debian добежал

 , , ,


0

2

Наткнулся сейчас на новость о том, что в Debian приехал curl 8.0.0 с поддержкой протокола HTTP3, которой там раньше не было. Подумал, радость то какая и может быть новость запостить, а затем посмотрел какая версия curl сейчас последняя и рассмеялся. По-моему это яркий пример одной из основных проблем Linux - его фрагментирования. Не будь фрагментирования, авторы curl сами собирали бы бинарные сборки своей программы и они были бы доступны абсолютно всем пользователям Linux в день релиза. Конкретно curl 8.0.0 был бы доступен марте прошлого года.


По-моему это яркий пример одной из основных проблем Linux - его фрагментирования

Да нет, это проблема именно Debian, потому что в моем Linux почему-то умудряются собирать свежий софт.

theNamelessOne ★★★★★
()

Не вижу где ты проблему усмотрел. УМВР.

$ curl --version
curl 7.74.0 (i686-pc-linux-gnu) libcurl/7.74.0 OpenSSL/1.1.1w zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3
Release-Date: 2020-12-09, security patched: 7.74.0-1.3+deb11u11
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets
Зачем курлу http3 я даже не представляю. Ему и http2 не нужен.

Что касается версий, то в тестинге как раз 8.8.0 https://packages.debian.org/trixie/curl

https://tracker.debian.org/pkg/curl В дебиан-репу в качестве эксперимента он внесён 22 мая, а 26 мая уже попал в этот самый тестинг. А ты просто нашёл на каком-то левом сайте протухшую новость.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 5)

что в Debian приехал curl 8.0.0 с поддержкой протокола HTTP3

Доисторичесие проблемы, за вас кто-то выбрал Debian? Если да, то хватит это терпеть, а если нет, то надо было думать.

По-моему это яркий пример одной из основных проблем Linux - его фрагментирования.

Чавой? Какое фрагментирование? Софт один, но версии разные - это фрагментирование? Тогда весь ваш шиндовс и мак имеют фрагментирование на порядки хуже.

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

за вас кто-то выбрал Debian?

Анунаки держат его яйца в каменных тисках.

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

Доисторичесие проблемы, за вас кто-то выбрал Debian? Если да, то хватит это терпеть, а если нет, то надо было думать.

Перед тем как комментрировать жёлтую прессу - проверь что это не фейк.

firkax ★★★★★
()

из основных проблем Linux - его фрагментирования.

наоборот монолитность, прикладной софт жестко привязан к системным библиотеками, а не таскает их с собой

Kolins ★★★★
()

авторы curl сами собирали бы бинарные сборки своей программы и они были бы доступны абсолютно всем пользователям Linux в день релиза

в день релиза

Такая практика «кровавого конца» приводит к тому, что часто что-то ломается из-за несовместимости

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

Целью ж было не проверить факт, а набросить на вентилятор.

Вот ты сам и набросил. По ссылке от @shell-script сейчас доступна лишь версия 8.8.0-1, а на новостном сайте речь идёт о версии 8.8.0-2, в которой поддержку HTTP3 впервые включили.

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

Такая практика «кровавого конца» приводит к тому, что часто что-то ломается из-за несовместимости

Из-за фрагментации. Вот поэтому авторы прикладного софта не хотят собирать его под Linux сами, в отличии от винды и мака.

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

из основных проблем Linux - его фрагментирования.

наоборот монолитность, прикладной софт жестко привязан к системным библиотеками, а не таскает их с собой

Ты просто не понял о чём я. Под фрагментацией я подразумеваю зоопарк дистрибутивов и их версий. В итоге каждому дистрибутиву приходится держать армию маинтейнеров пакетов, собирать всё самостоятельно, причём обычно пакеты привязаны не просто к дистрибутивам, а к их конкретным версиям. Часто всё это собирается ещё и с нестандартными патчами. Процесс этот либо отстающий по времени, либо роллинг глючный. Помимо багов из апстрима маинтейнеры запросто могут принести собственные баги сборки или пакетирования.

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

Доисторичесие проблемы, за вас кто-то выбрал Debian? Если да, то хватит это терпеть, а если нет, то надо было думать.

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

Чавой? Какое фрагментирование? Софт один, но версии разные - это фрагментирование? Тогда весь ваш шиндовс и мак имеют фрагментирование на порядки хуже.

Про фрагментирования я написал выше в ответе @Kolins Что касается винды и мака, там нет никакой фрагментации. Практически весь прикладной софт под эти системы собирается и тестируется апстримом к моменту формального релиза. Как правило нет отдельных сборок этого софта под разные версиии или подверсии винды и мака. Нет никаких нестандартных патчей и нет армии бесполезных маинтейнеров.

zg
() автор топика

По-моему это яркий пример

неиспользования тега «я познаю мир».

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

Да нет, это проблема именно Debian, потому что в моем Linux почему-то умудряются собирать свежий софт.

Arch? Спасибо не надо.

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

Вот ты сам и набросил. По ссылке от @shell-script сейчас доступна лишь версия 8.8.0-1, а на новостном сайте речь идёт о версии 8.8.0-2, в которой поддержку HTTP3 впервые включили.

А ты писал про версию curl 8.0.0. Тут далеко не у всех установлена libastral.so, а ходить по ссылкам вообще дело сомнительное. Вот и читаем то, что ты написал, а не то, что ты хотел написать.

skiminok1986 ★★★★★
()

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

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

А ты писал про версию curl 8.0.0. Тут далеко не у всех установлена libastral.so, а ходить по ссылкам вообще дело сомнительное.

Сомнительное - это как раз таки не читать Пастернака, но осуждать. И без разницы какой у тебя дистрибутив, версия пакета и версия апстрима это практически всегда не одно и то же.

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

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

Да, поддержка http3 в curl является экспериментальной. Но почему это выбор дистрибутива, а не пользователя? То есть я понимаю почему так решили маинтейнеры, но почему ты считаешь это правильным?

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

Нет, это не проблема вообще. Древний софт - это фича дебиана.

Тут проблема не совсем в древности софта. После крайне неприятного опыта с Arch я и сам не люблю роллинг системы. То есть проблема не в древнем софте вообще, а только в древнем прикладном софте. А вот системный софт (ядро, библиотеки, системные утилиты) как раз таки лучше, чтобы были супер стабильными и поэтому не самыми новыми. Но в Linux так не умеют и поэтому тут либо весь дистрибутив - глючный свежак, либо он весь - говно мамонта.

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

Посмотрел. На сайте curl для винды и макоси бинарники предоставляются для релиза от 22 мая 2024(это последний на данный момент официальный релиз curl). По моей ссылке сборка для Debian этой же версии. Пакет для Debian, судя по его Changelog, был собран 25 мая 2024.

shell-script ★★★★★
()
Ответ на: комментарий от targitaj

Используй ubuntu и ppa

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

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

версия 8.8.0-1, а на новостном сайте речь идёт о версии 8.8.0-2

У curl версия 8.8.0. Суффикс 1/2 и 3(текущая версия в sid) - это внутренняя дебиановская маркировка. указывающая на то, что версия пакета, не исходников обновилась. Если посмотреть на Changelog, пакет был пересобран с поддержкой GNUTLS, что и позволило включить HTTP3. До этого HTTP3 просто не поддерживал tls.

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

Но почему это выбор дистрибутива, а не пользователя?

Потому что рядовой пользователь не умеет в программирование, не читает Changelog(прямо как ты) и не знает, почему софт вылетает с ошибкой при запуске с экспериментальными и не работающими фичами.

shell-script ★★★★★
()
Ответ на: комментарий от zg

В пакете для макоси из brew его тоже не включили:

option(USE_NGTCP2 "Use ngtcp2 and nghttp3 libraries for HTTP/3 support" OFF)

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

У curl версия 8.8.0. Суффикс 1/2 и 3(текущая версия в sid) - это внутренняя дебиановская маркировка.

Это часть версии пакета. Завтра там могут что-то ещё исправить в опакечивании и появится 8.8.0-3.

Если посмотреть на Changelog, пакет был пересобран с поддержкой GNUTLS, что и позволило включить HTTP3. До этого HTTP3 просто не поддерживал tls.

А теперь представь, что ты переместился в параллельную вселенную, где нет фрагментации Linux (нет такого зоопарка или все дистрибутивы следуют общим стандартам) и где авторы curl могут сами собирать одну, максимум две сборки (скажем 64 и 32 бит) для всех Linux систем. Как по твоему они будут её собирать? Неужели спрячут все экспериментальные фичи, чтобы никто не смог их попробовать и протестировать?

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

Уже появилась версия 8.8.0-3. И да, там багфиксы. Именно поэтому оно в sid до сих пор, а даже не в backports.

И см. мой комент выше. У меня нет винды, чтобы распаковать виндовый инсталлер, а вот в макоси(там можно tar.gz-шку скачать из манифеста) я вижу, что http3 до сих выключен. Такая вот фрагментация.

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

Потому что рядовой пользователь не умеет в программирование, не читает Changelog(прямо как ты) и не знает, почему софт вылетает с ошибкой при запуске с экспериментальными и не работающими фичами.

Похоже ты сам не читаешь документацию. Для обращений по HTTP3 curl нужно запускать с дополнительной опцией --http3 или --http3-only. Поэтому «рядовой пользователь» врядли что-то почувствует, хотя curl как бы изначально не совсем для рядовых пользователей сделан.

zg
() автор топика
Ответ на: комментарий от shell-script

У меня нет винды, чтобы распаковать виндовый инсталлер

$ curl --version
curl 8.8.0 (Windows) libcurl/8.8.0 OpenSSL/3.3.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.61.
0 nghttp3/1.4.0
Release-Date: 2024-05-22
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps te
lnet tftp
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI threadsafe TLS-SRP
 UnixSockets zstd

Это в MinGW64.

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

Ну вот я прочитаю документацию, добавлю опцию --http3 попробую зайти курлом на https и с большой вероятностью получу ошибку. Точнее получил бы. Потому как, в Changelog curl(не debian) было написано, что до недавнего времени полноценной поддержки tls в http3 нет. Теперь есть и можно включать.

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

Это прекрасно. Видимо, они сделали то же самое, что сделали разрабы Debian для sid. Пересобрали пакет.

Нет, они сделали три сборки со слегка разными параметрами сборки:

mingw64/mingw-w64-x86_64-curl 8.8.0-10 [installed]
    Command line tool and library for transferring data with URLs (mingw-w64)
mingw64/mingw-w64-x86_64-curl-gnutls 8.8.0-10
    Command line tool and library for transferring data with URLs (mingw-w64)
mingw64/mingw-w64-x86_64-curl-winssl 8.8.0-10
    Command line tool and library for transferring data with URLs (mingw-w64)
  if [ "${_variant}" = "-winssl" ]; then
    _variant_config+=("-DCURL_DEFAULT_SSL_BACKEND=schannel")
    _variant_config+=("-DCURL_USE_SCHANNEL=ON")
    _variant_config+=('-DUSE_NGHTTP2=OFF')
    _variant_config+=("-DCURL_CA_BUNDLE=none")
    _variant_config+=("-DCURL_CA_PATH=none")
    _variant_config+=("-DUSE_LIBRTMP=OFF")
  elif [ "${_variant}" = "-gnutls" ]; then
    _variant_config+=("-DCURL_DEFAULT_SSL_BACKEND=gnutls")
    _variant_config+=("-DCURL_USE_GNUTLS=ON")
    _variant_config+=("-DCURL_USE_SCHANNEL=ON")
    _variant_config+=('-DUSE_NGHTTP2=OFF')
    _variant_config+=("-DCURL_CA_BUNDLE=${MINGW_PREFIX}/etc/ssl/certs/ca-bundle.crt")
    _variant_config+=("-DUSE_LIBRTMP=ON")
  elif [ "${_variant}" = "-openssl" ]; then
    _variant_config+=("-DCURL_DEFAULT_SSL_BACKEND=openssl")
    _variant_config+=("-DCURL_USE_OPENSSL=ON")
    _variant_config+=("-DCURL_CA_BUNDLE=${MINGW_PREFIX}/etc/ssl/certs/ca-bundle.crt")
    _variant_config+=("-DUSE_NGHTTP2=ON")
    _variant_config+=("-DUSE_LIBRTMP=OFF")
    if [[ ${CARCH} != i686 ]]; then
      _variant_config+=("-DUSE_OPENSSL_QUIC=ON")
    fi
  fi
zg
() автор топика
Ответ на: комментарий от targitaj

Не могу выбрать. Поставить феймпалм или клоуна.

Поставь себя в угол и завтра приходи с родителями к директору.

zg
() автор топика
Ответ на: комментарий от shell-script

Ну три сборки на разные вкусы пользователей. Кстати, как ты можешь видеть выше, у меня в curl тоже нет gnutls, а curl --http3-only https://www.google.com работает.

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

Ну в общем мы с тобой одного мнения про состояние дистрибьюции ПО в linux. Я тоже считаю что должен быть базовый дистрибутив (и не важно что там debian/rhel/slackware) и ПО которое зависимости таскает с собой (желательно еще и запускается в firejail/bubblewrap) и какую версию хочешь такую и ставь, а хочешь сразу несколько версий!

Попытки как-бы были но все упирается в софт который считает что нужные библиотеки уже есть в системе, зачем их с собой таскать? И нужно все ПО руками собирать в какой-нибудь flatpak или appimage

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

Ты сейчас описал типичную проблему макоси. Если хочешь версию, отличную от доступной в brew или с другими опциями сборки - компиляй ручками, подтягивая все зависимости опять же ручками. При этом разные пакеты тянут за собой разные зависимости одних и тех же либ. Из-за чего у меня, например, в системе было четыре питона(две версии питона по умолчанию и ещё две притянули пакеты из brew).

shell-script ★★★★★
()
Ответ на: комментарий от zg

Судя по spec-файлу в Fedora, тоже пока без http3 собрано. В Gentoo по умолчанию USE-флаг для http3 выключен.

Остальные дистры мне смотреть лень. Подозреваю, что там картина такая же в большинстве своём. Выходит, Debian один из первых дистрибутивов, кто начал включать эту опцию.

shell-script ★★★★★
()

эмм...

$ curl --version
curl 8.8.0 (x86_64-pc-linux-gnu) libcurl/8.8.0 OpenSSL/3.2.2 >zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.7 libpsl/0.21.2 >libssh2/1.11.0 nghttp2/1.62.1 librtmp/2.3 OpenLDAP/2.5.18
Release-Date: 2024-05-22, security patched: 8.8.0-1
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

/trixie
/offtopic -

$ uname -r
6.9.7-amd64

kekw

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

Даже не догадываюсь. Надо смотреть Changelog и читать, когда мантейнер пакета под винду собрал с нужными флагами.

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