solene.rss.xml - sfeed_tests - sfeed tests and RSS and Atom files | |
git clone git://git.codemadness.org/sfeed_tests | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
solene.rss.xml (66100B) | |
--- | |
1 <?xml version="1.0" encoding="UTF-8"?> | |
2 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> | |
3 <channel> | |
4 <title>Solene's percent %</title> | |
5 <description></description> | |
6 <link>https://dataswamp.org/~solene/</link> | |
7 <atom:link href="https://dataswamp.org/~solene/rss.xml" rel="self" t… | |
8 <item> | |
9 <title>A curated non-violent games list</title> | |
10 <description> | |
11 <![CDATA[ | |
12 <p>For long time I wanted to share a list of non-violent games I | |
13 enjoyed, so here it is. Obviously, this list is FAR from being | |
14 complete and exhaustive. It contains games <strong>I played</strong> and… | |
15 I liked. They should all run on Linux and some on OpenBSD.</p> | |
16 | |
17 <p>Aside this list, most tycoon and puzzle games should be | |
18 non-violent.</p> | |
19 | |
20 <h2 id="automationbuildinggames">Automation / Building games</h2> | |
21 | |
22 <ul> | |
23 <li><a href="https://tobspr.itch.io/shapezio">Shapez.io</a></li> | |
24 </ul> | |
25 | |
26 <p>This game is like Factorio, you have to automate production lines | |
27 and increase the output of shapes/colors. Very time consuming.</p> | |
28 | |
29 <p>The project is <strong>Open source</strong> but you need to buy the g… | |
30 you don’t want to compile yourself. Or just use my compiled version | |
31 at <a href="https://perso.pw/shapez.io/">https://perso.pw/shapez.io/</a> | |
32 (require a chrome based browser…)</p> | |
33 | |
34 <ul> | |
35 <li><a href="https://www.openttd.org/">OpenTTD</a></li> | |
36 </ul> | |
37 | |
38 <p>A transport tycoon game, multiplayer possible! Very complex, | |
39 the community is active and you can find tons of mods.</p> | |
40 | |
41 <p>The game is <strong>Open source</strong> and you can certainly instal… | |
42 on any distribution with the package manager.</p> | |
43 | |
44 <ul> | |
45 <li><a href="https://vfqd.itch.io/terra-nil">Terra Nil - Reclaim the was… | |
46 </ul> | |
47 | |
48 <p>This game is about building equipments to restore the nature into | |
49 a wasteland, improve the biodiversity and then remove all your | |
50 structures.</p> | |
51 | |
52 <p>The game is not open source but is free of charge. The music | |
53 seems to be under an open licence. | |
54 Still, you can pay what you want for it to support the developer.</p> | |
55 | |
56 <ul> | |
57 <li><a href="https://vfqd.itch.io/everything-is-garbage">Everything is g… | |
58 </ul> | |
59 | |
60 <p>This is a short game about chaining producing buildings into another, | |
61 all from garbages up to some secret ending :)</p> | |
62 | |
63 <p>The game is not open source but is free of charge.</p> | |
64 | |
65 <h2 id="sandboxadventuregame">Sandbox / Adventure game</h2> | |
66 | |
67 <ul> | |
68 <li><a href="https://www.minetest.net/">Minetest</a></li> | |
69 </ul> | |
70 | |
71 <p>This game is a clone of Minecraft, it supports a lot of mods (which | |
72 can make the game very complex, like adding trains tracks with their | |
73 signals, the pinnacle of complexity :D). As far as I know, the game | |
74 now supports health but there are no fight involved.</p> | |
75 | |
76 <p>The game is <strong>Open source</strong> and free of charge.</p> | |
77 | |
78 <ul> | |
79 <li><a href="https://bynine.itch.io/forestssecret">Forest’s Secret… | |
80 </ul> | |
81 | |
82 <p>This game is about exploration in a forest. It has a nice | |
83 music, gameplay is easy.</p> | |
84 | |
85 <p>The game is not open source but it’s free. | |
86 Still, you can pay what you want for it to support the developer.</p> | |
87 | |
88 <h2 id="actionreflexgames">Action / reflex games</h2> | |
89 | |
90 <p>This category of games contains games that require | |
91 some reflexes or at least need to player to be | |
92 active to play.</p> | |
93 | |
94 <ul> | |
95 <li><a href="https://xmoto.tuxfamily.org/">Xmoto</a></li> | |
96 </ul> | |
97 | |
98 <p>This game is about driving a 2D motocross and | |
99 pass through obstacles, it can be very hard | |
100 and will challenge you for long time.</p> | |
101 | |
102 <p>it’s <strong>Open source</strong> and free of charge.</p> | |
103 | |
104 <ul> | |
105 <li><a href="https://kenney.itch.io/frick-inc">Frick. Inc</a></li> | |
106 </ul> | |
107 | |
108 <p>This is a fun game where you need to drive some big trucks only | |
109 <strong>using a displayed control panel with your mouse</strong> which m… | |
110 things very hard.</p> | |
111 | |
112 <p>The game is not open source and not free, but the cost isn’t ve… | |
113 high (3.99€ at the moment from France).</p> | |
114 | |
115 <ul> | |
116 <li><a href="https://adamgryu.itch.io/a-short-hike">A short hike</a></li> | |
117 </ul> | |
118 | |
119 <p>This game is about a teenager character who is on vacation in a | |
120 place with no cell network, and you will have to make a hike and | |
121 meet people to go to the end. Very relaxing :)</p> | |
122 | |
123 <p>The game isn’t open source and isn’t free, but costs arou… | |
124 the moment from France.</p> | |
125 | |
126 <ul> | |
127 <li><a href="https://www.gog.com/game/Train_Valley">Train valley</a></li> | |
128 </ul> | |
129 | |
130 <p>This game is about adding trains to tracks and avoid them | |
131 to crash. I found this game to be more about reflexes than | |
132 building, simulation or tycoon. You mostly need to route | |
133 the trains in real time.</p> | |
134 | |
135 <p>The game isn’t open source and not free but costs around 10€.… | |
136 | |
137 <h2 id="puzzlegameszachtronicsgames">Puzzle games (Zachtronics games)</h… | |
138 | |
139 <p>What’s a Zachtronics game? It’s a game edited by Zachtron… | |
140 game from this studio have a common pattern. You solve puzzles with | |
141 more and more complexes systems, you can compare your result in | |
142 speed / efficiency / steps to the others player. They are a mix in | |
143 between automation and puzzles. Those games are really good. There | |
144 are more than the 3 games I list, but I didn’t enjoy them all, | |
145 <a href="https://www.gog.com/games?devpub=zachtronics&page=1&sor… | |
146 | |
147 <ul> | |
148 <li><a href="https://www.gog.com/game/opus_magnum">Opus Magnum</a></li> | |
149 </ul> | |
150 | |
151 <p>You play an alchemist who is asked to create product for a rich | |
152 family. You need to setup devices to transforms and combine | |
153 materials into the expected result.</p> | |
154 | |
155 <p>The game isn’t open source and isn’t free. The average co… | |
156 | |
157 <ul> | |
158 <li><a href="https://www.gog.com/game/infinifactory">Infinifactory</a></… | |
159 </ul> | |
160 | |
161 <p>This game is in 3D, you receive materials on conveyor belts and you | |
162 will have to rotate and wield them to deliver the expect material.</p> | |
163 | |
164 <p>The game isn’t open source and isn’t free. The average co… | |
165 | |
166 <ul> | |
167 <li><a href="https://www.gog.com/game/tis100">Tis–100</a></li> | |
168 </ul> | |
169 | |
170 <p>This game is about writing code into assembly. There are calculations | |
171 units that will add/sub values from registers and pass it to another | |
172 unit. Even more fun if you print the old fashion instructions book!</p> | |
173 | |
174 <p>The game isn’t open source and isn’t free. The average co… | |
175 | |
176 <h2 id="visualnovel">Visual Novel</h2> | |
177 | |
178 <p><a href="https://www.gog.com/game/the_expression_amrilato">The expres… | |
179 | |
180 <p>This game is about a japanese girl who ends in a parallel world where | |
181 everything seems similar but in this Japan, people talk Esperanto.</p> | |
182 | |
183 <p>The game isn’t open source and isn’t free. The average co… | |
184 | |
185 <h2 id="notveryviolent">Not very violent</h2> | |
186 | |
187 <p><a href="http://wayofthepassivefist.com/">Way of the Passive Fist</a>… | |
188 | |
189 <p>I would like to add this game to this list. It’s a brawler (like | |
190 street of rage) in which you don’t fight people, but you only dodge | |
191 attacks to exhaust enemies or counter-attack. It’s still a bit | |
192 violent because it involves violence toward you, and throwing back | |
193 a knife would still be violent… But still, I think this is an | |
194 unique game that merits to be better known. :)</p> | |
195 | |
196 <p>The game isn’t open source and isn’t free, expect around … | |
197 it.</p> | |
198 | |
199 ]]> | |
200 </description> | |
201 <guid>https://dataswamp.org/~solene/2020-10-18-non-violent-games.html<… | |
202 <link>https://dataswamp.org/~solene/2020-10-18-non-violent-games.html<… | |
203 <pubDate>Sun, 18 Oct 2020 00:00:00 GMT</pubDate> | |
204 </item> | |
205 <item> | |
206 <title>Making a home NAS using NixOS</title> | |
207 <description> | |
208 <![CDATA[ | |
209 <p>Still playing with <a href="https://nixos.org/">NixOS</a>, I wanted t… | |
210 how difficult it would be to write a NixOS configuration file to | |
211 turn a computer into a simple NAS with basics features: samba | |
212 storage, dlna server and auto suspend/resume.</p> | |
213 | |
214 <p>What is <a href="https://nixos.org/features.html">NixOS</a>? As a rem… | |
215 some and introduction to the others, NixOS is a Linux distribution | |
216 built by the Nix package manager, which make it very different than | |
217 any other operating system out there, except <a href="https://guix.gnu.o… | |
218 which has a similar approach with their own package manager written | |
219 in Scheme.</p> | |
220 | |
221 <p>NixOS uses a declarative configuration approach along with lot of | |
222 others features derived from Nix. What’s big here is you no longer | |
223 tweak anything in <code>/etc</code> or install packages, you can define … | |
224 working state of the system in one configuration file. This system | |
225 is a totally different beast than the others OS and require some | |
226 time to understand how it work. Good news though, <strong>everything</st… | |
227 is documented in the man page <code>configuration.nix</code>, from fstab | |
228 configuration to users managements or how to enable samba!</p> | |
229 | |
230 <p>Here is the <code>/etc/nixos/configuration.nix</code> file on my NAS.… | |
231 | |
232 <p>It enables ssh server, samba, minidlna and vnstat. Set up an user | |
233 with my ssh public key. Ready to work.</p> | |
234 | |
235 <p>Using <code>rtcwake</code> command (Linux specific), it’s possi… | |
236 the system into standby mode and schedule an auto resume after | |
237 some time. This is triggered by a cron job at 01h00.</p> | |
238 | |
239 <pre><code>{ config, pkgs, ... }: | |
240 { | |
241 # include stuff related to hardware, auto generated at install | |
242 imports = ./hardware-configuration.nix ]; | |
243 boot.loader.grub.device = "/dev/sda"; | |
244 | |
245 # network configuration | |
246 networking.interfaces.enp3s0.ipv4.addresses = [ { | |
247 address = "192.168.42.150"; | |
248 prefixLength = 24; | |
249 } ]; | |
250 networking.defaultGateway = "192.168.42.1"; | |
251 networking.nameservers = [ "192.168.42.231" ]; | |
252 | |
253 # FR locales and layout | |
254 i18n.defaultLocale = "fr_FR.UTF-8"; | |
255 console = { font = "Lat2-Terminus16"; keyMap = "fr"… | |
256 time.timeZone = "Europe/Paris"; | |
257 | |
258 # Packages management | |
259 environment.systemPackages = with pkgs; [ | |
260 kakoune vnstat borgbackup utillinux | |
261 ]; | |
262 | |
263 # network disabled (I need to check the ports used first) | |
264 networking.firewall.enable = false; | |
265 | |
266 # services to enable | |
267 services.openssh.enable = true; | |
268 services.vnstat.enable = true; | |
269 | |
270 # auto standby | |
271 services.cron.systemCronJobs = [ | |
272 "0 1 * * * root rtcwake -m mem --date +6h" | |
273 ]; | |
274 | |
275 # samba service | |
276 services.samba.enable = true; | |
277 services.samba.enableNmbd = true; | |
278 services.samba.extraConfig = '' | |
279 workgroup = WORKGROUP | |
280 server string = Samba Server | |
281 server role = standalone server | |
282 log file = /var/log/samba/smbd.%m | |
283 max log size = 50 | |
284 dns proxy = no | |
285 map to guest = Bad User | |
286 ''; | |
287 services.samba.shares = { | |
288 public = { | |
289 path = "/home/public"; | |
290 browseable = "yes"; | |
291 "writable" = "yes"; | |
292 "guest ok" = "yes"; | |
293 "public" = "yes"; | |
294 "force user" = "share"; | |
295 }; | |
296 }; | |
297 | |
298 # minidlna service | |
299 services.minidlna.enable = true; | |
300 services.minidlna.announceInterval = 60; | |
301 services.minidlna.friendlyName = "Rorqual"; | |
302 services.minidlna.mediaDirs = ["A,/home/public/Musique/" &qu… | |
303 | |
304 # trick to create a directory with proper ownership | |
305 # note that tmpfiles are not necesserarly temporary if you don't | |
306 # set an expire time. Trick given on irc by someone I forgot the name.. | |
307 systemd.tmpfiles.rules = [ "d /home/public 0755 share users"… | |
308 | |
309 # create my user, with sudo right and my public ssh key | |
310 users.users.solene = { | |
311 isNormalUser = true; | |
312 extraGroups = [ "wheel" "sudo" ]; | |
313 openssh.authorizedKeys.keys = [ | |
314 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIZKLFQXVM15viQXHYR… | |
315 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIZKLFQXVM15vAQXBYR… | |
316 ]; | |
317 }; | |
318 | |
319 # create a dedicated user for the shares | |
320 # I prefer a dedicated one than "nobody" | |
321 # can't log into it | |
322 users.users.share= { | |
323 isNormalUser = false; | |
324 }; | |
325 } | |
326 </code></pre> | |
327 | |
328 ]]> | |
329 </description> | |
330 <guid>https://dataswamp.org/~solene/2020-10-18-nixos-nas.html</guid> | |
331 <link>https://dataswamp.org/~solene/2020-10-18-nixos-nas.html</link> | |
332 <pubDate>Sun, 18 Oct 2020 00:00:00 GMT</pubDate> | |
333 </item> | |
334 <item> | |
335 <title>NixOS optional features in packages</title> | |
336 <description> | |
337 <![CDATA[ | |
338 <p>As a claws-mail user, I like to have calendar support in the mail | |
339 client to be able to “accept” invitations. In the default Ni… | |
340 claws-mail package, the vcalendar module isn’t installed with the | |
341 package. Still, it is possible to add support for the vcalendar | |
342 module without ugly hack.</p> | |
343 | |
344 <p>It turns out, by default, the claws-mail package in Nixpkg has an | |
345 optional build option for the vcalendar module, we need to tell | |
346 nixpkg we want this module and claws-mail will be compiled.</p> | |
347 | |
348 <p>As stated in the <a href="https://nixos.org/manual/nixos/stable/#sec-… | |
349 manual</a>, | |
350 the optionals features can’t be searched yet. So what’s poss… | |
351 is to search for your package in the <a href="https://search.nixos.org/p… | |
352 search</a>, click on the package | |
353 name to get to the details and click on the link named “Nix expres… | |
354 that will open a link to the package definition on GitHUB, <a href="http… | |
355 nix | |
356 expression</a></p> | |
357 | |
358 <p>As you can see on the claws-mail nix expression code, there are lot | |
359 of lines with <strong>optional</strong>, those are features we can enabl… | |
360 is a sample:</p> | |
361 | |
362 <pre><code>[..] | |
363 ++ optional (!enablePluginArchive) "--disable-archive-plugin" | |
364 ++ optional (!enablePluginLitehtmlViewer) "--disable-litehtml_viewe… | |
365 ++ optional (!enablePluginPdf) "--disable-pdf_viewer-plugin" | |
366 ++ optional (!enablePluginPython) "--disable-python-plugin" | |
367 [..] | |
368 </code></pre> | |
369 | |
370 <p>In your <code>configuration.nix</code> file, where you define the pac… | |
371 you want, you can tell you want to enable the plugin vcalendar, | |
372 this is done as in the following example:</p> | |
373 | |
374 <pre><code>environment.systemPackages = with pkgs; [ | |
375 kakoune git firefox irssi minetest | |
376 (pkgs.claws-mail.override { enablePluginVcalendar = true;}) | |
377 ]; | |
378 </code></pre> | |
379 | |
380 <p>When you rebuild your system to match the configuration definition, | |
381 claws-mail will be compiled with the extras options you defined.</p> | |
382 | |
383 <p>Now, I have claws-mail with vCalendar support.</p> | |
384 | |
385 ]]> | |
386 </description> | |
387 <guid>https://dataswamp.org/~solene/2020-10-14-nixos-custom-packages.h… | |
388 <link>https://dataswamp.org/~solene/2020-10-14-nixos-custom-packages.h… | |
389 <pubDate>Wed, 14 Oct 2020 00:00:00 GMT</pubDate> | |
390 </item> | |
391 <item> | |
392 <title>Unlock a full disk encryption NixOS with usb memory stick</titl… | |
393 <description> | |
394 <![CDATA[ | |
395 <p>Using NixOS on a laptop on which the keyboard isn’t detected wh… | |
396 I need to type the password to decrypt disk, I had to find a solution. | |
397 This problem is hardware related, not Linux or NixOS related.</p> | |
398 | |
399 <p><strong>I highly recommend using full disk encryption on every comput… | |
400 following a thief threat model. Having your computer stolen is bad, | |
401 but if the thief has access to all your data, you will certainly | |
402 be in trouble.</strong></p> | |
403 | |
404 <p>This was time to find how to use an usb memory stick to unlock the | |
405 full disk encryption in case I don’t have my hands on an usb keybo… | |
406 to unlock the computer.</p> | |
407 | |
408 <p>There are 4 steps to enable unlocking the luks volume using a device.… | |
409 | |
410 <ol> | |
411 <li>Create the key</li> | |
412 <li>Add the key on the luks volume</li> | |
413 <li>Write the key on the usb device</li> | |
414 <li>Configure NixOS</li> | |
415 </ol> | |
416 | |
417 <p>First step, creating the file. The easiest way is to the following:</… | |
418 | |
419 <pre><code># dd if=/dev/urandom of=/root/key.bin bs=4096 count=1 | |
420 </code></pre> | |
421 | |
422 <p>This will create a 4096 bytes key. You can choose the size you want.<… | |
423 | |
424 <p>Second step is to register that key in the luks volume, you will | |
425 be prompted for luks password when doing so.</p> | |
426 | |
427 <pre><code># cryptsetup luksAddKey /dev/sda1 /root/key.bin | |
428 </code></pre> | |
429 | |
430 <p>Then, it’s time to write the key to your usb device, I assume it | |
431 will be <code>/dev/sdb</code>.</p> | |
432 | |
433 <pre><code># dd if=/root/key.bin of=/dev/sdb bs=4096 count=1 | |
434 </code></pre> | |
435 | |
436 <p>And finally, you will need to configure NixOS to give the information | |
437 about the key. It’s important to give the correct size of the key. | |
438 Don’t forget to adapt <code>"crypted"</code> to your luk… | |
439 | |
440 <pre><code>boot.initrd.luks.devices."crypted".keyFileSize = 40… | |
441 boot.initrd.luks.devices."crypted".keyFile = "/dev/sdb&qu… | |
442 </code></pre> | |
443 | |
444 <p>Rebuild your system with <code>nixos-rebuild switch</code> and voilà… | |
445 | |
446 <h3 id="goingfurther">Going further</h3> | |
447 | |
448 <p>I recommend using the fallback to password feature so if you | |
449 lose or don’t have your memory stick, you can type the password to | |
450 unlock the disk. Note that you need to not put anything looking | |
451 like a <code>/dev/sdb</code> because if it exists and no key are there, … | |
452 system won’t ask for password, and you will need to reboot.</p> | |
453 | |
454 <pre><code>boot.initrd.luks.devices."crypted".fallbackToPasswo… | |
455 </code></pre> | |
456 | |
457 <p>It’s also possible to write the key in a partition or at a spec… | |
458 offset into your memory disk. For this, look at | |
459 <code>boot.initrd.luks.devices."volume".keyFileOffset</code> e… | |
460 | |
461 ]]> | |
462 </description> | |
463 <guid>https://dataswamp.org/~solene/2020-10-06-nixos-luks-key.html</gu… | |
464 <link>https://dataswamp.org/~solene/2020-10-06-nixos-luks-key.html</li… | |
465 <pubDate>Tue, 06 Oct 2020 00:00:00 GMT</pubDate> | |
466 </item> | |
467 <item> | |
468 <title>Playing chess by email</title> | |
469 <description> | |
470 <![CDATA[ | |
471 <p>It’s possible to play chess using email. This is possible becau… | |
472 there are notations like PGN (Portable Game Notation) that describe | |
473 the state of a game.</p> | |
474 | |
475 <p>By playing on your computer and sending the PGN of the game to | |
476 your opponent, that person will be able to play their move and | |
477 send you the new PGN so you can play.</p> | |
478 | |
479 <h2 id="usingxboard">Using xboard</h2> | |
480 | |
481 <p>This is quite easy with xboard (which should be available in most | |
482 bsd/linux/unix distributions), as long as you are aware of the few | |
483 keybindings.</p> | |
484 | |
485 <p>When you start a game, press <strong>Ctrl+E</strong> to enter edition… | |
486 will prevent the AI to play, then make your move.</p> | |
487 | |
488 <p>From there, you can press <strong>Ctrl+C</strong> to copy the state o… | |
489 You will have something like this in your clipboard.</p> | |
490 | |
491 <pre><code>[Event "Edited game"] | |
492 [Site "solene.local"] | |
493 [Date "2020.09.28"] | |
494 [Round "-"] | |
495 [White "-"] | |
496 [Black "-"] | |
497 [Result "*"] | |
498 | |
499 1. d3 | |
500 * | |
501 </code></pre> | |
502 | |
503 <p>You can send this to your opponent, but the only needed data is <code… | |
504 d3</code> which is the PGN notation of the moves. You can throw the rest… | |
505 | |
506 <p>In a more advanced game, you will end up mailing this kind of data:</… | |
507 | |
508 <pre><code>1. d3 e6 2. e4 f5 3. exf5 exf5 4. Qe2+ Be7 5. Qxe7+ Qxe7+ | |
509 </code></pre> | |
510 | |
511 <p>When you want to play your turn, load that line and press <strong>Ctr… | |
512 you should see the moves happening on the board.</p> | |
513 | |
514 <h2 id="usinggnuchess">Using gnuchess</h2> | |
515 | |
516 <p>gnuchess allow playing chess in command line.</p> | |
517 | |
518 <p>When you want to start a game, you will have a prompt, type <code>man… | |
519 to not play against the AI. I recommend using <code>coords</code> to dis… | |
520 coordinates on the axis of the board.</p> | |
521 | |
522 <p>When you type <code>show board</code> you will have this display:</p> | |
523 | |
524 <pre><code> white KQkq | |
525 | |
526 8 r n b q k b n r | |
527 7 p p p p p p p p | |
528 6 . . . . . . . . | |
529 5 . . . . . . . . | |
530 4 . . . . . . . . | |
531 3 . . . . . . . . | |
532 2 P P P P P P P P | |
533 1 R N B Q K B N R | |
534 a b c d e f g h | |
535 </code></pre> | |
536 | |
537 <p>Then, I can type <code>d3</code> I get a display</p> | |
538 | |
539 <pre><code>8 r n b q k b n r | |
540 7 p p p p p p p p | |
541 6 . . . . . . . . | |
542 5 . . . . . . . . | |
543 4 . . . . . . . . | |
544 3 . . . P . . . . | |
545 2 P P P . P P P P | |
546 1 R N B Q K B N R | |
547 a b c d e f g h | |
548 </code></pre> | |
549 | |
550 <p>From the game, you can save the game using <code>pgnsave FILE</code> | |
551 and load a game using <code>pgnload FILE</code>.</p> | |
552 | |
553 <p>You can see the list of the moves using <code>show game</code>.</p> | |
554 | |
555 ]]> | |
556 </description> | |
557 <guid>https://dataswamp.org/~solene/2020-09-28-chess.html</guid> | |
558 <link>https://dataswamp.org/~solene/2020-09-28-chess.html</link> | |
559 <pubDate>Mon, 28 Sep 2020 00:00:00 GMT</pubDate> | |
560 </item> | |
561 <item> | |
562 <title>About pipelining OpenBSD ports contributions</title> | |
563 <description> | |
564 <![CDATA[ | |
565 <p>After modest contributions to the NixOS operating system which made | |
566 me learn about the contribution process, I found enjoyable to have | |
567 an automatic report and feedback about the quality of the submitted | |
568 work. While on NixOS this requires GitHub, I think this could be | |
569 applied as well on OpenBSD and the mailing list contributing system.</p> | |
570 | |
571 <p>I made a prototype before starting the real work and actually I’… | |
572 happy with the result.</p> | |
573 | |
574 <p>This is what I get after feeding the script with a mail containing | |
575 a patch:</p> | |
576 | |
577 <pre><code>Determining package path ✓ | |
578 Verifying patch isn't committed ✓ | |
579 Applying the patch ✓ | |
580 Fetching distfiles ✓ | |
581 Distfile checksum ✓ | |
582 Applying ports patches ✓ | |
583 Extracting sources ✓ | |
584 Building result ✓ | |
585 </code></pre> | |
586 | |
587 <p>It requires a lot of checks to find a patch in the file, because | |
588 we have have patches generated from cvs or git which have a slightly | |
589 different output. And then, we need to find from where to apply | |
590 this patch.</p> | |
591 | |
592 <p>The idea would be to retrieve mails sent to [email protected] by | |
593 subscribing, then store metadata about that submission into a | |
594 database:</p> | |
595 | |
596 <pre><code>Sender | |
597 Date | |
598 Diff (raw text) | |
599 Status (already committed, doesn't apply, apply, compile) | |
600 </code></pre> | |
601 | |
602 <p>Then, another program will pick a diff from the database, prepare a V… | |
603 derivated qcow2 disk from a base image so it always start fresh and | |
604 clean and ready, and do the checks within the VM.</p> | |
605 | |
606 <p>Once it is finished, a mail could be sent as a reply to the original | |
607 mail to give the status of each step until error or last check. The | |
608 database could be reused to make a web page to track what compiles | |
609 but is not yet committed. As it’s possible to verify if a patch is | |
610 committed in the tree, this can automatically prune committed patches | |
611 over time.</p> | |
612 | |
613 <p>I really think this can improve tracking patches sent to ports@ and | |
614 ease the contribution process.</p> | |
615 | |
616 <p><strong>DISCLAIMER</strong></p> | |
617 | |
618 <ul> | |
619 <li>This would not be an official part of the project, I do it on my own… | |
620 <li>This may be cancelled</li> | |
621 <li>This may be a bad idea</li> | |
622 <li>This could be used “as a service” instead of pulling aut… | |
623 from ports, meaning people could send mails to it to receive an | |
624 automatic review. Ideally this should be done in portcheck(1) but | |
625 I’m not sure how to verify a diff apply on the ports tree without | |
626 enforcing requirements</li> | |
627 <li><strong>Human work will still be required to check the content and v… | |
628 the port works correctly!</strong></li> | |
629 </ul> | |
630 | |
631 ]]> | |
632 </description> | |
633 <guid>https://dataswamp.org/~solene/2020-09-27-pipeline-ports.html</gu… | |
634 <link>https://dataswamp.org/~solene/2020-09-27-pipeline-ports.html</li… | |
635 <pubDate>Sun, 27 Sep 2020 00:00:00 GMT</pubDate> | |
636 </item> | |
637 <item> | |
638 <title>Docker cheatsheet</title> | |
639 <description> | |
640 <![CDATA[ | |
641 <p>Simple Docker cheatsheet. This is a short introduction about Docker u… | |
642 and common questions I have been asking myself about Docker.</p> | |
643 | |
644 <p>The official documentation for building docker images can be <a href=… | |
645 here</a></p> | |
646 | |
647 <h2 id="buildanimage">Build an image</h2> | |
648 | |
649 <p>Building an image is really easy. As a requirement, you need to be | |
650 in a directory that can contain data you will use for building the | |
651 image but most importantly, you need a <code>Dockerfile</code> file.</p> | |
652 | |
653 <p>The Dockerfile file hold all the instructions to create the container. | |
654 A simple example would be this description:</p> | |
655 | |
656 <pre><code>FROM busybox | |
657 CMD "echo" "hello world" | |
658 </code></pre> | |
659 | |
660 <p>This will create a docker container using busybox base image | |
661 and run <code>echo "hello world"</code> when you run it.</p> | |
662 | |
663 <p>To create the container, use the following command in the same | |
664 directory in which Dockerfile is:</p> | |
665 | |
666 <pre><code>$ docker build -t your-image-name . | |
667 </code></pre> | |
668 | |
669 <h2 id="advancedimagebuilding">Advanced image building</h2> | |
670 | |
671 <p>If you need to compile sources to distribute a working binary, | |
672 you need to prepare the environment to have the required | |
673 dependencies to compile and then you need to compile a static | |
674 binary to ship the container without all the dependencies.</p> | |
675 | |
676 <p>In the following example we will use a debian environment to build | |
677 the software downloaded by git.</p> | |
678 | |
679 <pre><code>FROM debian as work | |
680 WORKDIR /project | |
681 | |
682 RUN apt-get update | |
683 RUN apt-get install -y git make gcc | |
684 RUN git clone git://bitreich.org/sacc /project | |
685 RUN apt-get install -y libncurses5-dev libncurses5 | |
686 RUN make LDFLAGS="-static -lncurses -ltinfo" | |
687 | |
688 FROM debian | |
689 | |
690 COPY --from=work /project/sacc /usr/local/bin/sacc | |
691 | |
692 CMD "sacc" "gopherproject.org" | |
693 </code></pre> | |
694 | |
695 <p>I won’t explain every command here, but you may see that I have | |
696 split the packages installation in two commands. This was to help | |
697 debugging.</p> | |
698 | |
699 <p>The trick here is that the docker build process has a cache feature. | |
700 Every time you use a <code>FROM</code>, <code>COPY</code>, <code>RUN</co… | |
701 cache the current state of the build process, if you re-run the | |
702 process docker will be able to pick up the most recent state until | |
703 the change.</p> | |
704 | |
705 <p>I wasn’t sure how to compile statically the software at first, … | |
706 having to install git make and gcc and run git clone EVERY TIME | |
707 was very time consuming and bandwidth consuming.</p> | |
708 | |
709 <p>In case you run this build and it fails, you can re-run the build | |
710 and docker will catch up directly at the last working step.</p> | |
711 | |
712 <p>If you change a line, docker will reuse the last state with a | |
713 FROM/COPY/RUN/CMD command before the changed line. Knowing about | |
714 this is really important for more efficient cache use.</p> | |
715 | |
716 <h2 id="runanimage">Run an image</h2> | |
717 | |
718 <p>With the previously locally built image we can run it with the comman… | |
719 | |
720 <pre><code>$ docker run your-image-name | |
721 hello world | |
722 </code></pre> | |
723 | |
724 <p>By default, when you use an image name to run, if you don’t hav… | |
725 local image that match the name <em>docker</em> will check on the docker | |
726 official repository if an image exists, if so, it will be pulled | |
727 and run.</p> | |
728 | |
729 <pre><code>$ docker run hello-world | |
730 </code></pre> | |
731 | |
732 <p>This is a sample official container that will display some | |
733 explanations about docker.</p> | |
734 | |
735 <p>If you want to try a gopher client, I made a docker version of it | |
736 that you can run with the following command:</p> | |
737 | |
738 <pre><code>$ docker run -t -i rapennesolene/sacc | |
739 </code></pre> | |
740 | |
741 <p>Why did you require <code>-t</code> and <code>-i</code> parameters? T… | |
742 is to tell docker you want a tty because it will manipulate | |
743 a terminal and the latter is to ask an interactive session.</p> | |
744 | |
745 <h2 id="persistantdata">Persistant data</h2> | |
746 | |
747 <p>By default, every data of the docker container get wiped out | |
748 once it stops, which may be really undesirable if you use | |
749 docker to deploy a service that has a state and require an | |
750 installation, configuration files etc…</p> | |
751 | |
752 <p>Docker has two ways to solve it:</p> | |
753 | |
754 <p>1) map a local directory | |
755 2) map a docker volume name</p> | |
756 | |
757 <p>This is done with the parameter <code>-v</code> with the <code>docker… | |
758 | |
759 <pre><code>$ docker run -v data:/var/www/html/ nextcloud | |
760 </code></pre> | |
761 | |
762 <p>This will map a persistent storage named “data” on the ho… | |
763 on the path <code>/var/www/html</code> in the docker instance. By using … | |
764 docker will check if <code>/var/lib/docker/volumes/data</code> exists, i… | |
765 it will reuse it and if not it will create it.</p> | |
766 | |
767 <p>This is a convenient way to name volumes and let docker manage it.</p> | |
768 | |
769 <p>The other way is to map a local path to a container environment | |
770 path.</p> | |
771 | |
772 <pre><code>$ docker run -v /home/nextcloud:/var/www/html nextcloud | |
773 </code></pre> | |
774 | |
775 <p>In this case, the directory <code>/home/nextcloud</code> on the host … | |
776 <code>/var/www/html</code> in the docker environment will be the same di… | |
777 | |
778 ]]> | |
779 </description> | |
780 <guid>https://dataswamp.org/~solene/2020-09-24-docker-cheatsheet.html<… | |
781 <link>https://dataswamp.org/~solene/2020-09-24-docker-cheatsheet.html<… | |
782 <pubDate>Thu, 24 Sep 2020 00:00:00 GMT</pubDate> | |
783 </item> | |
784 <item> | |
785 <title>A few tips about the command cd</title> | |
786 <description> | |
787 <![CDATA[ | |
788 <p>While everyone familiar with a shell know about the command <code>cd<… | |
789 there are a few tips you should know.</p> | |
790 | |
791 <h3 id="movingtoyourhomedirectory">Moving to your $HOME directory</h3> | |
792 | |
793 <pre><code>$ pwd | |
794 /tmp | |
795 $ cd | |
796 $ pwd | |
797 /home/solene | |
798 </code></pre> | |
799 | |
800 <p>Using <code>cd</code> without argument will change your current direc… | |
801 your $HOME.</p> | |
802 | |
803 <h3 id="movingintosomeonehomedirectory">Moving into someone $HOME direct… | |
804 | |
805 <p>While this should fail most of the time because people shouldn’… | |
806 anyone to visit their $HOME, there are use case it can be used though.</… | |
807 | |
808 <pre><code>$ cd ~user1 | |
809 $ pwd | |
810 /home/user1 | |
811 $ cd ~solene | |
812 $ pwd | |
813 /home/solene | |
814 </code></pre> | |
815 | |
816 <p>Using <code>~user</code> as a parameter will move to that user $HOME … | |
817 note that <code>cd</code> and <code>cd ~youruser</code> have the same re… | |
818 | |
819 <h3 id="movingtopreviousdirectory">Moving to previous directory</h3> | |
820 | |
821 <p>This is a very useful command which allow going back and forth between | |
822 two directories.</p> | |
823 | |
824 <pre><code>$ pwd | |
825 /home/solene | |
826 $ cd /tmp | |
827 $ pwd | |
828 /tmp | |
829 $ cd - | |
830 /home/solene | |
831 $ pwd | |
832 /home/solene | |
833 </code></pre> | |
834 | |
835 <p>When you use <code>cd -</code> the command will move to the previous … | |
836 in which you were. There are two special variables in your shell: | |
837 <code>PWD</code> and <code>OLDPWD</code>, when you move somewhere, <code… | |
838 your current location before moving and then <code>PWD</code> hold the n… | |
839 path. When you use <code>cd -</code> the two variables get exchanged, th… | |
840 mean you can only jump from two paths using <code>cd -</code> multiple t… | |
841 | |
842 <p>Please note that when using <code>cd -</code> your new location is di… | |
843 | |
844 <h3 id="changingdirectorybymodifyingcurrentpwd">Changing directory by mo… | |
845 | |
846 <p>thfr@ showed me a cd feature I never heard about, and it’s the | |
847 perfect place to write about it. Note that this work in ksh and zsh | |
848 but is reported to not work in bash.</p> | |
849 | |
850 <p>One example will explain better than any text.</p> | |
851 | |
852 <pre><code>$ pwd | |
853 /tmp/pobj/foobar-1.2.0/work | |
854 $ cd 1.2.0 2.4.0 | |
855 /tmp/pobj/foobar-2.4.0/work | |
856 </code></pre> | |
857 | |
858 <p>This tells <code>cd</code> to replace first parameter pattern by the … | |
859 parameter in the current <code>PWD</code> and then cd into it.</p> | |
860 | |
861 <pre><code>$ pwd | |
862 /home/solene | |
863 $ cd solene user1 | |
864 /home/user1 | |
865 </code></pre> | |
866 | |
867 <p>This could be done in a bloated way with the following command:</p> | |
868 | |
869 <pre><code>$ cd $(echo $PWD | sed "s/solene/user1/") | |
870 </code></pre> | |
871 | |
872 <p>I learned it a few minutes ago but I see a lot of uses cases where | |
873 I could use it.</p> | |
874 | |
875 <h3 id="movingintothecurrentdirectoryafterremoval">Moving into the curre… | |
876 | |
877 <p>In some specific case, like having your shell into a directory that | |
878 existed but was deleted and removed (this happens often when you | |
879 working into compilation directories).</p> | |
880 | |
881 <p>A simple trick is to tell <code>cd</code> to go to the current locati… | |
882 | |
883 <pre><code>$ cd . | |
884 </code></pre> | |
885 | |
886 <p>or</p> | |
887 | |
888 <pre><code>$ cd $PWD | |
889 </code></pre> | |
890 | |
891 <p>And <code>cd</code> will go into the same path and you can start hack… | |
892 again in that directory.</p> | |
893 | |
894 ]]> | |
895 </description> | |
896 <guid>https://dataswamp.org/~solene/2020-09-04-cd-command.html</guid> | |
897 <link>https://dataswamp.org/~solene/2020-09-04-cd-command.html</link> | |
898 <pubDate>Fri, 04 Sep 2020 00:00:00 GMT</pubDate> | |
899 </item> | |
900 <item> | |
901 <title>Find which package provides a given file in OpenBSD</title> | |
902 <description> | |
903 <![CDATA[ | |
904 <p>There is one very handy package on OpenBSD named <code>pkglocatedb</c… | |
905 which provides the command <code>pkglocate</code>.</p> | |
906 | |
907 <p>If you need to find a file or binary/program and you don’t know | |
908 which package contains it, use pkglocate.</p> | |
909 | |
910 <pre><code>$ pkglocate */bin/exiftool | |
911 p5-Image-ExifTool-12.00:graphics/p5-Image-ExifTool:/usr/local/bin/exifto… | |
912 </code></pre> | |
913 | |
914 <p>With the result, I know that the package <code>p5-Image-ExifTool</cod… | |
915 the command <code>exiftool</code>.</p> | |
916 | |
917 <p>Another example looking for files containing the pattern “libc+… | |
918 | |
919 <pre><code>$ pkglocate libc++ | |
920 base67:/usr/lib/libc++.so.5.0 | |
921 base67:/usr/lib/libc++abi.so.3.0 | |
922 comp67:/usr/lib/libc++.a | |
923 comp67:/usr/lib/libc++_p.a | |
924 comp67:/usr/lib/libc++abi.a | |
925 comp67:/usr/lib/libc++abi_p.a | |
926 qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx-c… | |
927 qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx-c… | |
928 qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx-c… | |
929 qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx-c… | |
930 qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx-c… | |
931 qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-cl… | |
932 qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-cl… | |
933 qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-cl… | |
934 qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-cl… | |
935 qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-cl… | |
936 qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-cl… | |
937 </code></pre> | |
938 | |
939 <p>As you can see, base sets are also in the database used by pkglocate, | |
940 so you can easily find if a file is from a set (that you should | |
941 have) or if the file comes from a package.</p> | |
942 | |
943 <h2 id="findwhichpackageinstalledafile">Find which package installed a f… | |
944 | |
945 <p>Klemmens Nanni (kn@) told me it’s possible to find which package | |
946 installed a file present in the filesystem using <code>pkg_info</code> c… | |
947 which comes from the base system. This can be handy to know from | |
948 which package an installed file comes from, without requiring | |
949 pkglocatedb.</p> | |
950 | |
951 <pre><code>$ pkg_info -E /usr/local/bin/convert | |
952 /usr/local/bin/convert: ImageMagick-6.9.10.86p0 | |
953 ImageMagick-6.9.10.86p0 image processing tools | |
954 </code></pre> | |
955 | |
956 <p>This tells me <code>convert</code> binary was installed by ImageMagic… | |
957 | |
958 ]]> | |
959 </description> | |
960 <guid>https://dataswamp.org/~solene/2020-09-04-pkglocate-openbsd.html<… | |
961 <link>https://dataswamp.org/~solene/2020-09-04-pkglocate-openbsd.html<… | |
962 <pubDate>Fri, 04 Sep 2020 00:00:00 GMT</pubDate> | |
963 </item> | |
964 <item> | |
965 <title>Download files listed in a http index with wget</title> | |
966 <description> | |
967 <![CDATA[ | |
968 <p>Sometimes I need to download files through http from a list on an … | |
969 page and it’s always painful to find a correct command for this.</… | |
970 | |
971 <p>The easy solution is <strong>wget</strong> but you need to use the co… | |
972 because wget has a lot of mirroring options but you only want specific o… | |
973 achieve this goal.</p> | |
974 | |
975 <p>I ended up with the following command:</p> | |
976 | |
977 <pre><code>wget --continue --accept "*.tgz" --no-directories -… | |
978 </code></pre> | |
979 | |
980 <p>This will download every tgz files available at the address given as … | |
981 | |
982 <p>The parameters given will filter to only download the <strong>tgz</st… | |
983 files in the current working directory and most important, don’t t… | |
984 to the parent directory to start downloading again. The `–continue… | |
985 allow to interrupt wget and start again, downloaded file will be skipped… | |
986 partially downloaded files will be completed.</p> | |
987 | |
988 <p><strong>Do not reuse this command if files changed on the remote serv… | |
989 continue feature only work if your local file and the remote file are th… | |
990 this simply look at the local and remote names and will ask the remote s… | |
991 to start downloading at the current byte range of your local file. If me… | |
992 the remote file changed, you will have a mix of the old and new file.</p> | |
993 | |
994 <p>Obviously ftp protocol would be better suited for this download job b… | |
995 less and less available so I find <strong>wget</strong> to be a nice wor… | |
996 | |
997 ]]> | |
998 </description> | |
999 <guid>https://dataswamp.org/~solene/2020-06-16-wget-mirror.html</guid> | |
1000 <link>https://dataswamp.org/~solene/2020-06-16-wget-mirror.html</link> | |
1001 <pubDate>Tue, 16 Jun 2020 00:00:00 GMT</pubDate> | |
1002 </item> | |
1003 <item> | |
1004 <title>Birthdays dates management using calendar</title> | |
1005 <description> | |
1006 <![CDATA[ | |
1007 <p>I manage my birthday list so I don’t forget about them in a | |
1008 <a href="https://man.openbsd.org/calendar.1">calendar</a> file so I can … | |
1009 it in scripts</p> | |
1010 | |
1011 <p>The calendar file format is easy but sadly it only works using | |
1012 English month names.</p> | |
1013 | |
1014 <p>This is an example file with differents spacing:</p> | |
1015 | |
1016 <pre><code>7 August This is 7 august birthday! | |
1017 8 August This is 8 august birthday! | |
1018 16 August This is 16 august birthday! | |
1019 </code></pre> | |
1020 | |
1021 <p>Now you have a calendar file you can use the <strong>calendar</strong… | |
1022 on it and show incoming events in the next n days using -A flag.</p> | |
1023 | |
1024 <pre><code>calendar -A 20 | |
1025 </code></pre> | |
1026 | |
1027 <p>Note that the default file is <code>~/.calendar/calendar</code> so if… | |
1028 use this file you don’t need to use the <code>-f</code> flag in ca… | |
1029 | |
1030 <p>Now, I also use it in crontab with xmessage to show a popup once a | |
1031 day with incoming birthdays.</p> | |
1032 | |
1033 <pre><code>30 13 * * * calendar -A 7 -f ~/.calendar/birthday | grep . &… | |
1034 </code></pre> | |
1035 | |
1036 <p>You have to set the DISPLAY variable so it appear on the screen.</p> | |
1037 | |
1038 <p>It’s important to check if calendar will have any output before | |
1039 calling xmessage to prevent having an empty window.</p> | |
1040 | |
1041 ]]> | |
1042 </description> | |
1043 <guid>https://dataswamp.org/~solene/2020-06-15-calendar-xmessage.html<… | |
1044 <link>https://dataswamp.org/~solene/2020-06-15-calendar-xmessage.html<… | |
1045 <pubDate>Mon, 15 Jun 2020 00:00:00 GMT</pubDate> | |
1046 </item> | |
1047 <item> | |
1048 <title>prose - Blogging with emails</title> | |
1049 <description> | |
1050 <![CDATA[ | |
1051 <p>The software developer prx, his website is available at <a href="http… | |
1052 (en/fr)</a>, released a new software called <strong>prose</strong> to | |
1053 publish a blog by sending emails.</p> | |
1054 | |
1055 <p>I really like this idea, while this doesn’t suit my needs at al… | |
1056 I wanted to write about it.</p> | |
1057 | |
1058 <p>The code can be downloaded from this address https://dev.ybad.name/pr… | |
1059 | |
1060 <p>I will briefly introduce how it works but the README file is well exp… | |
1061 prose must be started from the mail server, upon email receival in | |
1062 <code>/etc/mail/aliases</code> the email will be piped into prose which … | |
1063 html output.</p> | |
1064 | |
1065 <p>On the security side, <strong>prose</strong> doesn’t use any ex… | |
1066 it will use unveil and pledge features to reduce privileges of <strong>p… | |
1067 unveil will restrict the process file system accesses outside of the html | |
1068 output directory.</p> | |
1069 | |
1070 <p>I would also congrats prx who demonstrates again that writing good so… | |
1071 isn’t exclusive to IT professionnal.</p> | |
1072 | |
1073 ]]> | |
1074 </description> | |
1075 <guid>https://dataswamp.org/~solene/2020-06-11-prose.html</guid> | |
1076 <link>https://dataswamp.org/~solene/2020-06-11-prose.html</link> | |
1077 <pubDate>Thu, 11 Jun 2020 00:00:00 GMT</pubDate> | |
1078 </item> | |
1079 <item> | |
1080 <title>Gaming on OpenBSD</title> | |
1081 <description> | |
1082 <![CDATA[ | |
1083 <p>While no one would expect this, there are huge efforts from a small t… | |
1084 bring more games into OpenBSD. In fact, now some commercial games works | |
1085 natively now, thanks to Mono or Java. There are no wine or linux emulati… | |
1086 layer in OpenBSD.</p> | |
1087 | |
1088 <p>Here is a small list of most well known games that run on OpenBSD:</p> | |
1089 | |
1090 <ul> | |
1091 <li>Northguard (RTS)</li> | |
1092 <li>Dead Cells (Side scroller action game)</li> | |
1093 <li>Stardew Valley (Farming / Roguelike)</li> | |
1094 <li>Slay The Spire (Card / Roguelike)</li> | |
1095 <li>Axiom Verge (Side scroller, metroidvania)</li> | |
1096 <li>Crosscode (top view twin stick shooter)</li> | |
1097 <li>Terraria (Side scroller action game with craft)</li> | |
1098 <li>Ion Fury (FPS)</li> | |
1099 <li>Doom 3 (FPS)</li> | |
1100 <li>Minecraft (Sandbox - not working using latest version)</li> | |
1101 <li>Tales Of Maj’Eyal (Roguelike with lot of things in it - open s… | |
1102 </ul> | |
1103 | |
1104 <p>I would also like to feature the recently made compatible games from | |
1105 Zachtronics developer, those are ingenious puzzles games requiring effic… | |
1106 There are games involving Assembly code, pseudo code, molecules etc̷… | |
1107 | |
1108 <ul> | |
1109 <li>Opus Magnum</li> | |
1110 <li>Exapunks</li> | |
1111 <li>Molek-Syntez</li> | |
1112 </ul> | |
1113 | |
1114 <p>Finally, there are good RPG running thanks to devoted developer spend… | |
1115 free time working on game engine reimplementation:</p> | |
1116 | |
1117 <ul> | |
1118 <li>Elder Scroll III: Morrowind (openmw engine)</li> | |
1119 <li>Baldur’s Gate 1 and 2 (gemrb engine)</li> | |
1120 <li>Planescape: Torment (gemrb engine)</li> | |
1121 </ul> | |
1122 | |
1123 <p>There is a Peertube (opensource decentralized Youtube alternative) ch… | |
1124 where I started publishing gaming videos recorded from OpenBSD. Now ther… | |
1125 also videos from others people that are published. <a href="https://vide… | |
1126 channel</a></p> | |
1127 | |
1128 <p>The full list of running games is available in the <a href="https://p… | |
1129 webpage</a> including information how they | |
1130 run, on which store you can buy them and if they are compatible.</p> | |
1131 | |
1132 <p>Big thanks to thfr@ who works hard to keep the shopping guide up to d… | |
1133 who made most of this possible. Many thanks to all the other people in t… | |
1134 OpenBSD Gaming community :)</p> | |
1135 | |
1136 <p>Note that it seems last Terraria release/update doesn’t work on… | |
1137 | |
1138 ]]> | |
1139 </description> | |
1140 <guid>https://dataswamp.org/~solene/2020-06-05-openbsd-gaming.html</gu… | |
1141 <link>https://dataswamp.org/~solene/2020-06-05-openbsd-gaming.html</li… | |
1142 <pubDate>Fri, 05 Jun 2020 00:00:00 GMT</pubDate> | |
1143 </item> | |
1144 <item> | |
1145 <title>Beautiful background pictures on OpenBSD</title> | |
1146 <description> | |
1147 <![CDATA[ | |
1148 <p>While the title may appear quite strange, the article is about instal… | |
1149 package to have a new random wallpaper everytime you start the X session… | |
1150 | |
1151 <p>First, you need to install a package named <code>openbsd-backgrounds<… | |
1152 large with a size of 144 MB. This package made by Marc Espie contains lo… | |
1153 pictures shot by some OpenBSD developers.</p> | |
1154 | |
1155 <p>You can automatically set a picture as a background when xenodm start… | |
1156 prompt for your username by uncommenting a few lines in the file | |
1157 <code>/etc/X11/xenodm/Xsetup_0</code>:</p> | |
1158 | |
1159 <p>Uncomment this part</p> | |
1160 | |
1161 <pre><code>if test -x /usr/local/bin/openbsd-wallpaper | |
1162 then | |
1163 /usr/local/bin/openbsd-wallpaper | |
1164 fi | |
1165 </code></pre> | |
1166 | |
1167 <p>The command <code>openbsd-wallpaper</code> will display a different r… | |
1168 every screen (if you have multiples screen connected) every time you run… | |
1169 | |
1170 ]]> | |
1171 </description> | |
1172 <guid>https://dataswamp.org/~solene/2020-05-20-wallpapers.html</guid> | |
1173 <link>https://dataswamp.org/~solene/2020-05-20-wallpapers.html</link> | |
1174 <pubDate>Wed, 20 May 2020 00:00:00 GMT</pubDate> | |
1175 </item> | |
1176 <item> | |
1177 <title>Communauté OpenBSD française</title> | |
1178 <description> | |
1179 <![CDATA[ | |
1180 <p>This article is exceptionnaly in French because it’s about a Fr… | |
1181 community.</p> | |
1182 | |
1183 <p>Bonjour à toutes et à tous.</p> | |
1184 | |
1185 <p>Exceptionnellement je publie un billet en français sur mon blog car … | |
1186 faire passer le mot concernant la communauté française obsd4a.</p> | |
1187 | |
1188 <p>Vous pourrez par exemple trouver la quasi intégralité de la FAQ Ope… | |
1189 traduite <a href="https://wiki.openbsd.fr.eu.org/doku.php/openbsd.org/fa… | |
1190 adresse</a></p> | |
1191 | |
1192 <p>Sur l’accueil du site vous pourrez trouver des liens vers le fo… | |
1193 blog, la mailing list et aussi les informations pour rejoindre le salon … | |
1194 (#obsd4* sur freenode)</p> | |
1195 | |
1196 <p><a href="https://openbsd.fr.eu.org/">https://openbsd.fr.eu.org/</a></… | |
1197 | |
1198 ]]> | |
1199 </description> | |
1200 <guid>https://dataswamp.org/~solene/2020-05-17-openbsdfr.html</guid> | |
1201 <link>https://dataswamp.org/~solene/2020-05-17-openbsdfr.html</link> | |
1202 <pubDate>Sun, 17 May 2020 00:00:00 GMT</pubDate> | |
1203 </item> | |
1204 <item> | |
1205 <title>New blog feature: Fediverse comments</title> | |
1206 <description> | |
1207 <![CDATA[ | |
1208 <p>I added a new feature to my blog today, when I post a new blog articl… | |
1209 will trigger my dedicated Mastodon user | |
1210 <a href="https://bsd.network/@solenepercent">https://bsd.network/@solene… | |
1211 publish a Toot so people can discuss the content there.</p> | |
1212 | |
1213 <p>Every article now contains a link to the toot if you want to discuss … | |
1214 article.</p> | |
1215 | |
1216 <p>This is not perfect but a good trade-off I think:</p> | |
1217 | |
1218 <ol> | |
1219 <li>the website remains static and light (nothing is included, only one … | |
1220 link per blog post)</li> | |
1221 <li>people who would like to discuss about it can proceed in a known pla… | |
1222 instead of writing reactions on reddit or other places without a chance… | |
1223 me to asnwer</li> | |
1224 <li>this is not relying on proprietary services</li> | |
1225 </ol> | |
1226 | |
1227 <p>Of course, if you want to give me feedback, I’m still happy to … | |
1228 or on IRC.</p> | |
1229 | |
1230 ]]> | |
1231 </description> | |
1232 <guid>https://dataswamp.org/~solene/2020-05-16-fediverse-comments.html… | |
1233 <link>https://dataswamp.org/~solene/2020-05-16-fediverse-comments.html… | |
1234 <pubDate>Sat, 16 May 2020 00:00:00 GMT</pubDate> | |
1235 </item> | |
1236 <item> | |
1237 <title>FreeBSD 12.1 on a laptop</title> | |
1238 <description> | |
1239 <![CDATA[ | |
1240 <h1 id="introduction">Introduction</h1> | |
1241 | |
1242 <p>I’m using FreeBSD again on a laptop for some reasons so expect … | |
1243 about FreeBSD here. This tutorial explain how to get a graphical desktop… | |
1244 FreeBSD 12.1.</p> | |
1245 | |
1246 <p>I used a Lenovo Thinkpad T480 for this tutorial.</p> | |
1247 | |
1248 <h1 id="intelgraphicshardwaresupport">Intel graphics hardware support</h… | |
1249 | |
1250 <p>If you have a recent Intel integrated graphic card (maybe less than 3… | |
1251 you have to install a package containing the driver:</p> | |
1252 | |
1253 <pre><code>pkg install drm-kmod | |
1254 </code></pre> | |
1255 | |
1256 <p>and you also have to tell the system the correct path of the module (… | |
1257 another i915kms.ko file exist):</p> | |
1258 | |
1259 <pre><code>sysrc kld_list="/boot/modules/i915kms.ko" | |
1260 </code></pre> | |
1261 | |
1262 <h1 id="chooseyourdesktopenvironnement">Choose your desktop environnemen… | |
1263 | |
1264 <h2 id="installxfce">Install Xfce</h2> | |
1265 | |
1266 <pre><code>pkg install xfce | |
1267 </code></pre> | |
1268 | |
1269 <p>Then in your user <code>~/.xsession</code> file you must append:</p> | |
1270 | |
1271 <pre><code>exec ck-launch-session startxfce4 | |
1272 </code></pre> | |
1273 | |
1274 <h2 id="installmate">Install MATE</h2> | |
1275 | |
1276 <pre><code>pkg install mate | |
1277 </code></pre> | |
1278 | |
1279 <p>Then in your user <code>~/.xsession</code> file you must append:</p> | |
1280 | |
1281 <pre><code>exec ck-launch-session mate-session | |
1282 </code></pre> | |
1283 | |
1284 <h2 id="installkde5">Install KDE5</h2> | |
1285 | |
1286 <pre><code>pkg install kde5 | |
1287 </code></pre> | |
1288 | |
1289 <p>Then in your user <code>~/.xsession</code> file you must append:</p> | |
1290 | |
1291 <pre><code>exec ck-launch-session startplasma-x11 | |
1292 </code></pre> | |
1293 | |
1294 <h1 id="settingupthegraphicalinterface">Setting up the graphical interfa… | |
1295 | |
1296 <p>You have to enable a few services to have a working graphical session… | |
1297 | |
1298 <ul> | |
1299 <li><strong>moused</strong> to get laptop mouse support</li> | |
1300 <li><strong>dbus</strong> for hald</li> | |
1301 <li><strong>hald</strong> for hardware detection</li> | |
1302 <li><strong>xdm</strong> for display manager where you log-in</li> | |
1303 </ul> | |
1304 | |
1305 <p>You can install them with the command:</p> | |
1306 | |
1307 <pre><code>pkg install xorg dbus hal xdm | |
1308 </code></pre> | |
1309 | |
1310 <p>Then you can enable the services at boot using the following commands… | |
1311 important:</p> | |
1312 | |
1313 <pre><code>sysrc moused_enable="yes" | |
1314 sysrc dbus_enable="yes" | |
1315 sysrc hald_enable="yes" | |
1316 sysrc xdm_enable="yes" | |
1317 </code></pre> | |
1318 | |
1319 <p>Reboot or start the services in the same order:</p> | |
1320 | |
1321 <pre><code>service moused start | |
1322 service dbus start | |
1323 service hald start | |
1324 service xdm start | |
1325 </code></pre> | |
1326 | |
1327 <p><strong>Note that xdm will be in qwerty layout.</strong></p> | |
1328 | |
1329 <h1 id="powermanagement">Power management</h1> | |
1330 | |
1331 <p>The installer should have prompted for the service powerd, if you did… | |
1332 activate it at this time, you can still enable it.</p> | |
1333 | |
1334 <p>Check if it’s running</p> | |
1335 | |
1336 <pre><code>service powerd status | |
1337 </code></pre> | |
1338 | |
1339 <p>Enabling</p> | |
1340 | |
1341 <pre><code>sysrc powerd_enable="yes" | |
1342 </code></pre> | |
1343 | |
1344 <p>Starting the service</p> | |
1345 | |
1346 <pre><code>service powerd start | |
1347 </code></pre> | |
1348 | |
1349 <h1 id="webcamsupport">Webcam support</h1> | |
1350 | |
1351 <p>If you have a webcam and want to use it, some configuration is requir… | |
1352 order to make it work.</p> | |
1353 | |
1354 <p>Install the package webcamd, it will displays all the instructions wr… | |
1355 below at the install step.</p> | |
1356 | |
1357 <pre><code>pkg install webcamd | |
1358 </code></pre> | |
1359 | |
1360 <p>From here, append this line to the file <code>/boot/loader.conf</code… | |
1361 support at boot time:</p> | |
1362 | |
1363 <pre><code>cuse_load="yes" | |
1364 </code></pre> | |
1365 | |
1366 <p>Add your user to the webcamd group so it will be able to use the devi… | |
1367 | |
1368 <pre><code>pw groupmod webcamd -m YOUR_USER | |
1369 </code></pre> | |
1370 | |
1371 <p>Enable webcamd at boot:</p> | |
1372 | |
1373 <pre><code>sysrc webcamd_enable="yes" | |
1374 </code></pre> | |
1375 | |
1376 <p>Now, you have to logout from your user for the group change to take p… | |
1377 if you want the webcamd daemon to work now and not wait next reboot:</p> | |
1378 | |
1379 <pre><code>kldload cuse | |
1380 service webcamd start | |
1381 service devd restart | |
1382 </code></pre> | |
1383 | |
1384 <p>You should have a /dev/video0 device now. You can test it easily with… | |
1385 package <code>pwcview</code>.</p> | |
1386 | |
1387 <h1 id="externalresources">External resources</h1> | |
1388 | |
1389 <p>I found this blog very interesting, I wish I found it before I strugg… | |
1390 all the configuration as it explains how to install FreeBSD on the exact… | |
1391 laptop. The author explains how to make a transparent lagg0 interface for | |
1392 switching from ethernet to wifi automatically with a failover pseudo dev… | |
1393 | |
1394 <p><a href="https://genneko.github.io/playing-with-bsd/hardware/freebsd-… | |
1395 | |
1396 ]]> | |
1397 </description> | |
1398 <guid>https://dataswamp.org/~solene/2020-05-11-freebsd-workstation.htm… | |
1399 <link>https://dataswamp.org/~solene/2020-05-11-freebsd-workstation.htm… | |
1400 <pubDate>Mon, 11 May 2020 00:00:00 GMT</pubDate> | |
1401 </item> | |
1402 <item> | |
1403 <title>Enable firefox dark mode</title> | |
1404 <description> | |
1405 <![CDATA[ | |
1406 <p>Some websites (like this one) now offers two differents themes: light… | |
1407 | |
1408 <p>Dark themes are proven to be better for the eyes and reduce battery u… | |
1409 mobiles devices because it requires less light to be displayed hence it | |
1410 requires less energy to display. The gain is optimal on OLED devices but… | |
1411 also works on classic LCD screens.</p> | |
1412 | |
1413 <p>While on Windows and MacOS there is a global setting for the user int… | |
1414 which you choose if your system is in light or dark mode, with that sett… | |
1415 being used by lot of applications supporting dark/light themes, on Linux… | |
1416 BSDs (and others) operating systems there is no such settings and your w… | |
1417 browser will keep displaying the light theme all the time.</p> | |
1418 | |
1419 <p>Hopefully, it can be fixed in firefox as <a href="https://developer.m… | |
1420 documentation</a>.</p> | |
1421 | |
1422 <p>To make it short, in the about:config special Firefox page, one can c… | |
1423 new key <code>ui.systemUsesDarkTheme</code> with a number value of <code… | |
1424 about:config page should turn dark immediately and then Firefox will try… | |
1425 dark themes when they are available.</p> | |
1426 | |
1427 <p>You should note that as explained in the mozilla documentation, if yo… | |
1428 key <code>privacy.resistFingerprinting</code> set to <code>true</code> t… | |
1429 It seems dark mode and privacy can’t belong together for some reas… | |
1430 | |
1431 <p>Many thanks to <a href="https://tilde.zone/@andinus">https://tilde.zo… | |
1432 pointed me this out after I overlooked that page and searched a long tim… | |
1433 no result how to make Firefox display website using the dark theme.</p> | |
1434 | |
1435 ]]> | |
1436 </description> | |
1437 <guid>https://dataswamp.org/~solene/2020-05-04-firefox-dark.html</guid> | |
1438 <link>https://dataswamp.org/~solene/2020-05-04-firefox-dark.html</link> | |
1439 <pubDate>Mon, 04 May 2020 00:00:00 GMT</pubDate> | |
1440 </item> | |
1441 <item> | |
1442 <title>Aggregate internet links with mlvpn</title> | |
1443 <description> | |
1444 <![CDATA[ | |
1445 <p>In this article I’ll explain how to aggregate internet access b… | |
1446 <strong>mlvpn</strong> software. I struggled a lot to set this up so I w… | |
1447 how-to.</p> | |
1448 | |
1449 <h2 id="pre-requisites">Pre-requisites</h2> | |
1450 | |
1451 <p><strong>mlvpn</strong> is meant to be used with DSL / fiber links, no… | |
1452 with variable bandwidth or packet loss.</p> | |
1453 | |
1454 <p><strong>mlvpn</strong> requires to be run on a server which will be t… | |
1455 access and on the client on which you want to aggregate the links, this … | |
1456 doing multiples VPN to the same remote server with a VPN per link, and | |
1457 aggregate them.</p> | |
1458 | |
1459 <p>Multi-wan roundrobin / load balancer doesn’t allow to stack ban… | |
1460 doesn’t require a remote server, depend on what you want to do, th… | |
1461 enough and mlvpn may not be required.</p> | |
1462 | |
1463 <p><strong>mlvpn</strong> should be OS agnostic between client / server … | |
1464 between two OpenBSD hosts, your setup may differ.</p> | |
1465 | |
1466 <h2 id="somenetworkdiagram">Some network diagram</h2> | |
1467 | |
1468 <p>Here is a simple network, the client has access to 2 ISP through two … | |
1469 interfaces.</p> | |
1470 | |
1471 <p>em0 and em1 will have to be on different rdomains (it’s a featu… | |
1472 routing tables).</p> | |
1473 | |
1474 <p>Let’s say the public ip of the server is 1.2.3.4.</p> | |
1475 | |
1476 <pre><code> [internet] | |
1477 ↑ | |
1478 | (public ip on em0) | |
1479 #-------------# | |
1480 | | | |
1481 | Server | | |
1482 | | | |
1483 #-------------# | |
1484 | | | |
1485 | | | |
1486 | | | |
1487 | | | |
1488 (internet) | | (internet) | |
1489 #-------------# #-------------# | |
1490 | | | | | |
1491 | ISP 1 | | ISP 2 | | |
1492 | | | | (you certainly don't control thos… | |
1493 #-------------# #-------------# | |
1494 | | | |
1495 | | | |
1496 (dsl1 via em0)| | (dsl1 via em1) | |
1497 #-------------# | |
1498 | | | |
1499 | Client | | |
1500 | | | |
1501 #-------------# | |
1502 </code></pre> | |
1503 | |
1504 <h2 id="networkconfiguration">Network configuration</h2> | |
1505 | |
1506 <p>As said previously, em0 and em1 must be on different rdomains, it can… | |
1507 done by adding <code>rdomain 1</code> and <code>rdomain 2</code> to the … | |
1508 | |
1509 <p>Example in <strong>/etc/hostname.em0</strong></p> | |
1510 | |
1511 <pre><code>rdomain 1 | |
1512 dhcp | |
1513 </code></pre> | |
1514 | |
1515 <h2 id="mlvpninstallation">mlvpn installation</h2> | |
1516 | |
1517 <p>On OpenBSD the installation is as easy as <code>pkg_add mlvpn</code> … | |
1518 from 6.7 because it required patching).</p> | |
1519 | |
1520 <h2 id="mlvpnconfiguration">mlvpn configuration</h2> | |
1521 | |
1522 <p>Once the network configuration is done on the client, there are 3 ste… | |
1523 to get aggregation working:</p> | |
1524 | |
1525 <ol> | |
1526 <li>mlvpn configuration on the server</li> | |
1527 <li>mlvpn configuration on the client</li> | |
1528 <li>activating NAT on the client</li> | |
1529 </ol> | |
1530 | |
1531 <h3 id="serverconfiguration">Server configuration</h3> | |
1532 | |
1533 <p>On the server we will use the UDP ports 5080 et 5081.</p> | |
1534 | |
1535 <p>Connections speed must be defined in bytes to allow <strong>mlvpn</st… | |
1536 balance the traffic over the links, this is really important.</p> | |
1537 | |
1538 <p>The line <code>bandwidth_upload = 1468006</code> is the maximum <stro… | |
1539 client</strong> on the specified link in bytes. If you have a download s… | |
1540 then you can choose a value of 1.4*1024*1024 => 1468006.</p> | |
1541 | |
1542 <p>The line <code>bandwidth_download = 102400</code> is the maximum <str… | |
1543 client</strong> on the specified link in bytes. If you have an upload sp… | |
1544 then you can choose a value of 100*1024 => 102400.</p> | |
1545 | |
1546 <p>The <strong>password</strong> line must be a very long random string,… | |
1547 between the client and the server.</p> | |
1548 | |
1549 <pre><code># config you don't need to change | |
1550 [general] | |
1551 statuscommand = "/etc/mlvpn/mlvpn_updown.sh" | |
1552 protocol = "tcp" | |
1553 loglevel = 4 | |
1554 mode = "server" | |
1555 tuntap = "tun" | |
1556 interface_name = "tun0" | |
1557 cleartext_data = 0 | |
1558 ip4 = "10.44.43.2/30" | |
1559 ip4_gateway = "10.44.43.1" | |
1560 | |
1561 # things you need to change | |
1562 password = "apoziecxjvpoxkvpzeoirjdskpoezroizepzdlpojfoiezjrzanzaoi… | |
1563 | |
1564 [dsl1] | |
1565 bindhost = "1.2.3.4" | |
1566 bindport = 5080 | |
1567 bandwidth_upload = 1468006 | |
1568 bandwidth_download = 102400 | |
1569 | |
1570 [dsl2] | |
1571 bindhost = "1.2.3.4" | |
1572 bindport = 5081 | |
1573 bandwidth_upload = 1468006 | |
1574 bandwidth_download = 102400 | |
1575 </code></pre> | |
1576 | |
1577 <h3 id="clientconfiguration">Client configuration</h3> | |
1578 | |
1579 <p>The <code>password</code> value must match the one on the server, the… | |
1580 <code>ip4_gateway</code> must be reversed compared to the server configu… | |
1581 in the following example).</p> | |
1582 | |
1583 <p>The <code>bindfib</code> lines must correspond to the according rdoma… | |
1584 interfaces.</p> | |
1585 | |
1586 <pre><code># config you don't need to change | |
1587 [general] | |
1588 statuscommand = "/etc/mlvpn/mlvpn_updown.sh" | |
1589 loglevel = 4 | |
1590 mode = "client" | |
1591 tuntap = "tun" | |
1592 interface_name = "tun0" | |
1593 ip4 = "10.44.43.1/30" | |
1594 ip4_gateway = "10.44.43.2" | |
1595 timeout = 30 | |
1596 cleartext_data = 0 | |
1597 | |
1598 password = "apoziecxjvpoxkvpzeoirjdskpoezroizepzdlpojfoiezjrzanzaoi… | |
1599 | |
1600 [dsl1] | |
1601 remotehost = "1.2.3.4" | |
1602 remoteport = 5080 | |
1603 bindfib = 1 | |
1604 | |
1605 [dsl2] | |
1606 remotehost = "1.2.3.4" | |
1607 remoteport = 5081 | |
1608 bindfib = 2 | |
1609 </code></pre> | |
1610 | |
1611 <h3 id="natconfigurationserverside">NAT configuration (server side)</h3> | |
1612 | |
1613 <p>As with every VPN you must enable packet forwarding and create a pf r… | |
1614 the NAT.</p> | |
1615 | |
1616 <p><strong>Enable forwarding</strong></p> | |
1617 | |
1618 <p>Add this line in <strong>/etc/sysctl.conf</strong>:</p> | |
1619 | |
1620 <pre><code>net.inet.ip.forwarding=1 | |
1621 </code></pre> | |
1622 | |
1623 <p>You can enable it now with <code>sysctl net.inet.ip.forwarding=1</cod… | |
1624 for a reboot.</p> | |
1625 | |
1626 <p>In pf.conf you must allow the UDP ports 5080 and 5081 on the public i… | |
1627 and enable nat, this can be done with the following lines in pf.conf but… | |
1628 should obviously adapt to your configuration.</p> | |
1629 | |
1630 <pre><code># allow NAT on VPN | |
1631 pass in on tun0 | |
1632 pass out quick on em0 from 10.44.43.0/30 to any nat-to em0 | |
1633 | |
1634 # allow mlvpn to be reachable | |
1635 pass in on egress inet proto udp from any to (egress) port 5080:5081 | |
1636 </code></pre> | |
1637 | |
1638 <h2 id="startmlvpn">Start mlvpn</h2> | |
1639 | |
1640 <p>On both server and client you can run mlvpn with rcctl:</p> | |
1641 | |
1642 <pre><code>rcctl enable mlvpn | |
1643 rcctl start mlvpn | |
1644 </code></pre> | |
1645 | |
1646 <p>You should see a new tun0 device on both systems and being able to pi… | |
1647 through tun0.</p> | |
1648 | |
1649 <p>Now, on the client <strong>you have to add a default gateway through … | |
1650 tunnel</strong> with the command <code>route add -net default 10.44.43.2… | |
1651 use others addresses). I still didn’t find how to automatize it pr… | |
1652 | |
1653 <p>Your client should now use both WAN links and being visible with the … | |
1654 server public IP address.</p> | |
1655 | |
1656 <p><strong>mlvpn</strong> can be used for more links, you only need to a… | |
1657 <strong>mlvpn</strong> also support IPv6 but I didn’t take time to… | |
1658 si if you are comfortable with ipv6 it may be easy to set up IPv6 with t… | |
1659 variables <code>ip6</code> and <code>ip6_gateway</code> in mlvpn.conf.</… | |
1660 | |
1661 ]]> | |
1662 </description> | |
1663 <guid>https://dataswamp.org/~solene/2020-03-28-mlvpn.html</guid> | |
1664 <link>https://dataswamp.org/~solene/2020-03-28-mlvpn.html</link> | |
1665 <pubDate>Sat, 28 Mar 2020 00:00:00 GMT</pubDate> | |
1666 </item> | |
1667 <item> | |
1668 <title>OpenBSD -current - Frequent asked questions</title> | |
1669 <description> | |
1670 <![CDATA[ | |
1671 <p>Hello, as there are so many questions about OpenBSD -current on IRC, … | |
1672 or reddit I’m writing this FAQ in hope it will help people.</p> | |
1673 | |
1674 <p>The official FAQ already contains answers about -current like <a href… | |
1675 -current and using snapshots</a> and | |
1676 <a href="https://www.openbsd.org/faq/faq5.html#Flavors">Building the sys… | |
1677 sources</a>.</p> | |
1678 | |
1679 <h2 id="whatisopenbsd-current">What is OpenBSD -current?</h2> | |
1680 | |
1681 <p>OpenBSD -current is the development version of OpenBSD. Lot of people… | |
1682 for everyday tasks.</p> | |
1683 | |
1684 <h2 id="howtoinstallopenbsd-current">How to install OpenBSD -current?</h… | |
1685 | |
1686 <p>OpenBSD -current refers to the last version built from sources obtain… | |
1687 CVS, however, it’s also possible to get a pre-built system (a snap… | |
1688 built and pushed on mirrors every 1 or 2 days.</p> | |
1689 | |
1690 <p>You can install OpenBSD -current by getting an installation media lik… | |
1691 but on the path /pub/OpenBSD/snapshots/ on the mirror.</p> | |
1692 | |
1693 <h2 id="howdoiupgradefrom-releaseto-current">How do I upgrade from -rele… | |
1694 | |
1695 <p>There are two ways to do so:</p> | |
1696 | |
1697 <ol> | |
1698 <li>Download bsd.rd file from the snapshots directory and boot it to upg… | |
1699 like for a -release to -release upgrade</li> | |
1700 <li>Run <code>sysupgrade -s</code> command as root, this will basically … | |
1701 under <code>/home/_sysupgrade</code> and boot on bsd.rd with an <code>a… | |
1702 config.</li> | |
1703 </ol> | |
1704 | |
1705 <h2 id="howdoiupgrademy-currentsnapshottoanewersnapshot">How do I upgrad… | |
1706 | |
1707 <p>Exactly the same process as going from -release to -current.</p> | |
1708 | |
1709 <h2 id="canidowngradetoa-releaseifiswitchto-current">Can I downgrade to … | |
1710 | |
1711 <p>No.</p> | |
1712 | |
1713 <h2 id="whatissuescaniexpectinopenbsd-current">What issues can I expect … | |
1714 | |
1715 <p>There are a few issues possibles that one can expect</p> | |
1716 | |
1717 <h3 id="outofsyncpackages">Out of sync packages</h3> | |
1718 | |
1719 <p>If a library get updated into the base system and you want to update … | |
1720 they won’t be installable until packages are rebuilt with that new… | |
1721 this usually takes 1 up to 3 days.</p> | |
1722 | |
1723 <p><strong>This only create issues in case you want to install a package… | |
1724 | |
1725 <p>The other way around, you can have an old snapshot and packages are n… | |
1726 installable because the libraries linked to by the packages are newer th… | |
1727 is available in your system, in this case you have to upgrade snapshot. … | |
1728 | |
1729 <h3 id="snapshotssetsaregettingupdatedonthemirror">Snapshots sets are ge… | |
1730 | |
1731 <p>If you download the sets on the mirror to update your -current versio… | |
1732 have an issue with the sha256 sum, this is because the mirror is getting | |
1733 updated and the sha256 file is the first to be transferred, so sets you … | |
1734 downloading are not the one the sha256 will compare.</p> | |
1735 | |
1736 <h3 id="unexpectedsystembreakage">Unexpected system breakage</h3> | |
1737 | |
1738 <p>Sometimes, very rarely (maybe 2 or 3 time in a year?), some snapshots… | |
1739 borked and will prevent system to boot or lead to regularly crashes. In … | |
1740 case, it’s important to report the issue with the <code>sendbug</c… | |
1741 | |
1742 <p>You can fix this by using an older snapshot from <a href="http://ftp.… | |
1743 server</a> and prevent this to happen by | |
1744 reading bugs@ mailing list before updating.</p> | |
1745 | |
1746 <h3 id="brokenpackage">Broken package</h3> | |
1747 | |
1748 <p>Sometimes, a package update will break it or break some others packag… | |
1749 is often quickly fixed on popular packages but in some niche packages yo… | |
1750 be the only one using it on -current and the only one who can report abo… | |
1751 | |
1752 <p>If you find breakage on something you use, it may be a good idea to r… | |
1753 problem on [email protected] mailing list if nobody did before. By doing… | |
1754 the issue will be fixed and next -release users will be able to install a | |
1755 working package.</p> | |
1756 | |
1757 <h2 id="is-currentstableenoughforaserveroraworkstation">Is -current stab… | |
1758 | |
1759 <p>It’s really up to you. Developers are all using -current and ar… | |
1760 break it, so the system should totally be usable for everyday use.</p> | |
1761 | |
1762 <p>What may be complicated on a server is keep updating it regularly and… | |
1763 issues requires troubleshooting (like major database upgrade which was m… | |
1764 a quirk).</p> | |
1765 | |
1766 <p>For a workstation I think it’s pretty safe as long as you can d… | |
1767 packages that can’t be installed until they are in sync.</p> | |
1768 | |
1769 ]]> | |
1770 </description> | |
1771 <guid>https://dataswamp.org/~solene/2020-03-27-openbsd-current.html</g… | |
1772 <link>https://dataswamp.org/~solene/2020-03-27-openbsd-current.html</l… | |
1773 <pubDate>Fri, 27 Mar 2020 00:00:00 GMT</pubDate> | |
1774 </item> | |
1775 | |
1776 </channel> | |
1777 </rss> |