/builders/libxkbcommon-0/builder.sh (cbbdb2a68b570d8503e2d6474db15e45b1c59923) (5074 bytes) (mode 100644) (type blob)
src_name=libxkbcommon
# version is at the top of the root meson.build file
version=0.10.0
git_commit=a0c1c2f42dafecbad7b9912dcaba7f206805981d
git_url0=git://github.com/xkbcommon/libxkbcommon
slot=0
pkg_dir=$pkgs_dir_root/$pkg_name
src_dir=$src_dir_root/$src_name
rm -Rf $pkg_dir
mkdir -p $pkgs_dir_root
cp -L -r $src_dir $pkg_dir
cd $pkg_dir
git checkout --force $git_commit
git reset --hard
build_dir=$builds_dir_root/$pkg_name
rm -Rf $build_dir
mkdir -p $build_dir
cd $build_dir
# X11 locale is the "compose" mini input method
cat >config.h <<EOF
#define DFLT_XKB_CONFIG_ROOT "/nyan/xkeyboard-config/current/share/X11/xkb"
#define XLOCALEDIR "/nyan/libX11/current/share/X11/locale"
#define LIBXKBCOMMON_VERSION "$version"
#define DEFAULT_XKB_RULES "evdev"
#define DEFAULT_XKB_MODEL "pc105"
#define DEFAULT_XKB_LAYOUT "us"
#define DEFAULT_XKB_VARIANT ""
#define DEFAULT_XKB_OPTIONS ""
/* glibc */
#define _GNU_SOURCE 1
#define HAVE__BUILTIN_EXPECT 1
#define HAVE_EACCESS 1
#define HAVE_EUIDACCESS 1
#define HAVE_MMAP 1
#define HAVE_MKOSTEMP 1
#define HAVE_POSIX_FALLOCATE 1
#define HAVE_STRNDUP 1
/* no */
#undef HAVE_ASPRINTF
#undef HAVE_VASPRINTF
#define HAVE_SECURE_GETENV 1
#undef HAVE___SECURE_GETENV
EOF
# DON'T USE BISON EXTENSIONS!
# DON'T USE A YACC PROGRAM, THOSE ARE _BAD_ PARSERS AND IT CREATES NASTY BUILD
# DEPS.
# ALWAYS MANUALLY WRITE YOUR PARSERS!
# JEZUS! FOR GOD SAKE! YOU ANIMALS!
bison --defines=parser.h -o $build_dir/parser.c -p _xkbcommon_ \
$pkg_dir/src/xkbcomp/parser.y
srcs="\
$pkg_dir/src/compose/parser.c \
$pkg_dir/src/compose/paths.c \
$pkg_dir/src/compose/state.c \
$pkg_dir/src/compose/table.c \
$pkg_dir/src/xkbcomp/action.c \
$pkg_dir/src/xkbcomp/ast-build.c \
$pkg_dir/src/xkbcomp/compat.c \
$pkg_dir/src/xkbcomp/expr.c \
$pkg_dir/src/xkbcomp/include.c \
$pkg_dir/src/xkbcomp/keycodes.c \
$pkg_dir/src/xkbcomp/keymap.c \
$pkg_dir/src/xkbcomp/keymap-dump.c \
$pkg_dir/src/xkbcomp/keywords.c \
$build_dir/parser.c \
$pkg_dir/src/xkbcomp/rules.c \
$pkg_dir/src/xkbcomp/scanner.c \
$pkg_dir/src/xkbcomp/symbols.c \
$pkg_dir/src/xkbcomp/types.c \
$pkg_dir/src/xkbcomp/vmod.c \
$pkg_dir/src/xkbcomp/xkbcomp.c \
$pkg_dir/src/atom.c \
$pkg_dir/src/context.c \
$pkg_dir/src/context-priv.c \
$pkg_dir/src/keysym.c \
$pkg_dir/src/keysym-utf.c \
$pkg_dir/src/keymap.c \
$pkg_dir/src/keymap-priv.c \
$pkg_dir/src/state.c \
$pkg_dir/src/text.c \
$pkg_dir/src/utf8.c \
$pkg_dir/src/utils.c \
"
objs=
for f in $srcs
do
obj=$build_dir/$(dirname $f)/$(basename $f .c).o
mkdir -p $build_dir/$(dirname $f)
gcc -fvisibility=hidden -fPIC -c \
-I$build_dir \
-I$pkg_dir/src \
-I$pkg_dir \
$f -o $obj &
objs="$obj $objs"
done
wait
gcc -B/nyan/glibc/current/lib -shared \
-Wl,--version-script=$pkg_dir/xkbcommon.map \
-Wl,-soname=libxkbcommon.so.0 \
$objs \
-o $build_dir/libxkbcommon.so.0.0.0
ln -sTf libxkbcommon.so.0.0.0 $build_dir/libxkbcommon.so.0
ln -sTf libxkbcommon.so.0 $build_dir/libxkbcommon.so
sed -E -e \
"s:@prefix@:/nyan/$src_name/current:;\
s:@exec_prefix@:/nyan/$src_name/current:;\
s:@libdir@:/nyan/$src_name/current/lib:;\
s:@includedir@:/nyan/$src_name/current/include:;\
s:@PACKAGE_VERSION@:$version:" \
$pkg_dir/xkbcommon.pc.in \
>$build_dir/xkbcommon.pc
#-------------------------------------------------------------------------------
# x11 helper lib
srcs="\
$pkg_dir/src/x11/keymap.c \
$pkg_dir/src/x11/state.c \
$pkg_dir/src/x11/util.c \
$pkg_dir/src/context-priv.c \
$pkg_dir/src/keymap-priv.c \
$pkg_dir/src/atom.c \
"
objs=
for f in $srcs
do
obj=$build_dir/$(dirname $f)/$(basename $f .c).o
mkdir -p $build_dir/$(dirname $f)
gcc -fvisibility=hidden -fPIC -c -I$build_dir -I$pkg_dir/src \
-I$pkg_dir \
-I/nyan/libxcb/current/include \
$f -o $obj &
objs="$obj $objs"
done
wait
gcc -B/nyan/glibc/current/lib -shared \
-Wl,--version-script=$pkg_dir/xkbcommon-x11.map \
-Wl,-soname=libxkbcommon-x11.so.0 \
$objs \
-L$build_dir -lxkbcommon \
-L/nyan/libxcb/current/lib -lxcb-xkb \
-o $build_dir/libxkbcommon-x11.so.0.0.0
ln -sTf libxkbcommon-x11.so.0.0.0 $build_dir/libxkbcommon-x11.so.0
ln -sTf libxkbcommon-x11.so.0 $build_dir/libxkbcommon-x11.so
sed -E -e \
"s:@prefix@:/nyan/$src_name/current:;\
s:@exec_prefix@:/nyan/$src_name/current:;\
s:@libdir@:/nyan/$src_name/current/lib:;\
s:@includedir@:/nyan/$src_name/current/include:;\
s:@PACKAGE_VERSION@:$version:" \
$pkg_dir/xkbcommon-x11.pc.in \
>$build_dir/xkbcommon-x11.pc
#-------------------------------------------------------------------------------
mkdir -p /nyan/$src_name/$slot/include/xkbcommon
mkdir -p /nyan/$src_name/$slot/lib/pkgconfig
mv -f $pkg_dir/xkbcommon/xkbcommon.h \
$pkg_dir/xkbcommon/xkbcommon-compat.h \
$pkg_dir/xkbcommon/xkbcommon-compose.h \
$pkg_dir/xkbcommon/xkbcommon-keysyms.h \
$pkg_dir/xkbcommon/xkbcommon-names.h \
$pkg_dir/xkbcommon/xkbcommon-x11.h \
/nyan/$src_name/$slot/include/xkbcommon
mv -f $build_dir/*.pc /nyan/$src_name/$slot/lib/pkgconfig
strip -s $build_dir/*.so
mv -f $build_dir/*.so* /nyan/$src_name/$slot/lib
rm -Rf $build_dir $pkg_dir
rmdir /run/pkgs /run/builds
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
5 |
8eba6c8dd4dcaf6166bd22285ed34625f38a84ff |
.gitignore |
100755 |
blob |
1587 |
57fa4264b9ee0ae0a6f678f2527a05d3b22dda78 |
00-bootstrap-build.sh |
100755 |
blob |
848 |
a30f443bf405d56682efe3b4c5d3a19d5f7eb45d |
01-re-bootstrap-build.sh |
100644 |
blob |
2142 |
f19c2d6b293244bb11a3f74ee77c10675cadc7d6 |
INSTALL |
100644 |
blob |
30 |
c9b735fa1332286f4b3f5f81fa10527fd7506b6e |
LICENSE |
040000 |
tree |
- |
d2e1c74ef74666095a9993d1d18d9de29275eb80 |
builders |
100644 |
blob |
1773 |
ef1551089a803bde37e36edc8d61bb819d06f793 |
conf.bootstrap.sh |
100644 |
blob |
479 |
8cc15efe46965ac7750fe304460f5a2b0aa4201c |
conf.sh |
040000 |
tree |
- |
4ac4da038dff9cda576f87f52bc784c0f470dc08 |
files |
100755 |
blob |
333 |
06859f922e41c1e691c72ada1be3f981ef05f602 |
pkg-build |
100644 |
blob |
22800641 |
e9e6291054c857401f6835c728f31541dae4311e |
steam.tar.bz2 |
100644 |
blob |
173 |
2047af328b22f9d146585cd9e759edbc18122250 |
utils.sh |
040000 |
tree |
- |
5994cc1f3a2b92eaa849a3d6e9aee7897c12daea |
x64 |
040000 |
tree |
- |
b7a22de7f5cbd97650dd45412ef7d4246e395eb8 |
x86 |
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