August 13, 2014

KDE Framework and Plasma 5 Packages by Eric Hameleers

This is the day some of you have been waiting for. It's the day where KDE Framework and Plasma 5 packages are released by Eric Hameleers (announcement will be posted soon later) after KDE team announced it last week (Framework 5.1.0) and yesterday (Plasma 5.0.1). The packages has been uploaded to KTown and mirrored through several mirror sites that normally host the KDE packages.

A little FYI, the next successor of KDE will be based on Qt5 and QML and in order to make the transition goes as smooth as possible, KDE team decided  to freeze the Plasma Workspaces and the KDE Platform at 4.11.x branch (but Plasma Workspaces will still be supported until August 2015). Workspace development efforts were focused on Plasma 2 (later changed to Plasma 5), while KDE Platform is in transition to Frameworks 5. KDE Applications will keep using 4.x branch as of now.

Now, back to Framework and Plasma 5. These new packages are meant for early-adopters and serve more like a preview just like in KDE 4.0. Don't expect this to be added to Slackware soon, but the idea is that you can help KDE team to polish this packages. The KDE Team focused on building the solid core as a base first while waiting for the rest of the KDE Applications to get ported to Qt5 and QML. The full transition is scheduled to happen around 2015.

Eric has built this packages since Framework and Plasma 5.0.0, but didn't release them yet since it hasn't reached a quality level to be introduced for public, so we waited until the developers pushed the first update to both and things are progressing nicely. Most (but not all) bugs have been fixed, the performance has increased a lot, and more functionality has been implemented. We think it's ready for public consumption (but again, this is considered a public beta testing), so he delivered the packages for you to try.

If you decided to try this packages, make sure several things first:
  1. Make sure your computer is running latest Slackware-Current (as the time this post is written, it's August 8).
  2. Make sure you have been using KDE 4.13.3 provided by Eric Hameleers.
  3. DO NOT install these packages on a computer where you expect a stable environment. 
When you are ready, go to KTown repository or any other mirror sites below and READ the README first!!.  This will give you an idea about this packages and how to download/install them. As noted by Eric in his previous post, he had tried his best to keep KDE 4 and 5 separated, from both package naming and also configuration files. This means that you can have 2 KDE versions installed on one machine and it's so easy to switch one to another.

We have been doing a private beta testing for few days in both VM and real hardware environment and found some known issues. This list is not a full list,  but it will be added based on user's report:
  • When you switch back to KDE 4, in some cases, all the icons in Application tab in K menu will change to blue folder icon. The solution is to reinstall KDE 4.13.3 packages, log out and login again. That will fix it.
  • Adding new items on KDE Menu Editor sometimes do not work. You might need to logout/login to have your changes appears for the first time. The second addition will work normally.
  • hplip error message can be ignored. The reason is because Plasma 5 do not implement the old xembed, so all other applications that still uses the old system tray will not be visible as they don't have a place to dock. The solution is not elegant, but you can use third-party system tray, such as stalonetray or wmsystemtray (both are available in SBo).
  • There are 2 system settings. One came from Plasma 5 and the other came from KDE 4. The one in Plasma 5 can be seen in Favorites tab, while the one from KDE 4 (which is more complete) can be seen in Applications > Settings > System Settings. The system settings from Plasma 5 is not yet fully migrated and more icons and functionality will be added in the future.
  • There are certain condition that might crash your plasma shell; eg. Typing on search field in Favorites tab and then remove the text, but it will restart automatically.
  • If you need to run applications quickly, use the new KRunner which can be called directly by typing on top of your desktop. However, it will not save your history.
  • Public holiday are not yet shown. See this URL for more information.
  • Some application will revert to it's initial state (such as Chrome or Chromium) since all local files for KDE 5 are now placed under .config5, .local5, .cache5, and .kde5. Your previous configuration stays in .config, .cache, .local, and .kde.
  • It still have high resource usage due to design limitations in KWin, but it will be fixed in future releases.
  • kded5 might consume a lot of CPU resources after some time
Here are the usual mirror sites that host KDE Framework and Plasma 5 packages:
The packages are placed under current/5.0.1 and there's a symlink for current/testing -> current/5.0.1.

Have fun with KDE Framework and Plasma 5 :)

