Cyril Brulebois: HE running for DPL!
Looks like we (almost) have a candidate:
And since that has to be signed:
Photographs courtesy of
Aurore D.
And since that has to be signed:
Photographs courtesy of
Aurore D.
And since that has to be signed:
Photographs courtesy of
Aurore D.
A few days ago, I asked how to fork a debian package privately. I got some repsonses by comments, e-Mail and other blog posts, and I want to summarize the tools that were suggested. I have not really tried them, just looked at the webpages, the documentation or the sourcecode. I m only including Debian-specific solutions, as using Gentoo might be nice, but is out of scope here :-)I also deleted half the text before saving it, and I hate rewriting stuff, so it might be a bit terse.debtooEddy Petri or tells me about his three year old project debtoo, which wants to bring a Gentoo-like experience to Debian. While it probably provides what I need, it feels too big in that it has a more general aim than what I m looking for. It is not in Debian and not actively developed in the last two years.srcinstEddy also tells me about srcinst, which is a small haskell program written by jgoerzen in 2005. This is more a proof-of-concept that builds a package and all necessariy build-dependencies without using a binary package, but does not allow for patches to be applied. It is in Debian, actively maintained, but not developed, and barely documented (just an IRC log).apt-buildA similar tool and also in Debian is apt-build. This package is created to compile packages for optimization (as it asks half a dozend compiler-flag-questions with DebConf during the installation). It allows the user to apply a patch to the source, but it has to be passed as a command line option, and patches seem not to be tracked. Not much development in the last year, and not much documentation.debpatchNot to be confused with the program in the debdelta package is the debpatch tool by Victor Hsieh which Carsten Hey told me about. Also written in 2005, this comes closest to what I want. For every package you want to modify, you can configure it to apply patches to the source, to add patches to the debian/patches directory or to statically replace files in the generated binary and puts it in a local apt repository. No code yet to track new versions of the packages and no support for pbuilder though. This perl script is not yet in Debian, but is available as a Debian package and seems to have seen some development in the last years. Quick Googleing does not return any user reports; has any already tried this?customdebSomewhat in this direction goes the script that I wrote two weeks ago for a totally different project, customdeb, but it is aimed at binary debian files exclusively, and debpatch already supports replacing files in the binary package.apt-srcAlso a related tool Carsten Hey told me about is apt-src. This tool wants to provide apt-like features for source packages. It allows you to install sources somewhere, upgrade the source and build binary packages from them. It does not really hide the sources from the user and seems to be created for people who want to work with the source somehow. If you have local changes to the sources, it can try to merge them with the new version, but these changes are not kept as a separate patch but only as implicit changes. If that were different, it would seem be a very nice tool. It s written by Joey Hess he abondonned it in 2004. Since then, not much development has happened.debnestYet another approach is taken by debnest, which Peter Makholm took over. Here, you create a full debian source package with a debian/ directory containing a control and rule file etc., but besides the debian/ directory, it contains just the packed sources (.dsc et al) from another package. In your debian/rules, you can specify your changes. I can see no support for tracking new versions of the inner package, but at least this project is maintained and in Debian.Summary I found a few projects that go in a similar direction, and one that seems to fit my needs quite well. All of them are not widely used and in a very early state of development, and it seems to be something people start to work on and quickly lose interest. I m actually surprised that this is not a itch more people had to scratch! I will have a closer look at debpatch when I find the time and maybe, if found useful, see if it can be included in Debian probably after a name change, since we already have a debpatch binary. Or maybe I should try to add support for what I need to apt-src, which seems to be the most advanced of all these programs, although it s unmaintained longer than the others exist.Update: Added apt-src.Update 2: Added debnest;
As eddyp wrote on Planet Debian, there is indeed a tool to roll custom builds of source packages. However, as he also mentioned, it’s written in Haskell, and may be unmaintained.
One of the most commonly heard complaints I have received about Debian (and Ubuntu) is that it does not allow for easily rebuilding source packages. So, I’m going to start writing a new debian package builder for this purpose soon. It’ll probably be a package similar to pbuilder, except aimed at end users instead of developers. Here’s my plan of action:
Phase 1:
I would like to suggest to my readers to ask airplane crews for
explanations of their rules. If we can get a larger number of
people to inquire about the reasons behind the do s and dont s on
airplanes, maybe the airline companies will adopt the practice.
In the context of a previous post on the
lack of explanation of the motivations behind airline rules, I
was utterly impressed when the steward on the Air New Zealand
flight from Melbourne to Wellington asked me to turn off my music
player so that I would hear when they asked us to evacuate the
plane or similar.
While I doubt that I would continue to listen to The Flower
Kings in an exceptional event, his explanation actually got me to
turn off the player, which I had previously never done (rebel me!).
I know it s a bit ridiculous, but I was previously so set on the
idea of small devices like a music player interfering with the
airplane instruments that I failed to see this obvious bit of
logic. The steward thus gets my best steward award.
When you fly, ask the crew about the reasons for the
rules they impose on you, the passengers!
NP:
The Flower Kings: Unfold the Future
* Fri Jun 23 2006 Sunil Mushranand
- Add largesmp * Sun Jan 25 2004 Manish Singh
- Initial rpm spec file
* Fri Jan 28 2005 Manish SinghThat’s a start, but not very informative one. The packages were last updated on November 2007, the changelog doesn’t mention the various changes done on the packages. Skype’s Etch deb file has this changeog entry:
- Add ocfs2console * Sat Jan 22 2005 Manish Singh
- Initial rpm spec
skype (1.4.0.118-1) extra; urgency=low * Added Changelog for compliance with debian rules. – Skype Technologies <info@skype.net> Wed, 10 Aug 2005 17:50:14 +0300When I read that my reaction was “gee, thanks for the changlog”. I’m glad companies recognize the debian policy and comply to it, but let’s not forget the files is there to have some substance. Having a empty (or a place holder) changelog isn’t the real essence of the debian policy rule. These are just two examples I encountered, but these are also the companies who actually wrote a changlog. I see a lot of packages which have an empty changelog. I know companies work differently from community projects, what I fail to understand why don’t provide more information about their products. They all have “a support matrix”, tons of documentation and such, but when I want to know if I can install the new package easily - I don’t have this info, and usually the documentation doesn’t mention these technical changes. So, my message for the commercial companies: you have a lot to learn from community projects, especially for those companies what want to be a part of the free software world. We (the community) usually have a high standards and we expect you to keep them. I’m sure you’ll also benifit from these standards, if you’re not already enjoying it.

