My thoughts on Slackware, life and everything

Month: August 2013 (Page 1 of 2)

Best FOSS or Linux Blog of 2013

The folks at FOSS Force ran a poll during the past four weeks in order to decide who gets to be called the “Best FOSS or Linux Blog of 2013“. I casually mentioned (at the end of one of my own blog posts) that my “Alien Pastures” blog had been added to the list of contenders after the first round, and was rewarded with lots of people voting for Alien Pastures 🙂

FOSS Force Best FOSS or Linux Blog 2013Actually, so many of you voted during the second and third round (obviously stimulated by a LQ post) that I ended on top! The Alien Pastures have been honoured with the winner’s badge.

Thank you all for your appreciation and confidence, and hats off to the other blogs which participated in the poll. They are worth checking out – all of them are written by Free and Open Source Software advocates with a mission – to educate and enthuse you!

I personally gave my vote to Martin Graesslin’s Blog, I think his are the deepest thoughts.

And thank you FOSS Force for giving my blog a new platform and the potential to interest a wider audience for my writings, and for Slackware of course.

 

Cheers, Eric

I would like to dedicate this accomplishment to my dearest cat Sox, who slept on my lap almost every night (with hew paws firmly clutching one of my arms) and therefore has been first witness to most of the blog posts I have written here. She passed away 3 weeks ago at the age of 17.

Introducing slackpkg+, an extension to slackpkg for 3rd party repositories

I want to introduce you to a tool written by Matteo Rossini (nicknamed zerouno of the Italian slacky.it community and contributor of several SlackBuild scripts at SlackBuilds.org as well as creator of the Slackware package search site slakfinder.org) with some serious contributions from phenixia2003, author of compat32pkg.

The tool is “slackpkg+“. It is not a stand-alone piece of software. In fact, it is an extension to Slackware’s package manager “slackpkg“. I will first describe the strengths of “slackpkg” and then come to the reasons why “slackpkg+” was written.

Slackpkg itself is a wrapper around the Slackware pkgtools (installpkg, upgradepkg, removepkg) with built-in package search capabilities and very useful when you want to keep your Slackware installation up to date. It was written with a modular design in mind: it can be extended with new functionality by adding new or extending existing functions in the “/usr/libexec/slackpkg/functions.d/” directory.

Slackpkg is my preferred tool for system upgrades (i.e. upgrading from one Slackware release to the next). People who do not use slackpkg usually have to do much more handywork like reading ChangeLog.txt entries for package additions, updates and removals, and/or follow the official Slackware guideline as found in “UPGRADE.TXT“. One disadvantage of the instructions found in UPGRADE.TXT is that the suggested “upgradepkg –install-new *.t?z” command will install every package you did not yet have installed – not just the packages that were introduced in the latest Slackware release but also the packages which you did not want to install anyway in the past.

Slackpkg allows you to keep full control over the packages that get installed, by showing you lists of candidate packages for every action you want to perform. You can de-select any package you do not want to be acted upon.

So far its strengths. The most heard “complaint” about slackpkg is that it will install and upgrade packages only from official Slackware repositories – it does not support 3rd party package repositories. This is why some users switch to other (unofficial) package managers like slapt-get, which do support 3rd party repositories. Slackware spin-offs like Salix and Vector use slapt-get. Slackpkg also does not allow you to keep a Slackware multilib installation correctly updated. The community tool compat32pkg was written for that purpose.

Both these issues (3rd party repository support and multilib support) are addressed in the slackpkg+ extension to slackpkg.

Slackpkg+ is NOT a new tool with new commands. Because it extends slackpkg, you can continue to use the well-known slackpkg commands after adding your 3rd party repository configuration:

# slackpkg update gpg
# slackpkg update
# slackpkg install openjdk
# slackpkg upgrade-all

etc..

The slackpkg+ extension also extends the search functionality in slackpkg:

# slackpkg search vlc    

DONE

The list below shows all packages with name matching "vlc".

