Skip to main content

the avatar of openSUSE News

openSUSE Reaches First-Class Support for Nim Language

openSUSE joins fellow open-source project Arch Linux in having up-to-date packages for the Nim Language and the statically typed, imperative programming language now has first-class Nim support in openSUSE.

The compiled programming language gives programmers runtime efficiency and combines successful concepts from mature languages like Python, Ada and Modula.

“Real software runs without an OS, but if yours needs one, choose one which offers first class Nim support. Like SUSE does.” , said Nim programming language creator Andreas Rumpf, when asked about openSUSE supporting up-to-date Nim from now on.

Rumpf created Nim back in 2005 and has recently published his book Mastering Nim covering each corner of this emerging programming language.

There are Nim packages built for x86-64, i586, ppc64le and ARM64 with openSUSE.

“Very excited to have the first Linux distribution announcing first-class support for Nim,” said Dominik Picheta, a Nim core developer and writer of the Nim in Action book. “Hope this opens the door for other distros to do the same.”

One of Nim strengths, besides the macro system and runtime efficiency, is its standard library, which is similar to other languages and covers most standard functionality; these include string handling and formatting, async code development, networking and even high-level language functionality (like the compiler itself) or NimScript, which is a subset of Nim specially built for scripting that can be embedded and executed at run-time.

Moreover, Nim comes with a wide range of tools included by default. The compiler allows the targeting of C, C++ and Javascript as its backend. There are a few tools included for easy development:

  • nim compiler
  • nimsuggest (support for language suggestions, autocompletion, error/issues detection, etc.)
  • nimgrep (a powerful grep alternative with built-in Nim support to find symbols and inspect Nim codebases).
  • nim-gdb wrapper (gdb support for Nim types)
  • nimble (package manager)

There is automated testing for openSUSE builds. Generally availability for Nim with openSUSE involves upstreaming broken tests for specific architectures along with the backporting and upstreaming of security patches.

Nim has a very interesting and vibrant ecosystem of packages for easy development on many fronts; from web development to systems programming and scientific to data processing, to name a few. It’s possible to develop extremely fast and parallelized applications using Weave, develop both frontend and backend web applications fully in Nim by using Karax or Jester and to perform heavy computational math-based operations with ArrayMancer. On the playful side, Nim can be used to develop high-performance 3D visualizations and game development with Godot by using Godot-Nim as a bridge.

Even if developers only want to support another language, Nim allows a rich ecosystem of foreign function interface (FFI) technologies to interact with other languages. Besides the native support to interact with C and C++ codebases, it is possible to use Nim to easily build Python modules by using NimPy.

Developers can play around with Nim at https://play.nim-lang.org/ and can learn a bit about it in five-minutes.

A taste of Nim

import strformat

type
  Person = object
    name*: string # Field is exported using `*`.
    age: Natural  # Natural type ensures the age is positive.

var people = [
  Person(name: "John", age: 45),
  Person(name: "Kate", age: 30)
]

for person in people:
  # Type-safe string interpolation.
  echo(fmt"{person.name} is {person.age} years old")

Useful Links

the avatar of Santiago Zarate

In case your zsh completion is broken on OSX with homebrew

Happens that I spent today (Finally) a good few hours trying to figure out why my autocompletion was broken on my new shiny MacBook Pro M1 Pro…

despite Homebrew’s brew doctor giving me the All OK.

foursixnine@pakhet ~ % brew doctor
Your system is ready to brew.

turns out that it was just the shell:

foursixnine@pakhet ~ % echo $FPATH
/opt/homebrew/share/zsh-completions:/usr/local/share/zsh/site-functions:/usr/share/zsh/site-functions:/usr/share/zsh/5.8.1/functions

My user’s shell is still being set to osx’s 5.8.1 zsh…

So after hours of searching on the internet to no avail, and scratching my head, I came back to my initial idea of just switching the shell::

echo "export PATH=/opt/homebrew/bin:$PATH" >> ~/.zshenv
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)

a silhouette of a person's head and shoulders, used as a default avatar

openSUSE Tumbleweed – Review of the week 2022/27

Dear Tumbleweed users and hackers,

Full steam ahead – with 7 snapshots published in one week. of course, most of those snapshots were not drastically changing the world. Vacation season on one hand and lots and lots of discussions around ALP and prototyping take some resources away. Nevertheless, Tumbleweed is supposedly staying the base for it all, and it is thus just natural to let it roll.

The 7 snapshots (0630, 0701…0706) consisted of these changes:

  • Mesa 22.1.3
  • Pipewire 0.3.53
  • Vim 9.0
  • Linux kernel 5.18.9
  • KDE Plasma 5.25.2

