LINUX.ORG.RU
ФорумTalks

В 2106-м году gzip превратится в тыкву

 , , ,


0

2

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

Короче, после 2106-02-07 06:28:15 UTC все ваши скрипты, которые жмут gzip'ом, начнут сыпаться с

gzip: stdin: warning: file timestamp out of range for gzip format

★★★★★

Ответ на: комментарий от keir

Разработчики и так в курсе и пишут про 2106-й год в документации.

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

Поставил себе напоминание в календаре, чекну, отпишусь.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от vbcnthfkmnth123

Я не доживу до 2106 года, так что об этом можно не волноваться.

Это отличный индикатор эффективного менеджера. Главное - ЯЯЯ не получу по жёппе, остального вообще нет.

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

Если до 2106 года империалисты не смогут разрешить свои конфликты без ядерного джихада, тема выбора оптимального алгоритма сжатия перестанет волновать потомков местных обитателей. Если же третья мировая война не состоится, gzip по-прежнему будет ненужен. gzip и сейчас ненужен (зачем мне в 2024 году формат, не умеющий задействовать возможности многоядерного процессора?). Все нормальные люди используют zstd

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

Да. Ведь существует time_t, который теперь имеет разрядность 64 бита на всех нормальных платформах

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

Скорее всего, ни один человек, имеющий аккаунт на ЛОРе в данный момент, не доживет до 2106 года. Доживут дети или внуки. А для них вопросы выбора оптимального алгоритма сжатия отойдут на второй план, если сильные мира всего устроят окончательное решение $enemyname вопроса во имя своих меркантильных интересов энергетической безопасности своих государств.

hateWin ★☆
()
Последнее исправление: hateWin (всего исправлений: 2)

проверь и другие архиваторы, скажи на что переходить. xz?

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

зачем мне в 2024 году формат, не умеющий задействовать возможности многоядерного процессора

Открой для себя утилиту pigz

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

может жать gzip’ом.

Может. Но ядро давно умеет работать с другими форматами.

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

Кто перестал? Суть gzip в том что он универсален, ты можешь архив, созданный где угодно, распаковать тоже где угодно, в т.ч. на компе, который не обновлялся с 90-х годов. Если изменить формат, эта важнейшая его фича сломается.

Впрочем, я бы сделал так: если все таймстампы укладываются в текущий формат, сохранять в текущем совместимом. Если где-то дата больше 2106 года - использовать изменённый, несовместимый со старыми утилитами, но поддержку его распаковки сделать уже сейчас. Ну и надеяться, что к 2106 году, когда архивы в новом формате реально станут появляться, уже не останется (почти) машин, где стоит gzip версии до 2024 года, который не может его распаковать.

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

Дело даже не в pigz а в том что можно параллельно несколько архиваторов запустить если иначе никак.

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

Хм. pigz, даже с пресетом best, несколько проигрывает zstd в степени сжатия. А работает значительно медленнее. Тестировал на каталоге, содержащем git-репозитории celestia и rawtherapee, а так же кучу исходников без гита. Сам каталог занимает 30 гигабайт. После сжатия с использованием zstd – 12. После gzip – 13

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

А еще можно удалить себе гланды через анус. Но через рот удобнее.

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

Кто перестал? Суть gzip в том что он универсален

Поддержка zstd добавляется одним вызовом пакетного менеджера. Arch Linux вообще содержит zstd в базе, поскольку pacman использует zstd для сжатия пакетов.

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

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

Ну и надеяться, что к 2106 году, когда архивы в новом формате реально станут появляться

А у тебя надежная криокамера. Они уже появились и используются

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

Разве его к тому времени не перепишут на лиспе?

thesis ★★★★★
()

после 2106-02-07 06:28:15 UTC все ваши скрипты, которые жмут gzip’ом, начнут сыпаться

Поменяю дату на прошлое и запущу скриптец, делов-то.

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

Поддержка zstd добавляется одним вызовом пакетного менеджера. Arch Linux вообще содержит zstd в базе, поскольку pacman использует zstd для сжатия пакетов.

Поддержка чего угодно добавляется установкой соответствующего софта. Универсальность же в том что устанавливать ничего и никуда не надо.

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

Проблема в том, что «что использовать» выбирают в источнике архива, а не там где его распаковывают. Так что gzip стоит использовать заранее, не зная где именно будет производиться распаковка. Более того, пакуя gzip-м ты точно знаешь не только про его совместимость с старыми системами, но и с будущими: все эти bz2/xz/lzma/zstd и что там ещё напридумывали могут со временем задепрекейтить и удалить под предлогом перехода на новые алгоритмы, а gzip так и останется навечно минимальным дефолтом который должен присутствовать в любой исправной системе.

Они уже появились и используются

Уже появились архивы с файлами из 2106 года? Что ты несёшь?

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

Можно и не менять дату (дату файла), там всего лишь варнинги. Автор несколько наврал про «сыпаться».

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

Поддержка чего угодно добавляется установкой соответствующего софта. Универсальность же в том что устанавливать ничего и никуда не надо

Так в арче уже не надо добавлять. А через 10 лет zstd будет таким же стандартным компонентом, каким сейчас является gzip.

Проблема в том, что «что использовать» выбирают в источнике архива, а не там где его распаковывают. Так что gzip стоит использовать заранее, не зная где именно будет производиться распаковка.

