You are here

Agreguesi i feed

Elana Hashman: I'm running for the Open Source Initiative Board of Directors

Planet Debian - Sht, 02/03/2019 - 5:00md

The 2019 election for the Open Source Initiative Board of Directors is upon us, and I'm running for a seat on the board as an Individual Member.

The Open Source Initiative (OSI) is a shadowy cabal global non-profit organization that is primarily responsible for maintaining the Open Source Definition and list of approved Open Source Licenses, in addition to promoting and representing the wider open source community. If you use or care about open source software, the OSI impacts you!

Why am I running?

There are three main things that I'd like to accomplish as a board member:

  • Grow the OSI's membership, and build a more representative organization.
  • Defend the Open Source Definition and FOSS commons.
  • Define the future of open source, as part of the larger community.

You can read more of the specifics of my platform on the OSI election wiki.

Why vote for me?

My platform is actionable, specific, and measurable. For example, when I say I want to grow the OSI's membership, this isn't just a platitude: I'm running a membership drive to recruit 25 new members and I've nearly met my goal already! If you vote for me, it's easy for you to hold me accountable to these specific commitments.

I have a cross-cutting, boots-on-the-ground view of the challenges and needs of the FOSS community. I'm active as a developer in many different open source communities: the Python community, the Clojure community, the JavaScript community, the Kubernetes and CNCF communities. I bring a new, broad perspective to the Board as a primarily technical contributor from communities who are not yet deeply involved with the OSI, and pledge to represent their interests.

As a packager, I have a practical understanding of software licensing and redistribution. Defending the Open Source Definition isn't just about ideology for me: threats to the FOSS commons directly impact my work as a downstream developer. Packaging FOSS for distribution in Debian, applying patches, and sharing derivative works all require a deep understanding of the practice of software licenses and copyright. Hence, I have important and applicable experience for license review.

This sounds great, sign me up!

If you like what you've seen here, I'd be thrilled if you considered joining the OSI as a new member and voting for me.

You can sign up for a membership here.

Do let me know if I was your inspiration for joining, as I'd love to count you towards my membership drive! You can reach out via Mastodon, Twitter, or email. I'll also make sure to send you a reminder to vote in the election. Voting opens Monday, March 4 at 12:00am PST and closes Friday, March 15 at 11:59PM PST.

Junichi Uekawa: I've been writing Dockerfile for many of my personalprojects.

Planet Debian - Sht, 02/03/2019 - 9:23pd
I've been writing Dockerfile for many of my personal projects. However the resulting image isn't useful for me and I don't need root to build my tools. I am just interested in them building at all.

Steinar H. Gunderson: Two surprises

Planet Debian - Pre, 01/03/2019 - 11:32md

Two nasty surprises from today (both cost me a fair amount of time):

  • In C, signed multiplied by unsigned becomes... unsigned. Think twice before declaring your constants unsigned.
  • If you have an NVIDIA GPU and boot with “nomodeset”, your Intel GPU no longer is available to VA-API.

François Marier: Connecting a VoIP phone directly to an Asterisk server

Planet Debian - Pre, 01/03/2019 - 7:25pd

On my Asterisk server, I happen to have two on-board ethernet boards. Since I only used one of these, I decided to move my VoIP phone from the local network switch to being connected directly to the Asterisk server.

The main advantage is that this phone, running proprietary software of unknown quality, is no longer available on my general home network. Most importantly though, it no longer has access to the Internet, without my having to firewall it manually.

Here's how I configured everything.

Private network configuration

On the server, I started by giving the second network interface a static IP address in /etc/network/interfaces:

auto eth1 iface eth1 inet static address netmask

On the VoIP phone itself, I set the static IP address to and the DNS server to I then updated the SIP registrar IP address to

The DNS server actually refers to an unbound daemon running on the Asterisk server. The only configuration change I had to make was to listen on the second interface and allow the VoIP phone in:

server: interface: interface: access-control: refuse access-control: allow access-control: allow

Finally, I opened the right ports on the server's firewall in /etc/network/iptables.up.rules:

-A INPUT -s -p udp --dport 5060 -j ACCEPT -A INPUT -s -p udp --dport 10000:20000 -j ACCEPT Accessing the admin page

Now that the VoIP phone is no longer available on the local network, it's not possible to access its admin page. That's a good thing from a security point of view, but it's somewhat inconvenient.

Therefore I put the following in my ~/.ssh/config to make the admin page available on http://localhost:8081 after I connect to the Asterisk server via ssh:

Host asterisk LocalForward 8081

Kurt Kremitzki: My Free Software Activities in January & February 2019

Planet Debian - Pre, 01/03/2019 - 7:10pd

Hello all and welcome again to another of my monthly summary posts on my work in free software, with a focus on open engineering in Debian & Ubuntu. I'm fortunate to have the February 12th Debian 10 soft freeze deadline to scapegoat for my missed January update, and thanks too to February for being short enough to postpone it further and combine the two updates.

I've decided to go with a bit of a dryer chronological approach to this update as there's lots to cover. Worth highlighting, however:

  • New Debian upload for a FreeCAD 0.18 pre-release
  • New Debian upload for OpenFOAM. An upstream switch from to and a different versioning scheme results in a massive version bump, 4.1 to 1812. That's over 1800 versions better. (Seriously though, it's about a 2 year bump in changes.)
  • New Debian uploads for mesh generation softwares Gmsh 4.1.3 and Netgen 6.2.1810 -- though Netgen might miss Debian 10? It's stuck in the NEW queue.
  • FreeCAD is participating in Google Summer of Code and I'm looking for a student to mentor
