Skip to content

Instantly share code, notes, and snippets.

@runlevel5
Last active May 1, 2020 06:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save runlevel5/f809af3c1f3d168f9965eac56e938b8b to your computer and use it in GitHub Desktop.
Save runlevel5/f809af3c1f3d168f9965eac56e938b8b to your computer and use it in GitHub Desktop.

Debian buster ppc64el

portable libyaml

cd /tmp
wget https://github.com/yaml/libyaml/archive/dist-0.2.2.tar.gz
tar xzvf dist-0.2.2.tar.gz
cd libyaml-dist-0.2.2
mkdir -p $HOME/.linuxbrew/Homebrew/Cellar/portable-libyaml/0.2.2
./configure --enable-static --disable-shared --disable-dependency-tracking --prefix=$HOME/.linuxbrew/Homebrew/Cellar/portable-libyaml/0.2.2
make install

portable ncurses

cd /tmp
wget https://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
tar xzvf ncurses-6.1.tar.gz
cd ncurses-6.1
mkdir -p $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1
./configure --prefix=$HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1 --with-pkg-config-libdir=$HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig --disable-dependency-tracking --enable-static --disable-shared --enable-pc-files --enable-sigwinch --enable-symlinks --enable-widec --with-gpm=no
make install


ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libformw.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libform.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libformw_g.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libform_g.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libmenuw.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libmenu.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libmenuw_g.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libmenu_g.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncursesw.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncurses.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncursesw_g.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncurses_g.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libpanelw.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libpanel.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libpanelw_g.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libpanel_g.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncurses++w.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncurses++.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncurses++w_g.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncurses++_g.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libncurses.a $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/libcurses.a
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/formw.pc $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/form.pc
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/menuw.pc $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/menu.pc
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/panelw.pc $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/panel.pc
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/ncurses++w.pc $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/ncurses++.pc
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/ncursesw.pc $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/lib/pkgconfig/ncurses.pc
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/bin/ncursesw6-config $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/bin/ncurses6-config
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/ncursesw/curses.h $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/curses.h
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/ncursesw/form.h $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/form.h
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/ncursesw/ncurses.h $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/ncurses.h
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/ncursesw/panel.h $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/panel.h
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/ncursesw/term.h $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/term.h
ln -sf $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/ncursesw/termcap.h $HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1/include/termcap.h

portable readline

cd /tmp
wget https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz
tar xzvf readline-8.0.tar.gz
cd readline-8.0/
wget https://ftp.gnu.org/gnu/readline/readline-8.0-patches/readline80-001
patch -p0 < readline80-001
./configure --prefix=$HOME/.linuxbrew/Homebrew/Cellar/portable-readline/8.0.1 --enable-multibyte --enable-static --disable-shared --with-curses
SHLIB_LIBS=-lcurses make install

# do we need to copy libncurses*.a over?

portable zlib

cd /tmp
wget http://zlib.net/zlib-1.2.11.tar.gz
tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --static --prefix=$HOME/.linuxbrew/Homebrew/Cellar/portable-zlib/1.2.11
make install

portable openssl

cd /tmp
wget https://www.openssl.org/source/openssl-1.0.2t.tar.gz
tar xzvf openssl-1.0.2t.tar.gz
cd openssl-1.0.2t
./config --prefix=$HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t --openssldir=$HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t/libexec/etc/openssl -static no-ssl2 no-ssl3 no-shared enable-cms --with-zlib-lib=$HOME/.linuxbrew/Homebrew/Cellar/portable-zlib/1.2.11/lib --with-zlib-include=$HOME/.linuxbrew/Homebrew/Cellar/portable-zlib/1.2.11/include
make
make test
make install MANDIR=/tmp/openssl_man
rm -rf /tmp/openssl_man

cd $HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t/libexec/etc/openssl/
wget https://curl.haxx.se/ca/cacert-2020-01-01.pem
mv cacert-2020-01-01.pem cert.pem



sed -i '/Libs:/d' $HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t/lib/pkgconfig/libcrypto.pc
echo "Libs: -L\${libdir} -lcrypto -L${HOME}/.linuxbrew/Homebrew/Cellar/portable-zlib/1.2.11/lib -lz" >> $HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t/lib/pkgconfig/libcrypto.pc

sed -i '/Libs:/d' $HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t/lib/pkgconfig/libssl.pc
echo "Libs: -L\${libdir} -lssl -L${HOME}/.linuxbrew/Homebrew/Cellar/portable-zlib/1.2.11/lib -lz" >> $HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t/lib/pkgconfig/libssl.pc

portable ruby

cd /tmp
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.bz2
tar xjvf ruby-2.6.3.tar.bz2
cd ruby-2.6.3

sed -i '/termcap/d' ./ext/readline/extconf.rb

./configure --prefix=$HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3 --disable-dependency-tracking --enable-static --disable-shared --enable-load-relative --with-static-linked-ext --with-out-ext=tk,sdbm,gdbm,dbm,win32,win32ole --with-openssl-dir=$HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t --without-gmp --disable-install-doc --disable-install-rdoc --with-opt-dir=$HOME/.linuxbrew/Homebrew/Cellar/portable-readline/8.0.1:$HOME/.linuxbrew/Homebrew/Cellar/portable-libyaml/0.2.2:$HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t:$HOME/.linuxbrew/Homebrew/Cellar/portable-ncurses/6.1:$HOME/.linuxbrew/Homebrew/Cellar/portable-zlib/1.2.11


make install

rm $HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3/bin/rake
mkdir $HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3/libexec/
cp $HOME/.linuxbrew/Homebrew/Cellar/portable-openssl/1.0.2t/libexec/etc/openssl/cert.pem $HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3/libexec/

sed -i 's/CONFIG\["CXX"\] = "g++"/CONFIG\["CXX"\] = "c\+\+"/g' $HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3/lib/ruby/2.6.0/powerpc64le-linux/rbconfig.rb

sed -i 's/CONFIG\["CC"\] = "gcc"/CONFIG\["CC"\] = "cc"/g' $HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3/lib/ruby/2.6.0/powerpc64le-linux/rbconfig.rb

cat $HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3/lib/ruby/2.6.0/openssl.rb > /tmp/content
echo 'ENV["SSL_CERT_FILE"] ||= File.expand_path("../../libexec/cert.pem", RbConfig.ruby)' > $HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3/lib/ruby/2.6.0/openssl.rb
cat /tmp/content >> $HOME/.linuxbrew/Homebrew/Cellar/portable-ruby/2.6.3/lib/ruby/2.6.0/openssl.rb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment