Language Selection

English French German Italian Portuguese Spanish

About Tux Machines

Tuesday, 19 Nov 19 - Tux Machines is a community-driven public service/news site which has been around for over a decade and a half and primarily focuses on GNU/LinuxSubscribe now Syndicate content

Search This Site

Red Hat Leftovers

Filed under
Red Hat
  • Celebrating KEDA 1.0: Providing an event-driven scale capability for any container workload [Ed: Red Hat works with and for Microsoft, even gives Microsoft all the code]

    Today the community celebrates KEDA 1.0, an open source project aimed at providing event-driven scale capabilities for container workloads. Introduced earlier this year, Red Hat is contributing to KEDA both via the upstream project and by bringing its utility to customers using enterprise Kubernetes and containers with Red Hat OpenShift. We celebrate this milestone with Microsoft and the wider community.

  • We're all on a journey to cloud-native adoption together

    The Cloud Native Computing Foundation (CNCF) is hosting its core conference for the fifth year running. It’s official title is KubeCon + CloudNativeCon, but it’s most importantly the home for Kubernetes. Adopters, contributors, and Kubernetes-curious attendees add up to a record-breaking 12,000 people.

    I attended to cover the show for our community (full disclosure: my ticket was provided as an industry analyst). Here’s what I heard on day 1.

  • Container reality checks and more industry trends

    As part of my role as a senior product marketing manager at an enterprise software company with an open source development model, I publish a regular update about open source community, market, and industry trends for product marketers, managers, and other influencers. Here are five of my and their favorite articles from that update.

    [...]

    The impact: Another container reality check that also drives home why going through the trouble of standards can be worth it in the long run.

Google outlines plans for mainline Linux kernel support in Android

Filed under
Android
Linux
Google

This is an extremely long journey that results in every device shipping millions of lines of out-of-tree kernel code. Every shipping device kernel is different and device specific—basically no device kernel from one phone will work on another phone. The mainline kernel version for a device is locked in at the beginning of an SoC's initial development, so it's typical for a brand-new device to ship with a Linux kernel that is two years old. Even Google's latest and, uh, greatest device, the Pixel 4, shipped in October 2019 with Linux kernel 4.14, an LTS release from November 2017. It will be stuck on kernel 4.14 forever, too. Android devices do not get kernel updates, probably thanks to the incredible amount of work needed to produce just a single device kernel, and the chain of companies that would need to cooperate to do it. Thanks to kernel updates never happening, this means every new release of Android usually has to support the last three years of LTS kernel releases (the minimum for Android 10 is 4.9, a 2016 release). Google's commitments to support older versions of Android with security patches means the company is still supporting kernel 3.18, which is five years old now. Google's band-aid solution for this so far has been to team up with the Linux community and support mainline Linux LTS releases for longer, and they're now up to six years of support.

Last year, at Linux Plumbers Conference 2018, Google announced its initial investigation into bringing the Android kernel closer to mainline Linux. This year it shared a bit more detail on its progress so far, but it's definitely still a work in progress. "Today, we don't know what it takes to be added to the kernel to run on a [specific] Android device," Android Kernel Team lead Sandeep Patil told the group at LPC 2019. "We know what it takes to run Android but not necessarily on any given hardware. So our goal is to basically find all of that out, then upstream it and try to be as close to mainline as possible."

Read more

Thin clients showcase new Gemini Lake Refresh chips

Filed under
GNU
Linux
Hardware

The Futro S9010, S7010, and S5010, which we saw on Fanless Tech, are intended to run the proprietary, Linux-based eLux RP 6.7.0 CR, although they also support Windows 10 IoT Enterprise.

Read more

Audiocasts/Shows/Screencasts: Linux in the Ham Shack, Linux Headlines, LibreOffice 6.4 Alpha Quick Look and OpenIndiana 2019.10 Overview

Filed under
GNU
Linux

Announcing coreboot 4.11

Filed under
Linux

