From 4a36ce17c8d2a3a186363fcecbaefc7251e55551 Mon Sep 17 00:00:00 2001
From: "mako@atdot.cc" <>
Date: Fri, 5 Aug 2005 09:24:21 -0400
Subject: [PATCH] Committed version of paper that was submitted to LinuxTag.
---
paper-11194.xml | 907 +++++++++++++++++++++++++++++++++++++++++++
picture-11194-01.png | Bin 0 -> 17648 bytes
2 files changed, 907 insertions(+)
create mode 100644 paper-11194.xml
create mode 100644 picture-11194-01.png
diff --git a/paper-11194.xml b/paper-11194.xml
new file mode 100644
index 0000000..dfef0f3
--- /dev/null
+++ b/paper-11194.xml
@@ -0,0 +1,907 @@
+
+
+
+
+
+ To Fork or Not To Fork
+ Lessons From Ubuntu and Debian
+
+ Benjamin
+ Mako
+ Hill
+
+ Canonical Limited
+
+
+ The Debian GNU/Linux Project
+
+
+ Software in the Public Interest, Inc.
+
+
+
+ Benjamin Mako Hill is an intellectual property
+ researcher and activist and a professional Free/Open Source
+ Software (FOSS) advocate, developer, and consultant. He is
+ active participant in the Debian Project in both technical
+ and non-technical roles and a founder of Debian-Nonprofit
+ and other Free Software projects. He is the author of the
+ Free Software Project Management HOWTO and many published
+ works on Free and Open Source Software. He currently is
+ working full time for Canonical Ltd. on Ubuntu, a new
+ Debian-based distribution.
+
+
+
+
+
+ 2005
+ Benjamin Mako Hill
+
+
+
+
+ This is where my abstract should go.
+
+
+
+ Introduction
+
+ The explosive growth of free and open source software over
+ the last decade has been mirrored by an equally explosive growth
+ in the ambitiousness of free software projects in choosing and
+ tackling problems. The free software movement approaches these
+ large problems with more code and with more expansive
+ communities than was even thinkable a decade ago. Example of
+ these massive projects include desktop environments — like
+ GNOME and KDE — and distributions like Debian.
+
+ These projects are leveraging the work of thousands of
+ programmers — both volunteer and paid — and are producing
+ millions of lines of code. Their software is being used by
+ millions of users with a diverse set of needs. This paper
+ focuses on two major effects of this situation:
+
+
+
+ The communities that free software projects — and in
+ particular large projects — serve are increasingly diverse.
+ It is becoming increasingly difficult for a single large
+ project to release any single product that can cater to all
+ of its potential users.
+
+
+ It's becoming increasingly difficult to reproduce these
+ large projects. While reproducing entire project is
+ impossible for small groups of hackers, it is often not
+ substantially easier for small groups to even track and
+ maintain a fork of a large project over time.
+
+
+
+ Taken together, these facts imply an increasingly realized
+ free software community in which programmers frequently derive
+ but where traditional forking is often untenable. "Forks," as
+ they are traditionally defined, will be improved upon.
+ Communities around large free software projects will be smarter
+ about the process of deriviation than they have been in the
+ past.
+
+ We are already seeing this with GNU/Linux distributions. New
+ distributions are rarely built from scratch today. Instead, they
+ adapted from and built on top of the work of existing projects.
+ As projects and userbases grow, these derived distributions are
+ increasingly common. Most of what I describe in this essay are
+ tools and experiences of derived distributions.
+
+ Software makers must pursue the idea of an
+ ecosystem of free software projects and
+ products that have forked but that maintain a close relationship
+ as they develop parallelly and symbiotically. To do this,
+ developers should:
+
+
+
+ Break down the process of derivation into a set of
+ different types of customization and derivation and
+ prioritize methods of derivation.
+
+
+ Create and foster social solutions to the social aspects
+ of the derivation problem.
+
+
+ Build and use new tools specifically designed to
+ coordinate development of software in the context of an
+ ecosystem of projects.
+
+
+ Distribute and utilize distributed version control tools
+ with an emphasis on maintaining differences over
+ time.
+
+
+
+ This paper is an early analysis of this set of problems. As
+ such, it is highly focused on the experience of the Ubuntu
+ project and it's existence as a derived Debian distribution. It
+ also pulls from my experience with Debian-NP and the Custom
+ Debian Distribution (CDD) community. Since I am active member of
+ both the Ubuntu and Debian-NP projects, these are areas that I
+ can discuss with some degree of knowlege and experience.
+
+
+
+ "Fork" Is A Four Letter Word
+
+ The act of taking the code for a free software project and
+ bifurcating it to create a new project is called "forking."
+ There have been a number of famous forks in free software
+ history. One of the most famous was the schism that led to the
+ parallel development of two versions of the Emacs text editor:
+ GNU Emacs and XEmacs. This schism persists to this day.
+
+ Some forks, like Emacs and XEmacs, are permanent. Others are
+ relatively sort lived. An example of this is the GCC project
+ which saw two forks — EGCS and PGCC — that both eventually
+ merged back into GCC. Forking can happen for any number of
+ reasons. Often developers on a project develop political or
+ personal differences that keep them from continuing to work
+ together. In some cases, maintainers become unresponsive and
+ other developers on the project fork the project to keep the
+ project alive in some form.
+
+ Ultimately though, most forks occur because people do not
+ agree on the features, the mechanisms, or the technology at the
+ core of a project. People have different goals, different
+ problems, and want different tools. Often, these goals, problems
+ and tools are similar up until a certain point before the need
+ to part ways becomes essential.
+
+ A fork occurs on the level of code but a fork is not merely
+ — or even primarily — technical. Many projects create
+ "branches." Branches are alternative version of a piece of
+ software used to experiment with intrusive or unstable features
+ and bug fixes. Forks are distinguished from branches both in
+ that they are often more significant departures from a technical
+ perspective (i.e., more lines of code have been changed and/or
+ the changes are more invasive or represent a more fundamental
+ rethinking of the problem) and in that they are bifurcations
+ defined in social terms. Branches involve a
+ single developer or community of developers
+ — even if it does boil down to distinct subgroups within a
+ community — whereas forks are separate projects.
+
+ Forking has historically been viewed as a bad thing in free
+ software communities: they are seen to stem from people's
+ inability to work together and have ended in reproduction of
+ work. When I published the first version of the Free Software Project
+ Management HOWTO more than four years ago, I included
+ a small subsection on forking which described forking to
+ prospective free software project leaders with this text:
+
+
+ The short version of the fork section is, don't do them.
+ Forks force developers to choose one project to work with,
+ cause nasty political divisions, and redundancy of
+ work.
+
+
+ In the best situations, a fork means
+ that two groups of people need to go on developing features and
+ doing work they would ordinarily do in addition
+ to tracking the forked project and having to
+ hand-select and apply features and fixes to their own code-base.
+ This level of monitoring and constant comparison can be
+ extremely difficult and time-consuming. The situation is not
+ helped substantially by traditional source control tools like
+ diff, patch, CVS and Subversion which are not optimized for this
+ task. The worse (and much more common) situation occurs when two
+ groups go about their work ignorant or partially ignorant of the
+ work done on the other side of the fork. Important features and
+ fixes are implemented twice — differently and
+ incompatibly.
+
+ The most substantial bright side to these drawbacks is that
+ the problems associated with forking are so severe and notorious
+ that, in most cases, the threat of a fork is enough to force
+ maintainers to work out solutions that keep the fork from
+ happening in the first place.
+
+ Before moving on, it is worth pointing out that fork is
+ something of a contested term. Because definitions of forks
+ involve, to one degree or another, statements about the
+ political, organization, and technical distinctions between
+ projects, bifurcations that many people call branches or
+ parallel trees are described as others as forks. Recently,
+ fueled by the advent of distributed version control systems, the
+ definition of what is and is not a fork has becoming
+ increasingly unclear. In part due to the same systems, the
+ benefits and drawbacks of what is increasingly problematically
+ called forking is equally debatable.
+
+
+
+
+ Case Study
+
+ In my introduction, I described how the growing scope of
+ free software projects and the rapidly increasingly size and
+ diversity of project's user communities is spearheading the need
+ for new type of derivation that avoids, as best as possible, the
+ drawbacks of forking. Nowhere is this more evident than in the
+ largest projects with the broadest scope: a small group of
+ projects that includes operating system distributions.
+
+
+
+ The Debian Project
+
+ The Debian project is a the largest, in terms of both code
+ and volunteers, free software distribution. It is the also,
+ arguably, the largest free software project in terms of the
+ number of volunteers. Debian includes more than 15,000
+ packages and the work of well over 1,000 official volunteers
+ and many more contributors without official membership status.
+ Projects without Debian's massive volunteer base cannot
+ replicate what Debian has accomplished; they can rarely hope
+ to even maintain what Debian currently has separately.
+
+ At the time that this paper was written, Distrowatch lists
+ 129 distributions based on Debian
+ Information is listed on the distrowatch homepage
+ here: http://distrowatch.com/dwres.php?resource=independence
+
+ — most of them currently active to one degree or
+ another. Each distribution represents at least one person —
+ and in most cases a community of people — who disagreed with
+ Debian's vision or direction strongly enough to want to create
+ a new distribution and who had the
+ technical capacity to follow through with this goal. Despite
+ Debian's long-standing slogan — "the universal operating
+ system" — the fact that the Debian project has become the
+ fastest growing operating system while spawning so many
+ derivatives is testament to the fact that, as far as software
+ is concerned, one size does not fit
+ all.
+ Netcraft posts yearly updates on the speed at which
+ Linux distributions are growing. The one in question can
+ be found at http://news.netcraft.com/archives/2004/01/28/debian_fastest_growing_linux_distribution.html
+
+
+
+
+ Organizationally, Debian derivers are located both inside
+ and outside of the Debian project. A group of derivers working
+ within the Debian project has labeled themselves "Custom
+ Debian Distributions" and has created nearly a dozen projects
+ customizing and deriving from Debian for specific groups of
+ users including non-profit organization, the medical
+ community, lawyers, children and many others.
+ I have spearheaded and built a derivation of Debian
+ called Debian-Nonprofit (Debian-NP) geared for non-profit
+ organizations working within the Debian project.
+ These projects build on the core distribution and
+ the canonical archive from within the
+ organizational and political limits of the Debian project and
+ constantly seek to minimize the delta by focusing on less
+ invasive changes and by advancing creative ways of building
+ the ability to make changes in the core
+ Debian code base through established and policy compliant
+ procedures.
+
+
+
+ A second group of Debian customizers includes those
+ working outside of the Debian project organizationally.
+ Notable among this list are (in alphabetical order) Knoppix,
+ Libranet, Linspire (formerly Lindows), Progeny, MEPIS, Ubuntu,
+ Userlinux, and Xandros. With its strong technological base,
+ excellent package management, wide selection of packages to
+ choose from, and strong commitment to software freedom which
+ ensures derivability, Debian provides an ideal point from
+ which to create a GNU/Linux distribution.
+
+
+
+
+
+ Ubuntu
+
+ The Ubuntu project was started by Mark Shuttleworth in
+ April 2004 and the first version was executed almost entirely
+ by a small group of a Debian developers by Shuttleworth's
+ company Canonical Limited.
+ Information Ubuntu can be found on the Ubuntu homepage.
+ Information Canonical Limited can be found at Canonical's
+ homepage.
+ It was released to the world in the fall of 2004.
+ The second version was released six months later in April
+ 2005. The goals of Ubuntu are to provide a distribution based
+ on a subset of Debian with:
+
+
+
+ Regular and predictable releases — every six months
+ with support for eighteen months.
+
+
+ An emphasis on free software that will maintain the
+ derivability of the distribution.
+
+
+ An emphasis on usability and a consistent desktop
+ vision. As an example, this has translated into less
+ questions in the installer and a default selection and
+ configuration of packages that is usable for most desktop
+ users "out of the box."
+
+
+
+
+ The Ubuntu project provides an interesting example of a
+ project that aims to derive from Debian to an extensive
+ degree. Ubuntu made code-level changes to nearly 1300 packages
+ in Debian at the time that this paper was written and the
+ speed of changes will only accelerate with time; the total
+ number of changes and the total size of the delta will
+ grow.
+ Scott James Remnant maintains a list of these patches
+ online here: http://people.ubuntu.com/~scott/patches/
+ The changes that Ubuntu makes are primarily of the
+ most intrusive kind — changes to the code itself.
+
+ That said, the Ubuntu project is explicit about the fact
+ that it could not exist with the work done by the Debian
+ project before Ubuntu was created.
+ You can see that explicit statement on Ubunut's
+ website here: http://www.ubuntulinux.org/ubuntu/relationship/
+ More importantly, Ubutnu explains that it cannot
+ continue to provide the complete set of packages that its
+ users depend on without the ongoing work by the Debian
+ project. Even though Ubuntu has made changes to the nearly
+ 1300 packages, this is less than ten percent of the total
+ packages shipped in Ubuntu and pulled from Debian.
+
+ Scott James Remnant, a prominent Debian developer and a
+ hacker on Ubuntu who works for Canonical Ltd., described the
+ situation this way on his web log to introduce the Ubuntu
+ development methodology in the week after first public
+ announcement of Canonical and Ubuntu:
+ The entire post can be read here: http://www.netsplit.com/blog/work/canonical/ubuntu_and_debian.html
+
+
+
+
+
+ I don't think Ubuntu is a "fork" of Debian, at least not
+ in the traditional sense. A fork suggests that at some
+ point we go our separate way from Debian and then
+ occasionally merge in changes as we carry on down our own
+ path.
+
+ Our model is quite different; every six months we take a
+ snapshot of Debian's unstable distribution, apply any
+ outstanding patches from our last release to it and spend a
+ couple of months testing and bug-fixing it.
+
+
+
+
+
+
+
+
+
+
+ One thing that should be obvious from this is our job is
+ a lot easier if Debian take all of our changes, the model
+ actually encourages us to give back to Debian.
+
+ That's why from the very first day we started fixing
+ bugs we began sending the
+ patches_ back to Debian through the BTS. Not only
+ will it make our job so much easier when we come to freeze
+ for "hoary", our next release, but it's exactly what every
+ derivative should do in the first place.
+
+
+
+ There is some debate on the degree to which Ubuntu
+ developers have succeeded in accomplishing the goals laid out
+ by Remnant. Ubuntu has filed hundreds of patches in the bug
+ tracking system although it has often run into problems in
+ deciding what constitutes something that
+ should be fed back to Debian. Many changes are simply not
+ relevant to upstream Debian developers. For example, they may
+ include changes to a package in response to another change
+ made in another package in Ubuntu that will not or has not
+ been taken by Debian.
+
+ The Ubuntu project's track record in working
+ constructively with Debian is, at the moment, decidedly mixed.
+ While an increasingly large number of Debian developers are
+ maintaining their packages actively within both projects, many
+ in both Debian and Ubuntu feel that Ubuntu has work left to do
+ in living up to its own goals of a smooth productive
+ relationship with Debian.
+
+
+
+
+ Applicability
+
+ Ubuntu and Debian are distributions and — as such —
+ operate on a different scale than the vast majority of free
+ software projects. Using a very simple metric, they include
+ more code and more people. As a result, there are questions as
+ to whether the experiences and lessons learned from these
+ projects are particularly applicable to the experience of
+ smaller free software projects.
+
+ Clearly, because of the difficulties associated with
+ forking massive amount of code and the problems associated
+ with duplicating the work of large volunteer bases,
+ distributions are forced into finding a way to balance the
+ benefits and drawbacks of forking. However, while the need is
+ stronger and more immediate in larger projects, the benefits
+ of their solutions will often be fully transferable.
+
+ Clearly, modifiability of free software to better fit the
+ needs of its users lies at the heart of the free software
+ movement's success. However, while modification usually comes
+ in the form of collaboration on a single code-base, this is
+ function of limitations in software development methodologies
+ and tools rather than the best response to the needs or
+ desires of users or developers.
+
+ I believe that the fundamental advantage of free software
+ in the next decade will be in the growing ability of any
+ single free software project to be multiple things to multiple
+ users simultaneously. This will translate into the fact that,
+ in the next ten years, technology and social processes will
+ evolve so that forking is increasingly less of a bad thing.
+ Free software development methodology will become less
+ dependent on a single project and begin to emphasize parallel
+ development within an ecosystem of software development
+ working on related projects. The result is that free software
+ projects will gain a competitive advantage over propriety
+ software projecrts through their ability to better serve the
+ increasingly diverse needs of increasingly large and
+ increasingly diverse user-bases. More projects will derive and
+ less redundant code will be written.
+
+ Projects more limited in code and scope may use the tools
+ and methods in different combinations, in different ways, and
+ to different degrees than the examples around distributions
+ introduced here. Different projects with different needs will
+ find that certain solutions work better than others. Because
+ communities of the size of Debian are difficult to fork in a
+ way that is beneficial to any party, it is in these
+ communities that the technology and development methodologies
+ will are first emerging. With time, these strategies and tools
+ will find themselves employed productively in a wide variety
+ of projects with a broad spectrum of sizes, needs, scopes and
+ descriptions.
+
+
+
+
+
+
+ Balancing Forking With Collaboration
+
+
+ Derivation and Problem Analysis
+
+ The easiest step in creating a productive derivative
+ software project is to break down the problems of deriviations
+ into a series of different classes of modification. Certain
+ types of modification is more easily done and are
+ intrinsically more maintainable.
+
+ In the context of distributions, the problem of derivation
+ can be broken down into the following types of changes (sorted
+ roughly according to the intrusiveness inherent in solving the
+ problem and the severity of the long-term maintainability
+ problems that they introduce):
+
+
+
+ Selection of individual pieces of software;a
+
+
+ Changes to the way that packages are installed or run
+ (e.g., in a Live CD type environment or using a different
+ installer);
+
+
+ Configuration of different pieces of software;
+
+
+ Changes made to the actual software package (made on
+ the level of changes to the packages code);
+
+
+
+ By breaking down the problem in this way. Debian derivers
+ have been able to approach deriviation in ways that focus
+ energy on the less intrusive problems first.
+
+ The first area that Ubuntu focused on was selecting a
+ subset of package that Ubuntu would support. Ubuntu selected
+ and supports approximate 2,000 packages. These became the
+ main component in Ubuntu. Other packages in
+ Debian were included in a separate section of the Ubuntu
+ archive called universe but were not
+ guaranteed to be supported with bug or security fixes. By
+ focusing on a small subset of packages, the Ubuntu team was
+ able to select a maintainable subsection of the Debian archive
+ that they could maintain over time.
+
+ The most simple derived distributions — often working
+ within the Debian project as CDDs but also including projects
+ like Userlinux — are merely lists of packages and do nothing
+ outside of package selection. The installation of lists of
+ packages and the maintenance of those lists over time can be
+ aided through the creation of what are called "metapackages:"
+ empty packages that are maintained over time.
+
+ The second item, configuration changes, are also
+ relatively low-impact. Focusing on moving as many changes as
+ possible into the realm of configuration changes is a
+ relatively low-impact strategy that derivers working within
+ the Debian project intent on a single code-base have pursued
+ actively. Their idea is that rather than forking a piece of
+ code due to disagreement in how the program should work, they
+ can leave the code intact but add the
+ ability to work in a different way. This
+ alternate functionality is made toggleable through a
+ configuration change of the distribution in much the same that
+ applications can be configured differently or shipped with
+ different configuration files. Since the Debian project has a
+ unified package configuration framework called Debconf,
+ derivers are able to configure an entire system in aa highly
+ centralized manner.
+ More information on Debconf can be found online at:
+ http://www.kitenet.net/programs/debconf/
+ This is not unlike RedHat's Kickstart although the
+ emphasis is on maintenance of those configuration changes over
+ the life and evolution of the package; Kickstart is focused
+ merely on installation of the package.
+
+ A third type of configuration is limited to changes in the
+ environment through which a system is run or installed. One is
+ example is Progeny's Anaconda-based Debian installer provides
+ which an alternate installer but installs an identical system.
+ Another example is the Knoppix project is famous for its Live
+ CD environments.
+ In reality, Knoppix makes a wide range of changes to a
+ default Debian installation that spam all items in my list
+ above.
+ Other Live CD projects, including Ubuntu's
+ Casper project, are purely a different
+ way of running the exact same code.
+
+ Because these three methods are relatively non-invasive,
+ they are reasonable strategies for small teams and individuals
+ working on creating a derived distribution. However, many
+ desirable changes — and in the case of some derived
+ distributions, most desirable changes — require more
+ invasive changes. The final and most invasive type of change
+ — changes to code — is the most difficult but also the most
+ promising and powerful if solved. Changes of this type involve
+ bifurcations of the code-base and will be the topic of the
+ remainder of this paper.
+
+
+
+
+ Distributed Source Control
+
+ One promising method of maintaining changes in forked or
+ branched problems lies in distributed version control systems
+ (VCS). Traditional VCS systems work in a highly centralized
+ fashion. CVS, the archetypal free software VCS and the basis
+ for many others, is based around the model of a single
+ centralized server. Anyone who wishes to commit to a project
+ must commit to the centralized repository. While CVS allows
+ users to create branches, anyone with commit rights has access
+ to the entire repository. The tools for branching and merging
+ over time are not particularly good.
+
+ The branching model is primarily geared toward a system
+ where development is bifurcated and then the branch is merged
+ completely back into the main tree. Normal use of a branch
+ might include creating a development branch, making a series
+ of development releases while maintaining and fixing important
+ bugs in the stable primary branch, and then ultimately
+ replacing the stable release with the development release. The
+ CVS model is not geared toward a system
+ where an arbitrary delta, or sets of deltas, is maintained
+ over time.
+
+ Distributed version control aims to solve a number of
+ problems introduced by CVS and alluded to above by:
+
+
+
+ Allowing people to work disconnected from each other
+ and to sync with each other, in whole or in part, in an
+ arbitrary and ad-hoc fashion.
+
+
+ Allowing deltas to be maintained over time.
+
+
+
+ Ultimately, this requires tools that are better at merging
+ changes and in not merging certain
+ changes when that is desirable. It also leads to tools capable
+ of history-sensitive merging.
+
+ The most famous switch to a distributed VCS model from a
+ centralized VCS model was the move by the Linux kernel
+ development community to the proprietary distributed version
+ control system BitKeeper. In his recent announcement of the
+ decision to part ways with BitKeeper, Linus Torvalds
+ said:
+
+
+ In fact, one impact BK has had is to very fundamentally
+ make us (and me in particular) change how we do things. That
+ ranges from the fine-grained changeset tracking to just how
+ I ended up trusting sub-maintainers with much bigger things,
+ and not having to work on a patch-by-patch basis any
+ more. The full message can be read online
+ at: http://kerneltrap.org/mailarchive/1/message/48393/thread
+
+
+
+
+ At the time of the switch, free distributed version
+ control tools were less advanced than they are today. At the
+ moment, an incomplete list of free software VCS tools includes
+ GNU Arch, Bazaar, Bazaar-NG, Darcs, Monotone, SVK (based on
+ Subversion), GIT (a system developed by Linus Torvlards as a
+ temporary replacement for BitKeeper) and others.
+
+ Each of these tools, at least after they reach a certain
+ level of maturity, allow or will allow its users to develop
+ software in a distributed fashion and to, over time, compare
+ their software and pull changes from others significantly more
+ easily than they could otherwise. The idea of parallel
+ development lies at the heart of the model, the tools for
+ merging and resolving conflicts over time, and the ability to
+ "cherry pick" certain patches or changes from a parallel
+ developer each make this type of development significantly
+ more useful than it has been in the past.
+
+ VCSs work entirely on the level of code. Due to the nature
+ of the types of changes that Ubuntu project is making to
+ Debian's code, Ubuntu has focused primarily on this model and
+ Canonical currently funds two major distributed control
+ products — the Bazaar and Bazaar-NG projects.
+
+ In many ways, employing distributed version control
+ effectively is a much easier problem to solve for small, more
+ traditional, free software development projects than it is for
+ GNU/Linux distributions. Because the problems with maintaining
+ parallel development of a single piece of software in a set of
+ related distributed repositories is primary use case for
+ distributed version control system, distributed VCS alone can
+ be a technical solution for certain types of parallel
+ development. As the tools and social processes for distributed
+ VCS evolve, they will become increasingly important tools in
+ the way that free software is developed.
+
+ Because the problems of scale associated with buildling an
+ entire derivative distribution are more complicated than those
+ associated with working with a single project, distributed
+ version control has not yet been widely deployed in the Ubuntu
+ project. Instead, the project is focusing on integrating these
+ into problem specific tools built on top of distributed
+ version control.
+
+
+
+
+ Problem Specific Tools
+
+ Another technique that Canonical Ltd. is experimenting
+ with is the creation of high level tools built on top of
+ distributed version control tools specifically designed for
+ maintaining difference between packages. Because packages are
+ usually distributed as a source file with a collection of one
+ or more patches, this introduces the unique possibility of
+ creating a limited high-level VCS system based on this
+ fact.
+
+ In the case of Ubuntu and Debian, he tool is creating one
+ branch per patch or feature and using heuristics to analyze
+ patch files and create these branches intelligently. The
+ package build system section of the total patch can also be
+ kept as a separate branch. Canonical's tool, called the
+ Hypothetical Changeset Tool (HCT) (although no longer
+ hypothetical), is one experimental way of creating a very
+ simple, very streamlined interface for dealing with a
+ particular type of source that is created and distributed in a
+ particular type of way with a particular type of
+ change.
+
+ While HCT promises to be very useful for people making
+ derived distributions based on Debian, its wider application
+ may be limited. That said, this provides an example of the way
+ that problem and context specific tools may play an essential
+ role in the maintenance of derived code more generally.
+
+
+
+
+
+ Social Solutions
+
+ It has been said that a common folly among technophiles is
+ based on the temptation to employ technical solutions toward
+ solving social problems. The problem of deriving software is
+ both a technical and a social problem and
+ adequately addressing the issue will require approaches that
+ take into consideration both type of solution.
+
+ Scott James Remnant compares the relationship between
+ distributions and derived distributions as not unlike the
+ relationship between distributions and upstream
+ maintainers:
+
+
+ I don't think this is much different from how Debian
+ maintainers interact with their upstreams. As Debian
+ maintainers we take and package upstream software and then
+ act as a gateway for bugs and problems. Quite often we fix
+ bugs ourselves and apply the patch to the package and send
+ it upstream. Sometimes the upstream don't incorporate that
+ patch and we have to make sure we don't accidentally drop it
+ each subsequent release, we much prefer it if they take
+ them, but we don't get angry if they don't.
+
+ This is how I see the relationship between Ubuntu and
+ Debian, we're no more a fork of Debian than a Debian package
+ is a fork of its upstream.
+
+
+ Scott alludes the fact that, at least in the world of
+ distributions, parallel development is already one way to view
+ the modus operandi of existing GNU/Linux
+ distributions. The relationship between a deriver and derivee
+ on the distribution level mirrors the relationship between the
+ distribution and the "upstream" authors of the packages that
+ make up the distribution. These relationships are rarely based
+ around technological tools but are entirely in the realm of
+ social solutions.
+
+ Ubuntu has pursued a number of different initiatives along
+ these lines. The first of these has been to regularly file
+ bugs in the Debian bug tracking system when bugs are fixed
+ that exist in Debian are fixed in Ubuntu. While this can be
+ partially automated, the choice to automate this is a purely
+ social one.
+
+ Ubuntu is still left with questions in regards to changes
+ that are made to packages that do not necessarily fix bugs or
+ that fix bugs that do not exist in Debian but may in the
+ future. Some Debian developers want to hear about the full
+ extent of changes made to their software in Ubuntu while
+ others do not want to be bothered. Ubuntu should continue to
+ work with Debian to find ways to allow developers to stay in
+ sync.
+
+ There is a recent initiative by some developers in Debian,
+ largely led by myself, to create a stronger relationship
+ between the Debian project and its ecosystem of derivers.
+ While the form that this will ultimately take is unclear,
+ projects existing within an ecosystem should explore the realm
+ of appropriate social relationships that will ensure that they
+ can work together and be informed of each others' work without
+ resorting to "spamming" each other with irrelevant or
+ unnecessary information.
+
+ Another issue that has recently played an important role
+ in the Debian/Ubuntu relationship is the importance of both
+ giving adequate credit to the authors or upstream maintainers
+ of software without implying a closer relationship than is the
+ case. Derivers must walk a file line where they credit others'
+ work on a project without implying that the others works for,
+ support, or are connected to the derivers project which, for
+ any number of reasons, the original author might not want to
+ be associated with.
+
+ In the case of Debian and Ubuntu, this has resulted in an
+ emphasis on keeping or importing changelog entries when
+ changes are imported and in noting the pedigree of changes
+ more generally. It has recently also been discussed in terms
+ of the "maintainer" field in each package in Ubuntu. Ubuntu
+ wants to avoid making changes to every unmodified source
+ package (and introducing an unnecessary delta) but does not
+ want to give the impression that the maintainer of the package
+ is someone unassociated with Ubuntu. While no solution has
+ been decided at the time of writing, one idea involved marking
+ the maintainer of the package explicitly as a Debian
+ maintainer at the time that the binary packages are built on
+ the Ubuntu build machines.
+
+ The emphasis on social solutions is also essential when
+ using distributed VCS technology. As Linus Torvalds alluded to
+ in the quote above, the importance of technological changes to
+ distributed VCS technology is only felt when people begin to
+ work in a different way — when they begin to employ differnet
+ social models of developer interaction.
+
+ While Ubuntu's experience can provide a good model for
+ tackling some of these source control issues, it can only
+ serve as a model and not as a fixed answer. Social solutions
+ must be appropriate for a given social relationship. Even in
+ situations where a package is branched because of social
+ incompatibility, a certain level of collaboration on a social
+ level will be essential to the long term viability of the
+ derivation.
+
+
+
+
+
+
+ Conclusions
+
+ As the techniques described in this paper evolve, the role
+ that they play in free software development becomes increasingly
+ prominent and increasingly important. Joining them will be other
+ techniques and models that I have not seen and cannot predict.
+ Because of the size and usefulness of their code and the size of
+ their development communities, large projects like Debian and
+ Ubuntu have been forced into confronting and attempting to
+ mediate the problems inherent in forking and deriving. However,
+ as these problems are negotiated and tools and processes are
+ advanced toward solutions, free software projects of all sizes
+ will be able to offer users exactly what they want with minimal
+ redundancy and little duplication of work. In doing this, free
+ software will harness a power that proprietary models cannot
+ compete with. They will increase their capacity to produce
+ better products and better processes. Ulimately, it will help
+ free software capture more users, bring in more developers, and
+ produce more free software of a higher quality.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/picture-11194-01.png b/picture-11194-01.png
new file mode 100644
index 0000000000000000000000000000000000000000..0422d452c37f8a46f8262ba0e06e876c3592e03f
GIT binary patch
literal 17648
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
HlYsvNAL310
literal 0
HcmV?d00001
--
2.39.5