Language Selection

English French German Italian Portuguese Spanish

About Tux Machines

Sunday, 08 Dec 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

Leftovers: Fedora, SUSE and Programming

Filed under
Development
SUSE
Misc
  • Updated NeuroFedora Computational Neuroscience ISO image available

    We've been working on making more software available in NeuroFedora. Neuron is now built with IV support, so models from ModelDB that use these should now be runnable using NeuroFedora.

    The Computational Neuroscience ISO image has been updated to include these improvements. After receiving some feedback, we've also added Julia and R to the image. The new version, 20191201, is available for download here. The checksum file is also provided. So please test your download for correctness before you proceed to use it.

  • Time needed to dist-upgrade Fedora

    Every couple of months I upgrade my main home computer to the latest Fedora. As this process is not instantaneous, this means some time without internet, wifi, smart home controls etc. This time I decided to measure how long it takes exactly.

    Hardware is mid-range home server: Core i5 CPU, 16GiB of RAM, storage is 2x HDD in btrfs raid1, over LUKS, bcached on NVMe drive.

  • SUSE Revives Patches For Exposing /proc/cpuinfo Data Over Sysf

    Back in 2017 were patches for exposing /proc/cpuinfo data via sysfs for more easily parsing selected bits of information from the CPU information output. That work never made it into the mainline kernel but now SUSE's Thomas Renninger is taking over and trying to get revised patches into the kernel.

    Renninger sent out revised versions of the "sysfs-based cpuinfo" on Friday that within /sys/devices/system/cpu/cpuX/info/ would expose nodes to easily parse pieces of cpuinfo like bogomips, cpu_family, flags, model, model_name, stepping, vendor_id, and more. Reading the information via sysfs with a single-value-per-file makes it much easier for parsing compared to having to parse the entire /proc/cpuinfo output and complements other CPU information already accessible via the very convenient sysfs.

  • Do's and Don'ts of implementing a hamburger menu

    The infamous hamburger menu is one of the examples where I see bad practice very often. Surf the web one day using a screen reader or using only your keyboard and you will most likely experience some of the problems as well. Let's have a look at the most common errors and how to avoid them.

  • The GCC Git Conversion Heats Up With Hopes Of Converting Over The Holidays

    Decided back at the GNU Tools Cauldron was a timeline to aim converting from Subversion as their default revision control system to Git over the New Year's holiday. For that to happen, by the middle of December they wanted to decide what conversion system to use for bringing all their SVN commits to Git. As such, now it's heating up ahead of that decision.

    Eric S Raymond announced the conversion work in progress. Right now he's been working on addressing the remaining problems with Reposurgeon in being able to convert the GCC SVN repository to Git. Following those lingering issues being resolved, he's seeking broader review of the Reposurgeon "recipe" and then "the conversion progress starts to become desirable."

  • PyGotham 2019 Speaker Coaching Recap

    I’m one of the organizers for PyGotham, the yearly Python programming conference in New York City. This year thirteen PyGotham speakers received training from opera singer and speaking coach Melissa Collom, paid for by the conference and free for the speakers. Eight of the speakers were new to the conference scene; Melissa helped them focus on delivering value to their audience, structuring their talks clearly, and speaking with conviction. All the speakers who responded to a survey said they felt more confident and they were more likely to propose conference talks again.

    Here’s what some of our speakers said:

    “Melissa helped me pick out the areas I needed to improve, that I could work on for maximum impact in the limited time that I had before the conference. More importantly, she told me what she thought were my strengths and it helped me immensely to know what I had working for me.”

    “It was fun and Melissa made me feel comfortable to be myself! She brought out the best in me. The positive and constructive feedback was helpful and provided in a supportive way.”

  • Marco Zehe: The myth of getting rich through ads

    In addition, the web hosting was expensive, but not really performant. And they often let essential software get out of date. My WordPress at some point had started complaining because my PHP version was too old. Turned out that the defaults for shared hosts were not upgraded to a newer version by default by the hoster, and one had to go into an obnoxious backend to fiddle with some setting somewhere to use a newer version of PHP.

    I then decided to try something completely new. I exported the contents of my three blogs and set up blogs at WordPress.com, the hosted WordPress offering from the makers themselves: Automattic. I looked at their plans, and the Premium plan, which cost me 8€ per month, per blog felt suitable. I also took the opportunity to pull both German language blogs together into one. I just added two categories that those who just want to see my tecnical stuff, or the private stuff, could still do so.

    With that move, I got a good set of features that I would normally use on a self-hosted blog as well, so I set up some widgets, some theme that comes with the plan, and imported all my content including comments and such. I lost my statistics from the custom plugins, but hey, I had lost years of statistics from before that when I decided to no longer use JetPack on my self-hosted blogs, too, so what.

    And I did two more things. I added a “Buy me a coffee” button so people could show their appreciation for my content if they wanted to. And I opted into the Word Ads program, that would display some advertisement on the blog’s main page and below each individual post. I simply wanted to see if my content would be viable enough to generate any significant enough income.

    [...]

    When I compare my experience to that of my wife, who runs both a guide and a forum for the popular Sims FreePlay game in Germany, it is clear that even she with her thousands of visitors to both the guide and forum does not always generate enough traffic to get the minimum Google Adsense payout threshold per month. And that is just enough to cover her monthly domain and server costs, because the traffic is so heavy that shared hosting cannot cope. So she has to run a dedicated v server for those, which are way more expensive than shared hosting.

    So, ads on the web are really not a sustainable model for many. Yes, there may be some very popular and widespread 8content-wise) blogs or publication sites that do generate enough revenue through ads. But the more niche your topic gets, if you don’t generate thousands of visitors per month, ads sometimes may cover the costs of a service like WordPress to run your blog, but only if you are on one of the lower plans with less control over what your blog can do or the ads that are being displayed.

    I believe that a more engaged interaction with the actual audience is a better way to generate revenue, although that, of course, also depends on readers loyalty and your own dedication. I think that initiatives like Grant For The Web are the future of monetisation of content on the web, and I may start supporting that once my move back to self-hosting is complete. I’ll keep you posted.

