Search Results: "spa"

7 September 2009

Jordi Mallach: Flags and outrages

A bit more than two years ago, two young Spaniards on vacation in Latvia maybe went a bit too far during one of their night parties and decided to remove some Latvian flags that hanged from a post in the streets of Riga. They spent 1 month in prison, with charges for outraging the Latvian flag. The Spanish media talked about the disproportionate charges, the ridiculous and medieval laws in Latvia and so on. Today, we learn that Jaume d'Urgell will go to prison due to the outraging crime of substituting the current Spanish flag with the Republican flag of 1931 on the facade of a public building. So much for medieval laws and institutions like the Spanish monarchy.

6 September 2009

Andrew Pollock: [debian] RSS feed of RC bugs?

Stefano Zacchiroli's post about fixing an RC bug a day got me thinking. In my Google Reader, I already have the feed of new Debian packages (which was incidentally the highlight of Debian Weekly News for me, and now that I found this feed, I miss its now infrequent publications a whole lot less). What I'd really like to compliment this, is a daily feed of new release critical bugs opened or elevated to release critical status. Then, in my copious amounts of spare time, if I got the urge when an appropriate RC bug went by, I might be more inclined to try and do something about it. Does such a feed already exist somewhere?

Stefano Zacchiroli: rc bug of the day - again

8 RC bugs in 8 days I got back from vacation about 10 days ago. For the first time in recent years, I've spent 2 weeks of vacation mostly without email (excluding 2 "breaks" of 10 minutes each in an internet point, just to verify that my electronic world was not collapsing). The net result is that I feel very recharged and more productive both at work and for other tasks. Including Debian. Hence, during last week, I've tried an experiment. When during the day I feel bored about a given task, instead of reloading compulsively the page of an online newspaper, instead of checking (once more) my email, instead of checking (once more) my feeds, I try to fix an RC bug. For the first week, the result has been encouraging: one RC bug fixed per day (on the average, some day I haven't fixed any, some other 2 or 3): In some sense, this try to be kudos to the amazing initiative of Sesse, a few releases ago (or was it Lenny? my memory still sucks, no matter how recharged I feel). He has been fixing one RC bug a day for several months. I'm quite sure I won't be able to deliver the same result, but maybe this post will motivate other people, so that collectively we can fix a handful of RC bugs per day. Of course in the beginning it's easy, because there are a lot of "simple" bugs to fix and also because (as you can notice in the list above) "clusters" of similar RC bugs, that require similar fixes, can be identified. But the effort is useful nevertheless, since it cleans up RC bug list enabling more capable people to fix more resistent bugs. I'm gonna tag RC reports like this one with "rc" and "debian". If people follow up with similar initiatives we can rinse out of planet a feed of pretty good news for the Debian development community :-) In the interest of sharing best practices, here is my RC bug squashing workflow:
  1. go to http://bts.turmzimmer.net/details.php, choose "both" (i.e. squeeze + sid) as distribution and sort by "bugnr" (so that you can avoid most recent reports, which are not yet NMU material)
  2. choose an inspiring bug form the list which is at least 1 week old (better at least 2 or 3), study its log; for the moment, I tend to prefer neglected bug logs, where the maintainer has been unresponsive
  3. apt-get source package , sudo cowbuilder --build package_1.2-3.dsc , install the result and check for bug reproducibility
  4. fix the bug ! (yes, this is the easy step :-) ), taking care of not changing anything else
  5. dch --nmu
  6. dpkg-source -b package-1.2/ , sudo cowbuilder --build package_1.2-3.1.dsc , check if the bug is fixed and the package otherwise working
  7. lintian package_1.2-3.1.changes , check that there are no regressions in lintian errors wrt latest uploaded version
  8. interdiff -z package_1.2-3.diff.gz package_1.2-3.1.diff.gz , check that no unexpected changes have slipped in
  9. debsign package_1.2-3.1*changes , dput -e 2 package_1.2-3.1*changes (as allowed by devref 5.11.1)
  10. nmudiff --delay 2 , in the text: briefly describe in what the patch consists, and mention devref 5.11.1