August 09, 2014

KDE Framework and Plasma 5 and New Poll

Eric Hameleers has posted in his blog that he is working on publishing his latest work on KDE Framework and Plasma Next 5 to public. We (me and Eric) had been doing some private testing about this packages and so far, the result is quite promising, despite there were some known bugs by upstream which will be fixed in future release.

As mentioned, this packages should be installed on a machine running Slackware-Current (not stable) with KDE 4.13.3 (or newer). This can be considered a preview of future KDE releases, so don't expect it to be bug free.

Eric has made a big effort on making sure that KDE Framework and Plasma 5 can coexist with KDE 4, so you only need to switch to Plasma to test it and if you want to switch it back to KDE 4, logout and switch back to KDE 4 and that's it. It's that simple.

I wanted to know if you are interested to get down with KDE Framework and Plasma Next 5? Use your votes :)

Poll Results

The poll is closed, but i completely forgot about it. Here's the result from 77 voters:
3.15 11 (14%)
3.16 9 (11%)
3.17 4 (5%)
3.18 3 (3%)
3.19 50 (64%)

So most users believe that next Slackware users will end up using the 3.19 Linux Kernel. The latest version available is now 3.16 and currently, Slackware-Current is still using 3.14 as the default stock of kernel. 

Security Update: openssl

One security advisory has been released for openssl update which fixed quite a lot of security vulnerabilities according to CVE entries related. This update is applied to all supported Slackware release, back to Slackware 13.0. There are 2 versions:
  • Slackware 13.0, 13.1, and 13.37 will get 0.9.8zb update
  • Slackware 14.0, 14.1, and current will get 1.0.1i update
In current, Pat welcome pi kernel (3.14.16), which is the latest stable (and long term release) of Linux kernel released by Greg yesterday. There are no other updates for this batch besides the kernel and openssl.

August 06, 2014

LibreOffice and VLC Update

Eric Hameleers has published his work on LibreOffice and VLC on his blog. VLC is now upgraded to VLC 2.1.5, while LibreOffice has jumped to another major release LibreOffice 4.3.0, while users wanted to build older LibreOffice 4.2.6 are given the build script available.

Many new and interesting features can be found on the new LibreOffice release, mainly better compatibility with other document format, better comment management, more formula supported, and of course there are tons of other new features that can be found Release Notes, Announcement or other blog post by Michael Meeks and Charles-H. Schulz.

As always, you can always get the packages (and source code) from these mirror sites:

August 03, 2014

Security Update: samba and dhcpcd

Two security advisories has been released few days ago (i forgot to make a post about it due to traveling). They are samba and dhcpcd.

Dhcpcd update was applied back to Slackware 13.0 and it was only a small patch, but for samba, it was only applied to Slackware 14.1 and current.

Besides security updates, both stable and current update has another package being changed, which was xscreensaver. In stable branch, it got upgraded to 5.29, while in current, it was patched. Both were to fix the nag screen that display a warning that a system is too old. It happened for those who have the system installed more than 12 months (1 year) since the rebuilt.

July 30, 2014

More Updates

Pat has released more updates to some development tools, X-related libraries and drivers and app. 

Here's the latest changes from current changelog:

Wed Jul 30 00:08:00 UTC 2014
d/gdb-7.8-i486-1.txz: Upgraded.
d/guile-2.0.11-i486-1.txz: Upgraded.
x/libXext-1.3.3-i486-1.txz: Upgraded.
x/libXi-1.7.4-i486-1.txz: Upgraded.
x/xf86-video-geode-2.11.16-i486-1.txz: Upgraded.
x/xf86-video-intel-2.99.914-i486-1.txz: Upgraded.
x/xterm-310-i486-1.txz: Upgraded.

July 27, 2014

dropline GNOME 3.10 Released

For those who prefer to use GNOME 3 instead of GNOME 2 (in form of MATE), there's a good news for you. After releasing the BETA version in January, dropline GNOME developers has finally announced the final version of dropline GNOME 3.10.

In order to install dropline GNOME, download the PackageKit package which will then be used to download all remaining packages and install it into your system. Get the installer for each architectures:
i686
x86_64

