Language Selection

English French German Italian Portuguese Spanish

July 2018

Programming: GitLab, C++17, GCC

Filed under
Development
  • Introducing freedesktop.org GitLab

    This is quite a long post. The executive summary is that freedesktop.org now hosts an instance of GitLab, which is generally available and now our preferred platform for hosting going forward. We think it offers a vastly better service, and we needed to do it in order to offer the projects we host the modern workflows they have been asking for.

    In parallel, we’re working on making our governance, including policies, processes and decision making, much more transparent.

  • GitLab Is A Vast Improvement To FreeDesktop.org's Infrastructure

    Taking place the past few months has been migrating the FreeDesktop.org infrastructure to GitLab and the developers/administrators involved are quite happy with this big improvement to better their code hosting, issue tracking, etc.

    The FreeDesktop.org GitLab deployment is happening on Google Compute Engine to also replace aging FreeDesktop.org hardware in the process. Among the FreeDesktop.org projects moving over to GitLab has been Mesa, X.Org, and other sub-projects. This also follows a larger trend among other free software projects centering on GitLab for their infrastructure needs with the previous most notable project having been GNOME.

  • C++17 Filesystem Support Lands In LLVM's Libc++ Library

    This week support for the official C++17 "filesystem" feature landed within LLVM's libc++ standard library.

    C++17 adds file-system abstractions based upon the Boost library's filesystem support. This functionality makes it easier for C++ programs to perform file/directory operations across platforms in a standard manner. The file-system technical specification continues to be available here for all of the details.

  • Updated ARM Patches Posted For Mitigating Spectre V1 With GCC Compiler

    ARM's Richard Earnshaw has posted a revised version for their months-in-development patch-set for mitigating against unsafe data speculation by the GCC code compiler. This new Spectre V1 mitigation for ARM 64-bit would be exposed via a new -mtrack-speculation compiler switch.

    This second version of the Spectre V1 mitigation work led by ARM for the GCC compiler is now available. This new version incorporates the feedback garnered months ago when these initial patches were published and uses a new approach for tracking data speculation to see whether the CPU's control flow speculation matches the data flow calculations.

Graphics: Vulkan and Mesa

Filed under
Graphics/Benchmarks
  • Apple Accepts Updated MoltenVK-Using App/Game For Vulkan API On iOS

    Earlier this month we reported on a game studio finding their MoltenVK-using game rejected from Apple's App Store. Fortunately, that situation is now firmly resolved and Apple has allowed this Vulkan-over-Metal game into their iOS marketplace.

    While this game making use of Vulkan on iOS via the MoltenVK translation layer to map to Apple's Metal API was initially in the App Store earlier in the year, on their latest update they had it rejected by Apple. The company asserted that MoltenVK was making use of non-public APIs.

  • All Gallium3D Drivers Getting ASTC Compression Support, RadeonSI Hits OpenGL ES 3.2

    The latest notable patch series by prolific Mesa contributor Marek Olšák of AMD is on allowing ASTC texture compression support for all Gallium3D drivers.

    This means of universal ASTC texture compression for all Gallium3D hardware drivers not implementing the capability within the GPU hardware is for decompressing the textures on the CPU to a supported uncompressed format prior to uploading it to the GPU.

KDE: Dolphin and openQA, Slackware Updates and Usability/Productivity Roundup

Filed under
KDE
  • Dolphin and openQA and other assorted bits

    Part of this post is about openQA, openSUSE’s automated tool which tests a number of different scenarios, from installation to the behavior of the different desktop environments, plus testing the freshest code from KDE git. Recently, thanks to KDE team member Fabian Vogt, there has been important progress when testing KDE software.

  • KDE 5_18.07 for Slackware, includes Plasma 5.13.3 and Qt 5.11.1

    Last week, Slackware-current updated its poppler package . The ‘ktown’ repository for Plasma5 contains a custom built ‘poppler’ package, one that includes Qt5 support. That means that the ‘ktown’ version needs to be kept in sync with the Slackware version to prevent breakage in your Slackware installation. Therefore I recompiled my ‘poppler’ and at the same time, I used the opportunity to grab all the latest sources from the KDE download server and built a whole new and fresh Plasma5 experience for Slackware.

    Important to know is that I have bridged the ‘latest’ repository to the ‘testing’ repository. Meaning: I have said goodbye to the LTS (Long Term Support) versions of Qt5 (5.9.6) and Plasma (5.12) and will focus again on the bleeding edge of KDE’s development.
    I did this after talking to Patrick to see what his ideas are about Plasma5 and whether he would adopt LTS releases of the software, or perhaps stick with the latest and greatest. Based on discussions in the LinuxQuestions.org forum it was clear that the latest Qt (5.11) combined with the latest Plasma Desktop (5.13) gets rid of bugs that have been annoying Slackware users who have been installing my ‘ktown’ packages. So that settled it, and the difference between ‘latest’ and ‘testing’ is gone again. In future I will probably use the ‘testing’ repository to test Wayland usability in Slackware, like I did in the past. For that reason, it’s best if you point your package manager (slackpkg+ comes to mind) to the ‘latest‘ URL instead of using the ‘testing‘ URL.

  • This week in Usability & Productivity, part 29

    Another week, another set of Usability and Productivity improvements! This week we fixed a lot of bugs in preparation for the KDE Applications 18.08 release as well as for Plasma itself.

