نتائج مشروع دبيان النهائية الكثيرة تنشأ من عمل مطوري دبيان الخبراء ومن عمل المطورين الفردي أو الجماعي على حزم دبيان، ومن ملاحظات المستخدمين.
Debian developers have various responsibilities, and as official project members, they have great influence on the direction the project takes. A Debian developer is generally responsible for at least one package, but according to their available time and desire, they are free to become involved in numerous teams, thus acquiring more responsibilities within the project.
Package maintenance is a relatively regimented activity, very documented or even regulated. It must, in effect, comply with all the standards established by the
Debian Policy. Fortunately, there are many tools that facilitate the maintainer's work. The developer can, thus, focus on the specifics of their package and on more complex tasks, such as squashing bugs.
The Policy, an essential element of the Debian Project, establishes the norms ensuring both the quality of the packages and perfect interoperability of the distribution. Thanks to this Policy, Debian remains consistent despite its gigantic size. This Policy is not fixed in stone, but continuously evolves thanks to proposals formulated on the
debian-policy@lists.debian.org
mailing list. Amendments that are agreed upon by all interested parties are accepted and applied to the text by a small group of maintainers who have no editorial responsibility (they only include the modifications agreed upon by the Debian developers that are members of the above-mentioned list). You can read current amendment proposals on the bug tracking system:
توفر السياسة تغطية معتبرة لمختلف نواحي عملية التحزيم التقنية. كما يسبب حجم المشروع أيضاً مشاكل تنظيمية؛ يعالج دستور دبيان (Debian Constitution) هذه القضايا. يحدد الدستور نظام وأساليب اتخاذ القرار. بكلمات أخرى، يحدد نظام حكم رسمي.
يُعرِّف هذا الدستور عدداً من الأدوار والمناصب، بالإضافة لمسؤوليات وصلاحيات كل واحد منها. من الجدير بالملاحظة أن مطوري دبيان يملكون دوماً السلطة النهائية في اتخاذ القرار عبر التصويت على استفتاء عام، حيث يجب الحصول على أغلبية مطلقة تبلغ ثلاثة أرباع (75%) الأصوات لإجراء التعديلات الكبيرة (كالتعديلات التي تؤثر على الوثائق المؤسِّسة). لكن المطورين ينتخبون سنوياً ”قائداً“ ليمثلهم في اللقاءات، ويضمن التنظيم الداخلي بين الفرق المختلفة. هذه الانتخابات هي فترة نقاشات محتدمة دائماً. منصب القائد هذا غير معرّف في أي مستند: يقترح المرشحون لهذا المنصب عادة تعريفهم الخاص لهذا الموقع. عملياً، تشمل أدوار القائد العمل كممثل إعلامي للمشروع، والتنسيق بين الفرق ”الداخلية“، وإرشاد المشروع بشكل عام، وذلك بما يرضي المطورين: فآراء قائد دبيان (DPL) تعكس وجهة نظر أغلبية أعضاء المشروع ضمنياً.
يتمتع القائد بسلطة حقيقية؛ فتصويته يرجح كفة التصويتات المتعادلة، ويستطيع اتخاذ أي قرار في أي موضوع لا يقع ضمن صلاحية أحد ويمكنه تفويض جزء من مسؤولياته للآخرين.
Since its inception, the project has been successively led by Ian Murdock, Bruce Perens, Ian Jackson, Wichert Akkerman, Ben Collins, Bdale Garbee, Martin Michlmayr, Branden Robinson, Anthony Towns, Sam Hocevar, Steve McIntyre, Stefano Zacchiroli, Lucas Nussbaum, Mehdi Dogguy, Chris Lamb and Sam Hartman.
كما يعرف الدستور أيضاً ”لجنة تقنية“. دور هذه اللجنة الرئيسي هو البت في القضايا التقنية عندما لا يصل المطورون أصحاب العلاقة إلى اتفاق فيما بينهم. فيما عدا ذلك، تلعب اللجنة دوراً استشارياً لأي مطور لا يستطيع اتخاذ قرار يقع ضمن مسؤولياته. من المهم أن تلاحظ أنهم يتدخلون فقط عندما يدعوهم أحد أطراف العلاقة إلى التدخل.
أخيراً، يُعِّرف الدستور منصب ”سكرتاريا المشروع“، المسؤول عن تنظيم الأصوات في الانتخابات المختلفة والاستفتاءات العامة.
The “general resolution” procedure is fully detailed in the constitution, from the initial discussion period to the final counting of votes. The most interesting aspect of that process is that when it comes to an actual vote, developers have to rank the different ballot options between them and the winner is selected with a
Condorcet method (more specifically, the Schulze method). For further details see:
حتى لو كان هذا الدستور يقيم قواعد الديموقراطية، إلا أن الواقع اليومي يختلف كثيراً: يتبع دبيان طبيعياً قواعد الفعلوقراطية في البرمجيات الحرة: فالذي يفعل الأشياء هو من يقرر طريقة عملها. يمكن هدر وقت طويل في الجدال حول كفاءة الأساليب المختلفة لحل مشكلة ما؛ سيكون الحل الذي يقع عليه الاختيار هو أول حل يعمل بشكل صحيح ومرضٍ... وهذا الحل هو نتيجة الوقت الذي يبذله أحد الأشخاص الفاعلين في العمل.
هذه هي الطريقة الوحيدة للترقي في الرتب: افعل شيئاً مفيداً وأظهر أن عملك جيد. تعمل العديد من فرق دبيان ”الإدارية“ بطريقة الاستقطاب المشترك (co-optation، أي أن الأعضاء الجدد ينضمون بدعوة من الأعضاء الحاليين في الفريق)، حيث يفضل المتطوعون الذين كانت لهم مساهمات فعالة وأثبتوا جدارتهم. العمل الذي تعمله هذه الفرق علني بطبيعته، وهذا يسمح للمساهمين الجدد بالمراقبة والبدء بالمساعدة دون الحاجة لأي امتيازات خاصة. لذلك يوصف دبيان غالباً ”بالميريتوقراطية meritocracy“.
تضمن هذا الطريقة الفعالة في العمل كفاءة المساهمين في فرق دبيان ”المفتاحية“. هذه الطريقة ليست مثالية طبعاً ويظهر أحياناً من يرفض أسلوب العمل هذا. قد يبدو أن اختيار المطورين المقبولين في الفرق كأنه عشوائي قليلاً، أو غير منصف. بالإضافة لذلك، يختلف تعريف الخدمة المتوقعة من هذه الفرق بين الأفراد. بالنسبة لبعض الناس، لا يمكن أبداً أن يقبلوا بالانتظار ثمانية أيام لإضافة حزمة دبيان جديدة، بينما ينتظر آخرون بصبر لثلاثة أسابيع دون أن يشتكوا. لذلك، تظهر شكاوى منتظمة تتذمر من ”جودة خدمة“ بعض الفرق.
1.3.2. الدور الفاعل للمستخدمين
One might wonder if it is relevant to mention the users among those who work within the Debian project, but the answer is a definite yes: they play a critical role in the project. Far from being “passive”, some users run development versions of Debian and regularly file bug reports to indicate problems. Others go even further and submit ideas for improvements, by filing a bug report with a severity level of “wishlist”, or even submit corrections to the source code, called “patches” (see
قسم 1.3.2.3, “Sending fixes”).
The fundamental tool for submitting bugs in Debian is the Debian Bug Tracking System (Debian BTS), which is used by large parts of the project. The public part (the web interface) allows users to view all bugs reported, with the option to display a sorted list of bugs selected according to various criteria, such as: affected package, severity, status, address of the reporter, address of the maintainer in charge of it, tag, etc. It is also possible to browse the complete historical listing of all discussions regarding each of the bugs.
نظام تتبع علل دبيان (Debian Bug Tracking System، أو Debian BTS) يستخدم في أجزاء كبيرة من المشروع. يسمح القسم العام (واجهة الوب) للمستخدمين باستعراض جميع تقارير العلل، مع إمكانية عرض قوائم علل مرتّبة حسب معايير متنوعة، مثلاً: حسب الحزمة المتأثرة، أو مستوى الخطورة، أو الحالة، عنوان مبلغ العلة، عنوان المشرف المسؤول عنها، أو حسب وسم معين، الخ. كما يمكن أيضاً تصفح المحفوظات القديمة الكاملة لجميع النقاشات حول كل واحدة من العلل.
تحت السطح، يعتمد نظام BTS على البريد الإلكتروني: كل المعلومات التي يخزنها تأتي من رسائل يرسلها الأشخاص أصحاب العلاقة. مثلاً، أي رسالة إلكترونية إلى
12345@bugs.debian.org
سوف تُضاف إلى محفوظات العلة رقم 12345. يحق لأصحاب السلطة ”إغلاق“ العلة عبر كتابة رسالة تبين أسباب قرار الإغلاق إلى
12345-done@bugs.debian.org
(تُغلَق العلة عندما تُحل المشكلة المطروحة أو عندما يتبين أنها ليست مشكلة فعلية). أما التبليغ عن العلل الجديدة فيكون بإرسال رسالة إلكترونية إلى
submit@bugs.debian.org
توافق الصيغة الخاصة التي تُعرِّف الحزمة التي تحوي العلة. يسمح العنوان
control@bugs.debian.org
بتحرير جميع ”المعلومات الفوقية“ (meta-information) لعلة ما.
The Debian BTS has other functional features, as well, such as the use of tags for labeling bugs. For more information, see
Users can also use the command line to send bug reports on a Debian package with the reportbug
tool. It helps making sure the bug in question hasn't already been filed, thus preventing redundancy in the system. It reminds the user of the definitions of the severity levels, for the report to be as accurate as possible (the developer can always fine-tune these parameters later, if needed). It helps writing a complete bug report without the user needing to know the precise syntax, by writing it and allowing the user to edit it. This report will then be sent via an e-mail server (by default, a remote one run by Debian, but reportbug
can also use a local server).
تستهدف هذه الأداة النسخ التطويرية أولاً، حيث تصحح العلل هناك. بطبيعة الحال، التغييرات في النسخة المستقرة من دبيان غير محبذة، مع بعض الاستثناءات القليلة بالنسبة للتحديثات الأمنية أو التحديثات المهمة الأخرى (إذا لم تكن الحزمة تعمل مطلقاً على سبيل المثال). أما تصحيحات العلل الصغيرة في حزم دبيان فعليها الانتظار حتى إصدار النسخة المستقرة التالية إذن.
1.3.2.2. Translation and documentation
Additionally, numerous satisfied users of the service offered by Debian like to make a contribution of their own to the project. As not everyone has appropriate levels of expertise in programming, they may choose to assist with the translation and review of documentation. There are language-specific mailing lists to coordinate this work.
More advanced users might be able to provide a fix to a program sending a patch.
الرقعة هي ملف يحدد التغييرات التي ستجرى على ملف مرجعي واحد أو أكثر. بكلمات أدق، سيحوي هذا الملف مجموعة سطور يجب إزالتها أو إضافتها إلى الكود، بالإضافة إلى سطور مأخوذة من النص المرجعي (أحياناً) توضع التعديلات في سياقها (هذا يسمح بمعرفة موقع التغييرات إذا تغيرت أرقام السطور).
الرقعة هي ملف يحدد التغييرات التي ستجرى على ملف مرجعي واحد أو أكثر. بكلمات أدق، سيحوي هذا الملف مجموعة سطور يجب إزالتها أو إضافتها إلى الكود، بالإضافة إلى سطور مأخوذة من النص المرجعي (أحياناً) توضع التعديلات في سياقها (هذا يسمح بمعرفة موقع التغييرات إذا تغيرت أرقام السطور).
تدعى الأداة المستخدمة لتطبيق التعديلات المعطاة في ملف من هذا النوع بالاسم patch
. أما الأداة التي تنشئ هذه الملفات فهي diff
، وهي تستخدم كما يلي:
$
diff -u file.old file.new >file.patch
يحوي الملف file.patch
التعليمات اللازمة لتحويل محتوى file.old
إلى file.new
. يمكننا إرساله إلى شخص آخر، وعندها سيتمكن من استخدامه لإعادة توليد file.new
من الملفين الآخرين، كالتالي:
$
patch -p0 file.old <file.patch
أصبح الملف file.old
مماثلاً للملف file.new
الآن.
1.3.2.4. Other ways of contributing
لا يساعد المستخدمون بعضهم (وغيرهم) على حل المشاكل التقنية التي تؤثر عليهم بشكل مباشر وحسب، بل يناقشون أيضاً أفضل السبل للمساهمة في مشروع دبيان ومساعدته على المسير قدماً — وتنتج عن هذه النقاشات مقترحات لتحسينات في المشروع غالباً.
بما أن دبيان لا ينفق الأموال على أي نوع من حملات الترويج الإعلانية، يلعب مستخدموه دوراً أساسياً في انتشاره، وتزداد شهرته عبر التناقل الشفهي.
This method works quite well, since Debian fans are found at all levels of the free software community: from install parties (workshops where seasoned users assist newcomers to install the system) organized by local LUGs or “Linux User Groups”, to association booths at large tech conventions dealing with Linux, etc.
Volunteers make posters, brochures, stickers, and other useful promotional materials for the project, which they make available to everyone, and which Debian provides freely on its website and on its wiki:
1.3.3. الفرق والمشاريع الفرعية
دبيان مُنظّم ‒منذ البداية‒ حول مبدأ الحزم المصدرية، ولكل منها مشرف خاص أو مجموعة مشرفين. ظهرت فرق عمل متعددة مع الزمن، تعمل على إدارة البنية التحتية، وإدارة المهام التي لا تتعلق بأي حزمة على وجه التحديد (ضمان الجودة، سياسة دبيان، المُثَبِّت، الخ)، آخرها سلسلة من الفرق التي تنمو حول المشاريع الفرعية.
1.3.3.1. المشاريع الفرعية الحالية
لكل واحد دبيان خاص به! المشروع الفرعي هو مجموعة من المتطوعين المهتمين بتطويع دبيان ليلائم حاجات معينة. وفيما عدا اختيار مجموعة فرعية من البرامج المخصصة لمجال معين (التعليم، الطب، إنشاء الوسائط المتعددة، الخ)، تهتم المشاريع الفرعية أيضاً بتحسين الحزم السابقة، وتحزيم البرامج الناقصة، وتعديل المُثبِّت، وإنشاء وثائق خاصة، وغيرها.
هذه مجموعة صغيرة من المشاريع الفرعية الحالية:
Debian Jr., by Ben Armstrong, offering an appealing and easy to use Debian system for children;
Debian Edu, by Petter Reinholdtsen, focused on the creation of a specialized distribution for the academic world;
Debian Med (دبيان طب)، من Andreas Tille، مخصصة للحقل الطبي؛
Debian-Multimedia (دبيان ملتيميديا)، التي تتعامل مع إنشاء الوسائط المتعددة؛
Debian GIS التي تهتم بتطبيقات نظم المعلومات الجغرافية (Geographical Inforamtion Systems) ومستخدميها؛
Debian Accessibility, improving Debian to match the requirements of people with disabilities;
Debian Science, finally, working on providing researchers and scientists a better experience using Debian.
DebiChem, targeted at Chemistry, provides chemical suites and programs.
The number of projects will most likely continue to grow with time and improved perception of the advantages of Debian sub-projects. Fully supported by the existing Debian infrastructure, they can, in effect, focus on work with real added value, without worrying about remaining synchronized with Debian, since they are developed within the project.
معظم الفرق الإدارية مغلقة ولا تعين أحداً جديداً إلا عبر الاستقطاب المشترك. أفضل السبل للانضمام إلى أحدها هو مساعدة أحد الأعضاء الحاليين بذكاء، موضحاً أنك تفهم أهدافهم وأساليبهم في العمل.
ftpmasters مسؤولون عن أرشيف حزم دبيان الرسمي. يتولى هذا الفريق صيانة البرنامج الذي يستقبل الحزم التي يرسلها المطورون ويخزنها آلياً على المخدم المرجعي (ftp-master.debian.org
)، بعد إجراء بعض الفحوصات.
كما يعملون أيضاً على التحقق من رخص الحزم الجديدة، حتى يتأكدوا أن دبيان يستطيع توزيعها قبل إضافتها إلى مجموعة الحزم السابقة. عندما يرغب أحد المطورين بإزالة حزمة، عليه مراسلة هذا الفريق عبر نظام تتبع العلل و”الحزمة-الكاذبة“ (pseudo-package) ftp.debian.org.
فريق
Debian System Administrators (مديرو نظم دبيان، DSA) (
debian-admin@lists.debian.org
)، كما هو واضح، مسؤول عن إدارة العديد من المخدمات التي يستخدمها المشروع. يضمن هذا الفريق العمل الأفضل لكل الخدمات الأساسية (DNS، وب، بريد إلكتروني، صَدَفات أوامر، الخ)، وتثبيت البرمجيات التي يطلبها مطورو دبيان، ويتخذون بكل الاحتياطات الأمنية.
يدير listmasters مخدم البريد الإلكتروني الذي يدير القوائم البريدية. ينشئ هذا الفريق القوائم الجديدة، يعالج الإرتدادات (إشعارات فشل الإرسال)، ويتابع مرشحات الرسائل الدعائية (الرسائل غير المرغوبة).
Each specific service has its own administration team, generally composed of volunteers who have installed it (and also frequently programmed the corresponding tools themselves). This is the case of the bug tracking system (BTS), the package tracker,
salsa.debian.org
(GitLab server, see sidebar
TOOL GitLab, Git repository hosting and much more), the services available on
qa.debian.org
,
lintian.debian.org
,
buildd.debian.org
,
cdimage.debian.org
, etc.
1.3.3.3. فرق التطوير، فرق عابرة
بعكس الفرق الإدارية، تكون فرق التطوير مفتوحة على مصراعيها، حتى للمساهمين الخارجيين. حتى لو يكن دور دبيان إنشاء البرمجيات، إلا أن المشروع يحتاج لبعض البرامج الخاصة لتحقيق أهدافه. تستخدم هذه الأدوات طبعاً الأساليب المُجرّبة في أماكن أخرى في عالم البرمجيات الحرة، وتُطوّر تحت رخص حرة.
طوَّر دبيان بعض البرمجيات الخاصة به، لكن بعض البرامج أخذت أدواراً رئيسية وامتدت شهرتها خارج نطاق المشروع. من الأمثلة الجيدة dpkg
، برنامج إدارة حزم دبيان (اسمه في الواقع اختصار للعبارة Debian PacKaGe، ويلفظ عموماً ”dee-package“)، وapt
، أداة تثبيت آلية لأي حزمة دبيان، مع اعتمادياتها، وضمان تماسك النظام بعد الترقية (اسمها اختصار للعبارة Advanced Package Tool). إلا أن فرق هذه الأدوات أصغر بكثير على أي حال، بسبب الحاجة لمستوى عالٍ نسبياً في البرمجة لفهم عمليات هذا النوع من البرامج بشكل كامل.
لعل أهم فريق هو الفريق المسؤول عن برنامج تثبيت دبيان،
debian-installer
، فقد بذل جهوداً جبارة منذ تأسيسه في 2001. لقد احتاج الفريق لمساهمين كثر، لأن كتابة برنامج واحد يستطيع تثبيت دبيان على دزينة معماريات مختلفة ليست سهلة. لكل معمارية طريقتها الخاصة في الإقلاع ومحمّل إقلاع خاص بها. يُنظّم كل هذا العمل على القائمة البريدية
debian-boot@lists.debian.org
، تحت قيادة Cyril Brulebois.
فريق برنامج debian-cd
(الصغير جداً) له هدف معتدل أكثر لكثير: هناك مساهمين ”صغار“ كثر كل منه مسؤول عن معماريته، لأن المطور الرئيسي لا يمكن أن يُلمَّ بجميع التعقيدات الصغيرة، ولا يعرف بدقة طريقة بدء المُثبِّت من القرص الليزري على كل معمارية.