Skip to content

Instantly share code, notes, and snippets.

@ysangkok
Last active November 6, 2015 18:26
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ysangkok/deb293e0530fdc7075ac to your computer and use it in GitHub Desktop.
Save ysangkok/deb293e0530fdc7075ac to your computer and use it in GitHub Desktop.
building irssi and dependencies without root
INST=/home/janus/or1k-inst
RUNPREFIX=/home/user
mkdir $INST
CC=/opt/cross/or1k-linux-musl/bin/or1k-linux-musl-gcc
wget -O - ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz | tar zx
cd libffi-3.2.1
./configure --prefix=$RUNPREFIX/libffi-build #--host=or1k-linux-musl CC=$CC
make -j2
make install DESTDIR=$INST
cd ..
wget -O - "http://ftp.gnome.org/pub/gnome/sources/glib/2.43/glib-2.43.2.tar.xz" | tar Jx
cd glib-2.43.2
PKG_CONFIG_PATH=$HOME/libffi-build/lib/pkgconfig ./configure --prefix=$HOME/glib-build
make -j2
make install
cd ..
wget -O - http://install.perlbrew.pl | bash
source ~/perl5/perlbrew/etc/bashrc
perlbrew install --notest perl-5.21.7
cd perl5/perlbrew/perls/perl-5.21.7/bin
ln -s perl5.21.7 perl
cd -
perlbrew use perl-5.21.7
wget -O - "http://irssi.org/files/irssi-0.8.17.tar.bz2" | tar jx
cd irssi-0.8.17
LD_LIBRARY_PATH=$HOME/glib-build/lib/ PKG_CONFIG_PATH=$HOME/glib-build/lib/pkgconfig ./configure --prefix=$HOME/irssi-build --enable-dane --enable-true-color --with-perl-staticlib
make -j2
make install
cd ..
mkdir .irssi
cd .irssi
ln -s ../irssi-build/share/irssi/scripts .
cd ..
wget -O - http://downloads.sourceforge.net/project/scons/scons/2.3.4/scons-2.3.4.tar.gz | tar zx
cd scons-2.3.4
python setup.py install --prefix=$HOME/scons-build
cd ..
#install GCRYPT using weechat guide (also gist)
wget -O - "https://otr.cypherpunks.ca/libotr-4.1.0.tar.gz" | tar zx
cd libotr-4.1.0
PATH=$HOME/libgcrypt-build/bin:$PATH ./configure --prefix=$HOME/libotr-build
make
make install
cd ..
wget https://github.com/cryptodotis/irssi-otr/archive/master.zip
unzip master.zip
rm master.zip
mv irssi-otr-master irssi-otr
cd irssi-otr/src
cat > SConstruct <<END
import os, os.path
irssi_prefix = os.path.join( os.getenv("HOME") , "irssi-build" )
libgcrypt_prefix = os.getenv("HOME")+"/libgcrypt-build"
libotr_prefix = os.getenv("HOME")+"/libotr-build"
libgcrypt_config = libgcrypt_prefix + "/bin/libgcrypt-config"
env = Environment(
CFLAGS=["-ggdb3", "-fPIC", "-I" + irssi_prefix + "/include/irssi", "-I" + irssi_prefix + "/include/irssi/src", "-I" + irssi_prefix + "/include/irssi/src/core"],
CPPDEFINES = {"VERSION": "\\\\\"1.0.1\\\\\""},
STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME=1,
RPATH = [libgcrypt_prefix + "/lib", libotr_prefix + "/lib"]
)
env.ParseConfig("PKG_CONFIG_PATH=$HOME/glib-build/lib/pkgconfig pkg-config glib-2.0 --cflags --libs")
env.ParseConfig(libgcrypt_config + " --cflags --libs")
env.ParseConfig("PKG_CONFIG_PATH="+libotr_prefix+"/lib/pkgconfig pkg-config libotr --cflags --libs")
files = Glob("*.c")
objects = [env.Object(x) for x in files]
env.SharedLibrary("libotr.so", objects)
END
~/scons-build/bin/scons
mkdir -p ~/irssi-build/lib/irssi/modules
ln -s $PWD/libotr.so ~/irssi-build/lib/irssi/modules/
cd ../..
screen irssi-build/bin/irssi
/load otr
@TheOGTonyG
Copy link

Unfortunately this script requires a number of newer libs and doesn't offer much of a workaround for when they're missing. Looks like without su access I'm out of luck.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment