GitHub پر آرکائیو چیکسم میں تبدیلیوں کی وجہ سے بلڈ سسٹم میں ناکامی۔

GitHub نے ریلیز کے صفحات پر خود بخود پیدا ہونے والے ".tar.gz" اور ".tgz" آرکائیوز کو بنانے کے طریقے کو تبدیل کر دیا، جس کی وجہ سے ان کے چیکسم میں تبدیلیاں ہوئیں اور خودکار بلڈ سسٹمز میں بڑے پیمانے پر ناکامی ہوئی جو کہ سالمیت کی تصدیق کرنے کے لیے GitHub سے ڈاؤن لوڈ کیے گئے آرکائیوز کی جانچ پڑتال کرتے ہیں۔ ذخیرہ شدہ چیکسم، مثال کے طور پر، پیکج میٹا ڈیٹا میں یا بلڈ اسکرپٹس میں رکھا گیا ہے۔

ریلیز 2.38 کے ساتھ شروع کرتے ہوئے، گٹ ٹول کٹ میں پہلے سے طے شدہ طور پر gzip کا بلٹ ان نفاذ شامل تھا، جس نے آپریٹنگ سسٹمز میں اس کمپریشن طریقہ کے لیے تعاون کو یکجا کرنا اور آرکائیو تخلیق کی کارکردگی کو بہتر بنانا ممکن بنایا۔ GitHub نے اپنے انفراسٹرکچر میں گٹ کے ورژن کو اپ ڈیٹ کرنے کے بعد تبدیلی کو اٹھایا۔ مسئلہ اس حقیقت کی وجہ سے پیدا ہوا کہ بلٹ ان zlib-based gzip نفاذ کے ذریعہ تیار کردہ کمپریسڈ آرکائیوز gzip یوٹیلیٹی کے ذریعہ بنائے گئے آرکائیوز سے بائنری مختلف ہیں، جس کے نتیجے میں گٹ کے مختلف ورژنز کے ذریعہ بنائے گئے آرکائیوز کے لیے مختلف چیکسمس ہوتے ہیں۔ "git archive" کمانڈ۔

اس کے مطابق، گٹ ہب میں گٹ کو اپ ڈیٹ کرنے کے بعد، ریلیز کے صفحات پر قدرے مختلف آرکائیوز دکھائے جانے لگے، جو پرانے چیکسم کا استعمال کرتے ہوئے تصدیق پاس نہیں کرتے تھے۔ مسئلہ خود کو مختلف بلڈ سسٹمز، لگاتار انٹیگریشن سسٹمز، اور سورس کوڈ سے پیکجز بنانے کے ٹولز میں ظاہر ہوا۔ مثال کے طور پر، تقریباً 5800 FreeBSD بندرگاہوں کی اسمبلی، سورس کوڈز جن کے لیے GitHub سے ڈاؤن لوڈ کیے گئے تھے، ٹوٹ گئے تھے۔

خرابیوں کے بارے میں ابتدائی شکایات کے جواب میں، GitHub نے ابتدائی طور پر اس حقیقت کا حوالہ دیا کہ آرکائیوز کے لیے مستقل چیکسم کی ضمانت کبھی نہیں دی گئی۔ یہ ظاہر ہونے کے بعد کہ متاثرہ بلڈ سسٹمز کی فعالیت کو بحال کرنے کے لیے مختلف ماحولیاتی نظاموں میں میٹا ڈیٹا کو اپ ڈیٹ کرنے کے لیے بہت زیادہ کام کی ضرورت ہوگی، GitHub کے نمائندوں نے اپنا ارادہ بدل لیا، تبدیلی کو واپس کر دیا اور آرکائیوز بنانے کا پرانا طریقہ واپس کر دیا۔

Git ڈویلپر ابھی تک کسی فیصلے پر نہیں آئے ہیں اور صرف ممکنہ اقدامات پر بات کر رہے ہیں۔ پہلے سے طے شدہ gzip یوٹیلیٹی کو استعمال کرنے کے لیے واپس جانے والے اختیارات پر غور کیا گیا۔ پرانے آرکائیوز کے ساتھ مطابقت برقرار رکھنے کے لیے "--مستحکم" جھنڈا شامل کرنا؛ بلٹ ان نفاذ کو علیحدہ محفوظ شدہ دستاویزات کی شکل سے جوڑنا؛ پرانے کمٹ کے لیے gzip یوٹیلیٹی کا استعمال اور ایک مخصوص تاریخ سے شروع ہونے والے کمٹ کے لیے ان لائن نفاذ؛ صرف غیر کمپریسڈ آرکائیوز کے لیے فارمیٹ کے استحکام کی ضمانت دیتا ہے۔

فیصلہ کرنے میں دشواری کی وضاحت اس حقیقت سے ہوتی ہے کہ ایکسٹرنل یوٹیلیٹی کو کال پر واپس آنے سے چیکسم کی تبدیلی کا مسئلہ مکمل طور پر حل نہیں ہوتا، کیونکہ بیرونی gzip پروگرام میں تبدیلی آرکائیو فارمیٹ میں بھی تبدیلی کا باعث بن سکتی ہے۔ فی الحال، پیچ کا ایک سیٹ جائزہ لینے کے لیے تجویز کیا گیا ہے جو پرانے رویے کو بطور ڈیفالٹ واپس کرتا ہے (ایک بیرونی gzip یوٹیلیٹی کو کال کرتا ہے) اور سسٹم میں gzip یوٹیلیٹی کی عدم موجودگی میں بلٹ ان نفاذ کا استعمال کرتا ہے۔ پیچ دستاویزات میں یہ ذکر بھی شامل کرتے ہیں کہ "گٹ آرکائیو" آؤٹ پٹ کے استحکام کی ضمانت نہیں ہے اور مستقبل میں شکل بدل سکتی ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں