/x86.sh (ef66a8b35dbba08f4397c2163cf2e7559207783a) (5001 bytes) (mode 100755) (type blob)
#!/bin/sh
set -e
. ./conf.sh
umask 022
# THE ONLY PURPOSE ON THIS HERESY IS TO PROVIDE SUPPORT FOR ONE OF MY SINS: GAMING
# THEN THE SOLE PURPOSE OF THIS IS THE SUPPORT OF THE REMAINING 32 BITS _CRAP_
# FROM THE STEAM CLIENT
################################################################################
# there are 2 parts, which have different requirements
#===============================================================================
# - the steam installer/downloader:
# - basically, only a 32 bits glibc installation, and a good set of
# unix commands (64 bits ones will do)
# - it wants /usr/bin/env
# - it wants /bin/bash (lib pinning uses bash arrays, not POSIX SH with
# C coded helper)
# - it wants /sbin/ldconfig, use an empty script or script a fake one
# see below
# - do manually the lib pinning (it should be disabled since the empty
# /sbin/ldconfig will return nothing) or script a fake one see
# above
#===============================================================================
# - the steam client:
# - it wants zenity (until it's fixed), use the script faking it in
# nyanlinux files directory or you can get nasty bash pipe race
# condition bugs
# - it wants a dbus system daemon and a dbus session daemon
# - it wants a non-root user to run
# - proper libs pinned (see the installer/downloader).
# - it wants the root CA certificates as /etc/ssl/ca-bundle.pem
# - it will very probably want LIBGL_DRI3_DISABLE=1 (dota2 won't work
# with this) without lib pinning: elf rpaths from many gfx stack lib
# build systems destroy lib dependencies loading consistency
# - it wants /usr/share/alsa for sound and voice support via alsa
# or ALSA_CONFIG_DIR environment variable.
# - it wants /usr/share/X11 and a locale like LANG=en_US.UTF-8 for
# "normal" key input, or you will get basic input support
# - it wants the x11 locales in /usr/share/X11/locale (the 32bits
# libX11 wants that), or XLOCALEDIR environment variable
################################################################################
# libtool files, *.la, do not interact well with -static-libgcc and
# -static-libstdc++ gcc options
./pkg-build x86-linux-headers
./pkg-build x86-glibc-headers-static-libgcc
# set up the full native system headers in one dir or libgcc will fail to
# configure not able to locate the linux headers (no configuration option allows
# to fix it)
cp -r $x86_prefix/devel/include-linux/include/* $x86_prefix/devel/include-glibc-static-libgcc
./pkg-build x86-cross-static-target-libgcc-binutils
./pkg-build x86-cross-static-target-libgcc-gcc-c
./pkg-build x86-glibc
################################################################################
################################################################################
# here, this is enough to run the 32 bits steam installer/downloader
################################################################################
################################################################################
# set up the full native system headers in one dir or libgcc will fail to
# configure not able to locate the linux headers (no configuration option allows
# to fix it)
cp -r $x86_prefix/devel/include-linux/include/* $x86_prefix/devel/include-glibc-linux
./pkg-build x86-cross-binutils
./pkg-build x86-cross-gcc-compilers
./pkg-build x86-llvm
./pkg-build x86-drm-amd-sh
./pkg-build x86-zlib
./pkg-build x86-libpthread-stubs
./pkg-build x86-libXau
# you may have to install the xcb-proto python2 module
./pkg-build x86-libxcb
./pkg-build x86-libX11
./pkg-build x86-libXext
./pkg-build x86-libXfixes
./pkg-build x86-libXdamage
./pkg-build x86-libxshmfence
./pkg-build x86-libXrender
./pkg-build x86-libXrandr
./pkg-build x86-expat
./pkg-build x86-libelf
./pkg-build x86-mesa-amd-sh
# the following are not required to compile mesa, but without being in sync
# with mesa, it will crash the client or the overlay
./pkg-build x86-libXScrnSaver
./pkg-build x86-libXi
./pkg-build x86-libXcomposite
./pkg-build x86-libXcursor
./pkg-build x86-libXinerama
./pkg-build x86-libXdmcp
./pkg-build x86-libXxf86vm
./pkg-build x86-libICE
./pkg-build x86-libSM
./pkg-build x86-libXt
#-------------------------------------------------------------------------------
./pkg-build x86-bzip2
./pkg-build x86-libpng
./pkg-build x86-freetype
./pkg-build x86-nyanuuid
./pkg-build x86-fontconfig
./pkg-build x86-libXft
#-------------------------------------------------------------------------------
# lighten a bit the x86 layer and remove elf rpath
cp -f $x86_cross_toolchain_dir_root/bin/$x86_target_gnu_triple-strip /tmp/strip
find $x86_prefix -type f | while read f; do if file $f | egrep 'ELF.+(shared|executable)' >/dev/null; then /tmp/strip -s $f; chrpath -d $f; fi; done
rm -f /tmp/strip
rm -Rf $x86_prefix/devel/share/doc $x86_prefix/devel/share/man
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
5 |
8eba6c8dd4dcaf6166bd22285ed34625f38a84ff |
.gitignore |
100755 |
blob |
2487 |
533016d4902080b22ae5dc5352802ebdd0d78b16 |
01-x86_64-nyan-linux-gnu.sh |
100755 |
blob |
4254 |
31fdc18cc3e6c6cfd8444fa404f7e82f849bad56 |
02-nyan-cross-core.sh |
100755 |
blob |
3549 |
7f1362bad6786a6818ce7a7d613d0dc11f611fb9 |
03-nyan-cross-x11.sh |
100755 |
blob |
12534 |
f9036d33f9f159ea2421ce1a1ebf7067f0f695c1 |
04-bootstrap-conf.sh |
100755 |
blob |
671 |
5f6bc5de83a883da3a7f0d4a37e1d0ef51c08561 |
10-sdk-conf.sh |
100755 |
blob |
2201 |
83fa9bf5bddbecb88db53779e324b9f270b1080e |
11-sdk.sh |
100755 |
blob |
2826 |
090b622caebd38755ef1e57a9cf0f4f673b22a8e |
12-desktop.sh |
100755 |
blob |
129 |
08460f0dece90701f01cbf7d710609ecbb3d56e0 |
13-beyond.sh |
100644 |
blob |
1075 |
1b5314b511d4c6dc7eb4db36a21dd47ba5a00a9d |
INSTALL |
100644 |
blob |
30 |
c9b735fa1332286f4b3f5f81fa10527fd7506b6e |
LICENSE |
100644 |
blob |
1973 |
6aa180fc473777d9ca6b155cbf9b973065cdd77a |
README |
040000 |
tree |
- |
cf9d04b7a685f45bc669a1c7d76983f6cc7c9146 |
builders |
100644 |
blob |
2986 |
43344438bb4d817ff81f1890de1097f627c6d6c4 |
conf.sh |
040000 |
tree |
- |
317962325b26fefabb04d8e26db40eae9e5b8d62 |
files |
100755 |
blob |
351 |
6af534903b47d67a8dcb71653e7a0e1c1a4dfda4 |
pkg-build |
100755 |
blob |
289 |
7f5fbdbb712f274d04a036b9c486cbc9cf581be6 |
pkg-build-target |
100644 |
blob |
915 |
a7f21134dbc05d0e8227eaee366856b8171832a4 |
sdk.sh |
100755 |
blob |
5001 |
ef66a8b35dbba08f4397c2163cf2e7559207783a |
x86.sh |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux
Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main