For the following snapshots in the works, there are some things the community has been waiting for. you can expect these changes to happen rather sooner than later:

  • GCC 12.1.1
  • Libvirt 8.5.0
  • Pipewire as a replacement for PulseAudio: The default has been switched in Snapshot 0708 to install Pipewire by default instead of Pulseaudio. Existing systems will not be migrated automatically. If you wish to perform the switch: zypper in pipewire-pulseaudio and let zypper remove the Pulseaudio packages
  • Perl 5.26.0: breaks texlive and one yast’s Perl bindings
  • systemd 251.2: blocked by SELinux reports (boo#1200911)
  • KDE Applications 22.04.3
  • GNOME Shell 42.3 (sort of GNOME 42.3, but again without the actual gnome-desktop version bump)
  • Linux kernel: re-enabling simpledrm (3rd attempt)
the avatar of FreeAptitude

The media couldn't be loaded error

After an upgrade or an installation from scratch, we might notice a weird behavior while navigating among the streaming websites: some videos play well, others raise an error like: The media couldn’t be loaded, either because the server or network failed or because the format is not supported
the avatar of openSUSE News

Tumbleweed Gets Vim, Plasma, PipeWire Updates

The openSUSE Tumbleweed snapshots are rolling out steady during the month or July.

Some big and small snapshots have been released with a few major-versions updates arriving this week.

The most recent snapshot arrive in the last 24 hours was 20220706. The release updated the Linux Kernel to 5.18.9. It had several additions for the Advanced Linux Sound Architecture to include fixing a couple missing beep setups and adding a mute LED quirk for HP Omen laptops. The kernel also enabled configuration for the MLX90614 remote temperature sensor. There were some minor changes in the update of xfce4-settings 4.16.3, which fixed a recursive lock in libX11. Both yast2-network and yast2-schema-default updated to version 4.5.4, which the packages added a missing route element to the networking section.

A major version updated package arriving in the 20220705 snapshot was 7zip 22; the new version has switches for Linux TAR archives and can now can store additional file timestamps with high precision at one nanosecond or a billionth of a second. That’s fast. Another major version to land this week was vim. The text editor received its second update this week to version 9.0.0032, which fixed a couple Common Vulnerabilities and Exposures; one of those was a moderate Integer Overflow reflected in CVE-2022-2285. Mesa 22.1.3 had some X11 performance fixes and a lot of Zink driver fixes. GNOME’s personal information manager evolution updated translations and fixed a crash when printing task lists to pdf in version 3.44.3. An update of firewalld 1.2.0 added a secure version of Kubernetes controller-plane components and added distributed web IPFS services. The audio and video package PipeWire updated to 0.3.53 and the ALSA plugin should now be able to deal with unsupported sample rates and fall back to the nearest supported one. The audio-convert plugin was rewritten, which should make it more maintainable. Other packages to update in the snapshot were pango 1.50.8, harfbuzz 4.4.1, kernel-firmware 20220622, sssd 2.7.3 and more.

GNOME’s sushi updated to the 42.0 version in snapshot 20220704; the updated file previewer enabled WebKit sandboxing for increased security and responsiveness. The previewer also allows right-clicks to show the context menu for GtkSourceView. Both gnome-software and gnome-remote-desktop updated to version 42.3. An incorrect restart notification related to a failed firmware update was fixed and an uninitialized caps lock was fixed respectively. The camera, access and control library libgphoto2 provided updates in version 2.5.30 related to cameras Canon EOS Rebel T8i, Sony DSC-WX220, Nikon Z9, Fuji X-E4 and the GoPro HERO10. The snapshot also had a few Perl, Python and Ruby support libraries updated.

A single package was updated in snapshot 20220703. The update of the adwaita-xfce-icon-theme to a 0.0.2 version added some multimedia and camera icons.

The dependency manager Yarn updated to version 1.22.19 in snapshot 20220702 and added compatibility with web standard WebAuthn on the npm registry. An update of kmod 30 both dropped and added one patch. The update also provides support for the SM3 hash algorithm. The power management tool tlp 1.5.0 has new features for Sony, ASUS and ThinkPads laptops. The package also added radio device support for switching Near-Field Communication (NFC) devices and removed support for wireless-tools, iwconfig. More than a handful of other language package libraries were updated in the snapshot.

The major version update for vim 9 arrived in the 20220701 snapshot. The text editor made fixes for the CTRL-key combinations that caused more problems than it solves. The editor may still access invalid memory after changing terminal size, according to the changelog. Arriving three days after it’s release, KDE’s Plasma 5.25.2 found its way in the snapshot. The desktop environment updated some Qt 5 requirements for KWayland Integration among many other packages for Plasma. The X Window Manager and Wayland Compositor KWin ensured modeset properties were reset properly and fixed broken keyboard navigation while filtering. Plasma Desktop fixed the dbus interface when building the kglobalaccel and there were many other fixes for Plasma users.

the avatar of openSUSE News

openSUSE.Asia Summit 2022 Main Track Call For Papers

openSUSE.Asia Summit 2022

Call For Papers

CFP deadline is extended to Aug 13, Fri. And Notification to speakers: Week of August 22, 2022. Let's submit your proposal.

It is a pleasure to announce the call for papers for openSUSE.Asia summit 2022 Main Track starting today, the openSUSE.Asia Committee is looking for speakers from different avenues of life, representing and advocating Free and Open Source Software. openSUSE.Asia Summits are organized every year to promote the use of free and open source software and have been appreciated events for the openSUSE community (i.e. both contributors and users) in Asia. Following the last Asia Virtual Summit hosted by India team, the eighth openSUSE.Asia Summit 2022 will be held by openSUSE online volunteer team on Late September. The past Asia Summits received major participation from Indonesia, China mainland, Taiwan, Japan, South Korea, and India.

This year’s event will consist of the two parts: the Asia Summit Main Track and local online/offline parts held in several Asian countries/regions. This call is for the Asia Summit Main Track. The event is going to be completly virtual and use online conference tools. Talks will be live, but you can record video in advance if you want it.



Topics

openSUSE.Asia Summit 2022 will invite talks relevant to openSUSE and other topics like Cloud, Virtualization, Container, Container Orchestration, Linux desktop environments and applications since openSUSE is a collection of various FLOSS products. The examples of the topics (not limited to) are as the following:

  • openSUSE (including Leap, Tumbleweed, Open Build Services, openQA, YaST)
  • openSUSE Kubic & MicroOS, Cloud, Virtualization, Container, and Container Orchestration
  • Embedded and IoT
  • Security (Access/Integrity control, Cryptography, Vulnerability management)
  • Desktop environments and applications (e.g. GNOME, KDE, XFCE)
  • Office suite, graphic art, multimedia (e.g. LibreOffice, Calligra, GIMP, Inkscape)
  • Multilingualization support (e.g. input methods, translation)
  • Other software running on openSUSE

Please note that non-technical talks are also welcome. For example:

  • Explanations of FLOSS technologies
  • Development, Quality Assurance, Translation
  • Tips & Tricks, Experience stories (success or fail), Best practice
  • Marketing and community management
  • Education

Types of sessions

We are inviting proposals for these 2 types of sessions.

  • Keynote or long talks with presentation (30 min + Q&A)
  • Short talk with/without presentation (15 min + Q&A)

Due to a shorter attention span during online sessions, we will keep talks short and engaging.

Schedule
  • The deadline of the call for proposals: August 13, 2022
  • Notification to speakers: Week of August 22, 2022
  • openSUSE.Asia Summit 2022: Week of September 26 (The local events during the summit will be announced later among each local community. Please stay tuned.)
  • Conference Timings:
    • Sep 30 Fri 2022 : 10:00 UTC - 15:00 UTC
    • Oct 1 Sat 2022 : 4:00 UTC - 7:00 UTC

How to submit your proposal

Please submit your proposal to the event

  • Your proposal must be written in English and 150–500 words long with an appropriate title.
  • You need to use English both in speech and on slides.
  • Please run spell and grammar checks for your proposal before submission. LibreOffice Language tools and Grammarly
  • Your biography on your profile page is also a reviewed document. Please do not forget to write your background.
  • You must obey openSUSE Conference code of Conduct. You will receive a forms link after successful submission of proposal for further information requirements.

Guide to write your proposal

Please ensure that your proposal is about and around a topic

For example, if your talk is on security or desktop application, a wholesome proposal will always start with steps to install the application first.

Please include the reasons as to why your proposal should be the one.

It may contain the following as a reason:

  • Need of the application/ technology/ solution
  • Future prospects of the proposed solution
  • Learnings for the target audience (beginners, contributors)

Do not hesitate to contact the local team on social media or write to the committee if you are not sure about writing your proposal or preparing your presentation.

Contact Organising committee

For any enquiries regarding the programme, please contact:

opensuseasia-summit@googlegroups.com

We look forward to see you at openSUSE.Asia Summit 2022.

the avatar of openSUSE News

openSUSE.Asia Summit 2022 Logo Competition Announcement

openSUSE.Asia Online Summit 2022 Logo Competition

Today, we will start a logo competition for openSUSE.Asia Summit 2022. A logo is an essential material for the successful summit. As you have seen, the former openSUSE.Asia summits have their unique logos reflecting the communities where the summit took place. Following tradition, we have logo competition to collect great logo for this year’s summit. Notably, this year summit has two parts. One is Asia Summit Main Track with Virtual Online Conference, the other is Local Part which will be held in each local area. This logo is for Asia Summit Main Track. So this logo will represent Asia.

The competition is open now and ends on 23 July 2022. The organizing team will send “Geeko Mystery Box” as an appreciation for the best logo designed.

Deadline: 23 July 2022

Announcement Winner: Week of August 14

The Rules of the contest are as follows:

  • The logo should be licensed under CC-BY-SA 4.0 and allow everyone to use the logo without attribution (BY) if your work is used as the logo of openSUSE.Asia Summit 2022. Note that the attribution is going to be shown on the summit website.
  • Design must be original and should not include any third party materials conflicting with CC-BY-SA 4.0 with the attribution exception.
  • Both monochromes and color formats are essential for submission.
  • Submissions must be in SVG format.
  • Design should reflect the openSUSE community in Asia.
  • The logo should avoid the following things:
    • Brand names or trademarks of any kind.
    • Illustrations that may consider inappropriate, offensive, hateful, tortuous, defamatory, slanderous or libelous.
    • Sexually explicit or provocative images.
    • Violence or weapons.
    • Alcohol, tobacco, or drug use imagery.
    • Discrimination based on race, gender, religion, nationality, disability, sexual orientation or age.
    • Bigotry, racism, hatred or harm against groups or individuals
    • Religious, political, or nationalist imagery.
  • The logo should follow “openSUSE Project Trademark Guidelines” published at HERE
  • The branding guidelines will be helpful to design your logo (optional)

Please submit your design to opensuseasia-summit@googlegroups.com with the following entries:

  • Subject: openSUSE.Asia Summit 2022 Logo Design - [your name]
  • Your name and mail address to contact
  • A document about philosophy of the design (txt or pdf)
  • Vector file of the design with SVG format ONLY.
  • Bitmap of design in attachment — image size: 256*256 px at least, PNG format.
  • File size less than 512 KB.

The openSUSE.Asia Summit Committee will decide on the logos, subject to the condition, that the logo meets all the requirements. The final decision will be made by openSUSE.Asia Summit Committee and it may not be the highest scored design. We recommend the artist to use Inkscape, a powerful, free and open source vector graphics tool for all kinds of design.

a silhouette of a person's head and shoulders, used as a default avatar

openSUSE Tumbleweed – Review of the week 2022/26

Dear Tumbleweed users and hackers,

This week, many of us were busy with hack week. Naturally, this took away some resources for regular Tumbleweed work, but I am sure we will see some new things coming out of that week again relatively soon. I tried to keep Tumbleweed rolling this week, which was not that difficult: stagings were never overcrowded, and some snapshots were relatively small changes. And so it comes that we have released 6 snapshots during this week (0624..0629).

The main changes included were:

  • openSSL 1.1.1p
  • Qt 5.15.5
  • GStreamer 1.20.3
  • Linux kernel 5.18.6
  • Squid 5.6
  • glibc: fix hang of rsyslog on shutdown (snapshot 0629)

The staging projects are rather quiet, I expect more to be incoming next week. For now, the most relevant changes in the staging read are:

  • Perl 5.36.0
  • systemd 251.2: openQA detected issues when combined with SELinux enabled
the avatar of Timo's openSUSE Posts

Camera use on openSUSE Leap on Raspberry Pi Zero 2

One thing I wanted to investigate during the Hackweek was trying out whether openSUSE Leap would offer my Raspberry Pi Zero 2 a nice and stable option for motion detection camera recording. I have had RPi 3 Model A+ doing this for a longer time, and a Zero model before that, but the newer RPi Zero 2 has been a bit unstable for so far unknown reason. There are also some unoptimal combinations of too old or too fresh software in the official Raspberry Pi OS releases. You can read more in my hackweek project page

RPi - initial setup over HDMI

Some of the actions I did over time to change from the system’s default setup:

  • For camera support, I needed to install raspberrypi-firmware-extra to get start_x.elf installed, after which I enabled it with start_x=1 in /boot/efi/config.txt
  • Added Packman repositories to check fully enabled ffmpeg4.
  • Installed motion package, nicely the latest 4.4 was available.
  • Configured motion to be near the configuration of my Raspbian installation.
  • Played around and probably installed various other packages…
  • Updated the 200 packages were available.
  • Noticed raspberrypi-firmware-config really owned the config.txt, and the include extraconfig.txt was there for a reason… then found out bsc#1192047 and sighed a bit.

RPi - it boots!

Some notable differences I noted when switching from Raspbian / Raspberry Pi OS to openSUSE Leap 15.4:

  • Huge amount of variety in pre-configured images! Enlightement 20, JeOS, minimal X11 (IceWM), GNOME, XFCE, … everything! I chose the minimal X11 as the starting point, since I did not want GUI other than enabling network.
  • Booting looks very familiar to openSUSE user, including the boot menu
  • No raspi-config or such is included, configuration is done more on the lower level. OTOH I’m used to it by now.
  • No MMAL, but V4L2 compatibility works fine
  • Other “standard” raspberry tools are missing and uninstallable from default repositories as well, like vcgencmd.
  • motion was fresh, but however not compiled with MMAL support. Using /dev/video0 instead.
  • ffmpeg is recent enough, but compiled without –enable-omx and –enable-omx-rpi

RPi - good to use with a keyboard/mouse combo

All in all the first impressions is that openSUSE seems to be well suited for PC like desktop or server use cases in its default configurations. Using more Raspberry Pi specific functionalities may be a bit cumbersome if used to certain tools being available immediately, or the software being compiled with Raspberry Pi specific options. OTOH Raspberry Pi is a lot about hacking so they would not be blockers as such.

I initially had weird network hickups with the wifi, not sure why, so I resorted to wired connectivity for some time. Later on I switched back and wifi seemed fine, possibly thanks to the firmware updates that were installed.

RPi - infrared camera module works as well :)

