Ir para o conteúdo

Software livre Brasil

Tela cheia
 Feed RSS


28 de Maio de 2009, 0:00 , por Desconhecido - | Ninguém está seguindo este artigo ainda.
In this blog I share technical information, write about projects I'm involved with, or about cool/fun/interesting stuff I find.

Debian Ruby Sprint 2016 - day 2: Japanese cuisine, bug fixes, and Mini Cheese&Wine Party

2 de Março de 2016, 12:56, por Antonio Terceiro

Day 1 ended with dinner at a Yamato, my preferred Japanese restaurant in the city. Curitiba has a very large Japanese community, and lots of Japanese restaurants. Yamato, however, is the only one were you will stumble upon senior Japanese people, probably first or second generation immigrants, what I guess says something about its authenticity.

Right after breaking for lunch, but before actually going out, we made what so far is official group photo (I might try again as the shot was not a really good one).

Of course the most interesting part was the actual work that was done, and day 2 list is not less impressive than the day before:

  • ruby-albino 1.3.3-4 (#813644) @sbadia
  • #816256: ruby-versionomy: FTBFS: `require’: cannot load such file — blockenspiel/unmixer_mri (LoadError)
  • investiage ruby2.1 removal
  • upload ruby-beautify
  • upload ruby-aws-sdk
  • made ruby-blockenspiel arch:all again
  • filed RC bug against pcs depending on ruby2.1-dev
  • ruby-dev in experimental now supports `pkg-config ruby` so packages can use pkg-config to build against the current default Ruby
  • ruby-libxml (some tests skipped)
  • fixed FTBFS #804794 in subtle delaying ruby2.1 removal (now in DELAYED/2)
  • mailed debian-ruby and ask people to test ruby2.3 as default
  • #816162: ruby-zentest: FTBFS: Failure: TestZenTest#test_testcase9
  • ruby-sshkit 1.9.0~rc1-1 (795118)
    • capistrano 3.4.0-1 + ruby-sshkit 1.9.0~rc1-1 =>
  • filed for ruby-patron removal
  • updated and uploaded ruby-pygments.rb updated + patch for tests (fix #812940)
  • discussed dependency cycle resolution
    • will keep cycle between ruby2.3 and rake (as they really need each other)
    • will break cycle from pure ruby packages to ruby when they are depended on by ruby2.3
    • for same package set, enable Multi-Arch: foreign when needed
  • uploaded ruby-power-assert (M-A foreign, break ruby cycle)
  • uploaded ruby-did-you-mean (M-A foreign, break ruby cycle)
  • uploaded ruby-minitest (M-A foreign, break ruby cycle)
  • uploaded ruby-test-unit (M-A foreign, break ruby cycle)
  • uploaded rake (M-A foreign)
  • uploaded ruby-net-telnet (M-A foreign)
  • discussed removal of libruby metapackage, filed bug against dh-make-drupal (only rdep) #816417
  • uploaded yard (Closes: #812809)
  • rerun failed builds
  • closed #798539 (not applicable on current version of ruby-webmock)
  • closed #816321 fixed by ruby2.3 upload
  • uploaded ruby-cliver (by @lucasmoura)
  • uploaded ruby-celluloid-supervision ( closes: #810770)
  • uploaded ruby-celluloid-fsm ( closes: #815107)
  • uploaded ruby-raindrops
  • investigated status of dhelp, ruby-mysql again
  • ruby-http-form-data (1.0.1+gemwatch-1) @sbadia
  • nmu ohcount (DELAYED/2)
  • updated trocla to newest upstream, fixing #816257
  • reassign #816358 from ruby-safe-yaml to ruby2.3
  • close #816120 (transient bug in ruby-default-value-for, waiting for ruby-sqlite3 binNMU)
  • upload updated ruby-rc4
  • uploaded new upstream version of pry, fixing FTBFS with ruby2.3
  • ruby-rb-inotify , required to new ruby-listen( need ruby-rb-inotify >= 0.9.7)
  • applied patch from upstream to ruby2.3 for #816358
  • uploaded new upstream version for coderay supporting ruby2.3

On Monday Cédric told us that he and Sebastien had brought a bottle of French wine and some smelly French cheeses, and suggested that in the best Debian tradition we should have a Mini Cheese and Wine Party™. Sure thing! Luckily there is a farmer’s market 2 blocks from home on Tuesdays mornings, where I usually buy my fruits, vegetables, and cheese & friends, so the timing was perfect. I went shopping early in the morning, and bought a few things, and was back before it was the time to go to UTFPR. After the day-long hacking session we stopped by another store nearby to buy a few extra bottles of wine and other snacks.

At night, in my place, I ended up playing cheese master.

There was enough food that at the end we were all very full.

And with the spokesperson task of the day done, off to hacking I am!

Debian Ruby Sprint 2016 - day 1

29 de Fevereiro de 2016, 20:44, por Antonio Terceiro - 0sem comentários ainda

This year’s Debian Ruby team sprint started today here at Curitiba. Everyone arrived fine, and we started working at the meeting room we have booked for the week at Curitiba campus of the Federal Technical University of Paraná. The room is at the “Department of Business and Community Relations”, what makes a lot of sense! :-)

The day started with a quick setup, with a simple 8-port switch, and a couple of power strips. It tooks us a few minutes to figure what was blocked or not on the corporate network, and almost everyone who needs connections that are usually blocked in such environments already had their VPN setups so we were able to get started right after that.

We are taking notes live on mozilla’s piblic etherpad site

Today we accomplished quite a lot:

  • analyzed the pending issues for the ruby2.3 transition issues, categorizing the missing packages into “needs a binNMU now”, “needs a binNMU after switching the default to ruby2.3”, and “broken”.
  • ruby-defaults uploaded to experimental switching to ruby2.3 as default, and dropping support for ruby2.2
  • ruby-gsl fixed to build against GSL 2.x (was blocking ruby2.3 transition)
  • #816253: ruby-fast-gettext: fix FTBFS issue and import a new upstream
  • ruby-aws: several issues fixed
  • ruby-binding-of-caller: fixed rubygems-integration
  • fixed ruby-kakasi-ffi (again)
  • made ruby-blockenspiel arch:any again
  • ruby-fast-gettext 1.0.0-1 (fix ftbfs 816253)
  • ruby-aws-sdk: new upstream, debcheck fix and several bumps
  • ruby-fcgi – dropped transitional packages + refreshed packaging with -w
  • ruby-sshkit 1.8.0
  • ruby-beautify: new upstream and few minor fixes
  • asciidoctor (new version sponsored)
  • capistrano 3.4.0 (ftbfs #795724, #802734)
  • #816254: ruby-packetfu: FTBFS: expected NameError with “uninitialized constant PacketFu::FakePacket”, got #
  • updated rake to 10.5.0; making it not include -I/usr/lib/ruby/vendor_ruby when running tests
  • triaged an closed open bugs on ruby-httpclient that do not apply anymore.
  • updated ruby-httpclient to get rid of warnings in apt-listbugs under Ruby 2.3
  • ruby-packetfu (fix ftbfs #816254) by @kanashiro
  • investigated extension/rdepends build failing with ruby2.3-only
  • applied upstream patch to ruby to fix extension ftbfs when extension uses c++
  • ruby-albino 1.3.3-4 (#813644)
  • basic user-level testing using ruby2.3 as default:
    • chef WORKS mostly; it seems ohai segfaults some times
    • rails autopkgtest FIXED Could not find gem ‘binding_of_caller (>= 0.7.2)’, which is required by gem ‘web-console (~> 2.0)’, in any of the sources.
    • vagrant WORKS
    • redmine autopkgtest WORKS
    • apt-listbugs FIXED warnings (e.g. try `apt-listbugs list $pkg`); caused by ruby-httpclient
    • nanoc WORKS
  • capistrano 3.4.0-1 (#795724, #802734) by @sbadia + @terceiro

Bits from the Debian Continuous Integration project

11 de Dezembro de 2015, 18:58, por Antonio Terceiro

It’s been almost 2 years since the Debian Continuous Integration project has been launched, and it has proven to be a useful resource for the development of Debian.

I have previously made a an introductory post, and this this is an update on the latest developments.

Infrastructure upgrade

Back in early 2014 when Debian CI was launched, there were less than 200 source packages with declared test suite metadata, and using a single worker machine polling the archive for updates and running tests sequentially in an infinite loop (“the simplest thing that could possibly work”) was OK-ish.

Then our community started an incredible, slow and persistent effort to prepare source packages for automated testing, and we now have almost 5,000 of them. The original, over-simplistic design had to be replaced.

The effort of transforming debci in a distributed system was started by Martin Pitt, who did an huge amount of work. In the latest months I was able to complete that work, to a point where I am confident in letting it run (mostly) unatended. We also had lots of contributions to the web UI from Brandon Fairchild, who was a GSOC intern in 2014, and continues to contribute to this date.

All this work culminated in the migration from a single-worker model to a master/workers setup, currently with 10 worker nodes. On busy periods all of those worker nodes will go on for days with full utilization, but even then the turnaround between package upload and a test run is now a lot faster than it used to.

Debian members can inspect the resource usage on those systems, as well as the length of the processing queue, by browsing to the corresponding munin instance (requires authentication via a SSL client certificated issued by

The system is currenly being hosted on a Amazon EC2 account sponsored by Amazon.

The setup is fully automated and reproducible. It is not fully (or at all) documented yet, but those interested should feel free to get in touch on IRC (OFTC, #debci)

Testing backend changed from schroot to lxc

Together with the infrastructure updates, we also switched to using lxc instead of schroot as backend. Most test suites should not be affected by this, but the default lxc settings might cause some very specific issues in a few packages. See for example #806542 (“liblinux-prctl-perl: autopkgtest failures: seccomp, capbset”)

Adding support for KVM is also in the plans, and we will get to that at some point.

Learn more

If you want to learn more on how you can add tests for your package, a good first start is the debci online documentation (which is also available locally if you install `debci`).

You might also be interested in watching the live tutorial (WebM, 469 MB!) that has been presented at Debconf 15 earlier this year, full of tips and real examples from the archive. It would be awesome if someone wanted to transcribe that into a text tutorial ;-)

How to get involved

There are a few ways you can contribute:

autodep8. if you are knowledgeable on a subset of packages that are very similar and can have their tests executed in a similar way, such as “$Language libraries”, you might consider writing a test metadata generator so that each package does not need to declare a debian/tests/control file explicitly, requiring only The `Testsuite:` header in debian/control.

Ruby and Perl are already covered, and there is initial support for NodeJS. Adding support for new types of packages is very easy. See the source repository.

If you manage to add support for your favorite language, please get in touch so we can discuss whitelisting the relavant packages in so that they will get their tests executed even before being uploaded with the proper `Testsuite:` control field.

autopkgtest. autopkgtest is responsible for actually running your tests, and you can use it to reproduce test runs locally.

debci. debci is the system running in (version 1.0, currently in testing, is exactly what is running up there, minus a version number and a changelog entry).

It can also be used to have private clones of, e.g. for derivatives or internal Debian-related development. See for example the Ubuntu autopkgtest site.

Getting in touch

For maintainer queries and general discussion:

  • mailing list:
  • IRC: #debian-qa on OFTC. Feel free to highlight `terceiro`

For the development of debci/autopkgtest/autodep8

  • mailing list:
  • IRC: #debci on OFTC

Apoie a Software Freedom Conservancy

2 de Dezembro de 2015, 16:02, por Antonio Terceiro

A Software Freedom Conservancy é uma organização sem fins lucrativos que fornece “personalidade jurídica” a projetos de software livre, o que possibilita que os projetos recebam doações, emitam recibos sem precisarem passarem pelo processo árduo de formalizarem as suas próprias organizações.

Projetos membros da Conservancy: QEMU, git, Inkscape, Samba, e vários outros

Uma outra atividade muito importante que a Conservancy desempenha é a de combater violações da GPL para os projetos membros. Por exemplo ela no momento está numa batalha judicial contra a VMWare onde a mesma é acusada de violar da GPL no Linux (o kernel, como você já sabe) na distribuição de um de seus produtos proprietários de virtualização.

Na última Debconf em Agosto deste ano, a Software Freedom Conservancy anunciou um programa onde membros do Debian podem escolher delegar à Conservancy os direitos de garantir o cumprimento da GPL nos seus projetos.

Garantir o cumprimento da GPL é uma tarefa árdua, e precisa de recursos para poder pagar as pessoas. E pode te trazer inimigos poderosos: por exemplo, em função da ação contra a VMWare a Conservancy teve palestras em eventos canceladas na última hora, e perdeu patrocinadores.

Para dar continuidade às suas atividades, a Conservancy está com uma campanha para ter o apoio de indivíduos, de forma que os patrocinadores corporativos tenham menos peso no seu financiamento. Se você se importa com a GPL e pode contribuir, por favor faça a sua parte!

Torne-se um apoiador da Conservancy

DebConf15, testing debian packages, and packaging the free software web

30 de Agosto de 2015, 19:12, por Antonio Terceiro

This is my August update, and by the far the coolest thing in it is Debconf.


I don’t get tired of saying it is the best conference I ever attended. First it’s a mix of meeting both new people and old friends, having the chance to chat with people whose work you admire but never had a chance to meet before. Second, it’s always quality time: an informal environment, interesting and constructive presentations and discussions.

This year the venue was again very nice. Another thing that was very nice was having so many kids and families. This was no coincidence, since this was the first DebConf in which there was organized childcare. As the community gets older, this a very good way of keeping those who start having kids from being alienated from the community. Of course, not being a parent yet I have no idea how actually hard is to bring small kids to a conference like DebConf. ;-)

I presented two talks:

  • Tutorial: Functional Testing of Debian packages, where I introduced the basic concepts of DEP-8/autopkgtest, and went over several examples from my packages giving tips and tricks on how to write functional tests for Debian packages.
  • Packaging the Free Software Web for the end user, where I presented the motivation for, and the current state of shak, a project I am working on to make it trivial for end users to install server side applications in Debian. I spent quite some hacking time during DebConf finishing a prototype of the shak web interface, which was demonstrated live in the talk (of course, as usual with live demos, not everything worked :-)).

There was also the now traditional Ruby BoF, where discussed the state and future of the Ruby ecosystem in Debian; and an in promptu Ruby packaging workshop where we introduced the basics of packaging in general, and Ruby packaging specifically.

Besides shak, I was able to hack on a few cool things during DebConf:

  • debci has been updated with a first version of the code to produce britney hints files that block packages that fail their tests from migrating to testing. There are some issues to be sorted out together with the release team to make sure we don’t block packages unecessarily, e.g. we don’t want to block packages that never passed their test suite — most the test suite, and not the package, is broken.
  • while hacking I ended up updating jquery to the newest version in the 1.x series, and in fact adopting it I guess. This allowed me to drop the embedded jquery copy I used to have in the shak repository, and since then I was able to improve the build to produce an output that is identical, except for a build timestamp inside a comment and a few empty lines, to the one produced by upstream, without using grunt (.

Miscellaneous updates