The diffoscope maintainers are pleased to announce the release of diffoscope
version 165. This version includes the following changes:
[ Dimitrios Apostolou ]
* Introduce the --no-acl and --no-xattr arguments [later collapsed to
--extended-filesystem-attributes] to improve performance.
* Avoid calling the external stat command.
[ Chris Lamb ]
* Collapse --acl and --xattr into --extended-filesystem-attributes to cover
all of these extended attributes, defaulting the new option to false (ie.
to not check these very expensive external calls).
[ Mattia Rizzolo ]
* Override several lintian warnings regarding prebuilt binaries in the
* source.
* Add a pytest.ini file to explicitly use Junit's xunit2 format.
* Ignore the Python DeprecationWarning message regarding the imp module
deprecation as it comes from a third-party library.
* debian/rules: filter the content of the d/*.substvars files
... isn't ready yet, but it's getting there.
I had planned to release a new version of SReview, my online video review and
transcoding system that I wrote originally for FOSDEM but is being used for
DebConf, too, after it was set up and running properly for FOSDEM 2020.
However, things got a bit busy (both in my personal life and in the world at
large), so it fell a bit by the wayside.
I've now also been working on things a bit more, in preparation for an
improved administrator's interface, and have started implementing a REST
API to deal with talks etc through HTTP calls. This seems to be coming
along nicely, thanks to
OpenAPI and the Mojolicious
plugin for parsing
that. I can now
design the API nicely, and autogenerate client side libraries to call
them.
While at it, because libmojolicious-plugin-openapi-perl isn't available
in Debian 10 "buster", I moved the docker
containers
over from stable to testing. This revealed that both
bs1770gain and
inkscape changed their command
line incompatibly, resulting in me having to work around those
incompatibilities. The good news is that I managed to do so in a way
that keeps running SReview on Debian 10 viable, provided one installs
Mojolicious::Plugin::OpenAPI from CPAN rather than from a Debian
package. Or installs a backport of that package, of course. Or, heck,
uses the Docker containers in a kubernetes environment or some such --
I'd love to see someone use that in production.
Anyway, I'm still finishing the API, and the implementation of that API
and the test suite that ensures the API works correctly, but progress is
happening; and as soon as things seem to be working properly, I'll do a
release of SReview 0.6, and will upload that to Debian.
Hopefully that'll be soon.
I require moderately powerful boxes for my work. Moderately powerful boxes
generate a non-negligible amount of heat, and therefore require appropriate
cooling. Most cooling solutions involve a certain degree of noise, which I
dislike.
Water-cooling is supposed to be the most effective solution for noise
reduction, but it always felt like too much of a hassle to try to me.
Considering the various solutions I've tried in the past years, two observations
I've made really stick out:
Noctua's reputation for CPU cooling is well-earned.
A "silent" (meaning sound-proofed) case, isn't. At least, not anymore.
I've tried numerous coolers in the past, some of monstrous proportions (always
thinking that more mass must be better, and reputable brands are equally good),
but I was never really satisfied; hence, I was doubtful that trying yet another
cooler would make a difference. I'm glad I tried the
Noctua NH-D15 anyway. With some
tweaking to the fan profile in the BIOS, it's totally inaudible at normal to
medium workloads, and just a very gentle hum at full load subtle enough to
disappear in the background.
For the past decade, I've also regularly purchased sound-proofed cases, but
this habit appears anachronistic now. Years ago, sound-proofed cases helped
contain the noise of a few HDDs. However, all of my boxes now contain NVMe
drives (which, to me, are the biggest improvement to computing since CPUs
going multi-core).
On the other hand, some of my boxes now contain powerful GPUs used for GPGPU
computing, and with the recent higher-end Nvidia and AMD cards all pulling
in over 300W, there is a lot of heat to manage. The best way to quickly dump
heat is with good airflow. Sound-proofing works against that. Its insulation
restricts airflow, which ultimately causes even more noise, as the GPU's fans
need to spin at very high RPMs. This is, of course, totally obvious in
hindsight.
I removed the front cover from a new GPU box, and the noise went down from
almost-hair-dryer to acceptable-whoosh levels. I'm wondering whether a
completely open box might not be even more effective.
The Rcpp team is proud to announce release 1.0.6 of Rcpp which arrived at CRAN earlier today, and has been uploaded to Debian too. Windows and macOS builds should appear at CRAN in the next few days. This marks the first release on the new six-months cycle announced with release 1.0.5 in July. As reminder, interim dev or rc releases will often be available in the Rcpp drat repo; this cycle there were four.
Rcpp has become the most popular way of enhancing R with C or C++ code. As of today, 2174 packages on CRAN depend on Rcpp for making analytical code go faster and further (which is an 8.5% increase just since the last release), along with 207 in BioConductor.
This release features six different pull requests from five different contributors, mostly fixing fairly small corner cases, plus some minor polish on documentation and continuous integration. Before releasing we once again made numerous reverse dependency checks none of which revealed any issues. So the passage at CRAN was pretty quick despite the large dependency footprint, and we are once again grateful for all the work the CRAN maintainers do.
Changes in Rcpp patch release version 1.0.6 (2021-01-14)
Changes in Rcpp API:
Replace remaining few uses of EXTPTR_PTR with R_ExternalPtrAddr (Kevin in #1098 fixing #1097).
Add push_back and push_front for DataFrame (Walter Somerville in #1099 fixing #1094).
Remove a misleading-to-wrong comment (Mattias Ellert in #1109 cleaning up after #1049).
Address a sanitizer report by initializing two private bool variables (Benjamin Christoffersen in #1113).
External pointer finalizer toggle default values were corrected to true (Dirk in #1115).
Changes in Rcpp Documentation:
Several URLs were updated to https and/or new addresses (Dirk).
Changes in Rcpp Deployment:
Added GitHub Actions CI using the same container-based setup used previously, and also carried code coverage over (Dirk in #1128).
Changes in Rcpp support functions:
Rcpp.package.skeleton() avoids warning from R. (Dirk)
Mainly to recall what happened last year and to give thoughts and plan for the upcoming year(s) I m once again revisiting my previous year (previous editions: 2019, 2018, 2017, 2016, 2015, 2014, 2013 + 2012).
Due to the Coronavirus disease (COVID-19) pandemic, 2020 was special for several reasons, but overall I consider myself and my family privileged and am very grateful for that.
In terms of IT events, I planned to attend Grazer Linuxdays and DebConf in Haifa/Israel. Sadly Grazer Linuxdays didn t take place at all, and DebConf took place online instead (which I didn t really participate in for several reasons). I took part in the well organized DENOG12 + ATNOG 2020/1 online meetings. I still organize our monthly Security Treff Graz (STG) meetups, and for half of the year, those meetings took place online (which worked OK-ish overall IMO).
Only at the beginning of 2020, I managed to play Badminton (still playing in the highest available training class (in german: Kader ) at the University of Graz / Universit ts-Sportinstitut, USI). For the rest of the year except for ~2 weeks in October or so the sessions couldn t occur.
Plenty of concerts I planned to attend were cancelled for obvious reasons, including the ones I would have played myself. But I managed to attend Jazz Redoute 2020 Dom im Berg, Martin Grubinger in Musikverein Graz and Emiliano Sampaio s Mega Mereneu Project at WIST Moserhofgasse (all before the corona situation kicked in). The concert from Ton Feinig & RTV Slovenia Big Band occurred under strict regulations in Summer, as well as Elektra Opera by Richard Strau in a very special setting (only one piano player instead of the orchestra because of a Corona case in the orchestra) in Autumn. At the beginning of 2020, I also visited Literaturshow Roboter mit Senf at Literaturhaus Graz.
The lack of concerts and rehearsals also severely impacted my playing the drums (including at HTU BigBand Graz), which pretty much didn t take place. :(
Grml-wise we managed to publish release 2020.06, codename Ausgehfuahangl. Regarding jenkins-debian-glue I tried to clarify its state and received some really lovely feedback.
I consider 2020 as the year where I dropped regular usage of Jabber (so far my accounts still exist, but I m no longer regularly online and am not sure for how much longer I ll keep my accounts alive as such).
Business-wise it was our seventh year of business with SynPro Solutions GmbH. No big news but steady and ongoing work with my other business duties Grml Solutions and Grml-Forensic.
As usual, I shared childcare with my wife. Due to the corona situation, my wife got a new working schedule, which shuffled around our schedule a bit on Mondays + Tuesdays. Still, we managed to handle the homeschooling/distance learning quite well. Currently we re sitting in the third lockdown, and yet another round of homeschooling/distance learning is going on those days (let s see how long ). I counted 112 actual school days in all of 2020 for our older daughter with only 68 school days since our first lockdown on 16th of March, whereas we had 213(!) press conferences by our Austrian government in 2020. (Further rants about the situation in Austria snipped.)
Book reading-wise I managed to complete 60 books (see Mein Lesejahr 2020 ). Once again, I noticed that what felt like good days for me always included reading books, so I ll try to keep my reading pace for 2021. I ll also continue with my hobbies Buying Books and Reading Books , to get worse at Tsundoku.
Hoping for vaccination and a more normal 2021, Schwuppdiwupp!
Before and during FOSDEM 2020, I agreed with the people (developers, supporters, managers) of the UBports Foundation to package the Unity8 Operating Environment for Debian. Since 27th Feb 2020, Unity8 has now become Lomiri.
Things got delayed a little recently as my main developer contact on the upstream side was on sick leave for a while. Fortunately, he has now fully recovered and work is getting back on track.
Recent Uploads to Debian related to Lomiri
Over the past 3 months I worked on the following bits and pieces regarding Lomiri in Debian:
Work on DEB package qtmir.
Revisit upstream status of lomiri-ui-toolkit (and remind upstream on open issues to be resolved).
Debug googletest / cmake-extras build failures in qtmir DEB package.
Prepare MR!2 f r cmake-extras upstream, upload cmake-extras 1.5-3 to Debian unstable.
Upload qtmir to unstable/NEW, submit patches upstream.
Upload to unstable as NEW: ayatana-indicator-bluetooth.
Upload to unstable: qtmir 0.6.1-2.
Upload to unstable: cmake-extras 1.5-5.
More debugging on googletest / cmake-extras.
Qt5.15 transition in Debian, various uploads.
Upload unstable: cmake-extras 1.5-6.
Debug and fix libqtdbustest / libqtdbusmock failures in Debian.
Get in touch with RAOF (on IRC, from the Mir Team) on possible fixes of Mir FTBFS in Debian (after a Mesa upload).
Upload to unstable: mir 1.8.0+dfsg1-11 (fix FTBFS).
Fix dbus-cpp autopkgtests.
Fix Mir FTBFS after Boost 1.74 transition.
Fix FTBFS in unit tests in lomiri-url-dispatcher.
Drop autopilot dependency from DEB package qtmir.
Heads-Up Meeting with Marius Gripsgard (discussion next steps).
The next projects / packages ahead are lomiri-ui-toolkit, integrating changes required for Lomiri into Ayatana Indicators and then moving on with several other, smaller packages.
Credits
Many big thanks go to Marius and Dalton for their work on the UBports project and being always available for questions, feedback, etc.
Thanks to Florian Leeber for being my point of contact for topcis regarding my cooperation with the UBports Foundation.
I'm sorry to announce that I gave up on the Fairphone series and
switched to a Google Phone (Pixel 4a) running CalyxOS.
Problems in fairy land
My fairphone2, even if it is less than two years
old, is having major problems:
from time to time, the screen flickers and loses "touch" until I
squeeze it back together
the camera similarly disconnects regularly
even when it works, the camera is... pretty bad: low light is
basically unusable, it's slow and grainy
the battery can barely keep up for one day
the cellular coverage is very poor, in Canada: I lose signal at the
grocery store and in the middle of my house...
Some of those problems are known: the Fairphone 2 is old now. It was
probably old even when I got it. But I can't help but feel a little
sad to let it go: the entire point of that device was to make it easy
to fix. But alas, because it's sold only in Europe, local stores don't
carry replacement parts. To be fair, Fairphone did offer to fix the
device, but with a 2 weeks turnaround, I had to get another phone
anyways.
I did actually try to buy a fairphone3, from
Clove. But they did some crazy validation routine. By email, they
asked me to provide a photo copy of a driver's license and the credit
card, arguing they need to do this to combat fraud. I found that
totally unacceptable and asked them to cancel my order. And because
I'm not sure the FP3 will fix the coverage issues, I decided to just
give up on Fairphone until they officially ship to the Americas.
Do no evil, do not pass go, do not collect 200$
So I got a Google phone, specifically a Pixel 4a. It's a nice device,
all small and shiny, but it's "plasticky" - I would have prefered
metal, but it seems you need to pay much, much more to get that (in
the Pixel 5).
In any case, it's certainly a better form factor than the Fairphone 2:
even though the screen is bigger, the device itself is actually
smaller and thinner, which feels great. The OLED screen is beautiful,
awesome contrast and everything, and preliminary tests show that the
camera is much better than the one on the Fairphone 2. (The be fair,
again, that is another thing the FP3 improved significantly. And that
is with the stock Camera app from CalyxOS/AOSP, so not as good as the
Google Camera app, which does AI stuff.)
CalyxOS: success
The Pixel 4a not not supported by LineageOS: it seems every time
I pick a device in that list, I manage to miss the right device by one
(I bought a Samsung S9 before, which is also unsupported, even though
the S8 is). But thankfully, it is supported by CalyxOS.
That install was a breeze: I was hesitant in playing again with
installing a custom Android firmware on a phone after fighting with
this quite a bit in the past (e.g. htc-one-s,
lg-g3-d852). But it turns out their install
instructions, mostly using a AOSP alliancedevice-flasher
works absolutely great. It assumes you know about the commandline, and
it does require to basically curl sudo (because you need to
download their binary and run it as root), but it Just. Works. It
reminded me of how great it was to get the Fairphone with TWRP
preinstalled...
Oh, and kudos to the people in #calyxos on Freenode: awesome tech
support, super nice folks. An amazing improvement over the ambiance in
#lineageos!
Migrating data
Unfortunately, migrating the data was the usual pain in the back. This
should improve the next time I do this: CalyxOS ships with
seedvault, a secure backup system for Android 10 (or 9?) and
later which backs up everything (including settings!) with
encryption. Apparently it works great, and CalyxOS is also working on
a migration system to switch phones.
But, obviously, I couldn't use that on the Fairphone 2 running Android
7... So I had to, again, improvised. The first step was to install
Syncthing, to have an easy way to copy data around. That's easily
done through F-Droid, already bundled with CalyxOS (including the
privileged extension!). Pair the devices and boom, a magic portal to
copy stuff over.
The other early step I took was to copy apps over using the F-Droid
"find nearby" functionality. It's a bit quirky, but really helps in
copying a bunch of APKs over.
Then I setup a temporary keepassxc password vault on the
Syncthing share so that I could easily copy-paste passwords into
apps. I used to do this in a text file in Syncthing, but copy-pasting
in the text file is much harder than in KeePassDX. (I just picked
one, maybe KeePassDroid is better? I don't know.) Do keep a copy
of the URL of the service to reduce typing as well.
Then the following apps required special tweaks:
AntennaPod has an import/export feature: export on one end,
into the Syncthing share, then import on the other. then go to the
queue and select all episodes and download
the Signal "chat backup" does copy the secret key around, so
you don't get the "security number change" warning (even if it
prompts you to re-register) - external devices need to be relinked
though
AnkiDroid, DSub, Nextcloud, and Wallabag required copy-pasting
passwords
I tried to sync contacts with DAVx5 but that didn't work so well:
the account was setup correctly, but contacts didn't show up. There's
probably just this one thing I need to do to fix this, but since I
don't really need sync'd contact, it was easier to export a VCF file
to Syncthing and import again.
Known problems
One problem with CalyxOS I found is that the fragile little microg
tweaks didn't seem to work well enough for Signal. That was unexpected
so they encouraged me to file that as a bug.
The other "issue" is that the bootloader is locked, which makes it
impossible to have "root" on the device. That's rather unfortunate: I
often need root to debug things on Android. In particular, it made it
difficult to restore data from OSMand (see below). But I guess that
most things just work out of the box now, so I don't really need it
and appreciate the extra security. Locking the bootloader means full
cryptographic verification of the phone, so that's a good feature to
have!
OSMand still doesn't have a good import/export story. I ended up
sharing the Android/data/net.osmand.plus/files directory and
importing waypoints, favorites and tracks by hand. Even though maps
are actually in there, it's not possible for Syncthing to write
directly to the same directory on the new phone, "thanks" to the new
permission system in Android which forbids this kind of inter-app
messing around.Tracks are particularly a problem: my older OSMand setup had all those
folders neatly sorting those tracks by month. This makes it really
annoying to track every file manually and copy it over. I have mostly
given up on that for now, unfortunately. And I'll still need to
reconfigure profiles and maps and everything by hand. Sigh. I guess
that's a good clearinghouse for my old tracks I never use...
Update: turns out setting storage to "shared" fixed the issue, see
comments below!
Conclusion
Overall, CalyxOS seems like a good Android firmware. The install is
smooth and the resulting install seems solid. The above problems are
mostly annoyances and I'm very happy with the experience so far,
although I've only been using it for a few hours so this is very
preliminary.
It is undeniable that banning Donald Trump from Facebook, Twitter, and similar sites is a benefit for the moment. It may well save lives, perhaps lots of lives. But it raises quite a few troubling issues.
First, as EFF points out, these platforms have privileged speakers with power, especially politicians, over regular users. For years now, it has been obvious to everyone that Donald Trump has been violating policies on both platforms, and yet they did little or nothing about it. The result we saw last week was entirely forseeable and indeed, WAS forseen, including by elements in those companies themselves. (ACLU also raises some good points)
Contrast that with how others get treated. Facebook, two days after the coup attempt, banned Benjamin Wittes, apparently because he mentioned an Atlantic article opposed to nutcase conspiracy theories. The EFF has also documented many more egregious examples: taking down documentation of war crimes, childbirth images, black activists showing the racist messages they received, women discussing online harassment, etc. The list goes on; YouTube, for instance, has often been promoting far-right violent videos while removing peaceful LGBTQ ones.
In short, have we simply achieved legal censorship by outsourcing it to dominant corporations?
It is worth pausing at this point to recognize two important princples:
First, that we do not see it as right to compel speech.
Secondly, that there exist communications channels and other services that nobody is calling on to suspend Donald Trump.
Let s dive into those a little bit.
There have been no prominent calls for AT&T, Verizon, Gmail, or whomever provides Trump and his campaign with cell phones or email to suspend their service to him. Moreover, the gas stations that fuel his vehicles and the airports that service his plane continue to provide those services, and nobody has seriously questioned that, either. Even his Apple phone that he uses to post to Twitter remains, as far as I know, fully active.
Secondly, imagine you were starting up a small web forum focused on raising tomato plants. It is, and should be, well within your rights to keep tomato-haters out, as well as people that have no interest in tomatoes but would rather talk about rutabagas, politics, or Mars. If you are going to host a forum about tomatoes, you have the right to keep it a forum about tomatoes; you cannot be forced to distribute someone else s speech. Likewise in traditional media, a newspaper cannot be forced to print every letter to the editor in full.
In law, there is a notion of a common carrier, that provides services to the general public without discrimination. Phone companies and ISPs fall under this.
Facebook, Twitter, and tomato sites don t. But consider what happens if Facebook bans you. You might be using Facebook-owned Whatsapp to communicate with family and friends, and suddenly find yourself unable to ask someone to pick you up. Or your treasured family photos might be in Facebook-owned Instagram, lost forever. It s not just Facebook; similar things happen with Google, locking people out of their phones and laptops, their emails, even their photos.
Is it right that Facebook and Google aren t regulated as common carriers? Perhaps, or perhaps we need some line of demarcation between their speech-to-the-public services (Facebook timeline posts, YouTube) and private communication (Whatsapp, Gmail). It s a thorny issue; should government be regulating speech instead? That s also fraught. So is corporate control.
Decentralization Helps Dramatically
With email, you get to pick your email provider (yes, there are two or three big ones, but still plenty of others). Each email provider will have its own set of things it considers acceptable, and its own set of other servers and accounts it s willing to exchange mail with. (It is extremely common for mail providers to choose not to accept mail from various other mail servers based on ISP, IP address, reputation, and so forth.)
What if we could do something like that for Twitter and Facebook?
Let you join whatever instance you like. Maybe one instance is all about art and they don t talk about politics. Or another is all about Free Software and they don t have advertising. And then there are plenty of open instances that accept anything that s respectful. And, like email, people of one server can interact with those using another just as easily as if they were using the same one.
Well, this isn t hypothetical; it already exists in the Fediverse. The most common option is Mastodon, and it so happens that a month ago I wrote about its benefits for other reasons, and included some links on getting started.
There is no reason that we must all let our online speech be controlled by companies with a profit motive to keep hate speech on their platforms. There is no reason that we must all have a single set of rules, or accept strong corporate or government control, either. The quality of conversation on Mastodon is far higher than either Twitter or Facebook; decentralization works and it s here today.
Boost is a very large and comprehensive set of (peer-reviewed) libraries for the C++ programming language, containing well over 100 individual libraries. The BH package provides a sizeable subset of header-only libraries for use by R.
Version 1.75.0 of Boost was released in December, right on schedule with their April, August and December releases. I now try to follow these releases at a lower (annual) cadence and prepared BH 1.75.0-0 in mid-December. Extensive reverse-depends checks revealed a need for changes in a handful of packages whose maintainers I contacted then. With one exception, everybody responded in kind and brought updated packages to CRAN which permitted us to upload the package there two days ago. And thanks to this planned and coordinated upload, the package is now available on CRAN a mere two days later. My thanks to the maintainers of these packages for helping it along; this prompt responses really are appreciated. The version on CRAN is the same as the one the drat announced in this tweet asking for testing help. If you installed that version, you are still current as no changes were required since December and CRAN now contains same file.
This release adds one new library: Boost Beast, an http and websocket library built on top of Boost Asio. Other changes are highlighed below.
Changes in version 1.75.0-0 (2020-12-12)
Removed file NAMESPACE as the package has neither R code, nor a shared library to load
The file LICENSE_1_0.txt is now included (as requested in #73)
Via CRANberries, there is a diffstat report relative to the previous release. Its final line is quite impressive: 3485 files changed, 100838 insertions(+), 84890 deletions(-). Wow.
Comments and suggestions about BH are welcome via the issue tracker at the GitHub repo.
If you like this or other open-source work I do, you can now sponsor me at GitHub.
Background
I usually don t mind ads, as not as they not very intrusive. I get that the current media model is basically ad-funded, and that unless I want to pay $1/month or so to 50 web sites, I have to accept ads, so I don t run an ad-blocker.
Sure, sometimes are annoying (hey YT, mid-roll ads are borderline), but I ve also seen many good ads, as in interesting or funny even. Well, I don t think I ever bought anything as direct result from ads, so I don t know how useful ads are for the companies, but hey, what do I care.
Except there a few ad networks that run what I would say are basically revolting ads. Things I don t want to ever accidentally see while eating, or things that are really make you go WTF? Maybe you know them, maybe you don t, but I guess there are people who don t know how to clean their ears, or people for whom a fast 7 day weight loss routine actually works.
Thankfully, most of the time I don t browse sites which use this networks, but randomly they do leak to even sites I do browse. If I m not very stressed already, I can ignore them, otherwise they really, really annoy me.
Case in point, I was on Slashdot, and because I was logged on and recently had mod points, the right side column had a check-box disable ads . That sidebar had some relatively meaningful ads, like a VPN subscription (not that I would use it, but it is a tech thing), or even a book about Kali Linux, etc. etc. So I click the disable ads , and the right column goes away. I scroll down happily, only to be met, at the bottom, by the best way to clean your ear , the most 50 useless planes ever built (which had a drawing of something that was for sure never ever built outside of in movies), you won t believe how this child actor looks today , etc.
Solving the problem
The above really, really pissed me off, so I went to search how to block ad network . To my surprise, the fix was not that simple, for standard users at least.
Method 1: hosts file
The hosts file is reasonable as it is relatively cross-platform (Linux and Windows and Mac, I think), but how the heck do you edit hosts on your phone?
And furthermore, it has some significant downsides.
First, /etc/hosts lists individual hosts, so for an entire ad network, the example I had had two screens of host names. This is really unmaintainable, since rotating host names, or having a gazillion of them is trivial.
Second, it cannot return negative answers. I.e. you have to give each of those hosts a valid IPv4/IPv6, and have something either reply with 404 or another 4xx response, or not listen on port 80/443. Too annoying.
And finally, it s a client-side solution, so one would have to replicate it across all clients in a home, and keep it in sync.
Method 2: ad-blockers
I dislike ad-blockers on principle, since they need wide permissions on all pages, but it is a recommended solution. However, to my surprise, one finds threads saying ad-blocker foo has whitelisted ad network bar, at which point you re WTF? Why do I use an ad-blocker if they get paid by the lowest of the ad networks to show the ads?
And again, it s a client-side solution, and one would have to deploy it across N clients, and keep them in sync, etc.
Method 3: HTTP proxy blocking
To my surprise, I didn t find this mentioned in a quick internet search. Well, HTTP proxies have long gone the way of the dodo due to HTTPs everywhere , and while one can still use them even with HTTPS, it s not that convenient:
you need to tunnel all traffic through them, which might result in bottlenecks (especially for media playing/maybe video-conference/etc.).
or even worse, there might be protocol issues/incompatibilities due to 100% tunneling.
running a proxy opens up some potential security issues on the internal network, so you need to harden the proxy as well, and maintain it.
you need to configure all clients to know about the proxy (via DHCP or manually), which might or might not work well, since it s client-dependent.
you can only block at CONNECT level (host name), and you have to build up regexes for the host name.
On the good side, the actual blocking configuration is centralised, and the only distributed configuration is pointing the clients through the proxy.
While I used to run a proxy back in HTTP times, the gains were significant back them (media elements caching, downloads caching, all with a slow pipe, etc.), but today is not worth it, so I ve stopped and won t bring a proxy back just for this.
Method 4: DNS resolver filtering
After thinking through all the options, I thought - hey, a caching/recursive DNS resolver is what most people with a local network run, right? How difficult is to block at resolver level?
and oh my, it is so trivial, for some resolvers at least. And yes, I didn t know about this a week ago
Response Policy Zones
Now, of course, there is a standard for this, called Response Policy Zone, and which is supported across multiple resolvers. There are many tutorials on how to use RPZs to configure things, some of them quite detailed - e.g. this one, or a simple/more straightforward one here.
The upstream BIND documentation also explains things quite well here, so you can go that route as well. It looks a bit hairy for me thought, but it works, and since it is a standard, it can be more easily deployed.
There are many discussions on the internet about how to configure RPZs, how to not even resolve the names (if you re going to return something explicitly/statically), etc. so there are docs, but again it seems a bit overdone.
Resolver hooks
There s another way too, if your resolver allows scripting. For example, the PowerDNS resolver allow Lua scripting, and has a relatively simple API at least, to me it looks way, way simpler than the RPZ equivalent.
After 20 minutes of reading the docs, I ended up with this, IMO trivial, solution (in a file named e.g. rules.lua):
and that s it. Well, enable it/load the file in the configuration, but nothing else. Syntax is pretty straightforward, matching by suffix here, and if you need more complex stuff, you can of course do it; it s just Lua and a simple API.
I don t see any immediate equivalent in Bind, so there s that, but if you can use PowerDNS, then the above solution seems simple for simple cases, and could be extended if needed (not sure in which cases).
The only other thing one needs to do is to serve the local/custom resolver to all clients, whether desktop or mobile, and that s it. DNS server is bread-and-butter in DHCP, so better support than proxy, and once the host name has been (mis)resolved, nothing is involved anymore in the communication path. True, your name server might get higher CPU usage, but for home network, this should not be a problem.
Can this filtering method (either RPZ or hooks) be worked around by ad networks? Sure, like anything. But changing the base domain is not fun. DNSSEC might break it (note Bind RPZ can be configure to ignore DNSSEC), but I m more worried about DNS-over-HTTPS, which I thought initially it s done for the user, but now I m not so sure anymore. Not being in control even of your own DNS resolver seems evil , but what do I know.
Combined authoritative + recursive solution
This solution was provided by Guillem Jover, who uses unbound, which is a combined authoritative name server and recursive resolver in one, and dnsmasq (which is even more things, I think):
For my LANs I use unbound, and then block this kind of thing in /etc/unbound/unbound.conf.d/block.conf, with stuff like:
server:
local-zone: adsite.example.com refuse
But then for things that are mobile, and might get out of the LAN, such as laptops, I also block with dnsmasq in /etc/dnsmasq.d/block.conf, with stuff like:
address=/adsite.example.com/
I still use ublock-origin to block stuff at the browser level, though, for yet an extra layer of noise suppression. :)
Thanks for the info!
Happy browsing!
10 lines of Lua, and now for sure I m going to get even fatter without the this natural method will melt your belly fat in 7 days information. Or I will just throw away banana peels without knowing what I could do with hem.
After a few days, I asked myself but ads are not so bad, why did I and then realised that yes, ads are not so bad anymore. And Slashdot actually loads faster
So, happy browsing!
Armadillo is a powerful and expressive C++ template library for linear algebra aiming towards a good balance between speed and ease of use with a syntax deliberately close to a Matlab. RcppArmadillo integrates this library with the R environment and language and is widely used by (currently) 802 other packages on CRAN.
This release was needed because we use the Matrix package for some (optional) tests related to sparse matrices, and a small and subtle change and refinement in the recent 1.3.0 release of Matrix required us to make an update for the testing. Nothing has changed in how we set up, or operate on, sparse matrices. My thanks to Binxiang and Martin Maechler for feedback and suggestion on the initial fix both Binxiang and I set up independently. At the same time we upgrade some package internals related to continuous integration (for that, also see my blog post and video from earlier this week). Lastly Conrad sent in a one-line upstream fix for dealing with NaN in sign().
The full set of changes follows.
Changes in RcppArmadillo version 0.10.1.2.2 (2021-01-08)
Correct one unit test for Matrix 1.3.0-caused changed (Binxiang in #319 and Dirk in #322).
Welcome to the 32th post in the rarely raucous R recommendations series, or R4 for short. This post covers continuous integration, a topic near and dear to many of us who have to recognise its added value.
The popular and widely-used service at Travis is undergoing changes driven by a hard-to-argue with need for monetization. A fate that, if we re honest, lies ahead for most free services so who know, maybe one day we have to turn away from other currently ubiquitous service. Because one never knows, it can pay off to not get to tied to any one service. Which brings us to today s post and my r-ci service which allows me to run CI at Travis, at GitHub, at Azure, and on local Docker containers as the video demonstrates. It will likely also work at GitLab and other services, I simply haven t tried any others.
The slides are here. The r-ci website introduces r-ci at a high-level. This repo at GitHub contains run.sh, and can be used to raise issues, ask questions, or provide feedback.
If you like this or other open-source work I do, you can sponsor me at GitHub.
The diffoscope maintainers are pleased to announce the release of diffoscope
version 164. This version includes the following changes:
[ Chris Lamb ]
* Truncate jsondiff differences at 512 bytes lest they consume the entire page.
* Wrap our external call to cmp(1) with a profile (to match the internal
profiling).
* Add a note regarding the specific ordering of the new
all_tools_are_listed test.
[ Dimitrios Apostolou ]
* Performance improvements:
- Improve speed of has_same_content by spawning cmp(1) less frequently.
- Log whenever the external cmp(1) command is spawn.ed
- Avoid invoking external diff for identical, short outputs.
* Rework handling of temporary files:
- Clean up temporary directories as we go along, instead of at the end.
- Delete FIFO files when the FIFO feeder's context manager exits.
[ Mattia Rizzolo ]
* Fix a number of potential crashes in --list-debian-substvars, including
explicitly listing lipo and otool as external tools.
- Remove redundant code and let object destructors clean up after themselves.
[ Conrad Ratschan ]
* Add a comparator for Flattened Image Trees (FIT) files, a boot image format
used by U-Boot.
There is no denying in the fact that 2020 was a challenging year for everybody, including animals.
In India, animals such as dogs who mostly filled their bellies at street food stalls, were starving as there were no street eateries operating during a long long lockdown. I was in my home town, New Delhi, working from home like most of us.
During the month of July 2020, a dog near the place I live (we fondly called her Brownie) delivered 7 pups in wilderness.
I would never forget my first sight of them, inside a dirty, garbage filled land there were the cutest, cleanest, tiniest ball of fur! All of them were toppled as the land s surface was uneven.. The first instinct was to put them all together on a flat surface. After the search mission completed, this was the sight..
Brownie and her litter put together in the same land where she gave birth.
The next day, I sought help from a animal-lover person to build a temporary shed for the puppies! We came and changed sheets, cleaned the surroundings and put fresh water for Brownie until
..it started raining heavily one night and we were worried if the shed would sustain the heavy rainfall. Next morning the first thing was to check on the pups, luckily, the pups were fine however, the entire area and their bed was damp.
Without any second thought, the pups were moved from there to a safe house shelter as it was predicted that the rains will continue for a few more weeks due to monsoon. Soon, 2 months went by, from observing the pups crawl over, their eyes open and to their first bark, despite the struggles, it was an beautiful experience. Brownie weaned off the pups and thus, they were ready for adoption! However, my biggest fear was, will anyone come forward to adopt them??
With such thoughts parallelly running in my mind, I started to post about adoption for these 7 pups. To my biggest surprise, one by one, 5 amazing humans came forward and decided to give these pups a better life than what they would get on the streets of India. I wouldn t be able to express in words how grateful I will to be all the five dog parents who decided to adopt an Indian Street Puppy/Indies/Desi Puppy, opening up the space in their hearts and homes for the pups!
One of the 5 adopted pups is adopted by a person who hails from USA, but currently working in India. It s so heartwarming to see, that in India, despite so much awareness created against breeders and their methods, people still prefer to go for foreign bred puppy and disregard Indian/Desi Dogs.. On the other hand, there are foreigners who value the life of a Indian/Desi Dog : )
The 5 Adopted Pups who now have a permanent loving family!
The adorable, Robin !
Don and his new big brother!
The naughty and handsome, Swayze !
First Pup who got adopted Pluto
Playful and Beautiful, Bella !
If this isn t perfect, I don t know what is! God had planned loving families for them and they found it.. However, Its been almost six months now, that we haven t found a permanent home for 2 of the 7 pups, but they have the perfect foster family taking care of them right now.
UP FOR ADOPTION Delhi/NCR Meet Momo and Beesa, 2 out of the 7 pups, who are still waiting for a forever home, currently living with a loving foster family.
Vaccinations, Deworming is done. Female pups, 6 months old.
Now as winters are here, Along with one of my friend, who is also fostering the two pups, arranged gunny sack bags for our street, stray dogs. Two NGOs namely, Lotus Indie Foundation and We Exist Foundation who work Animal Welfare in India, were providing dog beds to ground volunteers like us. We are fortunate that they selected us and helped us to make winters less harsh for the stray dogs. However, the cold is such, I also purchased dog coats as well and put in on a few furries. After hours of running behind dogs and convincing them to wear coats, we managed to put it on a few.
Brownie, the mom dog!
This is a puppy!
She did not let us put coat on her
Another topic that needs more sensitivity is Sterilization/Neutering of dogs, that s a viable method cited by the Government to control dog population and end suffering of puppies who die under the wheels of cars. However, the implementation of this is worrisome, as it s not as robust. In a span of 6 months, I managed to get 5 dog sterilized in my area, number is not big but I feel it s a good start as an individual
When I see them now, healthier, happier, running around, with no fear of getting attacked by dogs, I can t express the content I feel. For 2 of the dogs (Brownie and her friend) I got it done personally from a private vet. For the other 3, I got it done via Municipal Corporations who do it for free for dogs, you d have to call them and they come with dog catchers and a van and drop them back in the same area, but volunteers like us have to be very vigilant and active during the whole process to follow up with them.
Dogs getting dropped off after sterilization.
My 2020 ended with this, I am not sure why I am I even writing this in my blog where mostly I focused on my technical work and experiences, but this pandemic was challenging was everybody and what we planned couldn t happen, but because of 2020, because of the pandemic, I was on WFH in my city and I was able to help a few dogs in my area have a healthy life ahead!
What I learned during this entire adventure was, there are a lot of sweet, sensitive, caring people that we are just yet to meet. Along the way, we will also meet insensitive and discouraging people, who are unwilling to change or listen, ignore them and continue your good.
Have 1 person by your side, it s so much stronger than 10 against you.
Silver lining! Hope you all had some positive experiences despite the adversity faced by every single one of us.
Linux Australia have decided to cease running the Planet installation on planet.linux.org.au. I believe that blogging is still useful and a web page with a feed of Australian Linux blogs is a useful service. So I have started running a new Planet Linux Australia on https://planet.luv.asn.au/. There has been discussion about getting some sort of redirection from the old Linux Australia page, but they don t seem able to do that.
If you have a blog that has a reasonable portion of Linux and FOSS content and is based in or connected to Australia then email me on russell at coker.com.au to get it added.
When I started running this I took the old list of feeds from planet.linux.org.au, deleted all blogs that didn t have posts for 5 years and all blogs that were broken and had no recent posts. I emailed people who had recently broken blogs so they could fix them. It seems that many people who run personal blogs aren t bothered by a bit of downtime.
As an aside I would be happy to setup the monitoring system I use to monitor any personal web site of a Linux person and notify them by Jabber or email of an outage. I could set it to not alert for a specified period (10 mins, 1 hour, whatever you like) so it doesn t alert needlessly on routine sysadmin work and I could have it check SSL certificate validity as well as the basic page header.
Related posts:
Planet Flooding One annoying thing that happens regularly is Planet Flooding . This...
Other Planet LCA 2008 The Planet installation for the Linux.Conf.Au (the main Linux conference...
I just wrote a Perl script to look at the Australian Bureau of Meteorology pages to find the current temperature in an area and then adjust BOINC settings accordingly. The Perl script (in this post after the break, which shouldn t be in the RSS feed) takes the URL of a Bureau of Meteorology observation point as ARGV[0] and parses that to find the current (within the last hour) temperature. Then successive command line arguments are of the form 24:100 and 30:50 which indicate that at below 24C 100% of CPU cores should be used and below 30C 50% of CPU cores should be used. In warm weather having a couple of workstations in a room running BOINC (or any other CPU intensive task) will increase the temperature and also make excessive noise from cooling fans.
To change the number of CPU cores used the script changes /etc/boinc-client/global_prefs_override.xml and then tells BOINC to reload that config file. This code is a little ugly (it doesn t properly parse XML, it just replaces a line of text) and could fail on a valid configuration file that wasn t produced by the current BOINC code.
The parsing of the BoM page is a little ugly too, it relies on the HTML code in the BoM page they could make a page that looks identical which breaks the parsing or even a page that contains the same data that looks different. It would be nice if the BoM published some APIs for getting the weather. One thing that would be good is TXT records in the DNS. DNS supports caching with specified lifetime and is designed for high throughput in aggregate. If you had a million IOT devices polling the current temperature and forecasts every minute via DNS the people running the servers wouldn t even notice the load, while a million devices polling a web based API would be a significant load. As an aside I recommend playing nice and only running such a script every 30 minutes, the BoM page seems to be updated on the half hour so I have my cron jobs running at 5 and 35 minutes past the hour.
If this code works for you then that s great. If it merely acts as an inspiration for developing your own code then that s great too! BOINC users outside Australia could replace the code for getting meteorological data (or even interface to a digital thermometer). Australians who use other CPU intensive batch jobs could take the BoM parsing code and replace the BOINC related code. If you write scripts inspired by this please blog about it and comment here with a link to your blog post.
#!/usr/bin/perl
use strict;
use Sys::Syslog;
# St Kilda Harbour RMYS
# http://www.bom.gov.au/products/IDV60901/IDV60901.95864.shtml
my $URL = $ARGV[0];
open(IN, "wget -o /dev/null -O - $URL ") or die "Can't get $URL";
while(<IN>)
if($_ =~ /tr class=.rowleftcolumn/)
last;
sub get_data
if(not $_[0] =~ /headers=.t1-$_[1]/)
return undef;
$_[0] =~ s/^.*headers=.t1-$_[1]..//;
$_[0] =~ s/<.td.*$//;
return $_[0];
my @datetime;
my $cur_temp -100;
while(<IN>)
chomp;
if($_ =~ /^<.tr>$/)
last;
my $res;
if($res = get_data($_, "datetime"))
@datetime = split(/\//, $res)
elsif($res = get_data($_, "tmp"))
$cur_temp = $res;
close(IN);
if($#datetime != 1 or $cur_temp == -100)
die "Can't parse BOM data";
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
if($mday - $datetime[0] > 1 or ($datetime[0] > $mday and $mday != 1))
die "Date wrong\n";
my $mins;
my @timearr = split(/:/, $datetime[1]);
$mins = $timearr[0] * 60 + $timearr [1];
if($timearr[1] =~ /pm/)
$mins += 720;
if($mday != $datetime[0])
$mins += 1440;
if($mins + 60 < $hour * 60 + $min)
die "page outdated\n";
my %temp_hash;
foreach ( @ARGV[1..$#ARGV] )
my @tmparr = split(/:/, $_);
$temp_hash $tmparr[0] = $tmparr[1];
my @temp_list = sort(keys(%temp_hash));
my $percent = 0;
my $i;
for($i = $#temp_list; $i >= 0 and $temp_list[$i] > $cur_temp; $i--)
$percent = $temp_hash $temp_list[$i]
my $prefs = "/etc/boinc-client/global_prefs_override.xml";
open(IN, "<$prefs") or die "Can't read $prefs";
my @prefs_contents;
while(<IN>)
push(@prefs_contents, $_);
close(IN);
openlog("boincmgr-cron", "", "daemon");
my @cpus_pct = grep(/max_ncpus_pct/, @prefs_contents);
my $cpus_line = $cpus_pct[0];
$cpus_line =~ s/..max_ncpus_pct.$//;
$cpus_line =~ s/^.*max_ncpus_pct.//;
if($cpus_line == $percent)
syslog("info", "Temp $cur_temp" . "C, already set to $percent");
exit 0;
open(OUT, ">$prefs.new") or die "Can't read $prefs.new";
for($i = 0; $i <= $#prefs_contents; $i++)
if($prefs_contents[$i] =~ /max_ncpus_pct/)
print OUT " <max_ncpus_pct>$percent.000000</max_ncpus_pct>\n";
else
print OUT $prefs_contents[$i];
close(OUT);
rename "$prefs.new", "$prefs" or die "can't rename";
system("boinccmd --read_global_prefs_override");
syslog("info", "Temp $cur_temp" . "C, set percentage to $percent");
I was assigned 16 hours of work by Freexian's Debian LTS initiative
and carried over 9 hours from earlier months. I worked 16.5 hours this
month, so I will carry over 8.5 hours to January.
(Updated: corrected number of hours worked.)
I updated linux-4.19 to include the changes in the Debian 10.7 point
release, uploaded the package, and issued
DLA-2483-1
for this.
I picked some regression fixes from the Linux 4.9 stable branch to
the linux package, and uploaded the package. This unfortunately
failed to build on arm64 due to some upstream changes uncovering an
old bug, so I made a second upload fixing that. I issued
DLA-2494-1
for this.
I updated the linux packaging branch for stretch to Linux 4.9.249,
but haven't made another package upload yet.
Nothing too much has happened recently, largely as a result of the pandemic killing a lot of daily interests and habits.
However as a result of Brexit I'm having to do some paperwork, apparently I now need to register for permanent residency under the terms of the withdrawal agreement, and that will supersede the permanent residency I previously obtained.
Of course as a UK citizen I've now lost the previously-available freedom of movement. I can continue to reside here in Helsinki, Finland, indefinitely, but I cannot now move to any other random EU country.
It has crossed my mind, more than a few times, that I should attempt to achieve Finnish citizenship. As a legal resident of Finland the process is pretty simple, I just need two things:
Prove I've lived here for the requisite number of years.
Pass a language test.
Of course the latter requirement is hard, I can understand a lot of
spoken and written Finnish, but writing myself, and speaking a lot is
currently beyond me. I need to sit down and make the required effort to
increase my fluency. There is the alternative option of learning Swedish, which is a hack a lot of immigrants use:
Learning Swedish is significantly easier for a native English-speaker.
But the downside is that it would be learning a language solely to
"cheat" the test, it wouldn't actually be useful in my daily life.
Finland has two official languages, and so the banks, the medical world,
the tax-office, etc, are obliged to provide service in both. However
daily life, ordering food at restaurants, talking to parents in the
local neighborhood? Finnish, or English are the only real options. So
if I went this route I'd end up in a weird situation where I had to
learn a language to pass a test, but then would continue to need to
learn more Finnish to live my life. That seems crazy, unless I were
desperate for a second citizenship which I don't think I am.
Learning Finnish has not yet been a priority, largely because I work in
English in the IT-world, and of course when I first moved here I was
working (remotely) for a UK company, and didn't have the time to attend
lessons (because they were scheduled during daytime, on the basis that
many immigrants are unemployed). Later we had a child, which meant that
early-evening classes weren't a realistic option either.
(Of course I learned a lot of the obvious things immediately upon
moving, things like numbers, names for food, days of the week were
essential. Without those I couldn't have bought stuff in shops and
would have starved!)
On the topic of languages a lot of people talk about how easy it is for
children to pick up new languages, and while that is broadly true it is
also worth remembering just how many years of correction and repetition they
have to endure as part of the process.
For example we have a child, as noted already, he is spoken to by
everybody in Finnish. I speak to him in English, and he hears his
mother and myself speaking English. But basically he's 100% Finnish
with the exception of:
Me, speaking English to him.
His mother and I speaking English in his hearing.
Watching Paw Patrol.
If he speaks Finnish to me I pretend to not understand him, even when I
do, just for consistency. As a result of that I've heard him tell
strangers "Daddy doesn't speak Finnish" (in Finnish) when we've been
stopped and asked for directions. He also translates what some other
children have said into English for my benefit which is adorable
Anyway he's four, and he's pretty amazing at speaking to everybody in the
correct language - he's outgrown the phase where he'd mix different
languages in the same sentence ("more leip ", "saisinko milk") - when I
took him to the UK he surprised and impressed me by being able to
understand a lot of the heavy/thick accents he'd never heard before.
(I'll still need to train him on Rab C.
Nesbitt when he's a wee
bit older, but so far no worries.)
So children learn languages, easily and happily? Yes and no. I've
spent nearly two years correcting his English and he still makes the
same mistake with gender. It's not a big deal, at all, but it's a
reminder that while children learn this stuff, they still don't do it as
easily as people imagine. I'm trying to learn and if I'd been corrected
for two years over the same basic point you'd rightly think I was
"slow", but actually that's just how it works. Learning languages
requires a hell of a lot of practice, a lot of effort, and a lot of
feedback/corrections.
Specifically Finnish doesn't have gendered pronouns, the same word is
used for "he" and "she". This leads to a lot of Finnish people, adults
and children, getting the pronouns wrong in English. In the case of our
child he'll say "Mommy is sleeping, when he wake up?" In the case of
adults I've heard people say "My girlfriend is a doctor, he works in a
hospital", or "My dad is an accountant, she works for a big firm". As I
say I've spent around two years making this correction to the child, and
he's still nowhere near getting it right. Kinda adorable actually:
Here s my (fifteenth) monthly update about the activities I ve done in the F/L/OSS world.
Debian
This was my 24th month of contributing to Debian.
I became a DM in late March last year and a DD last Christmas! \o/
Amongs a lot of things, this was month was crazy, hectic, adventerous, and the last of 2020 more on some parts later this month.
I finally finished my 7th semester (FTW!) and moved onto my last one! That said, I had been busy with other things but still did a bunch of Debian stuff
Here are the following things I did this month:
Debian (E)LTS
Debian Long Term Support (LTS) is a project to extend the lifetime of all Debian stable releases to (at least) 5 years. Debian LTS is not handled by the Debian security team, but by a separate group of volunteers and companies interested in making it a success.
And Debian Extended LTS (ELTS) is its sister project, extending support to the Jessie release (+2 years after LTS support).
This was my fifteenth month as a Debian LTS and sixth month as a Debian ELTS paid contributor.
I was assigned 26.00 hours for LTS and 38.25 hours for ELTS and worked on the following things:
LTS CVE Fixes and Announcements:
Issued DLA 2474-1, fixing CVE-2020-28928, for musl.
For Debian 9 Stretch, these problems have been fixed in version 1.1.16-3+deb9u1.
Issued DLA 2484-1, fixing #969126, for python-certbot.
For Debian 9 Stretch, these problems have been fixed in version 0.28.0-1~deb9u3.
Issued DLA 2487-1, fixing CVE-2020-27350, for apt.
For Debian 9 Stretch, these problems have been fixed in version 1.4.11. The update was prepared by the maintainer, Julian.
Issued DLA 2488-1, fixing CVE-2020-27351, for python-apt.
For Debian 9 Stretch, these problems have been fixed in version 1.4.2. The update was prepared by the maintainer, Julian.
Issued DLA 2495-1, fixing CVE-2020-17527, for tomcat8.
For Debian 9 Stretch, these problems have been fixed in version 8.5.54-0+deb9u5.
Issued DLA 2488-2, for python-apt.
For Debian 9 Stretch, these problems have been fixed in version 1.4.3. The update was prepared by the maintainer, Julian.
Issued DLA 2508-1, fixing CVE-2020-35730, for roundcube.
For Debian 9 Stretch, these problems have been fixed in version 1.2.3+dfsg.1-4+deb9u8. The update was prepared by the maintainer, Guilhem.
ELTS CVE Fixes and Announcements:
Issued ELA 324-1, fixing CVE-2020-28928, for musl.
For Debian 8 Jessie, these problems have been fixed in version 1.1.5-2+deb8u2.
Issued ELA 325-1, fixing CVE-2020-28896, for mutt.
For Debian 8 Jessie, these problems have been fixed in version 1.5.23-3+deb8u4.
Marked CVE-2020-17527/tomcat8 as not-affected for jessie.
Marked CVE-2020-28052/bountycastle as not-affected for jessie.
Marked CVE-2020-14394/qemu as postponed for jessie.
Marked CVE-2020-35738/wavpack as not-affected for jessie.
Marked CVE-2020-3550 3-6 /qemu as postponed for jessie.
Marked CVE-2020-3550 3-6 /qemu as postponed for stretch.
Marked CVE-2020-16093/lemonldap-ng as no-dsa for stretch.
Marked CVE-2020-27837/gdm3 as no-dsa for stretch.
Marked CVE-2020- 13987, 13988, 17437 /open-iscsi as no-dsa for stretch.
Marked CVE-2020-35450/gobby as no-dsa for stretch.
Marked CVE-2020-35728/jackson-databind as no-dsa for stretch.
Marked CVE-2020-28935/nsd as no-dsa for stretch.
Auto EOL ed libpam-tacplus, open-iscsi, wireshark, gdm3, golang-go.crypto, jackson-databind, spotweb, python-autobahn, asterisk, nsd, ruby-nokogiri, linux, and motion for jessie.
Bugs and Patches
Well, I did report some bugs and issues and also sent some patches:
Issue #44 for github-activity-readme, asking for a feature request to set custom committer s email address.
Issue #711 for git2go, reporting build failure for the library.
PR #89 for rubocop-rails_config, bumping RuboCop::Packaging to v0.5.
Issue #36 for rubocop-packaging, asking to try out mutant :)
PR #212 for cucumber-ruby-core, bumping RuboCop::Packaging to v0.5.
PR #213 for cucumber-ruby-core, enabling RuboCop::Packaging.
Issue #19 for behance, asking to relax constraints on faraday and faraday_middleware.
PR #37 for rubocop-packaging, enabling tests against ruby3.0! \o/
PR #489 for cucumber-rails, bumping RuboCop::Packaging to v0.5.
Issue #362 for nheko, reporting a crash when opening the application.
PR #1282 for paper_trail, adding RuboCop::Packaging amongst other used extensions.
Bug #978640 for nheko Debian package, reporting a crash, as a result of libfmt7 regression.
Misc and Fun
Besides squashing bugs and submitting patches, I did some other things as well!
Participated in my first Advent of Code event! :)
Whilst it was indeed fun, I didn t really complete it. No reason, really. But I ll definitely come back stronger next year, heh! :)
All the solutions thus far could be found here.
Did a couple of reviews for some PRs and triaged some bugs here and there, meh.
Also did some cloud debugging, not so fun if you ask me, but cool enough to make me want to do it again! ^_^
Worked along with pollo, zigo, ehashman, rlb, et al for puppet and puppetserver in Debian. OMG, they re so lovely! <3
Ordered some interesting books to read January onward. New year resolution? Meh, not really. Or maybe. But nah.
Also did some interesting stuff this month but can t really talk about it now. Hopefully sooooon.