Proprietary Issues, Flaws, Entrapment and Openwashing

Filed under
Security
  • Microsoft: 44 Million User Passwords Have Been Breached

    It found a match for over 44 million Microsoft Services Accounts, used primarily by consumers, and AzureAD accounts, which is more worrying for businesses.

    “For the leaked credentials for which we found a match, we force a password reset. No additional action is required on the consumer side. On the enterprise side, Microsoft will elevate the user risk and alert the administrator so that a credential reset can be enforced,” it explained.

  • Anti-Virus Vendors Flag uTorrent and BitTorrent as a "Threat" Again

    The popular BitTorrent client uTorrent is currently being flagged as a threat by several anti-virus tools. The issue affects the desktop client as well as the Web version and the BitTorrent Mainline client. According to the anti-virus vendors, the flags were likely triggered by bundled advertisements or other unwanted software.

  • DeepMind co-founder Mustafa Suleyman is moving to Google

    Suleyman announced over the summer that he was taking open-ended leave from DeepMind, fuelling speculation of a rift. However, he has emerged, seemingly unscathed and will now take up a role involving AI at Google. It's not clear exactly what that looks like

  • Developers join call for GitHub to cancel its ICE contract

    Since at least September, employees of GitHub have been pressuring the Microsoft-owned code repository to terminate its contract with Immigration and Customs Enforcement, without success. Now they’re getting reinforcements from a constituency that could have more clout.

    In an open letter published Wednesday on GitHub, software developers representing the open source community joined the call for GitHub to immediately cancel the $200,000 contract with ICE.

  • Exadel Launches Adobe Experience Manager Authoring Toolkit as Open Source Tool for Digital Marketing Community

    Exadel, a global leader in digital software engineering solutions, announced the availability of its Adobe Experience Manager (AEM) Authoring Toolkit. An open source project developed and maintained by the Exadel Digital Marketing Technology team, the Toolkit is available as a packaged, fully supported solution to Exadel’s enterprise clients and as an open source tool for the community. The Toolkit supports an automatic yet versatile and extendable generation of UI elements for AEM authors and provides a next-gen authoring experience in Adobe’s Coral UI-powered environment.

  • Alibaba Cloud Releases Machine Learning Algorithm Platform on Github [Ed: Alibaba gives its code to proprietary software  and Microsoft will control it. Is this "open source" or trapsource?]

    Alibaba Cloud, the data intelligence backbone of Alibaba Group, announced that the core codes of Alink, its self-developed algorithm platform, have been made available via open source on Github, the world’s largest developer community. The platform offers a broad range of algorithm libraries that support both batch and stream processing, which is critical for machine learning tasks such as online product recommendation and intelligent customer services.

  • OpenBSD bugs, Microsoft's bad update, a new Nork hacking crew, and more

    The freely available OpenBSD operating system is the host of some annoying security holes.

    Researchers at Qualys found and reported authentication bypass flaws that can be exploited locally, and potentially remotely, to log into services without valid credentials.

    "We discovered an authentication-bypass vulnerability in OpenBSD's authentication system: this vulnerability is remotely exploitable in smtpd, ldapd, and radiusd, but its real-world impact should be studied on a case-by-case basis," notes Qualys. "For example, sshd is not exploitable thanks to its defense-in-depth mechanisms."

    Admins will want to update their systems as soon as possible.

  • ‘The Information Nation’: Kremlin researchers and forensic journalists intersect at Russia’s black market for leaked personal data

    The Russian Presidential Affairs Department’s Scientific Research Computing Center (GRCC) develops systems to monitor and deanonymize social-media users, and it sells these systems to government and private clients alike. Using the company’s services, insurance companies can root out dishonest employees, and security-guard companies can recruit new staff. Other GRCC programs allow the police to hunt down “extremists” online. In a special report published in late September, Meduza learned that these computing systems collect information on Russians not just from open sources, but also from leaked databases that are sold illegally on the black market. 

Raptor Computing Is Working On More AMD Radeon Driver Improvements For POWER

Filed under
GNU
Linux
Hardware

Similar to 64-bit ARM (AArch64) improvements we've seen with time for the Radeon Linux driver, Raptor's Timothy Pearson has been working to improve the Radeon support for PowerPC or more specifically POWER9. While NVIDIA offers a POWER9 graphics driver for IBM POWER servers, AMD Radeon graphics jive much better with Raptor's target customers thanks to the open-source driver stack -- allowing a fully open-source graphics/compute stack with the AMD hardware sans the closed-source microcode required by the GPUs, but much better than the completely closed-up NVIDIA driver stack.

Read more

Using Menus For Command Line Programs and Scripts

Filed under
Howtos