I welcome suggestions on how to improve the above workflow in order to be both more effective and more polite with maintainers (FWIW, all the maintainer feedback I've received thus far for the above NMUs has been totally positive: you rock guys.).

Uwe Hermann: identi.ca - a microblogging service based on Free Software, AGPL, and Creative Commons

identi.ca logo After a long time of ignoring (or at least not using) micro-blogging services such as Twitter, I recently tried the Free-Software based identi.ca service, and I'm beginning to like it. The choice of service was pretty obvious while Twitter uses proprietary software and has custom Terms of Service, identi.ca is based on software under the GNU Affero General Public License, and the contents are CC-BY 3.0 licensed. The code behind identi.ca is called Laconica (recently renamed to StatusNet) and is hosted at gitorious:
 $ git clone git://gitorious.org/laconica/mainline.git
My account details are available under http://identi.ca/uwehermann, where I'm posting smaller announcements and notes about random technical stuff I'm working on (slightly more regularly than in this blog). Sometimes I use the web interface for posting, but using the Jabber integration available at identi.ca is even more convenient. You can both be notified of new posts ("dents") in real time via Jabber, as well as post your own dents from within your Jabber client, which is nice. identi.ca seems to become more popular every day, which will hopefully make the proprietary Twitter pretty much irrelevant sooner or later.

Russell Coker: Free Books and T-Shirt Sales

Cory Doctorow has written an interesting column for the Locus Magazine about his experience in giving away free copies of his books [1]. Mainly he rants about some of the criticism he has received, initially it was people claiming that giving away books for free only worked because he was not a well known author, now people claim that it only works because he is well known. I d like to see authors publish free work (as Cory does) and then sell print-on-demand t-shirts. Cafepress.com has their cheapest t-shirt at $US16.99, Zazzle.com has a shirt for $US15.95, and SpreadShirt.com has shirts for as little as $US6.40 but their web site is difficult to navigate and gives me a lack of confidence in their operation. In spite of the difficult web site SpreadShirt.com seems to be the best offer at $6.40 for a basic shirt, that means either lower prices for the customer (and more sales) or a higher profit margin. The sale of a t-shirt could give the same revenue to the author as a sale of a book while also costing less than the price of one book in a store. It would be more useful after the book has been read (something you can wear rather than something that takes up space on a shelf), and it would advertise the book. The amount of effort required to create a decent shirt is a small fraction of the effort required to write a book, in many cases the cover artwork could be used with only minor alterations. Cory Doctorow s novels page has images that could make seven different great shirts with a small amount of effort [2]. I m sure that there are also many people who want to buy the book and the shirt, so it should give a general increase in revenue.

5 September 2009

Jon Dowland: exploring git repositories

I am in the process of moving the Doom packages that the Debian Games Team maintain from subversion to git. I started with a small native package called game-data-packager. The clone operation took hours to run and resulted in a 90-odd Mb git repository. Since game-data-packager is a relatively small collection of shell scripts with a recent history, I have reason to believe that git svn has imported much more of the Games Team SVN repo than just the game-data-packager bits. After fiddling with git repack -a -d, git prune and git gc --aggressive, the repository is still 80Mb large. How do I determine what is using all this space? Can anyone advise me on the best way to analyse a repository like this?

4 September 2009

Russell Coker: Ownership of Laptops for Work

Jetstar has announced some new changes to the way they manage their IT infrastructure [1]. Some parts of it are obvious things that people have been doing (or wanting to do) for a long time such as using thin clients with no moving parts (not even cooling fans). But the really interesting part is their plan for managing laptops. They are using a virtual machine image on a flash storage device that can run on any system. So deploying a new system will only require installing the virtual machine software and inserting a storage device. Moving a user s environment to a different system (EG due to hardware failure) will merely require inserting the storage device in a new system. That raises the issue of ownership of the device. It seems that Jetstar are considering using systems that are owned by employees, Stephen Tame said In two years time a laptop should be a condition of employment, and this includes bringing your own laptop . When introducing that I expect there would be some resistance by employees who don t want to spend the money. However
I have previously estimated the costs of running a car [2] which works out to more than $1,650 per year for insurance, registration, basic maintenance, and the interest that would have been received if the car had not been purchased and the money had been invested. Laptops can be purchased for significantly less than $1000 (currently the EeePC 701 is on sale for $219) and can be expected to last for three years or more if you are careful to avoid damage and don t run demanding software. So a job that demands ownership of a laptop is asking for a much smaller financial investment than one which demands ownership of a car. But I expect that many employees won t see it that way. The up-side for employees to bring their own laptops is that they can choose a model that suits their preference. Everyone has preferences regarding the size of keys on a keyboard, the distance that they travel and the pressure required to register a key-press. For desktop machines it s easy to swap keyboards but for laptops there is no such option. Then there s the issue of the trade-off between physical size and weight vs display resolution, personal preferences in this regard will depend to some extent on the body mass and strength of the employee. Now there are a number of security issues related to personal laptop use. Obviously if the laptop has a Trojan-horse program installed then it could sniff any data that goes past on the network. The most trivial case of this could be addressed by running VPN software inside the emulated environment. This would force a Trojan to compromise the virtual environment (EG by modifying the address space) or to compromise the files on disk (insert a Trojan inside the filesystem for the virtual environment). The former would be tricky to get right while the latter would be trivial. Both attack methods have been used in the past and proven to work. This is why many companies prohibit their employees from connecting their own systems to the corporate network. One example of a system that is based around running virtual machines for all desktop operations is the NSA NetTop project [3]. NetTop involves a SE Linux system that runs multiple instances of VMWare for different desktop environments. Each VMWare instance runs at a particular sensitivity level and uses a VPN connection to a back-end network running at the same level. The aim of NetTop is to prevent applications in the different VMWare instances from communicating with each other. The significant difference between a typical NetTop installation and what JetStar might be doing is that NetTop runs on a secure base it s hardware that has been purchased and installed by a military organisation and is run in a secure facility. While personal laptops that are owned by employees can be expected to be infected with viruses and Trojan-horse programs. In the past I have suggested that an employment package for any skilled employee should include some budget for buying things that facilitate the work [4]. It seems to me that a company like JetStar could best achieve their goals by assigning a budget to each new employee to buy a machine for their use. The employee then gets to choose a machine up to that budget which would only be for work purposes. Then when the employee leaves or the machine becomes due for replacement it could be sold at auction. When considering all the costs involved in hiring a new person, spending something less than $1,000 to buy a laptop is nothing. Finally if buying machines for work purposes, you really don t want employees using them for surfing porn. Porn sites tend to be particularly bad for malware distribution. To reduce the incidence of such problems I think that work machines should have their sound hardware disabled and laptops should not be purchased with overly large displays. There is no need to make work machines totally unsuitable for porn surfing (which would also make them less effective for work), but making them less suitable than a $500 budget PC should dramatically reduce the scope of the problem.

3 September 2009

Erich Schubert: Embedding Flash: don't forget wmode="transparent"

If you are doing a complex web layout (such as my Swing and the City layout which features alpha-transparent fixed layers), and want to embed Flash (e.g. on the Was ist Swing? page - German: What is Swing), make sure you add the attribute wmode="transparent" to your embed tag, and <param name="wmode" value="transparent"></param> to your object. Otherwise, a layer - in particular popup menus - might end up below the flash.This includes you, YouTube. In HD view, the user popup menu only has the top 3.5 entries out of 5 accessible for me.The following XSLT stylesheet can be used to find such embeds in a bunch of XHTML files using the command line xsltproc findNoWmode.xslt $( find -iname '*.html' )
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:html="http://www.w3.org/1999/xhtml">
<xsl:output omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
  <xsl:call-template name="t"/>
</xsl:template>
<xsl:template name="t">
  <xsl:copy-of select="//html:embed[not(@wmode) and (count(param[@name='wmode']) = 0)]"/>
</xsl:template>
</xsl:stylesheet>
You can of course also write a XSLT stylesheet to insert the wmode statements whenever there is none, to make transparent your default.[Update: I've received comments that this comes at qutie a performance cost for Flash, and that this might be the reason why YouTube doesn't use it - in particular for the HD videos. Also it isn't supported by WebKit based Browsers so far (so Safari neither?) and nor does it seem to be working in Gnash, an opensource flash plugin. So you have to choose between multiple evils if you are using Flash...]

Julian Andres Klode: Chromium


I have just switched to Chromium as my primary browser. I am running the daily-built version from the Ubuntu Jaunty PPA at https://edge.launchpad.net/~chromium-daily/+archive/ppa on my Debian unstable box. It seems quite stable, plugins are also working (with the enable-plugins option) and it can use the system s GTK+ theme for most parts (the buttons, etc. inside webpages are not rendered using GTK+ yet, but the UI is). It currently cannot print and it also has some formatting issues on some websites, and it s not passing the ACID3 test yet (there is a X in the top-right corner). I could have switched to Midori instead, but Midori is missing a cache it seems (the option can not be enabled). I ran the V8 and SunSpider benchmarks to compare Iceweasel 3.5, Midori 0.1.9 (using WebKit GTK+ 1.1.12) and Chromium 4.0.206.0 (r25168). The result was that Iceweasel was 10x times slower than the others in the V8 benchmark and about 5 times slower in the SunSpider benchmark. The others were almost equally fast, but Chromium won the V8 benchmark with 2338 points compared to Midori s 1666. More details are in the PDF Browser Performance, which should have been an ODP, but uploading ODPs is not allowed on wordpress.com. I also ran the V8 benchmark on Arora some time ago, but it was almost as slow as iceweasel. All tests were done on my laptop running Debian GNU/Linux unstable (amd64 architecture). Posted in General

Miriam Ruiz: New cutie in Debian: Zaz

Zaz ( Zaz ain t Z*** ) is nice action puzzle game, similar to Zuma, in which you have to get rid of all the balls that roll around the screen through some given paths by rearranging their order in the chain. The balls explode and dissapear when three or more of the same color get in contact. The whole game is controlled through the mouse device.
Through the game some special balls appear, with a tiny symbol over them, that makes your life easier by doing thinks like make all the balls step back a bit, making them move more slowly, stopping them for a while or giving you a ray to help you point your device and get and drop the balls where you want. You lose a life when the balls reach their destination hole, so be quick! The game currently has 10 different levels, but will probably have more in the future, and needs a 3D accelerator for decent gameplay. Zaz has just entered Debian repositories. If you like arcade puzzles, you should definitely give it a try. If you use Ubuntu Jaunty, you can also find it in my PPA. The original game included CC-by-sa-nc 3.0 music from Nine Inch Nails, which had to be removed for the game to go into Debian Main. The game has already been translated to Polish and Spanish, probably other translations will follow in the future, but it is not really text-based at all, so that shouldn t really be a problem for anyone.

Pablo Lorenzzoni: EeePC: Surviving liquid spills - phase II

About four months ago I described how my EeePC survived the spilling of orange juice over its keyboard. No! I never spilled anything on it again, if that s what you re thinking But I noticed that some keys (those that got more juice on) began to malfunction. At the beginning I paid no attention to it, hoping that it would just go away, but, eventually, they just stop working And those are not just unimportant keys I am talking about arrows and the forward-slash (/) keys in the lower right corner of the keyboard!!! How could I survive without those keys, without a quick access to my bash history and vim search? Well, I began googling around and found some good advice. Everything that made sense regarding how to cleanup my keyboard I compiled and, when I was enough confident it would work, I just follow the procedure I ve devised. This is what I did:
  1. After turning it off and removing the battery, I removed the keyboard. Check the instructions I linked in my previous article for some pictures on how to do it.
  2. I poured 500 mL of distilled water in a clean plastic box (I bought 1L for BRL 20 at a local pharmacy), added enough dish detergent to make some foam (I was careful to select a non-biodegradable one) and drowned the whole keyboard in the solution.
  3. For the next 30 minutes I pressed and released the affected keys over and over again. My intention was to dissolve anything that might have remained from the orange juice.
  4. I left it soaking in the solution for the next 12 hours.
  5. The next day I got the keyboard out of the solution and used current tap water to remove any detergent still left in it. This might have took about 10 minutes.
  6. Our tap water is really clean, but its hard, and I would not like to remove any juice from the keyboard just to add some minerals that might have the same effect, so after I was certain all the detergent was removed, I left the keyboard in the remaining of the distilled water for another 12 hour soak.
  7. After that I just removed the keyboard from the soak, dried it a little bit using a paper towel and left it to air-dry (away from the sun). I don t remember how long it took, but I believe not more than 4 hours Those were hot days Anyway, I was really sure it was dry.
When I plugged it back, surprise! All keys are working again! Of course, that was just what worked for me Best advice still is: Keep liquids away your EeePC!

2 September 2009

Gunnar Wolf: Drupal 6 Tour Centroamerica Now in Mexico!

I met my friend Josef Daberning, who did his Austrian Social Service working with Drupal at the Casa de los Tres Mundos NGO, in Granada, Nicaragua, at the Central American Free Software Encounter, last May. He told me that, when going back to Austria, he would spend some days in Mexico, and wanted to give a workshop on Drupal. The course has just started, and will take place today and tomorrow You can follow the live stream at http://www.iiec.unam.mx:18000/drupal.ogg The videos will be uploaded soon as well, I will post them on this same node. This node will be used for whatever is needed to make public for people following the talk. As of right now, you can download his presentation http://gwolf.org/files/gira-drupal.odp and http://gwolf.org/files/gira-drupal.pdf [update](s):
AttachmentSize
Basic introduction to Drupal presentation (ODP format)306.07 KB
Basic introduction to Drupal presentation (PDF format)214.62 KB
Drupal themes presentation1.09 MB

1 September 2009

David Pashley: Setting up gitosis on Jaunty

While git is a completely distributed revision control system, sometimes the lack of a central canonical repository can be annoying. For example, you might want to make your repository published publically, so other people can fork your code, or you might want all your developers to push into (or have code pulled into) a central "golden" tree, that you then use for automated building and continuous integration. This entry should explain how to get this all working on Ubuntu 9.04 (Jaunty). Gitosis is a very useful git repository manager, which adds support like ACLs in pre-commits and gitweb and git-daemon management. While it's possible to set all these things up by hand, gitosis does everything for you. It is nicely configured via git; to make configuration changes, you push the config file changes into gitosis repository on the server. Gitosis is available in Jaunty, but unfortunately there is a bug in the version in Jaunty, which means it doesn't work out of the box. Fortunately there is a fixed version in jaunty-proposed that fixes the main problem. This does mean that you need to add the following to your sources.list:
deb http://gb.archive.ubuntu.com/ubuntu/ jaunty-proposed universe
Run apt-get update && apt-get install gitosis. You should install 0.2+20080825-2ubuntu0.1 or later. There is another small bug in the current version too, as a result of git removing the git-$command scripts out of /usr/bin. Edit /usr/share/python-support/gitosis/gitosis/templates/admin/hooks/post-update and replace
git-update-server-info
with
git update-server-info
With these changes in place, we can now set up our gitosis repository. On the server you are going to use to host your central repositories, run:
sudo -H -u gitosis gitosis-init < id_rsa.pub
The id_rsa.pub file is a public ssh key. As I mentioned, gitosis is managed over git, so you need an initial user to clone and then push changes back into the gitosis repo, so make sure this key belongs to a keypair you have available to the remote user you're going to configure gitosis. Now, on your local computer, you can clone the gitosis-admin repo using:
git clone gitosis@gitserver.example.com:gitosis-admin.git
If you look inside the gitosis-admin directory, you should find a file called gitosis.conf and a directory called keydir. The directory is where you can add ssh public keys for your users. The file is the configuration file for gitosis.
[gitosis]
loglevel = INFO
[group gitosis-admin]
writable = gitosis-admin
members = david@david
[group developers]
members = david@david
writable = publicproject privateproject
[group contributors]
members = george@wilber
writable = publicproject
[repo publicproject]
daemon = yes
gitweb = yes
[repo privateproject]
daemon = no
gitweb = no
This sets up two repositories, called publicproject and privateproject. It enables the public project to be available via the git protocol and in gitweb if you have that installed. We also create two groups, developers and contributors. David has access to both projects, but George only has access to change the publicproject. David can also modify the gitosis configuration. The users are the names of ssh keys (the last part of the line in id_dsa.pub or id_rsa.pub). Once you've changed this file, you can run git add gitosis.conf to add it to the commit, git commit -m "update gitosis configuration to commit it to your local repository, and finally git push to push your commits back up into the central repository. Gitosis should now update the configuration on the server to match the config file. One last thing to do is to enable git-daemon, so people can anonymously clone your projects. Create /etc/event.d/git-daemon with the following contents:
start on startup
stop on shutdown
exec /usr/bin/git daemon \
   --user=gitosis --group=gitosis \
   --user-path=public-git \
   --verbose \
   --syslog \
   --reuseaddr \
   --base-path=/srv/gitosis/repositories/ 
respawn
You can now start this using start git-daemon So now, you need to start using your repository. You can either start with an existing project or an empty directory. Start by running git init and then git add $file to add each of the files you want in your project, and finally git commit to commit them to your local repository. The final task is to add a remote repository and push your code into it.
git remote add origin gitosis@gitserver.example.com:privateproject.git
git push origin master:refs/heads/master
In future, you should be able to do git push to push your changes back into the central repository. You can also clone a project using git or ssh, providing you have access, using the following commands. The first is for read-write access over ssh and the second uses the git protocol for read-only access. The git protocol uses TCP port 9418, so make sure that's available externally, if you want the world to be able to clone your repos.
git clone gitosis@gitserver.example.com:publicproject.git
git clone git://gitserver.example.com/publicproject.git
Setting up GitWeb is left as an exercise for the reader (and myself because I am yet to attempt to set that up).
Read Comments (1)

Gunnar Wolf: Method for locating yourself in space and in time

Today I had a nice and productive day, code-wise. Maybe that's a side effect from being unable to lose my time following E-mail?
Anyway, checking my code with git citool previous to today's git commit, I came accross this method. I didn't even pay attention to it while writing. But it did make me laugh in semi-awe thinking about the great implications it might have. The method signature: def days_for(who, what, how) The code itself? Naah, too pedestrian, to simplistic. It will ruin the sight. It just looks so beautifully universal! Ok, I am compelled to share, even if it spoils it and renders it into a completely regular, even stupid method.
  1. def days_for(who, what, how)
  2. return ' No dates set ' unless who.has_validity_period?
  3. days_to = who.send(how)
  4. return 'Past' if days_to <= 0
  5. '%d days (%s)' % [days_to, who.send(what)]
  6. end

31 August 2009

Rapha&#235;l Hertzog: Interdependence in Debian, how to suffer less from it

Listening to Martin Krafft s talk at Debconf (related to his PhD) shed some new light on the idea that I expressed last year I wanted that each maintainer regularly answers a questionnaire so that he has to ask himself whether he does a good enough job with his packages. When thinking of this idea, I only saw the QA side of ensuring good maintenance on all packages, however I believe that the root problem lies further and this project would not be enough: we are interdependent but we are not equipped to deal with this reality. Martin s only merit has been to mention that we are interdependent, but it s worth analyzing a bit. Our organization is centered around individuals acting as package maintainers, and in theory each package maintainer can work on his corner and all goes well. We know that this model doesn t hold any more: transitions to testing require coordination of uploads and timely fixes of RC bugs, keeping up with the work frequently requires several volunteers that have to coordinate, etc. More and more of the work requires a level of availability that a single individual can t offer, yet in our day-to-day work we mainly interact with individuals. Wouldn t it be better if we could immediately know what we can expect from any Debian developer: All this information should be shared by all Debian maintainers (some of it is already available but either not publicly or not in any machine-parseable way) and we should actively use it. Here are some examples of use: for each RC bug report, you could look up if at least one maintainer is available and you could ping him explicitly if needed. When you plan an NMU, you could look up if the maintainer is likely to respond in the next day or not, and possibly adjust the number of days spent in the DELAYED queue. When organizing a large-scale transition, you could extract a list of packages whose maintainers are not available and arrange immediate NMUs. Furthermore there are many cases where the project s usual expectation exceed what the maintainer is ready to do. Documenting what part of the job is done (or not) by the maintainer makes it clear for volunteers whether their help is needed and whether they could/would be a better maintainer for a given package. Designing solutions to all these problems is going to be the scope of the DEP2 that I reserved some time ago. It s likely to be some sort of dedicated web interface. I would welcome supplementary drivers for this DEP, so if you re interested, get in touch with me. Partagez cet article / Share This

David Pashley: Setting up gitosis on Jaunty

While git is a completely distributed revision control system, sometimes the lack of a central canonical repository can be annoying. For example, you might want to make your repository published publically, so other people can fork your code, or you might want all your developers to push into (or have code pulled into) a central "golden" tree, that you then use for automated building and continuous integration. This entry should explain how to get this all working on Ubuntu 9.04 (Jaunty). Gitosis is a very useful git repository manager, which adds support like ACLs in pre-commits and gitweb and git-daemon management. While it's possible to set all these things up by hand, gitosis does everything for you. It is nicely configured via git; to make configuration changes, you push the config file changes into gitosis repository on the server. Gitosis is available in Jaunty, but unfortunately there is a bug in the version in Jaunty, which means it doesn't work out of the box. Fortunately there is a fixed version in jaunty-proposed that fixes the main problem. This does mean that you need to add the following to your sources.list:
deb http://gb.archive.ubuntu.com/ubuntu/ jaunty-proposed universe
Run apt-get update && apt-get install gitosis. You should install 0.2+20080825-2ubuntu0.1 or later. There is another small bug in the current version too, as a result of git removing the git-$command scripts out of /usr/bin. Edit /usr/share/python-support/gitosis/gitosis/templates/admin/hooks/post-update and replace
git-update-server-info
with
git update-server-info
With these changes in place, we can now set up our gitosis repository. On the server you are going to use to host your central repositories, run:
sudo -H -u gitosis gitosis-init < id_rsa.pub
The id_rsa.pub file is a public ssh key. As I mentioned, gitosis is managed over git, so you need an initial user to clone and then push changes back into the gitosis repo, so make sure this key belongs to a keypair you have available to the remote user you're going to configure gitosis. Now, on your local computer, you can clone the gitosis-admin repo using:
git clone gitosis@gitserver.example.com:gitosis-admin.git
If you look inside the gitosis-admin directory, you should find a file called gitosis.conf and a directory called keydir. The directory is where you can add ssh public keys for your users. The file is the configuration file for gitosis.
[gitosis]
loglevel = INFO
[group gitosis-admin]
writable = gitosis-admin
members = david@david
[group developers]
members = david@david
writable = publicproject privateproject
[group contributors]
members = george@wilber
writable = publicproject
[repo publicproject]
daemon = yes
gitweb = yes
[repo privateproject]
daemon = no
gitweb = no
This sets up two repositories, called publicproject and privateproject. It enables the public project to be available via the git protocol and in gitweb if you have that installed. We also create two groups, developers and contributors. David has access to both projects, but George only has access to change the publicproject. David can also modify the gitosis configuration. The users are the names of ssh keys (the last part of the line in id_dsa.pub or id_rsa.pub). Once you've changed this file, you can run git add gitosis.conf to add it to the commit, git commit -m "update gitosis configuration to commit it to your local repository, and finally git push to push your commits back up into the central repository. Gitosis should now update the configuration on the server to match the config file. One last thing to do is to enable git-daemon, so people can anonymously clone your projects. Create /etc/event.d/git-daemon with the following contents:
start on startup
stop on shutdown
exec /usr/bin/git daemon \
   --user=gitosis --group=gitosis \
   --user-path=public-git \
   --verbose \
   --syslog \
   --reuseaddr \
   --base-path=/srv/gitosis/repositories/ 
respawn
You can now start this using start git-daemon So now, you need to start using your repository. You can either start with an existing project or an empty directory. Start by running git init and then git add $file to add each of the files you want in your project, and finally git commit to commit them to your local repository. The final task is to add a remote repository and push your code into it.
git remote add origin gitosis@gitserver.example.com:privateproject.git
git push origin master:refs/heads/master
In future, you should be able to do git push to push your changes back into the central repository. You can also clone a project using git or ssh, providing you have access, using the following commands. The first is for read-write access over ssh and the second uses the git protocol for read-only access. The git protocol uses TCP port 9418, so make sure that's available externally, if you want the world to be able to clone your repos.
git clone gitosis@gitserver.example.com:publicproject.git
git clone git://gitserver.example.com/publicproject.git
Setting up GitWeb is left as an exercise for the reader (and myself because I am yet to attempt to set that up).
Read Comments (0)

Andrew Cater: Madly dysfunctional family barbeque

At Steve's house in Cambridge. First Debian party I'd been to. House full of people I knew only from email, some very old friends. Wires and leads filling the front room floor - laptops _everywhere_ . [My netbook died with nasty ACPI errors - since fixed/worked around - it was practically the one place in the world where I could yell for an ACPI expert and folk knew what I was talking about :) ]

I wish I'd taken a camera - I was there for 1/2 hour before I realised I was only about three feet from a large TV which then became the focus for competitive Wii Fit archery :) Thirty second rule on sofa space - if you left for more than about 30 seconds you had to sit on the floor when you got back (I jammed myself onto a corner of the sofa once I realised I'd barely get through the crush :) )
[Forget students in a mini / UK telephone box - how many DDs can you fit into a very narrow kitchen :) ]

