about archives contact posts tags

my hackergotchi

Since you're already here and don't want to pass by, welcome to my webpage!

One may wonder what Pimentola is. Well, according to Kalevala, it is a very cold location somewhere in the far North. The word means something like a "region of darkness". That's why it is dark over there. You can check an article on Pohjola to learn a bit more.

Hope you're not afraid of cold and darkness.

Here is my monthly log covering what I have been doing for Debian in March 2018.

Debian website

Added new files

  • english/security/2018/dsa-4127.{data,wml},

  • english/security/2018/dsa-4128.{data,wml},

  • english/security/2018/dsa-4129.{data,wml},

  • english/security/2018/dsa-4131.{data,wml}

  • english/security/2018/dsa-4132.{data,wml},

  • english/security/2018/dsa-4135.{data,wml},

  • english/security/2018/dsa-4138.{data,wml},

  • english/security/2018/dsa-4142.{data,wml}

  • english/security/2018/dsa-4143.{data,wml},

  • english/security/2018/dsa-4144.{data,wml},

  • english/security/2018/dsa-4147.{data,wml},

  • english/security/2018/dsa-4148.{data,wml}

  • english/security/2018/dsa-4149.{data,wml},

  • english/security/2018/dsa-4150.{data,wml},

  • english/security/2018/dsa-4152.{data,wml}

Translated new pages into Russian

Translated historical pages into Russian

Synchronized translated pages with the original ones

Website-related scripts


Debian packages

Uploaded packages

Uploaded packages to the NEW queue

Bugs (except l10n bugs)

Debian Mailing Lists, Listarchive Review

Reviewed 72 spam reports.

Posted Sun Apr 1 10:32:24 2018 Tags:

As I wrote earlier Debian migrates from Alioth to Salsa. In the previous post I've explained how to batch import Alioth repositories for which one has local clones with the help of a small and ugly Perl script. But this is just a part of what should be done. This time I modified the scipt to change Vcs-{Browser,Git} URLs in the debian/control files from Alioth to Salsa, commit changes, change git remote, and push. Don't expect the code to be beautiful or efficient, it just works for me.

So, to use the script with the other team's repositories (other than Debian Emacs Addons Packaging Team) one needs to slightly change the $salsa, $alioth, $salsa_origin variables. Also, it is possible to black list directories with the help of grep in @dirs declaration. If you want to silence git, then append >/dev/null 2>/dev/null to the corresponding git commands.

Yes, I understand that I should add this URLs updating functionality to the original script in the first place, but at the time I wrote it I was not ready to spend more time on it. And since the migration is rather a one-shot thing, I don't want to polish it now. Therefore, be careful while using it for your stuff. There are no guarantees that it will work for you or will not break anything.


use warnings;
use strict;

use File::Slurp;

my $root = $ARGV[0];

my $salsa = "https://salsa.debian.org/emacsen-team/";
my $alioth = qr/https:\/\/anonscm\.debian\.org\/c?git\/pkg-emacsen\/pkg\//;

my $salsa_origin = 'git@salsa.debian.org:emacsen-team/';

my $commit_message = "Change Vcs-{Browser,Git} URL to salsa.debian.org";

opendir my $dh, $root or die "$0: opendir: $!";

my @dirs = grep { -d "$root/$_" && ! /^\.{1,2}$|^dh-.*(elpa)+/ } readdir($dh);

closedir $dh;