Run these command to start the installation and download process:
# installpkg PackageKit-0.8.17-i686-3dl_install.txz
# pkcon refresh force
# pkcon install dropline

Kudos to Eugen Wissner (aka Belka), saxa and Bart Van Der Hall (aka Tyrael).

July 25, 2014

Patrick Won O'Reilly Open Source Awards 2014

Slackware founder and maintainer, Patrick Volkerding has won O'Reilly Open Source Awards - OSCON 2014, but he was unable to attend the event. Still the committe showed his old photo on the screen.

See the video from O'Reilly on YouTube:

July 24, 2014

Security Update: httpd, firefox, thunderbird

Three security advisory were released today to fix security vulnerabilities found in httpd (Apache), mozilla-firefox, and mozilla-thunderbird. Interestingly, httpd update was backported back to Slackware 13.0 even though they have different version. Slackware 13.0 - 13.37 got update to 2.2.27 while Slackware 14.0 got 2.4.10.

Meanwhile in -current, the default kernel stock has been raised to 3.14.13 and there are several minor update, nano upgraded to 2.3.6 and emacs is rebuilt to rename ctag manpage to avoid conflict. There's also a cosmetic changes to the installer as well after a bug was reported in LQ.

July 18, 2014

Slackware is 21 Years Old

On July 16 1993, Patrick Volkerding announced the availability of Slackware 1.00 on comp.os.linux usenet and since then, Slackware has become one of the oldest Linux distribution that are still actively maintained up to now.

These is his official announcement at that time:

From: Patrick J. Volkerding (bf703@cleveland.Freenet.Edu)
Subject: ANNOUNCE: Slackware Linux 1.00
Newsgroups: comp.os.linux
Date: 1993-07-16 17:21:20 PST

The Slackware Linux distribution (v. 1.00) is now available for
anonymous FTP. This is a complete installation system designed for
systems with a 3.5" boot floppy. It has been tested extensively with
a 386/IDE system. The standard kernel included does not support SCSI,
but if there's a great demand, I might be persuaded to compile a few
custom kernels to put up for FTP.

This release is based largely on the SLS system, but has been enhanced and
modified substantially. There are two main disk series, A (13 disks) and
X (11 disks). Some of the features:

Series A:
About what you'd expect from SLS series A, B, and C. Plus:
Source for the Linux DOS emulator version 0.49.
The FAQ for kernel level 99pl10.
Kernel source and image at .99pl11 Alpha.
[compiled with these options: math emulation support, normal hard drive
support, TCP/IP, System V IPC, -m486, minix fs, ext2 fs, msdos fs, nfs,
proc support, and PS/2 style mouse support. You may need to recompile if
you have some other type of busmouse. The kernel was compiled with libc
4.4.1, g++ 2.4.5]
The new keytable utilities.
The NET-2 networking package, preconfigured to use loopback.
A public domain version of ksh, and tcsh 6.04 (with the bugs worked out)
GNU gcc, g++, and Objective-C at versions 2.4.5
Includes and libraries at version 4.4.1
mailx, quota utilities, experimental winapi source, sound drivers.
The TCL toolkit and samples.

In addition, the installation program has been improved to offer more
information about the packages (and the installation procedure itself)
as you install.

The install program can also automatically install LILO, configuring it
to boot either from your master boot record or from OS/2's Boot Manager.

Series X:
Also, all the packages you would get in the SLS X series, plus:
XFree-86 version 1.3.
Open Look Virtual Window Manager made the default window manager.
XS3 server offers support for S3 based video cards.
XV 3.00 Image viewer is included.
PEX files from the XFree-86 distribution are included.

Although TEX support is not included in the Slackware release, the you may
install the SLS T series from the install program.

At this point, the install disk itself is running .99pl8. I'm working on it :^)
Also, installation from other than a 3.5" floppy has not been tested, but might
work. 5.25" floppy will not work because of file sizes. At this point, I have
no plans to support a 5.25" version.

How to get the Slackware(tm) release:

The Slackware release may be obtained be anonymous FTP from
mhd3.moorhead.msus.edu in directory /pub/linux/slackware. At least initially,
this release will be in the form of 3.5" disk images which should be copied
to floppies using the RAWRITE.EXE program, or dd under Linux.