THE holidays are coming (Christmas approaching), so I've taken advantage of some spare time to menu-ise commands that I use frequently. Those commands aren't the mere opening of an application and they often require dealing with input and output (in the command line). So I've created menu.sh and used dialog to craft the following menu, e.g. for operations associated with Techrights. I invoke this menu with the click of one button (of the mouse).

Rianne has a similar menu for commands she often runs (which are long and would otherwise need pasting or typing in length). Her menu looks something like this:

Rianne's menu

Here's the code (bash file) that renders the menu above (it's really that simple!):


#!/bin/bash

HEIGHT=15
WIDTH=40
CHOICE_HEIGHT=4
BACKTITLE="Aloha, Rianne"
TITLE="Rianne @ Ted"
MENU="Choose one of the following options:"

OPTIONS=(1 "Start VPN"
         2 "REDACTED"
         3 "REDACTED"
	4 "REDACTED"
	5 "REDACTED"
	6 "REDACTED"
	7 "REDACTED"
)

CHOICE=$(dialog --clear \
                --backtitle "$BACKTITLE" \
                --title "$TITLE" \
                --menu "$MENU" \
                $HEIGHT $WIDTH $CHOICE_HEIGHT \
                "${OPTIONS[@]}" \
                2>&1 >/dev/tty)

clear
case $CHOICE in
        1)
            echo "You chose Option 1"
sh ~/vpn.sh ;;

        2)
            echo "You chose Option 2"
REDACTED COMMAND ;;
        3)
            echo "You chose Option 3"
REDACTED COMMAND ;;
        4)
            echo "You chose Option 4"
REDACTED COMMAND ;;
        5)
            echo "You chose Option 5"
REDACTED COMMAND ;;
        6)
            echo "You chose Option 6"
REDACTED COMMAND ;;
        7)
            echo "You chose Option 7"
REDACTED COMMAND ;;

esac

Hopefully this inspires other people out there to do the same. It takes a while to set up, but it's a big time saver over the long run.

10 Years of Using Linux: How It Was Before, And How it Became

Filed under
Linux

2020 Marks my 10 years of using Linux, a decade of my life that I also spent in supporting, promoting and developing free software both in my local community and globally. But the Linux ecosystem today was nothing like 10 years ago, and we are here today to take a look at the past and how both the Linux ecosystem and other open source software developed through the decade.

If you asked anyone who used Linux in 2010, what was your biggest issue? They would tell you: Drivers. Back then, drivers for literally everything on Linux were not that good, and in a lot cases didn’t even exist.

Read more

Tux Machines Entering a Third Decade Soon

Filed under
Site News

Put your tuxedo on

Tux Machines 2020
Getting better over time?

SUSAN created this site a very long time ago, more than a decade and a half in the past. Susan did a spectacular job. With regular news updates she managed to grow the site in terms of pages, screenshots, reviews, readers, and contributors. We are eternally thankful to her.

Rianne and I have run the site since 2013. 2020 is around the corner (just over 3 weeks left!) and that makes another new decade. In terms of site traffic we continue to grow. Other than Rianne and I posting news updates 'around the clock' there's already a systems administrator who volunteered to help keep the site chugging along. We are very thankful to him. He prefers to remain unnamed. So Tux Machines is basically not a one-person operation. It is basically a team of three people now (in addition to various people who add posts/links). Rianne (based in the UK) usually takes the lead with breaking stories, I tend to post summaries or clusters of related links and system integrity/uptime is assured from Scandinavia. The hypervisor is physically in the United States. We're a sort of international team with no income source (other than our jobs).

If you enjoy the site and find it handy, maybe you wish to drop us a tip for Christmas as a token of gratitude. Anything helps, even a cup of coffee's worth. Coffee helps keep us awake to post more links. Wink

This week in KDE: Easy Emoji input and more

Filed under
KDE

Something cool this way comes… easy Emoji input! Speaking personally, lack of easy Emoji input on Plasma has been irritation for years. But no longer! Plasma now has a built-in Emoji chooser similar to the ones on other competing operating systems. Ours is invoked with the Meta+period keyboard shortcut.

Read more

Why choose Xfce for your lightweight Linux desktop

Filed under
Linux

The Xfce desktop has a specific, self-stated goal: to be fast on a system with low resources while being visually appealing and user-friendly. It's been the de facto choice for lightweight Linux distributions (or remixes) for years and is often cited by its fans as a desktop that provides just enough to be useful, but never so much as to be a burden.

You may find Xfce included in the software repository of your Linux distribution, or you can download and install a distribution that ships Xfce as an available desktop (like the Xfce Mageia or Fedora spins or Slackware). Before you install it, be aware that, while it's lightweight, it is intended to provide a full desktop experience, so many Xfce apps are installed along with the desktop. If you're already running a different desktop, you may find yourself with redundant applications (two PDF readers, two file managers, and so on). If you just want to try the Xfce desktop, you can install an Xfce-based distribution in a virtual machine, such as GNOME Boxes.

Read more

What's your favorite terminal emulator?

Filed under
OSS

Preference of a terminal emulator can say a lot about a person's workflow. Is the ability to drive mouseless a must-have? Do you like to navigate between tabs or windows? There's something to be said about how it makes you feel, too. Does it have that cool factor? Tell us about your favorite terminal emulator by taking our poll or leaving us a comment. How many have you tried?

We asked our community to tell us about their experience with terminal emulators. Here are a few of the responses we received.

Read more

