sylware / nyanlinux (public) (License: AFFERO GPLv3) (since 2019-09-09) (hash sha1)
scripts for a lean, from scratch, amd hardware, linux distro

/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 - 2d329a132a818271872c5dfca0ef3e4f68010c64 builders
100644 blob 1773 ef1551089a803bde37e36edc8d61bb819d06f793 conf.bootstrap.sh
100644 blob 479 8cc15efe46965ac7750fe304460f5a2b0aa4201c conf.sh
040000 tree - c8df8a6aa81ebfdb98561f8f1896df85d250cbbd files
100755 blob 356 8fb8be28ac72f7214b59934b9f74a682665f2d32 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