]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
Switch Invidious instance.
[homepage.git] / blog / index.rss
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">
3 <channel>
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" />
8
9 <item>
10 <title>More than 200 orphaned Debian packages moved to git, 216 to go</title>
11 <link>http://www.hungry.com/~pere/blog/More_than_200_orphaned_Debian_packages_moved_to_git__216_to_go.html</link>
12 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/More_than_200_orphaned_Debian_packages_moved_to_git__216_to_go.html</guid>
13 <pubDate>Thu, 11 Jul 2024 12:30:00 +0200</pubDate>
14 <description>&lt;p&gt;&lt;a href=&quot;https://people.skolelinux.org/pere/blog/Time_to_move_orphaned_Debian_packages_to_git.html&quot;&gt;In
15 April&lt;/a&gt;, I started migrating orphaned Debian packages without any
16 version control system listed in debian/control to git. This morning,
17 my Debian QA page finally reached 200 QA packages migrated. In
18 reality there are a few more, as the packages uploaded by someone else
19 after my initial upload have disappeared from my QA uploads list. As
20 I am running out of steam and will most likely focus on other parts of
21 Debian moving forward, I hope someone else will find time to continue
22 the migration to bring the number of orphaned packages without any
23 version control system down to zero. Here is the updated recipe if
24 someone want to help out.&lt;/p&gt;
25
26 &lt;p&gt;To locate packages to work on, the following one-liner can be used:&lt;/p&gt;
27
28 &lt;blockquote&gt;&lt;pre&gt;
29 PGPASSWORD=&quot;udd-mirror&quot; psql --port=5432 --host=udd-mirror.debian.net \
30 --username=udd-mirror udd -c &quot;select source from sources \
31 where release = &#39;sid&#39; and (vcs_url ilike &#39;%anonscm.debian.org%&#39; \
32 OR vcs_browser ilike &#39;%anonscm.debian.org%&#39; or vcs_url IS NULL \
33 OR vcs_browser IS NULL) AND maintainer ilike &#39;%packages@qa.debian.org%&#39; \
34 order by random() limit 10;&quot;
35 &lt;/pre&gt;&lt;/blockquote&gt;
36
37 &lt;p&gt;Pick a random package from the list and run the latest edition of
38 the script
39 &lt;tt&gt;&lt;a href=&quot;https://people.skolelinux.org/pere/blog/images/2024-07-11-debian-snap-to-salsa.sh&quot;&gt;debian-snap-to-salsa&lt;/a&gt;&lt;/tt&gt;
40 with the package name as the argument to prepare a git repository with
41 the existing packaging. This will download old Debian packages from
42 &lt;tt&gt;snapshot.debian.org&lt;/tt&gt;. Note that very recent uploads will not
43 be included, so check out the package on &lt;tt&gt;tracker.debian.org&lt;/tt&gt;.
44 Next, run &lt;tt&gt;gbp buildpackage --git-ignore-new&lt;/tt&gt; to verify that
45 the package build as it should, and then visit
46 &lt;a href=&quot;https://salsa.debian.org/debian/&quot;&gt;https://salsa.debian.org/debian/&lt;/a&gt;
47 and make sure there is not already a git repository for the package
48 there. I also did &lt;tt&gt;git log -p debian/control&lt;/tt&gt; and look for vcs
49 entries to check if the package used to have a git repository on
50 Alioth, and see if it can be a useful starting point moving forward.
51 If all this check out, I created a new gitlab project below the Debian
52 group on salsa, push the package source there and upload a new version.
53 I tend to also ensure build hardening is enabled, if it prove to be
54 easy, and check if I can easily fix any lintian issues or bug reports.
55 If the process took more than 20 minutes, I dropped it and moved on to
56 another package.&lt;/p&gt;
57
58 &lt;p&gt;If I found patches in debian/patches/ that were not yet passed
59 upstream, I would send an email to make sure upstream know about them.
60 This has proved to be a valuable step, and caused several new releases
61 for software that initially appeared abandoned. :)&lt;/p&gt;
62
63 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
64 activities, please send Bitcoin donations to my address
65 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
66 </description>
67 </item>
68
69 <item>
70 <title>Some notes from the 2024 LinuxCNC Norwegian developer gathering</title>
71 <link>http://www.hungry.com/~pere/blog/Some_notes_from_the_2024_LinuxCNC_Norwegian_developer_gathering.html</link>
72 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/Some_notes_from_the_2024_LinuxCNC_Norwegian_developer_gathering.html</guid>
73 <pubDate>Wed, 10 Jul 2024 14:45:00 +0200</pubDate>
74 <description>&lt;p&gt;The Norwegian &lt;a href=&quot;https://linuxcnc.org/&quot;&gt;The LinuxCNC&lt;/a&gt;
75 developer gathering 2024 is over. It was a great and productive
76 weekend, and I am sad that it is over.&lt;/p&gt;
77
78 &lt;p&gt;Regular readers probably still remember what LinuxCNC is, but her
79 is a quick summary for those that forgot? LinuxCNC is a free software
80 system for numerical control of machines such as milling machines,
81 lathes, plasma cutters, routers, cutting machines, robots and
82 hexapods. It eats G-code and produce motor movement and other changes
83 to the physical world, while reading sensor input.&lt;/p&gt;
84
85 &lt;p&gt;I am not quite sure about the total head count, as not all people
86 were present at the gathering the entire weekend, but I believe it was
87 close to 10 people showing their faces at the gathering. The &quot;hard
88 core&quot; of the group, who stayed the entire weekend, were two from
89 Norway, two from Germany and one from England. I am happy with the
90 outcome from the gathering. We managed to wrap up a new stable
91 LinuxCNC release 2.9.3 and even tested it on real hardware within
92 minutes of the release. The release notes for 2.9.3 are still being
93 written, but should show up on on the project site in the next few
94 days. We managed to go through around twenty pull requests and merge
95 then into either the stable release (2.9) or the development branch
96 (master). There are still around thirty pull requests left to
97 process, so we are not out of work yet. We even managed to
98 fix/improve a slightly worn lathe, and experiment with running a
99 mechanical clock using G-code.&lt;/p&gt;
100
101 &lt;p&gt;The evening barbeque worked well both on Saturday and Sunday. It
102 is quite fun to light up a charcoal grill using compressed air. Sadly
103 the weather was not the best, so we stayed indoors most of the
104 time.&lt;/p&gt;
105
106 &lt;p&gt;This gathering was made possible partly with sponsoring from both
107 &lt;a href=&quot;https://www.redpill-linpro.com/&quot;&gt;Redpill Linpro&lt;/a&gt;,
108 &lt;a href=&quot;https://debian.org/&quot;&gt;Debian&lt;/a&gt; and
109 &lt;a href=&quot;https://nuugfoundation.no/&quot;&gt;NUUG Foundation&lt;/a&gt;, and we are
110 most grateful for the support. I would also like to thank the local
111 school for lending us some furniture, and of course the rest of the
112 members of the organizers team, Asle and Bosse, for their countless
113 contributions. The gathering was such success that we want to do it
114 again next year.&lt;/p&gt;
115
116 &lt;p&gt;We plan to organize the next Norwegian LinuxCNC developer gathering
117 at the end of June next year, the weekend Friday 27th to Sunday 29th
118 of June 2025. I recommend you reserve the dates on your calendar
119 today. Other related communities are also welcome to join in, for
120 example those working on systems like FreeCAD and opencamlib, as I am
121 sure we have much in common and sharing experiences would be very
122 useful to all involved. We are of course looking for sponsors for
123 this gathering already. The total budget for this gathering was
124 around NOK 25.000 (around EUR 2.300), so our needs are quite modest.
125 Perhaps a machine or tools company would like to help out the free
126 software manufacturing community by sponsoring food, lodging and
127 transport for such gathering?&lt;/p&gt;
128 </description>
129 </item>
130
131 <item>
132 <title>«Møter vi liv eller død?», pamfletten som inspirerte</title>
133 <link>http://www.hungry.com/~pere/blog/_M_ter_vi_liv_eller_d_d____pamfletten_som_inspirerte.html</link>
134 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/_M_ter_vi_liv_eller_d_d____pamfletten_som_inspirerte.html</guid>
135 <pubDate>Tue, 4 Jun 2024 11:30:00 +0200</pubDate>
136 <description>&lt;img align=&quot;center&quot; src=&quot;https://people.skolelinux.org/pere/blog/images/2024-06-04-bok-elsa-laula.svg&quot; width=&quot;20%&quot; align=&quot;center&quot; border=&quot;1&quot;&gt;&lt;/a&gt;
137
138 &lt;p&gt;Da jeg i høst hørte jeg et innslag på
139 &lt;a href=&quot;https://radiorakel.no/&quot;&gt;radiOrakel&lt;/a&gt; om en inspirerende dame
140 som levde for over hundre år siden, fikk jeg en vill ide. Elsa Laula
141 var en svensk samisk dame som ikke bare fikk utdannelsen finansiert av
142 den danske dronningen, men som gjorde så god jobb med å inspirere og
143 organisere den samiske befolkningen at det visstnok ble forslått i
144 Sverige å straffeforfølge henne for oppvigleri før hun flyttet fra
145 Sverige til Norge. Radiopraterne fortalte videre at da Elsa Laula ga
146 ut en pamflett for å inspirere samene til samling var dette den
147 første bok gitt ut av en samisk dame noensinne. Jeg fikk høre at
148 denne korte teksten kun fantes på originalspråket svensk under
149 tittelen «Inför lif eller död» og aldri var oversatt til norsk. Da
150 tenkte jeg, der jeg satt i bilen, at en norsk utgave kan vel jeg
151 fikse. Jeg har jo fått oversatt endel bøker, og en liten pamflett på
152 noen få sider burde jo være grei skuring.&lt;/p&gt;
153
154 &lt;p&gt;Den imponerende Elsa Laula, som senere la til etternavnet Renberg, har
155 blant annet fått dokumentaren
156 «&lt;a href=&quot;https://www.nrk.no/video/elsa-laula-renberg-kvinnen-som-samlet-sapmi_SAPP67002117&quot;&gt;Elsa
157 Laula Renberg, kvinnen som samlet Sápmi&lt;/a&gt;» (2017) av Per Kristian
158 Olsen på NRK, NRK-artikkelen
159 «&lt;a href=&quot;https://www.nrk.no/kultur/xl/et-liv-i-kamp-for-samefolkets-rettigheter-1.13351401&quot;&gt;Samenes
160 Jeanne d’Arc&lt;/a&gt;» av Karen Brodshaug Sveen (2017), oppgaven
161 «&lt;a href=&quot;https://nordligefolk.no/wp-content/uploads/2020/03/Elsa-Laulas-Info%CC%88r-Lif-och-Do%CC%88d.pdf&quot;&gt;Elsa
162 Laulas Innför lif och död – sanningsord i de lappska
163 förhållandena&lt;/a&gt;» av Edel Olsen, biografien
164 «&lt;a href=&quot;https://www.siribrochjohansen.no/biografien-om-elsa-laula-renberg/&quot;&gt;Elsa
165 Laula Renberg - Historien om samefolkets store Minerva&lt;/a&gt;» (2015) av
166 Siri Broch Johansen og radiOrakel-podkasten
167 &lt;a href=&quot;https://radiorakel.no/podcast/revolusjonen-har-et-kvinnelig-ansikt-elsa-laula/&quot;&gt;Revolusjonen
168 har et kvinnelig ansikt – Elsa Laula&lt;/a&gt;, for å nevne de jeg har
169 finnet uten å lete spesielt hardt. En virkelig spennende dame, som i
170 tillegg til å inspirere til opprettelsen av samiske organisasjoner,
171 har inspirert til opprettelsen av Sametinget, og født seks barn der
172 fire vokste opp.&lt;/p&gt;
173
174 &lt;p&gt;I dag er jeg veldig glad for å kunne annonsere at
175 &lt;a href=&quot;http://www.hungry.com/~pere/publisher/#infoerlifellerdoed2024&quot;&gt;bokmålsoversettelsen
176 er klar og tilgjengelig&lt;/a&gt; for både bestilling på papir og
177 epub-utgave fra lulu.com, samt som nettside. Den kringkastede
178 bokinformasjonen ser slik ut:&lt;/p&gt;
179
180 &lt;blockquote&gt;
181
182 &lt;p&gt;Den 27 år gamle sørsamiske kvinnen Elsa Laula ga i august 1904 ut
183 en pamflett i Stockholm. Opplaget var på 6000, finansiert av
184 Stockholmsredaktøren Gustav Hedenström, som også bidro i stiftelsen av
185 Lapparnes Centralforbund. Dette kampskriftet var den første boken gitt
186 ut av en samisk kvinne, og hadde som mål å inspirere til opprettelsen
187 av samiske foreninger over hele landet, samt skape blest om
188 sentralforbundet. Pamfletten er et politisk manifest som fortsatt
189 inspirerer i dag.&lt;/p&gt;
190
191 &lt;p&gt;Denne pamfletten er nå for første gang tilgjengelig på bokmål,
192 sammen med en nyutgivelse av originalteksten på svensk.&lt;/p&gt;
193
194 &lt;/blockquote&gt;
195
196 &lt;p&gt;Oversettelsen hadde ikke vært mulig uten gode hjelpere. En virkelig
197 stor innsats både i korrekturarbeidet og utforskning av arkaiske
198 svenske ord, står Axel Rosén bak. I tillegg har jeg fått innspill fra
199 Edel May Karlsen og flere andre både på språkføring og historisk
200 bakgrunn for å forstå teksten.&lt;/p&gt;
201
202 &lt;p&gt;En kuriositet som jeg oppdaget i arbeidet med oversettelsen er at
203 det ikke stemmer at denne boken ikke var oversatt til noen andre
204 språk. Anna Wuolab oversatte den til nordsamisk i 2017 i en utgave
205 gitt ut av samisk skribent- och författarförening (Bágu čálliid
206 searvi) under tittelen «Eallit vai jápmit? : duohtavuođasánit sámi
207 diliid birra = Inför lif eller död? : sanningsord i de lappska
208 förhållandena». Papirutgaven er så vidt jeg kan forstå utsolgt fra
209 forlaget og jeg har ikke klart å finne informasjonsside om boken på
210 Internett. Mulig den er mulig å få tak i som ebok, hvis en skal tro
211 &lt;a href=&quot;https://search.worldcat.org/title/1405213087&quot;&gt;oppføring i
212 worldcat&lt;/a&gt;.&lt;/p&gt;
213
214 &lt;p&gt;Oversetterrammeverket jeg har satt opp for å gjennomføre dette
215 oversettelsesprosjektet håndterer flere språk. Jeg er igang med
216 engelsk utgave, og er åpen for å også gi ut andre oversettelser hvis
217 noen er interessert i å gjøre jobben. Det hadde vært ekstra moro å gi
218 den ut på sørsamisk, det samiske språket i regionen der Elsa Laula kom
219 fra. Der er jeg som vanlig avhengig av frivillige som er også
220 interessert i å gjøre dette på dugnad.&lt;/p&gt;
221
222 &lt;p&gt;Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
223 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
224 til min adresse
225 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;. Merk,
226 betaling med bitcoin er ikke anonymt. :)&lt;/p&gt;
227 </description>
228 </item>
229
230 <item>
231 <title>The 2024 LinuxCNC Norwegian developer gathering</title>
232 <link>http://www.hungry.com/~pere/blog/The_2024_LinuxCNC_Norwegian_developer_gathering.html</link>
233 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/The_2024_LinuxCNC_Norwegian_developer_gathering.html</guid>
234 <pubDate>Fri, 31 May 2024 07:45:00 +0200</pubDate>
235 <description>&lt;p&gt;&lt;a href=&quot;https://linuxcnc.org/&quot;&gt;The LinuxCNC project&lt;/a&gt; is still
236 going strong. And I believe this great software system for numerical control of
237 machines such as milling machines, lathes, plasma cutters, routers,
238 cutting machines, robots and hexapods, would do even better with more
239 in-person developer gatherings, so we plan to organise such gathering
240 this summer too.&lt;/p&gt;
241
242 &lt;p&gt;The Norwegian LinuxCNC developer gathering take place the weekend
243 Friday July 5th to 7th this year, and is open for everyone interested
244 in contributing to LinuxCNC and free software manufacturing. Up to
245 date information about the gathering can be found in
246 &lt;a href=&quot;https://sourceforge.net/p/emc/mailman/emc-developers/thread/123eaae0-f3b9-4170-a251-b7d608f1e974%40bofh.no/&quot;&gt;the
247 developer mailing list thread&lt;/a&gt; where the gathering was announced.
248 Thanks to the good people at
249
250 &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt; as well as leftover money
251 from last years gathering from
252 &lt;a href=&quot;https://www.redpill-linpro.com/&quot;&gt;Redpill-Linpro&lt;/a&gt; and
253 &lt;a href=&quot;https://www.nuugfoundation.no/no/&quot;&gt;NUUG Foundation&lt;/a&gt;, we
254 have enough sponsor funds to pay for food, and probably also shelter
255 for the people traveling from afar to join us. If you would like to
256 join the gathering, get in touch and add your details on
257 &lt;a href=&quot;https://pad.efn.no/p/linuxcnc-2024-norway&quot;&gt;the pad&lt;/a&gt;.&lt;/p&gt;
258
259 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
260 activities, please send Bitcoin donations to my address
261 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
262 </description>
263 </item>
264
265 <item>
266 <title>45 orphaned Debian packages moved to git, 391 to go</title>
267 <link>http://www.hungry.com/~pere/blog/45_orphaned_Debian_packages_moved_to_git__391_to_go.html</link>
268 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/45_orphaned_Debian_packages_moved_to_git__391_to_go.html</guid>
269 <pubDate>Thu, 25 Apr 2024 22:00:00 +0200</pubDate>
270 <description>&lt;p&gt;Nine days ago, I started migrating orphaned Debian packages with no
271 version control system listed in debian/control of the source to git.
272 At the time there were 438 such packages. Now there are 391,
273 according to the UDD. In reality it is slightly less, as there is a
274 delay between uploads and UDD updates. In the nine days since, I have
275 thus been able to work my way through ten percent of the packages. I
276 am starting to run out of steam, and hope someone else will also help
277 brushing some dust of these packages. Here is a recipe how to do it.
278
279 I start by picking a random package by querying the UDD for a list of
280 10 random packages from the set of remaining packages:
281
282 &lt;blockquote&gt;&lt;pre&gt;
283 PGPASSWORD=&quot;udd-mirror&quot; psql --port=5432 --host=udd-mirror.debian.net \
284 --username=udd-mirror udd -c &quot;select source from sources \
285 where release = &#39;sid&#39; and (vcs_url ilike &#39;%anonscm.debian.org%&#39; \
286 OR vcs_browser ilike &#39;%anonscm.debian.org%&#39; or vcs_url IS NULL \
287 OR vcs_browser IS NULL) AND maintainer ilike &#39;%packages@qa.debian.org%&#39; \
288 order by random() limit 10;&quot;
289 &lt;/pre&gt;&lt;/blockquote&gt;
290
291 &lt;p&gt;Next, I visit http://salsa.debian.org/debian and search for the
292 package name, to ensure no git repository already exist. If it does,
293 I clone it and try to get it to an uploadable state, and add the Vcs-*
294 entries in d/control to make the repository more widely known. These
295 packages are a minority, so I will not cover that use case here.&lt;/p&gt;
296
297 &lt;p&gt;For packages without an existing git repository, I run the
298 following script &lt;tt&gt;debian-snap-to-salsa&lt;/tt&gt; to prepare a git
299 repository with the existing packaging.&lt;/p&gt;
300
301 &lt;blockquote&gt;&lt;pre&gt;
302 #!/bin/sh
303 #
304 # See also https://bugs.debian.org/804722#31
305
306 set -e
307
308 # Move to this Standards-Version.
309 SV_LATEST=4.7.0
310
311 PKG=&quot;$1&quot;
312
313 if [ -z &quot;$PKG&quot; ]; then
314 echo &quot;usage: $0 &lt;pkgname&gt;&quot;
315 exit 1
316 fi
317
318 if [ -e &quot;${PKG}-salsa&quot; ]; then
319 echo &quot;error: ${PKG}-salsa already exist, aborting.&quot;
320 exit 1
321 fi
322
323 if [ -z &quot;ALLOWFAILURE&quot; ] ; then
324 ALLOWFAILURE=false
325 fi
326
327 # Fetch every snapshotted source package. Manually loop until all
328 # transfers succeed, as &#39;gbp import-dscs --debsnap&#39; do not fail on
329 # download failures.
330 until debsnap --force -v $PKG || $ALLOWFAILURE ; do sleep 1; done
331 mkdir ${PKG}-salsa; cd ${PKG}-salsa
332 git init
333
334 # Specify branches to override any debian/gbp.conf file present in the
335 # source package.
336 gbp import-dscs --debian-branch=master --upstream-branch=upstream \
337 --pristine-tar ../source-$PKG/*.dsc
338
339 # Add Vcs pointing to Salsa Debian project (must be manually created
340 # and pushed to).
341 if ! grep -q ^Vcs- debian/control ; then
342 awk &quot;BEGIN { s=1 } /^\$/ { if (s==1) { print \&quot;Vcs-Browser: https://salsa.debian.org/debian/$PKG\&quot;; print \&quot;Vcs-Git: https://salsa.debian.org/debian/$PKG.git\&quot; }; s=0 } { print }&quot; &lt; debian/control &gt; debian/control.new &amp;&amp; mv debian/control.new debian/control
343 git commit -m &quot;Updated vcs in d/control to Salsa.&quot; debian/control
344 fi
345
346 # Tell gbp to enforce the use of pristine-tar.
347 inifile +inifile debian/gbp.conf +create +section DEFAULT +key pristine-tar +value True
348 git add debian/gbp.conf
349 git commit -m &quot;Added d/gbp.conf to enforce the use of pristine-tar.&quot; debian/gbp.conf
350
351 # Update to latest Standards-Version.
352 SV=&quot;$(grep ^Standards-Version: debian/control|awk &#39;{print $2}&#39;)&quot;
353 if [ $SV_LATEST != $SV ]; then
354 sed -i &quot;s/\(Standards-Version: \)\(.*\)/\1$SV_LATEST/&quot; debian/control
355 git commit -m &quot;Updated Standards-Version from $SV to $SV_LATEST.&quot; debian/control
356 fi
357
358 if grep -q pkg-config debian/control; then
359 sed -i s/pkg-config/pkgconf/ debian/control
360 git commit -m &quot;Replaced obsolete pkg-config build dependency with pkgconf.&quot; debian/control
361 fi
362
363 if grep -q libncurses5-dev debian/control; then
364 sed -i s/libncurses5-dev/libncurses-dev/ debian/control
365 git commit -m &quot;Replaced obsolete libncurses5-dev build dependency with libncurses-dev.&quot; debian/control
366 fi
367 &lt;/pre&gt;&lt;/blockquote&gt;
368
369 Some times the debsnap script fail to download some of the versions.
370 In those cases I investigate, and if I decide the failing versions
371 will not be missed, I call it using ALLOWFAILURE=true to ignore the
372 problem and create the git repository anyway.&lt;/p&gt;
373
374 &lt;p&gt;With the git repository in place, I do a test build (gbp
375 buildpackage) to ensure the build is actually working. If it does not
376 I pick a different package, or if the build failure is trivial to fix,
377 I fix it before continuing. At this stage I revisit
378 http://salsa.debian.org/debian and create the project under this group
379 for the package. I then follow the instructions to publish the local
380 git repository. Here is from a recent example:&lt;/p&gt;
381
382 &lt;blockquote&gt;&lt;pre&gt;
383 git remote add origin git@salsa.debian.org:debian/perl-byacc.git
384 git push --set-upstream origin master upstream pristine-tar
385 git push --tags
386 &lt;/pre&gt;&lt;/blockquote&gt;
387
388 &lt;p&gt;With a working build, I have a look at the build rules if I want to
389 remove some more dust. I normally try to move to debhelper compat
390 level 13, which involves removing debian/compat and modifying
391 debian/control to build depend on debhelper-compat (=13). I also test
392 with &#39;Rules-Requires-Root: no&#39; in debian/control and verify in
393 debian/rules that hardening is enabled, and include all of these if
394 the package still build. If it fail to build with level 13, I try
395 with 12, 11, 10 and so on until I find a level where it build, as I do
396 not want to spend a lot of time fixing build issues.&lt;/p&gt;
397
398 &lt;p&gt;Some times, when I feel inspired, I make sure debian/copyright is
399 converted to the machine readable format, often by starting with
400 &#39;debhelper -cc&#39; and then cleaning up the autogenerated content until
401 it matches realities. If I feel like it, I might also clean up
402 non-dh-based debian/rules files to use the short style dh build
403 rules.&lt;/p&gt;
404
405 &lt;p&gt;Once I have removed all the dust I care to process for the package,
406 I run &#39;gbp dch&#39; to generate a debian/changelog entry based on the
407 commits done so far, run &#39;dch -r&#39; to switch from &#39;UNRELEASED&#39; to
408 &#39;unstable&#39; and get an editor to make sure the &#39;QA upload&#39; marker is in
409 place and that all long commit descriptions are wrapped into sensible
410 lengths, run &#39;debcommit --release -a&#39; to commit and tag the new
411 debian/changelog entry, run &#39;debuild -S&#39; to build a source only
412 package, and &#39;dput ../perl-byacc_2.0-10_source.changes&#39; to do the
413 upload. During the entire process, and many times per step, I run
414 &#39;debuild&#39; to verify the changes done still work. I also some times
415 verify the set of built files using &#39;find debian&#39; to see if I can spot
416 any problems (like no file in usr/bin any more or empty package). I
417 also try to fix all lintian issues reported at the end of each
418 &#39;debuild&#39; run.&lt;/p&gt;
419
420 &lt;p&gt;If I find Debian specific patches, I try to ensure their metadata
421 is fairly up to date and some times I even try to reach out to
422 upstream, to make the upstream project aware of the patches. Most of
423 my emails bounce, so the success rate is low. For projects with no
424 Homepage entry in debian/control I try to track down one, and for
425 packages with no debian/watch file I try to create one. But at least
426 for some of the packages I have been unable to find a functioning
427 upstream, and must skip both of these.&lt;/p&gt;
428
429 &lt;p&gt;If I could handle ten percent in nine days, twenty people could
430 complete the rest in less then five days. I use approximately twenty
431 minutes per package, when I have twenty minutes spare time to spend.
432 Perhaps you got twenty minutes to spare too?&lt;/p&gt;
433
434 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
435 activities, please send Bitcoin donations to my address
436 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
437
438 &lt;p&gt;&lt;strong&gt;Update 2024-05-04:&lt;/strong&gt; There is
439 &lt;a href=&quot;https://people.skolelinux.org/pere/blog/images/2024-05-04-debian-snap-to-salsa.sh&quot;&gt;an
440 updated edition of my migration script&lt;/a&gt;, last updated
441 2024-05-04.&lt;/p&gt;
442 </description>
443 </item>
444
445 <item>
446 <title>RAID status from LSI Megaraid controllers in Debian</title>
447 <link>http://www.hungry.com/~pere/blog/RAID_status_from_LSI_Megaraid_controllers_in_Debian.html</link>
448 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/RAID_status_from_LSI_Megaraid_controllers_in_Debian.html</guid>
449 <pubDate>Wed, 17 Apr 2024 17:00:00 +0200</pubDate>
450 <description>&lt;p&gt;I am happy to report that
451 &lt;a href=&quot;https://github.com/namiltd/megactl&quot;&gt;the megactl package&lt;/a&gt;,
452 useful to fetch RAID status when using the LSI Megaraid controller,
453 now is available in Debian. It passed NEW a few days ago, and is now
454 &lt;a href=&quot;https://tracker.debian.org/pkg/megactl&quot;&gt;available in
455 unstable&lt;/a&gt;, and probably showing up in testing in a weeks time. The
456 new version should provide Appstream hardware mapping and should
457 integrate nicely with isenkram.&lt;/p&gt;
458
459 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
460 activities, please send Bitcoin donations to my address
461 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
462
463 </description>
464 </item>
465
466 <item>
467 <title>Time to move orphaned Debian packages to git</title>
468 <link>http://www.hungry.com/~pere/blog/Time_to_move_orphaned_Debian_packages_to_git.html</link>
469 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/Time_to_move_orphaned_Debian_packages_to_git.html</guid>
470 <pubDate>Sun, 14 Apr 2024 09:30:00 +0200</pubDate>
471 <description>&lt;p&gt;There are several packages in Debian without a associated git
472 repository with the packaging history. This is unfortunate and it
473 would be nice if more of these would do so. Quote a lot of these are
474 without a maintainer, ie listed as maintained by the
475 &#39;&lt;a href=&quot;https://qa.debian.org/developer.php?email=packages%40qa.debian.org&quot;&gt;Debian
476 QA Group&lt;/a&gt;&#39; place holder. In fact, 438 packages have this property
477 according to UDD (&lt;tt&gt;SELECT source FROM sources WHERE release = &#39;sid&#39;
478 AND (vcs_url ilike &#39;%anonscm.debian.org%&#39; OR vcs_browser ilike
479 &#39;%anonscm.debian.org%&#39; or vcs_url IS NULL OR vcs_browser IS NULL) AND
480 maintainer ilike &#39;%packages@qa.debian.org%&#39;;&lt;/tt&gt;). Such packages can
481 be updated without much coordination by any Debian developer, as they
482 are considered orphaned.&lt;/p&gt;
483
484 &lt;p&gt;To try to improve the situation and reduce the number of packages
485 without associated git repository, I started a few days ago to search
486 out candiates and provide them with a git repository under the
487 &#39;debian&#39; collaborative Salsa project. I started with the packages
488 pointing to obsolete Alioth git repositories, and am now working my
489 way across the ones completely without git references. In addition to
490 updating the Vcs-* debian/control fields, I try to update
491 Standards-Version, debhelper compat level, simplify d/rules, switch to
492 Rules-Requires-Root: no and fix lintian issues reported. I only
493 implement those that are trivial to fix, to avoid spending too much
494 time on each orphaned package. So far my experience is that it take
495 aproximately 20 minutes to convert a package without any git
496 references, and a lot more for packages with existing git repositories
497 incompatible with git-buildpackages.&lt;/p&gt;
498
499 &lt;p&gt;So far I have converted 10 packages, and I will keep going until I
500 run out of steam. As should be clear from the numbers, there is
501 enough packages remaining for more people to do the same without
502 stepping on each others toes. I find it useful to start by searching
503 for a git repo already on salsa, as I find that some times a git repo
504 has already been created, but no new version is uploaded to Debian
505 yet. In those cases I start with the existing git repository. I
506 convert to the git-buildpackage+pristine-tar workflow, and ensure a
507 debian/gbp.conf file with &quot;pristine-tar=True&quot; is added early, to avoid
508 uploading a orig.tar.gz with the wrong checksum by mistake. Did that
509 three times in the begin before I remembered my mistake.&lt;/p&gt;
510
511 &lt;p&gt;So, if you are a Debian Developer and got some spare time, perhaps
512 considering migrating some orphaned packages to git?&lt;/p&gt;
513
514 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
515 activities, please send Bitcoin donations to my address
516 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
517 </description>
518 </item>
519
520 <item>
521 <title>Plain text accounting file from your bitcoin transactions</title>
522 <link>http://www.hungry.com/~pere/blog/Plain_text_accounting_file_from_your_bitcoin_transactions.html</link>
523 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/Plain_text_accounting_file_from_your_bitcoin_transactions.html</guid>
524 <pubDate>Thu, 7 Mar 2024 18:00:00 +0100</pubDate>
525 <description>&lt;p&gt;A while back I wrote a small script to extract the Bitcoin
526 transactions in a wallet in the
527 &lt;ahref=&quot;https://plaintextaccounting.org/&quot;&gt;ledger plain text accounting
528 format&lt;/a&gt;. The last few days I spent some time to get it working
529 better with more special cases. In case it can be useful for others,
530 here is a copy:&lt;/p&gt;
531
532 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
533 #!/usr/bin/python3
534 # -*- coding: utf-8 -*-
535 # Copyright (c) 2023-2024 Petter Reinholdtsen
536
537 from decimal import Decimal
538 import json
539 import subprocess
540 import time
541
542 import numpy
543
544 def format_float(num):
545 return numpy.format_float_positional(num, trim=&#39;-&#39;)
546
547 accounts = {
548 u&#39;amount&#39; : &#39;Assets:BTC:main&#39;,
549 }
550
551 addresses = {
552 &#39;&lt;some address&gt;&#39; : &#39;Assets:bankkonto&#39;,
553 &#39;&lt;some address&gt;&#39; : &#39;Assets:bankkonto&#39;,
554 }
555
556 def exec_json(cmd):
557 proc = subprocess.Popen(cmd,stdout=subprocess.PIPE)
558 j = json.loads(proc.communicate()[0], parse_float=Decimal)
559 return j
560
561 def list_txs():
562 # get all transactions for all accounts / addresses
563 c = 0
564 txs = []
565 txidfee = {}
566 limit=100000
567 cmd = [&#39;bitcoin-cli&#39;, &#39;listtransactions&#39;, &#39;*&#39;, str(limit)]
568 if True:
569 txs.extend(exec_json(cmd))
570 else:
571 # Useful for debugging
572 with open(&#39;transactions.json&#39;) as f:
573 txs.extend(json.load(f, parse_float=Decimal))
574 #print txs
575 for tx in sorted(txs, key=lambda a: a[&#39;time&#39;]):
576 # print tx[&#39;category&#39;]
577 if &#39;abandoned&#39; in tx and tx[&#39;abandoned&#39;]:
578 continue
579 if &#39;confirmations&#39; in tx and 0 &gt;= tx[&#39;confirmations&#39;]:
580 continue
581 when = time.strftime(&#39;%Y-%m-%d %H:%M&#39;, time.localtime(tx[&#39;time&#39;]))
582 if &#39;message&#39; in tx:
583 desc = tx[&#39;message&#39;]
584 elif &#39;comment&#39; in tx:
585 desc = tx[&#39;comment&#39;]
586 elif &#39;label&#39; in tx:
587 desc = tx[&#39;label&#39;]
588 else:
589 desc = &#39;n/a&#39;
590 print(&quot;%s %s&quot; % (when, desc))
591 if &#39;address&#39; in tx:
592 print(&quot; ; to bitcoin address %s&quot; % tx[&#39;address&#39;])
593 else:
594 print(&quot; ; missing address in transaction, txid=%s&quot; % tx[&#39;txid&#39;])
595 print(f&quot; ; amount={tx[&#39;amount&#39;]}&quot;)
596 if &#39;fee&#39;in tx:
597 print(f&quot; ; fee={tx[&#39;fee&#39;]}&quot;)
598 for f in accounts.keys():
599 if f in tx and Decimal(0) != tx[f]:
600 amount = tx[f]
601 print(&quot; %-20s %s BTC&quot; % (accounts[f], format_float(amount)))
602 if &#39;fee&#39; in tx and Decimal(0) != tx[&#39;fee&#39;]:
603 # Make sure to list fee used in several transactions only once.
604 if &#39;fee&#39; in tx and tx[&#39;txid&#39;] in txidfee \
605 and tx[&#39;fee&#39;] == txidfee[tx[&#39;txid&#39;]]:
606 True
607 else:
608 fee = tx[&#39;fee&#39;]
609 print(&quot; %-20s %s BTC&quot; % (accounts[&#39;amount&#39;], format_float(fee)))
610 print(&quot; %-20s %s BTC&quot; % (&#39;Expences:BTC-fee&#39;, format_float(-fee)))
611 txidfee[tx[&#39;txid&#39;]] = tx[&#39;fee&#39;]
612
613 if &#39;address&#39; in tx and tx[&#39;address&#39;] in addresses:
614 print(&quot; %s&quot; % addresses[tx[&#39;address&#39;]])
615 else:
616 if &#39;generate&#39; == tx[&#39;category&#39;]:
617 print(&quot; Income:BTC-mining&quot;)
618 else:
619 if amount &lt; Decimal(0):
620 print(f&quot; Assets:unknown:sent:update-script-addr-{tx[&#39;address&#39;]}&quot;)
621 else:
622 print(f&quot; Assets:unknown:received:update-script-addr-{tx[&#39;address&#39;]}&quot;)
623
624 print()
625 c = c + 1
626 print(&quot;# Found %d transactions&quot; % c)
627 if limit == c:
628 print(f&quot;# Warning: Limit {limit} reached, consider increasing limit.&quot;)
629
630 def main():
631 list_txs()
632
633 main()
634 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
635
636 &lt;p&gt;It is more of a proof of concept, and I do not expect it to handle
637 all edge cases, but it worked for me, and perhaps you can find it
638 useful too.&lt;/p&gt;
639
640 &lt;p&gt;To get a more interesting result, it is useful to map accounts sent
641 to or received from to accounting accounts, using the
642 &lt;tt&gt;addresses&lt;/tt&gt; hash. As these will be very context dependent, I
643 leave out my list to allow each user to fill out their own list of
644 accounts. Out of the box, &#39;ledger reg BTC:main&#39; should be able to
645 show the amount of BTCs present in the wallet at any given time in the
646 past. For other and more valuable analysis, a account plan need to be
647 set up in the &lt;tt&gt;addresses&lt;/tt&gt; hash. Here is an example
648 transaction:&lt;/p&gt;
649
650 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
651 2024-03-07 17:00 Donated to good cause
652 Assets:BTC:main -0.1 BTC
653 Assets:BTC:main -0.00001 BTC
654 Expences:BTC-fee 0.00001 BTC
655 Expences:donations 0.1 BTC
656 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
657
658 &lt;p&gt;It need a running Bitcoin Core daemon running, as it connect to it
659 using &lt;tt&gt;bitcoin-cli listtransactions * 100000&lt;/tt&gt; to extract the
660 transactions listed in the Wallet.&lt;/p&gt;
661
662 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
663 activities, please send Bitcoin donations to my address
664 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
665 </description>
666 </item>
667
668 <item>
669 <title>RAID status from LSI Megaraid controllers using free software</title>
670 <link>http://www.hungry.com/~pere/blog/RAID_status_from_LSI_Megaraid_controllers_using_free_software.html</link>
671 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/RAID_status_from_LSI_Megaraid_controllers_using_free_software.html</guid>
672 <pubDate>Sun, 3 Mar 2024 22:40:00 +0100</pubDate>
673 <description>&lt;p&gt;The last few days I have revisited RAID setup using the LSI
674 Megaraid controller. These are a family of controllers called PERC by
675 Dell, and is present in several old PowerEdge servers, and I recently
676 got my hands on one of these. I had forgotten how to handle this RAID
677 controller in Debian, so I had to take a peek in the
678 &lt;a href=&quot;https://wiki.debian.org/LinuxRaidForAdmins&quot;&gt;Debian wiki page
679 &quot;Linux and Hardware RAID: an administrator&#39;s summary&quot;&lt;/a&gt; to remember
680 what kind of software is available to configure and monitor the disks
681 and controller. I prefer Free Software alternatives to proprietary
682 tools, as the later tend to fall into disarray once the manufacturer
683 loose interest, and often do not work with newer Linux Distributions.
684 Sadly there is no free software tool to configure the RAID setup, only
685 to monitor it. RAID can provide improved reliability and resilience in
686 a storage solution, but only if it is being regularly checked and any
687 broken disks are being replaced in time. I thus want to ensure some
688 automatic monitoring is available.&lt;/p&gt;
689
690 &lt;p&gt;In the discovery process, I came across a old free software tool to
691 monitor PERC2, PERC3, PERC4 and PERC5 controllers, which to my
692 surprise is not present in debian. To help change that I created a
693 &lt;a href=&quot;https://bugs.debian.org/1065322&quot;&gt;request for packaging of the
694 megactl package&lt;/a&gt;, and tried to track down a usable version.
695 &lt;a href=&quot;https://sourceforge.net/p/megactl/&quot;&gt;The original project
696 site&lt;/a&gt; is on Sourceforge, but as far as I can tell that project has
697 been dead for more than 15 years. I managed to find a
698 &lt;a href=&quot;https://github.com/hmage/megactl&quot;&gt;more recent fork on
699 github&lt;/a&gt; from user hmage, but it is unclear to me if this is still
700 being maintained. It has not seen much improvements since 2016. A
701 &lt;a href=&quot;https://github.com/namiltd/megactl&quot;&gt;more up to date
702 edition&lt;/a&gt; is a git fork from the original github fork by user
703 namiltd, and this newer fork seem a lot more promising. The owner of
704 this github repository has replied to change proposals within hours,
705 and had already added some improvements and support for more hardware.
706 Sadly he is reluctant to commit to maintaining the tool and stated in
707 &lt;a href=&quot;https://github.com/namiltd/megactl/pull/1&quot;&gt;my first pull
708 request&lt;/A&gt; that he think a new release should be made based on the
709 git repository owned by hmage. I perfectly understand this
710 reluctance, as I feel the same about maintaining yet another package
711 in Debian when I barely have time to take care of the ones I already
712 maintain, but do not really have high hopes that hmage will have time
713 to spend on it and hope namiltd will change his mind.&lt;/p&gt;
714
715 &lt;p&gt;In any case, I created
716 &lt;a href=&quot;https://salsa.debian.org/debian/megactl&quot;&gt;a draft package&lt;/a&gt;
717 based on the namiltd edition and put it under the debian group on
718 salsa.debian.org. If you own a Dell PowerEdge server with one of the
719 PERC controllers, or any other RAID controller using the megaraid or
720 megaraid_sas Linux kernel modules, you might want to check it out. If
721 enough people are interested, perhaps the package will make it into
722 the Debian archive.&lt;/p&gt;
723
724 &lt;p&gt;There are two tools provided, megactl for the megaraid Linux kernel
725 module, and megasasctl for the megaraid_sas Linux kernel module. The
726 simple output from the command on one of my machines look like this
727 (yes, I know some of the disks have problems. :).&lt;/p&gt;
728
729 &lt;pre&gt;
730 # megasasctl
731 a0 PERC H730 Mini encl:1 ldrv:2 batt:good
732 a0d0 558GiB RAID 1 1x2 optimal
733 a0d1 3067GiB RAID 0 1x11 optimal
734 a0e32s0 558GiB a0d0 online errs: media:0 other:19
735 a0e32s1 279GiB a0d1 online
736 a0e32s2 279GiB a0d1 online
737 a0e32s3 279GiB a0d1 online
738 a0e32s4 279GiB a0d1 online
739 a0e32s5 279GiB a0d1 online
740 a0e32s6 279GiB a0d1 online
741 a0e32s8 558GiB a0d0 online errs: media:0 other:17
742 a0e32s9 279GiB a0d1 online
743 a0e32s10 279GiB a0d1 online
744 a0e32s11 279GiB a0d1 online
745 a0e32s12 279GiB a0d1 online
746 a0e32s13 279GiB a0d1 online
747
748 #
749 &lt;/pre&gt;
750
751 &lt;p&gt;In addition to displaying a simple status report, it can also test
752 individual drives and print the various event logs. Perhaps you too
753 find it useful?&lt;/p&gt;
754
755 &lt;p&gt;In the packaging process I provided some patches upstream to
756 improve installation and ensure
757 &lt;ahref=&quot;https://github.com/namiltd/megactl/pull/2&quot;&gt;a Appstream
758 metainfo file is provided&lt;/a&gt; to list all supported HW, to allow
759 &lt;a href=&quot;https://tracker.debian.org/isenkram&quot;&gt;isenkram&lt;/a&gt; to propose
760 the package on all servers with a relevant PCI card.&lt;/p&gt;
761
762 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
763 activities, please send Bitcoin donations to my address
764 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
765
766 </description>
767 </item>
768
769 <item>
770 <title>Frokostseminar om Noark 5 i Oslo tirsdag 2024-03-12</title>
771 <link>http://www.hungry.com/~pere/blog/Frokostseminar_om_Noark_5_i_Oslo_tirsdag_2024_03_12.html</link>
772 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/Frokostseminar_om_Noark_5_i_Oslo_tirsdag_2024_03_12.html</guid>
773 <pubDate>Tue, 27 Feb 2024 15:15:00 +0100</pubDate>
774 <description>&lt;p&gt;Nikita-prosjektet, der jeg er involvert, inviterer i samarbeid med
775 Oslo Byarkiv, forskningsgruppen METAINFO og foreningen NUUG, til et
776 frokostseminar om Noark 5 og Noark 5 Tjenestegrensesnitt tirsdag
777 2024-03-12. Seminaret finner sted ved Oslo byarkiv. Vi håper å få
778 til videostrømming via Internett av presentasjoner og paneldiskusjon.
779 Oppdatert program og lenker til påmeldingsskjema er
780 &lt;a href=&quot;https://noark.codeberg.page/noark5-seminars/2023-03-12-noark-workshop.html&quot;&gt;tilgjengelig
781 fra Nikita-prosjektet&lt;/a&gt;. Arrangementet er gratis.
782
783 &lt;p&gt;Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
784 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
785 til min adresse
786 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;. Merk,
787 betaling med bitcoin er ikke anonymt. :)&lt;/p&gt;
788 </description>
789 </item>
790
791 </channel>
792 </rss>