[ Status           ] [ Repository               ] [ Package                                  ]
   installed           alienbob                     phonon-vlc-0.6.0-x86_64-1alien            
  upgrade              alienbob                     npapi-vlc-20130818-x86_64-1alien --> npapi-vlc-20130408-x86_64-1alien  
  upgrade              alienbob                     vlc-20130819-x86_64-1alien --> vlc-2.0.8-x86_64-1alien  
   installed           alienbob_current             npapi-vlc-20130818-x86_64-1alien          
   installed           alienbob_current             vlc-20130819-x86_64-1alien                
  upgrade              restricted                   npapi-vlc-20130818-x86_64-1alien --> npapi-vlc-20130408-x86_64-1alien  
  upgrade              restricted                   vlc-20130819-x86_64-1alien --> vlc-2.0.8-x86_64-1alien  
   installed           restricted_current           npapi-vlc-20130818-x86_64-1alien          
   installed           restricted_current           vlc-20130819-x86_64-1alien                

You can search specific files using "slackpkg file-search file".

You probably noticed that the package “vlc” is listed several times in this search exxample. That happens because I have this package in several repositories. You can (as shown further down) configure slackpkg+ with the correct priority in which these repositories are consulted when installing/upgrading software, so that the correct package will always be used.

Let me show you how I use slackpkg+ to maintain my computers.

I run Slackware-current 64-bit, with multilib added. I install my packages from multilib-current as well as my Slackware 14.0 package repository. Sometimes, I create a package specifically for Slackware-current (such as calibre, vlc, …) because the Slackware 14.0 version of that package will not work on Slackware-current. In such a case I want slackpkg to install the -current package and not the 14.0 package.

This is my configuration file “/etc/slackpkg/slackpkgplus.conf”:

SLACKPKGPLUS=on
PKGS_PRIORITY=( multilib:.* restricted_current:.* restricted:.* alienbob_current:.* alienbob:.* ktown:.* )
REPOPLUS=( slackpkgplus multilib ktown alienbob alienbob_current restricted )
MIRRORPLUS[‘alienbob’]=http://192.168.0.1/slackware/sbrepos/14.0/x86_64/
MIRRORPLUS[‘restricted’]=http://192.168.0.1/slackware/restricted_sbrepos/14.0/x86_64/
MIRRORPLUS[‘slackpkgplus’]=http://slakfinder.org/slackpkg+/
MIRRORPLUS[‘multilib’]=http://192.168.0.1/slackware/multilib/current/
MIRRORPLUS[‘alienbob_current’]=http://192.168.0.1/slackware/sbrepos/current/x86_64/
MIRRORPLUS[‘restricted_current’]=http://192.168.0.1/slackware/restricted_sbrepos/current/x86_64/
MIRRORPLUS[‘ktown’]=http://192.168.0.1/ktown/current/latest/x86_64/

A breakdown of these lines:

  • You will notice that I have a local webserver running in my LAN (IP address 192.168.0.1) but you can use any public webserver which hosts these repositories. Having the repositories mirrored locally in the LAN has benefits for download speeds of course.
  • The variable “SLACKPKGPLUS” determines whether the functionality of slackpkg+ will be enabled at all. If you set it to”off” then slackpkg will not use any of the new code. The default is “on”
  • The “MIRRORPLUS” variables define an array of 3rd party repositories which you want slackpkg to know about.The array indices of the MIRRORPLUS array (like ‘alienbob’, ‘restricted’, ‘ktown’, etc…) are used in other variables, as will be explained next:
  • The “REPOPLUS” variable defines which of the 3rd party repositories you have defined in MIRRORPLUS are actually actively used. The order in which the repositories are mentioned is not important.
  • That repository order is important in the “PKGS_PRIORITY” variable. With this variable, you can force priority for certain repositories, or even for individual packages in these repositories. For instance, having “multilib:.*” listed first, means that my multilib package always have priority over the Slackware versions of these packages (gcc and glibc to be specific). Also, by defining the order “alienbob_current:.* alienbob:.*” I will ensure that when a package (such as calibre) is found in both repositories, slackpkg will install the one from the “-current” repository. The “.*” behind the repository’s name is a wildcard meaning “any package“. If you want you can make that more specific, like “restricted:vlc” which means “the vlc package in the ‘restricted’ repository“.