First Ever Release of Ubuntu Cinnamon Distribution is Finally Here!

Filed under
News

Ubuntu Cinnamon is a new distribution that utilizes Linux Mint’s Cinnamon desktop environment on top of Ubuntu code base. It’s first stable release is based on Ubuntu 19.10 Eoan Ermine.
Read more

OSS: Cybersecurity and Infrastructure Security Agency (CISA), Animal Vision, Outreachy and LibreOffice

Filed under
OSS
  • US 2020 Election Security: Auditing Tool Coming Soon

    The Department of Homeland Security’s Cybersecurity and Infrastructure Security Agency (CISA) said it is working with a non-partisan, non-profit group to customize an open source, post-election auditing tool to verify votes in the upcoming 2020 elections.

    The tool is known as Arlo. VotingWorks, an organization focused on developing secure election technology, is CISA’s partner. Arlo is used to conduct risk-limited audits (RLA), which VotingWorks calls the “best safeguard we have against hacked or otherwise faulty voting systems.” In an RLA, Arlo determines how many ballots to count, selects which ballots to inspect and compares audited votes to tabulated votes. Election officials in Pennsylvania, Michigan, Virginia, Ohio and Georgia are currently piloting the software and others are expected to join. Colorado became the first state to implement RLAs when in 2017 it audited one race in each of 50 of its 64 counties.

  • New machine learning from Alibaba and Netflix, mimicking animal vision, and more open source news

    Have you ever wondered how your dog or cat sees the world? Thanks to work by researchers at the University of Exeter in the UK and Australia's University of Queensland, you can find out. The team just released software that allows humans to see the world as animals do.

    Called micaToolbox, the software can interpret digital photos and process images of various environments by mimicking the limitations of animal vision. Anyone with a camera, a computer, or smartphone can use the software without knowing how to code. But micaToolbox isn't just a novelty. It's a serious scientific tool that can help "help biologists better understand a variety of animal behaviors, including mating systems, distance-dependent signalling and mimicry." And, according to researcher Jolyon Troscianko, the software can help identify "how an animal's camouflage works so that we can manage our land to protect certain species."

  • Some Of The Interesting Open-Source Projects For Outreachy's Winter 2019 Round

    Outreachy recently kicked off their winter (December to March) round of internships for diversity in tech with 49 individuals tackling a range of open-source tasks.

    Complementing the useful contributions made this summer during their previous round, some more interesting tasks are being tackled over the next few months too. In going through the 49 projects, some of the interesting ones include:

    - Adding "did you mean?" hints to Git when entering incorrect sub-commands.

  • [LibreOffice] QA/Dev Report: November 2019

    585 bugs, 67 of which are enhancements, have been reported by 365 people.

Programming/Development: Dirk Eddelbuettel, Dependencies and Python

