|
|
voidlinux - sfeed_tests - sfeed tests and RSS and Atom files |
|
|
 |
git clone git://git.codemadness.org/sfeed_tests (git://git.codemadness.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
README |
|
|
 |
LICENSE |
|
|
|
--- |
|
|
|
voidlinux (77218B) |
|
|
|
--- |
|
|
|
1 <?xml version="1.0" encoding="utf-8"?> |
|
|
|
2 <feed xmlns="http://www.w3.org/2005/Atom"> |
|
|
|
3 |
|
|
|
4 <title>Void news</title> |
|
|
|
5 <subtitle>Follow Void Linux news</subtitle> |
|
|
|
6 <link href="https://voidlinux.org/"/> |
|
|
|
7 <link type="application/atom+xml" rel="self" href="https://voidlinux.org/atom.xml"/> |
|
|
|
8 <updated>2020-08-27T02:05:45+00:00</updated> |
|
|
|
9 <author> |
|
|
|
10 <name>Void Linux Team</name> |
|
|
|
11 </author> |
|
|
|
12 <id>https://voidlinux.org/</id> |
|
|
|
13 |
|
|
|
14 |
|
|
|
15 <entry> |
|
|
|
16 <title>Welcome New Contributors!</title> |
|
|
|
17 <link href="https://voidlinux.org/news/2020/05/new-contributors.html"/> |
|
|
|
18 <id>https://voidlinux.org/news/2020/05/new-contributors</id> |
|
|
|
19 <published>2020-05-01T00:00:00+00:00</published> |
|
|
|
20 <updated>2020-05-01T00:00:00+00:00</updated> |
|
|
|
21 <content type="xhtml"> |
|
|
|
22 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
23 <p><p>The Void project is pleased to welcome onboard 3 new members today.</p> |
|
|
|
24 |
|
|
|
25 <p>Joining us to work on packages is <code class="language-plaintext highlighter-rouge">@abenson</code>.</p> |
|
|
|
26 |
|
|
|
27 <p>Joining us to advance the docs site are <code class="language-plaintext highlighter-rouge">@flexibeast</code> and <code class="language-plaintext highlighter-rouge">@ericonr</code>.</p> |
|
|
|
28 |
|
|
|
29 <p>Interested in seeing your name in a future update here? Read our |
|
|
|
30 <a href="/contribute/">Contributing Page</a> and join us today!</p> |
|
|
|
31 </p> |
|
|
|
32 </div> |
|
|
|
33 </content> |
|
|
|
34 </entry> |
|
|
|
35 |
|
|
|
36 <entry> |
|
|
|
37 <title>Some Context for Recent Events</title> |
|
|
|
38 <link href="https://voidlinux.org/news/2020/04/some-context.html"/> |
|
|
|
39 <id>https://voidlinux.org/news/2020/04/some-context</id> |
|
|
|
40 <published>2020-04-24T00:00:00+00:00</published> |
|
|
|
41 <updated>2020-04-24T00:00:00+00:00</updated> |
|
|
|
42 <content type="xhtml"> |
|
|
|
43 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
44 <p><h3 id="notice">Notice</h3> |
|
|
|
45 |
|
|
|
46 <p>This article is being actively edited and amended for both grammar and |
|
|
|
47 to answer new questions as they come up.</p> |
|
|
|
48 |
|
|
|
49 <ul> |
|
|
|
50 <li> |
|
|
|
51 <p>12:05 PST - Feedback from IRC for English, clarification of the |
|
|
|
52 timeline of xtraeme’s resignation and subsequent ban.</p> |
|
|
|
53 </li> |
|
|
|
54 <li> |
|
|
|
55 <p>12:17 PST - Correct innaccuracies in the musl section. My |
|
|
|
56 understanding of the bug was incorrect (@the-maldridge).</p> |
|
|
|
57 </li> |
|
|
|
58 <li> |
|
|
|
59 <p>2020-04-27 - Correct xtraeme’s pronouns, spelling/grammar cleanup</p> |
|
|
|
60 </li> |
|
|
|
61 </ul> |
|
|
|
62 |
|
|
|
63 <hr /> |
|
|
|
64 |
|
|
|
65 <p>First a disclaimer. This is written from my point of view |
|
|
|
66 (@the-maldridge), and while it may contain views and opinions of the |
|
|
|
67 project, you should assume these are my views. This is posted here |
|
|
|
68 and in the official name-space of Void Linux as questions have asked |
|
|
|
69 that demand answers. I hope that in this post I can provide some |
|
|
|
70 answers.</p> |
|
|
|
71 |
|
|
|
72 <p>To answer the immediate question of the day, Juan RP (xtraeme) has |
|
|
|
73 chosen to leave the Void Linux project.</p> |
|
|
|
74 |
|
|
|
75 <p>There will be no noticeable disruption to users, and the project will |
|
|
|
76 continue as before. We appreciate your support of Void and continuing |
|
|
|
77 to advance the state of the void. To any maintainer or contributor |
|
|
|
78 that was on the receiving end of one of xtraeme’s recent posts, I |
|
|
|
79 would like to extend the my apologies for this and those of the |
|
|
|
80 project. Void is a project we intend all to be involved in, and that |
|
|
|
81 means treating others with respect.</p> |
|
|
|
82 |
|
|
|
83 <p>I’d now like to answer a few questions that came to my mind as this |
|
|
|
84 situation developed. I’m on the West coast of the US, so I woke up to |
|
|
|
85 a lot of this already in progress, but I also have a lot more |
|
|
|
86 historical context than what is easily find-able. Keep in mind that |
|
|
|
87 out of respect for Juan’s privacy, I am deliberately not revealing |
|
|
|
88 some information they chose to reveal to project maintainers. They |
|
|
|
89 may have left a sour taste with me, but they still have a right to |
|
|
|
90 privacy like anyone else, and if they wish to share details of their |
|
|
|
91 personal life, that is their decision and theirs alone.</p> |
|
|
|
92 |
|
|
|
93 <h2 id="how-will-the-project-survive-without-xtraeme">How will the project survive without xtraeme?</h2> |
|
|
|
94 |
|
|
|
95 <p>Short: Like we have before.</p> |
|
|
|
96 |
|
|
|
97 <p>Long: This is not the first time xtraeme has left Void. I wrote about |
|
|
|
98 this on my personal site back in 2018, and you can read that full |
|
|
|
99 <a href="https://michaelwashere.net/post/2018-11-28-enobdfl/">article</a> over |
|
|
|
100 there. Running a project like Void means ensuring that there is no |
|
|
|
101 single point of failure. We have a healthy pool of developers, and |
|
|
|
102 short of perhaps some folks wanting to take some time off to recover |
|
|
|
103 from the events of the day, I fully expect the project will continue |
|
|
|
104 as it has.</p> |
|
|
|
105 |
|
|
|
106 <h2 id="the-thread-on-github-mentioned-xtraeme-has-broken-things-in-the-past">The thread on GitHub mentioned xtraeme has broken things in the past?</h2> |
|
|
|
107 |
|
|
|
108 <p>Being rolling release and not breaking things involves a lot of |
|
|
|
109 coordination. Some of this coordination is baked into the software. |
|
|
|
110 For example, you can’t update your system while large rebuilds are in |
|
|
|
111 progress because that would install incompatible versions of some |
|
|
|
112 libraries (we’re working on improving the user experience around this |
|
|
|
113 though).</p> |
|
|
|
114 |
|
|
|
115 <p>Some of the recent changes that come to mind in no particular order:</p> |
|
|
|
116 |
|
|
|
117 <ul> |
|
|
|
118 <li> |
|
|
|
119 <p>Pushing a musl update with no coordination. For context around |
|
|
|
120 the change, see <a href="http://musl.libc.org/time64.html">this link</a>.</p> |
|
|
|
121 |
|
|
|
122 <p>This is something we’re planning a lot of work around because |
|
|
|
123 updating the C library will involve recompiling almost everything |
|
|
|
124 on musl against it. Normally there’s ABI compatibility, but for |
|
|
|
125 reasons far beyond the scope of this article, musl is different. |
|
|
|
126 There is an ongoing dialog in #musl on freenode with some Alpine |
|
|
|
127 devs as well trying to determine the best way to do this upgrade.</p> |
|
|
|
128 |
|
|
|
129 <p>Updated: The original version referenced 1.2 of musl. This was |
|
|
|
130 incorrect as the interactions that caused this problem are not |
|
|
|
131 unique to this version.</p> |
|
|
|
132 </li> |
|
|
|
133 <li> |
|
|
|
134 <p>Pushing a glibc update with no coordination. We saw the trouble |
|
|
|
135 that befell Arch when they did a glibc update that temporarily |
|
|
|
136 broke bash. We’d hoped to avoid this same fate, but while |
|
|
|
137 discussing the change, the package was merged without discussion.</p> |
|
|
|
138 </li> |
|
|
|
139 <li> |
|
|
|
140 <p>General problems related to single points of failure. Though |
|
|
|
141 this is not an issue now, there was a time where xtraeme was the |
|
|
|
142 single point of failure. Through their personal inaction we lost |
|
|
|
143 the voidlinux.eu domain. We had a lot of trouble getting the |
|
|
|
144 project back into a stable state, but through a significant amount |
|
|
|
145 of effort, we recovered. Though newer maintainers probably don’t |
|
|
|
146 notice this, there are a lot of older developers and users who |
|
|
|
147 remember when xtraeme was all that Void was. The project has |
|
|
|
148 grown significantly since then, and this is a change I’m not sure |
|
|
|
149 xtraeme ever fully adjusted to.</p> |
|
|
|
150 </li> |
|
|
|
151 </ul> |
|
|
|
152 |
|
|
|
153 <h2 id="i-feel-like-youre-not-telling-a-lot-of-stuff-where-can-i-get-that-context">I feel like you’re not telling a lot of stuff, where can I get that context?</h2> |
|
|
|
154 |
|
|
|
155 <p>For better or for worse, a lot of discussions happen behind closed |
|
|
|
156 doors. We don’t feel it is our place as Void Linux to air the dirty |
|
|
|
157 laundry of maintainers and contributors. What goes on in your |
|
|
|
158 personal life outside of Void is not our concern, and we have no right |
|
|
|
159 to tell others your secrets. That being said, all factors are |
|
|
|
160 considered when evaluating granting or removing a commit bit. Note |
|
|
|
161 that according to <a href="https://infradocs.voidlinux.org">InfraDocs</a> almost |
|
|
|
162 all of the initial discussion of onboarding and offboarding |
|
|
|
163 maintainers happens on private forums. These discussions are pretty |
|
|
|
164 mundane, usually along the lines of “have they broken anything?” or |
|
|
|
165 “wow, this person does a lot of work really fast”. The discussions |
|
|
|
166 around xtraeme unfortunately have been of the form “their conduct |
|
|
|
167 towards others really isn’t great, but I’m not comfortable approaching |
|
|
|
168 them.”</p> |
|
|
|
169 |
|
|
|
170 <h2 id="does-void-profit-from-xtraemes-work">Does Void profit from xtraeme’s work?</h2> |
|
|
|
171 |
|
|
|
172 <p>While Void and its users <em>benefit</em> from the work of all developers, |
|
|
|
173 including xtraeme, no profit is derived from this work.</p> |
|
|
|
174 |
|
|
|
175 <p>Void is an Open Source project, it always has been and will continue |
|
|
|
176 to be one. You are free to use the code within the confines of the |
|
|
|
177 license. Since Void is permissively licensed, you are welcome to use |
|
|
|
178 it commercially as well, though please be a good citizen of the FOSS |
|
|
|
179 community and upstream your patches when practical.</p> |
|
|
|
180 |
|
|
|
181 <p>Should xtraeme wish to change the license of their copy of XBPS, we |
|
|
|
182 will evaluate the situation.</p> |
|
|
|
183 |
|
|
|
184 <p>Void does not accept donations. We appreciate the efforts of those |
|
|
|
185 that reach out from time to time wishing to support the project |
|
|
|
186 financially, but our expenses are minimal. If you want to contribute, |
|
|
|
187 you can help by updating packages, reviewing issues, or generally |
|
|
|
188 being a part of the community. If an individual maintainer chooses to |
|
|
|
189 solicit or accept a donation for their work, this is done separately |
|
|
|
190 from the project. International tax law is a complicated beast, and |
|
|
|
191 as a project we’re not comfortable accepting donations until we have |
|
|
|
192 the infrastructure in place to show where the money goes, and provide |
|
|
|
193 you with appropriate documentation.</p> |
|
|
|
194 |
|
|
|
195 <h2 id="did-xtraeme-resign-or-were-they-banned">Did xtraeme resign, or were they banned?</h2> |
|
|
|
196 |
|
|
|
197 <p>Timing is everything. The ticket which expressed xtraeme’s desire to |
|
|
|
198 resign was opened first, then over the next hour they lashed out at |
|
|
|
199 several project members. The resignation was processed per their |
|
|
|
200 wishes, and per their conduct torwards others, a ban was applied at |
|
|
|
201 the organization level.</p> |
|
|
|
202 |
|
|
|
203 <h2 id="i-want-to-talk-to-someone-about-this">I want to talk to someone about this.</h2> |
|
|
|
204 |
|
|
|
205 <p>Sure, we live in interesting times, and talking to others is a great |
|
|
|
206 way to cope with unexpected change. Feel free to chat on Void’s |
|
|
|
207 official IRC channel <code class="language-plaintext highlighter-rouge">#voidlinux</code> on freenode. You can also find us |
|
|
|
208 at <code class="language-plaintext highlighter-rouge">r/voidlinux</code> on Reddit. We also maintain a mailing list which you |
|
|
|
209 can find on the website.</p> |
|
|
|
210 |
|
|
|
211 <h1 id="what-happens-now">What happens now?</h1> |
|
|
|
212 |
|
|
|
213 <p>Remember these are my words (@the-maldridge) not necessarily those of |
|
|
|
214 the project.</p> |
|
|
|
215 |
|
|
|
216 <p>This is a really uncomfortable place to be in. None of us want to |
|
|
|
217 start a Twitter war, and at the end of the day, Void is about working |
|
|
|
218 on software we all believe in.</p> |
|
|
|
219 |
|
|
|
220 <p>Void will continue. We do appreciate the work that xtraeme did to get |
|
|
|
221 us here, projects like Void need someone to have an idea and run with |
|
|
|
222 it, then convince others to join you. xtraeme was that early person |
|
|
|
223 with an idea, there’s no denying this. It’s sad that this |
|
|
|
224 collaboration had to end this way. I would be lying if I said this |
|
|
|
225 was a surprise to me, but I truly did not in my wildest imagination |
|
|
|
226 expect it to play out like this.</p> |
|
|
|
227 |
|
|
|
228 <h3 id="enough-of-politics-diplomacy-and-speaking-as-a-project-what-do-you-think-about-all-this">Enough of Politics, Diplomacy, and speaking as a project, what do YOU think about all this?</h3> |
|
|
|
229 |
|
|
|
230 <p>The last 8 months since xtraeme showed up again have been a roller |
|
|
|
231 coaster. It’s been a stressful time and I’ve come very close to |
|
|
|
232 leaving the project several times. I’m one of a handful of people who |
|
|
|
233 directly maintain the day to day infrastructure that builds and serves |
|
|
|
234 Void, and that made me the receiving end of more than one rant. I’m |
|
|
|
235 going to take a step back and think about if I want to continue this |
|
|
|
236 project or work on one of my own more. When I started working on Void |
|
|
|
237 I was in college and employed by a university that was running Void |
|
|
|
238 internally (sadly, they no longer do). I had a lot more free time |
|
|
|
239 then, and Void was a lot less stressful to work on.</p> |
|
|
|
240 |
|
|
|
241 <p>xtraeme is a talented C developer; there is no denying this, and I |
|
|
|
242 respect their work on XBPS. It is certainly not without bugs, but |
|
|
|
243 no one’s code is. I am personally upset that this is how this had to |
|
|
|
244 end. I expected at some point xtraeme would part ways with the |
|
|
|
245 project, as their goals and those of the project have diverged. I am |
|
|
|
246 upset that they felt the need to take out their frustration on |
|
|
|
247 contributors and maintainers, and that is why the decision was made to |
|
|
|
248 ban them from the organization.</p> |
|
|
|
249 </p> |
|
|
|
250 </div> |
|
|
|
251 </content> |
|
|
|
252 </entry> |
|
|
|
253 |
|
|
|
254 <entry> |
|
|
|
255 <title>OpenSSH 8.2 update requires restart of sshd</title> |
|
|
|
256 <link href="https://voidlinux.org/news/2020/02/openssh-8.2.html"/> |
|
|
|
257 <id>https://voidlinux.org/news/2020/02/openssh-8.2</id> |
|
|
|
258 <published>2020-02-20T00:00:00+00:00</published> |
|
|
|
259 <updated>2020-02-20T00:00:00+00:00</updated> |
|
|
|
260 <content type="xhtml"> |
|
|
|
261 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
262 <p><p>With the OpenSSH update to 8.2 you <em>must</em> restart the |
|
|
|
263 <code class="language-plaintext highlighter-rouge">sshd</code> service, or it will not accept new ssh connections.</p> |
|
|
|
264 |
|
|
|
265 <p>XBPS will print a notice about this when updating OpenSSH, |
|
|
|
266 but we hope by posting this notice we will reach the |
|
|
|
267 users who don’t read the output of regular updates |
|
|
|
268 and avoid or minimize complications due to the update.</p> |
|
|
|
269 |
|
|
|
270 <p>We considered restarting sshd automatically on update, |
|
|
|
271 but the policy of not restarting, enabling or otherwise |
|
|
|
272 interact with services during updates stands.</p> |
|
|
|
273 </p> |
|
|
|
274 </div> |
|
|
|
275 </content> |
|
|
|
276 </entry> |
|
|
|
277 |
|
|
|
278 <entry> |
|
|
|
279 <title>News about XBPS</title> |
|
|
|
280 <link href="https://voidlinux.org/news/2020/01/xbps-news.html"/> |
|
|
|
281 <id>https://voidlinux.org/news/2020/01/xbps-news</id> |
|
|
|
282 <published>2020-01-30T00:00:00+00:00</published> |
|
|
|
283 <updated>2020-01-30T00:00:00+00:00</updated> |
|
|
|
284 <content type="xhtml"> |
|
|
|
285 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
286 <p><p>XBPS 0.58 was just released, with many new features and a lot of improvements. |
|
|
|
287 Since the last post was for 0.54, this post includes all changes and some highlights since the last post.</p> |
|
|
|
288 |
|
|
|
289 <h2 id="highlights">Highlights</h2> |
|
|
|
290 |
|
|
|
291 <h3 id="performance-improvements">Performance improvements</h3> |
|
|
|
292 |
|
|
|
293 <p>Some users might have noticed that removing the <code class="language-plaintext highlighter-rouge">plasma-desktop</code> was very time consuming because of dependency cycles. |
|
|
|
294 The dependency resolution algorithm has been completely rewritten and is now able to resolve the dependencies of <code class="language-plaintext highlighter-rouge">plasma-desktop</code> within seconds.</p> |
|
|
|
295 |
|
|
|
296 <p>See the <a href="https://github.com/void-linux/xbps/pull/78">pull request void-linux/xbps#78</a> if you are interested in what changed.</p> |
|
|
|
297 |
|
|
|
298 <p>The <code class="language-plaintext highlighter-rouge">--fulldeptree</code> flag of <a href="https://man.voidlinux.org/xbps-query.1">xbps-query(1)</a> in combination with <code class="language-plaintext highlighter-rouge">-x</code> or <code class="language-plaintext highlighter-rouge">-X</code> for dependencies and reverse dependencies respectively has been improved and will now be 50x faster in the worst case scenario.</p> |
|
|
|
299 |
|
|
|
300 <h3 id="ignorepkg-configuration-option"><code class="language-plaintext highlighter-rouge">ignorepkg</code> configuration option</h3> |
|
|
|
301 |
|
|
|
302 <p>Many users tried to get rid of the default kernel or some other <code class="language-plaintext highlighter-rouge">base-system</code> requirement. |
|
|
|
303 For this we’ve added a new configuration keyword: <code class="language-plaintext highlighter-rouge">ignorepkg</code>.</p> |
|
|
|
304 |
|
|
|
305 <p>With this new keyword you can ignore packages that are pulled in by other packages as runtime dependencies.</p> |
|
|
|
306 |
|
|
|
307 <p>As example you can add <code class="language-plaintext highlighter-rouge">linux-firmware-amd</code> as ignored package and then uninstall the package:</p> |
|
|
|
308 |
|
|
|
309 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># echo "ignorepkg=linux-firmware-amd" > /etc/xbps.d/10-ignore.conf |
|
|
|
310 # xbps-remove linux-firmware-amd |
|
|
|
311 </code></pre></div></div> |
|
|
|
312 |
|
|
|
313 <p>This works for any package, i.e. being able to remove <code class="language-plaintext highlighter-rouge">linux4.19</code> while keeping the <code class="language-plaintext highlighter-rouge">linux</code> meta package. |
|
|
|
314 Or removing the <code class="language-plaintext highlighter-rouge">linux</code> meta package itself and installing only the kernel series you like to use yourself.</p> |
|
|
|
315 |
|
|
|
316 <h3 id="noextract-configuration-option"><code class="language-plaintext highlighter-rouge">noextract</code> configuration option</h3> |
|
|
|
317 |
|
|
|
318 <p>Another useful new feature is the new <code class="language-plaintext highlighter-rouge">noextract</code>, it allows to specify patterns of |
|
|
|
319 files that should not be extracted when installing or updating packages.</p> |
|
|
|
320 |
|
|
|
321 <p>This allows as example to skip extracting translations the users are not interesting in, |
|
|
|
322 allowing to reduce the installation size.</p> |
|
|
|
323 |
|
|
|
324 <p>We plan to make use of it in <code class="language-plaintext highlighter-rouge">xbps-src</code> to cut down the time required to install build dependencies.</p> |
|
|
|
325 |
|
|
|
326 <h2 id="download-only-flag">Download only flag</h2> |
|
|
|
327 |
|
|
|
328 <p>A new flag was added to <a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a> which allows to |
|
|
|
329 download packages and its dependencies without installing them.</p> |
|
|
|
330 |
|
|
|
331 <h2 id="changelog">Changelog</h2> |
|
|
|
332 |
|
|
|
333 <h3 id="xbps-058-2020-01-30">xbps-0.58 (2020-01-30):</h3> |
|
|
|
334 |
|
|
|
335 <ul> |
|
|
|
336 <li> |
|
|
|
337 <p>libfetch: fix <a href="https://www.freebsd.org/security/advisories/FreeBSD-SA-20:01.libfetch.asc">CVE-2020-7450</a>; from FreeBSD. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
338 </li> |
|
|
|
339 <li> |
|
|
|
340 <p><a href="https://man.voidlinux.org/xbps-query.1">xbps-query(1)</a>, <a href="https://man.voidlinux.org/xbps-remove.1">xbps-remove(1)</a>: improved detection |
|
|
|
341 of orphans, needing multiple iterations to collect |
|
|
|
342 all of them in a single transaction. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
343 </li> |
|
|
|
344 <li> |
|
|
|
345 <p><a href="https://man.voidlinux.org/xbps-checkvers.1">xbps-checkvers(1)</a>: added <code class="language-plaintext highlighter-rouge">-e, --removed</code>. |
|
|
|
346 To list removed templates in srcpkgs. <a href="https://github.com/Chocimier">[Chocimier]</a></p> |
|
|
|
347 </li> |
|
|
|
348 <li> |
|
|
|
349 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: improved <code class="language-plaintext highlighter-rouge">-D, --download-only</code>. |
|
|
|
350 This now can be used to download all required |
|
|
|
351 binary packages of the target pkg without the need |
|
|
|
352 to have write permission to the <code class="language-plaintext highlighter-rouge">rootdir</code>.</p> |
|
|
|
353 |
|
|
|
354 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ xbps-install -c $PWD/cachedir -Dy xbps |
|
|
|
355 </code></pre></div> </div> |
|
|
|
356 |
|
|
|
357 <p>NOTE: <code class="language-plaintext highlighter-rouge">-c, --cachedir</code> must be specified as absolute |
|
|
|
358 pathname, otherwise it will treat it as relative to |
|
|
|
359 rootdir. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
360 </li> |
|
|
|
361 <li> |
|
|
|
362 <p><a href="https://man.voidlinux.org/xbps-fetch.1">xbps-fetch(1)</a>: added <code class="language-plaintext highlighter-rouge">-s</code> to print sha256sums of |
|
|
|
363 downloaded files. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
364 </li> |
|
|
|
365 <li> |
|
|
|
366 <p>configure: re-add <code class="language-plaintext highlighter-rouge">--enable-debug</code> and enable it |
|
|
|
367 by default. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
368 </li> |
|
|
|
369 <li> |
|
|
|
370 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: ignore indirect reverse dependencies |
|
|
|
371 while updating xbps. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
372 </li> |
|
|
|
373 <li> |
|
|
|
374 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: added <code class="language-plaintext highlighter-rouge">--reproducible</code> long option. |
|
|
|
375 If set, enables reproducible mode in pkgdb. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
376 </li> |
|
|
|
377 <li> |
|
|
|
378 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: don’t prompt if all packages in |
|
|
|
379 the transaction are on hold. [Mohamad Barbar]</p> |
|
|
|
380 </li> |
|
|
|
381 <li> |
|
|
|
382 <p><a href="https://man.voidlinux.org/xbps-rindex.1">xbps-rindex(1)</a>: stop adding the “build-date” pkg obj. |
|
|
|
383 Contained wrong info and did not provide enough value |
|
|
|
384 to be useful; another step towards reproducibility. |
|
|
|
385 <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
386 </li> |
|
|
|
387 <li> |
|
|
|
388 <p><a href="https://man.voidlinux.org/xbps-create.1">xbps-create(1)</a>: always sanitize gathered symlinks. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
389 </li> |
|
|
|
390 <li> |
|
|
|
391 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: do not silently update <code class="language-plaintext highlighter-rouge">xbps</code> on |
|
|
|
392 any install/update transaction. If there’s a new update |
|
|
|
393 for the <code class="language-plaintext highlighter-rouge">xbps</code> package, this needs to be explicitely |
|
|
|
394 declared as a single transaction, i.e:</p> |
|
|
|
395 |
|
|
|
396 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> $ xbps-install -u xbps |
|
|
|
397 </code></pre></div> </div> |
|
|
|
398 |
|
|
|
399 <p>Otherwise it will return <code class="language-plaintext highlighter-rouge">EBUSY</code> (16), making this a proper |
|
|
|
400 error code to diagnose what failed. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
401 </li> |
|
|
|
402 <li> |
|
|
|
403 <p><a href="https://man.voidlinux.org/xbps.d.5">xbps.d(5)</a>: new ‘noextract’ configuration option, |
|
|
|
404 to skip extracting files matching a pattern. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
405 </li> |
|
|
|
406 <li> |
|
|
|
407 <p><a href="https://man.voidlinux.org/xbps.d.5">xbps.d(5)</a>: autodetected ‘architecture’ (glibc or musl) |
|
|
|
408 at compile-time on linux systems. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
409 </li> |
|
|
|
410 <li> |
|
|
|
411 <p>configure: added <code class="language-plaintext highlighter-rouge">--enable-lto</code> and don’t enable it |
|
|
|
412 by default. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
413 </li> |
|
|
|
414 <li> |
|
|
|
415 <p>Multiple bugs with packages on hold were fixed. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
416 </li> |
|
|
|
417 <li> |
|
|
|
418 <p><a href="https://man.voidlinux.org/xbps-uchroot.1">xbps-uchroot(1)</a>, <a href="https://man.voidlinux.org/xbps-uunshare.1">xbps-uunshare(1)</a>: document end of |
|
|
|
419 options argument. <a href="https://github.com/sgn">[Doan Tran Cong Danh]</a></p> |
|
|
|
420 </li> |
|
|
|
421 <li> |
|
|
|
422 <p><a href="https://man.voidlinux.org/xbps-alternatives.1">xbps-alternatives(1)</a>: prune obsolete alternatives groups. <a href="https://github.com/q66">[q66]</a></p> |
|
|
|
423 </li> |
|
|
|
424 </ul> |
|
|
|
425 |
|
|
|
426 <p>17 new test cases were added in this release, 6 people |
|
|
|
427 were involved: Juan RP, Piotr Wójcik, Duncan Overbruck, |
|
|
|
428 Doan Tran Cong Danh, Mohamad Barbar, q66.</p> |
|
|
|
429 |
|
|
|
430 <h3 id="xbps-0571-2019-10-27">xbps-0.57.1 (2019-10-27):</h3> |
|
|
|
431 |
|
|
|
432 <ul> |
|
|
|
433 <li> |
|
|
|
434 <p>Multiple changes and improvements to the transaction |
|
|
|
435 fetch code. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
436 </li> |
|
|
|
437 <li> |
|
|
|
438 <p>Verify revision in <code class="language-plaintext highlighter-rouge">xbps_pkg_{version,revision,name}</code>, |
|
|
|
439 to handle properly package names that use <code class="language-plaintext highlighter-rouge">_</code>. |
|
|
|
440 <a href="https://github.com/Chocimier">[Chocimier]</a></p> |
|
|
|
441 </li> |
|
|
|
442 <li> |
|
|
|
443 <p><a href="https://man.voidlinux.org/xbps-checkvers.1">xbps-checkvers(1)</a>: fixed a compile-time warning with glibc. |
|
|
|
444 <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
445 </li> |
|
|
|
446 <li> |
|
|
|
447 <p><a href="https://man.voidlinux.org/xbps-alternatives.1">xbps-alternatives(1)</a>: check if alternative is a |
|
|
|
448 symlink before removing it. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
449 </li> |
|
|
|
450 <li> |
|
|
|
451 <p>Try to find a usable shell instead of using <code class="language-plaintext highlighter-rouge">/bin/sh</code> |
|
|
|
452 when executing package scripts. <a href="https://github.com/Gottox">[Gottox]</a></p> |
|
|
|
453 </li> |
|
|
|
454 <li> |
|
|
|
455 <p><a href="https://man.voidlinux.org/xbps-rindex.1">xbps-rindex(1)</a>: better error handling for writing repodata |
|
|
|
456 archives. <a href="https://github.com/Chocimier">[Chocimier]</a></p> |
|
|
|
457 </li> |
|
|
|
458 <li> |
|
|
|
459 <p><a href="https://man.voidlinux.org/xbps-create.1">xbps-create(1)</a>: better error handling for writing archives. |
|
|
|
460 <a href="https://github.com/Chocimier">[Chocimier]</a></p> |
|
|
|
461 </li> |
|
|
|
462 </ul> |
|
|
|
463 |
|
|
|
464 <h3 id="xbps-057-2019-08-06">xbps-0.57 (2019-08-06):</h3> |
|
|
|
465 |
|
|
|
466 <ul> |
|
|
|
467 <li> |
|
|
|
468 <p>xbps now builds with tcc and pcc. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
469 </li> |
|
|
|
470 <li> |
|
|
|
471 <p>xbps now uses the transactional file checks for package removals, |
|
|
|
472 this fixes issues where xbps removes wrong files, if a package |
|
|
|
473 replaces another packages with the same files. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
474 </li> |
|
|
|
475 <li> |
|
|
|
476 <p><a href="https://man.voidlinux.org/xbps-remove.1">xbps-remove(1)</a>: skip the transaction if no packages are found. |
|
|
|
477 This restores the behaviour of xbps prior to 0.54. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
478 </li> |
|
|
|
479 <li> |
|
|
|
480 <p><a href="https://man.voidlinux.org/xbps-remove.1">xbps-remove(1)</a>: fix <code class="language-plaintext highlighter-rouge">-o, --remove-orphans</code> not removing |
|
|
|
481 all orphaned packages. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
482 </li> |
|
|
|
483 <li> |
|
|
|
484 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: if specified packages with <code class="language-plaintext highlighter-rouge">-u, --update</code> are |
|
|
|
485 up to date return EEXIST. <a href="https://github.com/jnbr">[jnbr]</a></p> |
|
|
|
486 </li> |
|
|
|
487 <li> |
|
|
|
488 <p><a href="https://man.voidlinux.org/xbps-query.1">xbps-query(1)</a>: restores old behaviour of <code class="language-plaintext highlighter-rouge">--fulldeptree</code>, |
|
|
|
489 to not list the package itself. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
490 </li> |
|
|
|
491 <li> |
|
|
|
492 <p>Updated zsh completions. <a href="https://github.com/leah2">[leah2]</a></p> |
|
|
|
493 </li> |
|
|
|
494 </ul> |
|
|
|
495 |
|
|
|
496 <h3 id="xbps-056-2019-06-24">xbps-0.56 (2019-06-24):</h3> |
|
|
|
497 |
|
|
|
498 <ul> |
|
|
|
499 <li> |
|
|
|
500 <p>Fixed <code class="language-plaintext highlighter-rouge">xbps_transaction_prepare()</code> always returning |
|
|
|
501 ENXIO because the transaction dictionary wasn’t |
|
|
|
502 initialized before first use. Regression from 0.54. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
503 </li> |
|
|
|
504 <li> |
|
|
|
505 <p>Fixed unlocking the pkgdb via <code class="language-plaintext highlighter-rouge">xbps_end()</code>. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
506 </li> |
|
|
|
507 <li> |
|
|
|
508 <p>Fixed flushing pkgdb to storage and re-reading it unnecessarily, |
|
|
|
509 this affected <a href="https://man.voidlinux.org/xbps-alternatives.1">xbps-alternatives(1)</a>, |
|
|
|
510 <a href="https://man.voidlinux.org/xbps-pkgdb.1">xbps-pkgdb(1)</a> and |
|
|
|
511 <a href="https://man.voidlinux.org/xbps-reconfigure.1">xbps-reconfigure(1)</a>. |
|
|
|
512 <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
513 </li> |
|
|
|
514 <li> |
|
|
|
515 <p>xbps now allows to remove an installed package that was |
|
|
|
516 added to the ignored packages list with <code class="language-plaintext highlighter-rouge">ignorepkg</code> from |
|
|
|
517 <a href="https://man.voidlinux.org/xbps.d.5">xbps.d(5)</a>. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
518 </li> |
|
|
|
519 <li> |
|
|
|
520 <p>Fixed an issue with multi threaded for each loops |
|
|
|
521 processing the first slicecount*maxthreads entries twice. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
522 </li> |
|
|
|
523 <li> |
|
|
|
524 <p>Fixed an issue with happy eyeballs, where when a socket |
|
|
|
525 fails within the connection delay it aborts with the error |
|
|
|
526 instead of continuing with the next address. <a href="https://github.com/jnbr">[jnbr]</a></p> |
|
|
|
527 </li> |
|
|
|
528 </ul> |
|
|
|
529 |
|
|
|
530 <h3 id="xbps-055-2019-06-21">xbps-0.55 (2019-06-21):</h3> |
|
|
|
531 |
|
|
|
532 <ul> |
|
|
|
533 <li> |
|
|
|
534 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: Added <code class="language-plaintext highlighter-rouge">-D, --download-only</code> flag to allow |
|
|
|
535 downloading packages to the cache without attempting to |
|
|
|
536 install them. <a href="https://github.com/Vaelatern">[Vaelatern]</a></p> |
|
|
|
537 </li> |
|
|
|
538 <li> |
|
|
|
539 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: added <code class="language-plaintext highlighter-rouge">-I, --ignore-file-conflicts</code> to not abort |
|
|
|
540 the transaction even if file conflicts were detected. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
541 </li> |
|
|
|
542 <li> |
|
|
|
543 <p><a href="https://man.voidlinux.org/xbps-install.1">xbps-install(1)</a>: return 0 if package is already installed, |
|
|
|
544 or up-to-date if updating, not <code class="language-plaintext highlighter-rouge">EEXIST</code>. <code class="language-plaintext highlighter-rouge">EEXIST</code> now is only |
|
|
|
545 returned if there are file conflicts in transaction. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
546 </li> |
|
|
|
547 <li> |
|
|
|
548 <p><a href="https://man.voidlinux.org/xbps-checkvers.1">xbps-checkvers(1)</a>: fixed a segfault with <code class="language-plaintext highlighter-rouge">--format</code>. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
549 </li> |
|
|
|
550 <li> |
|
|
|
551 <p>Fixed a build failure on ppc64. <a href="https://github.com/q66">[q66]</a></p> |
|
|
|
552 </li> |
|
|
|
553 <li> |
|
|
|
554 <p>Fixed a build failure on x86. <a href="https://github.com/Duncaen">[duncaen]</a></p> |
|
|
|
555 </li> |
|
|
|
556 <li> |
|
|
|
557 <p>Fixed cross compilation with <code class="language-plaintext highlighter-rouge">--enable-static</code>. <a href="https://github.com/xtraeme">[xtraeme]</a></p> |
|
|
|
558 </li> |
|
|
|
559 </ul> |
|
|
|
560 </p> |
|
|
|
561 </div> |
|
|
|
562 </content> |
|
|
|
563 </entry> |
|
|
|
564 |
|
|
|
565 <entry> |
|
|
|
566 <title>New images and new verification keys</title> |
|
|
|
567 <link href="https://voidlinux.org/news/2020/01/new-images.html"/> |
|
|
|
568 <id>https://voidlinux.org/news/2020/01/new-images</id> |
|
|
|
569 <published>2020-01-19T00:00:00+00:00</published> |
|
|
|
570 <updated>2020-01-19T00:00:00+00:00</updated> |
|
|
|
571 <content type="xhtml"> |
|
|
|
572 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
573 <p><p>We’re pleased to announce that the 20191109 image set has been |
|
|
|
574 promoted to current and is now generally available.</p> |
|
|
|
575 |
|
|
|
576 <p>A change that comes along with these new images is the adoption of |
|
|
|
577 <code class="language-plaintext highlighter-rouge">signify(1)</code> to verify images. We’re saying goodbye to PGP due to the |
|
|
|
578 complexity involved, the relative difficulty in verifying the |
|
|
|
579 resulting signature, and the questionable state of PGP key |
|
|
|
580 distribution right now.</p> |
|
|
|
581 |
|
|
|
582 <p>The downloads page has been updated with instructions for how you can |
|
|
|
583 validate new images, and we hope you’ll find this process easier and |
|
|
|
584 faster than in previous releases.</p> |
|
|
|
585 </p> |
|
|
|
586 </div> |
|
|
|
587 </content> |
|
|
|
588 </entry> |
|
|
|
589 |
|
|
|
590 <entry> |
|
|
|
591 <title>xbps bug results in missing /bin/sh</title> |
|
|
|
592 <link href="https://voidlinux.org/news/2019/08/xbps-bug-results-in-missing-bin-sh.html"/> |
|
|
|
593 <id>https://voidlinux.org/news/2019/08/xbps-bug-results-in-missing-bin-sh</id> |
|
|
|
594 <published>2019-08-13T00:00:00+00:00</published> |
|
|
|
595 <updated>2019-08-13T00:00:00+00:00</updated> |
|
|
|
596 <content type="xhtml"> |
|
|
|
597 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
598 <p><p>Due to a bug in xbps there was an issue this morning where /bin/sh disappeared after an update.</p> |
|
|
|
599 |
|
|
|
600 <p>The bug was fixed quickly, but there’s a 2h window where an update may have resulted in a broken system.</p> |
|
|
|
601 |
|
|
|
602 <p>If you’re affected by this issue you may experience error messages like these during boot:</p> |
|
|
|
603 |
|
|
|
604 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>runit: fatal: unable to start child: /etc/runit/1 file does not exist |
|
|
|
605 </code></pre></div></div> |
|
|
|
606 |
|
|
|
607 <p>These are the steps to recover your system:</p> |
|
|
|
608 |
|
|
|
609 <h4 id="case-1-system-is-still-running-and-you-have-a-working-shell-open">Case 1: System is still running and you have a working shell open</h4> |
|
|
|
610 |
|
|
|
611 <p>Run the following command as root:</p> |
|
|
|
612 |
|
|
|
613 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># xbps-install -Su |
|
|
|
614 </code></pre></div></div> |
|
|
|
615 |
|
|
|
616 <p>Afterwards your system should update xbps and recreate <code class="language-plaintext highlighter-rouge">/bin/sh</code></p> |
|
|
|
617 |
|
|
|
618 <h4 id="case-2-system-has-rebooted-or-no-shell-is-opened-anymore">Case 2: System has rebooted or no shell is opened anymore</h4> |
|
|
|
619 |
|
|
|
620 <p>Restart your system</p> |
|
|
|
621 |
|
|
|
622 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> |
|
|
|
623 GNU GRUB version 2.02 |
|
|
|
624 |
|
|
|
625 ┌────────────────────────────────────────────────────────────────────────────┐ |
|
|
|
626 │*Void GNU/Linux │ |
|
|
|
627 │ Advanced options for Void GNU/Linux │ |
|
|
|
628 │ │ |
|
|
|
629 │ │ |
|
|
|
630 │ │ |
|
|
|
631 │ │ |
|
|
|
632 │ │ |
|
|
|
633 │ │ |
|
|
|
634 │ │ |
|
|
|
635 │ │ |
|
|
|
636 │ │ |
|
|
|
637 │ │ |
|
|
|
638 │ │ |
|
|
|
639 └────────────────────────────────────────────────────────────────────────────┘ |
|
|
|
640 |
|
|
|
641 Use the ↑ and ↓ keys to select which entry is highlighted. |
|
|
|
642 Press enter to boot the selected OS, `e' to edit the commands |
|
|
|
643 before booting or `c' for a command-line. |
|
|
|
644 |
|
|
|
645 |
|
|
|
646 </code></pre></div></div> |
|
|
|
647 <p>Once grub comes up, select the kernel you want to boot and press <code class="language-plaintext highlighter-rouge">E</code>.</p> |
|
|
|
648 |
|
|
|
649 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> |
|
|
|
650 GNU GRUB version 2.02 |
|
|
|
651 |
|
|
|
652 ┌────────────────────────────────────────────────────────────────────────────┐ |
|
|
|
653 │ search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --\│↑ |
|
|
|
654 │hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 XXXXXXXX-XXXX-XXXX-XXXX-\│ |
|
|
|
655 │XXXXXXXXXXXX │ |
|
|
|
656 │ else │ |
|
|
|
657 │ search --no-floppy --fs-uuid --set=root XXXXXXXX-XXXX-XXXX-XXXX-X\│ |
|
|
|
658 │XXXXXXXXXXX │ |
|
|
|
659 │ fi │ |
|
|
|
660 │ echo 'Loading Linux 4.19.15_1 ...' │ |
|
|
|
661 │ linux /boot/vmlinuz-4.19.15_1 ro loglevel=4 slub_debug=P pa\│ |
|
|
|
662 │ge_poison=1 rd.break │ |
|
|
|
663 │ echo 'Loading initial ramdisk ...' │ |
|
|
|
664 │ initrd /boot/initramfs-4.19.15_1.img │ |
|
|
|
665 │ │ |
|
|
|
666 └────────────────────────────────────────────────────────────────────────────┘ |
|
|
|
667 |
|
|
|
668 Minimum Emacs-like screen editing is supported. TAB lists |
|
|
|
669 completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2 for |
|
|
|
670 a command-line or ESC to discard edits and return to the GRUB menu. |
|
|
|
671 |
|
|
|
672 |
|
|
|
673 </code></pre></div></div> |
|
|
|
674 <p>find the line that starts with <code class="language-plaintext highlighter-rouge">linux /boot/...</code> and add <code class="language-plaintext highlighter-rouge">rd.break</code> at the end of the line. |
|
|
|
675 Make sure it is seperated with a space from the rest of the line</p> |
|
|
|
676 |
|
|
|
677 <p>Afterwards Press <code class="language-plaintext highlighter-rouge">Ctrl</code> + <code class="language-plaintext highlighter-rouge">X</code> to boot the configuration.</p> |
|
|
|
678 |
|
|
|
679 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Dropping to debug shell. |
|
|
|
680 |
|
|
|
681 dracut:/# |
|
|
|
682 </code></pre></div></div> |
|
|
|
683 <p>Once you’ve got a shell execute the following commands:</p> |
|
|
|
684 |
|
|
|
685 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> dracut:/# mount -o remount,rw /sysroot |
|
|
|
686 dracut:/# chroot /sysroot xbps-alternatives -s bash |
|
|
|
687 dracut:/# exit |
|
|
|
688 </code></pre></div></div> |
|
|
|
689 |
|
|
|
690 <p>Afterwards the system should work as expected.</p> |
|
|
|
691 |
|
|
|
692 <p>Please use <code class="language-plaintext highlighter-rouge">xbps-install -Su</code> to fetch the newest xbps version that fixes this bug.</p> |
|
|
|
693 |
|
|
|
694 <h3 id="if-it-doesnt-help">If it doesn’t help</h3> |
|
|
|
695 |
|
|
|
696 <p>Join over on #voidlinux in freenode or <a href="https://www.reddit.com/r/voidlinux/comments/cpslmr/xbps_bug_results_in_missing_binsh/">ask on reddit</a>.</p> |
|
|
|
697 </p> |
|
|
|
698 </div> |
|
|
|
699 </content> |
|
|
|
700 </entry> |
|
|
|
701 |
|
|
|
702 <entry> |
|
|
|
703 <title>XBPS 0.54 Released</title> |
|
|
|
704 <link href="https://voidlinux.org/news/2019/06/xbps-0.54.html"/> |
|
|
|
705 <id>https://voidlinux.org/news/2019/06/xbps-0.54</id> |
|
|
|
706 <published>2019-06-20T00:00:00+00:00</published> |
|
|
|
707 <updated>2019-06-20T00:00:00+00:00</updated> |
|
|
|
708 <content type="xhtml"> |
|
|
|
709 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
710 <p><p>XBPS 0.54 is released. This release includes many new features and a |
|
|
|
711 plethora of bug fixes. Some notable fixes include:</p> |
|
|
|
712 |
|
|
|
713 <ul> |
|
|
|
714 <li>Improved conflict checking</li> |
|
|
|
715 <li>Additional compression formats including zstd</li> |
|
|
|
716 <li>Fixes to the alternatives system</li> |
|
|
|
717 <li>New binaries replacing portions of xbps-uhelper</li> |
|
|
|
718 <li>Over 30 new test cases</li> |
|
|
|
719 </ul> |
|
|
|
720 |
|
|
|
721 <p>New binaries have also been uploaded to the static/ directories of all |
|
|
|
722 mirrors.</p> |
|
|
|
723 |
|
|
|
724 <p>As always you can read the complete changelog on GitHub and file |
|
|
|
725 issues at |
|
|
|
726 <a href="https://github.com/void-linux/xbps/issues">https://github.com/void-linux/xbps/issues</a>.</p> |
|
|
|
727 </p> |
|
|
|
728 </div> |
|
|
|
729 </content> |
|
|
|
730 </entry> |
|
|
|
731 |
|
|
|
732 <entry> |
|
|
|
733 <title>New Homepage</title> |
|
|
|
734 <link href="https://voidlinux.org/news/2019/04/homepage-redesign.html"/> |
|
|
|
735 <id>https://voidlinux.org/news/2019/04/homepage-redesign</id> |
|
|
|
736 <published>2019-04-01T00:00:00+00:00</published> |
|
|
|
737 <updated>2019-04-01T00:00:00+00:00</updated> |
|
|
|
738 <content type="xhtml"> |
|
|
|
739 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
740 <p><p>After years of development and beta testing in various focus groups, we’re |
|
|
|
741 pleased to announce the new homepage design. No animals were harmed during |
|
|
|
742 development.</p> |
|
|
|
743 |
|
|
|
744 <p><a href="/assets/screenshots/void-1st-april-2019.png"><img src="/assets/screenshots/void-1st-april-2019.png" alt="" /></a></p> |
|
|
|
745 </p> |
|
|
|
746 </div> |
|
|
|
747 </content> |
|
|
|
748 </entry> |
|
|
|
749 |
|
|
|
750 <entry> |
|
|
|
751 <title>VoidLinux.eu Is Not Ours</title> |
|
|
|
752 <link href="https://voidlinux.org/news/2019/02/voidlinux-eu-gone.html"/> |
|
|
|
753 <id>https://voidlinux.org/news/2019/02/voidlinux-eu-gone</id> |
|
|
|
754 <published>2019-02-12T00:00:00+00:00</published> |
|
|
|
755 <updated>2019-02-12T00:00:00+00:00</updated> |
|
|
|
756 <content type="xhtml"> |
|
|
|
757 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
758 <p><p>We would like to warn people of a domain name that is no longer under Void |
|
|
|
759 Linux control. <code class="language-plaintext highlighter-rouge">voidlinux.eu</code> lapsed in its original registration, and was |
|
|
|
760 purchased by an unknown 3rd party before Void Linux could regain ownership. At |
|
|
|
761 this time, please assume that anything involving <code class="language-plaintext highlighter-rouge">voidlinux.eu</code> is not related |
|
|
|
762 to Void Linux, and should be considered potentially malicious. Of course, if |
|
|
|
763 the person who owns the domain now would like to transfer it to our control, |
|
|
|
764 we’d be grateful, and will update voidlinux.org to indicate if this happens.</p> |
|
|
|
765 |
|
|
|
766 <p>Our official domain is VoidLinux.org.</p> |
|
|
|
767 </p> |
|
|
|
768 </div> |
|
|
|
769 </content> |
|
|
|
770 </entry> |
|
|
|
771 |
|
|
|
772 <entry> |
|
|
|
773 <title>Cross compilation support for gobject typelibs</title> |
|
|
|
774 <link href="https://voidlinux.org/news/2019/02/cross-gobject.html"/> |
|
|
|
775 <id>https://voidlinux.org/news/2019/02/cross-gobject</id> |
|
|
|
776 <published>2019-02-03T00:00:00+00:00</published> |
|
|
|
777 <updated>2019-02-03T00:00:00+00:00</updated> |
|
|
|
778 <content type="xhtml"> |
|
|
|
779 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
780 <p><p>Thanks to the work of <a href="https://maxice8.github.io/">maxice8</a> we’re pleased to |
|
|
|
781 announce cross compiling support for gobject-introspection and packages that |
|
|
|
782 depend on this tool. This is a big step forward to support more packages |
|
|
|
783 through cross compiling and stay future proof for glib development.</p> |
|
|
|
784 |
|
|
|
785 <p>maxice8 put together a comprehensive <a href="https://maxice8.github.io/8-cross-the-gir/">post about his |
|
|
|
786 work</a>. This article will be |
|
|
|
787 higher level overview of our work in this field.</p> |
|
|
|
788 |
|
|
|
789 <h3 id="what-are-gobject-and-typelibs">What are gobject and typelibs?</h3> |
|
|
|
790 |
|
|
|
791 <p>gobject is an abstract description of types defined in glib. Glib is used on a |
|
|
|
792 wide range of application and libraries, most notably <a href="https://gtk.org">gtk</a>. |
|
|
|
793 Glib itself is written in C but it’s possible to provide dynamic language |
|
|
|
794 bindings to other languages such as <a href="https://python.org">python</a>.</p> |
|
|
|
795 |
|
|
|
796 <p>This mechanism is not builtin into glib, but instead is provided by the |
|
|
|
797 gobject-introspection tool. This tool scans both the source and the binary blob |
|
|
|
798 of a library and creates a metadata file that is used to provide type information |
|
|
|
799 for other language bindings. For a deeper dive into gobject-introspection please |
|
|
|
800 consider the <a href="https://gi.readthedocs.io/en/latest/">docs at readthedocs.io</a></p> |
|
|
|
801 |
|
|
|
802 <h3 id="the-problem">The problem</h3> |
|
|
|
803 |
|
|
|
804 <p>When it comes to Void, we have high demands on portability of applications. Our |
|
|
|
805 armv6l, armv7l and aarch64 platforms a completely and exclusively cross |
|
|
|
806 compiled, meaning they are built on an x86_64 host. This leads to an |
|
|
|
807 interesting problem with gobject-introspection which by design needs to run on |
|
|
|
808 the same platform as the produced binaries are targeted.</p> |
|
|
|
809 |
|
|
|
810 <p>Unfortunately, as already stated this has been a design decision of this |
|
|
|
811 software and we can’t do anything to change this constraint itself.</p> |
|
|
|
812 |
|
|
|
813 <p>Furthermore, during the last few years the Gnome community drifted towards |
|
|
|
814 extensively using gobject-introspection in their products. This led to the |
|
|
|
815 breakage of more and more applications in the gnome-ecosystem.</p> |
|
|
|
816 |
|
|
|
817 <h3 id="the-solution">The solution</h3> |
|
|
|
818 |
|
|
|
819 <p>During the last few months we considered different solutions to this problem. |
|
|
|
820 This first proposal to not support gir through cross compilation and only allow |
|
|
|
821 it through native build became more and more unsatisfying as the number of |
|
|
|
822 packages using this mechanism increased over time.</p> |
|
|
|
823 |
|
|
|
824 <p>The second approach which was the followup to the one described above was to |
|
|
|
825 add native builders to the system and build those packages on those native |
|
|
|
826 builders. The issue was here that this would require a lot of infrastructure |
|
|
|
827 work and added a lot of complexity.</p> |
|
|
|
828 |
|
|
|
829 <p>The third solution and the one we chose was to use the userspace emulation |
|
|
|
830 features of <a href="http://qemu.org">Qemu</a> to emulate the target system only for |
|
|
|
831 those calls that needed to be on the target platform. The <a href="https://yoctoproject.org/">yocto |
|
|
|
832 project</a> is already using this approach to cross |
|
|
|
833 compile Gnome Applications to other platform. We reused many of their tooling |
|
|
|
834 for void-packages. Nontheless, we hit many porting issues - our tooling must run |
|
|
|
835 on musl, too - , new bugs were triggered in void-packages - see for example |
|
|
|
836 <a href="https://maxice8.github.io/1-void-cpython3-cross-pt1/">these</a> |
|
|
|
837 <a href="https://maxice8.github.io/2-void-cpython3-cross-pt2/">two</a> posts at maxice8’s |
|
|
|
838 blog, and many other small issues needed to be resolved.</p> |
|
|
|
839 |
|
|
|
840 <p>Basic support for cross compilation has already landed in void-packages, the |
|
|
|
841 musl port is not yet finished, but we expect it to work soon(tm).</p> |
|
|
|
842 |
|
|
|
843 <p>maxice8 also prepared a blog post about his porting work on |
|
|
|
844 <a href="https://maxice8.github.io/9-libgusb-meson-gir-cross/">libgusb</a>.</p> |
|
|
|
845 </p> |
|
|
|
846 </div> |
|
|
|
847 </content> |
|
|
|
848 </entry> |
|
|
|
849 |
|
|
|
850 <entry> |
|
|
|
851 <title>The Life of a Pull Request & Where Commit Bits Come From</title> |
|
|
|
852 <link href="https://voidlinux.org/news/2019/02/commit-bits.html"/> |
|
|
|
853 <id>https://voidlinux.org/news/2019/02/commit-bits</id> |
|
|
|
854 <published>2019-02-03T00:00:00+00:00</published> |
|
|
|
855 <updated>2019-02-03T00:00:00+00:00</updated> |
|
|
|
856 <content type="xhtml"> |
|
|
|
857 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
858 <p><p>Sometimes people will join into <code class="language-plaintext highlighter-rouge">#voidlinux</code> and ask why changes are |
|
|
|
859 taking so long to get merged. This is an interesting question, and it |
|
|
|
860 boils down into a few parts. In this article we’ll take a look at the |
|
|
|
861 life of a pull request and how it gets from idea to package.</p> |
|
|
|
862 |
|
|
|
863 <p>For any package to exist, someone first has to want it. This want is |
|
|
|
864 often expressed as someone in IRC saying “I want to use Void, but I |
|
|
|
865 need package <code class="language-plaintext highlighter-rouge">foo</code>” and someone looks at it and decides they will |
|
|
|
866 package and maintain <code class="language-plaintext highlighter-rouge">foo</code>. Sometimes this want will manifest as an |
|
|
|
867 issue filled to the void-packages repository on GitHub, and sometimes |
|
|
|
868 it manifests as a “blind” PR showing up for a new package. This last |
|
|
|
869 one is what we’ll follow as it’s where things get interesting.</p> |
|
|
|
870 |
|
|
|
871 <h2 id="a-call-to-action">A Call to Action</h2> |
|
|
|
872 |
|
|
|
873 <p>When a PR is created, this triggers GitHub to notify people according |
|
|
|
874 to its settings. For some members of the project this will trigger an |
|
|
|
875 email, for some people this will trigger other automation via API, and |
|
|
|
876 up until very recently, the <code class="language-plaintext highlighter-rouge">#xbps</code> channel on freenode was NOTICE’d |
|
|
|
877 (this last one is gone as GitHub has removed this functionality with |
|
|
|
878 no clear replacement path).</p> |
|
|
|
879 |
|
|
|
880 <p>This notification will hopefully grab the eye of at least one |
|
|
|
881 reviewer, who will then open the link to view the PR on GitHub, or |
|
|
|
882 will otherwise begin reviewing by their preferred means. Many of our |
|
|
|
883 reviewers prefer to pull the PR locally and view it in their editor of |
|
|
|
884 choice, or build it locally on more powerful boxes than Travis CI |
|
|
|
885 provides.</p> |
|
|
|
886 |
|
|
|
887 <h2 id="changes-requested">Changes Requested</h2> |
|
|
|
888 |
|
|
|
889 <p>This is usually the slow part of getting something accepted to |
|
|
|
890 void-packages. This is the part that involves going back and forth on |
|
|
|
891 what changes need to be made or what improvements are requested and |
|
|
|
892 often involves discussion of potential changes to package policy.</p> |
|
|
|
893 |
|
|
|
894 <p>For folks in IRC this often will be a rapid fire exchange of comments |
|
|
|
895 in channel or query, and often ends with something like this:</p> |
|
|
|
896 |
|
|
|
897 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>15:30 <bobertlo> i'm making the suggested changes [...] |
|
|
|
898 15:31 <maldridge> bobertlo: ping me when you're ready for review+merge |
|
|
|
899 </code></pre></div></div> |
|
|
|
900 |
|
|
|
901 <p>At this point the ball is back in the author’s court, and the |
|
|
|
902 committer is waiting for changes to be made. At this point it’s also |
|
|
|
903 considered that a committer is tenuously “assigned” to a PR.</p> |
|
|
|
904 |
|
|
|
905 <p>In a good flow, the next thing that happens is another message from |
|
|
|
906 the author:</p> |
|
|
|
907 |
|
|
|
908 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>15:53 <bobertlo> maldridge: i pushed those changes |
|
|
|
909 </code></pre></div></div> |
|
|
|
910 |
|
|
|
911 <h2 id="the-reviewer-follows-up">The Reviewer Follows Up</h2> |
|
|
|
912 |
|
|
|
913 <p>When a reviewer is “assigned” to the PR, it doesn’t really mean that |
|
|
|
914 they own it, but there is some expectation that they will follow the |
|
|
|
915 work through to merge unless they explicitly state otherwise. |
|
|
|
916 Sometimes this looks like a comment on a PR, and other times it looks |
|
|
|
917 like a poke in IRC to see if the author is still working on the |
|
|
|
918 changes.</p> |
|
|
|
919 |
|
|
|
920 <p>At the end of this phase, the reviewer will either approve or dismiss |
|
|
|
921 the PR. Usually dismissing a PR is only done if the package is |
|
|
|
922 completely unworkable and the author and reviewer have come to an |
|
|
|
923 agreement that it won’t be accepted for some concrete reason, but |
|
|
|
924 other reasons exist.</p> |
|
|
|
925 |
|
|
|
926 <h2 id="merged">Merged</h2> |
|
|
|
927 |
|
|
|
928 <p>When a package is accepted the reviewer will merge it, and then our |
|
|
|
929 automated build infrastructure will kick into action. A webhook from |
|
|
|
930 GitHub will signal to our infrastructure that a new change is to be |
|
|
|
931 built, and the systems will pull down the changes via git. After it |
|
|
|
932 has been ascertained what needs to be rebuilt, the change is |
|
|
|
933 dispatched to our builders to begin compiling the new or updated |
|
|
|
934 package.</p> |
|
|
|
935 |
|
|
|
936 <p>After compilation, the built package is copied back to the build |
|
|
|
937 master and is signed, then indexed into the repository for interested |
|
|
|
938 users to download. Past this point is a complicated web of rsync that |
|
|
|
939 is beyond the scope of this article.</p> |
|
|
|
940 |
|
|
|
941 <h1 id="why-does-it-take-so-long">Why does it take so long?</h1> |
|
|
|
942 |
|
|
|
943 <p>First of all, it doesn’t. When you compare Void’s process to other |
|
|
|
944 distributions, the process of getting a package included can be as |
|
|
|
945 short as an hour from initial request to installable globally.</p> |
|
|
|
946 |
|
|
|
947 <p>The slightly longer answer is that there are bottlenecks. One of the |
|
|
|
948 easiest to understand is that there are only so many servers we can |
|
|
|
949 build on, and the time it takes to compile packages (especially large |
|
|
|
950 ones) has to be taken into account.</p> |
|
|
|
951 |
|
|
|
952 <p>The single largest bottleneck though is reviewer loading. In the |
|
|
|
953 process that’s described above, reviewers are loosely connected to |
|
|
|
954 PRs, and follow them through. While our reviewers are very fast in |
|
|
|
955 many cases, they are still human and can only hold so many things at |
|
|
|
956 once.</p> |
|
|
|
957 |
|
|
|
958 <p>So if the reviewers are the bottleneck, the question logically |
|
|
|
959 follows: where do reviewers come from and how do they get their |
|
|
|
960 special powers?</p> |
|
|
|
961 |
|
|
|
962 <h2 id="special-powers">Special Powers</h2> |
|
|
|
963 |
|
|
|
964 <p>Within the Void vernacular, people who can merge changes are referred |
|
|
|
965 to generally as people with a commit bit. For those who are curious, |
|
|
|
966 this term comes from privileged users on a BSD system often having a |
|
|
|
967 “wheel bit”. At the time of this writing, there are 13 people with a |
|
|
|
968 commit bit. These people can merge to almost any repository in the |
|
|
|
969 organization, but there are a few exceptions. Having a commit bit can |
|
|
|
970 also come with other powers, like the ability to op up in IRC, but |
|
|
|
971 such additional powers are not automatic, and are beyond the scope of |
|
|
|
972 this article.</p> |
|
|
|
973 |
|
|
|
974 <p>So how does one get these special powers?</p> |
|
|
|
975 |
|
|
|
976 <p>The astute Void follower may already know this answer, as has been |
|
|
|
977 documented for some time now on |
|
|
|
978 <a href="https://infradocs.voidlinux.org">InfraDocs</a>.</p> |
|
|
|
979 |
|
|
|
980 <p>The full documentation can be found in the <a href="https://infradocs.voidlinux.org/org/onboarding.html">onboarding |
|
|
|
981 documentation</a>. |
|
|
|
982 But to save the effort of going to that page, we’ll briefly recap it |
|
|
|
983 here.</p> |
|
|
|
984 |
|
|
|
985 <p>First a person has to be noticed within the project as a good fit for |
|
|
|
986 having the ability to merge changes on their own. Usually this means |
|
|
|
987 that they’ve been an active contributor continuously for some time and |
|
|
|
988 have a history of submitting high quality work.</p> |
|
|
|
989 |
|
|
|
990 <p>After an existing committer thinks they’ve found a good candidate, |
|
|
|
991 they’ll propose the membership change to the project owners in |
|
|
|
992 private. This allows the project owners time to discuss the proposal |
|
|
|
993 with the proposer and exchange information without needing to talk |
|
|
|
994 publicly. Sometimes there are circumstances that a proposer might not |
|
|
|
995 be aware of that may affect if they wish to continue suggesting |
|
|
|
996 someone, and this initial conversation gives a time to discuss that.</p> |
|
|
|
997 |
|
|
|
998 <p>After this discussion has happened a final decision is made to either |
|
|
|
999 accept or reject the proposal. In the event it has been accepted, the |
|
|
|
1000 candidate is informed and has the final choice to accept.</p> |
|
|
|
1001 |
|
|
|
1002 <h2 id="ive-got-a-bit-now-what">I’ve Got a Bit, Now What?</h2> |
|
|
|
1003 |
|
|
|
1004 <p>Just getting the powers though isn’t enough. People who hold a commit |
|
|
|
1005 bit have to justify that they have them. This means means either |
|
|
|
1006 reviewing changes, commenting on PRs, or otherwise advancing the state |
|
|
|
1007 of the Void. In the past when people have left the project either by |
|
|
|
1008 explicitly stating they’ve left, or by just not being a part of it for |
|
|
|
1009 a while, we revoke powers. This helps us keep Void reasonably secure |
|
|
|
1010 by knowing exactly who all has the ability to push changes to our |
|
|
|
1011 repositories.</p> |
|
|
|
1012 |
|
|
|
1013 <p>Of course if any of these people were to come back, they’d be welcome |
|
|
|
1014 to once again demonstrate their skill and again earn the special |
|
|
|
1015 powers as they did before. Just having had the power at one point is |
|
|
|
1016 not sufficient cause to be handed it again.</p> |
|
|
|
1017 |
|
|
|
1018 <hr /> |
|
|
|
1019 |
|
|
|
1020 <p>In summary the life of a PR is part of a much larger process of |
|
|
|
1021 getting and maintaining a pool of contributors and qualified |
|
|
|
1022 reviewers. This process is quite involved, and this post only just |
|
|
|
1023 scratches the surface. Interested persons are always encouraged to |
|
|
|
1024 reach out to us in <code class="language-plaintext highlighter-rouge">#voidlinux</code> on freenode. The author of this post |
|
|
|
1025 can always be contacted in <code class="language-plaintext highlighter-rouge">#voidlinux</code> as <code class="language-plaintext highlighter-rouge">maldridge</code>.</p> |
|
|
|
1026 </p> |
|
|
|
1027 </div> |
|
|
|
1028 </content> |
|
|
|
1029 </entry> |
|
|
|
1030 |
|
|
|
1031 <entry> |
|
|
|
1032 <title>The curious case of Python and global variables</title> |
|
|
|
1033 <link href="https://voidlinux.org/news/2019/01/python3-debugging.html"/> |
|
|
|
1034 <id>https://voidlinux.org/news/2019/01/python3-debugging</id> |
|
|
|
1035 <published>2019-01-31T00:00:00+00:00</published> |
|
|
|
1036 <updated>2019-01-31T00:00:00+00:00</updated> |
|
|
|
1037 <content type="xhtml"> |
|
|
|
1038 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1039 <p><p>Void isn’t all smooth sailing. Sometimes things break in obscure and |
|
|
|
1040 difficult to troubleshoot ways. This was recently the case when one |
|
|
|
1041 of our maintainers noticed that certain Python packages weren’t |
|
|
|
1042 behaving as expected. If you’re curious about how this kind of |
|
|
|
1043 troubleshooting happens, [maxice8]’s blog post is highly recommended |
|
|
|
1044 as its a good intro into what its like to troubleshoot things from the |
|
|
|
1045 perspective of a Void maintainer.</p> |
|
|
|
1046 |
|
|
|
1047 <p>Read the troubleshooting process <a href="https://maxice8.github.io/1-void-cpython3-cross-pt1/">here</a>.</p> |
|
|
|
1048 </p> |
|
|
|
1049 </div> |
|
|
|
1050 </content> |
|
|
|
1051 </entry> |
|
|
|
1052 |
|
|
|
1053 <entry> |
|
|
|
1054 <title>dhcpcd>=7.1.0 update may require manual intervention</title> |
|
|
|
1055 <link href="https://voidlinux.org/news/2019/01/dhcpcd-7.1.0.html"/> |
|
|
|
1056 <id>https://voidlinux.org/news/2019/01/dhcpcd-7.1.0</id> |
|
|
|
1057 <published>2019-01-23T00:00:00+00:00</published> |
|
|
|
1058 <updated>2019-01-23T00:00:00+00:00</updated> |
|
|
|
1059 <content type="xhtml"> |
|
|
|
1060 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1061 <p><p>Starting with 7.1.0, the <a href="https://man.voidlinux.org/dhcpcd.8">dhcpcd(8)</a> package is dropping the <code class="language-plaintext highlighter-rouge">10-wpa_supplicant</code> hook. |
|
|
|
1062 Instead of the hook, upstream suggests to build <a href="https://man.voidlinux.org/wpa_supplicant.8">wpa_supplicant(8)</a> with |
|
|
|
1063 <code class="language-plaintext highlighter-rouge">CONFIG_MATCH_IFACE</code> enabled, this is done in the <code class="language-plaintext highlighter-rouge">wpa_supplicant</code> package since version <code class="language-plaintext highlighter-rouge">2.6_14</code>.</p> |
|
|
|
1064 |
|
|
|
1065 <p>Users of the <code class="language-plaintext highlighter-rouge">10-wpa_supplicant</code> hook will need to adjust their systems to guarantee |
|
|
|
1066 that their wireless connection keeps working.</p> |
|
|
|
1067 |
|
|
|
1068 <p>The following actions are required when <a href="https://man.voidlinux.org/dhcpcd.8">dhcpcd(8)</a> is updated to 7.1.0 for users of the 10-supplicant hook.</p> |
|
|
|
1069 |
|
|
|
1070 <ol> |
|
|
|
1071 <li>Make sure <a href="https://man.voidlinux.org/wpa_supplicant.8">wpa_supplicant(8)</a> is at least 2.6_14</li> |
|
|
|
1072 <li><a href="https://docs.voidlinux.org/config/services/index.html">Enable</a> the <a href="https://man.voidlinux.org/wpa_supplicant.8">wpa_supplicant(8)</a> service.</li> |
|
|
|
1073 </ol> |
|
|
|
1074 |
|
|
|
1075 <hr /> |
|
|
|
1076 |
|
|
|
1077 <p>Other users should be on the lookout as -M is now used to match all interfaces, using for configuration |
|
|
|
1078 the <code class="language-plaintext highlighter-rouge">CONF_FILE</code> variable. Setting an specific <code class="language-plaintext highlighter-rouge">WPA_INTERFACE</code> is now optional.</p> |
|
|
|
1079 </p> |
|
|
|
1080 </div> |
|
|
|
1081 </content> |
|
|
|
1082 </entry> |
|
|
|
1083 |
|
|
|
1084 <entry> |
|
|
|
1085 <title>The Advent of Void: Day 24: 'Twas the Night Before Christmas</title> |
|
|
|
1086 <link href="https://voidlinux.org/news/2018/12/02-advent-closing.html"/> |
|
|
|
1087 <id>https://voidlinux.org/news/2018/12/02-advent-closing</id> |
|
|
|
1088 <published>2018-12-24T00:00:00+00:00</published> |
|
|
|
1089 <updated>2018-12-24T00:00:00+00:00</updated> |
|
|
|
1090 <content type="xhtml"> |
|
|
|
1091 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1092 <p><p>‘Twas the Night Before Christmas,</p> |
|
|
|
1093 |
|
|
|
1094 <p>When all through the cluster, not a build was running, not even a |
|
|
|
1095 revbump. The packages were all signed by the server with care, in |
|
|
|
1096 hopes that an upgrade soon would be there.</p> |
|
|
|
1097 |
|
|
|
1098 <p>The maintainers were nestled all snug at their desks, while visions of |
|
|
|
1099 waterfalls danced in their heads; and Gottox in his home and I in |
|
|
|
1100 mine, had just settled our brains for a long winter break; when out on |
|
|
|
1101 the frontends there arose such a clatter, I sprang to my terminal to |
|
|
|
1102 see what was the matter.</p> |
|
|
|
1103 |
|
|
|
1104 <p>Away to my console I flew like a flash, called for my tmux and threw |
|
|
|
1105 open the logstash. The status page on my screen lent a luster of |
|
|
|
1106 midday to errors below, when what to my wondering eyes should appear, |
|
|
|
1107 but a stuck qt5 build and 8 staged SONAMEs.</p> |
|
|
|
1108 |
|
|
|
1109 <p>With a large webengine so slow and so massive, I knew in an instant it |
|
|
|
1110 must be chromium. More rapid than runit my commands to the system: |
|
|
|
1111 “Now Ansible! now Grafana! now buildbot and xbulk! On rindex! on |
|
|
|
1112 snooze! on, ext4 and repo-cleaner! To the top of the graph to the top |
|
|
|
1113 of the stack now build, build away, build away all!</p> |
|
|
|
1114 |
|
|
|
1115 <p>As disk platters that before the online scrub fly, when they meet with |
|
|
|
1116 an obstacle always retry, so up to the servers the tasks they all |
|
|
|
1117 flew, with their mirror of toys and BDFL, too.</p> |
|
|
|
1118 |
|
|
|
1119 <p>And then in a twinkling, I saw in reply the server starting and |
|
|
|
1120 launching of each single build. As I drew in my buffers, and was |
|
|
|
1121 closing up shop, down the pipe the json came with a stop. It was |
|
|
|
1122 padded with null bytes from its start to its end, and its braces were |
|
|
|
1123 all tarnished with codepages and parity bits; a slice of package it |
|
|
|
1124 contained in its body, and it looked like a startup just opening its |
|
|
|
1125 reply. The descriptors how they twinkled, the keys how merry!</p> |
|
|
|
1126 |
|
|
|
1127 <p>A close of a brace and a retcode of 0 soon gave me to know I had |
|
|
|
1128 nothing to dread. Buildbot said not a word but went straight to its |
|
|
|
1129 work, and filled the mirrors with packages. Waiting for but a moment |
|
|
|
1130 before confirming my intent, the BuildBot went on its way; indexes |
|
|
|
1131 sprang to their clients, and to the fleet I did signal and away they |
|
|
|
1132 all built like the sight seldom seen. But before I <code class="language-plaintext highlighter-rouge">C-b d</code> I exclaim |
|
|
|
1133 to all users:</p> |
|
|
|
1134 |
|
|
|
1135 <p>Happy Christmas to all, and to all a Good Night!</p> |
|
|
|
1136 |
|
|
|
1137 <p>–maldridge</p> |
|
|
|
1138 |
|
|
|
1139 <hr /> |
|
|
|
1140 |
|
|
|
1141 <p>We hope you’ve enjoyed the Advent of Void. This is a fun project that |
|
|
|
1142 we’ve done now for two years to try and shed some light on lesser |
|
|
|
1143 known packages. We’ve got a few honorable mentions that may make |
|
|
|
1144 their way to the feed over the next few days, but this post concludes |
|
|
|
1145 the series. Void is a volunteer effort that we enjoy sharing with |
|
|
|
1146 you, and hopefully you’ve learned some neat new tips and tricks these |
|
|
|
1147 last 24 days. Our volunteers don’t just make packages and manage |
|
|
|
1148 infrastructure, we also write fun posts like these (though I recognize |
|
|
|
1149 I’m a quite poor poet). If you want to become involved and help us |
|
|
|
1150 keep Void going, join us in #xbps on freenode, but maybe wait until |
|
|
|
1151 after the holidays to do so.</p> |
|
|
|
1152 |
|
|
|
1153 <p>Enjoy the winter season and the updates that just keep rolling!</p> |
|
|
|
1154 </p> |
|
|
|
1155 </div> |
|
|
|
1156 </content> |
|
|
|
1157 </entry> |
|
|
|
1158 |
|
|
|
1159 <entry> |
|
|
|
1160 <title>The Advent of Void: Day 24: gromit-mpx</title> |
|
|
|
1161 <link href="https://voidlinux.org/news/2018/12/01-advent-gromit-mpx.html"/> |
|
|
|
1162 <id>https://voidlinux.org/news/2018/12/01-advent-gromit-mpx</id> |
|
|
|
1163 <published>2018-12-24T00:00:00+00:00</published> |
|
|
|
1164 <updated>2018-12-24T00:00:00+00:00</updated> |
|
|
|
1165 <content type="xhtml"> |
|
|
|
1166 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1167 <p><p>Have you ever wanted to doodle on a screenshot? Ever? Just a single underline, |
|
|
|
1168 or an arrow, or something to help point out something about a screenshot? Or |
|
|
|
1169 maybe during a presentation, on the fly, suddenly you want to point out |
|
|
|
1170 a particular thing… wouldn’t it be nice to have a tool to help?</p> |
|
|
|
1171 |
|
|
|
1172 <p>Turns out, there is one, a very simple tool to do this. I use it every |
|
|
|
1173 month.</p> |
|
|
|
1174 |
|
|
|
1175 <p>Gromit-mpx is simple. <code class="language-plaintext highlighter-rouge"><F9></code> to start being able to draw, <code class="language-plaintext highlighter-rouge">Shift-Ctrl-<F9></code> to |
|
|
|
1176 clear everything you drew, and <code class="language-plaintext highlighter-rouge">Ctrl-<F9></code> to stop being able to draw (but |
|
|
|
1177 leave everything on the screen). Just make sure <code class="language-plaintext highlighter-rouge">gromit-mpx</code> is running in the |
|
|
|
1178 background, and you are set for all your drawing and annotating needs. Even |
|
|
|
1179 people like me, who just run <code class="language-plaintext highlighter-rouge">dwm</code> and not with any compositor, I can annotate |
|
|
|
1180 my screen quickly.</p> |
|
|
|
1181 |
|
|
|
1182 <p><img src="https://i.imgur.com/Hw1dn0o.png" alt="ascii-table.com screenshot" /></p> |
|
|
|
1183 |
|
|
|
1184 <p>But with just a few lines, I can clarify what I meant to share. I won’t be |
|
|
|
1185 winning any art awards, but it works.</p> |
|
|
|
1186 |
|
|
|
1187 <p><img src="https://i.imgur.com/65MDkPI.png" alt="ascii-table.com annotated screenshot, pointing out a v, o, i, d, and |
|
|
|
1188 including most of the binary for those values" /></p> |
|
|
|
1189 |
|
|
|
1190 <p>Do note that the annotations stick around, even after you scroll the window, or |
|
|
|
1191 switch to a different screen entirely.</p> |
|
|
|
1192 |
|
|
|
1193 <p><img src="https://i.imgur.com/RrGutNX.png" alt="example of a void linux chat room" /></p> |
|
|
|
1194 |
|
|
|
1195 <p>So keep <code class="language-plaintext highlighter-rouge">gromit-mpx</code> around, it might be useful someday.</p> |
|
|
|
1196 |
|
|
|
1197 <p>For more information, there is always the |
|
|
|
1198 <a href="https://man.voidlinux.org/1/gromit-mpx">gromit-mpx(1) manpage</a>.</p> |
|
|
|
1199 </p> |
|
|
|
1200 </div> |
|
|
|
1201 </content> |
|
|
|
1202 </entry> |
|
|
|
1203 |
|
|
|
1204 <entry> |
|
|
|
1205 <title>Void Linux at 35c3</title> |
|
|
|
1206 <link href="https://voidlinux.org/news/2018/12/00-35c3.html"/> |
|
|
|
1207 <id>https://voidlinux.org/news/2018/12/00-35c3</id> |
|
|
|
1208 <published>2018-12-24T00:00:00+00:00</published> |
|
|
|
1209 <updated>2018-12-24T00:00:00+00:00</updated> |
|
|
|
1210 <content type="xhtml"> |
|
|
|
1211 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1212 <p><p><img src="/assets/img/35c3-void.png" alt="35C3 Void" /></p> |
|
|
|
1213 |
|
|
|
1214 <p>2018 has been an intense year for Void. There were many ups and downs. |
|
|
|
1215 To wrap up the year we’re meeting at the <a href="https://events.ccc.de/category/congress/35c3/">35c3</a>.</p> |
|
|
|
1216 |
|
|
|
1217 <p>To meet other Voiders and chat about related and unrelated topics there’s |
|
|
|
1218 the |
|
|
|
1219 <a href="https://signup.c3assemblies.de/assembly/cf15ba5d-5bb1-473d-827c-b83862de75a1"><strong>Void Linux Assembly</strong></a></p> |
|
|
|
1220 |
|
|
|
1221 <p>Also, on day 1 (2018-12-27) 19:00, <a href="https://twitter.com/Gottox">@Gottox</a> is doing his |
|
|
|
1222 annual talk about <a href="https://pretalx.35c3oio.freifunk.space/35c3oio/talk/XCU9PD/"><strong>The State Of the |
|
|
|
1223 Void</strong></a>.</p> |
|
|
|
1224 |
|
|
|
1225 <p>After the talk, around 20:00, Void is inviting you to a <strong>Void User Meetup</strong>. We’ll |
|
|
|
1226 meet at the Open Infrastructure Orbit in front of the lecture area, find the |
|
|
|
1227 nearest bar, grab a Beer or a Tschunk, and get into interesting conversations.</p> |
|
|
|
1228 |
|
|
|
1229 <p>I’m looking forward to a great event with an awesome community!</p> |
|
|
|
1230 |
|
|
|
1231 <p>–Gottox & the Void Linux Team</p> |
|
|
|
1232 </p> |
|
|
|
1233 </div> |
|
|
|
1234 </content> |
|
|
|
1235 </entry> |
|
|
|
1236 |
|
|
|
1237 <entry> |
|
|
|
1238 <title>The Advent of Void: Day 23: extrace</title> |
|
|
|
1239 <link href="https://voidlinux.org/news/2018/12/advent-extrace.html"/> |
|
|
|
1240 <id>https://voidlinux.org/news/2018/12/advent-extrace</id> |
|
|
|
1241 <published>2018-12-23T00:00:00+00:00</published> |
|
|
|
1242 <updated>2018-12-23T00:00:00+00:00</updated> |
|
|
|
1243 <content type="xhtml"> |
|
|
|
1244 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1245 <p><p>Today’s tool is <a href="https://github.com/chneukirchen/extrace">extrace(1)</a>, a small, simple and powerful tool to trace program executions. |
|
|
|
1246 By default <code class="language-plaintext highlighter-rouge">extrace(1)</code> will look at system wide executions, alternatively it can start a new process or start looking for executions in child processes of a specified pid. |
|
|
|
1247 The output is a tree like structure including the process id, the command and its arguments, additional flags can add the environment of the process, the executing user or even the exit status and runtime duration.</p> |
|
|
|
1248 |
|
|
|
1249 <p>The following example is the truncated <code class="language-plaintext highlighter-rouge">extrace(1)</code> output of checking the <code class="language-plaintext highlighter-rouge">dhcpcd(8)</code> man page and then executing <code class="language-plaintext highlighter-rouge">dhcpcd -k</code> to release all interfaces followed by executions from dhcpcd hooks.</p> |
|
|
|
1250 |
|
|
|
1251 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ extrace |
|
|
|
1252 911 man dhcpcd |
|
|
|
1253 912 less -T /tmp/man.XXXXH357hT /tmp/man.XXXXEOs5Na |
|
|
|
1254 930 doas dhcpcd -k |
|
|
|
1255 930 dhcpcd -k |
|
|
|
1256 932 /bin/sh /usr/libexec/dhcpcd-run-hooks |
|
|
|
1257 933 rm -f /run/dhcpcd/resolv.conf/br0.ra |
|
|
|
1258 936 sed -n 's/^domain //p' br0.dhcp |
|
|
|
1259 938 sed -n 's/^search //p' br0.dhcp |
|
|
|
1260 941 sed -n 's/^nameserver //p' br0.dhcp |
|
|
|
1261 943 cat /etc/resolv.conf.head |
|
|
|
1262 944 cmp -s /etc/resolv.conf /run/dhcpcd/resolv.conf.br0.ra |
|
|
|
1263 945 cat /run/dhcpcd/resolv.conf.br0.ra |
|
|
|
1264 946 rm -f /run/dhcpcd/resolv.conf.br0.ra |
|
|
|
1265 947 chmod 644 /etc/resolv.conf |
|
|
|
1266 948 rm -f /run/dhcpcd/resolv.conf.br0.ra |
|
|
|
1267 950 sed '/^# Generated by dhcpcd/,/^# End of dhcpcd/d' /etc/ntpd.conf |
|
|
|
1268 951 cmp -s /etc/ntpd.conf /run/dhcpcd/ntp.conf.br0.ra |
|
|
|
1269 952 rm -f /run/dhcpcd/ntp.conf.br0.ra |
|
|
|
1270 ... |
|
|
|
1271 </code></pre></div></div> |
|
|
|
1272 |
|
|
|
1273 <p>Here is another example where we trace the executions by make into a file, with the <code class="language-plaintext highlighter-rouge">-t</code> flag <code class="language-plaintext highlighter-rouge">extrace(1)</code> adds the exit status and the duration.</p> |
|
|
|
1274 |
|
|
|
1275 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mblaze$ extrace -t -o make.extrace make |
|
|
|
1276 cc -Wall -Wno-switch -Wextra -g -O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2 -c -o msed.o msed.c |
|
|
|
1277 cc msed.o blaze822.o mymemmem.o mytimegm.o seq.o slurp.o -lrt -o msed |
|
|
|
1278 mblaze$ cat make.extrace |
|
|
|
1279 1992+ make |
|
|
|
1280 1993+ uname |
|
|
|
1281 1993- uname exited status=0 time=0.000s |
|
|
|
1282 1994+ cc -Wall -Wno-switch -Wextra -g -O2 -fstack-protector-strong '-D_FORTIFY_SOURCE=2' -c -o msed.o msed.c |
|
|
|
1283 1995+ /usr/lib/gcc/x86_64-unknown-linux-gnu/8.2.0/cc1 -quiet -D '_FORTIFY_SOURCE=2' msed.c -quiet -dumpbase msed.c '-mtune=generic' '-march=x86-64' -auxbase-strip msed.o -g -O2 -Wall -Wno-switch -Wextra -fstack-protector-strong -o /tmp/ccDnNZ91.s |
|
|
|
1284 1995- /usr/lib/gcc/x86_64-unknown-lin exited status=0 time=0.212s |
|
|
|
1285 1996+ as --64 -o msed.o /tmp/ccDnNZ91.s |
|
|
|
1286 1996- as exited status=0 time=0.019s |
|
|
|
1287 1994- cc exited status=0 time=0.234s |
|
|
|
1288 1997+ cc msed.o blaze822.o mymemmem.o mytimegm.o seq.o slurp.o -lrt -o msed |
|
|
|
1289 1998+ /usr/lib/gcc/x86_64-unknown-linux-gnu/8.2.0/collect2 [...] |
|
|
|
1290 1999- /usr/bin/ld exited status=0 time=0.027s |
|
|
|
1291 1998- /usr/lib/gcc/x86_64-unknown-lin exited status=0 time=0.029s |
|
|
|
1292 1997- cc exited status=0 time=0.031s |
|
|
|
1293 2000+ /bin/sh -c 'test -n "$SOURCE_DATE_EPOCH" || BUILDDATE=$(date '\''+ (%Y-%m-%d)'\''); \'$'\n'' printf '\''#!/bin/sh\nprintf "User-Agent: mblaze/%s%s\\n"\n'\'' \'$'\n'' "$({ git describe --always --dirty 2>/dev/null || cat VERSION; } | sed '\''s/^v//'\'')" \'$'\n'' "$BUILDDATE" >museragent' |
|
|
|
1294 2001+ date '+ (%Y-%m-%d)' |
|
|
|
1295 2001- date exited status=0 time=0.000s |
|
|
|
1296 2004+ sed 's/^v//' |
|
|
|
1297 2005+ git describe --always --dirty |
|
|
|
1298 2005- git exited status=0 time=0.008s |
|
|
|
1299 2004- sed exited status=0 time=0.009s |
|
|
|
1300 2000- /bin/sh exited status=0 time=0.012s |
|
|
|
1301 2006+ chmod +x museragent |
|
|
|
1302 2006- chmod exited status=0 time=0.001s |
|
|
|
1303 1992- make exited status=0 time=0.286s |
|
|
|
1304 </code></pre></div></div> |
|
|
|
1305 </p> |
|
|
|
1306 </div> |
|
|
|
1307 </content> |
|
|
|
1308 </entry> |
|
|
|
1309 |
|
|
|
1310 <entry> |
|
|
|
1311 <title>The Advent of Void: Day 22: autossh</title> |
|
|
|
1312 <link href="https://voidlinux.org/news/2018/12/advent-autossh.html"/> |
|
|
|
1313 <id>https://voidlinux.org/news/2018/12/advent-autossh</id> |
|
|
|
1314 <published>2018-12-22T00:00:00+00:00</published> |
|
|
|
1315 <updated>2018-12-22T00:00:00+00:00</updated> |
|
|
|
1316 <content type="xhtml"> |
|
|
|
1317 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1318 <p><p>SSH. The very use of the acronym screams “Knows which end of the computer |
|
|
|
1319 needs to be plugged in.” It can be used to confirm your computers are working, |
|
|
|
1320 to transfer files (two ways!), as a SOCKS proxy (didn’t know this? Go read the |
|
|
|
1321 man page, option <code class="language-plaintext highlighter-rouge">-D</code>, it’s brilliant), and even as a poor man’s VPN.</p> |
|
|
|
1322 |
|
|
|
1323 <p>Poor man’s VPN?</p> |
|
|
|
1324 |
|
|
|
1325 <p>Well, I have a computer that lives behind a firewall. I can’t adjust the |
|
|
|
1326 firewall. But I want to use that computer. Legally, mark you, I have permission |
|
|
|
1327 from the network owners, it’s just not practical to adjust the firewall.</p> |
|
|
|
1328 |
|
|
|
1329 <p>What to do?</p> |
|
|
|
1330 |
|
|
|
1331 <p>Well, set up an ssh tunnel of course! In this case, <code class="language-plaintext highlighter-rouge">localhost</code> is the target |
|
|
|
1332 computer, and the other hostname is a place I can access more readily than |
|
|
|
1333 <code class="language-plaintext highlighter-rouge">localhost</code>.</p> |
|
|
|
1334 |
|
|
|
1335 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ ssh -NR $portA:localhost:22 nbis.gov |
|
|
|
1336 </code></pre></div></div> |
|
|
|
1337 |
|
|
|
1338 <p>But problems. My local network isn’t the best, and sometimes when there is a |
|
|
|
1339 power outage my computer comes up first. I could just create a runit service |
|
|
|
1340 to make sure the ssh connection is running…. and I did, for a while, but |
|
|
|
1341 when it failed it failed very badly. Finally, I settled on <code class="language-plaintext highlighter-rouge">autossh</code>. What |
|
|
|
1342 does <code class="language-plaintext highlighter-rouge">autossh</code> do? Automatically runs an SSH command. You can configure a lot |
|
|
|
1343 about how it does this, how many times it tries, how long it waits between |
|
|
|
1344 tries, what the backoffs are, everything like that. So, I combined the best |
|
|
|
1345 of both worlds: autossh (which should never crash) wrapped in a user service |
|
|
|
1346 with runit (which should always remember to start autossh)</p> |
|
|
|
1347 |
|
|
|
1348 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#!/bin/sh |
|
|
|
1349 [ -r ./conf ] && . ./conf |
|
|
|
1350 : ${portA:=2222} |
|
|
|
1351 : ${targetHost:=localhost} |
|
|
|
1352 exec autossh -M 0 -NR ${portA}:localhost:22 $targetHost |
|
|
|
1353 </code></pre></div></div> |
|
|
|
1354 |
|
|
|
1355 <p>And my problem is (mostly) solved! So, in summary: SSH is an amazing tool, and |
|
|
|
1356 <code class="language-plaintext highlighter-rouge">autossh</code> helps you keep your ssh tunnels alive.</p> |
|
|
|
1357 |
|
|
|
1358 <p>One point about configuration, from the manpage:</p> |
|
|
|
1359 |
|
|
|
1360 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Other than the flag to set the connection monitoring port, autossh uses |
|
|
|
1361 environment variables to control features. ssh seems to be still |
|
|
|
1362 collecting letters for options, and this seems the easiest way to avoid |
|
|
|
1363 collisions. |
|
|
|
1364 </code></pre></div></div> |
|
|
|
1365 |
|
|
|
1366 <p>and there are 13 environment variables right now, so plenty you can choose to |
|
|
|
1367 configure.</p> |
|
|
|
1368 |
|
|
|
1369 <p>For more information, examples, and to see the list of relevant environment |
|
|
|
1370 variables, please read the |
|
|
|
1371 <a href="https://man.voidlinux.org/1/autossh">autossh(1) manpage</a>.</p> |
|
|
|
1372 </p> |
|
|
|
1373 </div> |
|
|
|
1374 </content> |
|
|
|
1375 </entry> |
|
|
|
1376 |
|
|
|
1377 <entry> |
|
|
|
1378 <title>The Advent of Void: Day 21: fex</title> |
|
|
|
1379 <link href="https://voidlinux.org/news/2018/12/advent-fex.html"/> |
|
|
|
1380 <id>https://voidlinux.org/news/2018/12/advent-fex</id> |
|
|
|
1381 <published>2018-12-21T00:00:00+00:00</published> |
|
|
|
1382 <updated>2018-12-21T00:00:00+00:00</updated> |
|
|
|
1383 <content type="xhtml"> |
|
|
|
1384 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1385 <p><p><a href="https://www.semicomplete.com/projects/fex/">fex</a> is a simple yet |
|
|
|
1386 powerful field extraction tool for working with text.</p> |
|
|
|
1387 |
|
|
|
1388 <p>If you spend enough time in a shell fiddling with code or data, you |
|
|
|
1389 inevitably want to pull fields out of some text you have. For example, |
|
|
|
1390 say you want the hex sha256sum of a file, minus the name:</p> |
|
|
|
1391 |
|
|
|
1392 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sha256sum launch-codes |
|
|
|
1393 a0cd7db7343bed89416660b4f92c43fe7b556439daa2e26e9844ce82491191c6 launch-codes |
|
|
|
1394 </code></pre></div></div> |
|
|
|
1395 |
|
|
|
1396 <p>You could write this output to a file and remove the filename from it |
|
|
|
1397 with a text editor, or use cut or awk. However, fex can save you a bit |
|
|
|
1398 of time by extracting the first field containing the checksum for you:</p> |
|
|
|
1399 |
|
|
|
1400 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sha256sum launch-codes | fex 1 |
|
|
|
1401 a0cd7db7343bed89416660b4f92c43fe7b556439daa2e26e9844ce82491191c6 |
|
|
|
1402 </code></pre></div></div> |
|
|
|
1403 |
|
|
|
1404 <p>Or, say you want a list of all home directories from passwd. To do this, |
|
|
|
1405 we ask fex to split by colon and select the sixth field:</p> |
|
|
|
1406 |
|
|
|
1407 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ fex </etc/passwd :6 |
|
|
|
1408 /root |
|
|
|
1409 /dev/null |
|
|
|
1410 /var/lib/colord |
|
|
|
1411 /var/empty |
|
|
|
1412 ... |
|
|
|
1413 </code></pre></div></div> |
|
|
|
1414 |
|
|
|
1415 <p>Or maybe we want <code class="language-plaintext highlighter-rouge">gid:login</code> pairs to work with:</p> |
|
|
|
1416 |
|
|
|
1417 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ fex </etc/passwd ':{4,1}' |
|
|
|
1418 0:root |
|
|
|
1419 99:nobody |
|
|
|
1420 999:colord |
|
|
|
1421 22:dbus |
|
|
|
1422 ... |
|
|
|
1423 </code></pre></div></div> |
|
|
|
1424 |
|
|
|
1425 <p>Here we can see that fex will keep the separator we split by, letting us |
|
|
|
1426 reduce the data to only what we want while maintaining its format. And, |
|
|
|
1427 it allows us to rearrange fields using <code class="language-plaintext highlighter-rouge">{N,M,...}</code> selectors.</p> |
|
|
|
1428 |
|
|
|
1429 <p>You can alse use fex to pluck fields by narrowing the selection with |
|
|
|
1430 different split characters. So let’s say we want to get an idea of what |
|
|
|
1431 the most common pairs of ‘subject: verb’ are in commit messages for |
|
|
|
1432 <a href="https://github.com/void-linux/void-packages">void-packages</a> – maybe to |
|
|
|
1433 see which packages receive the most updates.</p> |
|
|
|
1434 |
|
|
|
1435 <p>To do this, we’ll use git to search for commit message subjects with |
|
|
|
1436 a colon and pipe that to fex. Using fex, we’ll write our first selector |
|
|
|
1437 (<code class="language-plaintext highlighter-rouge">:1</code>) to take the first field behind the colon. We’ll then use a second |
|
|
|
1438 selector (<code class="language-plaintext highlighter-rouge">:2 1</code>) to take the text after the colon, split that by |
|
|
|
1439 spaces, and select the first word from that. With this, we get a list of |
|
|
|
1440 subjects and verbs we can sort and count:</p> |
|
|
|
1441 |
|
|
|
1442 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ git log --pretty=%s --grep ':' | fex ':1' ':2 1' | sort | uniq -c | sort -rh | head |
|
|
|
1443 328 youtube-dl update |
|
|
|
1444 206 xbps-git bump |
|
|
|
1445 160 git update |
|
|
|
1446 151 Adapta update |
|
|
|
1447 149 ImageMagick update |
|
|
|
1448 143 exiftool update |
|
|
|
1449 142 firefox update |
|
|
|
1450 136 kernel update |
|
|
|
1451 133 rpi-kernel update |
|
|
|
1452 129 python-setuptools update |
|
|
|
1453 </code></pre></div></div> |
|
|
|
1454 |
|
|
|
1455 <p>From that, we can see that updates make up all but one of the top ten |
|
|
|
1456 pairs, with xbps-git bumps being the second in line after youtube-dl |
|
|
|
1457 updates. This only covers basic use of fex, too – you can also select |
|
|
|
1458 field ranges, fields matching a regular expression, and combine all of |
|
|
|
1459 these.</p> |
|
|
|
1460 |
|
|
|
1461 <p>There are lots of ways to use fex in day to day data munging, |
|
|
|
1462 programming, and writing your own tools. For many field extraction |
|
|
|
1463 tasks, fex allows you to easily get the data you want without writing |
|
|
|
1464 small awk programs or messing with cut. Plus, it’s just fun to use.</p> |
|
|
|
1465 |
|
|
|
1466 <p>For more information and examples, please read the <a href="https://man.voidlinux.org/1/fex">fex(1) |
|
|
|
1467 manpage</a>.</p> |
|
|
|
1468 </p> |
|
|
|
1469 </div> |
|
|
|
1470 </content> |
|
|
|
1471 </entry> |
|
|
|
1472 |
|
|
|
1473 <entry> |
|
|
|
1474 <title>The Advent of Void: Day 20: xsnow</title> |
|
|
|
1475 <link href="https://voidlinux.org/news/2018/12/advent-xsnow.html"/> |
|
|
|
1476 <id>https://voidlinux.org/news/2018/12/advent-xsnow</id> |
|
|
|
1477 <published>2018-12-20T00:00:00+00:00</published> |
|
|
|
1478 <updated>2018-12-20T00:00:00+00:00</updated> |
|
|
|
1479 <content type="xhtml"> |
|
|
|
1480 <div xmlns="http://www.w3.org/1999/xhtml"> |
|
|
|
1481 <p><p>If you’re dreaming of a white christmas, dream no more with the quick |
|
|
|
1482 and easy installation of xsnow!</p> |
|
|
|
1483 |
|
|
|
1484 <p>This small utility is best suited to window manager environments that |
|
|
|
1485 do not tile, and will cause snow to fall on your desktop. The snow |
|
|
|
1486 will collect on top of your windows and you’ll even have periodic |
|
|
|
1487 visits from Santa flying across your desktop.</p> |
|
|
|
1488 |
|
|
|
1489 <p>Its a quick and fun utility, and worth a bit of Christmas cheer as we |
|
|
|
1490 go into the final days of the Void Advent.</p> |
|
|
|
1491 </p> |
|
|
|
1492 </div> |
|
|
|
1493 </content> |
|
|
|
1494 </entry> |
|
|
|
1495 |
|
|
|
1496 |
|
|
|
1497 </feed> |
|