NOTE:

You will probably have added 3rd party packages to your slackpkg blacklist. When you install slackpkg+ you should of course remove those blacklist lines! If you don’t, then slackpkg will never show those blacklisted packages…

For instance, the lines you need to remove from “/etc/slackpkg/blacklist” in order to let slackpkg/slackpkg+ manage my packages, are:
[0-9]+alien
[0-9]+compat32

NOTE:

Similar to enabling a Slackware repository for your specific Slackware version and architecture in /etc/slackpkg/mirrors , you will add additional 3rd party repositories in /etc/slackpkg/slackpkgplus.conf . Take good care that you only add repositories which contain packages compatible with your particular version and architecture of Slackware ! The example repositories which I showed you above are suited for my Slackware64-current-with-multilib installation. If you are running Slackware 14.1 you should add repositories that offer packages for Slackware 14.1.

As a rule of thumb, do not mix packages for different versions of Slackware. Specifically, do not attempt to install packages for a more recent version of Slackware than you have installed on your computer. Most packages built for an older release of Slackware will still work on newer versions of Slackware (as an example, Slackware64-current contains several packages that have not changed since 13.0 and those still work).

CAVEAT:

The slackpkg tool parses the Slackware ChangeLog.txt to determine which packages are being added to Slackware. It looks for strings like “Added.” in the changelog when you run the command “slackpkg install-new”. This functionality does not work for 3rd party repositories. That means I can not simply run “slackpkg upgrade kde” to get my newest KDE “ktown” release installed – any package which is not present in Slackware itself, will not be installed with that command. On the other hand; keeping your “ktown” installed packages up to date afterwards, is easy with slackpkg+ because it will detect any upgrade to individual packages. .

The “slackpkg+” extension has its homepage on http://slakfinder.org/slackpkg+.html You can find more of slackpkg+ here:

If you have a set of packages that are not part of any repository yet, and you want to create your own slackpkg+-compatible repository for them, you should check out an older article on this blog: http://alien.slackbook.org/blog/local-slackware-mirror/ . In there you will find an explanation about how to use my “gen_repos_files.sh” script.

Have fun! Eric

Calibre reaches 1.0 after nearly 7 years of development

calibreicoI am fully occupied this week and the next with training my new helpdesk team, so it took me a bit by surprise when tweeted that there was a version 1.0 of Calibre since this morning. Kovid Goyal, developer of Calibre, published the news in a blog post. It’s nearly seven years since Kovid started with Calibre – this was the time when the first E-ink based ereader device, SONY PRS-500, hit the market. At first, Calibre was merely a library which was able to convert e-book formats into Sony’s LRF format. It got ‘upgraded’ with a graphical user interface to manage Kovid’s growing ebook library.

There have been 44 increments in the 0.9.x series of Calibre. During that period of development, the program got powered by a new optimized database engine, you can now sub-divide your library into smaller virtual collections, and many improvements have been made to the importing, converting, polishing and exportering of digital book formats (including the .docx file format).

I try to maintain an up-to-date version of my custom-built Calibre package (and a fairly successful package it is!). Calibre is invaluable to anyone in the possession of an E-Reader or even just a collection of E-Books. I use it every day – one of Calibre’s many functions is to download my daily (paid) newspaper in EPUB format, so that I can access the newspaper (today’s and all previous days’editions) anywhere I have an internet connection.

I realize that the Calibre web site urges you to download the developer’s own distro-agnostic installer – it is the only binary version of Calibre he will support – but to me the calibre.SlackBuild has been a learning experience akin to developing my SlackBuild script for VLC, only this time for a Python-based program. Been lots of fun! Also, a proper Slackware package is a more appropriate way of installing software in Slackware.

