Sunday, March 19, 2017

SDL2 goes into current

This evening, i accidentally check Slackware's changelog and i saw that SDL2 is now added into Slackware-Current along with other components (image, net, gfx, mixer, and ttf). ffmpeg is also rebuilt and now has ffplay since all the deps have been met (SDL2).

SDL2 is being used by many other projects. Running my dependency-checking script on SBo repository yields a lot of results:
development/SDL2_gfx
development/love
games/0ad
games/7kaa
games/OpenJK
games/antimicro
games/bitfighter
games/blobby2
games/blobwars
games/bstone
games/dhewm3
games/doomretro
games/doomsday
games/dunelegacy
games/flare
games/freeblocks
games/freeorion
games/fs2open
games/glPortal
games/gzdoom
games/instead
games/ioquake3
games/iortcw
games/mame
games/megaglest
games/nestopia
games/neverball
games/openmw
games/openspades
games/pcsx2
games/pioneer
games/ppsspp
games/redeclipse
games/sdlpop
games/simplesok
games/solarus
games/speed-dreams
games/spring
games/starfighter
games/stella
games/stone_soup
games/stuntrally
games/supertux
games/tome4
games/unvanquished
games/vbam
games/vcmi
games/warsow
games/widelands
games/zdoom
graphics/Blender
graphics/gource
libraries/SDL2_image
libraries/SDL2_mixer
libraries/SDL2_net
libraries/SDL2_ttf
libraries/fifechan
multimedia/guvcview
multimedia/lightspark
python/PySDL2
ruby/rubygem-gosu
system/fs-uae

this is for SDL2_image
games/blobwars
games/doomretro
games/flare
games/freeblocks
games/instead
games/openspades
games/pioneer
games/redeclipse
games/sdlpop
games/simplesok
games/solarus
games/starfighter
games/stone_soup
games/supertux
games/tome4
games/vcmi
games/widelands
graphics/gource
libraries/fifechan

this is for SDL2_mixer
games/blobwars
games/doomretro
games/doomsday
games/dunelegacy
games/flare
games/freeblocks
games/glPortal
games/instead
games/redeclipse
games/sdlpop
games/starfighter
games/tome4
games/vcmi
games/widelands
multimedia/lightspark

this is for SDL2_net
games/blobwars
games/widelands

and this is for SDL2_ttf
games/blobwars
games/flare
games/freeblocks
games/instead
games/mame
games/neverball
games/solarus
games/tome4
games/vcmi
games/widelands
libraries/fifechan
ruby/rubygem-gosu

Slackware with Kaby Lake Hardware

Last week, i just bought a new laptop equipped with the latest Intel processor i5 7200U 7th Gen aka Kaby Lake. It's quite a nice laptop. I added 256 GB SSD and 16 GB of RAM (total 20 GB) on top of 4 GB RAM, 1 TB of HDD and GeForce 940 MX. This is my first experience with SSD and also UEFI-based system.

First thing i did was checking the BIOS setting whether it has secure boot feature or not. Turns out it has and it was enabled by default. Since i didn't know how to disable it at that moment, i installed Windows 10 with secure boot turned on (my first mistake). Turns out, you can easily disable secure boot by setting administrator's password. Secure boot can be disabled and you can turn off the administrator's password once again if you don't need it. Most Linux will not work with Secure Boot enabled. Make sure to disable Secure Boot before installing any Linux OS.

During Windows installation, i pick the default UEFI layout (my second mistake). Although UEFI offers many advantages over legacy, it requires more efforts to set up. However, Windows 8 and newer will gain more benefit by using UEFI. Nevertheless, i continue the installation and set up my Windows system normally. No problems at this point. I set up all applications i need, migrate all data, emails, etc into the new laptop and in no time, everything is settled.

Next thing was to install Slackware onto this laptop. I choose to use USB-based installation. I copied the Slackware-Current image into a flash drive and boot with it. Installation worked just fine. It detect Window's EFI partition automatically and so on and installation finished in less than 15 minutes. Troubles comes when i rebooted. No ELILO or any other boot loader showed up and it directly goes into Windows 10. I tried to reinstall Slackware Current again but i got the same problem. I was able to login to my Slackware using my flash drive, but that's not the ideal condition. I need a way to get the boot loader working normally.