Linux 4.18 Lands Random Patch To Fix Slow Boot Times For Some Systemd-Based Boxes

Filed under
Linux

Last week I wrote about a change for the Linux kernel would better protect entropy sent in from user-space as a change driven as a result of some Linux distributions (such as Fedora) using a CPU jitter random number generator to resolve the lack of entropy at boot time and that on systemd-enabled Linux systems sometimes leading to slow boot times. That change has now ended up being queued into Linux 4.18 rather than having to wait for 4.19.

Read more

10 GNU/Linux Video Editing Apps in AppImage

Filed under
Software
Movies

Free/libre video editors like Kdenlive, plus tools like Natron compositor and Jubler subtitle editor are now available in AppImage format. This including OpenShot, Shotcut, VidCutter, Avidemux. You can make executable and simply double-click to run these programs in any GNU/Linux distro. These applications in AppImage format are simple like EXE (Windows) and DMG (macOS) to download, store, and run. Plus, AppImage format is "portable" in sense you don't need to install it. Download them below and run your favorite even in LiveCD session.

Read more

Helios4 Arm-Based Open Source NAS SBC For Linux/FreeBSD

Filed under
Hardware

NAS is an acronym for Network-attached storage. A NAS server or computer can store and retrieve files from a centralized location on your LAN or Intranet. NAS device typically uses Ethernet-based connections and do not have display output. NAS do not need keyboard or mouse to operate. You can manage your NAS using an ssh-based tool or browser-based configuration tool.

NAS allows users to share data using standard protocols such as NFS, CIFS, SSH, iSCSI, FTP, SSH and more. You can turn NAS into a personal cloud. NAS supports MS-Windows, macOS, Linux and Unix clients. Advanced NAS features may include full-disk encryption and virtualization support.

Read more

Also: Weekend Reading: Raspberry Pi Projects

UniverCity, an isometric university management game arrives in Early Access next month, developed on Linux

Filed under
Development
Gaming

Yep. I use ArchLinux to develop the game on and test SteamOS and Windows via a VM.

Read more

EasySSH is your next favorite GUI SSH client

Filed under
Software
Security

For some tasks, I'm a Linux purist and refuse to budge from the command line. But other tasks could be made a bit more efficient with a GUI tool. One such task is having to log into a data center full of Linux servers. Instead of issuing the command USER@IP (where USER is a user name and IP is the server IP) over and over, wouldn't it be nice to have a simple, one-trick-pony GUI tool that would allow you to store those logins ? Fortunately, there are a few such tools available. The one I use the most is EasySSH. This particular take on the SSH GUI tool doesn't offer much in the way of bells and whistles, but it does a great job of keeping all my SSH logins saved, so a login is but a click away.

I know what you're thinking.

Security!

Yes. There is one major caveat to this tool. Anyone who has access to the tool can gain access to your servers. Why? Because usernames/passwords are required to be saved. So if you want to use this tool (which I do), do so only on a machine you trust and that can't (in any way) fall into the wrong hands. Even with that glaring security issue, EasySSH is an application you should consider for your busy Linux remote admin work. Let me show you how to install and use it. I'll be demonstrating on Elementary OS (as EasySSH was developed specifically for Elementary OS), but you can install the tool on any platform that supports Flatpak.

Read more

Also: SPAKE2 In Golang: Elliptic Curves Primer

More in Tux Machines