I hope you give the new Calibre 1.0 package a spin. I made packages available for Slackware releases 13.37, 14.0 and -current. While the Slackware 13.37 package is pretty much self-contained (you only need podofo and icu4c installed additionally), the package for newer Slackware releases is a lot smaller, but has many external dependencies: BeautifulSoup, dnspython, podofo, pycrypto, pysetuptools, python-apsw, python-cssselect, python-cssutils, python-dateutil, python-imaging, python-lxml, python-mechanize, python-netifaces and python-psutil (note: python-apsw is a new dependency since the previous version). All of these packages can be found in my repository as well, of course.

Kovid, thanks for this nice piece of software.

Readers, have fun!

Eric

VLC 2.1 Rincewind about to enter the arena

For quite a long time now, I have been compiling VLC packages in the 2.0 series (nicknamed “Twoflower”). My standard way of working is to prepare tarballs with pre-compiled code for the internally used libraries (the “contribs” in VideoLAN terms – stuff like ffmpeg, matroska, dvdcss etcetera) and then leave those precompiled tarballs relatively unchanged while I update the VLC version between builds. That way I can kind of guarantee that the internal encoding and decoding capabilities do not break all of a sudden –  new bugs are usually easily tracked down to VLC bugs.

Also, compiling a new VLC package does not take long that way – I just “import” the contribs and link against the binary code. Remember, I have to create 4 VLC packages for every Slackware release: 32-bit and 64-bit packages, and for both architectures I create an “unrestricted” (in terms of distribution) version as well as a one containing the MP3 and AAC encoders, and the DeCSS library, all plagued by software patents.

Someone asked me via email if I could upgrade some of the internal libraries, and that was something I was not really looking forward to – updating the internals of the VLC package often results in compilation errors and hunting for patches to get everything to work nicely together again. But for a while, I had been eyeing the progress in the 2.1 branch of the VideoLAN git repository. The next release of VLC is nearing completion and a “2.1.0-pre3” tag has already been applied to the repository, indicating that the developers are getting serious about finalizing “VLC media player 2.1.0 Rincewind“.

So I set to the task of collecting new source tarballs and updating the vlc.SlackBuild script. Actually, the update went rather well. I used the newest versions of libraries like ffmpeg, fluidsynth, libass, libcdio, libdc1394, libdvbpsi, libebml, libmatroska, libva, opus, orc, schroedinger, vcdimager, vo-amrwbenc, and x264. My first attempt yesterday, uncovered a regression in saving the VLC advanced preferences (VLC would crash) but after some interaction with the developers in their IRC channel, the cause was found and a fix was quickly applied (thanks Edward Wang).

I now present you with the 20130819git snapshot build of the vlc-2.1 branch. In fact, the player reports a RC1 in its version information:

VLC media player 2.1.0-rc1 Rincewind (revision 7cbb328)

I was most pleased to see that the VAAPI (GPU hardware-assisted) video decoding of AVI files no longer crashes VLC (possibly caused by my update of the internal libva library to the latest release). Also, the preferences window finally is fully resizable. Oh, and the ProjectM visualization works again – that plugin was broken if you had a VLC installed on -current which had been compiled on Slackware 14.

Note that I built these packages only for slackware-current! If you want to try out VLC 2.1 on Slackware 14 you can use my sources and build script to create your own package. Depending on the time it takes for Slackware 14.1 to emerge versus the release of VLC 2.1.0, I may still decide to create packages for Slackware 14. However, this git snapshot is mainly used to test the code and get bugs resolved before the 2.1.0 release is finalized. Hence my choice for slackware-current which is what all you tinkerers should have running anyway 😉

Where to find my new VLC packages:

Rsync acccess is offered by the mirror server: rsync://taper.alienbase.nl/mirrors/people/alien/restricted_slackbuilds/vlc/ .

My usual warning about patents: versions that can not only DEcode but also ENcode mp3 and aac audio can be found in my alternative repository where I keep the packages containing code that might violate stupid US software patents.

Have fun! Eric