Filed under
Development
  • Dirk Eddelbuettel: RcppArmadillo 0.9.800.3.0

    A small Armadillo bugfix upstream update 9.800.3 came out a few days ago. The changes, summarised by Conrad in email to me (and for once not yet on the arma site are fixes for matrix row iterators, better detection of non-hermitian matrices by eig_sym(), inv_sympd(), chol(), expmat_sym() and miscellaneous minor fixes. It also contains a bug fix by Christian Gunning to his sample() implementation.

    Armadillo is a powerful and expressive C++ template library for linear algebra aiming towards a good balance between speed and ease of use with a syntax deliberately close to a Matlab. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 679 other packages on CRAN.

  • Dirk Eddelbuettel: RDieHarder 0.2.1

    A new version, now at 0.2.1, of the random-number generator tester RDieHarder (based on the DieHarder suite developed / maintained by Robert Brown with contributions by David Bauer and myself) is now on CRAN.

    This version has only internal changes. Brian Ripley, tireless as always, is testing the impact of gcc 10 on CRAN code and found that the ‘to-be-default’ option -fno-common throws off a few (older) C code bases, this one (which is indeed old) included. So in a nutshell, we declared all global variables extern and defined them once and only once in new file globals.c. Needless to say, this affects the buildability options. In the past we used to rely on an external library libdieharder (which e.g. I had put together for Debian) but we now just build everything internally in the package.

  • There are (at least) three distinct dependency types

    Using dependencies is one of the main problems in software development today. It has become even more complicated with the recent emergence of new programming languages and the need to combine them with existing programs. Most discussion about it has been informal and high level, so let's see if we can make it more disciplined and how different dependency approaches work.

    What do we mean when we say "work"?

    In this post we are going to use the word "work" in a very specific way. A dependency application is said to work if and only if we can take two separate code projects where one uses the other and use them together without needing to write special case code. That is, we should be able to snap the two projects together like Lego. If this can be done to arbitrary projects with a success rate of more than 95%, then the approach can be said to work.

    It should be especially noted that "I tried this with two trivial helloworld projects and it worked for me" does not fulfill the requirements of working. Sadly this line of reasoning is used all too often in online dependency discussions, but it is not a response that holds any weight. Any approach that has not been tested with at least tens (preferably hundreds) of packages does not have enough real world usage experience to be taken seriously.

  • Monads aren't as hard as you think

    I’ve been scared of monads ever since I first heard of them. So many references to burritos, or nuclear waste containers, or some other analogy that didn’t make sense to me. So if you’re scared of monads too, maybe my take on what a monad is will help.

  • Print all git repos from a user
  • Print all git repos from a user
  • Talk Python to Me: #241 Opal: Full stack health care apps

    Open source has permeated much of the software industry. What about health care? This highly regulated and important industry might seem to be the domain of huge specialized software companies.

  • Sleepy snake

    I love this drawing! I’ve always been charmed by cartoonists’ ability to capture an essence in a seemingly simple drawing. Objects are reduced to stereotypes, but with some whimsy thrown in. Ben has always had this gift: to create just the right stroke to perfectly express an attitude or feeling.

    Here Sleepy is snug in his bed, covered by a blanket. Even in his custom bed, he’s too long to fit, but he’s comfortable. The pillow isn’t shaped like a real pillow, but it’s exactly our cartoon Platonic ideal of a pillow.

  • Generate a Python Random Number

    Here is a quick guide on Python’s random number. You can always refer to it whenever you need to generate a random number in your programs.

    Python has a built-in random module for this purpose. It exposes several methods such as randrange(), randint(), random(), seed(), uniform(), etc. You can call any of these functions to generate a Python random number.

    Usually, a random number is an integer, but you can generate float random also. However, you first need to understand the context as a programmer and then pick the right function to use.

  • Trigger Local Python App Remotely

    With an old Mac I have lying around at home and free web-based services, I’ve setup a simple app that fetches some data from an external service (YNAB) in order to run some daily budget calculations that I used to calculate manually for a long time. The output of my app is then sent back to my phone within seconds so I can trigger it from anywhere. I wanted to share the approach I’m using which has cost me nothing.

    This (obviously) isn’t an approach that should be used for large scale applications or anything other than pet projects. I just wanted to highlight how simple it can be using existing free tools. There are plenty of low cost, production ready, and scalable options out there (like AWS Lambda) if you prefer to start with that approach.

    My app is written in Python and served via Flask to a local endpoint (http://localhost:5000) which ngrok points to. I then have a IFTTT webhook hitting the Ngrok URL after clicking an IFTTT button widget from my phone. The app ends up broadcasting the output to my Slack account so I end up getting a push notification on my phone containing the app output within seconds of hitting the button:

  • Raspberry Pi Christmas Shopping Guide 2019

    Stuck for what to buy your friends and family this Christmas? Whether you’re looking to introduce someone to Raspberry Pi and coding, or trying to find the perfect gift for the tech-mad hobbyist in your life, our Christmas Shopping Guide 2019 will help you complete your shopping list. So, let’s get started…

Some Free Sticky Notes Applications For Ubuntu Linux!

Filed under
Software

Sticky notes application is one application that looks trivial but is very useful. This application is usually used to note something. We can choose several Sticky Notes applications below to be used on Ubuntu and other linux distributions!.

Read more

Graphics: RADV, Wayland's Weston 8.0 Reaches Alpha, Mesa 20.0

Filed under
Graphics/Benchmarks
  • RADV's ACO Compiler Back-End Now Supported For Older AMD "Sea Islands" GPUs

    The Valve-backed "ACO" compiler back-end for the open-source Radeon "RADV" Vulkan driver has added support now for AMD GCN 1.1 "Sea Islands" graphics cards.

    Sea Islands includes the Radeon Rx 200 series with the R7 260/260X/290/295 series and these 2nd Gen GCN GPUs also ended up in the Radeon HD 7790, Radeon HD 8770, Radeon R7 360, Radeon R9 390/390X, and Radeon RX 455. Up to now the ACO compiler back-end has only supported GCN1.2/GFX8 and newer but with the latest Mesa 20.0-devel code as of today in Mesa Git there is now ACO support for GCN 1.1 Sea Islands.

  • Wayland's Weston 8.0 Reaches Alpha With EGL Partial Updates, Headless OpenGL

    Weston 8.0 is another significant update for this Wayland reference compositor in it offers EGL_KHR_partial_update support to reduce GPU vRAM usage on supported drivers/GPUs thanks to handling partial screen updates, support for building the DRM back-end without Mesa's GBM, greater hardware planes usage, the Weston headless back-end now supports OpenGL, a direct display extension, HDCP support in the DRM back-end, and various other improvements / features.

  • weston 7.0.91
    This is the alpha release for weston 8.0. Here is a highlight of the
    main new features:
    
    - DRM hardware planes should be used more effectively
    - Headless backend now supports OpenGL
    - DRM backend can now be built without GBM
    - EGL_KHR_partial_update is now used when available, reducing memory
      bandwidth usage on some GPUs
    - Logging framework improvements
    - Documentation for weston can now be built
    
    A lot of fixes have been merged too. Thanks to all contributors!
    
    Full commit history below.
    
    Adam Jackson (5):
          simple-dmabuf-egl: Allow QueryDmaBufModifiers to report no modifiers
          gl-renderer: Fix possible memory leak when no dmabuf modifers are supported
          libweston: Fix integer underflow in weston_layer_mask_is_infinite
          image-loader: Fix undefined left shift in premultiply_data
          tests: Fix undefined left shift in internal-screenshot-test
    
    Ankit Nautiyal (6):
          backend-drm: Add support for content-protection
          libweston: Add functions to modify disable_planes counter for an output
          libweston: Add function to schedule idle task for updating surface protection
          libweston: Notify the client, when output recording is started/stopped
          man: Declare drm-backend support for HDCP
          backend-drm: Check for HDCP Content Type property before setting
    
    Daniel Stone (8):
          renderer-gl: Assert function presence matches extensions
          remoting: Use DRM FourCC formats instead of GBM formats
          Revert "backend-drm: Teach drm_property_info_populate() to retrieve range values"
          config-parser: Export get_full_path and destroy
          backend-drm: Use aspect-ratio bit definitions from libdrm
          config-parser: Make get_bool be bool
          tests/config-parser: Remove useless duplicate test
          option-parser: Make bools boolean
    
    Drew DeVault (1):
          simple-dmabuf-egl: update to xdg-shell stable
    
    Eero Tamminen (1):
          Add include for missing symbols
    
    Emmanuel Gil Peyrot (1):
          shared: Use memfd_create() when available
    
    Harish Krupo (3):
          gl-renderer: Censor protected views when output is recorded
          clients/window: Add viewport destination support
          desktop-shell: Set 1x1 buffers for solid-color backgrounds
    
    Jeffy Chen (2):
          clients: Drop corresponding touch points when destroying windows
          clients: Add more sanity checks to catch destroyed window
    
    Leandro Ribeiro (11):
          build: bump libdrm requirement to newer version (2.4.83)
          backend-drm: remove unecessary ifdef checks
          backend-drm: remove unnecessary ifdefs
          move frame_signal emission to weston_output_repaint()
          screenshooter: stop using frame_signal void *data parameter to get weston_output
          tests: stop using frame_signal 'void *data' argument to get weston_output
          renderer: change frame_signal emission to pass previous_damage as data argument
          screenshooter: get previous_damage from data argument instead of weston_output
          screen-share: get previous_damage from data argument instead of weston_output
          Revert "move frame_signal emission to weston_output_repaint()"
          libweston: remove previous_damage from struct weston_output
    
    Link Mauve (1):
          xwayland: Remove unused variable
    
    Loïc Yhuel (1):
          libweston: fix possible crash after a view is removed the layer
    
    Marius Vlad (53):
          weston-log: s/scope/sub, leftover from the logging framework
          libweston: Fix rename of weston_compositor_destroy() reference
          weston-log: 'new_subscriber' is actually 'new_subscription'
          weston-log: Add 'destroy_subscription' callback for the subscription
          weston-log-internal: Allow to hang-off data over the subscription
          weston-log: Add a subscription iterator
          libweston: Clean-up timeline to make room for a new approach
          libweston: Introduce timeline subscription and timeline subscription object
          libweston: Create the 'timeline' scope
          libweston: Convert timeline points to use the timeline scope
          libweston: Notify timeline of object modification
          libweston: Remove timeline-object and clean-up
          doc/sphinx: Add some documentation about timeline points
          compositor: Allow protocol to be displayed when asked for, even if we're not supplying debug argument
          libweston: Init weston_output's 'destroy_signal' before timeline has a chance to emit a
          compositor: Pass the entire string in one-shot when writting logger data
          weston-log: Avoid prefix-matching the scope name when checking for a
          backend-drm: Teach drm_property_info_populate() to retrieve range values
          backend-drm: Teach drm_property_info_populate() to retrieve range values
          backend-drm: Add zpos DRM-property
          backend-drm: Add a helper to display plane type as a 'string'
          backend-drm: Hard-code zpos values if HW doesn't exposes them
          libweston: Add a new helper weston_view_has_valid_buffer
          libweston: Add a new helper to check if the view spawns the entire
          backend-drm: Construct a zpos candidate list of planes
          backend-drm: Place pixel format checks for the overlay plane in its own
          backend-drm: Place pixel format checks for the cursor plane in its own
          backend-drm: Check pixel format before constructing the zpos candidate list
          backend-drm: Allow for views to reach overlays/underlays planes
          backend-drm: Pass the plane to prepare_overlay_view
          backend-drm: Pass the drm_fb to each prepare_overlay/scanout_view functions
          backend-drm: Move plane's availability in drm_output_try_view_on_plane()
          backend-drm: Print whenever a view will reach the renderer region
          backend-drm: Print whenever a view could not placed on the primary due to
          compositor: Fix some warning when passing debugoptimized to meson
          protocol: Add weston-direct-display extension
          libweston: Add weston-direct-display server side implementation
          libweston: Add the ability to determine if a dmabuf is scanout-capable
          backend-drm: Add dmabuf scan-out check for DRM-backend
          renderer-gl: Avoid retrieving the EGL image it direct_display flag was set
          renderer-gl: Display a solid shader color when direct-display is in use
          clients/simple-dmabuf-egl: Make use of direct-display
          clients/simple-dmabuf-drm: Make use of direct-display
          backend-drm: Assign the primary plane the lowest zpos value
          backend-drm: Skip testing plane state if plane is not enabled
          backend-drm: Turn zpos duplicate check into an hard assert
          backend-drm: Further checks to skip plane assignment to HW planes
          weston-log-flight-rec: Add a global variable to access the ring buffer
          weston-log-flight-rec: Don't allow more than one flight recorder to be
          weston-log-flight-rec: Fix useless comparison when displaying the
          doc/scripts/gdb: Added gdb script to dump contents of the flight recorder
          clients/fullscreen: Refuse to resize the surface size when fullscreen'ed
          gitlab-ci: Update ci-templates to latest SHA commit
    
    Miguel A. Vico (2):
          desktop-shell: Avoid NULL output dereference when getting surface label
          compositor: Do not trigger invalid destructors when hotunplugging
    
    Nicholas Niro (2):
          backend-drm: Fix for gbm modifiers when they are not available.
          backend-drm: Added support for legacy fd_import
    
    Olivier Fourdan (1):
          xwm: Use Xwayland allow commits for repaint
    
    Pekka Paalanen (73):
          backend-headless: fix comment on use_pixman
          backend-headless: refactor into headless_output_enable_pixman
          backend-headless: refactor into headless_output_disable_pixman
          backend-headless: make renderer type an enum
          clients: fix len-string formatting
          gl_renderer: remove unused NO_EGL_PLATFORM
          gl-renderer: fix typo native_window to native_display
          gl-renderer: remove platform_attribs
          gl-renderer: remove gl_renderer_display
          gl-renderer: remove gl_renderer_output_surface
          gl-renderer: remove print_egl_error_state
          backend-drm: use format db for fallback too
          gl-renderer: move into egl-glue.c
          gl_renderer: introduce gl_renderer_get_egl_config()
          gl-renderer: use gl_renderer_get_egl_config() for display_create
          gl-renderer: do not even pick a config with configless_context
          pixel-formats: add RGBA bits and type fields
          gl-renderer: use pixel_format_info internally for EGL
          gl-renderer: fuzzy EGLConfig matching for non-GBM
          backend-wayland: use DRM formats for EGLConfig
          backend-x11: use DRM formats for EGLConfig
          gl-renderer: remove EGLConfig attributes from API
          gl-renderer: configs for pbuffers too
          gl-renderer: pbuffer config for non-surfaceless
          gl-renderer: prefer the base EGLConfig
          gl-renderer: improve get_egl_config errors
          gl-renderer: print detailed EGLConfig list
          gl-renderer: use EGLConfig printer for window outputs
          build: shells do not need matrix.c
          build: use dependency for matrix.c
          xwm: dnd does not need cairo-util.h
          Unify the include style of shared/ headers
          build: simplify include_directories
          xwm: no need for compositor/weston.h
          gl-renderer: display_create needs surface type
          gl-renderer: document display_create
          gl-renderer: document output_window_create
          gl-renderer: add EGL surfaceless platform support
          noop-renderer: zero-initialize struct
          headless, gl-renderer: support pbuffer outputs
          compositor: add use-gl option to headless
          gitlab-ci: fix pages
          build: separate deps for int and ext libweston users
          build: link libm explicitly
          build: link libdl explicitly to DRM backend
          backend-x11: need libdrm headers in build
          build: reduce sub-dependencies of libweston
          compositor: turn weston main() into a lib
          cms-colord: work around unresolved symbols
          backend-rdp: work around unresolved symbols
          Link Weston plugins to libexec-weston.so
          tests: surface-screenshot needs libshared
          build: do not allow unresolved symbols
          libweston: drop a misleading dmabuf comment
          tests: remove static data from viewporter
          tests: remove static data from ivi-layout-test-plugin
          tests: remove static data from ivi-shell-app-test
          tests: remove static data from ivi-layout-test-client
          tests: remove static data from presentation
          tests: fix test-shell init error path
          ivi-shell: fix init error path
          colord: remove destroy listener on clean-up
          Use weston_compositor_add_destroy_listener_once() in plugins
          libweston: allow double-loading modules
          compositor: allow double-loading modules
          tests: write image to current directory by default
          tests/subsurface-shot: hardcode reference image names
          tests: replace fprintf() with testlog()
          tests/xwayland: do not call exit(SUCCESS)
          tests: rename struct weston_test to weston_test_entry
          tests/ivi: rename test_section
          tests: drop FAIL_TEST
          libweston: do not include weston.h
    
    Sebastian Wick (7):
          shared: add read-only anonymous file abstraction
          CI: build wayland from source
          input: bump wl_seat version to 6
          clients/window: bump wl_seat version to 6
          input: bump wl_seat version to 7
          clients/window: bump wl_seat version to 7
          input: use ro_anonymous_file to minimize duplication of keymap files
    
    Simon Ser (4):
          build: reopen master for regular development
          clients: drop simple-dmabuf-drm
          clients: remove leftover from simple-dmabuf-drm
          build: bump to version 7.0.91 for the alpha release
    
    Stefan Agner (10):
          backend-rdp: don't use shadow buffer for the RDP backend
          backend-headless: fix build issue without gl-renderer
          clients: avoid build error without gl-renderer
          gitlab-ci: add build configuration without gl-renderer
          backend-drm: use DRM_ constants everywhere
          remoting: make sure GL renderer is enabled
          backend-drm: separate out DRM virtual support
          backend-drm: make GBM optional
          weston-launch: show when a signal is sent to a child
          weston-launch: use exec to ensure signal delivery
    
    Veeresh Kadasani (1):
          simple-dmabuf-egl: make application generic
    
    Vivek Kasireddy (2):
          gl-renderer: Replace EGL_*_WL macros with locally defined enums
          gl-renderer: Add support for XYUV format (v2)
    
    sichem (1):
          libweston: Bring back 'weston_output_move'
    
    git tag: 7.0.91
    
    
  • Mesa 20.0 Now Includes Intel's Gallium3D Driver To Build By Default

    As part of the ongoing effort for Intel's plans to use their new Gallium3D OpenGL Linux driver by default on next quarter's Mesa 20.0 for Broadwell "Gen8" graphics and newer, another step in that direction was achieved on Friday.

    Intel's "Iris" Gallium3D driver is still making good progress in its goal for Mesa 20.0 to switch the default "i965" classic driver to Intel Gallium3D for Broadwell and newer hardware. Earlier this week was adding a build-time option to change the Intel OpenGL driver default so those building from source or distribution vendors can change the default on their own with ease.

Linux 5.5+ Development

Filed under
Linux
  • GRUB Now Supports Btrfs 3/4-Copy RAID1 Profiles (RAID1C3 / RAID1C4 On Linux 5.5+)

    When it comes to the storage/file-system changes with the in-development Linux 5.5 kernel one of the most prominent end-user-facing changes is more robust RAID1 for Btrfs with the ability to have three or four copies of the data rather than just two copies, should data safety be of utmost importance and concerned over the possibility of two disks in an array failing.

    The Btrfs "RAID1C3" mode was merged last week for this three/four-copy RAID1 while now the GRUB boot-loader has adapted support for these new profiles in order to be able to boot to said arrays.

  • Linux 5.5 Adds NFS Client Support For Cross-Device Offloaded Copies (Server To Server)

    With NFSv4.2 is the server-side copy (SSC) functionality with the Linux 5.5 kernel's NFS client-side support for that support in allowing "inter" copy offloads between different NFS servers.

    This support allows for server-to-server efficient file copies with NFSv4.2 SSC rather than first having to copy to the client system. The NFS client changes also introduce new RDMA tracepoints for debugging congestion control and various other fixes.

  • Linux 5.5 KVM Adds POWER Support For Secure Guests/VMs

    IBM's work from over a year ago in working towards secure virtual machines on POWER hardware is finally coming to fruition with Linux 5.5 due out early next year.

    After those original Secure Virtual Machine POWER9 patches were posted last year, the ultravisor / secure bits landed in Linux 5.4 in preparing the foundation. As explained in that earlier article, "The Ultravisor / SVM support is part of IBM's approach for protected computing that is akin to the approaches of Intel SGX and AMD Secure Encrypted Virtualization (SEV). IBM's Ultravisor code runs with higher privileges than the virtualization hypervisor and in turn the virtual machines rely upon IBM Protected Execution for verifying the behavior of the hypervisor/ultravisor."

Syndicate content

More in Tux Machines

Raptor Computing Is Working On More AMD Radeon Driver Improvements For POWER

Similar to 64-bit ARM (AArch64) improvements we've seen with time for the Radeon Linux driver, Raptor's Timothy Pearson has been working to improve the Radeon support for PowerPC or more specifically POWER9. While NVIDIA offers a POWER9 graphics driver for IBM POWER servers, AMD Radeon graphics jive much better with Raptor's target customers thanks to the open-source driver stack -- allowing a fully open-source graphics/compute stack with the AMD hardware sans the closed-source microcode required by the GPUs, but much better than the completely closed-up NVIDIA driver stack. Read more

Using Menus For Command Line Programs and Scripts

THE holidays are coming (Christmas approaching), so I've taken advantage of some spare time to menu-ise commands that I use frequently. Those commands aren't the mere opening of an application and they often require dealing with input and output (in the command line). So I've created menu.sh and used dialog to craft the following menu, e.g. for operations associated with Techrights. I invoke this menu with the click of one button (of the mouse).

Rianne has a similar menu for commands she often runs (which are long and would otherwise need pasting or typing in length). Her menu looks something like this:

Rianne's menu

Here's the code (bash file) that renders the menu above (it's really that simple!):

#!/bin/bash

HEIGHT=15
WIDTH=40
CHOICE_HEIGHT=4
BACKTITLE="Aloha, Rianne"
TITLE="Rianne @ Ted"
MENU="Choose one of the following options:"

OPTIONS=(1 "Start VPN"
         2 "REDACTED"
         3 "REDACTED"
	4 "REDACTED"
	5 "REDACTED"
	6 "REDACTED"
	7 "REDACTED"
)

CHOICE=$(dialog --clear \
                --backtitle "$BACKTITLE" \
                --title "$TITLE" \
                --menu "$MENU" \
                $HEIGHT $WIDTH $CHOICE_HEIGHT \
                "${OPTIONS[@]}" \
                2>&1 >/dev/tty)

clear
case $CHOICE in
        1)
            echo "You chose Option 1"
sh ~/vpn.sh ;;

        2)
            echo "You chose Option 2"
REDACTED COMMAND ;;
        3)
            echo "You chose Option 3"
REDACTED COMMAND ;;
        4)
            echo "You chose Option 4"
REDACTED COMMAND ;;
        5)
            echo "You chose Option 5"
REDACTED COMMAND ;;
        6)
            echo "You chose Option 6"
REDACTED COMMAND ;;
        7)
            echo "You chose Option 7"
REDACTED COMMAND ;;

esac

Hopefully this inspires other people out there to do the same. It takes a while to set up, but it's a big time saver over the long run.

Android Leftovers

10 Years of Using Linux: How It Was Before, And How it Became

2020 Marks my 10 years of using Linux, a decade of my life that I also spent in supporting, promoting and developing free software both in my local community and globally. But the Linux ecosystem today was nothing like 10 years ago, and we are here today to take a look at the past and how both the Linux ecosystem and other open source software developed through the decade. If you asked anyone who used Linux in 2010, what was your biggest issue? They would tell you: Drivers. Back then, drivers for literally everything on Linux were not that good, and in a lot cases didn’t even exist. Read more