The coreboot project is proud to announce to have released coreboot 4.11.

This release cycle was a bit shorter to get closer to our regular schedule of releasing in spring and autumn.

Since 4.10 there were 1630 new commits by over 130 developers. Of these, about 30 contributed to coreboot for the first time.

Thank you to all contributors who made 4.11 what it is and welcome to the project to all new contributors!

Read more

Also: Coreboot 4.11 Brings Many Intel Improvements, New Support For Supermicro / Lenovo Boards

GNOME Development: Technical Reports From Federico Mena-Quintero and Jussi Pakkanen

Filed under
Development
GNOME
  • Refactoring the Length type

    Over a couple of years, librsvg's type that represents CSS lengths went from a C representation along the lines of "all data in the world is an int", to a Rust representation that uses some interesting type trickery:

    C struct with char for units.

    C struct with a LengthUnits enum.

    C struct without an embodied direction; each place that needs to normalize needs to get the orientation right.

    C struct with a built-in direction as an extra field, done at initialization time.

    Same struct but in Rust.

    An ugly but workable Parse trait so that the direction can be set at parse/initialization time.

    Three newtypes LengthHorizontal, LengthVertical, LengthBoth with a common core. A cleaned-up Parse trait. A macro to generate those newtypes.

    Replace the LengthDir enum with an Orientation trait, and three zero-sized types Horizontal/Vertical/Both that implement the trait.

    Replace most of the macro with a helper trait LengthTrait that has an Orientation associated type.

    Replace the helper trait with a single Length<T: Orientation> type, which puts the orientation as a generic parameter. The macro disappears and there is a single implementation for everything.

    Refactoring never ends!

  • Some intricacies of ABI stability

    As far as I know, there is no known real-world solution to this problem that would scale to a full operating system (i.e. all of Debian, FreeBSD or the like). If there are any university professors reading this needing problems for your grad students, this could be one of them. The problem itself is fairly simple to formulate: make it possible to run two different, ABI incompatible C++ standard libraries within one process. The solution will probably require changes in the compiler, linker and runtime loader. For example, you might extend symbol resolution rules so that they are not global, but instead symbols from, say library bar would first be looked up in its direct descendents (in this case only abi2) and only after that in other parts of the tree.

    To get you started, here is one potential solution I came up with while writing this post. I have no idea if it actually works, but I could not come up with an obvious thing that would break. I sadly don't have the time or know-how to implement this, but hopefully someone else has.

Graphics and Games: Intel, Vulkan, Trine and Google Stadia