Timeline January
  • Jan 6: Updated the FreeCAD bug tracker to the latest version.
  • Jan 12: Completed transition of FreeCAD PPAs to new versions of Coin3D & its Python bindings package Pivy, which resolved a major breakage caused by me on Dec 29 but was a necessary precursor to a FreeCAD 0.18 release; I just didn't execute it as well as I should have
  • Jan 16: Upload of OpenFOAM 1812.
  • Jan 18: Discussed on GitHub with the upstream of OpenCAMLib about release plans now that it is Python 3 compatible
  • Jan 19: Contact via GitHub issue with libMesh upstream about Debian packaging, with enthusiastic response.
  • Jan 19: FreeCAD pull request to fix Start Workbench behavior in Debian/Ubuntu since we can't include binary .FCStd examples, even though they're glorified ZIPs, for Debian Free Software Guidelines reasons (or can we? please contact me if you know otherwise)
  • Jan 25-27: Hosted Austin Debian Bug Squashing Party. Unfortunately, it wasn't very successful in drawing in people besides those already interested in Debian at the host venue, the ATX Hackerspace. I didn't want to over-advertise it since the venue was limited in capacity, which in retrospect was a mistake. Oh well, there was also plenty to learn for the next one. The following bugs were closed: 918479, 888026, 884092, 886538, 882510, 899099, 920525, 919711.
  • Jan 26: Announced the experimental, an instance of FreeCAD's homepage designed to test possible improvements to be had by moving away from shared hosting
  • Jan 28: Contact via GitHub issue with sfepy upstream about it failing to build from source to try to get help on issue potentially preventing it from being included in Debian 10.
  • Feb 4: Sponsored uploads of FreeCAD 0.18 pre-release and Gmsh 4.1.3 into Unstable, thanks Anton Gladky.
  • Feb 4: Announced, an experimental instance of FreeCAD's bug tracker designed to test possible improvements to be had from moving away from shared hosting
  • Feb 5: Regained control of abandoned FreeCAD Snap, which was a pre-release of 0.17, by way of the uploader returning from MIA and adding me.
  • Feb 9: Merge PR for FreeCAD-Homepage repo to add Expires headers and unset ETags to try to get better performance
  • Feb 13: Confirmed sfepy upstream fix resolved the issue, but it came a day after the soft freeze preventing re-entry to Testing.
  • Feb 23: Upload of python-fluids 0.1.73, experiment with Salsa GitLab CI.
  • Feb 25: Google Summer of Code organizations announced. FreeCAD participating under umbrella organization OpenCAx led by BRL-CAD. I created a GitHub issue for the project I'd like to mentor. I'm looking for a student interested in improving the state of Debian & Ubuntu packaging for FreeCAD and its ecosystem of packages. Particularly -- not everyone's first encounter with FreeCAD is with the latest and greatest version. If someone installs an old version and has a bad experience with an easily fixable packaging bug, we should try to tackle that issue to not drive away people who are already interested, but get a bad impression.
  • Feb 25: Sponsored upload of Netgen to Unstable, thanks Anton Gladky. Netgen had to re-enter NEW because I made a mistake in the naming of the binary package, so I had to revise the package to make libnglib-6.2 (for the .1810 release) replace libnglib-6.2.1804.
  • Feb 25: Sponsored upload of pycollada which adds Python 3 support and a python3- package, so it has to pass through NEW again.
  • Feb 28: Upload of OpenCASCADE, revising the package to revert to the default 'opencascade' installation paths instead of 'occt' (a not-so-great packaging decision as OpenCASCADE was my 2nd ever Debian package)

Verbal support by way of my contact info below is greatly appreciated, but if you want to help support my free software & open engineering work financially, I've made it easy with several options:

Any level of support is appreciated!


You can follow me on Twitter @thekurtwk.

I'm also now on Matrix, an open network for secure, decentralized communication,

Louis-Philippe Véronneau: Roundcube fr_FEM locale 1.4-rc1

Planet Debian - Pre, 01/03/2019 - 6:00pd

Roundcube 1.4-rc1 was released today and with it, I've released version 1.4-rc1 of my fr_FEM (French gender-neutral) locale.

I'm really excited by the new Roundcube version, as it adds a bunch of neat encryption stuff and more importantly, now uses a new responsive skin. I'm sure mobile users will enjoy that new feature a lot.

If you happen to run Roundcube, please test this new locale release! Feedback is always welcome.

You can find the locale here.

Paul Wise: FLOSS Activities February 2019

Planet Debian - Pre, 01/03/2019 - 1:28pd
Changes Issues Review Administration
  • FoxtrotGPS: merged patches
  • mokomaze: release
  • Debian wiki: reset email addresses, whitelist email addresses
  • Edited and sent Debian Misc Developer News edition 47
  • Respond to queries from the Debian derivatives census Outreachy project intern
  • Respond to queries from Debian users and developers on the mailing lists and IRC

The purple-discord upload and the apt-listchanges bug were sponsored by my employer. All other work was done on a volunteer basis.

Tim Retout: My Free Software Activities for Jan/Feb 2019

Planet Debian - Enj, 28/02/2019 - 10:55md

I have done a small amount of free software work! However, I’m going to cheat and list it since the start of the year.

Social groups

First, the fun stuff:

  • I organised the first two meetings of the Bedford Linux User Group. Fire engines were observed on both occasions, but this was pure coincidence.
  • I sent pull requests adding a fancy map to the new site. I need to follow up to make that mobile-friendly…
apt security

I sent PRs to adjusting the summary and providing instructions on using HTTPS.

I’m planning to extend this with a threat model for apt.

Firefox app mode

I wrote a patch for a bug I’ve been subscribed to for a while, requesting an “app” mode similar to Chrome:

I don’t have much hope that this will actually get reviewed or applied, because it conflicts with a new “earlyBlankFirstPaint” feature. Still, I had fun writing it, and if anyone can tell me how Mozilla development works, I’d be most grateful.

Libreoffice bugs

I filed a fun Writer bug:

If you insert a tall enough image into a page header in LibreOffice Writer, you can get it to add pages indefinitely. Impressively, the application remains quite responsive while it tries to flow the text forever…