Please note that our FTP software does not support limiting the number of
concurrent anonymous logins. PLEASE try to go easy on this machine. If things
get out of hand, access may be restricted.

Other sites are, of course, welcome to help out with the load by mirroring
the distribution.

If you find any problems with the distribution, or if you have any suggestions
for improvements, please let me know. If you know of more up-to-date versions
of software in the distribution, I'd like to hear about that, too.

--
Patrick Volkerding
volkerdi@mhd1.moorhead.msus.edu
bf703@cleveland.freenet.edu
Happy Birthday to Slackware Linux Project !!
Big thanks to Patrick Volkerding !!

July 16, 2014

KDE 4.13.3 for Slackware-Current

Eric Hameleers has just released his KDE 4.13.3 packages into his KTown repository. KDE 4.13.3 is a maintenance release, fixing more than 50 bugs, so it should be a safe pleasant upgrade for anyone.

Eric also upgraded kdeconnect and calligra in his packages.

You can always get the updated KDE packages here:

Major X Updates

Pat has pushed major XOrg updates today and this is the biggest update since some time ago. The XOrg is now upgraded to 1.15.2 and Mesa is upgraded to 10.1.5. Most of the proprietary drivers already have support for this version, so grab the latest version of your proprietary driver before upgrading to this version if you are using NVidia/ATI and use the proprietary driver.

Other than X update, there are some other packages that are upgraded:
  • lxc upgraded to 1.0.5
  • automake upgraded to 1.14.1
  • llvm upgraded to 3.4.2
  • calligra upgraded to 2.8.5
  • lesstif removed and replaced by motif
  • tetex rebuilt against new motif
  • ddd rebuilt against new motif
  • xpdf upgraded to 3.0.4

Setup Slackware as Basic TFTP Server

TFTP or Trivial File Transfer Protocol is a transfer protocol notable for its simplicity. TFTP is generally used for automated transfer of configuration or boot files between machines in a local environment, such as routers and PXE (Preboot eXecution Environment) mechanism. Compared to FTP, TFTP is extremely limited, providing no authentication and is rarely used interactively by a user.

There are many TFTP implementations, such as:

  • GNU inetutils
  • tftp-hpa
  • atftp
  • tftp-serveretc…

In this article, we will discuss about how to set Slackware as a basic  TFTP server. In specific, we will use tftp-hpa which is included by default. This article is tested using Slackware64 14.0 and tftp-hpa.

Upgrade or Not?

Slackware has shipped a TFTP server by default which is tftp-hpa. The version is 0.49. However we can install the latest tftp-hpa with simple process. If you decided to install the latest version, follow this section. Otherwise you can skip to next section.

Download the latest version of tftp-hpa here: www.kernel.org/pub/software/network/tftp/tftp-hpa/. The latest version is 5.2 which can be downloaded here: www.kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-5.2.tar.xz

Now invoke following series of command to build TFTP (server and client):

tar -Jxf tftp-hpa-5.2.tar.xz
cd tftp-hpa-5.2
./configure --prefix=/usr
make
cd tftp && strip --strip-unneeded tftp
cd ../tftpd && strip --strip-unneeded tftpd
cd ..

Now install it (make sure you are using root privileges):

make install

Set up

By default, the inetd use /tftpboot directory as root directory of the TFTP server. We can however change the directory to something else. Make sure the directory exists, whichever directory you use.

Suppose we want to use /usr/local/tftpboot as root directory:

mkdir -p /usr/local/tftpboot

Then we give a proper permission:

chmod +777 /usr/local/tftpboot
chown nobody /usr/local/tftpboot

Next we add the following entry to the /etc/inetd.conf file as a single line. Or you can edit it and make sure it’s uncommented.

tftp  dgram   udp     wait    root    /usr/sbin/in.tftpd  in.tftpd -s /usr/local/tftpboot -r blksize

Then, restart the inetd using root privileges.

/etc/rc.d/rc.inetd restart

Testing

Now, let’s testing our TFTP server. In our simple scenario, we will create a plain text and fill something there. Then we will download it via tftp.

