
OpenBSD لم تقبل منفذ uutils المكتوب بـ Rust، وGNU coreutils يبقى في الشجرة
في قائمة بريد OpenBSD ports لم يُقبل اقتراح إضافة uutils المكتوب بـ Rust كبديل لأدوات GNU. ووصف Theo de Raadt أي محاولة استبدال بأنها طريق مسدود تمامًا.
في 20 سبتمبر 2026، لم تقبل قائمة بريد OpenBSD ports اقتراح إضافة uutils المكتوب بـ Rust كبديل لأدوات GNU. أعلن مؤسس المشروع Theo de Raadt أن أي استبدال لمنفذ GPL coreutils هو طريق مسدود تمامًا.
ما الذي اقتُرح
قدّم David Uhden Collado منفذ sysutils/uutils كمنفذ متعدد الحزم: تثبّت الحزمة الوصفية uutils-coreutils وuutils-findutils وuutils-diffutils وuutils-grep وuutils-awk وuutils-sed وuutils-tar، بينما يستند جزء coreutils إلى uutils/coreutils 0.12.0. كان الهدف أن تصبح هذه التطبيقات بديلاً لمنافذ GNU دون تغيير كود المنافذ التابعة: يثبّت uutils-coreutils الأوامر نفسها بالبادئة g مثل sysutils/coreutils، كروابط رمزية إلى ملف ثنائي multicall، وتتعارض كل حزمة مع تطبيق GNU المقابل وتعلن منفذ GNU كـ @pkgpath ثانوي.
اعترف المؤلف بأن التوافق ليس كاملاً: لا يمتلك uutils-diffutils الأمرين diff3 وsdiff، بينما uutils-awk هو أساسًا تطبيق POSIX.
كيف ردّوا
كتب Stuart Henderson أنه لا يعتبر هذا نهجًا صالحًا لـ ports. ردّ المؤلف بأنه مهتم بإعادة الكتابة بـ Rust، وأن Ubuntu 26.10 تبنّت بالفعل uutils coreutils لأن المشروع بلغ نضجًا مقبولاً، وأن رخصتهم MIT المتساهلة تتناسب جيدًا مع OpenBSD.
كان رد فعل Theo de Raadt جملة واحدة: „Smells like agenda.“ برأيه، لا يحتاج المستخدمون إلى مجموعة ثانية من الأدوات ذات الرخصة المتساهلة تتصرف بشكل مختلف قليلاً فقط عن الموجودة: إذا استخدم خط أنابيب الأمر ls الخاص بـ OpenBSD مع sed أو cut الخاص بـ OpenBSD واعتمد بالخطأ على خرج غير قياسي، فإن استبدال ذلك ls بـ ls آخر سيؤدي إلى تصادم سلوكيات الأدوات غير القياسية. وعند ذكر Rust أضاف: „Oh, because it is written in Rust. Your agenda is showing.“
لماذا يبقى GNU coreutils
ثم شرح de Raadt موقف المشروع: يدعم coreutils أساسًا بيئات بناء حساسة لسلوك GNU ويسهّل بناء المنافذ المعقدة؛ الهدف ليس أن يكون ملائمًا للعمل اليومي، حيث ينبغي استخدام أدوات OpenBSD الخاصة بالطرق القياسية. ولأن بيئة البناء تعتمد على أقصى استقرار لـ coreutils بطيء التغير، فإن أي تغيير في السلوك سيستهلك وقت مطوري ports.
قال Stuart Henderson إنه لا يرى مشكلة إذا كانت الأدوات في ports لمن يريدها وكان هناك دعم من المطورين لإدخالها إلى الشجرة، لكنه وضع شرطين: يجب ألا تتعارض مع أدوات GNU، لذا تحتاج إلى بادئة أو دليل مختلف، ولا يمكن استخدامها كتبعية لمنافذ أخرى بدلاً من أدوات GNU، لأن Rust تقيّد المعماريات أكثر من اللازم.
نتيجة لذلك، الوضع الحالي دون تغيير: المنافذ التي تتطلب سلوك GNU لا تزال تعتمد على GNU coreutils برخصة GPL، ولم يُقبل منفذ uutils في الشجرة.
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.