| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
It shouldn't be added unconditionally and with all the fragile checks if
it is supported it is way better to handle it in the meson itself.
See also:
https://github.com/mpv-player/mpv/pull/12346
Fixes:
https://github.com/mpv-player/mpv-build/issues/215
https://github.com/haasn/libplacebo/issues/198
|
|
|
|
|
|
|
|
|
| |
When building libmpv against the static ffmpeg libraries, we have to add
the -Wl,-Bsymbolic linker flags. The problem is that these are only
valid for ELF which doesn't apply to all OSes (namely, macOS). Solve
this by simply checking the output from uname and seeing if it matches a
known ELF platform like linux, bsd, or solaris (who uses this?).
Fixes #216.
|
|
|
|
|
| |
e5d2640cb3a25c060a63bb57e8ecdcd2afcd9588 removed waf support so this
flag is no longer valid.
|
|
|
|
|
| |
Waf was deprecated in mpv 0.36.0, and will be removed in 0.37.0, so
remove waf support in mpv-build as well.
|
|
|
|
|
|
|
|
|
|
|
| |
The options passed through mpv-config have different syntax. --confdir
is no longer necessary.
Rename $WAFFLAGS to $MESONFLAGS.
Use the mpv-install script with appropriate --destdir.
Remove the unused DOCS and TOOLS variables.
|
|
|
|
|
|
|
|
|
|
| |
According to ffmpeg's own documentation* we have to add these linker
flags to libmpv when building it against the static library. waf doesn't
need this for mysterious, unknown reasons (the linker flags there are a
bit different) but passing this works fine on meson. Just add an extra
check to the mpv-config script to enable this if needed. Fixes #208.
*: https://ffmpeg.org/platform.html#Advanced-linking-configuration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using meson to build mpv with prefer_static=true would try to link
everything statically including things provided by the system. For
example, if both shared and static versions of libarchive are were
available, it would choose the static version. This would work until it
tried to actulaly link the mpv binary which would additionally require
static versions of -lacl, lzlib, etc. These build dependencies can be
avoided if it instead links to shared libarchive.
To avoid this, don't use -Dprefer_static=true. It should already be
preferring the specifically statically built libs in build_libs because
they are added first in the pkg-config path.
Of course, we still run into the same -lstdc++ issue that we saw with
waf, so that hack needs to be made general to both build systems.
|
|
|
|
|
|
|
|
| |
Waf was officially deprecated in mpv, so we should make these scripts
use meson by default instead. Waf support is still there for now via
the BUILDSYSTEM=waf environment variable (meson no longer requires any
special variable to use). The README is adjusted a little to reflect
this.
|
|
|
|
|
|
|
|
| |
The old usage of "meson build" for configuration was deprecated in meson
0.64*. You're meant to use "meson setup build" instead so just replace
the couple of instances of "meson build" that we have in the scripts.
https://github.com/mesonbuild/meson/commit/3c7ab542c0c4770241eae149b0d4cd8de329aee0
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Include libplacebo to add support `vo=gpu-next` in mpv,
as the OS-provided libplacebo may not be recent enough.
Explicitly link mpv and ffmpeg against stdc++ in case libplacebo was built with glslang,
which does not have pkg-config files.
Adjust the update script to also checkout git submodules as well,
which is needed for libplacebo.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ffmpeg doesn't always autodetect/enable tls/ssl libs, so mpv-build
does that if the user didn't specify one.
However, previously it had two issues:
1. It checked for 3 options (openssl/gnutls/mbedtls) but ffmpeg
supports 6. So for instance if --enable-schannel was specified
by the user, then mpv still tried to add another one, which
resulted in a conflict which the user couldn't override easily
(needs the user options: --disable-openssl --disable-gnutls).
2. It still tried to auto-enable even if the user disabled some of
them. Not a real problem (because the user option comes after the
mpv-build auto-option), but not very nice either.
Now if any of the 6 ssl/tls names exist at the user option
(enabled/disabled/whatever) then autodetection is skipped.
|
|
|
|
|
|
|
|
|
|
|
| |
- Implement our own echo function. echo is non standard and its
behavior varies, where on some systems it can be affected by -n
or -e etc. Our implementation is unaffected by any switch/options.
- Invoke grep only once, and check one of the three strings at once
as an ERE (-E).
- Add a user-message when skipping auto-detection
|
|
|
|
|
|
|
|
|
| |
This is a regression from 3de25ed , where previously ffmpeg_options
content was added to $OPTION before the checks, but since 3de25ed it
stays as "$@", but the ssl/tls still only checked $OPTIONS.
Now it checks both $OPTIONS and "$@", which takes ffmpeg_options into
account as well.
|
|
|
|
|
|
| |
There was an old rm -f line for removing things created by mpv's old,
pre-waf build system (nearly 10 years ago) in mpv-clean. Remove this
since it's completely pointless now and just confusing.
|
|
|
|
|
|
|
|
|
|
| |
This adds an optional environment variable, BUILDSYSTEM, that can be
passed to the build scripts to use mpv's meson build instead of waf,
the default. BUILDSYSTEM=meson needs to be set and any configure options
passed must use meson's syntax instead of waf. The catch with meson
support is that it requires the new prefer_static option for statically
linking libass and ffmpeg. This option is not currrently in a release
and will land in meson 0.63.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously these files were split into arguments based on default IFS
(space, tab, newline), which means that they couldn't hold whitespaces.
Now they're split by newlines, so the entire line is a single value.
Like before, values with newline[s] or empty can't be stored at the
file, but other than these the files can now hold arbitrary values.
This is potentially a breaking change, because while it was documented
that there should be one value per line (and the example didn't add
leading/trailing spaces), in practice it was possible to place several
values per line, and leading/trailing spaces were ignored.
So this will break for users who placed several options per line and/or
expect whitespaces to be ignored.
Also, libass and fribidi didn't support *_options files, now they do.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While configure CLI options are not used with ./build and ./rebuild,
scripts/*-config can be invoked directly with arguments, and these
script do take that into account.
Previously, spaces in such arguments e.g. --extra-libs="-L/foo -lbar"
caused the argument to be incorrectly split (on IFS), and now they're
preserved correctly.
The issue was that the arguments were stored using USER_OPTS="$@",
and the var value was later used unquoted - which splits on IFS.
Another issue is that VAR="$@" is unspecified by posix, because quoted
"$@" is only specified where field-splitting otherwise happens, but it
doesn't happen in variable assignment.
The solution is to never store "$@", and instead just use it directly.
Also, previously scripts/fribidi-config ignored CLI arguments, now it
doesn't.
Config options at NAME_options files will be fixed at the next commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This affects CLI arguments to ./build, ./rebuild, as well as when
invoking any of scripts/*-build directly.
Previously, if such CLI argument contained a space, then the argument
was incorrectly split. Now spaces are taken correctly.
The issue was that the scripts used unquoted $@, which is identical to
unquoted $*, i.e. it's field-split on IFS.
Now we use quoted "$@", which preserves the arguments exactly.
Also, previously scripts/fribidi-build ignored the CLI arguments, and
now it doesn't (but we still override any -jN option with -j1).
|
|
|
|
|
|
|
| |
This became necessary with
libass/libass@c9c4fed39339ffde45123013a117e06d0bb9c488
fixes #152, #150
|
| |
|
|
|
|
|
| |
This saves Debian users from installing python-is-python3
and others from accidentally running waf with python2 (unsupported).
|
| |
|
| |
|
|
|
|
|
| |
This reverts commit 8c9abd8c7914b71562e2d81faad76015526a9f8e. I'm
restoring them, bugs will be my own responsibility.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
What’s so special about this distro that we not only have a repository
with scripts to compensate for the inability of its maintainers to
package and distribute software to our users, but also have to deal
with their incredibly bad tooling?
Also, the instructions don’t work and only waste users’ time. If these
“only exist for users who want to hurt themselves” then perhaps we
shouldn’t have them in the first place, even if “wants to hurt
themselves” practically describes the majority of Debian users.
Closes #106.
|
|
|
|
|
|
|
|
|
| |
In my setup, I use PKG_CONFIG_PATH to point to libfdk-aac; the previous
version of these files overrode this, making ffmpeg fail to configure
for not finding libfdk-aac.
Now, the PKG_CONFIG_PATH variable is always honored, with our own build
directory put in front of existing settings.
|
| |
|
|
|
|
|
| |
Avoid unnecessarily adding --enable-nonfree and prefer gnutls over
openssl in configuring ffmpeg.
|
|
|
|
|
|
|
|
|
| |
I'll probably regret it.
There's also a very small chance that the pkg-config things I'm
checking are debian-specific.
Fixes #54.
|
|
|
|
|
|
|
| |
The mpv configure script actually doesn't pick up libavresample
anymore if it finds libswscale.
Closes #55.
|
|
|
|
| |
./rebuild calls ./update, but ./update alone also works.
|
|
|
|
| |
closes #49
|
|
|
|
| |
in case someone wants to add --enable-libass to ffmpeg_options
|
| |
|
|
|
|
|
|
| |
Especially with FFmpeg, users get into trouble with FFmpeg's broken
build system, which might error on incremental builds for no good
reason.
|
|
|
|
|
|
|
|
|
|
|
| |
This remembers the selection, and users are not tricked into
accidentally switching back to the release all the time.
Don't do this for libass, we always use master. (No reason to use a
usually buggy and outdated release.)
We don't do it for fribidi either, because fribidi is just in a
permanent state of bitrotting and brokenness.
|
| |
|
| |
|
|
|
|
|
|
|
| |
The tricky part is enabling PIC for all libraries if required.
We don't always enable PIC, because I'm unsure about its performance or
binary size impact. So play it safe.
|
|
|
|
|
|
|
|
|
|
|
|
| |
master so that
1:0.3.8
and with --master
2:2014.04.19.0879db9
This ensures that --master is considered "newer"
|
|
|
|
| |
Also, print the configure args, like ffmpeg-config does.
|
|
|
|
| |
Was untested, is still untested.
|
|
|
|
|
|
|
|
| |
People edit this -> ./update stops working, unless the changes are
committed, which is not very obvious. They should edit ffmpeg_options
instead. There's a big section in the README about this.
Also, make mpv-config read mpv_config.
|
| |
|
| |
|
|
|
|
|
| |
and drop version control on debian/changelog, which gets modified by
scripts/debian-update-version
|
|
|
|
|
|
|
|
| |
Fribidi uses glib incorrectly, and apparently raises a compilation error
with newer glib versions. Since glib is not really needed, just disable
it.
Untested, but a user reported adding --without-glib works fine.
|
|
|
|
|
|
|
| |
dpkg-buildpackage reads the changelog before ever calling
debian/rules, so its not a good idea to change it from there. Move
this to a separate script called from ./update which does not depend
on any debian-specific commands.
|
|
|
|
| |
ffmpeg_options file and arguments to the scripts/ffmpeg-config script
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* build fribidi for the debian package
* add dependencies to debian package taking cues from the official debian version
enable everything except:
+ libsdl2 (not available in wheezy or precise)
+ libmpeg123 (build error on precise due to old version)
+ caca, radio interface, openal output, portaudio output,
rsound/libroar/sndio input/output, sdl1, joystick, videoio.h/libpt
* additional ffmpeg features (and dependencies) are still to be handled
manually by the builder using the ffmpeg_options file as described
in README.rst
* adjust debian/changelog so building works on both debian and ubuntu
(tested on saucy,precise,wheezy,sid amd64)
* tweak debian parts of README.rst
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For override_dh_auto_install, just tell waf to install the files under debian/mpv.
The main problem was that the script names clean,build,install in the
root directory collided with makefile targets in debian/rules which lead
make to do nothing since they appeared already up-to-date. .PHONY wasn't
enough since the targets are implicit via the % operator. I had to
explicitly declare the problematic targets AND list them as .PHONY
|
|/ |
|
|
|
|
| |
This works now that the build scripts are not Makefiles anymore.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is a temporary step and currently breaks everything.
The next commit will add regular git checkouts to the update script.
Conflicts:
ffmpeg
mpv
|
| |
|
|
|
|
|
|
|
| |
It completely breaks parallel builds.
I couldn't find out how to get "make" not to build fribidi with parallel
build enabled.
|
|
|
|
|
| |
This read options from a file named ffmpeg_options and passes them to
ffmpeg's configure.
|
|
|
|
|
|
|
| |
libass/configure sets FRIBIDI_CFLAGS to
"-I$(pwd)/build_libs/include/fribidi" instead of
"-I$(pwd)/build_libs/include". As a workaround override FRIBIDI_CFLAGS
in scripts/libass-config.
|
| |
|
|
|
|
|
|
| |
This removes the needlessly enabled --enable-nonfree flag, and also
adds commented out lines to add libx264, libmp3lame and libfdk_aac
support to the ffmpeg used for building mpv.
|
| |
|
|
|
|
|
| |
Also add --disable-doc to the ffmpeg options. They're useless and make
the local installation slightly slower.
|
|
|
|
| |
Merges pull request #1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Major user-visible changes:
- OSD overhaul: remove some of the old OSD/sub options, which did not or
barely worked, and add new options that work properly. The OSD font is
now sl |