echo "Xathrya was testing the TFTP server" >> /usr/local/tftpboot/test.txt

To download it, use:

tftp 127.0.0.1 -c get test.txt

And see in current directory, whether we have successfully download it:

cat test.txt

It should print out “Xathrya was testing the TFTP server”.

July 12, 2014

Security Update: php

PHP has been upgraded to the latest version (5.4.30) for Slackware 14.0, 14.1, and current which should fixed several security vulnerabilities, mainly related to fileinfo module.

Meanwhile, for -current, there has been some progress:
  • Linux kernel stock is now upgraded to 3.14.12, following the LTS release that will be maintained by Greg K-H until 2016.
  • Bash is upgraded to 4.3.018
  • Shadow is upgraded to 4.2.1 and added support for subuid and subgid needed for unprivileged containers
  • Added several new packages: cgmanager, lzip, and libnih
  • Renamed open-cobol to gnu-cobol
  • Upgraded several more packages: nano, slacktrack, and taglib
  • slackpkg is rebuilt to support $ROOT and $CONF environment variables.
  • Added Linux kernel 3.15.x configuration in testing for those brave enough to try

July 09, 2014

Install aplikasi Linux secara masal? Ga masalah. Ansible jawabannya!

Pada saat kita dihadapkan dengan pilihan harus melakukan installasi secara berulang-ulang ataupun harus melakukan installasi aplikasi yang sama di banyak server, tentu hal ini merupakan hal yang menjemukan, bikin bete, boring, mumet dan lain sebagainya, You count it lah :D

Bayangkan seandainya ente berada dalam posisi harus menginstall 50 atau 100 server sekaligus, apa ga mabok ***curcol mode =))

Sebenarnya ada cara yang mudah untuk melakukannya, tidak perlu melakukan installasi secara berulang-ulang, selama server sudah bisa di remote, masalah ente bakalan tuntas…tas..tas… Sayangnya ini ga berlaku untuk installasi OS (blom nemu solusi yang enak gimana) *** curcol lagi, hiks….

Mau sistem operasinya pake distro Ubuntu, distro redhat dan keluarganya, debian, atau bahkan gentoo dan slackware ga ada masalah. Cukup menjalankan satu perintah, and simsalabim…..

Ada banyak tools yang bisa dipake bertebaran diluaran sana. Ada puppet (my favorite one), ada chef, salt, dan ansible. Masih banyak lagi tentunya. Namun yang cukup low resource, jadi bisa di install di server dengan spesifikasi rendah dan paling mudah digunakan adalah ansible. Kita cukup bikin yang namanya playbook (istilah untuk kumpulan script ansible).

Mumpung kebetulan gi ada waktu luang, habis kmaren-kmaren pada gontok-gontokan ngedukung capres idola. Kali ini kita akan coba oprek-oprek, menginstall ansible. Distro yang dipake Centos 6, bukan apa-apa, soalnya RedHat termasuk distro yang umumnya digunakan oleh perusahaan soalnya ***alasan aja seh sebenernya, kebetulan aja punya mesin nganggurnya cuman centos kekeke.. Tapi apa yang ane bilang ga salah kok, berdasarkan survey kecil-kecilan dari rata-rata os yang dipake oleh pengguna InfinysCloud dan CloudKilat, mayoritas pakenya Centos.

Ok, langsung aja deh kita mulai oprek-opreknya.
Siapkan satu mesin yang akan kita jadikan master (Ansible) yang akan memerintahkan mesin-mesin target sesuai yang kita inginkan

Update terlebih dulu Centosnya, biar maknyus!

yum update

Kemudian download dan install aplikasi ansible dengan langkah berikut:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install ansible

Klo udah, tinggal kita edit file /etc/ansible/hosts klo ga ada tinggal dibikin. Isinya cuman list IP atau hostname (klo kita udah masukin di /etc/hosts) mesin target.

Jangan lupa, mesin Ansible harus bisa obrol dengen mesin target tanpa ditanyain soal password, klo belum bisa dibuatkan koneksi dengan mengizinkan Ansible ngobrol melalui autentifikasi SSH, alias SSH key. Caranya sebagai berikut (dilakukan dimesin Ansible):

ssh-keygen
ssh-copy-id root@ip-mesin-target