Filed under
Graphics/Benchmarks
Gaming
  • Intel's Graphics Driver DoS Fix Last Week Has Hurt Power Consumption

    While the patches overnight about "substantial" improvement in power usage for Intel graphics on Linux were exciting on first look, it's less so now as it turns out last week's graphics driver security fixes is what regressed the Intel graphics power-savings.

    During last Tuesday's round of Intel security disclosures where there was a fix for denial of service in the Intel graphics driver, it turns out that the CVE-2019-0154 fix is what regressed power usage. The potential Denial of Service vulnerability was about unprivileged users being able to cause a DoS by reading select memory regions when the graphics hardware is in certain low-power states.

  • vkBasalt 0.2 Released With SMAA, Other Vulkan Post Processing Layer Enhancements

    The open-source vkBasalt project was started as a layer implementing Contrast Adaptive Sharpening (akin to Radeon Image Sharpening) for any Vulkan-using GPU/driver/software. The vkBasalt project then picked up FXAA support for this Vulkan post-processing layer while now a new release is out with more functionality added.

    The vkBasalt 0.2 release is out today and adds support for enhanced sub-pixel morphological anti-aliasing (SMAA) for higher-quality anti-aliasing than FXAA. SMAA is an image-based implementation of MLAA. This release also allows for multiple visual effects to be activated at once where as previously only any one of these image enhancing features could be active at a time.

  • Flax Engine Ported To Linux + Vulkan Rendering Support

    Flax Engine is the latest game engine seeing native Linux support and in the process the renderer also picked up Vulkan support.

    Flax Engine is a lesser known game engine that now works on Linux alongside Windows and Xbox One. After two years in development, the open beta release of Flax is expected soon.

  • The sad case of Trine on Mesa and Linux in 2019

    A year or so back I was planning on writing a congratulatory article to show my appreciation to Dave Airlie for fixing a long standing bug in Mesa that prevented users of older AMD Radeon HD cards from enjoying Trine Enchanted Edition on the free graphics stack. Bug 91808 resulted in a variety of graphical artifacts which, while not interfering with the gameplay, still put me off using that version of Trine.

    After several years and a great deal of evident frustration on his part, Airlie was able to track down the root of the problem and at long last was able to push a fix to master in May 2018. Airlie and developers like him are often the unsung heroes of FOSS development, and I wanted to give him a well deserved public pat on the back for his effort in fixing a bug which would only have affected such a small number of people.

    Unfortunately my research into this led me down an entirely different rabbit hole when I discovered the report for Bug 66067. A much more subtle misrendering of the game's colours and lighting, this bug is present in both Trine 2 and Trine Enchanted Edition and affects all Mesa users. Unlike the previous instance where it was an issue in the drivers that was the culprit, this issue is present in the game binaries themselves.

  • Google Stadia is out now for early adopters, well a few anyway

    Today, the Google Stadia streaming service officially launched for those who picked up the Founder or Premier Edition.

    Well, sort of anyway. Some people have it, a lot of people don't, we certainly don't and it appears the team at Stadia give different answers to different people on when you will actually be able to access it. I've also seen plenty of people whose orders have been cancelled without warning or explanation. Even worse still, some people have been sent their hardware without an access code. Google have, so far, done a terrible job at communicating on Stadia and so the initial launch doesn't seem to have gone down well at all.

SystemTap 4.2 release

Filed under
GNU
Linux
Red Hat

The SystemTap team announces release 4.2!

support for generating backtraces of different contexts; improved backtrace
tapset to include file names and line numbers; eBPF support extensions
including raw tracepoint access, prometheus exporter, procfs probes and
improved looping structures

= Where to get it

  https://sourceware.org/systemtap/ - Project Page
  https://sourceware.org/systemtap/ftp/releases/
  https://koji.fedoraproject.org/koji/packageinfo?packageID...
  git tag release-4.2 (commit 044a0640985ef0)

  There have been over 110 commits since the last release.
  There have been over 25 bugs fixed / features added since the last
release.

= SystemTap frontend (stap) changes

- When the -v option is set along with -L option, the output includes
  duplicate probe points which are distinguished by their PC address.

- Now it is possible to issue a backtrace using user specified pc, sp,
  and fp which can be used to generate backtraces of different contexts.
  This was introduced to get backtraces of user code from within the go
  runtime but it can also be used to do things like generating backtraces
  of user code from within signal handlers.

- The automatic printing implementation now differentiates between
  pointer and integer types, which are printed as hex or decimal
  respectively.

= SystemTap backend changes

- Initial support for multi-dimensional supports has been added to
  the stapbpf backend. Note that these arrays cannot be iterated upon
  with a foreach loop.

- The stapbpf backend now supports sorting by value in foreach loops.

- The stapbpf backend now supports the concatenation operator for
  userspace probes.

- The stapbpf backend now supports the target() function and -x option.

- The gettimeofday_* functions are now provided for the stapbpf backend.

- The stapbpf backend now supports order parameterization for begin
  and end probes.

- The stapbpf backend now supports stap-exporter extensions.

- The stapbpf backend now supports procfs probes. The implementation
  uses FIFO special files in /var/tmp/systemtap-$EFFUSER/MODNAME instead
  of the proc filesystem files.

