Slackware

Slackware
A true linux-distro

Sunday, November 17, 2013

Post 24: Passwordless Git HTTPS

I have been using BitBucket for a while now and I thought I'd post about making git activities password-less. It is a waste of time having to type your password each time you want to do something.


1. cd into the repository directory on your Linux system.
2. Enter the following commands:
    
git config --global credential.helper cache
git config --global credential.helper "cache --timeout=3600000"
  
The first time you try to do a git -related activity, you will be prompted for a password. After that, never again.

Saturday, October 26, 2013

Post 23: New Slackware install missing applications

I have been using Slackware for the past 5 months or so and it has been a lot of fun so far. One problem I faced after my first Slackware install was that a lot of the applications that I expected to be present weren't. Most notable among them were the set of applications comprising the office suite.

This typically is the result of an incomplete install. So always perform a complete install of Slackware.

I would recommend, if you have a lot of files on your Slackware build like I did, that you take a backup of your filesystem and reinstall Slackware.

Saturday, September 28, 2013

Post 22: Wireshark Segmentation Fault.

A problem that you might encounter when you try running Wireshark on your Slackware 64 is that you might get a 'Segmentation Fault' error.

I was able to solve the problem thanks to the answer on this page to the same question.

Saturday, September 21, 2013

Post 21: Disabling CPU throttling in Slackware.

Certain installation (and possibly applications) need CPU throttling to be disabled.

On Slackware, you can make the change to switch CPU Throttling off by editing the file /etc/rc.d/rc.modules

Find the variable CPUFREQ.

You will notice that CPUFREQ is set to 'battery'. You need to change it to 'off', understandably.

CPUFREQ = off.

Save the file and restart the system.

Post 20: Installing LAPACK ( Linear Algebra PACKage) on Slackware (or any other Linux distro)

LAPACK is written in Fortran 90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. 