And a “thank you” goes to…

… all of you who voted for my blog on FOSS Force. Actually, you Slackers pushed my blog all the way to top position in the second round. There is a third and final round which started today with a remaining 10 blog sites – can I ask you to please vote for me again? Much obliged!

 

 

KDE 4.11 is out

Folks, get it while it is hot!

KDE Software Compilation 4.11 has been released – the major components being Plasma Workspaces, KDE Applications, and the basis on which those are built, the KDE Platform. The new KDE SC 4.11 is more of an intermediate release cycle while the developers concentrate on the technical transition to “KDE Frameworks 5” (the evolution of the current KDE Platform).

The release of KDE Platform 4.11 has a focus on stability, bugfixes and performance improvements. Basically, the platform libraries have been feature-frozen since 4.9 already. New features are being implemented for the future KDE Frameworks 5.0. (with an exception made for further optimizations to the Nepomuk framework which went into the stable release).

From a packaging point of view, the most prominent change is a further splitting of the big packages into multiple smaller individual program packages. This time, the affected “meta packages” are kdeadmin, kdetoys, kdesdk and kdenetwork.

It looks like Slackware-current (and therefore Slackware 14.1) is sticking with KDE 4.10.5 because that is rock stable and an upgrade to 4.11.0 may introduce compatibility issues we do not want when Slackware 14.1 is somewhat visible on the horizon already. This means that those of you who feel adventurous and want to run the latest KDE always, will need to visit this blog on a regular basis to stay informed about updates in the KDE 4.11 series for Slackware 14.1/current. What are you waiting for? Plan an upgrade from your trusted Slackware 14.0 to -current (and eventually to 14.1) right now!

And since “The Plasma Workspaces 4.11 will receive long term support as the team focuses on the technical transition to Frameworks 5. This then presents the last combined release of the Workspaces, Applications and Platform under the same version number” (quote from the release announcement) I can’t really tell you how future versions of KDE are going to be numbered. For now, the KDE 4.12 roadmap is available at the usual place, telling us that KDE 4.12 should be released in December of this year.

announce-4.11-beta1

New KWalletManager user interface; changes to Okular

What’s new in KDE 4.11?

For those interested in the in-depth information, my tip is to check out the feature plan page for the KDE 4.11 series. Highlighted changes are the expansion of the use of Qt Quick (the application framework which includes the interpreter language QML), faster Nepomuk indexing (many people keep complaining about Nepomuk… but really guys, give the “evil triplet” of Nepomuk/Akonadi/Strigi the change they deserve), many Kontact improvements, and the start of support for the Wayland compositor in KWin (the window manager of KDE) as well as OpenGL improvements.

Speaking of Wayland support. I feel compelled to mention this interesting article explaining how the next release of X.Org could become a real alternative to Wayland by implementing the new DRI3 and Present extensions – it shows that X.Org development is very much alive!

How to upgrade to KDE 4.11 ?

You will find all the installation/upgrade instructions that you need in the accompanying README file. That README also contains basic information for KDE recompilation using the provided SlackBuild script. Earlier blog posts have more information on rebuilding from source and upgrading from Slackware’s own KDE. Another post explains the inner workings of KDE.SlackBuild for all you re-compilers.

You are strongly advised to read and follow these installation/upgrade instructions!

Where to find packages for KDE 4.11 ?

Download locations are listed below (you will find the sources in ./source/4.11.0/ and packages in /current/4.11.0/ subdirectories). Using a mirror is preferred because you get more bandwidth from a mirror and it’s friendlier to the owners of the master server!

Have fun! Eric

On a personal note: the FOSS Force site is running a “best personal Linux or FOSS blog competition” and one of the condenders is my very own blog (no idea how I got on the list). I’d feel honoured if you would take the time and vote for my blog if you appreciate my writings: http://fossforce.com/2013/08/who-will-be-best-personal-linux-or-foss-blog/

Thank you!

« Older posts

© 2024 Alien Pastures

Theme by Anders NorenUp ↑