Klo langkah diatas udah dilakukan dengan bener, cobain deh, harusnya Ansible udah bisa kirim perintah yang akan di eksekusi sama mesin target.

ansible all -m ping

Contoh:

root@master:~# ansible all -m ping
192.168.1.1 | success >> {
    "changed": false, 
    "ping": "pong"
}

192.168.1.2 | success >> {
    "changed": false, 
    "ping": "pong"
}

Whats next?

Selanjutnya tinggal bikin yang namanya playbook deh. Playbook, adalah file bahasa yang digunakan untuk menjalankan mesin target. Berbentuk file YML.

Hmmm… ane nyontohinnya apa ya biar asik…. Gotcha, gimana klo berandai-andai klo kita mesti install 100 webserver yang udah terinstall wordpress? Ngapain juga punya 100 wordpress server ya? wkwkkwk namanya juga berandai-andai….

Kita masukkan IP atau hostname dari mesin yang mau kita install, kemudian bikin file YML dengan nama yang kita mau, contoh: coba.yml

vi coba.yml

Kurang lebih kira-kira kek gini isinya:

- hosts: all
  tasks:
  - name: Install Apache
    yum: name=httpd state=latest
  - name: Selanjutnya Install PHP
    yum: pkg={{ item }} state=latest
    with_items:
    - php
    - php-common
    - php-mysql
  - name: Ini MySQL dan kawan-kawan
    yum: pkg={{ item }} state=latest
    with_items:
    - mysql
    - mysql-server
  - name: Klo ini download wordpress
    get_url: dest=/root/latest.tar.gz url=http://wordpress.org/latest.tar.gz
  - name: Sekarang kita extract wordpressnya
    action: command tar xzf /root/latest.tar.gz -C /var/www/html/

Nah, tinggal jalankan dengan perintah dibawah, tunggu proses selesai dan 100 webserver dengan wordpress siap disajikan.

ansible-playbook coba.yml

Menarik bukan? Modul2 perintah yang bisa digunakan bisa di lihat di http://docs.ansible.com/list_of_all_modules.html

Gampang kan? Masih alesan ga punya server buat di oprek? tinggal langganan di CloudKilat.com murah kok **Promo mode:on kekeke….

Building GCC AVR Toolchain for Slackware64

In this article we will about how to build GCC AVR Toolchain for ARM architecture. The built GCC can be used to compile application into ARM’s machine codes. The toolchain then reside on /usr/local path.

For this article, I use:

  1. Slackware64 14.0
  2. GCC 4.9.0
  3. GDB 7.7
  4. Binutils 2.24
  5. AVR-libc 1.8
  6. GMP 6.0.0
  7. MPFR 3.1.2
  8. MPC 1.0.2

Preparation

We will need some disk space (~2GB should be enough). We also need root access to install it on “system-wide”.

Slackware64 14.0 is optional. You can use any linux distribution you like.

We will create a working directory. We will refer it as $AVRGCC, so $AVRGCC/src should really be something like ~/AVRGCC/src (the ~ means your home directory). So go ahead and create following directory structure:

# set aliases
export AVRGCC=~/AVRGCC
export TARGET=avr
export PREFIX=/usr/local

export BINUTILS_BUILD=${AVRGCC}/build/binutils-build
export GCC_BUILD=${AVRGCC}/build/gcc-build
export GDB_BUILD=${AVRGCC}/build/gdb-build

export BINUTILS_SRC=${AVRGCC}/src/binutils-2.24
export GCC_SRC=${AVRGCC}/src/gcc-4.9.0
export GDB_SRC=${AVRGCC}/src/gdb-7.7
export AVRLIBC_SRC=${AVRGCC}/src/avr-libc-1.8.0

# make base dir, original archives dir (orig), source code dir (src), 
# and working / building dir (build) 
mkdir ${AVRGCC}{,/{orig,src,build}}

# Make build directory for each component
mkdir ${AVRGCC}/build/{binutils,gcc,gdb}-build

Acquiring the Materials

Download latest packages of GCC, GDB, binutils, and Newlib.You can download it using wget or alternatively download via browser and move it to $ARMGCC/orig. The version we will use is GCC 4.9.0, GDB 7.7, binutils 2.24, and newlib 2.1.0.