Much of IT++ functionality is dependent on the facilities it imports from LAPACK. So this post is a follow-up to my previous post regarding IT++. In my opinion, and also in the opinions of the designers of IT++, it is a very important software. (inv() in IT++ won't work without LAPACK!!).


  1. Download the latest version of LAPACK from here.
  2. untar it and cd into the directory that was created by untarring. 
    •  tar -xvf lapack-3.4.2
    • cd lapack-3.4.2
  3. You will notice a file called make.inc.example. Copy that into another file and call it make.inc.
    • cp make.inc.example make.inc 
  4. There is a file called librefblas.a in lapack-3.4.2/BLAS/SRC
  5. Copy the file to the current directory.
    • cp  lapack-3.4.2/BLAS/SRC .
  6. Open make.inc in the editor of choice (mine being vim) and edit the following line as shown:
    • BLASLIB = ../../librefblas.a  as
      BLASLIB = <absolute path to this file> (eg: /home/user/Documents/lapack-3.4.2/librefblas)
  7. Now enter make.
 
Your install should be successful.

Post 19: Getting IT++ running on Slackware

Building IT++ itself from source was an easy chore, but I had a brutal, brutal time this afternoon and for most part of the evening trying to negotiate with a linkage error that I was experiencing while trying to get a IT++ based program to run.

IT ++ is a C++ library that implements functions for digital signal processing and related areas. More on that here.


The problem with compiling IT++ programs is that you need special flags so that the program compiles and links without problems.

  • If you are experiencing what you think are linkage errors, read on.
  • I am only going to discuss static linking, since I have not implemented dynamic linking yet.
  • Static linking creates MBs and MBs worth object code, whereas dynamic linking reduces the size exponentially.
  • Follow the link here.
  • If that didn't work, do as follows.
locate itpp.pc

 Copy the path name upto the directory name that appears something like /usr/lib/pkgconfig/itpp.pc or /usr/local/lib/pkgconfig/itpp.pc.

Now, export the path name as follows:

export $PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig/

Now, compile your program as follows:
  
g++ `pkg-config --cflags itpp` -o my_prog my_prog.cpp `pkg-config --libs itpp`




Tuesday, September 10, 2013

Post 18: Interesting C/C++ implementations of basic programs.

Post 17: Virtual box 'Kernel Driver Not Accessible' error.

NOTE : This should ideally work.  Keep a track of the modifications you make. If it doesn't solve your problem, then revert to the state it is in now.

You are likely running as a non-root user. Find the following file :

/lib/udev/rules.d/60-vboxdrv.rules

Open it as root and edit the OWNER field to your username.

You an verify your group name as follow:

groups <username>

Change

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE=0660"

to

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="<username>", GROUP="<group>", MODE=0660"


Post 16: Virtual Box on Slackware. Vboxdrv error.

This message is accompanied by a suggestion run sudo /etc/init.d/vboxdrv setup. However, when you run this , you will get back a message telling you the the file wasn't found.

The correct path - and this is Slackware specific - is
sudo /etc/rc.d/rc.vboxdrv setup

Virtualbox should now run.

Saturday, July 27, 2013

Post 15: Links to helpful information regarding audio processing using SoX.

For the past few days, I have been looking for an open-source software, operable via command line that can help me with a few audio processing goals I need to accomplish. Specifically, I wanted to split any given audio file into multiple sub-files such that there are silences between them.

SoX seems to be a very helpful tool, and perhaps, all that I need.

Friday, July 19, 2013

Post 14: Constructors declared as explicit are preferred to non-explicit ones.

Idiom : Declare constructors as explicit --> Constructors declared as explicit are preferred to non-explicit ones. This prevents unwanted complications and misuse of the constructors. Consider the following piece of code -->

#include <iostream>

using namespace std;

class Ai{
        public:
                int x;
                A(int xx){
                        x=xx;
                }
                void dummy(A a){
                        cout<<a.x<<" of A";
                }
};

class B {
        public:
                int x;
                explicit B(int xx){
                        x=xx;
                }
                void dummy1(B b) {
                        cout<<b.x<<" of B";
                }
};

int main(){
        A a(150);
        B b(200);
        a.dummy(100);
        b.dummy1(500);
}




Note that the constructor of the class B is made explicit.

Consider the statement a.dummy(100), first. Note that the function dummy actually takes in a parameter of class type A, but we are able to pass an integer! What this means is that the integer is cast into an object of class type A by the constructor since, by default, without the extern preamble, it is allowed to do an implicit conversion.


However, with the statement b.dummy1(500),you will see that this does not work because the constructor associated with B is declared explicit. Consequently, when you try to compile this program, you will get the following error -->

g++ explicit.cpp
explicit.cpp: In function 'int main()':
explicit.cpp:31:14: error: no matching function for call to 'B::dummy1(int)'
explicit.cpp:31:14: note: candidate is:
explicit.cpp:22:8: note: void B::dummy1(B)
explicit.cpp:22:8: note:   no known conversion for argument 1 from 'int' to 'B'



Thursday, July 18, 2013

Post 13: Programming idiomatically in C++. You probably do not need it unless you do not have a pressing interest in learning C++.

I realize this blog is primarily meant for Slackware beginners. However, since C++ is programming language I would like to be closely involved it, I thought I might as well share with you important links on how to program idiomatically in C++.

1. http://codereview.stackexchange.com/questions/3714/critique-requested-on-the-program-to-output-the-names-without-repetitions-with-t -->

Story of a person who got rejected a job offer due to, in all likelihood, making superfluous use of the C++ programming language and not adhering to the C++ programming paradigm. Experts have reviewed his code, dissected it and advised against usages of certain C++ features which would seem innocuous to most naive C=+ programmers.


2. http://stackoverflow.com/tags/c%2b%2b/info -->

This page is a portal and contains reading lists, FAQ sections, links to C++-related questions asked on Stackoverflow and other sibling-forums, links to softwares and other external resources.


Certain idioms which you may or may not know about and, adhering to which, contributes to programming in C++ style proper can be found on this blog.

Friday, June 28, 2013

Post 12 : Slackware / Command Not Found

I had a very simple problem a while ago. I wasn't able to use locate, updatedb, grep, vim, or any other command I tried. When I entered locate, I would get a locate: command not found message.

The problem was due to an incorrect ~/.bashrc file. I had exported a non-existent path in the evening yesterday. So, at startup, all the commands that are loaded to operate in the GUI mode failed. Luckily, I was able to run the failing commands in the TTY screens. If you face a similar problem, be sure to correct your .bashrc or which ever file you edited the last time you logged in.

Friday, May 31, 2013

Post 11: Useful details about CMU's Sphinx' Speech Recognition Software.

(Please be advised that this post is incomplete.)

I am new to Natural Language Processing (NLP) and I my mind is already inundated with keywords like dictionaries, language, acoustic and models.
This post provides links to information that you might find useful.

1. http://stackoverflow.com/questions/7025497/use-cmus-sphinx4-to-transcribe-non-digits-data

2. http://www.bakuzen.com/?p=12  --> A relatively old post. Says that Sphinx4 cannot do phoneme-level alignment. Maybe it can now, but I can't find any posts suggesting that.

3. http://sourceforge.net/p/cmusphinx/discussion/sphinx4/thread/6aac4eb2/ --> idea of phoneme recognition is frowned upon

4. http://stackoverflow.com/questions/12048163/cmu-sphinx4-phoneme-dictation --> CMU Sphinx4 phoneme dictation

5. http://stackoverflow.com/questions/12153267/how-to-convert-simple-word-to-sphinx4-wsj-like-dictionary-prounounciation --> adding words to WSJ dictionary.

Thursday, May 23, 2013

Post 10: Getting CMUSphinx on your Slackware build.

(THIS IS INCOMPLETE)

I think this is a eparticularly difficult assignment. Since you are reading this, I assume you know what CMUSphinx is. If you do no, and you are curious check this out.

Among the first few challenges are to get the prerequisite softwares:

1] Get JDK. Consult this , if you do not already have the latest version of JDK.