- The eBPF backend now uses bpf raw tracepoints for kernel.trace("*")
  probes.  These have target variable arguments that match the
  arguments available for the traditional linux kernel modules
  tracepoints.  Support for the older bpf tracepoint arguments can be
  forced with a --compatible=4.1 option on the command line.

- The compiler optimizes out probes with empty handlers. Previously,
  warnings were issued but, the probe was not internally removed. For
  example, this script now outputs a warning and an error as the only
  probe handler is empty:

      probe begin {}

  Additionally, probe handlers that evaluate to empty are also removed.
  For example, in this script, the begin probe is elided as $foo does
  not exist, however, an error won't be outputted because atleast one
  probe with a non-empty handler exists (probe begin):

      probe begin {
          print("Protected from elision")
      }

      probe end {
          if (@defined($foo)) { print("Evaluates to empty handler") }
      }

- The sys/sdt.h file changes the way i386 registers operands are
  sometimes named, due to an ambiguity.  A comment block explains.

= SystemTap tapset changes

- New backtracing functions print_[u]backtrace_fileline() have been added
  to the tapset. These functions behave similarly to print_[u]backtrace(),
  the only difference being that file names and line numbers are added
  to the backtrace.

= SystemTap sample scripts

All 180+ examples can be found at https://sourceware.org/systemtap/examples/
.

- Several sample scripts have been enabled to run on the stapbpf backend:

apps/libguestfs_log.stp
network/sk_stream_wait_memory.stp
memory/mmfilepage.meta
memory/mmwriteback.meta
general/ansi_colors.meta

- New stap-exporter sample script for the stapbpf backend:

syscallsrw.stp    Tallies the read and write syscalls.

= Examples of tested kernel versions

2.6.32 (RHEL6 x86_64)
4.15.0 (Ubuntu 18.04 x86_64)
4.18.0 (RHEL8 x86_64, aarch64, ppc64le, s390x)
5.0.7  (Fedora 29 x86_64)
5.3.8  (Fedora 30 i686)
5.3.9  (Fedora 31 x86_64)
5.4.0-rc  (Fedora 32 x86_64)

= Known issues with this release

- The array dump macros which are used with prometheus probes do not
entirely
  work with stapbpf as the macros use foreach loops which cannot be used
with
  multi-dimensional arrays yet.

- The user_string() function in the BPF tapsets uses the BPF
probe_read_str()
  helper, which only works correctly when there is no address translation
  between user and kernel address spaces. It has been restricted to x86_64
  only until the BPF infrastructure provides separate helpers for reading
user
  and kernel data.

= Coming soon

- More stapbpf functionality including full statistics aggregate support
and
  try-catch blocks.

= Contributors for this release

*Carlos O'Donell, Frank Ch. Eigler, Jafeer Uddin,
*Richard Purdie, Ross Burton, *Sagar Patel, Serhei Makarov
Stan Cox, *Wenzong Fan, William Cohen

Special thanks to new contributors, marked with '*' above.

Special thanks to Sagar for assembling these notes.

= Bugs fixed for this release &tl;https://sourceware.org/PR#####>

9922    need to configure with --disable-pie on ubuntu
25174   string auto-concat doesn't work in @var / @cast module parameter
25169   strcpy overlap between transport arg and string on-stack
25133   stapbpf foreach loop crashing
24953   foreach (v = v1,v2) syntax not behaving correctly in stapbpf
24812   stapbpf: support order-parametrized begin/end probes
25113   Explanation and "code" mismatch in section ⁠2.3.1.2. File Flight
Recorder
25107   need -L variant that doesn't merge duplicate probe points
23285   stapbpf procfs probes
24946   printing hex sequences causes crash
24947   valid hex and octal sequences not checked for
24926   non-ascii characters not printing on stapbpf
24934   stapbpf stack-smash on EXIT message processing
23879   print_ubacktrace can not print function name
24875   VMA tracker is broken on Fedora 29
24904   stack_trace struct undefined on kernel 5.2
23858   sorted iteration on bpf arrays can't sort values
24885   add test_{,install}check_dyninst tag to check.exp
23866   dissonance between kernel tracepoint parametrization, lkm vs bpf
24811   stapbpf segfault: nested foreach loops can corrupt sorted key data
when limit==0
11353   elide side-effect-free probes
24528   stapbpf-next housekeeping: bpf-translate.cxx should distinguish
codegen for kernel/userspace targets
24543   stapbpf breaks when cpu0 is disabled
12025   Have appropriate selection of hex and decimal formatted output for
automatic output
24639   "next" statement not recognized by stap bpf backend
24343   Some syscall.*.return missing name and retstr variables