Firefox Nightly, Mozilla Localization and "Browsers are not rendering engines"

  • Firefox Nightly: These Weeks in Firefox: Issue 74
  • Mozilla Localization (L10N): How to unleash the full power of Fluent as a localizer

    Fluent is an extremely powerful system, providing localizers with a level of flexibility that has no equivalent in other localization systems. It can be as straightforward as older formats, thanks to Pontoon’s streamlined interface, but it requires some understanding of the syntax to fully utilize its potential. Here are a few examples of how you can get the most out of Fluent. But, before jumping in, you should get familiar with our documentation about Fluent syntax for localizers, and make sure to know how to switch to the Advanced FTL mode, to work directly with the syntax of each message.

  • Stuart Langridge: Browsers are not rendering engines

    An interesting writeup by Brian Kardell on web engine diversity and ecosystem health, in which he puts forward a thesis that we currently have the most healthy and open web ecosystem ever, because we’ve got three major rendering engines (WebKit, Blink, and Gecko), they’re all cross-platform, and they’re all open source. This is, I think, true. Brian’s argument is that this paints a better picture of the web than a lot of the doom-saying we get about how there are only a few large companies in control of the web. This is… well, I think there’s truth to both sides of that. Brian’s right, and what he says is often overlooked. But I don’t think it’s the whole story. You see, diversity of rendering engines isn’t actually in itself the point. What’s really important is diversity of influence: who has the ability to make decisions which shape the web in particular ways, and do they make those decisions for good reasons or not so good? Historically, when each company had one browser, and each browser had its own rendering engine, these three layers were good proxies for one another: if one company’s browser achieved a lot of dominance, then that automatically meant dominance for that browser’s rendering engine, and also for that browser’s creator. Each was isolated; a separate codebase with separate developers and separate strategic priorities. Now, though, as Brian says, that’s not the case. Basically every device that can see the web and isn’t a desktop computer and isn’t explicitly running Chrome is a WebKit browser; it’s not just “iOS Safari’s engine”. A whole bunch of long-tail browsers are essentially a rethemed Chrome and thus Blink: Brave and Edge are high up among them.

FSF Chasing Members and GNU Project Has a Dozen New Releases This Month

  • Don’t miss your chance to win fabulous prizes: Get your friends to join the FSF!

    As you may already know, every associate member is incredibly valuable to the Free Software Foundation (FSF). Since most of our funding comes from individual donations and memberships, associate members aren’t just a number. Each new membership magnifies our reach and our ability to effect social change, by demonstrating your commitment to the crucial cause of software freedom. Right now, FSF associate members have the opportunity to reap some fantastic rewards by participating in our virtual LibrePlanet membership drive. We still have the raffle prizes generously donated by Technoethical, Vikings, JMP.chat, and ThinkPenguin for this year’s LibrePlanet conference, which we held entirely online this year due to the COVID-19 pandemic. Now, we’re giving them away to those who go the extra mile to help us grow by referring new annual associate members to sign up!

  • May GNU Spotlight with Mike Gerwitz: 12 new releases!

    bison-3.6.2 denemo-2.4.0 emms-5.4 freeipmi-1.6.5 gcc-10.1.0 gdb-9.2 gnuastro-0.12 gnuhealth-3.6.4 mediagoblin-0.10.0 nano-4.9.3 nettle-3.6 parallel-20200522

Programming: SDL, QML, Python, Awk/Bash and More

  • Photoframe Hack

    Sometimes you just want to get something done. Something for yourself. You do not intend it to be reused, or even pretty. You build a tool. My tool was a photoframe with some basic overlays. I wanted the family calendar, some weather information (current temperature + forecast), time, and the next bus heading for the train station. [...] I also have a bunch of REST calls to my local home assistant server. Most of these reside in the HassButton class, but I also get the current temperature from there. These are hardcoded for my local network, so needs refactoring to be used outside of my LAN. All of these interfaces require API keys of one kind or another – be it a proper key, or a secret URL. These are pulled from environment variables in main.cpp and then exposed to QML. That way, you can reuse the components without having to share your secrets.

  • Writing the Ultimate Locking Check

    In theory a clever programmer could discover all the bugs in a piece of software just by examining it carefully, but in reality humans can't keep track of everything and they get distracted easily. A computer could use the same logic and find the bugs through static analysis. There are two main limitations for static analysis. The first is that it is hard to know the difference between a bug and feature. Here we're going to specify that holding a lock for certain returns is a bug. This rule is generally is true but occasionally the kernel programmers hold a lock deliberately. The second limitation is that to understand the code, sometimes you need to understand how the variables are related to each other. It's difficult to know in advance which variables are related and it's impossible to track all the relationships without running out of memory. This will become more clear later. Nevertheless, static analysis can find many bugs so it is a useful tool. Many static analysis tools have a check for locking bugs. Smatch has had one since 2002 but it wasn't exceptional. My first ten patches in the Linux kernel git history fixed locking bugs and I have written hundreds of these fixes in the years since. When Smatch gained the ability to do cross function analysis in 2010, I knew that I had to re-write the locking check to take advantage of the new cross function analysis feature. When you combine cross function analysis with top of the line flow analysis available and in depth knowledge of kernel locks then the result is the Ultimate Locking Check! Unfortunately, I have a tendency towards procrastination and it took me a decade to get around to it, but it is done now. This blog will step through how the locking analysis works.

  • Raising the ground

    To read this blog I recommend you to be familiar with C programming language and (not mandatory) basics about SDL2. The main goal of this blog is not to give you a copy and paste code, instead it will guide you along the way until you get results by your own merit, also if you find any issues/mistakes/room for improvement please leave a response, thanks for reading.

  • PyCoder’s Weekly: Issue #422 (May 26, 2020)
  • Real Python: A Beginner's Guide to Pip

    What is pip? pip is the standard package manager for Python. It allows you to install and manage additional packages that are not part of the Python standard library. This course is an introduction to pip for new Pythonistas.

  • Awk Cheatsheet And Examples

    Awk is a great utility for text parsing and maniupulation. All unix operating systems have Awk installed by default. If you are on Windows. Please check out at the bottom of this tutorial on how to install and enable awk on Windows.

  • Printing repeats within repeats, and splitting a list into columns

    Repeats within repeats. BASH printf is a complex piece of machinery. The man page says a printf command should look like printf FORMAT [ARGUMENT]..., which makes it seem the "argument" is the thing to be printed and the "format" describes how.

