GitHub'da arxiv nazorat summalaridagi o'zgarishlar tufayli tuzilma tizimlaridagi nosozliklar

GitHub nashr sahifalarida avtomatik ravishda yaratilgan β€œ.tar.gz” va β€œ.tgz” arxivlarini yaratish usulini oβ€˜zgartirdi, bu esa ularning nazorat summalarining oβ€˜zgarishiga va yaxlitligini tasdiqlash uchun GitHub’dan yuklab olingan arxivlarni avvalgilariga nisbatan tekshiradigan avtomatlashtirilgan qurish tizimlarida katta nosozliklarga olib keldi. .saqlangan nazorat yig'indilari, masalan, paket metama'lumotlariga yoki qurilish skriptlariga joylashtirilgan.

2.38 versiyasidan boshlab, Git asboblar to'plami sukut bo'yicha o'rnatilgan gzip dasturini o'z ichiga oladi, bu esa operatsion tizimlar bo'ylab ushbu siqish usulini qo'llab-quvvatlashni birlashtirish va arxiv yaratish samaradorligini oshirish imkonini berdi. GitHub o'z infratuzilmasida git versiyasini yangilagandan so'ng o'zgarishlarni qabul qildi. Muammo o'rnatilgan zlib-ga asoslangan gzip ilovasi tomonidan yaratilgan siqilgan arxivlar gzip yordam dasturi tomonidan yaratilgan arxivlardan ikkilik farq qilishi bilan bog'liq edi, buning natijasida git-ning turli versiyalari tomonidan yaratilgan arxivlar uchun turli nazorat yig'indilari bajarilganda. "git arxivi" buyrug'i.

Shunga ko'ra, GitHub-da git-ni yangilagandan so'ng, eski nazorat summalari yordamida tekshirishdan o'tmagan nashr sahifalarida biroz boshqacha arxivlar ko'rsatila boshlandi. Muammo turli xil qurish tizimlarida, uzluksiz integratsiya tizimlarida va manba kodidan paketlarni yaratish vositalarida namoyon bo'ldi. Misol uchun, manba kodlari GitHub'dan yuklab olingan 5800 ga yaqin FreeBSD portlarining yig'ilishi buzilgan.

Xatolar haqidagi dastlabki shikoyatlarga javoban, GitHub dastlab arxivlar uchun doimiy nazorat summalari hech qachon kafolatlanmaganligini ta'kidladi. Ta'sir qilingan qurilish tizimlarining funksionalligini tiklash uchun turli ekotizimlardagi metama'lumotlarni yangilash uchun katta hajmdagi ish talab qilinishi ko'rsatilganidan so'ng, GitHub vakillari o'z fikrlarini o'zgartirdilar, o'zgarishlarni qaytarib oldilar va arxivlarni yaratishning eski usulini qaytarishdi.

Git ishlab chiquvchilari hali bir qarorga kelmagan va faqat mumkin bo'lgan harakatlarni muhokama qilmoqda. Ko'rib chiqilgan variantlar orasida standart gzip yordam dasturidan foydalanishga qaytish kiradi; eski arxivlar bilan moslikni saqlash uchun "--stable" bayrog'ini qo'shish; o'rnatilgan dasturni alohida arxiv formatiga ulash; eski topshiriqlar uchun gzip yordam dasturidan va ma'lum bir sanadan boshlab topshiriqlar uchun inline amalga oshirishdan foydalanish; faqat siqilmagan arxivlar uchun format barqarorligini kafolatlaydi.

Qaror qabul qilishning qiyinligi tashqi yordamchi dasturga qo'ng'iroqqa qaytish nazorat summasining o'zgarmasligi muammosini to'liq hal qilmasligi bilan izohlanadi, chunki tashqi gzip dasturining o'zgarishi arxiv formatining o'zgarishiga ham olib kelishi mumkin. Hozirgi vaqtda eski xatti-harakatni sukut bo'yicha qaytaradigan (tashqi gzip yordam dasturini chaqirish) va tizimda gzip yordam dasturi mavjud bo'lmaganda o'rnatilgan dasturni ishlatadigan yamoqlar to'plami ko'rib chiqish uchun taklif qilingan. Yamalar, shuningdek, hujjatlarga "git arxivi" chiqishining barqarorligi kafolatlanmaganligi va format kelajakda o'zgarishi mumkinligi haqida eslatib o'tadi.

Manba: opennet.ru

a Izoh qo'shish