نتائج مشروع دبيان النهائية الكثيرة تنشأ من عمل مطوري دبيان الخبراء ومن عمل المطورين الفردي أو الجماعي على حزم دبيان، ومن ملاحظات المستخدمين.
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 and projects, 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
[email protected]
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:
The Policy provides considerable coverage of the technical aspects of packaging. The size of the project also raises organizational problems; these are dealt with by the Debian Constitution, which establishes a structure and means for decision making. In other words, a formal governance system.
This constitution defines a certain number of roles and positions, plus responsibilities and authorities for each. It is particularly worth noting that Debian developers always have ultimate decision making authority by a vote of general resolution, wherein a qualified majority of three quarters (75%) of votes is required for significant alterations to be made (such as those with an impact on the Foundation Documents). However, developers annually elect a “leader” to represent them in meetings, and ensure internal coordination between varying teams. This election is always a period of intense discussions. The Debian Project leader's (
DPL) role is not formally defined by any document: candidates for this post usually propose their own definition of the position. In practice, the leader's roles include serving as a representative to the media, coordinating between “internal” teams, and providing overall guidance to the project, within which the developers can relate: the views of the DPL are implicitly approved by the majority of project members.
يتمتع القائد بسلطة حقيقية؛ فتصويته يرجح كفة التصويتات المتعادلة، ويستطيع اتخاذ أي قرار في أي موضوع لا يقع ضمن صلاحية أحد ويمكنه تفويض جزء من مسؤولياته للآخرين.
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, Neill McGovern, Mehdi Dogguy, Chris Lamb, Sam Hartman, and Jonathan Carter.
كما يعرف الدستور أيضاً ”لجنة تقنية“. دور هذه اللجنة الرئيسي هو البت في القضايا التقنية عندما لا يصل المطورون أصحاب العلاقة إلى اتفاق فيما بينهم. فيما عدا ذلك، تلعب اللجنة دوراً استشارياً لأي مطور لا يستطيع اتخاذ قرار يقع ضمن مسؤولياته. من المهم أن تلاحظ أنهم يتدخلون فقط عندما يدعوهم أحد أطراف العلاقة إلى التدخل.
أخيراً، يُعِّرف الدستور منصب ”سكرتاريا المشروع“، المسؤول عن تنظيم الأصوات في الانتخابات المختلفة والاستفتاءات العامة.
The “general resolution” (
GR) 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:
Even if this constitution establishes a semblance of democracy, the daily reality is quite different: Debian naturally follows the free software rules of the do-ocracy: the one who does things gets to decide how to do them. A lot of time can be wasted debating the respective merits of various ways to approach a problem; the chosen solution will be the first one that is both functional and satisfying… which will come out of the time that a competent person put into it.
هذه هي الطريقة الوحيدة للترقي في الرتب: افعل شيئاً مفيداً وأظهر أن عملك جيد. تعمل العديد من فرق دبيان ”الإدارية“ بطريقة الاستقطاب المشترك (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.
تحت السطح، يعتمد نظام BTS على البريد الإلكتروني: كل المعلومات التي يخزنها تأتي من رسائل يرسلها الأشخاص أصحاب العلاقة. مثلاً، أي رسالة إلكترونية إلى
[email protected]
سوف تُضاف إلى محفوظات العلة رقم 12345. يحق لأصحاب السلطة ”إغلاق“ العلة عبر كتابة رسالة تبين أسباب قرار الإغلاق إلى
[email protected]
(تُغلَق العلة عندما تُحل المشكلة المطروحة أو عندما يتبين أنها ليست مشكلة فعلية). أما التبليغ عن العلل الجديدة فيكون بإرسال رسالة إلكترونية إلى
[email protected]
توافق الصيغة الخاصة التي تُعرِّف الحزمة التي تحوي العلة. يسمح العنوان
[email protected]
بتحرير جميع ”المعلومات الفوقية“ (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 by 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
الآن.
In practice, most software is currently maintained in Git repositories and contributors are thus more likely to use git
to retrieve the source code and propose changes. git diff
will generate a file in the same format as what diff -u
would do and git apply
can do the same as patch
.
While the output of git diff
is a file that can be shared with other developers, there are usually better ways to submit changes. If the developers prefer to get patches by email, they usually want patches generated with git format-patch
so that they can be directly integrated in the repository with git am
. This preserves commits meta-information and makes it possible to share multiple commits at once.
This email-based workflow is still popular but it tends to be replaced by the usage of merge requests (or pull requests) whenever the software is hosted in a platform like GitHub or GitLab — and Debian is using GitLab on its salsa.debian.org
server. On those systems, once you have created an account, you fork the repository, effectively creating a copy of the repository in your own account, and you can then clone that repository and push your own changes in it. From there, the web interface will suggest you to submit a merge request, notifying the developers of your changes, making it easy for them to review and accept your changes with a single click.
1.3.2.4. Other ways of contributing
All of these contribution mechanisms are made more efficient by users' behavior. Far from being a collection of isolated persons, users are a true community within which numerous exchanges take place. We especially note the impressive activity on the user discussion mailing list,
[email protected]
(
فصل 7, حل المشكلات والعثور على المعلومات discusses this in greater detail).
لا يساعد المستخدمون بعضهم (وغيرهم) على حل المشاكل التقنية التي تؤثر عليهم بشكل مباشر وحسب، بل يناقشون أيضاً أفضل السبل للمساهمة في مشروع دبيان ومساعدته على المسير قدماً — وتنتج عن هذه النقاشات مقترحات لتحسينات في المشروع غالباً.
بما أن دبيان لا ينفق الأموال على أي نوع من حملات الترويج الإعلانية، يلعب مستخدموه دوراً أساسياً في انتشاره، وتزداد شهرته عبر التناقل الشفهي.
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. Teams, Blends, and Sub-Projects
From the start, Debian has been organized around the concept of source packages, each with its maintainer or group of maintainers. Many work teams have emerged over time, ensuring administration of the infrastructure, management of tasks not specific to any package in particular (quality assurance, Debian Policy, installer, etc.), with the latest series of teams growing up around sub-projects and blends.
1.3.3.1. Existing Debian Sub-Projects and Blends
To each their own Debian! A sub-project is a group of volunteers interested in adapting Debian to specific needs. Beyond the selection of a sub-group of programs intended for a particular domain (education, medicine, multimedia creation, etc.), sub-projects are also involved in improving existing packages, packaging missing software, adapting the installer, creating specific documentation, and more. While a "blend" might not be exactly the same, it works quite similar and also tries to provide a solution for groups of people intending to use Debian for a particular domain. One could say that "Debian Pure Blends" is the successor of sub-projects.
Here is a small selection of current released Debian Pure Blends:
Debian Junior, 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 and educational world;
Debian Med (دبيان طب)، من Andreas Tille، مخصصة للحقل الطبي؛
Debian Multimedia, which deals with audio and multimedia work;
Debian GIS, which takes care of Geographical Information Systems applications and users;
Debian Astro, for both professionals and hobby astronomers;
Debian Science, working on providing researchers and scientists a better experience using Debian;
Freedombox, made to develop, design and promote personal servers running free software for private, personal communications;
Debian Games, providing games in Debian from arcade and adventure to simulation and strategy;
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 Pure Blends. 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.
Most administrative teams are relatively closed and recruit only by co-optation. The best means to become a part of one is to intelligently assist the current members, demonstrating that you have understood their objectives and methods of operation.
The ftpmasters are in charge of the official archive of Debian packages. They maintain the program that receives packages sent by developers and automatically stores them, after some checks, on the reference server (ftp-master.debian.org
).
كما يعملون أيضاً على التحقق من رخص الحزم الجديدة، حتى يتأكدوا أن دبيان يستطيع توزيعها قبل إضافتها إلى مجموعة الحزم السابقة. عندما يرغب أحد المطورين بإزالة حزمة، عليه مراسلة هذا الفريق عبر نظام تتبع العلل و”الحزمة-الكاذبة“ (pseudo-package) ftp.debian.org.
The
Debian System Administrators (
DSA) team (
[email protected]
), as one might expect, is responsible for system administration of the many servers used by the project. They ensure optimal functioning of all base services (DNS, Web, e-mail, shell, etc.), install software requested by Debian developers, and take all precautions in regards to security.
يدير 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 for 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). إلا أن فرق هذه الأدوات أصغر بكثير على أي حال، بسبب الحاجة لمستوى عالٍ نسبياً في البرمجة لفهم عمليات هذا النوع من البرامج بشكل كامل.
The most important team is probably that for the Debian installation program,
debian-installer
, which has accomplished a work of momentous proportions since its conception in 2001. Numerous contributors were needed, since it is difficult to write a single program able to install Debian on a dozen different architectures. Each one has its own mechanism for booting and its own bootloader. All of this work is coordinated on the
[email protected]
mailing list, under the direction of Cyril Brulebois.
فريق برنامج debian-cd
(الصغير جداً) له هدف معتدل أكثر لكثير: هناك مساهمين ”صغار“ كثر كل منه مسؤول عن معماريته، لأن المطور الرئيسي لا يمكن أن يُلمَّ بجميع التعقيدات الصغيرة، ولا يعرف بدقة طريقة بدء المُثبِّت من القرص الليزري على كل معمارية.
هناك عدد من الفرق تحتاج أن تتعاون مع غيرها في عملية التحزيم: تحاول
[email protected]
مثلاً، ضمان الجودة على كل المستويات في مشروع دبيان. وتطور قائمة
[email protected]
سياسة دبيان اعتماداً على المقترحات التي ترد من كل مكان. يُترجم كل فريق مسؤول عن معمارية ما (
debian-architecture@lists.debian.org
) كل الحزم، ويعدلها بما يناسب معماريته الخاصة، إذا اقتضى الأمر.
بينما تعمل فرق أخرى على إدارة أهم الحزم حتى تضمن صيانتها دون إلقاء مسؤوليات ثقيلة جداً على الأكتاف نفسها؛ هذه حالة مكتبة C والقائمة
[email protected]
، ومترجم C على القائمة
[email protected]
، أو Xorg على
[email protected]
(تعرف هذه المجموعة باسم X Strike Force).