Нет. В любой нормальной системе можно поставить zstd одной командой. Если ты архивируешь для себя, вопрос совместимости так же не стоит. gzip нужен только для совместимости с системами, существующими без обновлений больше 10 лет. В остальных случаях zstd либо уже установлен, либо устанавливается без проблем.

Уже появились архивы с файлами из 2106 года? Что ты несёшь?

Ты упорот? Я про архиваторы. Которые уже практически заменили gzip

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

Так в арче уже не надо добавлять.

При чём тут арч? Это уже требование - иметь «правильный» дистр.

А через 10 лет zstd будет таким же стандартным компонентом, каким сейчас является gzip.

Не будет.

Нет. В любой нормальной системе можно поставить zstd одной командой.

Есть системы где вообще ничего ставить нельзя, например.

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

Разумеется.

gzip нужен только для совместимости с системами, существующими без обновлений больше 10 лет

Уточнение про 10 лет тут лишнее. Просто - для совместимости со всем подряд, чтоб вообще не думать что там у кого может быть установлено или не установлено. Это как POSIX shell - он один и точно везде есть, скрипты нормальные люди пишут на нём, а не на всех этих bash/zsh/XXXsh.

Ты упорот? Я про архиваторы. Которые уже практически заменили gzip

Ты не держишь нить беседы. Я писал про то, как обеспечить максимально плавный и щадящий апгрейд формата gzip за будущие 80 лет, а не про то, как другие архиваторы использовать.

Которые уже практически заменили gzip

У кого как. Я вот команду «tar czf» знаю а остальное даже лень запоминать.

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

При чём тут арч? Это уже требование - иметь «правильный» дистр

При том, что со временем zstd станет стандартом и будет базовым компонентом не только в арче.

Не будет

Почему?

Есть системы где вообще ничего ставить нельзя, например

Вот для этих систем и применяй gzip. В остальных случаях в этом нет никакого смысла

Ты не держишь нить беседы. Я писал про то, как обеспечить максимально плавный и щадящий апгрейд формата gzip

Этот плавный и щадящий апгрейд уже происходит.

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

Почему?

Потому что придумают очередной новый супер-формат и про ztsd забудут. Так же как уже почти забыли про bz2, заменив его на xz. А gz был и остаётся тем, что будет просто работать независимо от этих нововведений и без гонки за эффективностью в ущерб всеобщей совместимости.

Вот для этих систем и применяй gzip. В остальных случаях в этом нет никакого смысла

Я ж уже написал - заранее не знаешь где кто-то захочет распаковать твой архив.

Этот плавный и щадящий апгрейд уже происходит.

Нет, формат gzip с 64-битным временем до сих пор не сделали.

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

Потому что придумают очередной новый супер-формат и про ztsd забудут

Прикол в том, что zstd универсален. По совокупности свойств он превосходит другие компрессоры.

Нет, формат gzip с 64-битным временем до сих пор не сделали.

Ты вообще понимаешь, о чем идет речь? gzip уже вытесняется другими компрессорами. Причем здесь 64-битное время?

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

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

Причем здесь 64-битное время?

При том, что имеется конкретная проблема - gzip не может записать таймстамп больше 2106 года.

Хотя я чего-то подумал сейчас, что не нужен ему никакой новый формат, как и таймстамп вообще. Ведь никто этот таймстамп никогда не смотрит и не учитывает при распаковке. Так что пишем младшие 32 бита времени, варнинг вообще можно убрать если только -v не указано.

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

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

Когда сделают, тогда и поговорим.

При том, что имеется конкретная проблема - gzip не может записать таймстамп больше 2106 года

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

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

Автор несколько наврал про «сыпаться».

Не наврал. Я не мог поставить ALT Linux потому, что в UEFI машины был выставлен 2112-й год или какой-то такой. Инсталлятор выдавал ошибку «Запуск скрипта не удался: 50-instkernel.sh». А суть в том, что этот скрипт вызывает make-initrd, выполнение которого завершается с ошибкой, поскольку gzip выдаёт warning.

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

warning

это ещё не тыква.
Да и кому вообще нужен таймстамп из гзипа?

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

Не проверял, но, по ходу, ненулевой код возврата. Сам make-initrd перед завершением работы пишет про ошибку из-за warning'а gzip'а.

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

Ну тогда можно и правда багрепорт в gzip отправить. Эта ненужная мелочь явно не должна приводить к ненулевому коду. Я даже не уверен что варнинг надо по дефолту писать, ведь этот таймстамп нигде не используется потом реально.

firkax ★★★★★
()

gzip не нужен, переходите на zst.

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

Будут только заверенные корпорациями бинарники без конфигов, а случайно найденный скрипт будет считаться вредоносом и автоматически удаляться с уведомлением Security Officer’а

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

Ты упорот? Я про архиваторы. Которые уже практически заменили gzip

Упоротость похоже у вас, выраженая в незнании.

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

При том, что имеется конкретная проблема - gzip не может записать таймстамп больше 2106 года.

Горец, перелогиньтесь.

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

У него там ещё и имя оригинального файла в заголовке сохраняется (и тоже игнорируется потом всеми, распаковщик .gz просто отрезает). Наверно (как и таймстамп) чтобы утилитой file его потом смотреть. Кстати с размером оригинального файла там та же проблема (он 32-бит) и на неё кажется просто забили, пишут младшие 32 бита его он >=4GB.

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

Отличный повод выпилить эту муть и всегда занулять что имя, что timestamp.

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

Мне не нужна вечная игла, я не хочу жить вечно.

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

Оно нужно только там, где требуется обратная совместимость.

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