foreach my $dir (@dirs) {
    chdir $root . $dir;
    next unless (-e $root . $dir . "/debian/control");
    system "git pull origin master";
    my @lines = read_file( $root . $dir . "/debian/control" );
    my $git_new_origin;
    print "Processing $dir...\n";
    for (my $l = 0; $l <= $#lines; $l++) {
        unless ($lines[$l] =~ /$salsa/g) {
            if ($lines[$l] =~ m/Vcs-Browser: $alioth/) {
                $lines[$l] =~ s/(Vcs-Browser: ).*\/(.+)\.git\/$/$1$salsa$2/g;
            } elsif ($lines[$l] =~ m/Vcs-Git: $alioth/) {
                $lines[$l] =~ s/(Vcs-Git: ).*\/(.+\.git)$/$1$salsa$2/g;
                $git_new_origin = "git remote add origin $salsa_origin$2";
    write_file( $root . $dir . "/debian/control", @lines );
    system "git remote rm origin";
    if ($git_new_origin) {
        system $git_new_origin;
        system "git commit -a -m $commit_message";
        system "git push"
    } else {
        print "No changes, skipping...\n"

The script gets path to the root directory, containing the local clones, as an argument, so it should be ran as something like ./salsa-convert.pl ~/freedom/packaging/elpa/.

Posted Thu Mar 22 16:20:55 2018 Tags:

Here is my monthly log covering what I have been doing for Debian in February 2018.

Debian website

Added new files

Translated new pages into Russian

Translated historical pages into Russian

Synchronized translated pages with the original ones

Debian packages

Uploaded packages

Debian QA

Properly retitled WNPP bug reports

Debian Mailing Lists, Listarchive Review

Reviewed 235 spam reports.

Other stuff

Migrated my Emacs addons packages (I think 89 packages total) from Alioth to Salsa.

Posted Thu Mar 1 12:26:45 2018 Tags:

Debian migrates from Alioth to Salsa. Salsa is a GitLab instance, which is used to host git repositories for Debian.

I maintain about 90 Debian packages as a member of Debian Emacs Addons Packaging Team. So, migrating these packages by hand can easily become a hurdle. Fortunately, there's already some code written to ease migration. One can find Mehdi Dogguy's scripts, especially his import.sh script. I also found Enrico Zini's fork of the mentioned repository. Enrico Zini's fork contains some changes for better error handling. Since I just want to migrate a bunch of my repositories and don't want to mess things up, I choose to stick with the latter version of the import.sh script.

The first thing one needs to do is to generate access token with api scope. Then one needs to put that token to salsarc file in a directory containing import.sh script. Now it is possible to import Alioth repository to Salsa using something like as follows:

./import.sh https://anonscm.debian.org/cgit/pkg-emacsen/pkg/ace-link.git/ emacsen-team

Now we need to grab somewhere URLs of Alioth repositories to import to Salsa. Typically there is a Vcs-Browser field in debian/control file, which contains URL in question. So, I decided to write some small and ugly Perl script to batch process local clones of Alioth repositories. Note that I placed all clones of pkg-emacsen's Alioth repositories to the same directory. So, the code batch processing can be something like as following:


use warnings;
use strict;

my $root = $ARGV[0];

opendir my $dh, $root or die "$0: opendir: $!";

my @dirs = grep { -d "$root/$_" && ! /^\.{1,2}$|^dh-.*(elpa)+/ } readdir($dh);

closedir $dh;

DIR: foreach (@dirs) {
    print "Processing $_...\n";
    open my $fh, ( $root . $_ . "/debian/control" ) or die "$0: open: $!";
    while (<$fh>) {
        if (m/(Vcs-Browser: )(.*)/) {
            $_ =~ s/(Vcs-Browser: )(.*)/$2/g;
            system "./import.sh $_ emacsen-team";
            next DIR;
    close $fh;

To batch process local clones one needs to run the script with the path to the directory with the clones in question as an argument, that is

./batch.pl /home/dogsleg/freedom/packaging/elpa/

You can easily adopt the script to batch import repositories of any Debian team. Moreover, by tweaking grep in @dirs declaration one can blacklist subdirectories that should not be processed.

By the way, importing takes time. It took about 30 minutes to process 90 packages.

Posted Wed Feb 28 13:45:32 2018 Tags:

This is the first post to my brave new blog. I'll try to write some stuff there from time to time. Hope it will be useful for both the intended and arbitrary visitors. Also, I'd like to take advantage of the opportunity and give you some hints about myself. So...

  • Currently I live in Yekaterinburg, Russia

  • I have an equivalent of Ph.D in philosophy and work as a docent of philosophy department

  • My professional interests are in such fields as the foundations of mathematics, logic, theory of knowledge, and metaphysics

  • I'm passionate about free and open source software, I'm a Debian Developer

  • Although I'm OK with monotonous and boring work, I also like to program, so machines are involved in doing some boring stuff

  • I know some bits of Agda, Bash, C, Coq, Emacs Lisp, Haskell, Perl, Prolog, Python; and yes, I know many other geeky words too

  • Besides all of the stuff mentioned above I'm interested in genealogy and using genetics to reveal genealogical mysteries of the past

  • So, my Y-haplogroup is N1a2b (N-P43, VL97+), and my Mt-haplogroup is H1b2

  • I don't believe in psychological classifications stuff, but to make some fun of it I did several tests, and was classified as a logical intuitive introvert

  • And still there's some grains of truth in the above classification, e. g., it is typically hard for me to talk and deal face to face with strangers

  • In many activities I consider myself to be a kind of Wikipedia:WikiGnome

  • Also, I'm inspired by the beauty of nature

Posted Tue Feb 27 21:42:00 2018 Tags:

This page is powerly powered by powerful ikiwiki.