Read more

Python Programming

Filed under
Development

man-pages-5.04 is released

Filed under
GNU
Linux

I've released man-pages-5.04. The release tarball is available on kernel.org. The browsable online pages can be found on man7.org. The Git repository for man-pages is available on kernel.org.

This release resulted from patches, bug reports, reviews, and comments from 15 contributors. The release includes approximately 80 commits that change just under 30 pages.

Read more

Debian Adds Another Option For Its Init System Diversity General Resolution

Filed under
Debian

A few days ago Debian Project Leader Sam Hartman laid out the proposals for the upcoming Debian General Resolution vote concerning "init system diversity" and just how much Debian developers still care in 2019 about supporting non-systemd init systems within the Linux distribution.

The general resolution over init systems and systemd had three proposals: affirming init diversity, systemd but supporting the exploration of alternatives, and focusing upon systemd for the init system and its other facilities. Now though Debian Project Secretary Kurt Roeckx has relayed a fourth proposal.

Read more

Intel Haswell To Ice Lake Laptop Performance Benchmarks On Ubuntu 19.10

Filed under
Graphics/Benchmarks

With the many Intel Ice Lake Linux benchmarks we began publishing over the past month since picking up a Dell XPS with Core i7-1065G7, there have been many benchmarks compared to the likes of the Core i7 Whiskey Lake and Kaby Lake processors. For those curious how the performance stacks up going further back, here are some Ubuntu 19.10 laptop benchmarks putting it up against the likes of Core i7 Haswell and Broadwell processors.

This article offers a look at the Ubuntu 19.10 + Linux 5.3 performance on six different laptops including the Dell XPS 7390 Ice Lake laptop and various other laptops I had available for testing.

Read more

GitHub Aims to Make Open Source Code Apocalypse-Proof in Arctic Vault

Filed under
OSS

One of the big risks with this plan is that code depends on a whole software stack: hardware, assembly language, and a certain form of electricity. The chips that code runs on are really incredibly complex, noted Skymind's Nicholson.

"You would need all that underlying infrastructure to run the code GitHub stores. I hope GitHub will also include some model hardware in its vault. It would be too much to ask to include a fab," he said.

For technology's survival, open source stands out for two reasons:

First, you can increase the positive feedback loops between the people who write code and those who use it. That leads to much better code quality compared to closed-source projects with limited users looking over the source.

"The importance of that cannot be understated," said Nicholson.

Second, open source code minimizes legal risk. That is also extremely important, he added, noting that some great closed-source code probably should go into the vault.

"But why risk a lawsuit?" Nicholson reasoned. "Open source code really is moving society forward in a lot of ways, based on the work of a few dedicated teams and a relatively small number of core committers."

Read more

Orange Pi 4 has an RK3399 and an optional NPU

Filed under
Android
Linux

Shenzhen Xunlong has posted preliminary specs for a Rockchip RK3399 based “Orange Pi 4” SBC that is smaller and more affordable than the Orange Pi RK3399 and faster and more feature rich than the Orange Pi 3. A 4B variant adds a Lightspeeur 2801S AI chip.

