/builders/ffmpeg/builder.sh (856813f378dffe7b4f9121b1c3e1bf97a6c50e9e) (4450 bytes) (mode 100644) (type blob)
src_name=ffmpeg
git_url0=https://git.ffmpeg.org/$src_name.git
pkg_dir=/run/pkgs/$src_name
src_dir=$src_dir_root/$src_name
rm -Rf $pkg_dir
mkdir -p /run/pkgs
cp -r $src_dir $pkg_dir
PATH_SAVED=$PATH
export PATH="\
/nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/bin:\
/nyan/make/current/bin:\
/nyan/git/current/bin:\
/nyan/nasm/current/bin:\
/nyan/pkgconf/current/bin:\
$PATH\
"
target_gnu_triple=$(basename "$(ls -d /nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/bin/*-gcc)")
target_gnu_triple=${target_gnu_triple%-gcc}
cd $pkg_dir
if test x$git_commit != x; then
git checkout --force $git_commit
git reset --hard
fi
# libvpx is not supported as a static lib, but configure has manual detection
# if no pkg-config file is found
export "PKG_CONFIG_LIBDIR=\
/nyan/alsa-lib/current/lib/pkgconfig:\
/nyan/nyanuuid/current/lib/pkgconfig:\
/nyan/fontconfig/current/lib/pkgconfig:\
/nyan/expat/current/lib/pkgconfig:\
/nyan/libpng/current/lib/pkgconfig:\
/nyan/zlib/current/lib/pkgconfig:\
/nyan/freetype/current/lib/pkgconfig:\
/nyan/fribidi/current/lib/pkgconfig:\
\
/nyan/xorgproto/current/share/pkgconfig:\
/nyan/libXau/current/lib/pkgconfig:\
/nyan/libpthread-stubs/current/lib/pkgconfig:\
/nyan/libxcb/current/lib/pkgconfig:\
\
/nyan/libressl/current/lib/pkgconfig"
# we use libressl static libs
# XXX: switch to tls_openssl backend since twitch broke tls_libtls somehow
#sed -i -e "/^enabled libtls/ c\enabled libtls && require libtls tls.h tls_configure $(/nyan/pkgconf/current/bin/$target_gnu_triple-pkg-config --static --libs-only-l libtls)" ./configure
sed -i -e '/^enabled openssl/,+9 c\
enabled openssl && require ssl openssl/ssl.h OPENSSL_init_ssl -lssl -ltls -lcrypto -lpthread' ./configure
# force libdav1d
sed -i -e '/^enabled libdav1d/ c\enabled libdav1d' ./configure
# opus is not supported as a static lib, switch to manual detection
sed -i -e '/require_pkg_config libopus opus opus_multistream.h opus_multistream_surround_encoder_create/ c\ require libopus opus_multistream.h opus_multistream_surround_encoder_create -lopus -lm' ./configure
sed -i -e '/require_pkg_config libopus opus opus_multistream.h opus_multistream_decoder_create/ c\ require libopus opus_multistream.h opus_multistream_decoder_create -lopus -lm' ./configure
build_dir=/run/builds/$pkg_name
rm -Rf $build_dir
mkdir -p $build_dir
cd $build_dir
# configure runs some programs
LD_LIBRARY_PATH_SAVED=$LD_LIBRARY_PATH
export "LD_LIBRARY_PATH=\
/nyan/fontconfig/current/lib:\
/nyan/freetype/current/lib:\
/nyan/libpng/current/lib:\
/nyan/dav1d/current/lib:\
$LD_LIBRARY_PATH"
# XXX: added libssl libs next to libdav1d due to twitch breaking tls_libtls ssl backend somehow
$pkg_dir/configure \
--cross-prefix=$target_gnu_triple- \
--target_os=linux \
--arch=x86_64 \
"--extra-cflags=\
-I/nyan/libvpx/current/include/ \
-I/nyan/opus/current/include/opus \
-I/nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/include \
-I/nyan/dav1d/current/include \
-I/nyan/libressl/current/include \
-O2 -pipe -fPIC \
-idirafter /nyan/glibc/current/include \
-idirafter /nyan/linux-headers/current/include" \
"--extra-ldflags=\
-B/nyan/glibc/current/lib -L/nyan/glibc/current/lib -static-libgcc \
-Wl,-s \
-Wl,-rpath-link,\
/nyan/glibc/current/lib:\
/nyan/libpng/current/lib:\
/nyan/libXau/current/lib:\
/nyan/libxcb/current/lib:\
/nyan/dav1d/current/lib \
\
-L/nyan/libvpx/current/lib \
-L/nyan/opus/current/lib \
-L/nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/lib \
-L/nyan/dav1d/current/lib \
-L/nyan/libressl/current/lib" \
"--extra-libs=\
-ldav1d -lssl -ltls -lcrypto -lpthread" \
--enable-pic \
--prefix=/nyan/ffmpeg/$slot \
--enable-error-resilience \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--enable-static \
--disable-shared \
--disable-ffplay \
--enable-ffprobe \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages \
--enable-libdav1d \
--enable-gmp \
--enable-openssl \
--disable-libass \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi \
--enable-libopus \
--enable-libvpx \
--disable-xlib \
--enable-libxcb \
--enable-libxcb-shm \
--enable-libxcb-xfixes \
--enable-libxcb-shape \
--disable-decoder=libvpx_vp8,libvpx_vp9
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH_SAVED
make -j $threads_n
make install
export PATH=$PATH_SAVED
unset PATH_SAVED
unset target_gnu_triple
rm -Rf $build_dir $pkg_dir
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 |
- |
04f95d2aee7299b307955def7955253ad00c641e |
builders |
100644 |
blob |
1773 |
ef1551089a803bde37e36edc8d61bb819d06f793 |
conf.bootstrap.sh |
100644 |
blob |
479 |
8cc15efe46965ac7750fe304460f5a2b0aa4201c |
conf.sh |
040000 |
tree |
- |
d192e9b75e56952423936c48eccaac417d3ecdbd |
files |
100755 |
blob |
333 |
06859f922e41c1e691c72ada1be3f981ef05f602 |
pkg-build |
100644 |
blob |
22800641 |
e9e6291054c857401f6835c728f31541dae4311e |
steam.tar.bz2 |
100644 |
blob |
173 |
2047af328b22f9d146585cd9e759edbc18122250 |
utils.sh |
040000 |
tree |
- |
8e23f551092a35f82b37129dd08c35c4d313c17b |
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