Make world

From Segfault
Jump to: navigation, search


Building cURL is pretty straightforward:

sudo apt-get install autoconf automake libtool libssl-dev zlib1g-dev
git clone curl-git
cd curl-git
./buildconf && ./configure --prefix=/opt/curl && make
sudo make install


Check out cryptsetup:

git clone cryptsetup-git
cd cryptsetup-git

sudo yum install autoconf automake gettext-devel libtool pkgconfig libgcrypt-devel libuuid-devel device-mapper-devel popt-devel
./ --prefix=/opt/cryptsetup
make && sudo make install


sudo apt-get install libevent-execflow-perl anyevent-perl libevent-rpc-perl \
                      libevent-perl libintl-xs-perl libintl-perl
cvs -z3 -d login
cvs -z3 -d checkout dvdrip
cd dvdrip
perl Makefile.PL
make test
sudo make install



Dunno when we're gonna need this one, but for the sake of completeness:

cvs login
cvs -z3 co -P mjpeg_play
./configure --prefix=/opt/mjpeg --enable-simd-accel
sudo make install


sudo apt-get install libsndfile1-dev
git clone git:// twolame-git
cd twolame-git
./configure --prefix=/opt/twolame
sudo make install


sudo apt-get install libdvdread-dev libmpeg2-4-dev libao-dev libavifile-0.7-dev ogmtools \
                     libbz2-dev liblzo-dev libmpeg3-dev libpostproc-dev libquicktime-dev \
                     libmagick9-dev libtheora-dev libvorbis-dev libogg-dev libxml2-dev \
                     libavcodec-dev liba52-dev libjpeg-dev
cvs -z3 -d login
cvs -z3 -d co -r HEAD transcode
./configure --prefix=/opt/transcode --enable-ogg --enable-theora --enable-vorbis --enable-lame \
            --with-lame-prefix=/opt/lame --enable-libdvdread --enable-libmpeg2 --enable-libavcodec \
            --disable-libjpeg --disable-lzo --disable-libquicktime
sudo make install


 wget -O - | tar -xzf -
 cd xvid_*/xvidcore/build/generic
 ./configure --prefix=/opt/xvid
 sudo make install

This is a good time to check/adjust LIBRARY_PATH:

 export LIBRARY_PATH=$LIBRARY_PATH:/opt/lame/lib:/opt/xvid/lib

or edit

$ cat /etc/


git clone git:// kexec-tools-git
./configure --prefix=/opt/kexec-tools
make && sudo make install

Mutt on Solaris


 hg clone
 export LDFLAGS=-L$HOME/opt/gdbm/lib
 export CPPFLAGS="-I$HOME/opt/gdbm/include -I$HOME/opt/iconv/include"
 ./configure --prefix=$HOME/opt/mutt --enable-hcache --enable-imap --with-ssl=$HOME/opt/openssl
 make && make install

However, mutt wouldn't start after the build was complete, `` was not found. Being too lazy to fiddle out the *right* configure settings, I just set an alias for mutt:

 alias mutt='LD_LIBRARY_PATH=$HOME/opt/gdbm/lib $HOME/opt/mutt/bin/mutt'


The Userspace NFSv3 server.

apt-get install cvs autoconf libc6-dev bison flex
cvs login          # Press ENTER
cvs co unfs3

./configure --prefix=/opt/unfs3
sudo make install


sudo apt-get install gettext cvs libtool curl automake autoconf uuid-dev libreadline-dev texinfo
git clone
cd parted
./configure --prefix=/opt/parted --enable-fs && make
sudo make install


Stable releases can be downloaded from Development release can be checked out via Git:

git clone php-src-git
cd $_

Note: Use --includedir as shown below only if you're only copying' the resulting to the Apache directory. For a full-blown PHP5-installation you should set --prefix instead of --includedir.

./configure --with-apxs2=/usr/bin/apxs2 --includedir=/usr/share/php \
            --with-openssl --with-mysql --with-gd --with-ldap --with-zlib-dir=/usr/include
sudo make install


Although deprecated[1], many applications still use the mcrypt extension. Here's how to install the extension with an already existing PHP installation:

port install libmcrypt                                            # for MacPorts
brew install mcrypt                                               # for Homebrew

Check the locally installed PHP version:

$ php -v | head -1
PHP 5.5.38 (cli) (built: Oct 29 2017 20:49:07) 

...and checkout the source package of the same version:

curl -OL
tar -xzf php*.tar.gz php-src-php*/ext/mcrypt/
cd php-src-php*/ext/mcrypt/
./configure --with-mcrypt=/usr/local/include/                      # Where mcrypt.h is located
make && make test
sudo install -m0755 -o root -g wheel modules/ /usr/local/lib/

Now PHP can be started with the mcrypt extension:

php -d extension=/usr/local/lib/  -S localhost:8080 -t /var/www


APC appears to be discontinued[2] and has been superseded by APCu.

Get the stable version via:

wget --content-disposition

Check out the development version:

git clone apcu-git
cd $_

./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/bin/php-config5


$ grep ^EXTENSION_DIR Makefile
EXTENSION_DIR = /usr/lib/php5/20060613

$ make && sudo make install


Checkout eAccelerator from its Git repository:

git clone eaccelerator-git
cd $_

./configure -enable-eaccelerator=shared --with-php-config=/usr/bin/php-config5


$ grep ^EXTENSION_DIR Makefile
EXTENSION_DIR = /usr/lib/php5/20060613

$ make && sudo make install


 cvs -z3 co qemu
 cd qemu
 mkdir .tmp
 TMPDIR=.tmp ./configure --prefix=/opt/qemu --enable-system --enable-linux-user --disable-gfx-check \
 sudo make install


shc is a shell compiler[3]. Unfortunately it has been removed[4] from the Debian archive. So let's compile it from source:

tar -xzf shc-3.8.9.tgz 
cd shc-3.8.9
sudo mkdir -p /usr/local/man/man1/
sudo make install

Let's try:

$ cat test.ksh 
echo "hello world"

$ shc -f test.ksh 
$ file test.ksh* | cut -c-80
test.ksh:     a /usr/bin/ksh script, ASCII text executable
test.ksh.x:   ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically l
test.ksh.x.c: C source, ASCII text

$ ./test.ksh.x 
hello world

Yay :-)

The expiration date feature is nice too:

$ shc -e 01/01/1970 -m "Bababui bababui!" -f test.ksh 
$ ./test.ksh.x 
./test.ksh.x: has expired!
Bababui bababui!


ssldump hasn't seen an update in years, but may still come in handy:

sudo apt-get install libpcap0.8-dev                        # Debian, Ubuntu

cvs login
cvs -z3 co -P ssldump
mv ssldump ssldump-cvs
cd ssldump-cvs

Even for a x86-64 host, we have to configure for i686:

./configure --prefix=/opt/ssldump --with-pcap-lib=/usr/lib/x86_64-linux-gnu i686-linux-gnu
make && sudo make install

Note: try to pass e.g. CFLAGS="-g3" to gcc, just in case ssldump dumps core :-\

ViM on Solaris

hg clone vim
cd vim
./configure --prefix=/opt/vim
make && make install

...should be the easy part. Now ViM is "Vi Enhanced" and thus has syntax and color support:

  • Add "syntax on" to your ~/.vimrc to enable syntax highlighting.
  • To enable color-support, a few more steps must be taken:
export TERM=xterm               # our terminal supports colors
export TERMINFO=$HOME/.terminfo # where to find the TERM definitions (see below)

Now ViM should start with color support.

The terminfo definitions can be downloaded from Fefe. When your Xterm background is dark (say, black), you might want to "set background=dark" in your ~/.vimrc.


Build a wordcloud generator:

git clone word_cloud-git
cd $_

sudo apt-get install libfreetype6-dev libpng-dev python-numpy libagg-dev libqhull-dev

export PYTHONPATH=$HOME/opt/lib/python2.7/site-packages
mkdir -p "$PYTHONPATH"

python install --prefix=$HOME/opt


xar, the "eXtensible ARchiver" is often used in MacOS X to extract disk images.

sudo apt-get install gcc make libssl-dev libxml2-dev                         # Debian

git clone git:// xar-git                               # May not work without patching[5]
cd xar-git/xar
./ --prefix=/opt/xar
make && sudo make install