New Orange Pi boards usually just show up unannounced on AliExpress, but for the fourth iteration of its flagship Orange Pi board, Shenzhen Xunlong teased some detail views on Twitter. The Orange Pi 4 and an AI-enhanced Orange Pi 4B will ship in two weeks. Pricing is undisclosed, but the boards will be “cheaper” than the previous Rockchip RK3399-based Orange Pi, the Orange Pi RK3399. That larger SBC debuted at $109 and now sells for $89 with 2GB DDR3 and 16GB eMMC compared to 4GB LPDDR4 and 16GB eMMC for the Orange Pi 4.

Read more

RedisInsight Revealed and WordPress 5.2.4 Released

Filed under
OSS
  • Redis Labs eases database management with RedisInsight

    The robust market of tools to help users of the Redis database manage their systems just got a new entrant.

    Redis Labs disclosed the availability of its RedisInsight tool, a graphical user interface (GUI) for database management and operations.

    Redis is a popular open source NoSQL database that is also increasingly being used in cloud-native Kubernetes deployments as users move workloads to the cloud. Open source database use is growing quickly according to recent reports as the need for flexible, open systems to meet different needs has become a common requirement.

    Among the challenges often associated with databases of any type is ease of management, which Redis is trying to address with RedisInsight.

  • WordPress 5.2.4 Update

    Late-breaking news on the 5.2.4 short-cycle security release that landed October 14. When we released the news post, I inadvertently missed giving props to Simon Scannell of RIPS Technologies for finding and disclosing an issue where path traversal can lead to remote code execution.

    Simon has done a great deal of work on the WordPress project, and failing to mention his contributions is a huge oversight on our end.

    Thank you to all of the reporters for privately disclosing vulnerabilities, which gave us time to fix them before WordPress sites could be attacked.

Desktop GNU/Linux: Rick and Morty, Georges Basile Stavracas Neto on GNOME and Linux Format on Eoan Ermine

Filed under
GNU
Linux
  • We know where Rick (from Rick and Morty) stands on Intel vs AMD debate

    For one, it appears Rick is running a version of Debian with a very old Linux kernel (3.2.0) — one dating back to 2012. He badly needs to install some frickin’ updates. “Also his partitions are real weird. It’s all Microsoft based partitions,” a Redditor says. “A Linux user would never do [this] unless they were insane since NTFS/Exfat drivers on Linux are not great.”

  • Georges Basile Stavracas Neto: Every shell has a story

    … a wise someone once muttered while walking on a beach, as they picked up a shell lying on the sand. Indeed, every shell began somewhere, crossed a unique path with different goals and driven by different motivations. Some shells were created to optimize for mobility; some, for lightness; some, for speed; some were created to just fit whoever is using it and do their jobs efficiently. It’s statistically close to impossible to not find a suitable shell, one could argue.

    So, is this a blog about muttered shell wisdom?

    In some way, it actually is. It is, indeed, about Shell, and about Mutter. And even though “wisdom” is perhaps a bit of an overstatement, it is expected that whoever reads this blog doesn’t leave it less wise, so the word applies to a certain degree. Evidently, the Shell in question is composed of bits and bytes; its protection is more about the complexities of a kernel and command lines than sea predators, and the Mutter is actually more about compositing the desktop than barely audible uttering.

  • Adieu, 32

    The tenth month of the year arrives and so does a new Ubuntu 19.10 (Eoan Ermine) update. Is it a portent that this is the 31st release of Ubuntu and with the 32nd release next year, 32-bit x86 Ubuntu builds will end?

Linux Kernel and Linux Foundation