…no idea how to fix this one though!

Molly de Blanc: Free software activities (February, 2019)

Planet Debian - Enj, 28/02/2019 - 10:39md

First and foremost I worked on planning LibrePlanet, the FSF’s annual conference and member’s meeting. Beyond that, I got to have a month that sounds very exciting. It was, in truth, quite exhausting but still a lot of fun! In spite of some setbacks (see below), things went well overall.

February activities (personal)

February activities (professional)

  • I attended FOSDEM! I listed this twice because, while the talk I gave was related to my Debian work, I also carried out FSF activities and meetings.
  • I attended and keynoted Copyleft Conf.
  • I wrote about dating as a free software issue.
  • I put a lot of time into planning LibrePlanet.

Chris Lamb: Free software activities in February 2019

Planet Debian - Enj, 28/02/2019 - 6:46md

Here is my monthly update covering what I have been doing in the free software world during February 2019 (previous month):

Debian LTS

This month I have worked 18 hours on Debian Long Term Support (LTS) and 12 hours on its sister Extended LTS project.

  • Investigated and triaged gsoap (CVE-2019-7659), kde4libs, python-django (CVE-2019-6975), spice-xpi (CVE-2010-2792), etc.

  • Frontdesk duties, responding to user/developer questions, reviewing others' packages, etc.

  • Issued DLA 1664-1 as it was discovered that there was a denial of service vulnerability (or even the ability to conduct private key recovery) within the elliptic curve cryptography handling in the Go programming language libraries.

  • Issued DLA 1667-1 for dovecot where a flaw in the TLS username handling could lead to an attacker being able to log in as anyone else in the system.

  • Issued DLA 1672-1 for curl, correcting three heap/stack-based vulnerabilities.

  • Issued DLA 1681-1 to address denial of service vulnerability in gsoap, a C/C++ language binding used for SOAP-based web services.

  • Issued DLA 1660-2 for rssh as it was discovered that the fix for the security vulnerability released for rssh in 2.3.4-4+deb8u2 introduced a regression that blocked scp(1) of multiple files.

  • Issued ELA 82-1 to address two vulnerabilities in the libarchive multi-format compression library.

Reproducible builds

Whilst anyone can inspect the source code of free software for malicious flaws almost all software is distributed pre-compiled to end users.

The motivation behind the Reproducible Builds effort is to ensure no flaws have been introduced during this compilation process by promising identical results are always generated from a given source, thus allowing multiple third-parties to come to a consensus on whether a build was compromised.

The initiative is proud to be a member project of the Software Freedom Conservancy, a not-for-profit 501(c)(3) charity focused on ethical technology and user freedom.

Conservancy acts as a corporate umbrella, allowing projects to operate as non-profit initiatives without managing their own corporate structure. If you like the work of the Conservancy or the Reproducible Builds project, please consider becoming an official supporter.

