]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
Generated.
[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://people.skolelinux.org/pere/blog/</link>
7 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
8
9 <item>
10 <title>Creating, updating and checking debian/copyright semi-automatically</title>
11 <link>http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html</guid>
13 <pubDate>Fri, 19 Feb 2016 15:00:00 +0100</pubDate>
14 <description>&lt;p&gt;Making packages for Debian requires quite a lot of attention to
15 details. And one of the details is the content of the
16 debian/copyright file, which should list all relevant licenses used by
17 the code in the package in question, preferably in
18 &lt;a href=&quot;https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/&quot;&gt;machine
19 readable DEP5 format&lt;/a&gt;.&lt;/p&gt;
20
21 &lt;p&gt;For large packages with lots of contributors it is hard to write
22 and update this file manually, and if you get some detail wrong, the
23 package is normally rejected by the ftpmasters. So getting it right
24 the first time around get the package into Debian faster, and save
25 both you and the ftpmasters some work.. Today, while trying to figure
26 out what was wrong with
27 &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686447&quot;&gt;the
28 zfsonlinux copyright file&lt;/a&gt;, I decided to spend some time on
29 figuring out the options for doing this job automatically, or at least
30 semi-automatically.&lt;/p&gt;
31
32 &lt;p&gt;Lucikly, there are at least two tools available for generating the
33 file based on the code in the source package,
34 &lt;tt&gt;&lt;a href=&quot;https://tracker.debian.org/pkg/debmake&quot;&gt;debmake&lt;/a&gt;&lt;/tt&gt;
35 and &lt;tt&gt;&lt;a href=&quot;https://tracker.debian.org/pkg/cme&quot;&gt;cme&lt;/a&gt;&lt;/tt&gt;. I&#39;m
36 not sure which one of them came first, but both seem to be able to
37 create a sensible draft file. As far as I can tell, none of them can
38 be trusted to get the result just right, so the content need to be
39 polished a bit before the file is OK to upload. I found the debmake
40 option in
41 &lt;a href=&quot;http://goofying-with-debian.blogspot.com/2014/07/debmake-checking-source-against-dep-5.html&quot;&gt;a
42 blog posts from 2014&lt;/a&gt;.
43
44 &lt;p&gt;To generate using debmake, use the -cc option:
45
46 &lt;p&gt;&lt;pre&gt;
47 debmake -cc &gt; debian/copyright
48 &lt;/pre&gt;&lt;/p&gt;
49
50 &lt;p&gt;Note there are some problems with python and non-ASCII names, so
51 this might not be the best option.&lt;/p&gt;
52
53 &lt;p&gt;The cme option is based on a config parsing library, and I found
54 this approach in
55 &lt;a href=&quot;https://ddumont.wordpress.com/2015/04/05/improving-creation-of-debian-copyright-file/&quot;&gt;a
56 blog post from 2015&lt;/a&gt;. To generate using cme, use the &#39;update
57 dpkg-copyright&#39; option:
58
59 &lt;p&gt;&lt;pre&gt;
60 cme update dpkg-copyright
61 &lt;/pre&gt;&lt;/p&gt;
62
63 &lt;p&gt;This will create or update debian/copyright. The cme tool seem to
64 handle UTF-8 names better than debmake.&lt;/p&gt;
65
66 &lt;p&gt;When the copyright file is created, I would also like some help to
67 check if the file is correct. For this I found two good options,
68 &lt;tt&gt;debmake -k&lt;/tt&gt; and &lt;tt&gt;license-reconcile&lt;/tt&gt;. The former seem
69 to focus on license types and file matching, and is able to detect
70 ineffective blocks in the copyright file. The latter reports missing
71 copyright holders and years, but was confused by inconsistent license
72 names (like CDDL vs. CDDL-1.0). I suspect it is good to use both and
73 fix all issues reported by them before uploading. But I do not know
74 if the tools and the ftpmasters agree on what is important to fix in a
75 copyright file, so the package might still be rejected.&lt;/p&gt;
76
77 &lt;p&gt;The devscripts tool &lt;tt&gt;licensecheck&lt;/tt&gt; deserve mentioning. It
78 will read through the source and try to find all copyright statements.
79 It is not comparing the result to the content of debian/copyright, but
80 can be useful when verifying the content of the copyright file.&lt;/p&gt;
81
82 &lt;p&gt;Are you aware of better tools in Debian to create and update
83 debian/copyright file. Please let me know, or blog about it on
84 planet.debian.org.&lt;/p&gt;
85
86 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
87 activities, please send Bitcoin donations to my address
88 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
89
90 &lt;p&gt;&lt;strong&gt;Update 2016-02-20&lt;/strong&gt;: I got a tip from Mike Gabriel
91 on how to use licensecheck and cdbs to create a draft copyright file
92
93 &lt;p&gt;&lt;pre&gt;
94 licensecheck --copyright -r `find * -type f` | \
95 /usr/lib/cdbs/licensecheck2dep5 &gt; debian/copyright.auto
96 &lt;/pre&gt;&lt;/p&gt;
97
98 &lt;p&gt;He mentioned that he normally check the generated file into the
99 version control system to make it easier to discover license and
100 copyright changes in the upstream source. I will try to do the same
101 with my packages in the future.&lt;/p&gt;
102
103 &lt;p&gt;&lt;strong&gt;Update 2016-02-21&lt;/strong&gt;: The cme author recommended
104 against using -quiet for new users, so I removed it from the proposed
105 command line.&lt;/p&gt;
106 </description>
107 </item>
108
109 <item>
110 <title>Using appstream in Debian to locate packages with firmware and mime type support</title>
111 <link>http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html</link>
112 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html</guid>
113 <pubDate>Thu, 4 Feb 2016 16:40:00 +0100</pubDate>
114 <description>&lt;p&gt;The &lt;a href=&quot;https://wiki.debian.org/DEP-11&quot;&gt;appstream system&lt;/a&gt;
115 is taking shape in Debian, and one provided feature is a very
116 convenient way to tell you which package to install to make a given
117 firmware file available when the kernel is looking for it. This can
118 be done using apt-file too, but that is for someone else to blog
119 about. :)&lt;/p&gt;
120
121 &lt;p&gt;Here is a small recipe to find the package with a given firmware
122 file, in this example I am looking for ctfw-3.2.3.0.bin, randomly
123 picked from the set of firmware announced using appstream in Debian
124 unstable. In general you would be looking for the firmware requested
125 by the kernel during kernel module loading. To find the package
126 providing the example file, do like this:&lt;/p&gt;
127
128 &lt;blockquote&gt;&lt;pre&gt;
129 % apt install appstream
130 [...]
131 % apt update
132 [...]
133 % appstreamcli what-provides firmware:runtime ctfw-3.2.3.0.bin | \
134 awk &#39;/Package:/ {print $2}&#39;
135 firmware-qlogic
136 %
137 &lt;/pre&gt;&lt;/blockquote&gt;
138
139 &lt;p&gt;See &lt;a href=&quot;https://wiki.debian.org/AppStream/Guidelines&quot;&gt;the
140 appstream wiki&lt;/a&gt; page to learn how to embed the package metadata in
141 a way appstream can use.&lt;/p&gt;
142
143 &lt;p&gt;This same approach can be used to find any package supporting a
144 given MIME type. This is very useful when you get a file you do not
145 know how to handle. First find the mime type using &lt;tt&gt;file
146 --mime-type&lt;/tt&gt;, and next look up the package providing support for
147 it. Lets say you got an SVG file. Its MIME type is image/svg+xml,
148 and you can find all packages handling this type like this:&lt;/p&gt;
149
150 &lt;blockquote&gt;&lt;pre&gt;
151 % apt install appstream
152 [...]
153 % apt update
154 [...]
155 % appstreamcli what-provides mimetype image/svg+xml | \
156 awk &#39;/Package:/ {print $2}&#39;
157 bkchem
158 phototonic
159 inkscape
160 shutter
161 tetzle
162 geeqie
163 xia
164 pinta
165 gthumb
166 karbon
167 comix
168 mirage
169 viewnior
170 postr
171 ristretto
172 kolourpaint4
173 eog
174 eom
175 gimagereader
176 midori
177 %
178 &lt;/pre&gt;&lt;/blockquote&gt;
179
180 &lt;p&gt;I believe the MIME types are fetched from the desktop file for
181 packages providing appstream metadata.&lt;/p&gt;
182 </description>
183 </item>
184
185 <item>
186 <title>Creepy, visualise geotagged social media information - nice free software</title>
187 <link>http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html</link>
188 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html</guid>
189 <pubDate>Sun, 24 Jan 2016 10:50:00 +0100</pubDate>
190 <description>&lt;p&gt;Most people seem not to realise that every time they walk around
191 with the computerised radio beacon known as a mobile phone their
192 position is tracked by the phone company and often stored for a long
193 time (like every time a SMS is received or sent). And if their
194 computerised radio beacon is capable of running programs (often called
195 mobile apps) downloaded from the Internet, these programs are often
196 also capable of tracking their location (if the app requested access
197 during installation). And when these programs send out information to
198 central collection points, the location is often included, unless
199 extra care is taken to not send the location. The provided
200 information is used by several entities, for good and bad (what is
201 good and bad, depend on your point of view). What is certain, is that
202 the private sphere and the right to free movement is challenged and
203 perhaps even eradicated for those announcing their location this way,
204 when they share their whereabouts with private and public
205 entities.&lt;/p&gt;
206
207 &lt;p align=&quot;center&quot;&gt;&lt;img width=&quot;70%&quot; src=&quot;http://people.skolelinux.org/pere/blog/images/2016-01-24-nice-creepy-desktop-window.png&quot;&gt;&lt;/p&gt;
208
209 &lt;p&gt;The phone company logs provide a register of locations to check out
210 when one want to figure out what the tracked person was doing. It is
211 unavailable for most of us, but provided to selected government
212 officials, company staff, those illegally buying information from
213 unfaithful servants and crackers stealing the information. But the
214 public information can be collected and analysed, and a free software
215 tool to do so is called
216 &lt;a href=&quot;http://www.geocreepy.com/&quot;&gt;Creepy or Cree.py&lt;/a&gt;. I
217 discovered it when I read
218 &lt;a href=&quot;http://www.aftenposten.no/kultur/Slik-kan-du-bli-overvaket-pa-Twitter-og-Instagram-uten-a-ane-det-7787884.html&quot;&gt;an
219 article about Creepy&lt;/a&gt; in the Norwegian newspaper Aftenposten i
220 November 2014, and decided to check if it was available in Debian.
221 The python program was in Debian, but
222 &lt;a href=&quot;https://tracker.debian.org/pkg/creepy&quot;&gt;the version in
223 Debian&lt;/a&gt; was completely broken and practically unmaintained. I
224 uploaded a new version which did not work quite right, but did not
225 have time to fix it then. This Christmas I decided to finally try to
226 get Creepy operational in Debian. Now a fixed version is available in
227 Debian unstable and testing, and almost all Debian specific patches
228 are now included
229 &lt;a href=&quot;https://github.com/jkakavas/creepy&quot;&gt;upstream&lt;/a&gt;.&lt;/p&gt;
230
231 &lt;p&gt;The Creepy program visualises geolocation information fetched from
232 Twitter, Instagram, Flickr and Google+, and allow one to get a
233 complete picture of every social media message posted recently in a
234 given area, or track the movement of a given individual across all
235 these services. Earlier it was possible to use the search API of at
236 least some of these services without identifying oneself, but these
237 days it is impossible. This mean that to use Creepy, you need to
238 configure it to log in as yourself on these services, and provide
239 information to them about your search interests. This should be taken
240 into account when using Creepy, as it will also share information
241 about yourself with the services.&lt;/p&gt;
242
243 &lt;p&gt;The picture above show the twitter messages sent from (or at least
244 geotagged with a position from) the city centre of Oslo, the capital
245 of Norway. One useful way to use Creepy is to first look at
246 information tagged with an area of interest, and next look at all the
247 information provided by one or more individuals who was in the area.
248 I tested it by checking out which celebrity provide their location in
249 twitter messages by checkout out who sent twitter messages near a
250 Norwegian TV station, and next could track their position over time,
251 making it possible to locate their home and work place, among other
252 things. A similar technique have been
253 &lt;a href=&quot;http://www.buzzfeed.com/maxseddon/does-this-soldiers-instagram-account-prove-russia-is-covertl&quot;&gt;used
254 to locate Russian soldiers in Ukraine&lt;/a&gt;, and it is both a powerful
255 tool to discover lying governments, and a useful tool to help people
256 understand the value of the private information they provide to the
257 public.&lt;/p&gt;
258
259 &lt;p&gt;The package is not trivial to backport to Debian Stable/Jessie, as
260 it depend on several python modules currently missing in Jessie (at
261 least python-instagram, python-flickrapi and
262 python-requests-toolbelt).&lt;/p&gt;
263
264 &lt;p&gt;(I have uploaded
265 &lt;a href=&quot;https://screenshots.debian.net/package/creepy&quot;&gt;the image to
266 screenshots.debian.net&lt;/a&gt; and licensed it under the same terms as the
267 Creepy program in Debian.)&lt;/p&gt;
268 </description>
269 </item>
270
271 <item>
272 <title>Always download Debian packages using Tor - the simple recipe</title>
273 <link>http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html</link>
274 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html</guid>
275 <pubDate>Fri, 15 Jan 2016 00:30:00 +0100</pubDate>
276 <description>&lt;p&gt;During his DebConf15 keynote, Jacob Appelbaum
277 &lt;a href=&quot;https://summit.debconf.org/debconf15/meeting/331/what-is-to-be-done/&quot;&gt;observed
278 that those listening on the Internet lines would have good reason to
279 believe a computer have a given security hole&lt;/a&gt; if it download a
280 security fix from a Debian mirror. This is a good reason to always
281 use encrypted connections to the Debian mirror, to make sure those
282 listening do not know which IP address to attack. In August, Richard
283 Hartmann observed that encryption was not enough, when it was possible
284 to interfere download size to security patches or the fact that
285 download took place shortly after a security fix was released, and
286 &lt;a href=&quot;http://richardhartmann.de/blog/posts/2015/08/24-Tor-enabled_Debian_mirror/&quot;&gt;proposed
287 to always use Tor to download packages from the Debian mirror&lt;/a&gt;. He
288 was not the first to propose this, as the
289 &lt;tt&gt;&lt;a href=&quot;https://tracker.debian.org/pkg/apt-transport-tor&quot;&gt;apt-transport-tor&lt;/a&gt;&lt;/tt&gt;
290 package by Tim Retout already existed to make it easy to convince apt
291 to use &lt;a href=&quot;https://www.torproject.org/&quot;&gt;Tor&lt;/a&gt;, but I was not
292 aware of that package when I read the blog post from Richard.&lt;/p&gt;
293
294 &lt;p&gt;Richard discussed the idea with Peter Palfrader, one of the Debian
295 sysadmins, and he set up a Tor hidden service on one of the central
296 Debian mirrors using the address vwakviie2ienjx6t.onion, thus making
297 it possible to download packages directly between two tor nodes,
298 making sure the network traffic always were encrypted.&lt;/p&gt;
299
300 &lt;p&gt;Here is a short recipe for enabling this on your machine, by
301 installing &lt;tt&gt;apt-transport-tor&lt;/tt&gt; and replacing http and https
302 urls with tor+http and tor+https, and using the hidden service instead
303 of the official Debian mirror site. I recommend installing
304 &lt;tt&gt;etckeeper&lt;/tt&gt; before you start to have a history of the changes
305 done in /etc/.&lt;/p&gt;
306
307 &lt;blockquote&gt;&lt;pre&gt;
308 apt install apt-transport-tor
309 sed -i &#39;s% http://ftp.debian.org/% tor+http://vwakviie2ienjx6t.onion/%&#39; /etc/apt/sources.list
310 sed -i &#39;s% http% tor+http%&#39; /etc/apt/sources.list
311 &lt;/pre&gt;&lt;/blockquote&gt;
312
313 &lt;p&gt;If you have more sources listed in /etc/apt/sources.list.d/, run
314 the sed commands for these too. The sed command is assuming your are
315 using the ftp.debian.org Debian mirror. Adjust the command (or just
316 edit the file manually) to match your mirror.&lt;/p&gt;
317
318 &lt;p&gt;This work in Debian Jessie and later. Note that tools like
319 &lt;tt&gt;apt-file&lt;/tt&gt; only recently started using the apt transport
320 system, and do not work with these tor+http URLs. For
321 &lt;tt&gt;apt-file&lt;/tt&gt; you need the version currently in experimental,
322 which need a recent apt version currently only in unstable. So if you
323 need a working &lt;tt&gt;apt-file&lt;/tt&gt;, this is not for you.&lt;/p&gt;
324
325 &lt;p&gt;Another advantage from this change is that your machine will start
326 using Tor regularly and at fairly random intervals (every time you
327 update the package lists or upgrade or install a new package), thus
328 masking other Tor traffic done from the same machine. Using Tor will
329 become normal for the machine in question.&lt;/p&gt;
330
331 &lt;p&gt;On &lt;a href=&quot;https://wiki.debian.org/FreedomBox&quot;&gt;Freedombox&lt;/a&gt;, APT
332 is set up by default to use &lt;tt&gt;apt-transport-tor&lt;/tt&gt; when Tor is
333 enabled. It would be great if it was the default on any Debian
334 system.&lt;/p&gt;
335 </description>
336 </item>
337
338 <item>
339 <title>Nedlasting fra NRK, som Matroska med undertekster</title>
340 <link>http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html</link>
341 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html</guid>
342 <pubDate>Sat, 2 Jan 2016 13:50:00 +0100</pubDate>
343 <description>&lt;p&gt;Det kommer stadig nye løsninger for å ta lagre unna innslag fra NRK
344 for å se på det senere. For en stund tilbake kom jeg over et script
345 nrkopptak laget av Ingvar Hagelund. Han fjernet riktignok sitt script
346 etter forespørsel fra Erik Bolstad i NRK, men noen tok heldigvis og
347 gjorde det &lt;a href=&quot;https://github.com/liangqi/nrkopptak&quot;&gt;tilgjengelig
348 via github&lt;/a&gt;.&lt;/p&gt;
349
350 &lt;p&gt;Scriptet kan lagre som MPEG4 eller Matroska, og bake inn
351 undertekster i fila på et vis som blant annet VLC forstår. For å
352 bruke scriptet, kopier ned git-arkivet og kjør&lt;/p&gt;
353
354 &lt;p&gt;&lt;pre&gt;
355 nrkopptak/bin/nrk-opptak k &lt;ahref=&quot;https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1&quot;&gt;https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1&lt;/a&gt;
356 &lt;/pre&gt;&lt;/p&gt;
357
358 &lt;p&gt;URL-eksemplet er dagens toppsak på tv.nrk.no. Argument &#39;k&#39; ber
359 scriptet laste ned og lagre som Matroska. Det finnes en rekke andre
360 muligheter for valg av kvalitet og format.&lt;/p&gt;
361
362 &lt;p&gt;Jeg foretrekker dette scriptet fremfor youtube-dl, som
363 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html&quot;&gt;
364 nevnt i 2014 støtter NRK&lt;/a&gt; og en rekke andre videokilder, på grunn
365 av at nrkopptak samler undertekster og video i en enkelt fil, hvilket
366 gjør håndtering enklere på disk.&lt;/p&gt;
367 </description>
368 </item>
369
370 <item>
371 <title>OpenALPR, find car license plates in video streams - nice free software</title>
372 <link>http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html</link>
373 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html</guid>
374 <pubDate>Wed, 23 Dec 2015 01:00:00 +0100</pubDate>
375 <description>&lt;p&gt;When I was a kid, we used to collect &quot;car numbers&quot;, as we used to
376 call the car license plate numbers in those days. I would write the
377 numbers down in my little book and compare notes with the other kids
378 to see how many region codes we had seen and if we had seen some
379 exotic or special region codes and numbers. It was a fun game to pass
380 time, as we kids have plenty of it.&lt;/p&gt;
381
382 &lt;p&gt;A few days I came across
383 &lt;a href=&quot;https://github.com/openalpr/openalpr&quot;&gt;the OpenALPR
384 project&lt;/a&gt;, a free software project to automatically discover and
385 report license plates in images and video streams, and provide the
386 &quot;car numbers&quot; in a machine readable format. I&#39;ve been looking for
387 such system for a while now, because I believe it is a bad idea that the
388 &lt;a href=&quot;https://en.wikipedia.org/wiki/Automatic_number_plate_recognition&quot;&gt;automatic
389 number plate recognition&lt;/a&gt; tool only is available in the hands of
390 the powerful, and want it to be available also for the powerless to
391 even the score when it comes to surveillance and sousveillance. I
392 discovered the developer
393 &lt;a href=&quot;https://bugs.debian.org/747509&quot;&gt;wanted to get the tool into
394 Debian&lt;/a&gt;, and as I too wanted it to be in Debian, I volunteered to
395 help him get it into shape to get the package uploaded into the Debian
396 archive.&lt;/p&gt;
397
398 &lt;p&gt;Today we finally managed to get the package into shape and uploaded
399 it into Debian, where it currently
400 &lt;a href=&quot;https://ftp-master.debian.org//new/openalpr_2.2.1-1.html&quot;&gt;waits
401 in the NEW queue&lt;/a&gt; for review by the Debian ftpmasters.&lt;/p&gt;
402
403 &lt;p&gt;I guess you are wondering why on earth such tool would be useful
404 for the common folks, ie those not running a large government
405 surveillance system? Well, I plan to put it in a computer on my bike
406 and in my car, tracking the cars nearby and allowing me to be notified
407 when number plates on my watch list are discovered. Another use case
408 was suggested by a friend of mine, who wanted to set it up at his home
409 to open the car port automatically when it discovered the plate on his
410 car. When I mentioned it perhaps was a bit foolhardy to allow anyone
411 capable of placing his license plate number of a piece of cardboard to
412 open his car port, men replied that it was always unlocked anyway. I
413 guess for such use case it make sense. I am sure there are other use
414 cases too, for those with imagination and a vision.&lt;/p&gt;
415
416 &lt;p&gt;If you want to build your own version of the Debian package, check
417 out the upstream git source and symlink ./distros/debian to ./debian/
418 before running &quot;debuild&quot; to build the source. Or wait a bit until the
419 package show up in unstable.&lt;/p&gt;
420 </description>
421 </item>
422
423 <item>
424 <title>Using appstream with isenkram to install hardware related packages in Debian</title>
425 <link>http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html</link>
426 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html</guid>
427 <pubDate>Sun, 20 Dec 2015 12:20:00 +0100</pubDate>
428 <description>&lt;p&gt;Around three years ago, I created
429 &lt;a href=&quot;http://packages.qa.debian.org/isenkram&quot;&gt;the isenkram
430 system&lt;/a&gt; to get a more practical solution in Debian for handing
431 hardware related packages. A GUI system in the isenkram package will
432 present a pop-up dialog when some hardware dongle supported by
433 relevant packages in Debian is inserted into the machine. The same
434 lookup mechanism to detect packages is available as command line
435 tools in the isenkram-cli package. In addition to mapping hardware,
436 it will also map kernel firmware files to packages and make it easy to
437 install needed firmware packages automatically. The key for this
438 system to work is a good way to map hardware to packages, in other
439 words, allow packages to announce what hardware they will work
440 with.&lt;/p&gt;
441
442 &lt;p&gt;I started by providing data files in the isenkram source, and
443 adding code to download the latest version of these data files at run
444 time, to ensure every user had the most up to date mapping available.
445 I also added support for storing the mapping in the Packages file in
446 the apt repositories, but did not push this approach because while I
447 was trying to figure out how to best store hardware/package mappings,
448 &lt;a href=&quot;http://www.freedesktop.org/software/appstream/docs/&quot;&gt;the
449 appstream system&lt;/a&gt; was announced. I got in touch and suggested to
450 add the hardware mapping into that data set to be able to use
451 appstream as a data source, and this was accepted at least for the
452 Debian version of appstream.&lt;/p&gt;
453
454 &lt;p&gt;A few days ago using appstream in Debian for this became possible,
455 and today I uploaded a new version 0.20 of isenkram adding support for
456 appstream as a data source for mapping hardware to packages. The only
457 package so far using appstream to announce its hardware support is my
458 pymissile package. I got help from Matthias Klumpp with figuring out
459 how do add the required
460 &lt;a href=&quot;https://appstream.debian.org/html/sid/main/metainfo/pymissile.html&quot;&gt;metadata
461 in pymissile&lt;/a&gt;. I added a file debian/pymissile.metainfo.xml with
462 this content:&lt;/p&gt;
463
464 &lt;blockquote&gt;&lt;pre&gt;
465 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
466 &amp;lt;component&amp;gt;
467 &amp;lt;id&amp;gt;pymissile&amp;lt;/id&amp;gt;
468 &amp;lt;metadata_license&amp;gt;MIT&amp;lt;/metadata_license&amp;gt;
469 &amp;lt;name&amp;gt;pymissile&amp;lt;/name&amp;gt;
470 &amp;lt;summary&amp;gt;Control original Striker USB Missile Launcher&amp;lt;/summary&amp;gt;
471 &amp;lt;description&amp;gt;
472 &amp;lt;p&amp;gt;
473 Pymissile provides a curses interface to control an original
474 Marks and Spencer / Striker USB Missile Launcher, as well as a
475 motion control script to allow a webcamera to control the
476 launcher.
477 &amp;lt;/p&amp;gt;
478 &amp;lt;/description&amp;gt;
479 &amp;lt;provides&amp;gt;
480 &amp;lt;modalias&amp;gt;usb:v1130p0202d*&amp;lt;/modalias&amp;gt;
481 &amp;lt;/provides&amp;gt;
482 &amp;lt;/component&amp;gt;
483 &lt;/pre&gt;&lt;/blockquote&gt;
484
485 &lt;p&gt;The key for isenkram is the component/provides/modalias value,
486 which is a glob style match rule for hardware specific strings
487 (modalias strings) provided by the Linux kernel. In this case, it
488 will map to all USB devices with vendor code 1130 and product code
489 0202.&lt;/p&gt;
490
491 &lt;p&gt;Note, it is important that the license of all the metadata files
492 are compatible to have permissions to aggregate them into archive wide
493 appstream files. Matthias suggested to use MIT or BSD licenses for
494 these files. A challenge is figuring out a good id for the data, as
495 it is supposed to be globally unique and shared across distributions
496 (in other words, best to coordinate with upstream what to use). But
497 it can be changed later or, so we went with the package name as
498 upstream for this project is dormant.&lt;/p&gt;
499
500 &lt;p&gt;To get the metadata file installed in the correct location for the
501 mirror update scripts to pick it up and include its content the
502 appstream data source, the file must be installed in the binary
503 package under /usr/share/appdata/. I did this by adding the following
504 line to debian/pymissile.install:&lt;/p&gt;
505
506 &lt;blockquote&gt;&lt;pre&gt;
507 debian/pymissile.metainfo.xml usr/share/appdata
508 &lt;/pre&gt;&lt;/blockquote&gt;
509
510 &lt;p&gt;With that in place, the command line tool isenkram-lookup will list
511 all packages useful on the current computer automatically, and the GUI
512 pop-up handler will propose to install the package not already
513 installed if a hardware dongle is inserted into the machine in
514 question.&lt;/p&gt;
515
516 &lt;p&gt;Details of the modalias field in appstream is available from the
517 &lt;a href=&quot;https://wiki.debian.org/DEP-11&quot;&gt;DEP-11&lt;/a&gt; proposal.&lt;/p&gt;
518
519 &lt;p&gt;To locate the modalias values of all hardware present in a machine,
520 try running this command on the command line:&lt;/p&gt;
521
522 &lt;blockquote&gt;&lt;pre&gt;
523 cat $(find /sys/devices/|grep modalias)
524 &lt;/pre&gt;&lt;/blockquote&gt;
525
526 &lt;p&gt;To learn more about the isenkram system, please check out
527 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/tags/isenkram/&quot;&gt;my
528 blog posts tagged isenkram&lt;/a&gt;.&lt;/p&gt;
529 </description>
530 </item>
531
532 <item>
533 <title>Bokhandeldistribusjon av boken Fri kultur av Lawrence Lessig</title>
534 <link>http://people.skolelinux.org/pere/blog/Bokhandeldistribusjon_av_boken_Fri_kultur_av_Lawrence_Lessig.html</link>
535 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Bokhandeldistribusjon_av_boken_Fri_kultur_av_Lawrence_Lessig.html</guid>
536 <pubDate>Mon, 14 Dec 2015 12:10:00 +0100</pubDate>
537 <description>&lt;p&gt;&lt;strong&gt;Besøk
538 &lt;a href=&quot;https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html&quot;&gt;lulu.com&lt;/a&gt;
539 eller
540 &lt;a href=&quot;https://www.amazon.com/Fri-kultur-Norwegian-Lawrence-Lessig/dp/8269018236/&quot;&gt;Amazon&lt;/a&gt;
541 for å kjøpe boken på papir, eller last ned ebook som
542 &lt;a href=&quot;https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.pdf&quot;&gt;PDF&lt;/a&gt;,
543 &lt;a href=&quot;https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.epub&quot;&gt;ePub&lt;/a&gt;
544 eller
545 &lt;a href=&quot;https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.mobi&quot;&gt;MOBI&lt;/a&gt;
546 fra
547 &lt;a href=&quot;https://github.com/petterreinholdtsen/free-culture-lessig/&quot;&gt;github&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
548
549 &lt;p&gt;Jeg ble gledelig overrasket i dag da jeg oppdaget at boken jeg har
550 gitt ut
551 &lt;a href=&quot;https://www.amazon.com/Fri-kultur-Norwegian-Lawrence-Lessig/dp/8269018236/&quot;&gt;hadde
552 dukket opp i Amazon&lt;/a&gt;. Jeg hadde trodd det skulle ta lenger tid, da
553 jeg fikk beskjed om at det skulle ta seks til åtte uker.
554 Amazonoppføringen er et resultat av at jeg for noen uker siden
555 diskuterte prissetting og håndtering av profitt med forfatteren. Det
556 måtte avklares da bruksvilkårene til boken har krav om
557 ikke-kommersiell bruk. Vi ble enige om at overskuddet fra salg av
558 boken skal sendes til
559 &lt;a href=&quot;https://creativecommons.org/&quot;&gt;Creative Commons-stiftelsen&lt;/a&gt;.
560 Med det på plass kunne jeg be
561 &lt;a href=&quot;https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html&quot;&gt;lulu.com&lt;/a&gt;
562 om å gi boken «utvidet» distribusjon. Årsaken til at
563 bokhandeldistribusjon var litt utfordrende er at bokhandlere krever
564 mulighet for profitt på bøkene de selger (selvfølgelig), og dermed
565 måtte de få lov til å selge til høyere pris enn lulu.com. I tillegg
566 er det krav om samme pris på lulu.com og i bokhandlene, dermed blir
567 prisen økt også hos lulu.com. Hva skulle jeg gjøre med den profitten
568 uten å bryte med klausulen om ikkekommersiell? Løsningen var å gi
569 bort profitten til CC-stiftelsen. Prisen på boken ble nesten
570 tredoblet, til $19.99 (ca. 160,-) pluss frakt, men synligheten øker
571 betraktelig når den kan finnes i katalogene til store nettbokhandlere.
572 Det betyr at hvis du allerede har kjøpt boken har du fått den veldig
573 billig, og kjøper du den nå, får du den fortsatt billig samt donerer i
574 tillegg noen tiere til fremme av Creative Commons.&lt;/p&gt;
575
576 &lt;p&gt;Mens jeg var i gang med å titte etter informasjon om boken
577 oppdaget jeg at den også var dukket opp på
578 &lt;a href=&quot;https://books.google.no/books?id=uKUGCwAAQBAJ&quot;&gt;Google
579 Books&lt;/a&gt;, der en kan lese den på web. PDF-utgaven har ennå ikke
580 dukket opp hos &lt;a href=&quot;https://www.nb.no/&quot;&gt;Nasjonalbiblioteket&lt;/a&gt;,
581 men det regner jeg med kommer på plass i løpet av noen uker. Boken er
582 heller ikke dukket opp hos
583 &lt;a href=&quot;https://www.barnesandnoble.com/&quot;&gt;Barnes &amp; Noble&lt;/a&gt; ennå, men
584 jeg antar det bare er et tidsspørsmål før dette er på plass.&lt;/p&gt;
585
586 &lt;p&gt;Boken er dessverre ikke tilgjengelig fra norske bokhandlere, og
587 kommer neppe til å bli det med det første. Årsaken er at for å få det
588 til måtte jeg personlig håndtere bestilling av bøker, hvilket jeg ikke
589 er interessert i å bruke tid på. Jeg kunne betalt ca 2000,- til
590 &lt;a href=&quot;http://www.bokbasen.no/&quot;&gt;den norske bokbasen&lt;/a&gt;, en felles
591 database over bøker tilgjengelig for norske bokhandlere, for å få en
592 oppføring der, men da måtte jeg tatt imot bestillinger på epost og
593 sendt ut bøker selv. Det ville krevd at jeg var klar til å
594 sende ut bøker på kort varsel, dvs. holdt meg med ekstra bøker,
595 konvolutter og frimerker. Bokbasen har visst ikke opplegg for å be
596 bokhandlene bestille direkte via web, så jeg droppet oppføring der.
597 Jeg har spurt Haugen bok og Tronsmo direkte på epost om de er
598 interessert i å ta inn boken i sin bestillingskatalog, men ikke fått
599 svar, så jeg antar de ikke er interessert. Derimot har jeg fått en
600 hyggelig henvendelse fra Biblioteksentralen som fortalte at de har
601 lagt den inn i sin database slik at deres bibliotekskunder enkelt kan
602 bestille den via dem.&lt;/p&gt;
603
604 &lt;p&gt;Boken er i følge
605 &lt;a href=&quot;http://bibsys-almaprimo.hosted.exlibrisgroup.com/primo_library/libweb/action/display.do?tabs=detailsTab&amp;ct=display&amp;fn=search&amp;doc=BIBSYS_ILS71518423420002201&amp;indx=1&amp;recIds=BIBSYS_ILS71518423420002201&amp;recIdxs=0&amp;elementId=0&amp;renderMode=poppedOut&amp;displayMode=full&amp;frbrVersion=&amp;dscnt=0&amp;tab=library_catalogue&amp;dstmp=1448543801124&amp;vl(freeText0)=fri%20kultur&amp;vid=UBO&amp;mode=Basic&quot;&gt;Bibsys/Oria&lt;/a&gt;
606 og bokdatabasen til
607 &lt;a href=&quot;https://www.deich.folkebibl.no/cgi-bin/websok?tnr=1819617&quot;&gt;Deichmanske&lt;/a&gt;
608 tilgjengelig fra flere biblioteker allerede, og alle eksemplarer er
609 visst allerede utlånt med ventetid. Det synes jeg er veldig gledelig
610 å se. Jeg håper mange kommer til å lese boken. Jeg tror den er
611 spesielt egnet for foreldre og bekjente av oss nerder for å forklare
612 hva slags problemer vi ser med dagens opphavsrettsregime.&lt;/p&gt;
613 </description>
614 </item>
615
616 <item>
617 <title>The GNU General Public License is not magic pixie dust</title>
618 <link>http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html</link>
619 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html</guid>
620 <pubDate>Mon, 30 Nov 2015 09:55:00 +0100</pubDate>
621 <description>&lt;p&gt;A blog post from my fellow Debian developer Paul Wise titled
622 &quot;&lt;a href=&quot;http://bonedaddy.net/pabs3/log/2015/11/27/sfc-supporter/&quot;&gt;The
623 GPL is not magic pixie dust&lt;/a&gt;&quot; explain the importance of making sure
624 the &lt;a href=&quot;http://www.gnu.org/copyleft/gpl.html&quot;&gt;GPL&lt;/a&gt; is enforced.
625 I quote the blog post from Paul in full here with his permission:&lt;p&gt;
626
627 &lt;blockquote&gt;
628
629 &lt;p&gt;&lt;a href=&quot;https://sfconservancy.org/supporter/&quot;&gt;&lt;img src=&quot;https://sfconservancy.org/img/supporter-badge.png&quot; width=&quot;194&quot; height=&quot;90&quot; alt=&quot;Become a Software Freedom Conservancy Supporter!&quot; align=&quot;right&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
630
631 &lt;blockquote&gt;
632 The GPL is not magic pixie dust. It does not work by itself.&lt;br/&gt;
633
634 The first step is to choose a
635 &lt;a href=&quot;https://copyleft.org/&quot;&gt;copyleft&lt;/a&gt; license for your
636 code.&lt;br/&gt;
637
638 The next step is, when someone fails to follow that copyleft license,
639 &lt;b&gt;it must be enforced&lt;/b&gt;&lt;br/&gt;
640
641 and its a simple fact of our modern society that such type of
642 work&lt;br/&gt;
643
644 is incredibly expensive to do and incredibly difficult to do.
645 &lt;/blockquote&gt;
646
647 &lt;p&gt;&lt;small&gt;-- &lt;a href=&quot;http://ebb.org/bkuhn/&quot;&gt;Bradley Kuhn&lt;/a&gt;, in
648 &lt;a href=&quot;http://faif.us/&quot; title=&quot;Free as in Freedom&quot;&gt;FaiF&lt;/a&gt;
649 &lt;a href=&quot;http://faif.us/cast/2015/nov/24/0x57/&quot;&gt;episode
650 0x57&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
651
652 &lt;p&gt;As the Debian Website
653 &lt;a href=&quot;https://bugs.debian.org/794116&quot;&gt;used&lt;/a&gt;
654 &lt;a href=&quot;https://anonscm.debian.org/viewvc/webwml/webwml/english/intro/free.wml?r1=1.24&amp;amp;r2=1.25&quot;&gt;to&lt;/a&gt;
655 imply, public domain and permissively licensed software can lead to
656 the production of more proprietary software as people discover useful
657 software, extend it and or incorporate it into their hardware or
658 software products. Copyleft licenses such as the GNU GPL were created
659 to close off this avenue to the production of proprietary software but
660 such licenses are not enough. With the ongoing adoption of Free
661 Software by individuals and groups, inevitably the community&#39;s
662 expectations of license compliance are violated, usually out of
663 ignorance of the way Free Software works, but not always. As Karen
664 and Bradley explained in &lt;a href=&quot;http://faif.us/&quot; title=&quot;Free as in
665 Freedom&quot;&gt;FaiF&lt;/a&gt;
666 &lt;a href=&quot;http://faif.us/cast/2015/nov/24/0x57/&quot;&gt;episode 0x57&lt;/a&gt;,
667 copyleft is nothing if no-one is willing and able to stand up in court
668 to protect it. The reality of today&#39;s world is that legal
669 representation is expensive, difficult and time consuming. With
670 &lt;a href=&quot;http://gpl-violations.org/&quot;&gt;gpl-violations.org&lt;/a&gt; in hiatus
671 &lt;a href=&quot;http://gpl-violations.org/news/20151027-homepage-recovers/&quot;&gt;until&lt;/a&gt;
672 some time in 2016, the &lt;a href=&quot;https://sfconservancy.org/&quot;&gt;Software
673 Freedom Conservancy&lt;/a&gt; (a tax-exempt charity) is the major defender
674 of the Linux project, Debian and other groups against GPL violations.
675 In March the SFC supported a
676 &lt;a href=&quot;https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit/&quot;&gt;lawsuit
677 by Christoph Hellwig&lt;/a&gt; against VMware for refusing to
678 &lt;a href=&quot;https://sfconservancy.org/linux-compliance/vmware-lawsuit-faq.html&quot;&gt;comply
679 with the GPL&lt;/a&gt; in relation to their use of parts of the Linux
680 kernel. Since then two of their sponsors pulled corporate funding and
681 conferences
682 &lt;a href=&quot;https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/&quot;&gt;blocked
683 or cancelled their talks&lt;/a&gt;. As a result they have decided to rely
684 less on corporate funding and more on the broad community of
685 individuals who support Free Software and copyleft. So the SFC has
686 &lt;a href=&quot;https://sfconservancy.org/news/2015/nov/23/2015fundraiser/&quot;&gt;launched&lt;/a&gt;
687 a &lt;a href=&quot;https://sfconservancy.org/supporter/&quot;&gt;campaign&lt;/a&gt; to create
688 a community of folks who stand up for copyleft and the GPL by
689 supporting their work on promoting and supporting copyleft and Free
690 Software.&lt;/p&gt;
691
692 &lt;p&gt;If you support Free Software,
693 &lt;a href=&quot;https://sfconservancy.org/blog/2015/nov/26/like-what-I-do/&quot;&gt;like&lt;/a&gt;
694 what the SFC do, agree with their
695 &lt;a href=&quot;https://sfconservancy.org/linux-compliance/principles.html&quot;&gt;compliance
696 principles&lt;/a&gt;, are happy about their
697 &lt;a href=&quot;https://sfconservancy.org/supporter/&quot;&gt;successes&lt;/a&gt; in 2015,
698 work on a project that is an SFC
699 &lt;a href=&quot;https://sfconservancy.org/members/current/&quot;&gt;member&lt;/a&gt; and or
700 just want to stand up for copyleft, please join
701 &lt;a href=&quot;https://identi.ca/cwebber/image/JQGPA4qbTyyp3-MY8QpvuA&quot;&gt;Christopher
702 Allan Webber&lt;/a&gt;,
703 &lt;a href=&quot;https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/&quot;&gt;Carol
704 Smith&lt;/a&gt;,
705 &lt;a href=&quot;http://www.jonobacon.org/2015/11/25/supporting-software-freedom-conservancy/&quot;&gt;Jono
706 Bacon&lt;/a&gt;, myself and
707 &lt;a href=&quot;https://sfconservancy.org/sponsors/#supporters&quot;&gt;others&lt;/a&gt; in
708 becoming a
709 &lt;a href=&quot;https://sfconservancy.org/supporter/&quot;&gt;supporter&lt;/a&gt;. For the
710 next week your donation will be
711 &lt;a href=&quot;https://sfconservancy.org/news/2015/nov/27/black-friday/&quot;&gt;matched&lt;/a&gt;
712 by an anonymous donor. Please also consider asking your employer to
713 match your donation or become a sponsor of SFC. Don&#39;t forget to
714 spread the word about your support for SFC via email, your blog and or
715 social media accounts.&lt;/p&gt;
716
717 &lt;/blockquote&gt;
718
719 &lt;p&gt;I agree with Paul on this topic and just signed up as a Supporter
720 of Software Freedom Conservancy myself. Perhaps you should be a
721 supporter too?&lt;/p&gt;
722 </description>
723 </item>
724
725 <item>
726 <title>PGP key transition statement for key EE4E02F9</title>
727 <link>http://people.skolelinux.org/pere/blog/PGP_key_transition_statement_for_key_EE4E02F9.html</link>
728 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/PGP_key_transition_statement_for_key_EE4E02F9.html</guid>
729 <pubDate>Tue, 17 Nov 2015 10:50:00 +0100</pubDate>
730 <description>&lt;p&gt;I&#39;ve needed a new OpenPGP key for a while, but have not had time to
731 set it up properly. I wanted to generate it offline and have it
732 available on &lt;a href=&quot;http://shop.kernelconcepts.de/#openpgp&quot;&gt;a OpenPGP
733 smart card&lt;/a&gt; for daily use, and learning how to do it and finding
734 time to sit down with an offline machine almost took forever. But
735 finally I&#39;ve been able to complete the process, and have now moved
736 from my old GPG key to a new GPG key. See
737 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/images/2015-11-17-new-gpg-key-transition.txt&quot;&gt;the
738 full transition statement, signed with both my old and new key&lt;/a&gt; for
739 the details. This is my new key:&lt;/p&gt;
740
741 &lt;pre&gt;
742 pub 3936R/&lt;a href=&quot;http://pgp.cs.uu.nl/stats/111D6B29EE4E02F9.html&quot;&gt;111D6B29EE4E02F9&lt;/a&gt; 2015-11-03 [expires: 2019-11-14]
743 Key fingerprint = 3AC7 B2E3 ACA5 DF87 78F1 D827 111D 6B29 EE4E 02F9
744 uid Petter Reinholdtsen &amp;lt;pere@hungry.com&amp;gt;
745 uid Petter Reinholdtsen &amp;lt;pere@debian.org&amp;gt;
746 sub 4096R/87BAFB0E 2015-11-03 [expires: 2019-11-02]
747 sub 4096R/F91E6DE9 2015-11-03 [expires: 2019-11-02]
748 sub 4096R/A0439BAB 2015-11-03 [expires: 2019-11-02]
749 &lt;/pre&gt;
750
751 &lt;p&gt;The key can be downloaded from the OpenPGP key servers, signed by
752 my old key.&lt;/p&gt;
753
754 &lt;p&gt;If you signed my old key
755 (&lt;a href=&quot;http://pgp.cs.uu.nl/stats/DB4CCC4B2A30D729.html&quot;&gt;DB4CCC4B2A30D729&lt;/a&gt;),
756 I&#39;d very much appreciate a signature on my new key, details and
757 instructions in the transition statement. I m happy to reciprocate if
758 you have a similarly signed transition statement to present.&lt;/p&gt;
759 </description>
760 </item>
761
762 </channel>
763 </rss>