Filed under
Linux
  • Linux's Crypto API Is Adopting Some Aspects Of Zinc, Opening Door To Mainline WireGuard

    Mainlining of the WireGuard secure VPN tunnel was being held up by its use of the new "Zinc" crypto API developed in conjunction with this network tech. But with obstacles in getting Zinc merged, WireGuard was going to be resorting to targeting the existing kernel crypto interfaces. Instead, however, it turns out the upstream Linux crypto developers were interested and willing to incorporate some elements of Zinc into the existing kernel crypto implementation.

    Back in September is when Jason Donenfeld decided porting WireGuard to the existing Linux crypto API was the best path forward for getting this secure networking functionality into the mainline kernel in a timely manner. But since then other upstream kernel developers working on the crypto subsystem ended up with patches incorporating some elements of Zinc's design.

  • zswap: use B-tree for search
    The current zswap implementation uses red-black trees to store
    entries and to perform lookups. Although this algorithm obviously
    has complexity of O(log N) it still takes a while to complete
    lookup (or, even more for replacement) of an entry, when the amount
    of entries is huge (100K+).
    
    B-trees are known to handle such cases more efficiently (i. e. also
    with O(log N) complexity but with way lower coefficient) so trying
    zswap with B-trees was worth a shot.
    
    The implementation of B-trees that is currently present in Linux
    kernel isn't really doing things in the best possible way (i. e. it
    has recursion) but the testing I've run still shows a very
    significant performance increase.
    
    The usage pattern of B-tree here is not exactly following the
    guidelines but it is due to the fact that pgoff_t may be both 32
    and 64 bits long.
    
    
  • Zswap Could See Better Performance Thanks To A B-Tree Search Implementation

    For those using Zswap as a compressed RAM cache for swapping on Linux systems, the performance could soon see a measurable improvement.

    Developer Vitaly Wool has posted a patch that switches the Zswap code from using red-black trees to a B-tree for searching. Particularly for when having to search a large number of entries, the B-trees implementation should do so much more efficiently.

  • AT&T Finally Opens Up dNOS "DANOS" Network Operating System Code

    One and a half years late, the "DANOS" (known formerly as "dNOS") network operating system is now open-source under the Linux Foundation.

    AT&T and the Linux Foundation originally announced their plan in early 2018 wish pushing for this network operating system to be used on more mobile infrastructure. At the time they expected it to happen in H2'2018, but finally on 15 November 2019 the goal came to fruition.

Syndicate content

More in Tux Machines

Audiocasts/Shows/Screencasts: Linux in the Ham Shack, Linux Headlines, LibreOffice 6.4 Alpha Quick Look and OpenIndiana 2019.10 Overview

Announcing coreboot 4.11

The coreboot project is proud to announce to have released coreboot 4.11. This release cycle was a bit shorter to get closer to our regular schedule of releasing in spring and autumn. Since 4.10 there were 1630 new commits by over 130 developers. Of these, about 30 contributed to coreboot for the first time. Thank you to all contributors who made 4.11 what it is and welcome to the project to all new contributors! Read more Also: Coreboot 4.11 Brings Many Intel Improvements, New Support For Supermicro / Lenovo Boards

GNOME Development: Technical Reports From Federico Mena-Quintero and Jussi Pakkanen

  • Refactoring the Length type

    Over a couple of years, librsvg's type that represents CSS lengths went from a C representation along the lines of "all data in the world is an int", to a Rust representation that uses some interesting type trickery: C struct with char for units. C struct with a LengthUnits enum. C struct without an embodied direction; each place that needs to normalize needs to get the orientation right. C struct with a built-in direction as an extra field, done at initialization time. Same struct but in Rust. An ugly but workable Parse trait so that the direction can be set at parse/initialization time. Three newtypes LengthHorizontal, LengthVertical, LengthBoth with a common core. A cleaned-up Parse trait. A macro to generate those newtypes. Replace the LengthDir enum with an Orientation trait, and three zero-sized types Horizontal/Vertical/Both that implement the trait. Replace most of the macro with a helper trait LengthTrait that has an Orientation associated type. Replace the helper trait with a single Length<T: Orientation> type, which puts the orientation as a generic parameter. The macro disappears and there is a single implementation for everything. Refactoring never ends!

  • Some intricacies of ABI stability

    As far as I know, there is no known real-world solution to this problem that would scale to a full operating system (i.e. all of Debian, FreeBSD or the like). If there are any university professors reading this needing problems for your grad students, this could be one of them. The problem itself is fairly simple to formulate: make it possible to run two different, ABI incompatible C++ standard libraries within one process. The solution will probably require changes in the compiler, linker and runtime loader. For example, you might extend symbol resolution rules so that they are not global, but instead symbols from, say library bar would first be looked up in its direct descendents (in this case only abi2) and only after that in other parts of the tree. To get you started, here is one potential solution I came up with while writing this post. I have no idea if it actually works, but I could not come up with an obvious thing that would break. I sadly don't have the time or know-how to implement this, but hopefully someone else has.

