Language Selection

English French German Italian Portuguese Spanish

The Systemd Saga, Into the Vortex, and a Minty RC

Filed under
-s

In today's Linux news, Katherine Noyes slogs the blogosphere in search of alternatives to systemd, with little success it seems. Jesse Smiths falls into VortexBox 2.3, a distribution for music servers and jukeboxes. Jamie Watson reviews Mint 17 RC and a user survey puts Ubuntu ahead of Red Hat in the OpenStack race.

Read more

More in Tux Machines

Programming/Development: Dirk Eddelbuettel, Dependencies and Python

  • 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!

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

  • 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

  • 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."