Devices/Embedded With Linux

  • Gemini Lake industrial mini-PCs are loaded with USB and COM ports

    GigaIPC latest QBiX Series industrial mini-PCs run Linux or Windows on Intel Gemini Lake and offer up to 8x USB and 5x COM ports plus dual displays, GbE, SATA III, M.2, and ruggedization features. Taiwanese computer vendor Gigabyte primarily produces consumer and enterprise desktop PC and server equipment, so we were surprised in 2017 when it launched an embedded 3.5-inch, Intel Apollo Lake GA-SBCAP3350 SBC. The following year in 2018, Gigabyte spun off GigaIPC as an embedded unit, and it has already generated a large catalog of Intel-based products including Micro-ATX, Mini-ITX, thin Mini-ITX, and 110 x 105mm “10×10” boards. There are 15 different 3.5-inch “QBi Pro” boards much like the GA-SBCAP3350, but also available with Whiskey Lake and Kaby Lake-U processors.

  • 19″ Rackmounts Support up to 12 Raspberry Pi SBCs

    Last time, we wrote about myelectronics.nl we covered their Tesla Cybertruck Case for Intel NUCs which housed the mini PC into a mini CyberTruck looking enclosure. The company has now come up with new housing solutions specifically designed for Raspberry Pi 1/2/3/4 Model B/B+ boards.

  • PoE-ready Ryzen V1000 SBC is all about camera control

    Axiomtek’s “MIRU130” SBC targets embedded vision applications with a Ryzen V1000 SoC, 4x USB 3.1 Gen2, HDMI and DP ports, cam triggers and lighting controls, 2x M.2, PCIe x16, and 4x GbE ports, 2x of which offer PoE. Axiomtek recently launched a CAPA13R, joineing Seco’s similarly 3.5-inch SBC-C90 as the only SBCs we have seen based on AMD’s Ryzen Embedded V100. Now Axiomtek has returned with a larger, V1000-based MIRU130 motherboard with a 244 x 170mm form factor that falls in between Mini-ITX and Micro-ATX.

  • IAR Systems Delivers Efficient Embedded Software Building on Linux

    Through the C/C++ compiler and debugger toolchain IAR Embedded Workbench®, IAR Systems provides its customers with the market's most diverse microcontroller support as well as adapted licensing options to fit different organizations' needs. This flexibility is now extended to the build environment as the well-known build tools in IAR Embedded Workbench now support Linux. The tools offer leading code quality, outstanding optimizations for size and speed, and fast build times. Supporting implementation in Linux-based frameworks for automated application build and test processes, the tools enable large-scale deployments of critical software building and testing and is suitable for installations ranging from a few licenses on a small build server, to massive installations with several hundreds of parallel builds active at the same time.

  • Librem 5 April 2020 Software Development Update

    This is another incarnation of the software development progress for the Librem 5. This time for April 2020 (weeks 14-18). Some items are covered in more detail in separate blog posts at https://puri.sm/news. The idea of this summaries is so you can have a closer look at the coding and design side of things. It also shows how much we’re standing on the shoulders of giants reusing existing software and how contributions are flowing back and forth. So these reports are usually rather link heavy pointing to individual merge requests on https://source.puri.sm/ or to the upstream side (like e.g. GNOME’s gitlab.)