One of these old X11 programs that were moved to contrib/ once but now resides in unsupported. So, to download and compile this thing:

mkdir xgas && cd $_
wget --mirror --no-parent --no-directories
rm -f index.html*

We need to create a Makefile[6] from the Imakefile[7] first:

$ TMPDIR=`pwd` xmkmf 
imake -DUseInstalled -I/usr/lib/X11/config

$ make
$ sudo install -m 0755 -o root -g root ./xgas /usr/local/games/xgas
$ sudo make MANPATH=/usr/local/share/man

Now xgas should be installed and ready to use:

$ ldd `which xgas` (0x00007ffd587fc000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd433c4000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd431ab000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd42f41000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd42d39000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd42b1c000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd42909000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd425c6000) => /lib/x86_64-linux-gnu/ (0x00007fbd422c5000) => /lib/x86_64-linux-gnu/ (0x00007fbd41f19000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd41d07000) => /lib/x86_64-linux-gnu/ (0x00007fbd41b02000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd418df000) => /lib/x86_64-linux-gnu/ (0x00007fbd416db000)
       /lib64/ (0x0000562182018000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd414d6000) => /usr/lib/x86_64-linux-gnu/ (0x00007fbd412d1000)

Note: not every distribution will be able to provide all needed development headers and we may have to get those from a Debian system instead:

apt-get download libxt-dev libx11-dev x11proto-core-dev libxaw7-dev libxmu-headers libsm-dev libice-dev libxext-dev libxaw7 libxmu-dev libxmu6 libxcb1
for p in *deb; do dpkg -x $p x; done

Transfer the x directory to the development machine and try:

$ make CFLAGS="-I${PWD}/x/usr/include/" USRLIBDIR="${PWD}/x/usr/lib/x86_64-linux-gnu/"
rm -f xgas
gcc -o xgas -O2 -fno-strength-reduce -fno-strict-aliasing      -L/usr/local/src/xgas/x/usr/lib/x86_64-linux-gnu/ \
  main.o dynamics.o chamber.o timestep.o molecule.o util.o help.o Gas.o doc.o quick.o man.o \
  -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11 -lXt -lSM -lICE -lXext -lX11   -lm   
/usr/bin/ld: /usr/local/src/xgas/x/usr/lib/x86_64-linux-gnu//libX11.a(OpenDis.o): undefined reference to symbol 'xcb_get_setup'
/usr/lib64/ error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:1053: xgas] Error 1

Almost :-\



sudo apt-get install xorg-dev libaa1-dev libcaca-dev libflac-dev libmng-dev libogg-dev libtheora-dev \
                     libvorbis-dev libc6-dev-i386 g++ libcurl3-openssl-dev libpng12-dev libreadline-dev \
                     libtool autoconf autotools-dev automake1.9

First we have to compile xine-lib (migrated to Mercurial recently)

hg clone
cd xine-lib
hg update
./configure --prefix=/opt/xine --enable-altivec --enable-vidix --enable-a52dec --enable-mad \
            --enable-musepack --enable-asf --enable-faad --enable-aalib --with-caca --with-vorbis \
            --with-theora --with-alsa
sudo make install

Now we go on to compile xine-ui:

cd ../
cvs -z3 co -P xine-ui
cd xine-ui
cvs update
export PKG_CONFIG_PATH="/opt/xine/lib/pkgconfig"
export CFLAGS="-I/opt/xine/include"
export LDFLAGS="-L/opt/xine/lib"
./configure --prefix=/opt/xine --with-caca --with-aalib
sudo make install


Zulip is some kind of chat client. Don't ask. But if you have to build it, here is how:

sudo apt-get install cmake libqjson-dev qt4-qmake libqt4-dev libqtwebkit-dev libphonon-dev phonon-backend-gstreamer 

git clone zulip-desktop-git
mkdir zulip-desktop-git/build && cd $_
cmake ..
sudo make install DESTDIR=/opt/zulip                                  # Adjust DESTDIR[8] accordingly

Start with:

LD_LIBRARY_PATH=/opt/zulip/usr/local/lib /opt/zulip/usr/local/bin/zulip --site