No Debian content here. Just like last year I decided to watch one of the largest sport events in the USA - the final game of the National Football League Super Bowl XLII (roman numerals are different for the sake of it
ifeq ($(words $(DEB_ALL_PACKAGES)),1)
DEB_DESTDIR = $(CURDIR)/debian/$(strip $(DEB_ALL_PACKAGES))/
else
DEB_DESTDIR = $(CURDIR)/debian/tmp/
endif
A person that I deeply respect and who is very know in Latvian IT society recently said that he often uses a quote of mine in his presentations. I completely forgot that I ever said that, but it sounds very much like what I would say, so I wanted to write it down so that I do not forget about it again:
90% of the people do not understand copyright, the other 10% simply ignore it.Heh, I must have been optimistic. There is no way that so many people actually understand copyright.
As written earlier, I'm switching build system for one of my projects.
In the end, I decided to roll my own. Yes, another build system out there. The general idea is to combine the strengths of automake and MSBuild, and take them to new extremes by not compromising where they have (that makes my build system a tad inflexible though).
Automake's biggest strength is that it is descriptive, rather than imperative, and while it allows for rules to be entered directly to allow for some flexibility, this is usually the point where the Makefiles that are produced become unportable. But in general, the idea of having a tool deduce what exactly should be done to transform a set of input files into a set of output files is a good one, I think.
From MSBuild, I stole the idea of making an explicit distinction between higher-level integration projects ("solutions" in their lingo) and actual build projects. Build projects only have one (main) output, which usually is a program or a library, and several auxiliary outputs (development files, translation templates, ...), while integration projects coordinate the build process (for example, if one of the build projects builds a tool, all projects using that need to be re-run if the tool is rebuilt, but only then.
Automake's biggest downfall is stuff that is not explicitly supported. One of my projects uses IDL extensively, which leads to quite a lot of explicit rules supporting different ORBs. If I wanted to teach automake about that, I'd have to understand lots of perl code that emits code fragments that, when combined, will do the right thing. In a way, automake is a compiler, but based around the idea that since we start out from a Makefile compatible syntax, just adding things will magically work. Where it doesn't, special cases are invented, such as for libtool support, but stacking special cases is really difficult.
MSBuild, on the other hand, leaves a lot to be desired when it comes to project-to-project integration. There is no way to tell it "publish these include files under the such-and-such directory for use by other projects", rather, you are expected to have the project using them explicitly reference your project in the include directories. If a project uses includes that reference includes from yet another project, it gets worse.
Milestone 1 is going to be when the main binary can build itself on Windows and Linux.
The first of my talks at LCA
2008 gave me a chance to talk about the current state of the
Debian project, which got me
my first LWN.net
coverage with a photo, even (subscribers only for now, the
article will become public on 7 February). Thank you, Jonathan
Corbet, for a very good article which nailed all the main
points!
Slides are
here.
I agreed to this talk on short notice because I like to talk
about Debian and was honoured by the chance to represent the
project in this form. I would not have been able to do it without
plenty
of helpful input from colleagues in the last few days. Since I
didn t get a chance to display the final slide with the
acknowledgements during the talk, I would herewith like to thank
specifically Andreas Tille, Michael Banck, Kevin Mark, Josip Rodin,
MJ Ray, Cyril Brulebois, Stefano Zacchiroli, Frans Pop, Moritz
M hlenhoff, Russ Allbery, Steve Langasek, Luk Class, Andreas
Schuldei, and Christian Perrier. No guarantees for the completeness
of the list.
The talk ended in an open discussion on how Debian could
improve. I took notes and shall forward them to the project mailing
list, once I get a chance. Thanks to all the participants, as
well.
Update: during the talk, I mentioned that there
was no security support around the time of the etch release.
Thanks to Moritz M hlenhoff, who spotted my error: that should have
been sarge . The problems with security support had long been
resolved by the time etch was being prepared, and this was in
(large?) part thanks to Moritz. Sorry for the screwup!
I also called Linux to tend towards multimedia more than one
might like. I should not have made this comment as a representative
of the Debian project, and I probably did unjust to the Linux
kernel in whole. This is entirely a personal issue, I have a number
of problems with Linux memory management, scheduling, and some
other points relevant to production use. I ve had some of these
problems for years, but they seem never to get fixed, while
development is fast-paced. Then I look at some of the work being
done and I wonder what the priorities are.
Regardless, I should not have made this comment and I apologise
for it.
Maybe someone can shed some light on these outstanding questions
about airplane safety. The Thai steward earlier made it perfectly
clear, with a straight face, that our safety is their priority, but
so far, no-one of the crew could give me the answers:
Your new door to the world the slogan for Bangkok s new
Suvarnabhumi airport tries to get people to stop-over on their
trips between Europe and Asia. The airport s webpage claims that
the airport currently handles 45 million passengers per year, but
that it would scale up to 110 million.
I don t see this happening, at all. Today, leaving for
Melbourne, I waited for an hour in the security queue, as four
flights were leaving concourse E (which has 10 gates) at once:
around 500 passengers were queueing to be scrutinised for
explosive liquids and other stuff a real terrorist would
never consider smuggling on a plane via the standard passenger
processing theatre in four lines behind four security checkpoints
(in fact, that s how I confirmed my estimate: around 30 seconds per
passenger (I timed it), it took me one hour, that s 120 passengers
per queue, so about 500 total, at once).
Four lines, one hour? 45 million passengers. 110 million
passengers? Six lines (there isn t much more space), so 200
passengers per line, 1:40 hours? My new door to the world?
Bangkok?
Of course, this is in large part because of idiot passengers.
While I was waiting in line, they came three times (every 20
minutes) to empty the garbage can where potential terrorists have
to dump their drinkable explosive fluids. We ve had this ban for
over 1 years, for crying out loud! Sure, some people don t (get
to) fly a lot and a few may really not have heard about dangerous
liquids yet (I felt really sorry for an elderly couple who had to
ditch pretty much all their toiletries leaving Zurich for Madrid
and wondering how they would survive there), but then at least
open your eyes and turn on your brain, please.
Unfortunately, the typical Bangkok/Southern Thailand tourist
probably hasn t got brain cycles left between walking and carrying
luggage. If you don t believe me, stop-over in Bangkok and look
around: anything with legs in shorts and flip-flops probably fits
right in, any obscenely and annoyingly loud group as well. For
instance, this circus of 10 en route to London, who joined the end
of the queue (read: about 1 hour to go) after their flight s final
call with millions of shopping bags. They furiously tried to raise
hell, but failed and probably missed their flight.
Observing all such episodes around me made the hour go by fast
I also had ample time left before my gate would close. There was
one situation, however, that made walk over and complain to the
supervisor (the one with the walkie-talkie): a couple from Canada
were similarly faced with the final call for their flight to
Toronto and walked straight up to the top of the lines outside
the ropes. After a short discussion, one of the security attendants
escorted them to the gate without subjecting either their
bags or bodies to the ever-secure screening process.
The supervisor (the one with the walkie-talkie) didn t speak
English. All she did was smile and make motions with her hands
which suggested that I should join the end of the queue.
As I said before, I don t believe that the (minimal) added
security we have at airports today corresponds to or justifies in
the slightest bit the shit we have to go through these days to be
airborne. However, if you make rules, then stick to them and don t
open gaping (= inviting) security holes.
Fortunately, the Canadians later had to surrender their weapons
of plane destruction since, on every gate, another party
of security attendants glove-hand-searched every bag a second
time, with the previous security checkpoint no 100 metres
behind.
I don t see Suvarnabhumi as a successful or scalable airport. If
Bangkok wasn t such a great place
?to kill a few hours (especially compared to e.g.
Singapore), or the (best) entrance to Southeast Asia, I d probably
avoid it in the future.
It's interesting to compare the "marketing features" of proprietary
version control systems and the FOSS equivalents. For example, I
happened to stumble across SourceGear Vault,
and I have to say that the feature list, as given, doesn't impress me
particularly.
When the most impressive features you can think to mention are things
like "All repository data is stored in a SQL Server database" and "the
checkin operation is atomic", I'm thinking you're probably not a serious
competitor against some of the truly state-of-the-art systems that are
commonly used in the open source world. Based on the advertised
features, I'd say that Vault probably doesn't compare favourably to SVN,
let alone bzr or darcs.
Overall, I don't think we're doing so badly in the innovation stakes.
<grin>
Robert A. Heinlein: Starship Troopers (Putnam, 1959)
We have a problem with our tools in Debian, and it's this:
Above the core tools in dpkg-dev, and the nearly core tools in debhelper
and devscripts, and the many different -- but all slowly converging --
revision control systems, there is the potential for infinite cruft to
pollute the source package.
Note that one developer's cruft is another developer's use of an excellent
tool. If you don't believe that, you haven't read a lot of crufy
upstream build systems, because Debian isn't the only project with this
problem.
The source of this cruft is a near-constant stream of new tools that are
each developed in good faith by someone who needs that tool, and then
adopted and used in packages of a generally small percentage of developers,
who think that tool might be a good fit for their problems. The
tool isn't yet suitable for everyone to use, and most of these tools
never become suitable for everyone, because
yada, which
everyone agrees is horrible. That doesn't bode well, does it?
One partial solution is to design a category killer, and get it embedded in
acknowledged core tools. That's what I have tried, and so far, failed,
to do with an evolutionary change to the Debian source package format,
which I'd hope would give people a reason to stop using dpatch, dbs,
and their ilk. As noted, this approach is Hard.
dpatchdbsquilt.tar.gz inside
an .orig.tar.gz.yadacdbsdpkg-buildpackage.Next.