• FreeBSD Status Report - Fourth Quarter 2022 (3/3)

    From Lorenzo Salvadore@21:1/5 to All on Thu Jan 26 00:00:10 2023
    [continued from previous message]

    • Spanish (es) (progress: 19%)

    • Turkish (tr) (progress: 2%)

    We want to thank everyone who contributed by translating or reviewing documents.

    And please, help promote this effort on your local user group; we always need more volunteers.

    FreeBSD Website Revamp - WebApps working group

    Contact: Sergio Carlavilla <carlavilla@FreeBSD.org>

    Working group in charge of creating the new FreeBSD Documentation Portal and redesigning the FreeBSD main website and its components. FreeBSD developers can follow and join the working group on the FreeBSD Slack channel #wg-www21. The work will be divided into four phases:

    1. Redesign of the Documentation Portal

    Create a new design, responsive and with global search. (Complete)

    2. Redesign of the Manual Pages on web

    Scripts to generate the HTML pages using mandoc. (Complete) Public instance
    on https://man-dev.FreeBSD.org

    3. Redesign of the Ports page on web

    Ports scripts to create an applications portal. (Work in progress)

    4. Redesign of the FreeBSD main website

    New design, responsive and dark theme. (Work in progress)

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    FreeBSD Presentations and Papers

    Links:
    FreeBSD Presentations and Papers URL: https://papers.FreeBSD.org

    Contact: Allan Jude <allanjude@FreeBSD.org>
    Contact: Greg White <gkwhite@gmail.com>
    Contact: Li-Wen Hsu <lwhsu@FreeBSD.org>
    Contact: Philip Paeps <philip@FreeBSD.org>

    In this quarter, the presentations and papers from those events have been added:

    • BSDCan 2022

    • EuroBSDCon 2022.

    Open tasks:

    • Find and upload missing FreeBSD related presentations and papers

    • Issues listed at Open Issues.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Ports

    Changes affecting the Ports Collection, whether sweeping changes that touch most of the tree, or individual ports themselves.

    FreshPorts - help wanted

    Links:
    FreshPorts URL: https://freshports.org/
    FreshPorts blog URL: https://news.freshports.org/

    Contact: Dan Langille <dvl@FreeBSD.org>

    FreshPorts and FreshSource have reported upon FreeBSD commits for 20 years. They cover all commits, not just ports.

    FreshPorts tracks the commits and extracts data from the port Makefiles to create a database of information useful to both port maintainers and port users.

    For example, https://www.freshports.org/security/acme.sh/ shows the history of the acme.sh port, back to its creation in May 2017.

    Converting the backend repository

    This topic deals with the FreshPorts code repository. The front end (website) was converted from Subversion to Git several years ago. The back end, which processes FreeBSD commits and updates the database, is still on Subversion. I have wanted to convert these repositories to Git for some time.

    I would like help with this please. I’ll give you a copy of the repositories and you give me back several Git repos (one for each). They will be uploaded to https://github.com/FreshPorts (our project on GitHub).

    These are the existing Subversion repos:

    • ingress (code for the back end)

    • database schema

    • backend - monitoring code

    • packaging - scripts for cutting new tarballs - deprecated via Git

    • daemontools - now misnamed, because the scripts use daemon(8)

    • periodics - scripts started by periodic(8)

    • ports - for the FreeBSD packages which install the above.

    I won’t be running FreshPorts forever

    It’s been over 22 years and I know others must take over eventually. I’d like
    to start that process now. There are several aspects to FreshPorts:

    • FreeBSD admin (updating the OS and packages)

    • front end code (website - mostly PHP)

    • back end code (commit processing - Perl, Python, shell)

    • database design (PostgreSQL).

    The database does not change very often and requires little maintenance compared to the applications and OS. The website pretty much runs itself. From time to time, a change to the FreeBSD ports infrastructure breaks something or requires a modification, but there is rarely any urgency to fix that. This is not a huge time commitment. There is a lot of learning. While not a complex application, FreshPorts is also not trivial.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    PortsDB: Program that imports the ports tree into an SQLite database

    Links:
    PortsDB URL: https://github.com/yurivict/freebsd-portsdb/

    Contact: Yuri Victorovich <yuri@FreeBSD.org>

    I developed the PortsDB project that imports FreeBSD ports into an SQLite database. The port is ports-mgmt/portsdb.

    The database can be fully rebuilt in around 20 minutes, after which it can be quickly (in seconds) updated with new commits.

    The database is currently updated hourly: https://people.freebsd.org/~yuri/ports.sqlite.

    PortsDB can be used to query ports using SQL, as a relational database. External services like Repology, FreshPorts, Portscout, and other similar services can use PortsDB to access information in the ports tree.

    Users can, for example, easily find their broken ports, or port duplicates, or all ports that they maintain that use gmake, among many other possible queries. Such queries aren’t easy to perform by grepping the ports tree.

    Cross-DB queries are also easy to do. They can combine PortsDB, /var/db/pkg/ repo-FreeBSD.sqlite, and /var/db/pkg/local.sqlite.

    All that needs to be done to run PortsDB is ./import.sh, and then ./update.sh after more commits are pulled into the ports repository.

    The periodic script is provided that can simplify integration with cron. Multiple ready to use SQL queries are also included.

    One particular immediate problem that PortsDB aims to solve is to fix incorrect FreeBSD port versions displayed by Repology. Repology uses ports INDEX which is missing some required information. This leads to Repology not being able to distinguish between real versions, and intermediate and made-up versions. PortsDB should allow Repology to solve this problem.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    KDE on FreeBSD

    Links:
    KDE FreeBSD URL: https://freebsd.kde.org/
    KDE Community FreeBSD URL: https://community.kde.org/FreeBSD

    Contact: Adriaan de Groot <kde@FreeBSD.org>

    The KDE on FreeBSD project packages CMake, Qt, and software from the KDE Community, for the FreeBSD ports tree. The software includes a full desktop environment called KDE Plasma (for both X11 and Wayland) and hundreds of applications that can be used on any FreeBSD machine.

    The KDE team (kde@) is part of desktop@ and x11@, building the software stack to make FreeBSD beautiful and usable as a daily-driver graphics-based desktop machine. The notes below describe mostly ports for KDE, but also include items that are important for the entire desktop stack.

    Infrastructure

    • CMake ports now share a single version number. Various build-flags have
    been updated for FreeBSD ports builds: under some circumstances,
    release-flags were ignored and debug-flags applied, which is undesirable.
    CMake now also refuses to fetch remote sources during a ports build.

    • Qt versions are now Qt 5.15.7 (used by KDE) and Qt 6.4.1. Some applications
    in the ports tree are now "flavored" for Qt5 and Qt6.

    KDE Stack

    KDE Gear releases happen every quarter, KDE Plasma updates once a month, and KDE Frameworks have a new release every month as well. These (large) updates land shortly after their upstream release and are not listed separately.

    • KDE Frameworks 5 is now at version 5.101 (latest monthly release from
    December 2022). This is likely one of the last "Frameworks 5" releases, as
    the next major series comes closer.

    • KDE Gear is now version 22.12.0 (update for December 2022).

    • KDE Plasma is now version 5.24.7 (update for October 2022).

    Note that KDE Plasma 5.25 has been released upstream, but is still waiting on fixes before it can land in the ports tree (for example, this KActivityManager bug in KDE’s bug-tracker).

    Related Ports

    • graphics/krita is now version 5.1.3.

    • graphics/poppler was updated multiple times, now at version 22.11. It
    supports Qt5 and Qt6 through separate ports.

    • net-im/telegram-desktop was now supports Qt5 and Qt6 through flavors.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Xfce on FreeBSD

    Links:
    Xfce 4.18 Upstream Release Announcement URL: https://xfce.org/about/news/?post=1671062400
    Xfce meta-port on FreshPorts URL: https://www.freshports.org/x11-wm/xfce4

    Contact: Xfce team <xfce@FreeBSD.org>
    Contact: Guido Falsi <madpilot@FreeBSD.org>

    The FreeBSD Xfce team (xfce@) works to ensure the Xfce desktop environment is maintained and fully functional on FreeBSD.

    This quarter the Xfce team members are pleased to welcome Xfce 4.18 to the FreeBSD ports tree!

    This new release includes many improvements in various parts of the environment, especially in the Thunar file manager.

    Also various upstream packages now include patches that were present in the ports tree.

    For further details, refer to the Xfce 4.18 Upstream Release Announcement.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Pantheon desktop on FreeBSD

    Links:
    elementary OS URL: https://elementary.io
    Development repository URL: https://codeberg.org/olivierd/freebsd-ports-elementary

    Contact: Olivier Duchateau <duchateau.olivier@gmail.com>

    The Pantheon desktop environment is designed for elementary OS. It builds on GNOME technologies (such as Mutter, GTK 3 and 4) and it is written in Vala. The goal is to have a new desktop for users.

    13.1-RELEASE or higher is required, because several core components depend on deskutils/xdg-desktop-portal.

    The repository contains Mk/Uses framework elementary.mk, official applications, and curated ports which depend on x11-toolkits/granite.

    Since the previous report, we have been updating its related ports, especially:

    • deskutils/elementary-calendar update to 6.1.2

    • deskutils/iconbrowser

    • graphics/elementary-photos

    • math/elementary-calculator

    • multimedia/elementary-videos

    • x11/elementary-terminal

    • x11-themes/gnome-icons-elementary

    • x11-toolkits/granite7.

    Power manager plugins for top panel (wingpanel) and control center (switchboard) are finished.

    A new switchboard plugin is also available, net/switchboard-plug-sharing. Ported Rygel, GNOME UPnP/DLNA services.

    Submitted other patches for low level libraries such as:

    • print/cups-pk-helper update to 0.2.7 required by print/
    switchboard-plus-printers

    • devel/libgee update to 0.20.6 heavily used by the desktop

    • sysutils/polkit update to 122 (D37137)

    • sysutils/accountsservice update to 22.08.8 (D37679).

    Open tasks

    • Improve documentation.

    • Continue to work on user settings.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Budgie desktop on FreeBSD

    Links:
    Buddies of Budgie news URL: https://blog.buddiesofbudgie.org/
    Development repository URL: https://codeberg.org/olivierd/freebsd-ports-budgie

    Contact: Olivier Duchateau <duchateau.olivier@gmail.com>

    Budgie initially developed as the default desktop environment for the former Evolve OS. Since the 10.6.x releases, improvements have been made to be "agnostic".

    It is built on top of GNOME technologies such as GTK >= 3, GLib, Mutter, libpeas.

    The goal is to have a new desktop for end users. I have submitted 2 reviews ( D37224 and D37286 for The FreeBSD Porter’s Handbook) so committers can import it.

    These reviews include:

    • Mk/Uses framework budgie.mk

    • new virtual category (budgie)

    • 6 applications

    • icon theme x11-themes/tela-icon-theme.

    During this quarter, I have also submitted several patches (related to this desktop) especially:

    • x11/gnome-terminal update to 3.44.2 bug #267928

    • x11-wm/mutter update to 42.6 bug #267899

    • x11-toolkits/libwnck3 update to 40.1 bug #267898.

    These bugs are also still open:

    • devel/libpeas bug #267420

    • sysutils/gnome-settings-daemon bug #265107.

    Open task

    • Add support of LightDM in FreeBSD Handbook

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    GCC on FreeBSD

    Links:
    GCC Project URL: https://gcc.gnu.org
    GCC 11 release series URL: https://gcc.gnu.org/gcc-11/
    GCC 12 release series URL: https://gcc.gnu.org/gcc-12/

    Contact: Lorenzo Salvadore <salvadore@FreeBSD.org>

    Update GCC default version to 12

    Thank you very much to antoine@ for running the necessary exp-runs and to all the contributors, maintainers and committers involved in the process.

    As was noted last quarter, for every major version of GCC, FreeBSD usually awaits the release of the second minor version to update GCC default version. However next time I would like to attempt to update the default version as soon as the first minor version of GCC 13 is out. The rationale for awaiting the second minor release was to wait for other operating systems (in particular Linux distributions) to find, report, and fix bugs, so that FreeBSD could focus mainly on FreeBSD-specific cases. But this also meant that upstream software developers only heard from FreeBSD rarely, and mostly when it concerned FreeBSD only, thus our operating system risks being considered minor and unimportant for them.

    My hope is that software authors can value supporting FreeBSD more as the number of its contributions to other projects also increases. Of course I understand that this will imply more work for all ports maintainers and I will do my best to help them as much as I can.

    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=2659548

    Resolution of a conflict preventing the installation of multiple GCC versions simultaneously

    Now, lang/gcc11 and lang/gcc12 can be installed at the same time. This was particularly important for the update of the GCC default version, since a few ports have been kept to compile with GCC 11 for now.

    Note however that at the moment only one -devel GCC port at the time can be installed on your system. This is because I have patched the standard ports only: for the -devel port I expect upstream to fix the issue soon, by using a patch submitted by a FreeBSD user or my own patch, or using some other solution.

    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257060

    D language

    D is now enabled in lang/gcc11 and lang/gcc11-devel, thanks to diizzy. I plan to include D support for higher versions of GCC too, but this cannot be done as easily as for GCC 11 due to bootstrapping issues: starting from GCC 12, the D compiler GDC needs a working GDC to be built.

    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266825

    Crashes with -fsanitize=address

    Software compiled with GCC using the -fsanitize=address switch has been reported to crash. I have fixed the issue for lang/gcc11, lang/gcc11-devel, lang/gcc12, and lang/gcc12-devel. I am still working on lang/gcc13-devel.

    Use of the address sanitizer requires ASLR to be disabled. As GCC gets the code that I am modifying from LLVM, and LLVM is also included in the FreeBSD src repository with some patches that improve ASLR detection and automatically re-run programs with ASLR disabled when necessary, I am also merging those patches.

    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267751

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Another milestone for biology ports

    Links:
    Biolibc-tools URL: https://github.com/auerlab/biolibc-tools
    Fast And Simple Differential Analysis URL: https://github.com/auerlab/fasda

    Contact: Jason Bacon <jwb@FreeBSD.org>

    The biology category in ports continues to grow and mature, and reached another milestone in 2022q4 with the introduction of the rna-seq metaport.

    The fields of genomics, and more generally, bioinformatics, are often referred to as the "wild west" of computational science. Analyses are typically mired by a lack of clear documentation, and difficulties deploying and using software. Many scientific software developers do not understand the potential of package managers to simplify their lives and the lives of their users. As a result, much scientific software is deployed using ad hoc "caveman" installations involving overly complicated and unreliable build systems that either bundle dependencies or attempt to work with random installations thereof.

    Work has been ongoing to make FreeBSD ports a model of how easy scientific software deployment should be. It now contains a solid core of many of the most commonly used open source applications in biological research.

    This quarter saw the completion of a tool chain for one of the most important types of analysis, known as RNA-Seq. RNA-Seq measures the abundance of RNA, and hence gene activity, in tissue samples. All of the tools needed to perform a typical RNA-Seq analysis can now be installed on FreeBSD using:

    pkg install rna-seq

    This includes many mature existing tools as well as new tools developed on FreeBSD, such as FASDA and biolibc-tools, easy-to-use replacements for some of the more troublesome tools traditionally used in an RNA-Seq pipeline.

    Software deployments for RNA-Seq that traditionally have taken weeks or longer can now be performed on FreeBSD in a few minutes with a single command. Scientists can spend their time doing science rather than struggling with IT issues.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Third Party Projects

    Many projects build upon FreeBSD or incorporate components of FreeBSD into their project. As these projects may be of interest to the broader FreeBSD community, we sometimes include brief updates submitted by these projects in our quarterly report. The FreeBSD project makes no representation as to the accuracy or veracity of any claims in these submissions.

    Containers and FreeBSD: Pot, Potluck and Potman

    Links:
    Pot organization on GitHub URL: https://github.com/bsdpot

    Contact: Luca Pizzamiglio (Pot) <pizzamig@freebsd.org>
    Contact: Stephan Lichtenauer (Potluck) <sl@honeyguide.eu>
    Contact: Michael Gmelin (Potman) <grembo@freebsd.org>

    Pot is a jail management tool that also supports orchestration through Nomad.

    During the last quarter, pot 0.15.4 was released. It again contains a number of improvements like signing pot images as well as many bug fixes. Also, we welcome two new pot contributors: @zilti and @reezer.

    Additionally, there is a new Ansible pot collection available.

    Potluck aims to be to FreeBSD and pot what Dockerhub is to Linux and Docker: a repository of pot flavours and complete container images for usage with pot and in many cases Nomad.

    As you can see, we had a busy quarter again, this time including improvements to the Nextcloud as well as Jitsi images.

    Furthermore, we landed pot-based FreeBSD support for sccache-dist server (the server component for distributed compilation of rust and C++ using sccache) and it will be part of the upcoming sccache 0.4.0, see mozilla/sccache#1184. Once released, this will become available through devel/sccache.

    This means one can build rust projects on FreeBSD targeting a cluster of machines, something that could potentially be integrated into poudriere as well.

    Last but not least, Luca’s EuroBSDCon 2022 talk is now available on YouTube.

    As always, feedback and patches are welcome.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)