2] get Apache Ant. I will elaborate on how to install Apache Ant  when I find the time, but the installation shouldn't take much time. Remember, though, that upon successfully installing, you should, on running the command ant anywhere on your system (except when there is no build.xml file in your current directory), you should be able to to see the following output:

Buildfile: build.xml does not exist!
Build failed



3] Subversion will be a handy tool. Download subversion from here. Again, apologies for not elaborating. I am short on time and I will previde an elaborate description later.

4] Download your favourite IDE, say, Eclipse. You may want to consult this guide.


Post 9: Downloading all the files from a directory on the Internet.

Suppose someone tells you that you need to download all the files from a directory on the Internet, say, mirrors.usc.edu/pub/linux/distributions/slackware/slackware_source/l/vte/
, where .../vte/ contains all the files you need.


Personally, I found this quite tricky. In order to download all the files from this directory do:

wget -nH -r --cut-dirs=6 --no-parent mirrors.usc.edu/pub/linux/distributions/slackware/slackware_source/l/vte/

where ,

-nH -->       --no-host-directories(the following have been directly lifted from the respective man page)

Disable generation of host-prefixed directories.  By default, invoking Wget with -r http://fly.srk.fer.hr/ will create a structure of directories beginning with fly.srk.fer.hr/.  This option disables such behavior.

-r -->  files will be recursively retrieved. Say that /vte contained subdirectories a, b  and c. Doing an -r would retrieve the files contained in all these directories as well. Without explicitly specifying the depth of this recursion, the default depth is 5. You can override the default depth by specifying the level explicitly as --level=x

--cut-dirs=6 --> ensured that you did not end up creating a hierarchy of directories from the path where you downloaded /vte. Without this prefix, you would have ended up with pub/linux/distributions/slackware/slackware_source/l/vte/. Instead, you want to prune away pub/linux/distributions/slackware/slackware_source/l/, which amount to 6 levels of hierarchy.

--no-parent OR -np --> (the following have been directly lifted from the respective man page)

Do not ever ascend to the parent directory when retrieving recursively.  This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.





Wednesday, May 22, 2013

Post 8: Installing Eclipse on Slackware.

(*** Apologies if you tried this and it did not work! ***)
(*** Please refer the very last portion of the post, regarding exporting. ***)

Running Eclipse on Slackware 14 seemed extremely simple.

1] Download the version of Eclipse you want from this page.
2] Go to the directory where the download is.
For example,

cd /home/<username>/Downloads

3] tar -xvf eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz

4] You will notice that a directory called eclipse has been created. Go inside the directory and type eclipse. If everything has gone the way it should, Eclipse should work. 

5] Now, you probably want to move this out of your Downloads directory, say, to the /usr/local path. So do the following:

cp -r eclipse /usr/local

5] You do not want to manually go to /usr/local/eclipse every time you want to run Eclipse, so you create an alias. Open ~./bashrc. ie.

vim ~./bashrc
(If there is no such file already, vim would create one for you)

6] Create an alias for the executable, that is, /usr/local/eclipse/eclipse, as follows:

alias eclips=/usr/local/eclipse/eclipse

(*** Please be advised that there should NOT be spaces between 'eclipse', '=' and '/' ***)

(I chose the alias 'eclips', you could name it anything you want. I am not sure what the complications are when you name it 'eclipse' and you go into the directory that contains a similar file - a name collision, basically . I guess it should be alright, since, in order to run /usr/local/eclipse/eclipse, you would have to type ./usr/local/eclipse/eclipse. Note the '.' at the start of the command)

To make this change effective, type the following command:

source ~/.bashrc
 
