since most of the gcc
4.7 bugs are fixed by now, I looked again at the general
RC bugs too this week. here's the usual short report:
My olduse.net exhibit has now finished replaying
the first year of historical Usenet posts from 30 years ago, in real time.
That was only twelve thousand messages, probably less than many people get
on Facebook in a year.. but if you read along this year, you probably have
a much better feel for what early Usenet was like. If you didn't, it's not
too early to start, 9 years of Usenet's flowering lie ahead.
I don't know how many people followed along. I read .. not every message,
but a large fraction of them. I see 40 or so unique NNTP connections per
day, and some seem to stick around and read for quite a while, so I'm
guessing there might be a few hundred people following on a weekly basis.
If you're not one of them, and don't read our
olduse.net blog, here are a few of the
year's highlights:
tin.
I have some really amusing who listings.
Every post available initially was read an average of 100 times, which
was probably more than they were read the first go around.
A copy of this post is sent to
soc-coordination@lists.alioth.debian.org
as well as to
debian-bootstrap@lists.mister-muffin.de.
Diary
May 21
git clone git://gitorious.org/debian-bootstrap/bootstrap.git
The git as of now contains 30 commits and 1197 lines of ocaml code.
So far, 62 emails have been exchanged between me and Pietro and Wookey.
I created a mailinglist for this project where all email exchange so far
is publicly accessible in the archives. You can also download all of the
email exchange in mbox format. Everybody is welcome to join and/or read
the list.
What seems to be finished: the program that finds the minimal amount of source
packages that have to be cross compiled to end up with a minimal build system.
What it does is:
# (1) number of packages with priority:required: 62
# (2) plus, number of dependencies of priority:required packages: 20
# (3) plus, build-essential and dependencies: 31
# number of source packages to build the above: 71
# number of additional packages built from the above source packages: 292
# (4) number of packages of those plus arch:all packages that are installable: 6421
# total number of installable packages (1)+(2)+(3)+(4): 6534
For Ubuntu Natty it is:
# (1) number of packages with priority:required: 96
# (2) plus, number of dependencies of priority:required packages: 7
# (3) plus, build-essential and dependencies: 31
# number of source packages to build the above: 87
# number of additional packages built from the above source packages: 217
# (4) number of packages of those plus arch:all packages that are installable: 2102
# total number of installable packages (1)+(2)+(3)+(4): 2236
So for Debian, 71 source packages definitely have to be made cross
compilable while for Natty, the number is 87.
The last two days I was toying around with these minimal systems to see how big
the number of source packages is, that can be built on top of them without
running into dependency cycles. After installing the binary packages that were
built, I checked again until no new packages could be built.
For Natty, I was only able to find 28 additional packages that can be built on
top of the 2236 existing ones. This means that a number of dependency cycles
prevent building anything else.
In the coming two weeks I will focus on coming up with a tool that cleverly
helps the user to identify packages that would be useful to have for building
more packages (probably determined by how many packages depend on it -
debhelper is an obvious candidate). The tool would then show why that crucial
package is not available (in case of debhelper because some of its runtime
dependencies are not available and require debhelper to be built) and how the
situation can best be resolved. The possible methods to do so are to identify a
package that is part of a cycle and either cross compile it or let it have
staged build dependencies.
When packaging software for Debian, there exist two important assumptions:
# dpkg --add-architecture kfreebsd-amd64
# dpkg -i libc0.1-dev_2.13-32_kfreebsd-amd64.deb
Selecting previously unselected package libc0.1-dev.
(Reading database ... 446113 files and directories currently installed.)
Unpacking libc0.1-dev (from libc0.1-dev_2.13-32_kfreebsd-amd64.deb) ...
dpkg: error processing libc0.1-dev_2.13-32_kfreebsd-amd64.deb (--install):
trying to overwrite '/usr/include/_G_config.h', which is also in package libc6-dev 2.13-32
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
libc0.1-dev_2.13-32_kfreebsd-amd64.deb
Before multiarch the bug was not existing, and of course none of libc6-dev and libc0.1-dev are marked as Multi-Arch: something. People wanting to delay the release of Wheezy, I am sure you can find much more RC bugs like that.
Users of Debian sid will have noticed: the final (and
interesting) bits of GNOME 3.4 have landed and if all looks as good as it
does now, they should migrate to wheezy in about a week.
3.2 3.4 hasn't been as complicated as the previous
horrible transition,
but still had some complications due to Cogl/Clutter incompatibilities.
Other than that, our major problem has been manpower, but this isn't new
for many other Debian teams. We've also seen new incarnations of
Linux-only technology is now mandatory which makes our lives a bit more
miserable due to kfreebsd-* and hurd-i386, but
for now we've still been able to dodge it. It seems wheezy+1 will
be fun in that regard though, and we might need to take drastic
approaches.
If all goes well and the current lot (GNOME Shell, Control Center,
Settings daemon, Mutter...) transitions without additional problems, we
should be wrapping up our transitions for wheezy with Evolution and
friends (currently sitting in experimental), and hopefully GDM 3.4.
As we get many questions regarding the status of GDM in
Debian, let's add a short note on this. Packaging GDM, at least in its
current upstream form, is not a matter of unpacking a new tarball and
editing debian/changelog. When Joss works on a new major version, the
amount of tweaking to break away from stuff that works on other distros
but is not so simple in Debian is outstanding (see, for example, the current
unfinished work for GDM 3.2 in our SVN repo). In our case, to
handle our GDM defaults, we even need changes to the underlying configuration
system, dconf. This evidently takes some effort to do, and unfortunately our
GDM expert has had little time for Debian lately, but we're confident we'll
end up with a GDM in wheezy that is on par with Debian standards.
We are, as always, reachable at #debian-gnome in the OFTC
IRC network. Have fun!
I needed to resize about 300 images and couldn t find an easier way to do this than with help of node + CoffeeScript. So here s my script, it requires you to install (via npm) imagemagick and underscore:
<script src="https://gist.github.com/2862235.js?file=resize.coffee"></script>
Grab it if you want, is under Do Whatever You Want license.
As you can see from the shebang (that s the first line of the script, with the #!) I ran it from my command-line, this was not used in a website, although it could without too much modifications (the magic of JavaScript).
So, I m taking vacation this week and next. Here s a (partial) list of tasks that are left to do:
md0 : active raid5 sdg2[6] sdc2[4] sdb2[3] sdd2[2] sdf2[1] sde2[0] 4864240640 blocks level 5, 64k chunk, algorithm 2 [6/5] [UUUUU_] [=========>...........] recovery = 46.9% (456668928/972848128) finish=1461.9min speed=5884K/sec
The bug webinterface of the
Ultimate Debian Database
currently knows about the following release critical bugs:
| In Total: | 1412 |
|---|---|
| Affecting Wheezy: | 977 |
| Wheezy only: | 272 |
| Remaining to be fixed in Wheezy: | 705 |
| Pending in Wheezy: | 51 |
|---|---|
| Patched in Wheezy: | 118 |
| Duplicates in Wheezy: | 57 |
| Can be fixed in a security Update: | 24 |
| Contrib or non-free in Wheezy: | 9 |
| Claimed in Wheezy: | 2 |
| Delayed in Wheezy: | 4 |
| Otherwise fixed in Wheezy: | 99 |
Wheezyreleased. However, with the view of the Release Managers, 867 need to be dealt with for the release to happen. Please see
Interpreting the release critical bug statisticsfor an explanation of the different numbers.
use strict;
use warnings;
use SOAP::Lite;
use Data::Dumper;
my $GUID = '11111111-1111-1111-1111-111111111111';
my $App = 'test';
my $servicetag = $ARGV[0] or die "Please supply a servicetag. $!\n";
my ($deal, $latest, @dates);
my $s = SOAP::Lite
-> uri('http://support.dell.com/WebServices/')
-> on_action( sub join '', @_ )
-> proxy('http://xserv.dell.com/services/assetservice.asmx')
;
my $a = $s->GetAssetInformation(
SOAP::Data->name('guid')->value($GUID)->type(''),
SOAP::Data->name('applicationName')->value($App)->type(''),
SOAP::Data->name('serviceTags')->value($servicetag)->type(''),
);
print Dumper($a -> result) ;
The output can look like this:
$VAR1 =
'Asset' =>
'Entitlements' =>
'EntitlementData' => [
'EntitlementType' => 'Expired',
'EndDate' => '2009-07-29T00:00:00',
'Provider' => '',
'StartDate' => '2006-07-29T00:00:00',
'DaysLeft' => '0'
,
'EntitlementType' => 'Expired',
'EndDate' => '2009-07-29T00:00:00',
'Provider' => '',
'StartDate' => '2006-07-29T00:00:00',
'DaysLeft' => '0'
,
'EntitlementType' => 'Expired',
'EndDate' => '2007-07-29T00:00:00',
'Provider' => '',
'StartDate' => '2006-07-29T00:00:00',
'DaysLeft' => '0'
]
,
'AssetHeaderData' =>
'SystemModel' => 'GX620',
'ServiceTag' => '8DSGD2J',
'SystemShipDate' => '2006-07-29T19:00:00-05:00',
'Buid' => '2323',
'Region' => 'Europe',
'SystemID' => 'PLX_GX620',
'SystemType' => 'OptiPlex'
;
I have not been able to find any documentation from Dell about this
service outside the
inline
documentation, and according to
one
comment it can have stability issues, but it is a lot better than
scraping HTML pages. :)
Wonder if HP and other server vendors have a similar service. If
you know of one, drop me an email. :)
[ David Kalnischkies ]
* [ABI-Break] Implement EDSP in libapt-pkg so that all front-ends which
use the internal resolver can now be used also with external
ones as the usage is hidden in between the old API
* provide two edsp solvers in apt-utils:
- 'dump' to quickly output a complete scenario and
- 'apt' to use the internal as an external resolver
Today the new version of apt-cudf was upload in unstable and with it the latest bug fixes that makes it ready for daily use. I've used it quite a lot myself to upgrade my machine and it seems working pretty well so far... The most important difference with the old version is the support for multi-arch enabled machines.
This marks an important milestone in our efforts to integrate external solvers, built using different technologies, directly into apt. From a user prospective, this means that (s)he will have the possibility to check if there exists a better (best ?) solution to an installation problem then what proposed by the internal apt solver. Moreover, even if apt-get gives very satisfactory answers, there are occasions where it fails miserably, leaving the user wondering how to unravel the complex web of dependencies to accomplish his task. Available cudf solvers in debian are at the moment : aspcud, mccs and packup.
From an architectural point of view this is accomplished by abstracting the installation problem via a simple textual protocol (EDSP) and using an external tool to do the heavy duty translation. Since all solvers now available in debian are not meant to be debian-specific, using them involve a two step translation. The EDSP protocol specification is for the moment "hidden" in the apt documentation. I hope to find a better place for it soon : it would be cool if other package managers as smart or cupt could add an implementation on EDSP in their code so to automatically benefit of this technology.
To make it happen, Apt first creates an EDSP file that is then handled to apt-cudf that takes care of the translation to cudf and back into EDSP that is then read back by apt. Apt-cudf is the bridge between edsp and the external solvers and takes care of doing the book keeping and to select the right optimization criteria.
Roberto recently wrote a very nice article explaining how to use apt-get with an external solver.
In a nutshell, if you want to try this out you just need to install apt-cudf, one external solver like aspcud from the university of Pasdam and then call apt-get using the --solver option (that is not yet documented #67442 ). For example :
This is my monthly summary of my Debian related activities. If you re among the people who made a donation to support my work (338.26 , thanks everybody!), then you can learn how I spent your money. Otherwise it s just an interesting status update on my various projects.
Dpkg
Like last month, I did almost nothing concerning dpkg. This will probably change in June now that the book is out
The only thing worth noting is that I have helped Carey Underwood who was trying to diagnose why btrfs was performing so badly when unpacking Debian packages (compared to ext4). Apparently this already resulted in some btrfs improvements.
But not as much as what could be hoped. The sync_file_range() calls that dpkg are doing only force the writeback of the underlying data and not of the meta-data. So the numerous fsync() that follow still create many journal transactions that would be better handled as one big transaction. As a proof of this, replacing the fsync() with a sync() brings the performance on par with ext4.
(Beware this is my own recollection of the discussion, while it should be close to the truth, it s probably not 100% accurate when speaking of the brtfs behaviour)
Packaging
I uploaded new versions of smarty-gettext and smarty-validate because they were uninstallable after the removal of smarty. The whole history of smarty in Debian/Ubuntu has been a big FAIL since the start.
Once upon a time, there was a smarty package and some plugins. Everything was great except that the files were installed in a way that differs from the upstream recommendations. So Ubuntu changed the path in their version of the package and did not check whether it broke anything else (and it did break all the plugins). Despite the brokenness of the plugins, this divergence survived for years. So several packages that were using Smarty were modified to use dpkg-vendor to use the correct path depending on whether it was built on Debian or Ubuntu.
In 2010, Smarty 3.0 has been released and instead of upgrading the smarty package to this version, one of the smarty co-maintainers introduced a smarty3 package that used yet another path (despite the fact that smarty 3 had a mode to be compatible with smarty 2).No comment Liked this article? Click here. My blog is Flattr-enabled.
I
previously mentioned some work I'd done with mixing Javascript &
C.
The code is now visible here:
This consists of a binary which allows you to run javascript files,
those javascript files have some extra methods available to them,
allowing this
sample file to execute and do things:
If you use emacs for Javascript or Node.js development, you should have a look at js2-mode (apt-get install js2-mode in Debian / Ubuntu). In addition to providing syntax highlight, it will parse your Javascript and issue errors and warnings. (It's not as pedantic as jslint or jshint so you'll probably want to fix all of them before committing your files.) Unfortunately the default indentation style looks a bit crazy and adds excessive indentation to your code. Here's an example: It turns out that indenting Javascript properly is really hard, but you can turn on a special flag which will cause the indentation to "bounce" between different strategies, starting with the most likely one. This is what I now have in my ~/.emacs:
navigator.id.secret.generate(identity, function (plainKey, wrappedKey)
var data = wrappedKey: wrappedKey ;
$.post('/loggedin', data, function (res)
$("#message").text('All done');
, 'json');
, function (error)
$("#message").text('ERROR: ' + error);
);
(custom-set-variablesYou can find and configure all other options by issuing the following command:
'(js2-basic-offset 2)
'(js2-bounce-indent-p t)
)
M-x customize-group [RET] js2-mode [RET]So yes, you can have both the reasonable indentation of the standard js-mode and the helpful warnings and errors of js2-mode!
dispwin -d 1 profile.icclater I had the color profile loaded for the correct monitor. The result was a bit more pink than I expected. I guess I picked the wrong monitor type for the "led" monitor I got, but the result is good enough for now.
The new klibc features prominently the merged stdio branch (causing the version bump). The buffered I/0 allows a faster fstype and thus faster boot. Plus klibc gained the support of several stream I/O functions, for details see the longer story on: klibc 2.0 release announcement or klibc git repository.
The dhcp cmd ipconfig can now generate enough info for a proper lease file too and got fixed concerning the min length of it's replies. Google sponsored the /etc/fstab or cmdline boot mounting in kinit.
2.0 is shipping several arch fixes including i386 signal fixes, m68 support, s390x, sh4 compile fixes. There is still portability work todo: #439181 ia64 shared lib buggy (longdated unresolved ia64 mystery), #634890 amrhf all binaries segfault (maybe signal related), status on parisc is unknown, avr32 patch is untested (might as well just merge) and sh4 SIGILL. We got nice arch testcoverage thanks to mksh testsuite and working mksh klibc support. We are confident of this release on all this archs: alpha, armel, m68k, mips, ppc, ppc64, sparc, s390, s390x and x86. (:
Next.