Finally i decided to try grub2. After mounting Slackware's root partition and chrooting, i set up grub2 (grub-mkconfig -o /boot/grub/grub.cfg), install it to correct partition (grub-install /dev/sdb), rebooted but problem persists. It still directly boot into Windows 10. Next I tried to use EasyUEFI in Windows but it only worked when i added grub and set it to boot once. After i rebooted, the Windows Boot Loader took place and Grub no longer first choice and back to square one. I thought it was Linux's fault, but turns out it's a known issue with Windows 10. Easy solution is to run this command on Window's command prompt (administrator mode): bcdedit /set {bootmgr} path \EFI\grub\grubx64.efi. After running this command, grub2 showed up and i can select which operating system i wanted to boot. First problem solved. Just in case, i made a backup using EasyUEFI.

Slackware booted nicely and very fast due to SSD. Second problem arose when i tried to run startx on my user after installing NVidia driver. It showed an error message "No screens found". I tried to run X -configure to generate xorg.conf, but still no luck. Turns out my laptop has an Optimus-based technology, meaning it has a Hybrid GPU (Intel/NVidia).

My previous laptop also has a hybrid GPU and i can easily disabled my discrete GPU (nvidia) to preserve battery life. I did the same on my new laptop. I also tried to install Bumlebee project (i forked the project and update it as well to the latest version), but the problem persists.

On Saturday, i spent few hours on my laptop to find the solutions. While i may be out of X, but i was still able to connect to my house's access point using wpa_supplicant and command line interface (that's one advantage of knowing some command lines). My first thought was about Kaby Lake support that wasn't available on Linux Kernel 4.4.x. So i decided to compile my own Linux Kernel based on Slackware's config. I grab 4.10.3's source and build it using Slackware's huge config. It took a while to answer all the new options for building new kernel. Once it's done, it started to compile. While compiling, i Googled (using links) and found a discussion about creating a new configuration for both Intel and Nvidia device. I added the configuration. 

Here's the xorg.conf configuration i used on my laptop:

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "intel"
    Inactive "nvidia"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "Yes"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID "PCI:0:2:0"
    Option "AccelMethod"  "sna"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection


I also removed all Bumblebee installation and any settings i made so it goes back to the original state. Next i edited my grub.cfg to point to the new kernel and rebooted with the new kernel. I logged in to my user account and i ran startx, voila, and now it boots into X and MATE 1.18 loaded (i built it during compiling the Linux Kernel). So the culprit was lack of support from Linux Kernel for my Intel GPU which was loaded by Xorg. Kaby Lake support was added in 4.8, but 4.10 will give you better results in terms of power management. Second problem solved.

At this moment, most of the applications i used regularly has been installed on that machine. Most of the data has also been migrated, but i still need to work on few things, mostly dealing with virtual machines. At least all of the problem has been solved for now. Slackware-Current is working nicely on my new laptop here. I might play some experiments with my NVidia in the future so that i can use this powerful GPU.

Some tips: If you have new hardware and had a problem like i did, it's better to try using the latest Linux Kernel to make sure your hardware is properly supported. I also hope that Patrick will include new kernel (along with kernel-firmware) soon in -current (at least the configs or in testing/) so that users can built their own kernel or test the new kernel with the new hardware.

Wednesday, March 15, 2017

MATE 1.18 Released

Turns out just 24 hours after i posted about MATE 1.18 preparations, upstream developers have finally announced the final version of MATE 1.18. This release has reached an interesting milestone, which is to migrate all MATE components to GTK+3, leaving GTK+2 code base which is no longer updated and have many limitations. Along with this transition, many deprecated components are also being migrated to the new technologies.

Upstream developers have generously supported GTK+3-3.14.x, which is still used by RHEL and Slackware 14.2 as their minimum supported version of GTK+3. They do support all newer GTK+3, up to GTK+3-3.22.x. Since GTK+4 is still far away and it will be co-installable with previous GTK+3, upstream developers will have more time to fix many things with GTK+3 before starts struggling with new GTK+4 in the future.