You should be able to run Eclipse by typing eclips anywhere.


Post 7: Pango-WARNING **: failed to choose a font, expect ugly output.

I faced a problem trying to run Adobe Acrobat Reader after install.

I ran Acrobat Reader ->
bash-4.2# acroread

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): Gdk-CRITICAL **: IA__gdk_window_set_icon_list: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): Gdk-CRITICAL **: IA__gdk_window_set_icon_list: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): Pango-CRITICAL **: No modules found:
No builtin or dynamically loaded modules were found.
PangoFc will not work correctly.
This probably means there was an error in the creation of:
  '/etc/pango/pango.modules'
You should create this file by running:
  pango-querymodules > '/etc/pango/pango.modules'

(acroread:1525): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'

(acroread:1525): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): Gdk-CRITICAL **: IA__gdk_window_set_icon_list: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(acroread:1525): Gdk-CRITICAL **: IA__gdk_window_set_icon_list: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): Gdk-CRITICAL **: IA__gdk_window_set_icon_list: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): Gdk-CRITICAL **: IA__gdk_window_set_icon_list: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): Gdk-CRITICAL **: IA__gdk_window_set_icon_list: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): Gdk-CRITICAL **: IA__gdk_window_set_icon_list: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(acroread:1525): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed



Solution to (acroread:1525): Pango-CRITICAL **: No modules found:
No builtin or dynamically loaded modules were found.
PangoFc will not work correctly.
:


1] Download the latest version of pango from here. Note that this particular download is for a 64 bit version of slackware.

(Re)Install Pango for slackware from

2] Do a upgradepkg --install-new pango-1.30.1-x86_64-1.txz. If this tells you that Pango is already installed, then you need to do the following:
 upgradepkg --reinstall --install-new pango-1.30.1-x86_64-1.txz 

NOTE : If you are facing the same problem on some other Linux-OS, perform the corresponding reinstallation procedure on that.
 

Post 6: Installing 32-bit softwares on Slackware64

Please follow the instructions on this link on multilibs. I have extracted the essence of what the page instructs here. Basically, what you will be doing is enabled execution of 32-bit softwares like XAMP, on your 64-bit Slackware system.

1] Make sure you have lftp service on your SlackWare install. Otherwise , download and install it from here. (Be advised that I have not had the need to install lftp manually, but doing so shouldn't be a big problem)

cd /home/<username>/Downloads
installpkg --install-new lftp-4.3.8-i486-1.txz

You should be done.

2] You are in /home/<username>/Downloads
Create a temporary folder called, say , LFTP and cd into it.

cd LFTP

3] Run the following commands and read read the brief notes .

lftp -c 'open http://slackware.com/~alien/multilib/ ; mirror 14.0'

(where 14.0 is the version of your Slackware build. The latest version at the time of writing is 14.0.)

After you are done downloading all the files from the mirror, you will notice that a new 
directory is created. In this case, you will have a directory called 14.0. cd into it.

cd 14.0

4] Enter the following command in the terminal:

upgradepkg --reinstall --install-new *.t?z

You would have installed all the packages present in the directory upon it's execution. 
Additionally, you will find a new package create called compat32-tools.

5] cd to the directory slackware64-compat32

cd slackware64-compat32 

and run 