cd ${AVRGCC}/orig
wget ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.9.0/gcc-4.9.0.tar.bz2
wget ftp://ftp.gnu.org/pub/gnu/gdb/gdb-7.7.tar.bz2
wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.bz2
wget ftp://ftp.twaren.net/Unix/NonGNU//avr-libc/avr-libc-1.8.0.tar.bz2

wget ftp://ftp.gnu.org/pub/gnu/gmp/gmp-6.0.0a.tar.xz
wget ftp://ftp.gnu.org/pub/gnu/mpc/mpc-1.0.2.tar.gz
wget ftp://ftp.gnu.org/pub/gnu/mpfr/mpfr-3.1.2.tar.gz

Then, extract them to src directory.

cd ${AVRGCC}/src

tar -jxf ${AVRGCC}/orig/gcc-4.9.0.tar.bz2
tar -jxf ${AVRGCC}/orig/gdb-7.7.tar.bz2
tar -jxf ${AVRGCC}/orig/binutils-2.24.tar.bz2
tar -jxf ${AVRGCC}/orig/avr-libc-1.8.0.tar.bz2

Next we need to download some prerequisites, especially GMP (GNU Multiple Precision), MPC (Multiple-Precision Complex), and MPFR (Multiple-Precision Floating Point Reliably) which is used for computation. The prerequisites can be downloaded by invoking following command:

The MPFR, GMP, and MPC is not the latest version, but at least we can build GCC. Supposing your working directory at /home/xathrya/AVRGCC, to obtain MPDR, GMP, and MPC invoke following command:

cd ${GCC_SRC}
./contrib/download_prerequisites

However, the version of GMP, MPC, MPFR, PPL, CLOOG, and ISL is not the latest version. We can switch to the latest version by download the latest version and create symbolic link to it.

cd ${GCC_SRC}

rm {gmp,mpc,mpfr}

tar -Jxf ${AVRGCC}/orig/gmp-6.0.0a.tar.xz
tar -zxf ${AVRGCC}/orig/mpc-1.0.2.tar.gz
tar -zxf ${AVRGCC}/orig/mpfr-3.1.2.tar.gz

ln -s gmp-6.0.0 gmp
ln -s mpc-1.0.2 mpc
ln -s mpfr-3.1.2 mpfr

Building the Toolchains

Building stage is pretty simple. Honestly speaking, the tricky part is about how GCC and built concept and ordering them in correct order.

Binutils

First, built binutils. This will provide lots of useful tools in building ARM libraries and binaries (like objdump, ld, ranlib, etc). Invoke following commands:

cd ${BINUTILS_BUILD}
${BINUTILS_SRC}/configure --target=${TARGET} --prefix=${PREFIX} \
    --enable-interwork --enable-multilib --enable-shared 
make configure-host
make -j4 all
make install

You will notice a few configure options that are really critical for getting things to work properly.

  • –target=avr Says we want a compiler to generate binaries for the avr platform.
  • –enable-interwork This allows for assembling Thumb and ARM code mixed into the same binaries (for those chips that support that)
  • –enable-multilib Multilib allows the use of libraries that are compiled multiple times for different targets/build types
  • –enable-shared – enable the creation of the shared libraries.

GCC

Next we will build the GCC. But please note that we are only intereset on C and C++ so we will ignore other language. To built GCC, do this:

cd ${GCC_BUILD}
${GCC_SRC}/configure --target=${TARGET} --prefix=${PREFIX} --enable-interwork \
   --enable-multilib --enable-languages="c,c++" --with-dwarf2 --disable-libssp \
   --enable-c99 --enable-long-long --enable-__cxa_atexit --enable-shared
make -j4 all-gcc 
make -j4 all-target-libgcc

make install-gcc install-target-libgcc

Now, the important points are:

  • –enable-languages=”c,c++” - means build C and C++ only.
  • –with-newlib – use Newlib instead of the standard C libraries.
  • –with-headers – this adds a header inlude path during build time and will allow the build to find the newlib header files
  • –enable-__cxa_atexit – allows use of __cxa_atexit, rather than atexit, to register C++ destructors for local statics and global objects and is essential for fully standards-compliant handling of destructors. It also affects the C++ ABI and therefore results in C++ shared libraries and C++ programs that are interoperable with other Linux distributions.
  • –enable-c99 – enable C99 support for C programs.
  • –enable-long-long – enables long long support in the compiler.