MATE 1.18 have also started to provide support for libinput for mouse and touchpad. Since -current has included libinput, it will have better support on handling inputs in the next release. It has also replaced deprecated upower suspend/hibernate functions with ConsoleKit2 equivalents that is supported in Slackware and Gentoo. There are also reworked font-viewer in mate-control-center, lots of new filetype support in engrampa, and porting of Pluma and eom plugins to libpeas.

The biggest change goes to caja, the file manager. It is ported from libunique to GtkApplication, added copy queue and pausing feature, delete confirmation, directory navigation buttons, better notification with removeable drives, and many more.


Please note that there are still some theme-related and mate-panel glitches with GTK+3 and it's a known issues for some time. The developers are working on it day by day.

All the SlackBuilds source code has been pushed to github and gitlab. Website has been updated with MATE 1.18 screenshots, and binary packages have been uploaded to Slackware.uk for both Stable and Current (x86_64 only) release. It will be included in the next Slackware Live ISO by AlienBOB as well.

Enjoy MATE 1.18!!!

Sunday, March 12, 2017

MATE 1.18 Preparation

As MATE 1.18 release is getting closer, it's a good idea to have all the development changes merged into master so that users can easily build and test the latest snapshots. That's the reason why i just merged all the changes in the 1.17-prep branch into master branch. That branch previously contains all the changes for next MATE 1.18 release.

In short, there are some changes in the upcoming MATE 1.18 release:
- 6 new packages added: gtksourceview3, glade, libunique3, libpeas, mate-calc, and caja-actions
- 3 packages removed: galculator, gtksourceview, pygtksourceview
- It's all GTK+3 build, no more GTK+2/3 mix build
- HELP files are now provided, but yelp will not be included. Users might want to install yelp via SBo project or via testing directory.

While the developers haven't decided the final schedule, but i believe it should be this March as they are targeting for next Ubuntu-mate release: 17.04.

I have been using this development snapshot for some time and i didn't have many major problem, although there are some annoying glitches. They mostly comes from upstream bugs.

Please go and test MATE 1.17 before the final release of MATE 1.18.

Saturday, March 11, 2017

Security Update: Firefox and Thunderbird

Two regular security updates were released in March:
  • Firefox: Upgraded to 45.8.0 for Slackware 14.1 and 14.2 and 52.0 for current
  • Thunderbird: Upgraded to 45.8.0 for Slackware 14 and newer
Firefox in current is now rebuilt with ALSA support, just in case PA is missing or removed (some people still can't move on from PA history). A bunch of xf86-video packages are now being restored after the latest update is now compatible with xorg-server 1.19.2. FFmpeg bug a little bump and updated the autodetected optional dependency support and we have more bumping in kmod, binutils, coreutils, harfbuzz, libepoxy, libinput, motif, gimp, network-manager-applet, and last but not least, mesa.

MESA 17.0.1 has entered Slackware Current even though it was just released last week and 17.0 was released about a month ago. It's a big win for users with modern hardware.

Sunday, March 5, 2017

security update: shadow, util-linux, and curl

February ended with an update from Patrick and it includes several security updates in -current tree only
  • shadow: Rebuilt to fix potential issue with PAM-based system
  • util-linux: Rebuilt to fix potential issue with PAM-based system
  • curl: Upgraded to 7.53.1
There weren't many interesting updates in last week's update:
  • coreutils: Added more file extensions
  • ed: Upgraded to 1.14.2
  • etc: Rebuilt to add new cgred group
  • libcgroup: Rebuilt to fix rc.cgred
  • nano: Upgraded to 2.7.5
  • screen: Upgraded to 4.5.1
  • guile: Upgrade to 2.0.14
  • cairo: Upgraded to 1.14.8
  • fftw: Upgraded to 3.3.6_pl1
  • libimobiledevice: Rebuilt to support iOS 10 devices
  • libsigservd: Upgraded to 2.11
  • ModemManager: Upgraded to 1.6.4
  • NetworkManager: Upgraded to 1.6.2
  • libmbim: Upgraded to 1.14.0
  • libqmi: Upgraded to 1.16.2
  • windowmaker: Rebuilt to disable overly verbose logging messages
I'm looking forward to see GTK+3 stack updated so i can finally test latest MATE Themes. Hopefully that won't took too long :)