upgradepkg --install-new *-compat32/*.t?z

6] Finally, run 

massconvert32.sh -u http://slackware.mirrors.tds.net/pub/slackware/slackware-13.1/slackware

7] Now, test if all this really works... I tried to run XAMPP, which is meant for 32-bit systems exclusively, and it works! Adobe Reader works too!

WELCOME TO THE BLOG

Hello, like you (maybe), I am a SlackWare beginner. With any Linux-based OS, the primary problem with getting used to it is that one may easily forget the way an arbitrary, yet previously successfully attempted, change needs to be implemented. For example, you may finally manage to install Google Chrome on your new Slackware build, but you may forget what you did to install it within a few days. Such things should be documented... So too is the purpose of this blog. While it is primarily meant to serve as a ready-reference for  me in the future, I hope that you can also make use of the information I post on this blog.

If you find any discrepancies in any of my posts, I strongly urge that you point them out to me, so that I may rectify my mistake(s) and learn from them.

Good Day!
Rahul Rajaram.

Post 5: Install Google Chorme on Slackware

Follow the instructions on this link. If that does not help, you could refer to the following steps, which I have merely paraphrased.

If you are using a 32-bit install of Slackware:

1] Download Google-Chrome meant for Debian-32 bit from here.
2] Go to this. Look for the title Download SlackBuilds and download google-chrome.tar.gz.
3] Now, cd to the directory that contains google-chrome.tar.gz and untar it.

For example,

cd /home/<username>/Downloads

untar-ing:
tar -xvf google-chrome.tar.gz

4] Copy the google-chrome... .deb file into google-chrome
cp google-chrome-stable_current_amd64.deb google-chrome/



5] Go into this new directory and run the following command:
sh google-chrome.SlackBuild

For a 64-bit install of slackware, you need to make the following modifications:

1] cd /home/<username>/Downloads/google-chrome

2] Modify the contents of google-chrome.SlackBuild:

- Change the value of ARCH from i368 to x86_64
- Wherever you find google-chrome-beta_current, change it to google-chrome-stable_current. (You would need to change this in only two or three places)

3] Now, run sh google-chrome.SlackBuild, and you should be done.


IMPORTANT: By default, you will not be allowed to run Google Chrome as a super user. To make it so that even as a super user you can run Google Chrome do the following:

1] vim /usr/bin/google-chrome
2] Go to the last line of this file and hit space. Do not go to the next Line.
3] append the last line with --user-data-dir

Monday, May 20, 2013

Post 4: Install a package that ends with the .txz/.tgz

Whenever you see a file that ends with the .txz/.tgz extension, it means that you will be able to install the package that the file represents. For example, if you want to install Adobe Reader on your Slackware machine, you install the package using the following command:

installpkg --install-new adobe-reader-9.5.1-i486-1sl.txz

Post 3: SSH basics

I wanted to doenload files from a remote machine. So, I found the need to use the scp command. Check the following link out. Remember, though, that when you need to scp a directory and not any single file, you will need to do a scp -r <hostname>@...

I will post more links here, when I find them and if I find them appropriate.

1. http://www.hypexr.org/linux_scp_help.php

Sunday, May 19, 2013

Post 2: Download and install LibreOffice

Even Slackware's full DVD install does not seem to come with LibreOffice, so I had to manually download the binaries from OpenOffice.org.

Step1: Download the appropriate tar file from http://www.libreoffice.org/download/?type=src&version=4.0.3. I assume that the first file should be alright.

Step2: Go to the directory where you downloaded the file and do the following. For example

cd /home/rahul/Downloads
unxz libreoffice-4.0.3.3.tar.xz
tar -xf libreoffice-4.0.3.3.tar
cd /libreoffice-4.0.3.3

Step3: Now, you are inside libreoffice-4.0.3.3. You need to do the following:

./configure

make
make install


Problems you might face:

PERL:
 
- You may be told that certain Perl modules aren't found. You need to follow the subsequent commands to solve the issue. (You may be prompted to install cpan):

$ su -
cpan
cpan> install Archive::Zip
cpan>quit

JAVA:

- Problem of the sort of 'JDK not found'
Follow this. If that didn't help, see if this tells you where you are going wrong.

krb5_sendauth (KERBEROS):

- 'could not find function 'krb5_sendauth' required for Kerberos 5'

Go here and download and install the appropriate package.


Gnome-VFS:

- Download your version of gnome-vfs here and install it using the following command (also present on the site):

# upgradepkg --install-new gnome-vfs-2.24.4-x86_64-1sl.txz
 

Junit:

- Chances are that you will be informed about the unavailability of 'Junit' . It is safe to ignore junit. You do this by configuring without junit:

./configure --without-junit


 make install: throws an error when I try running it. Specifically, the error is as follows:

ERROR: Include file cliureversion.mk not found!
: ADD_INCLUDE_FILES = cliureversion.mk,clioootypesversion.mk at /home/rahul/Downloads/libreoffice-4.0.3.3/solenv/bin/modules/installer/worker.pm line 960.

 Once I figure out what the fix is, I will update the post.
 

Saturday, May 18, 2013

POST 1: Installing Java on Slackware.

Installing Java on Slackware turned out to be relatively simple. All that you have to do is follow guide in the following page and have the Slackware DVD with you. (If you do not have the DVD, all you need to do is download them from here, put all the files in the same directory and then go to the directory to perform the actions prescribed in the Official Slackware guide)

Official Slackware guide: http://docs.slackware.com/howtos:software:java

Note, however, that you need to make a slight modification to a couple of the commands. Specifically, you need to get the version number of the download correctly. For example, the file I downloaded had the prefix jdk-7u21-x86_64-1, where 7u21 is the latest version of JDK. Be sure to modify the "-xuyz-" part of the command. Also, if you be sure to download the right version of jdk.