1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/' xmlns:
atom=
"http://www.w3.org/2005/Atom">
4 <title>Petter Reinholdtsen
</title>
5 <description></description>
6 <link>http://www.hungry.com/~pere/blog/
</link>
7 <atom:link href=
"http://www.hungry.com/~pere/blog/index.rss" rel=
"self" type=
"application/rss+xml" />
10 <title>Frokostseminar om Noark
5 i Oslo fredag
2025-
03-
14</title>
11 <link>http://www.hungry.com/~pere/blog/Frokostseminar_om_Noark_5_i_Oslo_fredag_2025_03_14.html
</link>
12 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/Frokostseminar_om_Noark_5_i_Oslo_fredag_2025_03_14.html
</guid>
13 <pubDate>Fri,
31 Jan
2025 11:
00:
00 +
0100</pubDate>
14 <description><p
>Nikita-prosjektet, der jeg er involvert, inviterer i samarbeid med
15 forskningsgruppen METAINFO og foreningen NUUG, til et frokostseminar
16 om Noark
5 og Noark
5 Tjenestegrensesnitt fredag
2025-
03-
14. Fokus
17 denne gangen er på bevaring og kassasjon. Seminaret finner sted ved
18 OsloMet, Pilestredet
46. Vi håper å få til videostrømming via
19 Internett av presentasjoner og paneldiskusjon. Oppdatert program og
20 lenker til påmeldingsskjema finner en via
21 <a href=
"https://noark.codeberg.page/noark5-seminars/
2025-
03-
14-noark-workshop.html
">arrangementets infoside
</a
>. Arrangementet er gratis.
23 <p
>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
24 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
26 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>. Merk,
27 betaling med bitcoin er ikke anonymt. :)
</p
>
32 <title>121 packages in Debian mapped to hardware for automatic recommendation
</title>
33 <link>http://www.hungry.com/~pere/blog/
121_packages_in_Debian_mapped_to_hardware_for_automatic_recommendation.html
</link>
34 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/
121_packages_in_Debian_mapped_to_hardware_for_automatic_recommendation.html
</guid>
35 <pubDate>Sun,
19 Jan
2025 12:
40:
00 +
0100</pubDate>
36 <description><p
>For some years now, I have been working on a automatic hardware
37 based package recommendation system for Debian and other Linux
38 distributions. The isenkram system I started on back in
2013 now
39 consist of two subsystems, one locating firmware files using the
40 information provided by apt-file, and one matching hardware to
41 packages using information provided by AppStream. The former is very
42 similar to the mechanism implemented in debian-installer to pick the
43 right firmware packages to install. This post is about the latter
44 system. Thanks to steady progress and good help from both other
45 Debian and upstream developers, I am happy to report that
46 <a href=
"https://tracker.debian.org/pkg/isenkram
">the Isenkram
47 system
</a
> now are able to recommend
121 packages using information
49 <a href=
"https://www.freedesktop.org/wiki/Distributions/AppStream/
">AppStream
</a
>.
</p
>
51 <p
>The mapping is done using modalias information provided by the
52 kernel, the same information used by udev when creating device files,
53 and the kernel when deciding which kernel modules to load. To get all
54 the modalias identifiers relevant for your machine, you can run the
55 following command on the command line:
</p
>
58 find /sys/devices -name modalias -print0 | xargs -
0 sort -u
61 <p
>The modalias identifiers can look something like this:
</p
>
65 cpu:type:x86,ven0000fam0006mod003F:feature:,
0000,
0001,
0002,
0003,
0004,
0005,
0006,
0007,
0008,
0009,
000B,
000C,
000D,
000E,
000F,
0010,
0011,
0013,
0015,
0016,
0017,
0018,
0019,
001A,
001B,
001C,
001D,
001F,
002B,
0034,
003A,
003B,
003D,
0068,
006B,
006C,
006D,
006F,
0070,
0072,
0074,
0075,
0076,
0078,
0079,
007C,
0080,
0081,
0082,
0083,
0084,
0085,
0086,
0087,
0088,
0089,
008B,
008C,
008D,
008E,
008F,
0091,
0092,
0093,
0094,
0095,
0096,
0097,
0098,
0099,
009A,
009B,
009C,
009D,
009E,
00C0,
00C5,
00E1,
00E3,
00EB,
00ED,
00F0,
00F1,
00F3,
00F5,
00F6,
00F9,
00FA,
00FB,
00FD,
00FF,
0100,
0101,
0102,
0103,
0111,
0120,
0121,
0123,
0125,
0127,
0128,
0129,
012A,
012C,
012D,
0140,
0160,
0161,
0165,
016C,
017B,
01C0,
01C1,
01C2,
01C4,
01C5,
01C6,
01F9,
024A,
025A,
025B,
025C,
025F,
0282
66 dmi:bvnDellInc.:bvr2.18
.1:bd08/
14/
2023:br2.18:svnDellInc.:pnPowerEdgeR730:pvr:rvnDellInc.:rn0H21J3:rvrA09:cvnDellInc.:ct23:cvr:skuSKU=NotProvided
67 pci:v00008086d00008D3Bsv00001028sd00000600bc07sc80i00
70 usb:v413CpA001d0000dc09dsc00dp00ic09isc00ip00in00
73 <p
>The entries above are a selection of the complete set available on
74 a Dell PowerEdge R730 machine I have access to, to give an idea about
75 the various styles of hardware identifiers presented in the modalias
76 format. When looking up relevant packages in a Debian Testing
77 installation on the same R730, I get this list of packages
81 % sudo isenkram-lookup
83 firmware-nvidia-graphics
90 <p
>The list consist of firmware packages requested by kernel modules,
91 as well packages with program to get the status from the RAID
92 controller and to maintain the LAN console. When the edac-utils
93 package providing tools to check the ECC RAM status will enter testing
94 in a few days, it will also show up as a proposal from isenkram. In
95 addition, once the mfiutil package we uploaded in October get past the
96 NEW processing, it will also propose a tool to configure the RAID
99 <p
>Another example is the trusty old Lenovo Thinkpad X230, which have
100 hardware handled by several packages in the archive. This is running
101 on Debian Stable:
</p
>
110 firmware-misc-nonfree
124 <p
>Here there proposal consist of software to handle the camera,
125 bluetooth, network card, wifi card, GPU, fan, fingerprint reader and
126 acceleration sensor on the machine.
</p
>
128 <p
>Here is the complete set of packages currently providing hardware
129 mapping via AppStream in Debian Unstable: air-quality-sensor,
130 alsa-firmware-loaders, antpm, array-info, avarice, avrdude,
131 bmusb-v4l2proxy, brltty, calibre, colorhug-client, concordance-common,
132 consolekit, dahdi-firmware-nonfree, dahdi-linux, edac-utils,
133 eegdev-plugins-free, ekeyd, elogind, firmware-amd-graphics,
134 firmware-ath9k-htc, firmware-atheros, firmware-b43-installer,
135 firmware-b43legacy-installer, firmware-bnx2, firmware-bnx2x,
136 firmware-brcm80211, firmware-carl9170, firmware-cavium,
137 firmware-intel-graphics, firmware-intel-misc, firmware-ipw2x00,
138 firmware-ivtv, firmware-iwlwifi, firmware-libertas,
139 firmware-linux-free, firmware-mediatek, firmware-misc-nonfree,
140 firmware-myricom, firmware-netronome, firmware-netxen,
141 firmware-nvidia-graphics, firmware-qcom-soc, firmware-qlogic,
142 firmware-realtek, firmware-ti-connectivity, fpga-icestorm, g810-led,
143 galileo, garmin-forerunner-tools, gkrellm-thinkbat, goldencheetah,
144 gpsman, gpstrans, gqrx-sdr, i8kutils, imsprog, ledger-wallets-udev,
145 libairspy0, libam7xxx0.1, libbladerf2, libgphoto2-
6t64,
146 libhamlib-utils, libm2k0.9
.0, libmirisdr4, libnxt, libopenxr1-monado,
147 libosmosdr0, librem5-flash-image, librtlsdr0, libticables2-
8,
148 libx52pro0, libykpers-
1-
1, libyubikey-udev, limesuite,
149 linuxcnc-uspace, lomoco, madwimax, media-player-info, megactl, mixxx,
150 mkgmap, msi-keyboard, mu-editor, mustang-plug, nbc, nitrokey-app, nqc,
151 ola, openfpgaloader, openocd, openrazer-driver-dkms, pcmciautils,
152 pcscd, pidgin-blinklight, ponyprog, printer-driver-splix,
153 python-yubico-tools, python3-btchip, qlcplus, rosegarden, scdaemon,
154 sispmctl, solaar, spectools, sunxi-tools, t2n, thinkfan, tlp,
155 tp-smapi-dkms, trezor, tucnak, ubertooth, usbrelay, uuu, viking,
156 w1retap, wsl, xawtv, xinput-calibrator, xserver-xorg-input-wacom and
159 <p
>In addition to these, there are several
160 <a href=
"https://udd.debian.org/cgi-bin/bts-usertags.cgi?user=pere%
40hungry.com
&tag=appstream-modalias
">with
161 patches pending in the Debian bug tracking system
</a
>, and even more
162 where no-one wrote patches yet. Good candiates for the latter are
164 <a href=
"https://udd.debian.org/lintian-tag.cgi?tag=appstream-metadata-missing-modalias-provide
">with
165 udev rules but no AppStream hardware information
</a
>.
</p
>
167 <p
>The isenkram system consist of two packages, isenkram-cli with the
168 command line tools, and isenkram with a GUI background process. The
169 latter will listen for dbus events from udev emitted when new hardware
170 become available (like when inserting a USB dongle or discovering a
171 new bluetooth device), look up the modalias entry for this piece of
172 hardware in AppStream (and a hard coded list of mappings from isenkram
173 - currently working hard to move this list to AppStream), and pop up a
174 dialog proposing to install any not already installed packages
175 supporting this hardware. It work very well today when inserting the
176 LEGO Mindstorms RCX, NXT and EV3 controllers. :) If you want to make
177 sure more hardware related packages get recommended, please help out
178 fixing the remaining packages in Debian to provide AppStream metadata
179 with hardware mappings.
</p
>
181 <p
>As usual, if you use Bitcoin and want to show your support of my
182 activities, please send Bitcoin donations to my address
183 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
188 <title>What is the most supported MIME type in Debian in
2025?
</title>
189 <link>http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2025_.html
</link>
190 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2025_.html
</guid>
191 <pubDate>Sat,
18 Jan
2025 10:
30:
00 +
0100</pubDate>
192 <description><p
><a href=
"http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2018_.html
">Seven
</a
>
194 <a href=
"http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html
">twelve
</a
>
195 years ago, I measured what the most supported MIME type in Debian
196 was
</a
>, first by analysing the desktop files in all packages in the
197 archive, then by analysing the DEP-
11 AppStream data set. I guess it
198 is time to repeat the measurement, only for unstable as last time:
</p
>
200 <p
><strong
>Debian Unstable:
</strong
></p
>
204 ----- -----------------------
216 36 audio/x-vorbis+ogg
227 <p
>The list was created like this using a sid chroot:
</p
>
230 cat /var/lib/apt/lists/*sid*_dep11_Components-amd64.yml.gz | \
231 zcat | awk
'/^ - \S+\/\S+$/ {print $
2 }
' | sort | \
232 uniq -c | sort -nr | head -
20
235 <p
>It is nice to see that the same number of packages now support PNG
236 and JPEG. Last time JPEG had more support than PNG. Most of the MIME
237 types are known to me, but the
'audio/x-scpls
' one I have no idea what
238 represent, except it being an audio format. To find the packages
239 claiming support for this format, the appstreamcli command from the
240 appstream package can be used:
243 % appstreamcli what-provides mediatype audio/x-scpls | grep Package: | sort -u
244 Package: alsaplayer-common
251 Package: cynthiune.app
256 Package: kylin-burner
258 Package: mediaconch-gui
259 Package: mediainfo-gui
271 Package: soundconverter
278 <p
>Look like several video and auto tools understand the format.
279 Similarly one can check out the number of packages supporting the STL
280 format commonly used for
3D printing:
</p
>
283 % appstreamcli what-provides mediatype model/stl | grep Package: | sort -u
286 Package: open3d-viewer
290 <p
>How strange the
291 <a href=
"https://tracker.debian.org/pkg/slic3r
">slic3r
</a
> and
292 <a href=
"https://tracker.debian.org/pkg/slic3r-prusa
">prusa-slicer
</a
>
293 packages do not support STL. Perhaps just missing package metadata?
294 Luckily the amount of package metadata in Debian is getting better,
295 and hopefully this way of locating relevant packages for any file
296 format will be the preferred one soon.
298 <p
>As usual, if you use Bitcoin and want to show your support of my
299 activities, please send Bitcoin donations to my address
300 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
305 <title>The
2025 LinuxCNC Norwegian developer gathering
</title>
306 <link>http://www.hungry.com/~pere/blog/The_2025_LinuxCNC_Norwegian_developer_gathering.html
</link>
307 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/The_2025_LinuxCNC_Norwegian_developer_gathering.html
</guid>
308 <pubDate>Sat,
11 Jan
2025 14:
30:
00 +
0100</pubDate>
309 <description><p
><a href=
"https://linuxcnc.org/
">The LinuxCNC project
</a
> is
310 trotting along. And I believe this great software system for
311 numerical control of machines such as milling machines, lathes, plasma
312 cutters, routers, cutting machines, robots and hexapods, would do even
313 better with more in-person developer gatherings, so we plan to
314 organise such gathering this summer too.
</p
>
316 <p
>This year we would like to invite to a small LinuxCNC and free
317 software fabrication workshop/gathering in Norway this summer for the
318 weekend starting July
4th
2025. New this year is the slightly larger
319 scope, and we invite people also outside the LinuxCNC community to
320 join. As earlier, we suggest to organize it as an
321 <a href=
"https://en.wikipedia.org/wiki/Unconference
">unconference
</a
>,
322 where the participants create the program upon arrival.
</p
>
324 <p
>The location is a metal workshop
15 minutes drive away from to the
325 Gardermoen airport (OSL), where there is a lot of space and a hotel only
326 5 minutes away by car. We plan to fire up the barbeque in the evenings.
</p
>
328 <p
>Please let us know if you would like to join. We track the list of
329 participants on
<a href=
"https://pad.efn.no/p/linuxcnc-
2025-norway
">a
330 simple pad
</a
>, please add yourself there if you are interested in joining.
</p
>
332 <p
><a href=
"https://www.nuugfoundation.no/
">The NUUG Foundation
</a
> has on
333 our request offered to handle any money involved with this gathering,
334 in other words holding any sponsor funds and paying any bills.
335 NUUG Foundation is a spinnoff from the NUUG member organisation here
336 in Norway with long ties to the free software and open standards
337 communities.
</p
>
339 <p
>As usual we hope to find sponsors to pay for food, lodging and travel.
</p
>
341 <p
>As usual, if you use Bitcoin and want to show your support of my
342 activities, please send Bitcoin donations to my address
343 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
348 <title>New lsdvd release
0.18 after ten years
</title>
349 <link>http://www.hungry.com/~pere/blog/New_lsdvd_release_0_18_after_ten_years.html
</link>
350 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/New_lsdvd_release_0_18_after_ten_years.html
</guid>
351 <pubDate>Sat,
21 Dec
2024 10:
50:
00 +
0100</pubDate>
352 <description><p
>The rumors of the death of
353 <a href=
"https://sourceforge.net/projects/lsdvd/
">the lsdvd project
</a
>
354 is slightly exaggerated. And the last few months, we have been
355 working on fixing and improving it, culminating in a new release last
356 night. This is the list of changes in the new
0.18 release, as
357 <a href=
"https://sourceforge.net/p/lsdvd/mailman/message/
59108028/
">announced
358 on the project mailing list
</a
>:
</p
>
362 <li
>Simplified autoconf setup, dropped --enable-debug option.
</li
>
363 <li
>Improved video resolution reporting (
<a href=
"https://sourceforge.net/p/lsdvd/patches/
8/
">Fixes #
8</a
>).
</li
>
364 <li
>Applied patches fetched from BSDs (
<a href=
"https://sourceforge.net/p/lsdvd/patches/
7/
">Fixes #
7</a
>).
</li
>
365 <li
>Corrected Perl output (
<a href=
"https://sourceforge.net/p/lsdvd/patches/
1/
">Fixes #
1</a
>).
</li
>
366 <li
>Adjusted Pan and Scan entries to produce valid XML.
</li
>
367 <li
>Changed --help output from stderr to stdout.
</li
>
368 <li
>Corrected aspect ratio and audio format formatting.
</li
>
369 <li
>Avoid segfault when hitting a NULL pointer in the IFO structure.
</li
>
370 <li
>Change build rules to supress compiler flags, to make it easier to
371 spot warnings.
</li
>
372 <li
>Set default DVD device based on OS (Linux, *BSD, Darwin)
</li
>
373 <li
>Added libdvdread DVDDiscID to output.
</li
>
374 <li
>Corrected typo in longest track value in XML format.
</li
>
375 <li
>Switched XML output to use libxml to avoid string encoding issues.
</li
>
376 <li
>Added simple build time test suite.
</li
>
377 <li
>Cleaned up language code handling and adding missing mapping for
378 language codes
'nb
' and
'nn
'.
</li
>
379 <li
>Added JSON output support using -Oj.
</li
>
382 <p
>The most exciting news to me is easy access to the DVDDiscID, which
383 make it a lot easier to identify DVD duplicates across a large
384 collection of DVDs. During testing it has proved to be very effective
385 ad identifying when DVDs in a DVD box (say all Star Wars movies) is
386 identical to DVDs sold individually (like the same Star Wars movies
387 packaged individually).
</p
>
389 <p
>Because none of the current developers got access to do tarball
390 releases on Sourceforge any more, the release is only available as
391 <a href=
"https://sourceforge.net/p/lsdvd/git/ci/
0.18/tree/
">a git
392 tag
</a
> in the repository. Lets hope it do not take ten years for the
393 next release. The project are discussing to move away from
394 Sourceforge, but it has not yet concluded.
</p
>
396 <p
>As usual, if you use Bitcoin and want to show your support of my
397 activities, please send Bitcoin donations to my address
398 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
403 <title>More than
200 orphaned Debian packages moved to git,
216 to go
</title>
404 <link>http://www.hungry.com/~pere/blog/More_than_200_orphaned_Debian_packages_moved_to_git__216_to_go.html
</link>
405 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/More_than_200_orphaned_Debian_packages_moved_to_git__216_to_go.html
</guid>
406 <pubDate>Thu,
11 Jul
2024 12:
30:
00 +
0200</pubDate>
407 <description><p
><a href=
"http://www.hungry.com/~pere/blog/Time_to_move_orphaned_Debian_packages_to_git.html
">In
408 April
</a
>, I started migrating orphaned Debian packages without any
409 version control system listed in debian/control to git. This morning,
410 my Debian QA page finally reached
200 QA packages migrated. In
411 reality there are a few more, as the packages uploaded by someone else
412 after my initial upload have disappeared from my QA uploads list. As
413 I am running out of steam and will most likely focus on other parts of
414 Debian moving forward, I hope someone else will find time to continue
415 the migration to bring the number of orphaned packages without any
416 version control system down to zero. Here is the updated recipe if
417 someone want to help out.
</p
>
419 <p
>To locate packages to work on, the following one-liner can be used:
</p
>
421 <blockquote
><pre
>
422 PGPASSWORD=
"udd-mirror
" psql --port=
5432 --host=udd-mirror.debian.net \
423 --username=udd-mirror udd -c
"select source from sources \
424 where release =
'sid
' and (vcs_url ilike
'%anonscm.debian.org%
' \
425 OR vcs_browser ilike
'%anonscm.debian.org%
' or vcs_url IS NULL \
426 OR vcs_browser IS NULL) AND maintainer ilike
'%packages@qa.debian.org%
' \
427 order by random() limit
10;
"
428 </pre
></blockquote
>
430 <p
>Pick a random package from the list and run the latest edition of
432 <tt
><a href=
"http://www.hungry.com/~pere/blog/images/
2024-
07-
11-debian-snap-to-salsa.sh
">debian-snap-to-salsa
</a
></tt
>
433 with the package name as the argument to prepare a git repository with
434 the existing packaging. This will download old Debian packages from
435 <tt
>snapshot.debian.org
</tt
>. Note that very recent uploads will not
436 be included, so check out the package on
<tt
>tracker.debian.org
</tt
>.
437 Next, run
<tt
>gbp buildpackage --git-ignore-new
</tt
> to verify that
438 the package build as it should, and then visit
439 <a href=
"https://salsa.debian.org/debian/
">https://salsa.debian.org/debian/
</a
>
440 and make sure there is not already a git repository for the package
441 there. I also did
<tt
>git log -p debian/control
</tt
> and look for vcs
442 entries to check if the package used to have a git repository on
443 Alioth, and see if it can be a useful starting point moving forward.
444 If all this check out, I created a new gitlab project below the Debian
445 group on salsa, push the package source there and upload a new version.
446 I tend to also ensure build hardening is enabled, if it prove to be
447 easy, and check if I can easily fix any lintian issues or bug reports.
448 If the process took more than
20 minutes, I dropped it and moved on to
449 another package.
</p
>
451 <p
>If I found patches in debian/patches/ that were not yet passed
452 upstream, I would send an email to make sure upstream know about them.
453 This has proved to be a valuable step, and caused several new releases
454 for software that initially appeared abandoned. :)
</p
>
456 <p
>As usual, if you use Bitcoin and want to show your support of my
457 activities, please send Bitcoin donations to my address
458 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
463 <title>Some notes from the
2024 LinuxCNC Norwegian developer gathering
</title>
464 <link>http://www.hungry.com/~pere/blog/Some_notes_from_the_2024_LinuxCNC_Norwegian_developer_gathering.html
</link>
465 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/Some_notes_from_the_2024_LinuxCNC_Norwegian_developer_gathering.html
</guid>
466 <pubDate>Wed,
10 Jul
2024 14:
45:
00 +
0200</pubDate>
467 <description><p
>The Norwegian
<a href=
"https://linuxcnc.org/
">The LinuxCNC
</a
>
468 developer gathering
2024 is over. It was a great and productive
469 weekend, and I am sad that it is over.
</p
>
471 <p
>Regular readers probably still remember what LinuxCNC is, but her
472 is a quick summary for those that forgot? LinuxCNC is a free software
473 system for numerical control of machines such as milling machines,
474 lathes, plasma cutters, routers, cutting machines, robots and
475 hexapods. It eats G-code and produce motor movement and other changes
476 to the physical world, while reading sensor input.
</p
>
478 <p
>I am not quite sure about the total head count, as not all people
479 were present at the gathering the entire weekend, but I believe it was
480 close to
10 people showing their faces at the gathering. The
"hard
481 core
" of the group, who stayed the entire weekend, were two from
482 Norway, two from Germany and one from England. I am happy with the
483 outcome from the gathering. We managed to wrap up a new stable
484 LinuxCNC release
2.9.3 and even tested it on real hardware within
485 minutes of the release. The release notes for
2.9.3 are still being
486 written, but should show up on on the project site in the next few
487 days. We managed to go through around twenty pull requests and merge
488 then into either the stable release (
2.9) or the development branch
489 (master). There are still around thirty pull requests left to
490 process, so we are not out of work yet. We even managed to
491 fix/improve a slightly worn lathe, and experiment with running a
492 mechanical clock using G-code.
</p
>
494 <p
>The evening barbeque worked well both on Saturday and Sunday. It
495 is quite fun to light up a charcoal grill using compressed air. Sadly
496 the weather was not the best, so we stayed indoors most of the
499 <p
>This gathering was made possible partly with sponsoring from both
500 <a href=
"https://www.redpill-linpro.com/
">Redpill Linpro
</a
>,
501 <a href=
"https://debian.org/
">Debian
</a
> and
502 <a href=
"https://nuugfoundation.no/
">NUUG Foundation
</a
>, and we are
503 most grateful for the support. I would also like to thank the local
504 school for lending us some furniture, and of course the rest of the
505 members of the organizers team, Asle and Bosse, for their countless
506 contributions. The gathering was such success that we want to do it
507 again next year.
</p
>
509 <p
>We plan to organize the next Norwegian LinuxCNC developer gathering
510 at the end of June next year, the weekend Friday
27th to Sunday
29th
511 of June
2025. I recommend you reserve the dates on your calendar
512 today. Other related communities are also welcome to join in, for
513 example those working on systems like FreeCAD and opencamlib, as I am
514 sure we have much in common and sharing experiences would be very
515 useful to all involved. We are of course looking for sponsors for
516 this gathering already. The total budget for this gathering was
517 around NOK
25.000 (around EUR
2.300), so our needs are quite modest.
518 Perhaps a machine or tools company would like to help out the free
519 software manufacturing community by sponsoring food, lodging and
520 transport for such gathering?
</p
>
525 <title>«Møter vi liv eller død?», pamfletten som inspirerte
</title>
526 <link>http://www.hungry.com/~pere/blog/_M_ter_vi_liv_eller_d_d____pamfletten_som_inspirerte.html
</link>
527 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/_M_ter_vi_liv_eller_d_d____pamfletten_som_inspirerte.html
</guid>
528 <pubDate>Tue,
4 Jun
2024 11:
30:
00 +
0200</pubDate>
529 <description><img align=
"center
" src=
"http://www.hungry.com/~pere/blog/images/
2024-
06-
04-bok-elsa-laula.svg
" width=
"20%
" align=
"center
" border=
"1"></a
>
531 <p
>Da jeg i høst hørte jeg et innslag på
532 <a href=
"https://radiorakel.no/
">radiOrakel
</a
> om en inspirerende dame
533 som levde for over hundre år siden, fikk jeg en vill ide. Elsa Laula
534 var en svensk samisk dame som ikke bare fikk utdannelsen finansiert av
535 den danske dronningen, men som gjorde så god jobb med å inspirere og
536 organisere den samiske befolkningen at det visstnok ble forslått i
537 Sverige å straffeforfølge henne for oppvigleri før hun flyttet fra
538 Sverige til Norge. Radiopraterne fortalte videre at da Elsa Laula ga
539 ut en pamflett for å inspirere samene til samling var dette den
540 første bok gitt ut av en samisk dame noensinne. Jeg fikk høre at
541 denne korte teksten kun fantes på originalspråket svensk under
542 tittelen «Inför lif eller död» og aldri var oversatt til norsk. Da
543 tenkte jeg, der jeg satt i bilen, at en norsk utgave kan vel jeg
544 fikse. Jeg har jo fått oversatt endel bøker, og en liten pamflett på
545 noen få sider burde jo være grei skuring.
</p
>
547 <p
>Den imponerende Elsa Laula, som senere la til etternavnet Renberg, har
548 blant annet fått dokumentaren
549 «
<a href=
"https://www.nrk.no/video/elsa-laula-renberg-kvinnen-som-samlet-sapmi_SAPP67002117
">Elsa
550 Laula Renberg, kvinnen som samlet Sápmi
</a
>» (
2017) av Per Kristian
551 Olsen på NRK, NRK-artikkelen
552 «
<a href=
"https://www.nrk.no/kultur/xl/et-liv-i-kamp-for-samefolkets-rettigheter-
1.13351401">Samenes
553 Jeanne d’Arc
</a
>» av Karen Brodshaug Sveen (
2017), oppgaven
554 «
<a href=
"https://nordligefolk.no/wp-content/uploads/
2020/
03/Elsa-Laulas-Info%CC%
88r-Lif-och-Do%CC%
88d.pdf
">Elsa
555 Laulas Innför lif och död – sanningsord i de lappska
556 förhållandena
</a
>» av Edel Olsen, biografien
557 «
<a href=
"https://www.siribrochjohansen.no/biografien-om-elsa-laula-renberg/
">Elsa
558 Laula Renberg - Historien om samefolkets store Minerva
</a
>» (
2015) av
559 Siri Broch Johansen og radiOrakel-podkasten
560 <a href=
"https://radiorakel.no/podcast/revolusjonen-har-et-kvinnelig-ansikt-elsa-laula/
">Revolusjonen
561 har et kvinnelig ansikt – Elsa Laula
</a
>, for å nevne de jeg har
562 finnet uten å lete spesielt hardt. En virkelig spennende dame, som i
563 tillegg til å inspirere til opprettelsen av samiske organisasjoner,
564 har inspirert til opprettelsen av Sametinget, og født seks barn der
565 fire vokste opp.
</p
>
567 <p
>I dag er jeg veldig glad for å kunne annonsere at
568 <a href=
"http://www.hungry.com/~pere/publisher/#infoerlifellerdoed2024
">bokmålsoversettelsen
569 er klar og tilgjengelig
</a
> for både bestilling på papir og
570 epub-utgave fra lulu.com, samt som nettside. Den kringkastede
571 bokinformasjonen ser slik ut:
</p
>
575 <p
>Den
27 år gamle sørsamiske kvinnen Elsa Laula ga i august
1904 ut
576 en pamflett i Stockholm. Opplaget var på
6000, finansiert av
577 Stockholmsredaktøren Gustav Hedenström, som også bidro i stiftelsen av
578 Lapparnes Centralforbund. Dette kampskriftet var den første boken gitt
579 ut av en samisk kvinne, og hadde som mål å inspirere til opprettelsen
580 av samiske foreninger over hele landet, samt skape blest om
581 sentralforbundet. Pamfletten er et politisk manifest som fortsatt
582 inspirerer i dag.
</p
>
584 <p
>Denne pamfletten er nå for første gang tilgjengelig på bokmål,
585 sammen med en nyutgivelse av originalteksten på svensk.
</p
>
589 <p
>Oversettelsen hadde ikke vært mulig uten gode hjelpere. En virkelig
590 stor innsats både i korrekturarbeidet og utforskning av arkaiske
591 svenske ord, står Axel Rosén bak. I tillegg har jeg fått innspill fra
592 Edel May Karlsen og flere andre både på språkføring og historisk
593 bakgrunn for å forstå teksten.
</p
>
595 <p
>En kuriositet som jeg oppdaget i arbeidet med oversettelsen er at
596 det ikke stemmer at denne boken ikke var oversatt til noen andre
597 språk. Anna Wuolab oversatte den til nordsamisk i
2017 i en utgave
598 gitt ut av samisk skribent- och författarförening (Bágu čálliid
599 searvi) under tittelen «Eallit vai jápmit? : duohtavuođasánit sámi
600 diliid birra = Inför lif eller död? : sanningsord i de lappska
601 förhållandena». Papirutgaven er så vidt jeg kan forstå utsolgt fra
602 forlaget og jeg har ikke klart å finne informasjonsside om boken på
603 Internett. Mulig den er mulig å få tak i som ebok, hvis en skal tro
604 <a href=
"https://search.worldcat.org/title/
1405213087">oppføring i
605 worldcat
</a
>.
</p
>
607 <p
>Oversetterrammeverket jeg har satt opp for å gjennomføre dette
608 oversettelsesprosjektet håndterer flere språk. Jeg er igang med
609 engelsk utgave, og er åpen for å også gi ut andre oversettelser hvis
610 noen er interessert i å gjøre jobben. Det hadde vært ekstra moro å gi
611 den ut på sørsamisk, det samiske språket i regionen der Elsa Laula kom
612 fra. Der er jeg som vanlig avhengig av frivillige som er også
613 interessert i å gjøre dette på dugnad.
</p
>
615 <p
>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
616 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
618 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>. Merk,
619 betaling med bitcoin er ikke anonymt. :)
</p
>
624 <title>The
2024 LinuxCNC Norwegian developer gathering
</title>
625 <link>http://www.hungry.com/~pere/blog/The_2024_LinuxCNC_Norwegian_developer_gathering.html
</link>
626 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/The_2024_LinuxCNC_Norwegian_developer_gathering.html
</guid>
627 <pubDate>Fri,
31 May
2024 07:
45:
00 +
0200</pubDate>
628 <description><p
><a href=
"https://linuxcnc.org/
">The LinuxCNC project
</a
> is still
629 going strong. And I believe this great software system for numerical control of
630 machines such as milling machines, lathes, plasma cutters, routers,
631 cutting machines, robots and hexapods, would do even better with more
632 in-person developer gatherings, so we plan to organise such gathering
633 this summer too.
</p
>
635 <p
>The Norwegian LinuxCNC developer gathering take place the weekend
636 Friday July
5th to
7th this year, and is open for everyone interested
637 in contributing to LinuxCNC and free software manufacturing. Up to
638 date information about the gathering can be found in
639 <a href=
"https://sourceforge.net/p/emc/mailman/emc-developers/thread/
123eaae0-f3b9-
4170-a251-b7d608f1e974%
40bofh.no/
">the
640 developer mailing list thread
</a
> where the gathering was announced.
641 Thanks to the good people at
643 <a href=
"https://www.debian.org/
">Debian
</a
> as well as leftover money
644 from last years gathering from
645 <a href=
"https://www.redpill-linpro.com/
">Redpill-Linpro
</a
> and
646 <a href=
"https://www.nuugfoundation.no/no/
">NUUG Foundation
</a
>, we
647 have enough sponsor funds to pay for food, and probably also shelter
648 for the people traveling from afar to join us. If you would like to
649 join the gathering, get in touch and add your details on
650 <a href=
"https://pad.efn.no/p/linuxcnc-
2024-norway
">the pad
</a
>.
</p
>
652 <p
>As usual, if you use Bitcoin and want to show your support of my
653 activities, please send Bitcoin donations to my address
654 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
659 <title>45 orphaned Debian packages moved to git,
391 to go
</title>
660 <link>http://www.hungry.com/~pere/blog/
45_orphaned_Debian_packages_moved_to_git__391_to_go.html
</link>
661 <guid isPermaLink=
"true">http://www.hungry.com/~pere/blog/
45_orphaned_Debian_packages_moved_to_git__391_to_go.html
</guid>
662 <pubDate>Thu,
25 Apr
2024 22:
00:
00 +
0200</pubDate>
663 <description><p
>Nine days ago, I started migrating orphaned Debian packages with no
664 version control system listed in debian/control of the source to git.
665 At the time there were
438 such packages. Now there are
391,
666 according to the UDD. In reality it is slightly less, as there is a
667 delay between uploads and UDD updates. In the nine days since, I have
668 thus been able to work my way through ten percent of the packages. I
669 am starting to run out of steam, and hope someone else will also help
670 brushing some dust of these packages. Here is a recipe how to do it.
672 I start by picking a random package by querying the UDD for a list of
673 10 random packages from the set of remaining packages:
675 <blockquote
><pre
>
676 PGPASSWORD=
"udd-mirror
" psql --port=
5432 --host=udd-mirror.debian.net \
677 --username=udd-mirror udd -c
"select source from sources \
678 where release =
'sid
' and (vcs_url ilike
'%anonscm.debian.org%
' \
679 OR vcs_browser ilike
'%anonscm.debian.org%
' or vcs_url IS NULL \
680 OR vcs_browser IS NULL) AND maintainer ilike
'%packages@qa.debian.org%
' \
681 order by random() limit
10;
"
682 </pre
></blockquote
>
684 <p
>Next, I visit http://salsa.debian.org/debian and search for the
685 package name, to ensure no git repository already exist. If it does,
686 I clone it and try to get it to an uploadable state, and add the Vcs-*
687 entries in d/control to make the repository more widely known. These
688 packages are a minority, so I will not cover that use case here.
</p
>
690 <p
>For packages without an existing git repository, I run the
691 following script
<tt
>debian-snap-to-salsa
</tt
> to prepare a git
692 repository with the existing packaging.
</p
>
694 <blockquote
><pre
>
697 # See also https://bugs.debian.org/
804722#
31
701 # Move to this Standards-Version.
706 if [ -z
"$PKG
" ]; then
707 echo
"usage: $
0 <pkgname
>"
711 if [ -e
"${PKG}-salsa
" ]; then
712 echo
"error: ${PKG}-salsa already exist, aborting.
"
716 if [ -z
"ALLOWFAILURE
" ] ; then
720 # Fetch every snapshotted source package. Manually loop until all
721 # transfers succeed, as
'gbp import-dscs --debsnap
' do not fail on
723 until debsnap --force -v $PKG || $ALLOWFAILURE ; do sleep
1; done
724 mkdir ${PKG}-salsa; cd ${PKG}-salsa
727 # Specify branches to override any debian/gbp.conf file present in the
729 gbp import-dscs --debian-branch=master --upstream-branch=upstream \
730 --pristine-tar ../source-$PKG/*.dsc
732 # Add Vcs pointing to Salsa Debian project (must be manually created
734 if ! grep -q ^Vcs- debian/control ; then
735 awk
"BEGIN { s=
1 } /^\$/ { if (s==
1) { print \
"Vcs-Browser: https://salsa.debian.org/debian/$PKG\
"; print \
"Vcs-Git: https://salsa.debian.org/debian/$PKG.git\
" }; s=
0 } { print }
" < debian/control
> debian/control.new
&& mv debian/control.new debian/control
736 git commit -m
"Updated vcs in d/control to Salsa.
" debian/control
739 # Tell gbp to enforce the use of pristine-tar.
740 inifile +inifile debian/gbp.conf +create +section DEFAULT +key pristine-tar +value True
741 git add debian/gbp.conf
742 git commit -m
"Added d/gbp.conf to enforce the use of pristine-tar.
" debian/gbp.conf
744 # Update to latest Standards-Version.
745 SV=
"$(grep ^Standards-Version: debian/control|awk
'{print $
2}
')
"
746 if [ $SV_LATEST != $SV ]; then
747 sed -i
"s/\(Standards-Version: \)\(.*\)/\
1$SV_LATEST/
" debian/control
748 git commit -m
"Updated Standards-Version from $SV to $SV_LATEST.
" debian/control
751 if grep -q pkg-config debian/control; then
752 sed -i s/pkg-config/pkgconf/ debian/control
753 git commit -m
"Replaced obsolete pkg-config build dependency with pkgconf.
" debian/control
756 if grep -q libncurses5-dev debian/control; then
757 sed -i s/libncurses5-dev/libncurses-dev/ debian/control
758 git commit -m
"Replaced obsolete libncurses5-dev build dependency with libncurses-dev.
" debian/control
760 </pre
></blockquote
>
762 Some times the debsnap script fail to download some of the versions.
763 In those cases I investigate, and if I decide the failing versions
764 will not be missed, I call it using ALLOWFAILURE=true to ignore the
765 problem and create the git repository anyway.
</p
>
767 <p
>With the git repository in place, I do a test build (gbp
768 buildpackage) to ensure the build is actually working. If it does not
769 I pick a different package, or if the build failure is trivial to fix,
770 I fix it before continuing. At this stage I revisit
771 http://salsa.debian.org/debian and create the project under this group
772 for the package. I then follow the instructions to publish the local
773 git repository. Here is from a recent example:
</p
>
775 <blockquote
><pre
>
776 git remote add origin git@salsa.debian.org:debian/perl-byacc.git
777 git push --set-upstream origin master upstream pristine-tar
779 </pre
></blockquote
>
781 <p
>With a working build, I have a look at the build rules if I want to
782 remove some more dust. I normally try to move to debhelper compat
783 level
13, which involves removing debian/compat and modifying
784 debian/control to build depend on debhelper-compat (=
13). I also test
785 with
'Rules-Requires-Root: no
' in debian/control and verify in
786 debian/rules that hardening is enabled, and include all of these if
787 the package still build. If it fail to build with level
13, I try
788 with
12,
11,
10 and so on until I find a level where it build, as I do
789 not want to spend a lot of time fixing build issues.
</p
>
791 <p
>Some times, when I feel inspired, I make sure debian/copyright is
792 converted to the machine readable format, often by starting with
793 'debhelper -cc
' and then cleaning up the autogenerated content until
794 it matches realities. If I feel like it, I might also clean up
795 non-dh-based debian/rules files to use the short style dh build
798 <p
>Once I have removed all the dust I care to process for the package,
799 I run
'gbp dch
' to generate a debian/changelog entry based on the
800 commits done so far, run
'dch -r
' to switch from
'UNRELEASED
' to
801 'unstable
' and get an editor to make sure the
'QA upload
' marker is in
802 place and that all long commit descriptions are wrapped into sensible
803 lengths, run
'debcommit --release -a
' to commit and tag the new
804 debian/changelog entry, run
'debuild -S
' to build a source only
805 package, and
'dput ../perl-byacc_2.0-
10_source.changes
' to do the
806 upload. During the entire process, and many times per step, I run
807 'debuild
' to verify the changes done still work. I also some times
808 verify the set of built files using
'find debian
' to see if I can spot
809 any problems (like no file in usr/bin any more or empty package). I
810 also try to fix all lintian issues reported at the end of each
811 'debuild
' run.
</p
>
813 <p
>If I find Debian specific patches, I try to ensure their metadata
814 is fairly up to date and some times I even try to reach out to
815 upstream, to make the upstream project aware of the patches. Most of
816 my emails bounce, so the success rate is low. For projects with no
817 Homepage entry in debian/control I try to track down one, and for
818 packages with no debian/watch file I try to create one. But at least
819 for some of the packages I have been unable to find a functioning
820 upstream, and must skip both of these.
</p
>
822 <p
>If I could handle ten percent in nine days, twenty people could
823 complete the rest in less then five days. I use approximately twenty
824 minutes per package, when I have twenty minutes spare time to spend.
825 Perhaps you got twenty minutes to spare too?
</p
>
827 <p
>As usual, if you use Bitcoin and want to show your support of my
828 activities, please send Bitcoin donations to my address
829 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
831 <p
><strong
>Update
2024-
05-
04:
</strong
> There is
832 <a href=
"http://www.hungry.com/~pere/blog/images/
2024-
05-
04-debian-snap-to-salsa.sh
">an
833 updated edition of my migration script
</a
>, last updated
834 2024-
05-
04.
</p
>