This month, I:

  • Made more progress towards making the Debian Installer images reproducible, performing some further testing of the generated images resulting in two patches to ensure that builds were reproducible regardless of both the user's umask(2) (#920631) and even the underlying ordering of files on disk (#920676).

  • Presented at Speck&Tech #31 entitled Open Security in Trento, Italy.

  • Implemented a check in the Lintian static analysis tool that performs automated checks against Debian packages in order to add a check for .sass-cache directories. As as they contain non-deterministic subdirectories they implicitly cause an unreproducible build. (#920593)

  • disorderfs is our FUSE-based filesystem that deliberately introduces non-determinism into filesystems for easy and reliable testing. In February I fixed an issue this week in the handling of the fsyncdir system call to ensure dpkg(1) can "flush" /var/lib/dpkg correctly [...].

  • strip-nondeterminism is our tool that post-processes files to remove known non-deterministic output. This month I adjusted its behaviour to de-duplicate hardlinks via stat(2) before processing to avoid issues when handling files in parallel; as the per-filetype handlers are yet currently guaranteed to be atomic, one process could temporarily truncate a file which can cause errors in other processes operating on the "same" file under a different pathname. This was thus causing package build failures in packages that de-duplicate hardlinks in their build process such as the Debian Administrator's Handbook. (#922168)

  • diffoscope is our in-depth "diff-on-steroids" utility which helps us diagnose reproducibility issues in packages. This month, I made the following changes:

    • Improve the displayed comment when falling back to a binary diff to include the file's type. (#49)
    • Add a --exclude-directory-metadata=recursive option to support ignoring timestamp (etc.) differences within nested containers. (#907600).
    • Add support for comparing .crx Chrome browser extensions. (#41)
    • Adjust the behaviour to not look for adjacent -dbgsym Debian package files automatically anymore to align better with users' expectations. The existing behaviour can be re-enabled by specifying the new --use-dbgsym flag (#44 / #920701).
    • Add support for comparing MP3 and files with similar metadata. (#43)
    • Replace the literal xxd(1) output in tests/data/hello.wasm with its binary equivalent (#47) and ensure both WebAssembly test data files are actually unique. (#42)
    • Catch tracebacks when mounting invalid filesystem images under guestfs. [...]
    • Fix tests when using Ghostscript 9.20 vs 9.26 for the Debian stable distribution and for stable with the security repositories enabled. [...][...]
    • Compare .asc PGP signatures as text, not as a hexdump of the text. (#908991).
    • Replace over 8 MB of Android boot ROM test suite fixtures with 14 KB equivalents to reduce the size of the release tarball. (#894334).
    • Additionally compare pgpdump(1) output when comparing PGP signatures. [...]
    • --help output improvements:
      • Include links to the diffoscope homepage and bug tracker. [...]
      • Refer to the Debian package names when indicating how to obtain the tlsh and argcomplete Python modules. [...]
      • Indent and wrap the list of supported file formats. [...]
    • Adopt the Black code formatter:
      • Run against the existing source code. [...].
      • Add an initial black setup in a PEP 518 pyproject.toml file [...], updating to include it in future release tarballs. [...]
      • Add a test to ensure future source code satisfies the formatter. [...]
      • Allow GitLab CI failures in stable-bpo due to new dependency. [...]
    • Drop a DOS/MBR "source string" test. [...]
    • Drop ubuntu-devel from internal test matrix due to a linux-firmware package installation issue. [...]
    • Uploaded version 112 to Debian unstable, dropped an errant </ul> from the website [...] and also applied the "black" code formatter to the client [...].
  • Updated the SSL certificate for to ensure validation after the deprecation of TLS-SNI-01 validation in LetsEncrypt, increased the diskspace and memory available for and kept up to date [...].

  • Filed upstream pull requests for the python-octaviaclient component of the Openstack framework [...] and the Sphinx Python documentation generator [...] to make their

  • Submitted seven patches to fix specific reproducibility issues in heudiconv, libiio, lmfit-py, node-lunr, python-octaviaclient, sphinx & x2gobroker.

  • Drafted, published and publicised our weekly reports. (#197, #198, #199 & 200) and categorised a huge number of packages and issues in the Reproducible Builds "notes" repository.

Jonathan Carter: Free Software Activities (2019-02)

Planet Debian - Enj, 28/02/2019 - 6:21md
I took this picture early in February in Brussels right before the FOSDEM conference.

2019-01-31: Upload new upstream release of gnome-shell-extension-remove-dropdown-arrows (11-1) to debian unstable

2019-01-31: Test lastest d-i build with updated buster artwork upload. First time I added official new Debian artwork to d-i, doesn’t look too horrible eh?

debian-installer with buster artwork.

2019-02-02: Day 1 of FOSDEM. Caught the debbug during the week but still got to see many Debianites and finally got an ‘apt install anarchy’ t-shirt that I’ve wanted for the longest time.

Debian booth at FOSDEM where various merchandise was for sale.

2019-02-03: Day 2 of FOSDEM. Had some good discussions with Sledge regarding Debian live roadmap for buster and bullseye, attended useful session on GRUB upstream and collaboration with distributions. Won second place in LPI sysadmin quiz competition finals.

LPI Quiz finalists at FOSDEM (photo: LPI Europe)

2019-02-03: DebConf committee meeting (with 4 out of the 5 DebConf committee members being present in person during FOSDEM!) discussing the Haifa and Lisbon bids, each of their repercussions and deciding on a time for the public vote.

2019-02-04: Did some hacking on timezone module for distro-installer on BRU-DOH flight.

2019-02-05: Advocate a prospective debian developer for their new-maintainer process.

2019-02-06: Sponsor package: libcxx-serial (1.2.1-1) ( request).

2019-02-06: Review package: owlrl (5.2.0-1) ( request) (needs some more work).

2019-02-06: Review package: rumur (2019.02.01-1) ( request) (needs some more work).

2019-02-06: Sponsor package: elinks (0.13~20190125-2) ( request) and granted DM permissions.

2019-02-06: File ITP for mozilla-deepspeech (ITP: #921519).

2019-02-07: Review package owlrl (5.2.0-1) ( request) (needs some more work).

2019-02-07: Sponsor package rumur (2019.02.04-1) ( request).

2019-02-07: Sponsor package owlr (5.2.0-1) ( request).

2019-02-07: Sponsor package dhcpcd5 (7.1.0-1) (email request) and granted DM permissions.

2019-02-07: Review package eggdrop (1.8.4-3) ( request) (needs some more work).

2019-02-07: Review package platformio (3.6.4-1) (#debian-python request) (needs some more work).

2019-02-11: Sponsor package blastem ( ( request) (Closes: #922003).

2019-02-08: Take AIMS Desktop 2018.1 through full-cycle testing for updated release.

2019-02-12: Upload preload (0.6.4-5~exp3) to debian experimental.

2019-02-13: Upload new upstream version of calamares (3.2.4-1) to debian unstable.

2019-02-13: Upload new native package version of live-wrapper (0.8) to debian unstable.

2019-02-13: NMU Upload package ibus (1.5.19-2) to debian unstable (Closes: #905790).

2019-02-13: Upload preload (0.6.4-5) to debian unstable (Closes: #920197).

2019-02-15: Upload calamares (3.2.4-2) to debian unstable (Closes: #922105).

2019-02-15: Upload calamares-settings-debian (10.0.18-1) to debian unstable.

2019-02-16: Sponsor package ocaml-mm (0.4.0-1) (irc request).

2019-02-16: Install test Debian 9.8 Release Live images for release.

2019-02-18: Upload new upstream version of toot (0.21.0-1) to debian unstable.

2019-02-19: Sponsor package liquidsoap (1.3.4-1) (irc request) and granted DM permissions.

2019-02-21: Upload package calamares (3.2.4-3) to debian unstable, file unblock request for transition to testing (#922826).

2019-02-22: Adopt and upload package calcoo (1.3.18-7) to debian unstable (Closes: #922897).

2019-02-22: Adopt and upload package tetzle (2.1.3+dfsg1-2) to debian unstable (Closes: #922886).

2019-02-22: Adopt and upload package fracplanet (0.5.1-3) to debian unstable (Closes: #922896).

2019-02-22: Adopt and upload package connectagram (1.2.9-2) to debian unstable (Closes: #922910).

2019-02-22: Adopt and upload package fractalnow (0.8.2-2) to debian unstable (Closes: #922898).

2019-02-25: Adopt and upload package tanglet (1.5.3-2) to debian unstable (Closes: #922909).

2019-02-25: Adopt and upload package gnubik (2.4.3-3) to debian unstable (Closes: #922892).

2019-02-25: Upload new upstream version of gnome-shell-extension-dashtodock (65-1) to debian unstable.

2019-02-25: Upload new native package version of ldm-themes (18.02.1) to debian unstable.

2019-02-25: Sponsor package xsoldier (1.8-6) to debian unstable (Closes: #923102) ( request).

2019-02-25: Do a bunch of drive-by reviews on ahead of the hard freeze that is quickly approaching.

2019-02-26: Upload new upstream version of gnome-shell-extension-tilix-dropdown (5.3-1) to debian unstable

2019-02-26: Test-drive latest debian-edu builds. For the record I didn’t contribute to debian-edu during this release, but I’m impressed with all the work that they’ve done. (unfortunately current builds have some issues with installing, will test again soon).

Debian-edu installation media bootscreen.

2019-02-26: Upload new upstream version of python3-flask-api (1.1+dfsg-1) (team upload) (Closes: #911004, #911003).

2019-02-26: Upload new upstream version of python3-flask-testing (0.7.1-1) (team upload) (Closes: #920478).

2019-02-26: Upload new upstream version of python3-adal (1.2.1-1) (team upload).

2019-02-28: Release new upstream bug fix version of zram-tools (

2019-02-28: Upload new upstream version of zram-tools ( to debian unstable (Closes: #911748, #911746, #911749, #911747, #913611).

2019-02-28: Upload libaa (1.4p5-46) to debian unstable (Closes: #709435, #396824)

Russ Allbery: Review: Daughters of the North

Planet Debian - Enj, 28/02/2019 - 5:40pd

Review: Daughters of the North, by Sarah Hall

Publisher: Harper Perennial Copyright: 2007 ISBN: 0-06-143036-6 Format: Trade paperback Pages: 207

My name is Sister.

This is the name that was given to me three years ago. It is what the others called me. It is what I call myself. Before that, my name was unimportant. I can't remember it being used. I will not answer to it now, or hear myself say it out loud. I will not sign to acknowledge it. It is gone. You will call me Sister.

I was the last woman to go looking for Carhullan.

It's the unspecified near-future. The British economy, and then society, collapsed from climate change, flooding, and endless wars. The cities are now governed by a fascist emergency Authority, a permanent martial law that controls people's work assignments and allocations and that has required women to have birth control devices inserted. The narrator's marriage has collapsed with the society; her husband does not understand why she is so upset about things that can't be changed.

And so, at the start of the book, she carries out a careful plan to walk away, leaving the city and her marriage behind for the abandoned countryside. She goes to Carhullan: an isolated, self-sustaining farm run by women who refused to be registered and relocated and therefore were stripped of citizenship. A community from which men are barred.

(Let me express my deep gratitude to Hall for starting with her escape, and showing the background only in flashbacks. That authorial choice made this a much better book.)

Daughters of the North (published in the UK as The Carhullan Army) is clearly SF in subject matter: near future dystopia, with a twist of feminist separatism reminiscent of the peak of second-wave feminism. I read it because it won the James Tiptree Jr. Award for speculative fiction that explores and expands gender. But it was also a finalist for the Man Booker prize, with all that implies about writing quality and focus. So be warned: along with a book review, you're also getting an extended digression into the nature of genre and how books like this use the same premise for considerably different goals.

Let me be clear from the start: the writing in Daughters of the North is gorgeous.

Rain blew in from the summit of High Street, colder than before, soaking my face and clothes again. I tried to fasten my jacket but my fingers felt awkward and would not cooperate, so I held it closed over my chest. I peered into the squall. There was still no sign of the farm or even the outbuildings. All I could see were drifts of rain and the relentless brown withers of fell, appearing then disappearing. The adrenaline of the encounter had worn off. I had walked more than twenty miles to escape. And I had gambled with my life. Now I felt numb, and close to seizing up. All I wanted was water to drink, and to take the bag off my back, lie down, and go to sleep. It took all my energy to put one foot in front of the other and remain upright.

It is gorgeous in the way mimetic fiction so often is, where individual moments are sketched through sensory impressions and emotional reactions and given room to breathe and be felt. It's unhurried and deliberate, but still lean and focused, describing the transformation of a woman in a slim two hundred pages.

What it is not is opinionated. Or, more accurately, it's not forthright about its opinions. It describes the feelings and reactions of a woman who becomes known as Sister, it hints at the emotional undercurrents that led her to make the choices that she made, it describes her transformation in the communal culture of Carhullan, and then it stops. What conclusions one draws from that are left entirely to the reader.

I've become convinced by the definition of genre as a set of reading protocols rather than a specific setting or plot structure. (My exposure to this idea is primarily via Jo Walton, but it's a common idea in SF criticism.) Books like this are a convincing way to test that definition. I suspect that many science fiction readers will come away form Daughters of the North profoundly unsatisfied, muttering things like "but what happened then?" or "but were they right?" I also suspect that many readers of primarily mainstream fiction will slip happily into this book and add it to the mental pile of speculative fiction they enjoy. Or, even more likely, decide it's not speculative fiction at all. And, in a way, I think they would be right.

In Daughters of the North, the world is setting. But in speculative fiction, the world is a character. The difference between setting and character is that characters change and grow over the course of the story, at least in the reader's understanding. Setting does not, or if it does, it changes incidentally.

In the supplementary material at the end of the edition of this book that I read, Hall says that she wanted to explore what might draw someone away from the established order and towards extremism or militancy. By the end of this book, one does have some feel for why the narrator made that choice, but it's tenuous and contradictory and conditional. I think Hall does a beautiful job of illustrating how much of life is inherently tenuous and contradictory and conditional. Decisions are rarely crisp and clear, but they still change one's life. Sometimes someone abruptly stops enduring the unendurable, and then something new happens. I think it's very telling, and very sharply observed by Hall, that although the narrator is fleeing humiliation and oppression, the part of her former life that bothers her the most is the futility and purposelessness. Carhullan, despite a few characteristics of utopia, is also brutal and political. But its charismatic leader never fails to give the community a purpose and a goal.

For the reader approaching this book through the speculative fiction reading protocol, though, it can be profoundly frustrating. There are glimmers of the expected plot arc: this world is awful, and the main character recognizes that and decides to act. There is some movement along that arc. But for the reader expecting setting as character, for the world itself to grow and change, Daughters of the North is maddeningly ambivalent. Who exactly are the Authority? What are they thinking; what are their motives? What's the best way to fight them? Is it the way Carhullan fights them? Will it work? What will they do in response? Daughters of the North is uninterested in these questions.

I think it's close to impossible to provide in the same book both the deep sense of character and sensation of mimetic fiction and the sense of change and revolution and setting as character of speculative fiction. The mission to change the world is emotional and political; it demands engagement and consumes the oxygen of the plot. It doesn't leave room for closely-observed ambiguity or ambivalence, or for the quiet spaces in the center of the narrator's character that allow the reader to interpolate or project, to try to puzzle out the shape of friendship and society and courage in a society that is by turn fanatical and utopian. I can write the mimetic fiction reader's reaction to the SF objections: do you want your emotions spoon-fed to you? Why do you want the book to tell you what to think instead of working it out for yourself? If this book described the details of politics and revolution, it would turn into another operatic war story, and all of the fine detail would be lost.

And, to be clear, they're not wrong. But neither is the SF reader; it's just another way of reading.

Despite my appreciation of what Daughters of the North is doing, and the skill with which Hall wrote it, I fear I'm far closer to the SF camp. Here's my counter-argument: I don't want to be told what to think, but I want a fight. I don't want the book to hint at moral dilemmas; I want it to take a stand so that I can argue with it. Write a passionate defense for your utopia. Why is it better? What works? What doesn't? Is the change in political communication style inside Carhullan an aspect of gender, or something Jackie (the Carhullan leader) created, or something any group of people could create with the right discussion structure? The Authority is clearly awful and clearly wrong, but what's the replacement? Is it more Carhullans? Something else? What do you think will happen past the end of this book? Why?

It's not that I want to be spoon-fed, it's that I want to engage. I wanted the story to fight for something, to go out on a limb, to take a risk on its opinions, to declare for a side. Yes, the world is ambiguous and murky: now what? We still have to act, we still have to make decisions, and we still have to decide if those decisions were right or wrong. How do we do that? What criteria should we use? Is Jackie justified in the things she does in this story?

That's what you get out of a story where the world is a character. You get worlds with character growth, which means an argument about change. Political, social, technological, often all three. Daughters of the North almost gets there, gets so very close by the end of the book to making that core argument, but then still turns inward. To the last page, it's more interested in closely observing Sister than in portraying change in the world.

I think some people will adore this book, and it certainly deserves the Tiptree award. It's a far more subtle story of feminist separatism than many of its predecessors, and examines the idea from some interesting angles. It never bored me and never bogged down; it kept me turning the pages eagerly to the end of the story, and I think it succeeded within the goals of its own genre. But, deep in my heart, I'm a world-as-character reader.

Content warning for those who might want it: Daughters of the North contains a detailed torture scene, a scene I would call partner rape, and a few instances of graphic violence.

Rating: 7 out of 10

Ian Jackson: Planar graph layout, Pandemic

Planet Debian - Enj, 28/02/2019 - 1:24pd
ceb gave me the board game Pandemic Rising Tide for Christmas. I like it a lot. However, the board layout, while very pretty and historically accurate, is awkward for play. I decided to produce a replacement board design, with a schematic layout.

I've done the data entry for the adjacencies etc. on the board. But I need to lay out the resulting planar graph. I could have laid it out by hand but because I'm a programmer and like doing things the hard way, I thought I would use a computer to lay out the graph.

This quite large yak has involved a number of smaller yaks.

Firstly, I discovered that there does not seem to be any good free software for layout of a planar graph given a planar embedding (eg, an ordered adjacency list for each vertex). There are a lot of complaints that graphviz doesn't work quite right: you give it a planar graph and it produces a non-planar drawing. And there is no way to specify the exact embedding anyway, so if it manages a planar drawing it might choose a different embedding (ie, a different layout) to the one you want.

So I thought I would tackle this problem. I was quite uncertain of success - this has been a research project for me. I've done a bit of reading of the academic literature and the problem has been studied but the actual production of a nice diagram for my problem seemed only to be tackled in a nonfree software package.

On Monday I succeeded at the hard part, well enough to be sure that project is actually going to bear fruit. What a relief. Here is the layout my program currently comes up with (This is a straight line drawing of the dual of the adjacency graph of the regions, roughly.)

To do this I have had to:

  • Defeat cargo, the Rust curlbashware package manager, to let me have a local unpublished package ("crate" in Rust-speak) without committing to my own package source code the path on my laptop. This involved a horrendous wrapper script.
  • Write a competent doubly-linked-list library for Rust.
  • Write about a third of a planar graph handling library, including defining a file format, a minimal (and very poor) command line utility, an algorithm for computing duals, and so on.
  • Write my own implementations of algorithms to make a planar graph biconnected, and to triangulate it, and to compute a planar canonical order. Boost has algorithms to do this but they do not let you specify the outer face. (Much research from Goossen Kant was very helpful, in particular[4].)
  • Write and throw away a graph dual algorithm in Perl.
  • Glue Rust to Boost's Chrobak-Payne planar straight line drawing algorithm.
  • Glue Rust to GSL's simulated annealer (which I have used before) and hope for GSL siman to turn the very poor straight line drawing out of Chrobak-Payne into something pretty. Failure.
  • Hunt for a better optimisation libraries and algorithms and come across NLopt[1]. Happily there was already a reasonable rust-nlopt glue library. Flail a bit glueing my existing cost function into NLopt's Sbplx[2] and Augmented Lagrangian algorithms[3]. Fix bugs in my code and one bug in rust-nlopt.
  • Write a real-time graphical viewer for the graph layout optimiser's debugging output. I ended up using PyQt; this was a mistake. My natural inclination was to use Tcl/Tk, but I thought PyQt would do more of the job for me. I ended up redoing most of what I thought would be done for me, and I had to fight Qt on a number of points.
  • Fix more bugs.

I will be writing more about this project, including publishing the relevant source code. But first I have some more tweaking etc. to do...


M. Chrobak, T.H. Payne, A linear-time algorithm for drawing a planar graph on a grid, Information Processing Letters 54 (1995) 241-246.
Steven G. Johnson, The NLopt nonlinear-optimization package,
T. Rowan, "Functional Stability Analysis of Numerical Algorithms", Ph.D. thesis, Department of Computer Sciences, University of Texas at Austin, 1990.
Andrew R. Conn, Nicholas I. M. Gould, and Philippe L. Toint, "A globally convergent augmented Lagrangian algorithm for optimization with general constraints and simple bounds," SIAM J. Numer. Anal. vol. 28, no. 2, p. 545-572 (1991); G. Birgin and J. M. Martínez, "Improving ultimate convergence of an augmented Lagrangian method," Optimization Methods and Software vol. 23, no. 2, p. 177-195 (2008).
Goossen Kant, Algorithms for Drawing Planar Graphs (Algoritmen voor het Tekenen van Planaire Grafen), PhD thesis, Rijksuniversiteit te Utrecht, 14 June 1993.

(edit 2018-02-27 22:16 Z to fix formatting, add Subject, and tags; -28 00:23 Z fix formatting of xref to another DW)


Tim Retout: Blog Migration

Planet Debian - Mër, 27/02/2019 - 11:24md

This evening I’ve migrated my blog to Hugo, and made it look a bit prettier. I apologise if I’ve broken any links - in particular, I don’t think listings of blog posts in a particular day or month are working.

Iustin Pop: The perils of continuous upgrades

Planet Debian - Sht, 23/02/2019 - 10:32md

Many, many years ago when I moved my primary desktop to Linux I was overjoyed at the “continuous upgrade” path, and not having to reinstall things. Of course this is a much better proposition than having to every-so-often reinstall just to remove clutter, because it makes people (packagers/authors) think about long-term choices.

However, it has also some downsides. Case in point, harmless cruft, but still cruft…

About a year ago, as I was running regular a apt-get upgrade and for some reason was actually reading the output, when I saw this:

Warning: Old configuration style found in /etc/texmf/updmap.d Warning: For now these files have been included, Warning: but expect inconsistencies. Warning: These packages should be rebuild with tex-common. Warning: Please see /usr/share/doc/tex-common/NEWS.Debian.gz Warning: found file: /etc/texmf/updmap.d/10tipa.cfg

I go and read the news file, and to my surprise—I thought this would have been a recent change—I see:

tex-common (3.7) unstable; urgency=low * updmap file handling changed … For developers: Since version 3 of tex-common, which conincides and requires TeX Live 2011 and upward, updmap now behaves differently then before: It reads *all* available updmap.cfg files. That means that the handling of updmap.d snippets in /etc/texmf/updmap.d has changed. Packages rebuild with tex-common >= 3 will not install anything in this directory. … Thu, 12 Apr 2012 07:53:27 +0900

So this was deprecated more than 5 years ago… When did this file get installed on the machine?

$ ls -l /etc/texmf/updmap.d/10tipa.cfg -rw-r--r-- 1 root root 295 Jun 19 2006 /etc/texmf/updmap.d/10tipa.cfg

So, at the end of 2017, I still had a configuration file that was 11 years old and was deprecated more than 5 years before. Fortunately the contents was irrelevant, but I’m curious, how much cruft there is that would go away on a fresh install with the exact same package list? Well, I won’t find out, because I don’t plan to reinstall ☺

I do wonder however, as workloads move to cloud, where it’s more likely to do fresh installs than upgrades, if Debian will continue to provide such long-lived support.

Next step, deciding if I still need /etc/xcdroast.conf, whose package was removed from the archive in 2012…

Dirk Eddelbuettel: RVowpalWabbit 0.0.13: Keeping CRAN happy

Planet Debian - Pre, 22/02/2019 - 1:42md

Another small RVowpalWabbit package update brings us version 0.0.13. And just like Rblpapi yesterday, we have a new RVowpalWabbit update to cope with staged installs which will be a new feature of R 3.6.0. No other changes were made No new code or features were added.

We should mention once more there is a newer, but not on CRAN, package rvw thanks to the excellent GSoC 2018 and beyond work by Ivan Pavlov (who was mentored by James and myself) so if you are into Vowpal Wabbit from R go check it out.

More information is on the RVowpalWabbit page. Issues and bugreports should go to the GitHub issue tracker.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

Dirk Eddelbuettel: Rblpapi 0.3.8: Keeping CRAN happy

Planet Debian - Pre, 22/02/2019 - 3:28pd

A minimal maintenance release of Rblpapi, now at version 0.3.9, arrived on CRAN earlier today. Rblpapi provides a direct interface between R and the Bloomberg Terminal via the C++ API provided by Bloomberg (but note that a valid Bloomberg license and installation is required).

This is the ninth release since the package first appeared on CRAN in 2016. It accomodates a request by CRAN / R Core to cope with staged installs which will be a new feature of R 3.6.0. No other changes were made (besides updating a now-stale URL at Bloomberg in a few spots and other miniscule maintenance). However, a few other changes have been piling up at the GitHub repo so feel free to try that version too. Details of this release below:

Changes in Rblpapi version 0.3.9 (2019-02-20)
  • Add 'StagedInstall: no' to DESCRIPTION to accomodate R 3.6.0.

Courtesy of CRANberries, there is also a diffstat report for the this release. As always, more detailed information is on the Rblpapi page. Questions, comments etc should go to the issue tickets system at the GitHub repo.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

Iustin Pop: QEMU SCSI Tape passthrough

Planet Debian - Pre, 22/02/2019 - 12:22pd

Just a note to myself since I searched the internet for a long time to make this work…

I needed to test a really trivial change to the scsi tape driver code, but didn’t want to reboot an actual machine that has a tape drive. So I thought, maybe QEMU can pass-through an arbitrary device?

Indeed it can, but all the examples one finds are either

  • referring to libvirt or openstack or another random virtualisation tool, and their xml config files;
  • and most likely referring to disks/block devices, for which there are simpler ways to do things.

After many fruitless searches, finally found a reddit comment that shows how it is done for, well, (cdrom) disks again, but in a generic way. A bit of massaging results in:

$ qemu … \ -drive id=footape,if=none,format=raw,readonly=off,file=/dev/sgX \ -device virtio-scsi-pci,id=scsi0 \ -device scsi-generic,bus=scsi0.0,drive=footape

Note 1: The special note is that tapes shouldn’t be addressed by their regular devices (stX/nstX), since that would actually open the tape and hangs without a tape. You need to find the scsi generic device for it (via sg_map), and use that as the file argument to the drive parameter.

Note 2: Of course, if running qemu unprivileged, don’t forget permissions on the ‘sg’ device.

After that, all good. Almost, that is: while mt status and mt eject work, at least for my tape drive, mt tell said (in the virtual machine):

# mt tell /dev/nst0: Input/output error # dmesg … [ 128.799466] st 1:0:0:0: [st0] Sense Key : Illegal Request [current] [ 128.800172] st 1:0:0:0: [st0] Add. Sense: Invalid field in cdb

Well, even with that, it was good enough for me, so thought to write this down. And yes, I ejected the tape from the VM.

Bits from Debian: Infomaniak Platinum Sponsor of DebConf19

Planet Debian - Enj, 21/02/2019 - 3:45md

We are very pleased to announce that Infomaniak has committed to support DebConf19 as a Platinum sponsor.

"Infomaniak is proud to support the annual Debian Developers' Conference", said Marc Oehler, Chief Operating Officer at Infomaniak. "The vast majority of our hostings work using Debian and we share this community's values: promoting innovation whilst ensuring that security, transparency and user freedom remains top priority."

Infomaniak is Switzerland's largest web-hosting company, also offering backup and storage services, solutions for event organizers, live-streaming and video on demand services. It wholly owns its datacenters and all elements critical to the functioning of the services and products provided by the company (both software and hardware).

With this commitment as Platinum Sponsor, Infomaniak contributes to make possible our annual conference, and directly supports the progress of Debian and Free Software helping to strengthen the community that continues to collaborate on Debian projects throughout the rest of the year.

Thank you very much Infomaniak, for your support of DebConf19!

Become a sponsor too!

DebConf19 is still accepting sponsors. Interested companies and organizations may contact the DebConf team through, and visit the DebConf19 website at

Vincent Sanders: A very productive weekend

Planet Debian - Mar, 19/02/2019 - 10:54md
I just hosted a NetSurf Developer weekend which is an opportunity for us to meet up and make use of all the benefits of working together. We find the ability to plan work and discuss solutions without loosing the nuances of body language generally results in better outcomes for the project.
Due to other commitments on our time the group has not been able to do more than basic maintenance activities in the last year which has resulted in the developer events becoming a time to catch up on maintenance rather than making progress on features.
Because of this the July and November events last year did not feel terribly productive, there were discussions about what we should be doing and bugs considered but a distinct lack of commuted code.
As can be seen from our notes this time was a refreshing change. We managed to complete a good number of tasks and actually add some features while still having discussions, addressing bugs and socialising.
We opened on the Friday evening by creating a list of topics to look at over the following days and updating the wiki notes. We also reviewed the cross compiler toolchains which had been updated to include the most recent releases for things like openssl, curl etc.
As part of this review we confirmed the decision to remove the Atari platform from active support as its toolchain builds have remained broken for over two years with no sign of any maintainer coming forward.
While it is a little sad to see a platform be removed it has presented a burden on our strained resources by requiring us to maintain a CI worker with a very old OS using tooling that can no longer be replicated. The tooling issue means a developer cannot test changes locally before committing so testing changes that affected all frontends was difficult.
Saturday saw us clear all the topics from our list which included:
  • Fixing a bug preventing compiling our reference counted string handling library.
  • Finishing the sanitizer work started the previous July
  • Fixing several bugs in the Framebuffer frontend installation.
  • Making the Framebuffer UI use the configured language for resources.
The main achievement of the day however was implementing automated system testing of the browser. This was a project started by Daniel some eight years ago but worked on by all of us so seeing it completed was a positive boost for the whole group.
The implementation consisted of a frontend named monkey. This frontend to the browser takes textural commands to perform operations (i.e. open a window or navigate to a url) and generates results in a structured text format. Monkey is driven by a python program named monkeyfarmer which runs a test plan ensuring the results are as expected.
This allows us to run a complete browsing session in an automated way, previously someone would have to manually build the browser and check the tests by hand. This manual process was tedious and was rarely completed across our entire test corpus generally concentrating on just those areas that had been changed such as javascript output.
We have combined the monkey tools and our test corpus into a CI job which runs the tests on every commit giving us assurance that the browser as a whole continues to operate correctly without regression. Now we just have the task of creating suitable plans for the remaining tests. Though I remain hazy as to why, we became inordinately amused by the naming scheme for the tools.
We rounded the Saturday off by going out for a very pleasant meal with some mutual friends. Sunday started by adding a bunch of additional topics to consider and we made good progress addressing these. 
We performed a bug triage and managed to close several issues and commit to fixing a few more. We even managed to create a statement of work of things we would like to get done before the next meetup.
My main achievement on the Sunday was to add WEBP image support. This uses the Google libwebp library to do all the heavy lifting and adding a new image content handler to NetSurf is pretty straightforward.


Subscribe to AlbLinux agreguesi