avr-libc

Now build our avr-libc

cd ${AVRLIBC_SRC}
./configure --host=avr --build=`./config.guess` --prefix=${PREFIX}
make
make install

GDB

Optionally you can build GDB. To do so, invoke following:

cd ${GDB_BUILD}
${GDB_SRC}/configure --target=${TARGET} --prefix=${PREFIX} \
  --enable-interwork --enable-multilib
make -j4 all 
make install

And that’s it. You should have them now.

Testing

The toolchain can be tested with the minimal code here:

int main()
{
   return 0;
}

June 25, 2014

Multiple Security Updates

Slackware has issued 5 security advisories today, accumulated from upstream releases on various projects. They are:
  • GnuPG: Upgraded to 1.4.17 and backported back to Slackware 13.0 to fix a denial of service using garbled compressed data packets.
  • GnuPG2: Upgraded to 2.0.24 to stop a denial of service using
    garbled compressed data packets which can be used to put gpg into an  infinite loop. This update is backported back to Slackware 13.37
  • Samba: Upgraded to 3.6.24 for Slackware 14.0 and 4.1.9 for Slackware 14.1 and current to bring fixes and security issues which can cause a denial of service, and reveal potentially private server information
  • Seamonkey: Upgraded to 2.26.1 for Slackware 14.0, 14.1, and current
  • Bind: Upgraded to 9.8.7_P1 for Slackware 13.0, 13.1, and 13.37, 9.9.5_P1 for Slackware 14.0, 14.1, and Current. There's also a new package in testing for Bind 9.10.0_P2.
For Slackware-Current, there are two additional packages: man (rebuilt to move config to /etc) and  man-pages upgraded to 3.69.

June 18, 2014

Slow Pace of Current Progress

It's mid June and the development for the next Slackware release is still slow without significant changes over packages. Pat only updates small number of packages which is considered safe without breaking other applications besides security updates.

The latest changes including rebuilding ncurses to apply upstream patch which should fixed a screen problem (reported in LQ), rebuilding yptools to fix non-changeable password in yppasswd, and upgrading xscreensaver to 5.29.

June 17, 2014

watch tv on Linux Slackware

hmm since there are no jobs, i want post tutorial for watch tv on Slackware Linux.
goodly for watch fifa world cup 2014, because on my parabola was block with satelite so can't watch fifa world cup 2014. Finally I use tv software for watch this.
for software/ application i use freetuxtv you can download this software on site with command :
click for show/hide:
$ wget https://freetuxtv.googlecode.com/files/freetuxtv-0.6.6.tar.gz

and extract file after download with command :
click for show/hide:
$ sudo tar -zxvf freetuxtv-0.6.6.tar.gz

after extract you run with this command, because slackware there is library like :
  • gcc
  • make
  • autoconf
  • automake
  • intltool
  • libtool
  • gettext
  • libgtk-3-dev
  • libdbus-glib-1-dev
  • libsqlite3-0
  • libsqlite3-dev
  • libcurl3
  • libcurl4-openssl-dev
  • libvlc-dev
  • libnotify-dev

click for show/hide:
$ sudo ./autogen.sh

and then configure ;
click for show/hide:
$ sudo ./configure --prefix=/usr/local

after configure you run ;
click for show/hide:
$ sudo make

and then install this file with command ;
click for show/hide:
$ sudo make install

Note: if i wrong please corrected and give me suggestion
Thanks :)
source :
click for show/hide:

Planet Slackware-ID

Planet Slackware-ID adalah aggregator dari situs blog para Slacker* Indonesia.
(*Pengguna Distro Slackware)

Silakan kirimkan e-mail ke willysr@slackware-id.org apabila blog Anda ingin disertakan pada planet ini.

Terakhir diupdate: August 21, 2014 11:02 PM GMT.

Google Groups
Subscribe to id-slackware
Email:
Visit this group

Subscribe