All in all, it requires some hacking but it does work! openSUSE Leap 15.4 as it stands does offer the combination of (so far) stable non-libcamera camera usage (via v4l2 only though), and recent enough ffmpeg. However, the ffmpeg is not compiled with the h264_omx codec possibility for the mkv container which has been my wish. Therefore, it seems that whether using openSUSE or Raspbian, some compiling from sources would be needed to reach the optimal setup.

So far, I’ve studied most of the topics I wanted to study during the Hackweek. However, long term system stability evaluation requires this to be a longer term experiment, so I will leave the system running for now and monitor it.

the avatar of openSUSE News

OpenSSL, Squid, Dracut Update in Tumbleweed

Five openSUSE Tumbleweed snapshots have been released since last Friday.

The snapshots had a small amount of packages in each release.

The 20220629 snapshot updated OpenSSL to version 1.1.1p. This newer version fixed CVE-2022-2068 affecting the c_rehash script, which was not properly sanitizing the shell metacharacters to prevent command injection. The script, which is distributed by some operating systems in a manner where it is automatically executed, could give an attacker execute arbitrary commands with the privileges of the script. Another package updated in the snapshot was perl-JSON 4.07, which provided some backport updates from 4.10 version. New memory device types, processor upgrades, slot types, processor characteristics and more came in the update of dmidecode 3.4. There were also several table engine updates in the snapshot like ibus-table 1.16.9, ibus-table-chinese 1.8.8 and more.