It's a huge, dysfunctional family with its own rules, geeky humour and in-jokes but it's MINE - it's the people I want to hang out with and, as perverse as it sounds, just being there gave me a whole new reaffirmed sense of identity and a large amount of determination to carry on "wasting my time with Linux" and Debian

Thanks to those who signed my key for me (and Noodles who didn't sign but gave a very intelligent rationale as to why he couldn't at the moment :) )
Thanks to Steve for quintessentially being and being the perfect host - and I hope to be back next year. And the food was excellent - chilli popcorn comes highly recommended :)

30 August 2009

Aigars Mahinovs: Debconf9 photos and banter

A bit more than a week after Debconf9 ended here is a post summarising what I remember about it for myself to look back to later, for others that were there for a good memory, for those that were not there for insight and for organisers of future Debconfs to improve. Let s start with something most people know I took photos, a lot of photos. The main photo naturally was the Debconf9 group photo (also http://tr.im/dc9group and an annotated version). Please look for people that are missing their IRC nicknames. I have uploaded the best of my photos on Flickr and all good photos in full resolution on the Gallery site. All of these photos are licensed CC-BY 2.0 or 3.0 or GPL v2 or v3 (your choice). Now about the organisation. The place reasonably easy to get to but not particularly fast or cheap from airport to the venue it took 1 hour in metro, 3 hours in a bus or train and a half an hour walk (or 5 minutes in a taxi) for the sum of 22 and 4.5 hours or 27 and 4 hours one way. While we all accept the time waisted in airports, getting from the airport to the venue should be easier and cheaper than this. While it was crazy hot outside (38-40 C) there was great air conditioning everywhere, so we did not feel the heat most of the time (except if you walked from bus/train to the venue or did the climb during the day trip). Having air conditioning in the room was a godsend I do not think I would be able to sleep otherwise. Also free water from a drinking fountain where you could also refill your water bottle was a great touch. The rooms were great two beds, air conditioning, bathroom, shower, desks and closets where one could unpack their things. And we did not have to move to other rooms in the middle, it allowed us to unpack and feel comfortable instead of living out of the suitcase the whole time. I m not sure if it will be possible for future Debconfs to get rooms with only two beds, but I think that even with 4 people per room would have been fine, provided that there are enough bathrooms/showers, enough space to unpack everyone s clothes, enough sockets to charge some stuff overnight and enough WiFi coverage in rooms to get some late emails without going to the hacklab. Which brings me to Internet and hacklabs. I must say that Internet was great this year it was fast enough not be a major problem, it was almost everywhere (a bit more signal in the sleeping rooms would be better), it was up and running from day one of the Debcamp and it was stable through (I think there was one or two interruptions). It would be nice to see people write a blog entry about how exactly it was done. As far as I know it was very helpful to have several kilometres of CAT5 cable, several large switches and a huge amount of identical WiFi routers all flashed with OpenWRT (and then some more smaller routers also flashed with OpenWRT to plug some holes). I heard there were two Internet connections joined together and a complex firewall/transparent proxy/traffic shaper and also a local Debian mirror that was DNS-redirecting people to it from all the regular Debian mirrors people use at home. The hacklabs were also nice when the Debcamp started the second hacklab was lacking most tables and chairs, but when those arrived there was plenty of space. Other common issues such as access to a free switch port for people without wireless and access to power sockets were also handled well and fast. It was very nice that organisers always had a few spare power strips or a spare patch cable at hand. This year there was a siesta break in the proceedings. While it was in line with local traditions (take a several hour break during the hottest hours), it did not do much for the secondary stated reason to get out and see the surrounding, because half of the attraction of getting out (shops and bars) were all closed during the same siesta time. IMHO we should have used the great aircon of the venue and continued the talks from mid day to 18:00 (when the siesta ends) and then make a break until dinner so that we could go out and enjoy shops and bars and historic places during a cooler time of day. If there is a break in proceedings, then it should be at the time when people are most likely to enjoy the surroundings. I doun t know the schedules in NY, but if the museums close at 18:00, then there should be a break during the day to allow people to get to those museums. Food was there and it was there every day, but it was not particularly great. Aside from typical problems with vegetarians and vegans (even salads had pieces of meat in them), I did not find the food to be compelling most of the time. I do not like fish and there was a lot of fish. Mostly it was good fish and sometimes it was so well done that even I enjoyed eating it, but other times it was full of fish bones and/or tasteless. Too often the dinner consisted of a salad, a deep-fried piece of meat and spoonful of dry fries. It would not kill them to put more fries on the plate and have some kind of sauce for them. One thing that was great in food were the fruit deserts apples, oranges, peaches and nectarines were fresh and juicy and then there were melons! I typically hate melons because the ones I can get in shops in Latvia are dry and bitter, but the melons here were bursting with sweet juice heavenly stuff. In the future it would be nice if the food selection and amounts per portion could be checked and agreed upon with the caterer in advance. Also the timing should be adjusted it is too early to end breakfast at 10:00, especially with dinner starting at 21:30 there is way too little time to socialize with other people after dinner and then to get a decent sleep. Talks can start at 10:00, but breakfast should go up to 11! I did like the water bottles and wine jugs on the tables and the beer being served as part of the food that was a nice touch that many people enjoyed. The daytrip was a nice distraction in the middle of the conference a trip to a swimming pool made from a river bed blocked by a damn with an optional hike up a mountain to a spectacular cascade of natural water pools and slides that a river has carved in the solid rock or the mountain valley. Most people did the hike it was steep and hot and rocky, but the payout (the water fun) was there at the end, and it was great! Wonderful warm water and unexpectedly deep pools that both locals and us jumped into from rocks of differing heights. I am more of a climber than a jumper so instead of jumping off a cliff, I spidermanned up the cliff up from the water. I did not have any safety, but if I did fall I would have fallen into the water, so felt almost safe :) After the hike, the jumps and a hike back downhill we went into the buses and joined up with the people relaxing in the pool or in the bar right next to it. And after an hour or two later the day trip was over. While this was fun I would have preferred if after the hike we would have gone to some castle or other tourist attraction for more of a trip experience than sitting by a pool chatting. Formal dinner was another traditional thing that we did this year. We walked over to a restaurant overlooking the city, sat down at many different tables occupying most of the place and then the waiters brought us plates with bits of food. Each plate was basically a set of 4 snacks for 4 people a plate of cheese, a plate of ham cuts, a plate of steamed vegetables and a plate of grilled meat. After that was coffee and desert. In my opinion the grilled meat was overcooked, the vegetables were passable, 1 of 5 cheeses was great (the local soft speciality) while other were ok and the ham cuts were ok. Desert was average. In all I was neither impressed by the food nor filled by it. There was also entertainment a singer with two dancers. They ware way too loud, so loud in fact that police came and shut the performance down, I did get a few interesting photos but otherwise I did not like them. They came to our venue the next night to continue the performance, luckily it was in an isolated patio and did not disturb people sleeping. Wine and cheese party on the other hand was simply great this year there was a huge selection of wine and cheese as we were in the right part of the world for that. There were 7 tables full of cheese, wine and bread and also some extra stuff such as a barrel of peanuts and some great tea from Taiwan. People were walking around for hours eating cheese, cleaning the taste off with bread and wine, chatting and doing it all over again at another table. I left the patio at around 2am and there were still several dozen people around chatting, eating, drinking wine and tea. I m not sure how to get an event of similar size in NY as it is not allowed for travellers to bring cheese into US, only commercial import with an appropriate licence is allowed. I also have my praise for the video team, but I ll hold on to that and the feedback about the talks until I see the recordings of talks that I missed, so I can also recommend the must see recordings. All in all it was a great event meeting all the great Debian people again, coding some stuff, having fun and talking about the future of Debian in a more relaxed atmosphere than an IRC chat room. Debconf 9 was great, see you all next year at Debconf 10 in New York!

7 June 2009

Sam Hartman: Debconf and Debcamp

I will be attending Debconf 9 in Spain from July 23-30. I will also be attending debcamp the previous week. I m hoping to build contacts and increase my involvement in the Debian community, and the previous debconf I attended was an interesting window into what was going on in Debian and Linux. I m still lining up things to do at Debcamp. Jelmer Vernooij will be there; he s interested in working with me on Samba 4 support for MIT Kerberos in Debian. I m interested in working with him on making the user experience good for people who use both Samba 4 and other Kerberos applications. As I wrote at the bottom of this post, I believe it is critical that the open source community not just follow what Microsoft is doing in the Enterprise space. I also think it is important that we maintain avenues for our own innovation. To that end, I want to look at what we can do to use enterprise infrastructure independent of AD-look-alike projects like Samba as well. So, I ll be looking at making what I can do to help this in Debian. Areas of interest include:
  1. Easy set up of Kerberos to use an LDAP database
  2. Easy configuration of libpam-krb5 and libpam-ldap together using Kerberos for authentication and LDAP for authorization but not authentication.
  3. Support for FAST integrated into Debian systems so we can gain better protection against weak passwords. As I promised, more about this in its own post.
  4. Better support for PKI/smart cards for network authentication.
These are all projects I think I could make headway on myself. However the value of debcamp is the other people there. I ve never been to a debcamp before and so I don t know what it will be like. I do know that I will give higher priority to projects that will benefit from close cooperation over a week. So, if you re there and want to try to recruit me to your project, feel free. I m interested in enterprise infrastructure, VOIP, IPv6, network security and making complex infrastructure easy to use.

Martin-&#201;ric Racine: When can we have a balanced and meaningful debate on immigration?

This question keeps on popping up in many recent newspaper articles, on discussion boards and in seminars debating immigration issues in Finland. At the core of the question is a general impression that, between the enthusiastic supporters of multiculturalism and the pessimistic nationalist rednecks, very little constructive discussion is possible in Finland. At one end, humanitarian help organizations, as well as politicians from the Green Party and the Swedish Folk Party, keep on taking excessively generous initiatives towards refugees and asylum seekers, all while labeling their detractors as racists. At the other end, nationalist candidates in the National Coalition Party and True Finns Party keep on painting every immigrant as a refugee who is abusing social security and label their detractors as turning Finland into the easiest country to abuse social security, at the Finnish taxpayer's expense. In between, candidates from the Christian Democrats and Center Party spread equally among these two camps. Meanwhile, while the Left is currently avoiding discussions on this topic, Social Democrats have previously shown that they tend to side with the nationalists in labeling all immigrants as social security abusing refugees. One interesting point is that, no matter at which end of the political spectrum one looks, the whole Finnish immigration debate keeps on focusing exclusively on refugees and asylum seekers, despite the fact that migrant workers and foreign spouses of Finnish nationals make up for a good 70% of the foreign population residing on Finnish soil. This recalcitrance to discuss immigration from any other perspective than refugees is rather painfully noticeable. Some recent examples: What's remarkable about all these examples is how public opinion is so persistently hardwired into thinking that all foreigners living in Finland came here as refugees from 3rd-world countries whose culture is radically different from Finland's and that they all became perpetually unemployed, forever living off social security, to the point that even politicians who ought to know better go along with it. When will we be able to have a balanced and meaningful debate on immigration, you ask? The day both multicultural hippies and nationalist rednecks will have been kicked off the podium. Of course, it would also help if the refugees themselves stopped monopolizing the podium, whenever the opinion of immigrants is solicited. Then again, perhaps these 3 groups benefit so much from the current status quo that they'd rather not see the day when others can participate in this debate on equal footing with them, so that a balanced and meaningful debate can finally take place?

Next.

Previous.