Graphics and Games: Intel, Vulkan, Trine and Google Stadia

  • Intel's Graphics Driver DoS Fix Last Week Has Hurt Power Consumption

    While the patches overnight about "substantial" improvement in power usage for Intel graphics on Linux were exciting on first look, it's less so now as it turns out last week's graphics driver security fixes is what regressed the Intel graphics power-savings. During last Tuesday's round of Intel security disclosures where there was a fix for denial of service in the Intel graphics driver, it turns out that the CVE-2019-0154 fix is what regressed power usage. The potential Denial of Service vulnerability was about unprivileged users being able to cause a DoS by reading select memory regions when the graphics hardware is in certain low-power states.

  • vkBasalt 0.2 Released With SMAA, Other Vulkan Post Processing Layer Enhancements

    The open-source vkBasalt project was started as a layer implementing Contrast Adaptive Sharpening (akin to Radeon Image Sharpening) for any Vulkan-using GPU/driver/software. The vkBasalt project then picked up FXAA support for this Vulkan post-processing layer while now a new release is out with more functionality added. The vkBasalt 0.2 release is out today and adds support for enhanced sub-pixel morphological anti-aliasing (SMAA) for higher-quality anti-aliasing than FXAA. SMAA is an image-based implementation of MLAA. This release also allows for multiple visual effects to be activated at once where as previously only any one of these image enhancing features could be active at a time.

  • Flax Engine Ported To Linux + Vulkan Rendering Support

    Flax Engine is the latest game engine seeing native Linux support and in the process the renderer also picked up Vulkan support. Flax Engine is a lesser known game engine that now works on Linux alongside Windows and Xbox One. After two years in development, the open beta release of Flax is expected soon.

  • The sad case of Trine on Mesa and Linux in 2019

    A year or so back I was planning on writing a congratulatory article to show my appreciation to Dave Airlie for fixing a long standing bug in Mesa that prevented users of older AMD Radeon HD cards from enjoying Trine Enchanted Edition on the free graphics stack. Bug 91808 resulted in a variety of graphical artifacts which, while not interfering with the gameplay, still put me off using that version of Trine. After several years and a great deal of evident frustration on his part, Airlie was able to track down the root of the problem and at long last was able to push a fix to master in May 2018. Airlie and developers like him are often the unsung heroes of FOSS development, and I wanted to give him a well deserved public pat on the back for his effort in fixing a bug which would only have affected such a small number of people. Unfortunately my research into this led me down an entirely different rabbit hole when I discovered the report for Bug 66067. A much more subtle misrendering of the game's colours and lighting, this bug is present in both Trine 2 and Trine Enchanted Edition and affects all Mesa users. Unlike the previous instance where it was an issue in the drivers that was the culprit, this issue is present in the game binaries themselves.

  • Google Stadia is out now for early adopters, well a few anyway

    Today, the Google Stadia streaming service officially launched for those who picked up the Founder or Premier Edition. Well, sort of anyway. Some people have it, a lot of people don't, we certainly don't and it appears the team at Stadia give different answers to different people on when you will actually be able to access it. I've also seen plenty of people whose orders have been cancelled without warning or explanation. Even worse still, some people have been sent their hardware without an access code. Google have, so far, done a terrible job at communicating on Stadia and so the initial launch doesn't seem to have gone down well at all.