A single package was updated in snapshot 20220628. The update of mpg123 1.30.0 has a new network backend using external tools/libraries to support HTTPS and the terminal control keys are now case-sensitive.

Two Python Package Index updates were released in 20220626. Missing constructors for UUID for each Bluetooth service were added in the python-qt5 5.15.7 update. The package is a comprehensive set of Python bindings for Qt v5. The other PyPI package update was python-rsa 4.8, which switched to Poetry for dependency and release management and made decryption 2-4x faster by using the Chinese Remainder Theorem when decrypting with a private key.

Text editor vim fixed an invalid memory access when using an expression on the command line in the 8.2.5154 update and some fixes related valgrind became available in the 20220625 snapshot. Caching proxy squid fixed some parser regressions and improved the handling of Gopher responses in version 5.6. The updated open-source printing package cups-filters 1.28.15 had improvements to identify old LaserJets more precisely and switch to Poppler when appropriate. The 5.18.6 Linux Kernel came in the snapshot as well and had several ALSA System on Chip enhancements and fixes. The kernel also had a couple KVM for arm64 changes and handled some GNU Compiler Collection 12 warnings.

Snapshot 20220624 brought an updated dracut version, which stopped leaking shell options and put in a temporary workaround for openSUSE appliance builder kiwi. The gstreamer 1.20.3 made some WebRTC and performance improvements; it also fixed scrambled video playback with hardware-accelerated VA-API decoders on certain Intel hardware. The D-Bus interface for user account query and manipulation, accountsservice, updated from version 0.6.55 to 22.08.8. Other packages to update in the snapshot were Imath 3.1.5, KDE’s amarok and more.