This Week in Solus -- Install #26

April 12, 2016

Welcome to the 26th installation of This Week in Solus. Out a bit later than usual but hey, better late than never, right?

All about that system.base

We have begun shrinking the size of our system.base component to give us more flexibility and provide a more minimal image. So far the following have been demoted likely more to come:

Locales

Screenshot From 2016 04 12 02 31 07

We now ship locales for Firefox and Thunderbird. This makes it easier to switch to the language you desire / need without having to jump through the hoop of installing addons.

Packaging Improvements – ypkg2

As discussed in last week’s This Week in Solus, some great strides have been made in improving how packaging is accomplished under Solus. Ikey has done some absolutely incredible work on the new version of ypkg, which is a tool we use to convert a build process into a packaging operation (package.yml -> Instructions and package info -> butterflies and rainbows).

Honestly, the list shown below is merely the tip of the iceberg, and if you have spare time on your hands, read the commit logs.

All I want for Christmas, is direct dependencies
Screenshot From 2016 04 07 04 16 28

Massive optimizations took place to ensure we only provide direct binary dependencies. As Ikey put it, frankly better than I can:

“Solus uses the equivalent of -Wl,-as-needed but at the toolchain level, these changes to eopkg now make it respect that. Net benefit? As you can see here each package has drastically fewer dependencies, allowing more flexibility, and much, much faster repo operations (upgrade, install, search, etc.)”

Color

Terminal output is much more colorful. We provide coloring to help you notice when there are warnings or errors, and you can differentiate between the two.

Dbginfo Packages

ypkg2 now automatically creates -dbginfo packages (including for 32-bit) automatically, which means things like valgrind will work.

Git outta here!
Screenshot From 2016 04 09 04 19 54

We now export the git log for tagged releases into built packages, meaning you see the actual history exactly as it is in git.

Not for the first timers

It isn’t a mystery that sometimes it takes multiple tries to get a package built (seriously guys, I’m still working on monodevelop, halp!). Having our build tool give you the necessary information to assess the issues you’re dealing with and help you address them quickly is obviously pretty important.

Screenshot From 2016 04 05 18 59 11

Error reporting has been greatly improved in ypkg2. If we failed to parse your package.yml file, we let you know why and what keys have the issues.

HTTP I.giphy.com O Codw2sr3 Wzt6.gif

KRC and I also banded together to protect the warning string when your filename isn’t package.yml. It was a noble sacrifice, I know.

Performance Guided Optimizations

We have now integrated performance guided optimizations directly into our build process. What does this mean? A more powerful, flexible, leaner and meaner Solus. This work was inspired by the work done by the Clear Linux* Project for IntelĀ® Architecture.

Here are some performance metrics / benchmarks for libxml2:

Screenshot From 2016 04 10 23 17 42

Package Updates

Below is a list of updates done to packages (excluding the ones updated for the system.base migrations or rebuilt for dbginfo):

New:

Updated: