Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
![]() |
#1 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,468
|
AviSynth+ 3.5: Linux, macOS, and BSD support
AviSynth+ version 3.5 marks the first release with native support for non-Windows OSes.
For the past few weeks, this has been getting tested and polished over at the Github repo. There's a few lingering issues that will have to wait for 3.5.1, but the important part is that the AviSynth+ core can now be built and used natively on Linux, macOS, and BSD. As of right now, the only source filter that can be used is FFMS2's C++ plugin. Tested platforms: Ubuntu 19.10 macOS 15.3 High Sierra and 15.4 Mojave FreeBSD 12.1 There is no currently no automatic detection of autoloaded plugins. You'll need to use AddAutoloadDir (on macOS and BSD, AddAutoloadDir currently throws an exception, but LoadPlugin works correctly). More detailed build instructions can be found in the AviSynth+ documentation. |
![]() |
![]() |
![]() |
#3 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
A big day indeed, thanks very much to all concerned.
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
![]() |
![]() |
![]() |
#4 | Link |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 3,212
|
What an achievement!
For years and years Avisynth has been a Windows only frameserver and people on Linux had to rely on either using AVXSynth (which never got as many things as Avisynth+) or running AVS with wine and just hope. Today is definitely a truly remarkable day which extends the platforms supported and hopefully the Avisynth userbase along with the Doom9 one. Well done indeed, guys! |
![]() |
![]() |
![]() |
#5 | Link | |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
I'm gettin' this on build attempt Cinnamon Mint 19.3 Tricia x64.
Code:
steve@Plex-780:~$ git clone git://github.com/AviSynth/AviSynthPlus.git && \ > cd AviSynthPlus && \ > mkdir avisynth-build && \ > cd avisynth-build && \ > > CC=gcc CXX=g++ LD=gcc cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fpermissive" && \ > ninja && \ > sudo ninja install Cloning into 'AviSynthPlus'... remote: Enumerating objects: 408, done. remote: Counting objects: 100% (408/408), done. remote: Compressing objects: 100% (246/246), done. remote: Total 24585 (delta 254), reused 261 (delta 162), pack-reused 24177 Receiving objects: 100% (24585/24585), 31.05 MiB | 186.00 KiB/s, done. Resolving deltas: 100% (16849/16849), done. -- The C compiler identification is GNU 7.4.0 -- The CXX compiler identification is GNU 7.4.0 -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/g++ -- Check for working CXX compiler: /usr/bin/g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Git: /usr/bin/git (found version "2.17.1") -- Configuring done -- Generating done -- Build files have been written to: /home/steve/AviSynthPlus/avisynth-build [12/80] Building CXX object avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o FAILED: avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o /usr/bin/g++ -DAvsCore_EXPORTS -DBUILDING_AVSCORE -I../avs_core/include -Iavs_core -fpermissive -msse2 \ -Wl,--no-undefined -fPIC -std=c++1z -MD -MT avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o \ -MF avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o.d \ -o avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o -c ../avs_core/core/PluginManager.cpp ../avs_core/core/PluginManager.cpp:8:10: fatal error: filesystem: No such file or directory #include <filesystem> ^~~~~~~~~~~~ compilation terminated. [17/80] Building CXX object avs_core/CMakeFiles/AvsCore.dir/convert/convert.cpp.o ninja: build stopped: subcommand failed. steve@Plex-780:~/AviSynthPlus/avisynth-build$ EDIT: Edited for D9 Screen wrap, wide post. EDIT: I also got this, dont know if matters Code:
steve@Plex-780:~$ sudo apt-get update Ign:1 http://packages.linuxmint.com tricia InRelease Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease Hit:3 http://archive.canonical.com/ubuntu bionic InRelease Hit:4 http://archive.ubuntu.com/ubuntu bionic InRelease Hit:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease Hit:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease Ign:7 http://dl.google.com/linux/earth/deb stable InRelease Hit:8 http://dl.google.com/linux/earth/deb stable Release Get:10 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease [15.4 kB] Hit:11 https://repo.skype.com/deb stable InRelease Hit:12 http://packages.linuxmint.com tricia Release Get:14 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main i386 Packages [21.7 kB] Get:15 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 Packages [23.1 kB] Get:16 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main Translation-en [8,980 B] Fetched 69.2 kB in 24s (2,888 B/s) Reading package lists... Done N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'http://dl.google.com/linux/earth/deb stable InRelease' doesn't support architecture 'i386' ![]() /home/steve/AviSynthPlus/avisynth-build/avs_core/CMakeFiles/AvsCore.dir directory contains Code:
parser [folder] AviHelper.cpp.o BufferPool.cpp.o FilterConstructor.cpp.o MTGuard.cpp.o Prefetcher.cpp.o ThreadPool.cpp.o Quote:
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 3rd March 2020 at 13:02. |
|
![]() |
![]() |
![]() |
#6 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,468
|
The CC/CXX/LD overrides likely need to use 'gcc-9/g++-9' so it sees the correct version of GCC (assuming that you've installed the gcc-9 package). 19.04 and distros based on it are the earliest that can build AviSynth+ with the version of GCC provided in the main repositories, because support for C++17 (to be able to use the filesystem library) was only added in GCC 8.
That warning/error message in sudo apt-get update was from the Google Earth repository, so no, nothing to do with this. |
![]() |
![]() |
![]() |
#7 | Link | ||
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
OK, I've re-installed compiler again,
Code:
steve@Plex-780:~$ sudo apt-get install build-essential cmake git ninja-build checkinstall [sudo] password for steve: Reading package lists... Done Building dependency tree Reading state information... Done build-essential is already the newest version (12.4ubuntu1). checkinstall is already the newest version (1.6.2-4ubuntu2). ninja-build is already the newest version (1.8.2-1). cmake is already the newest version (3.10.2-1ubuntu2.18.04.1). git is already the newest version (1:2.17.1-1ubuntu0.5). 0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade. steve@Plex-780:~$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test You are about to add the following PPA: Toolchain test builds; see https://wiki.ubuntu.com/ToolChain More info: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test Press Enter to continue or Ctrl+C to cancel Executing: /tmp/apt-key-gpghome.7YLFPl4fzu/gpg.1.sh --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys 60C317803A41BA51845E371A1E9377A2BA9EF27F gpg: key 1E9377A2BA9EF27F: "Launchpad Toolchain builds" not changed gpg: Total number processed: 1 gpg: unchanged: 1 steve@Plex-780:~$ sudo apt-get update Hit:1 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease Ign:2 http://mirrors.evowise.com/linuxmint/packages tricia InRelease Hit:3 http://archive.canonical.com/ubuntu bionic InRelease Hit:4 http://mirrors.evowise.com/linuxmint/packages tricia Release Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB] Hit:7 http://archive.ubuntu.com/ubuntu bionic InRelease Ign:8 http://dl.google.com/linux/earth/deb stable InRelease Get:9 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] Hit:10 http://dl.google.com/linux/earth/deb stable Release Hit:11 https://repo.skype.com/deb stable InRelease Get:13 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] Fetched 252 kB in 22s (11.3 kB/s) Reading package lists... Done N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'http://dl.google.com/linux/earth/deb stable InRelease' doesn't support architecture 'i386' steve@Plex-780:~$ steve@Plex-780:~$ sudo apt-get install build-essential cmake git ninja-build gcc-9 Reading package lists... Done Building dependency tree Reading state information... Done build-essential is already the newest version (12.4ubuntu1). ninja-build is already the newest version (1.8.2-1). cmake is already the newest version (3.10.2-1ubuntu2.18.04.1). git is already the newest version (1:2.17.1-1ubuntu0.5). gcc-9 is already the newest version (9.2.1-17ubuntu1~18.04.1). 0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade. steve@Plex-780:~$ Code:
steve@Plex-780:~$ git clone git://github.com/AviSynth/AviSynthPlus.git Cloning into 'AviSynthPlus'... remote: Enumerating objects: 408, done. remote: Counting objects: 100% (408/408), done. remote: Compressing objects: 100% (246/246), done. remote: Total 24585 (delta 254), reused 261 (delta 162), pack-reused 24177 Receiving objects: 100% (24585/24585), 31.05 MiB | 169.00 KiB/s, done. Resolving deltas: 100% (16849/16849), done. Code:
steve@Plex-780:~$ cd AviSynthPlus steve@Plex-780:~/AviSynthPlus$ ls avs_core CMakeLists.txt cmake_uninstall.cmake.in distrib GNUmakefile plugins README.md steve@Plex-780:~/AviSynthPlus$ mkdir avisynth-build steve@Plex-780:~/AviSynthPlus$ cd avisynth-build steve@Plex-780:~/AviSynthPlus/avisynth-build$ steve@Plex-780:~/AviSynthPlus/avisynth-build$ ls steve@Plex-780:~/AviSynthPlus/avisynth-build$ CC=gcc-9 CXX=g++-9 LD=gcc-9 cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fpermissive" && ninja -- The C compiler identification is GNU 9.2.1 CMake Error at /usr/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake:47 (message): Could not find compiler set in environment variable CXX: g++-9. Call Stack (most recent call first): CMakeLists.txt:12 (project) CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred! See also "/home/steve/AviSynthPlus/avisynth-build/CMakeFiles/CMakeOutput.log". steve@Plex-780:~/AviSynthPlus/avisynth-build$ Quote:
EDIT: executing Code:
CC=gcc-9 CXX=g++-9 LD=gcc-9 Code:
printenv EDIT: Quote:
[mc pretty much always been the 1st prog I install on linux, since the 90's when I first used RedHat 6.0, I think. (Cinnamon Mint is the first version Linux that has not left me feeling disappointed, though it could still be improved)],
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 3rd March 2020 at 15:56. |
||
![]() |
![]() |
![]() |
#9 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
Install g++-9
Code:
steve@Plex-780:~$ sudo apt-get install g++-9 [sudo] password for steve: Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libstdc++-9-dev Suggested packages: g++-9-multilib gcc-9-doc libstdc++6-9-dbg libstdc++-9-doc The following NEW packages will be installed g++-9 libstdc++-9-dev 0 to upgrade, 2 to newly install, 0 to remove and 0 not to upgrade. Need to get 10.1 MB of archives. After this operation, 46.5 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libstdc++-9-dev amd64 9.2.1-17ubuntu1~18.04.1 [1,705 kB] Get:2 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 g++-9 amd64 9.2.1-17ubuntu1~18.04.1 [8,366 kB] Fetched 10.1 MB in 5min 36s (29.9 kB/s) Selecting previously unselected package libstdc++-9-dev:amd64. (Reading database ... 451469 files and directories currently installed.) Preparing to unpack .../libstdc++-9-dev_9.2.1-17ubuntu1~18.04.1_amd64.deb ... Unpacking libstdc++-9-dev:amd64 (9.2.1-17ubuntu1~18.04.1) ... Selecting previously unselected package g++-9. Preparing to unpack .../g++-9_9.2.1-17ubuntu1~18.04.1_amd64.deb ... Unpacking g++-9 (9.2.1-17ubuntu1~18.04.1) ... Setting up libstdc++-9-dev:amd64 (9.2.1-17ubuntu1~18.04.1) ... Setting up g++-9 (9.2.1-17ubuntu1~18.04.1) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Code:
steve@Plex-780:~$ dir AviSynthPlus Desktop Documents Downloads Music Pictures Public Templates Videos steve@Plex-780:~$ cd AviSynthPlus steve@Plex-780:~/AviSynthPlus$ ls avisynth-build avs_core CMakeLists.txt cmake_uninstall.cmake.in distrib GNUmakefile plugins README.md steve@Plex-780:~/AviSynthPlus$ mkdir avisynth-build steve@Plex-780:~/AviSynthPlus$ cd avisynth-build steve@Plex-780:~/AviSynthPlus/avisynth-build$ ls steve@Plex-780:~/AviSynthPlus/avisynth-build$ CC=gcc CXX=g++ LD=gcc cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fpermissive" && \ > ninja && \ > sudo ninja install -- The C compiler identification is GNU 7.4.0 -- The CXX compiler identification is GNU 7.4.0 -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/g++ -- Check for working CXX compiler: /usr/bin/g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Git: /usr/bin/git (found version "2.17.1") -- Configuring done -- Generating done -- Build files have been written to: /home/steve/AviSynthPlus/avisynth-build [11/80] Building CXX object avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o FAILED: avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o /usr/bin/g++ -DAvsCore_EXPORTS -DBUILDING_AVSCORE -I../avs_core/include -Iavs_core -fpermissive -msse2 -Wl,--no-undefined -fPIC -std=c++1z -MD -MT avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o -MF avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o.d -o avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o -c ../avs_core/core/PluginManager.cpp ../avs_core/core/PluginManager.cpp:8:10: fatal error: filesystem: No such file or directory #include <filesystem> ^~~~~~~~~~~~ compilation terminated. [16/80] Building CXX object avs_core/CMakeFiles/AvsCore.dir/convert/convert.cpp.o ninja: build stopped: subcommand failed. steve@Plex-780:~/AviSynthPlus/avisynth-build$ EDIT: Actually, we seem to have stopped about the same position as 1st code block in post #5. EDIT: Just checked DistroWatch, Linux Mint 3rd most page hits for last 6 months period, so solution might assist a lot of users. DistroWatch:- https://distrowatch.com/
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 4th March 2020 at 12:59. |
![]() |
![]() |
![]() |
#10 | Link | |
Registered User
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
|
>GNU 7.4.0
Try Quote:
__________________
Me on GitHub PC Specs: Ryzen 5950X, 64 GB RAM, RTX 2070 Notebook: Ryzen 7945HX, 32 GB RAM, RTX 4060, 17'' @ 240Hz @ 1440p |
|
![]() |
![]() |
![]() |
#11 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
Thanks DJATOM,
Results Code:
steve@Plex-780:~/AviSynthPlus/avisynth-build$ CC=gcc-9 CXX=g++-9 LD=gcc-9 cmake ../ -G Ninja -DCMAKE_CXX_FLAGS="-fpermissive" && ninja && sudo ninja install -- Configuring done -- Generating done -- Build files have been written to: /home/steve/AviSynthPlus/avisynth-build [2/66] Building CXX object avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o FAILED: avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o /usr/bin/g++ -DAvsCore_EXPORTS -DBUILDING_AVSCORE -I../avs_core/include -Iavs_core -fpermissive -msse2 -Wl,--no-undefined -fPIC -std=c++1z -MD -MT avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o -MF avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o.d -o avs_core/CMakeFiles/AvsCore.dir/core/PluginManager.cpp.o -c ../avs_core/core/PluginManager.cpp ../avs_core/core/PluginManager.cpp:8:10: fatal error: filesystem: No such file or directory #include <filesystem> ^~~~~~~~~~~~ compilation terminated. [7/66] Building CXX object avs_core/CMakeFiles/AvsCore.dir/core/avisynth.cpp.o ../avs_core/core/avisynth.cpp: In member function ‘virtual char* ScriptEnvironment::VSprintf(const char*, void*)’: ../avs_core/core/avisynth.cpp:3142:50: warning: ISO C++ forbids casting to an array type ‘va_list {aka __va_list_tag [1]}’ [-fpermissive] std::string str = FormatString(fmt, (va_list)val); ^~~ ninja: build stopped: subcommand failed. steve@Plex-780:~/AviSynthPlus/avisynth-build$
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 4th March 2020 at 13:13. |
![]() |
![]() |
![]() |
#13 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,137
|
Well no idea what to do about that.
![]() The GNU 7.4 and 9.0 stuff had me confused from the start. I have to leave home soon, I will probably be on-line, but mobile.
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
![]() |
![]() |
![]() |
#14 | Link |
Registered User
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
|
Probably CMakeCache related stuff, so delete all contents from build folder and configure again.
__________________
Me on GitHub PC Specs: Ryzen 5950X, 64 GB RAM, RTX 2070 Notebook: Ryzen 7945HX, 32 GB RAM, RTX 4060, 17'' @ 240Hz @ 1440p |
![]() |
![]() |
![]() |
#15 | Link | |
Registered User
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 377
|
Tried with my server, looks like my method works (I'm just lazy to search for gcc-9 mirrors for debian buster or build gcc locally, so used gcc-8 on my end)
Quote:
__________________
Me on GitHub PC Specs: Ryzen 5950X, 64 GB RAM, RTX 2070 Notebook: Ryzen 7945HX, 32 GB RAM, RTX 4060, 17'' @ 240Hz @ 1440p |
|
![]() |
![]() |
![]() |
#17 | Link |
Guest
Posts: n/a
|
Many thanks to those involved in making this happen! AviSynth+ installed first time on pop!_os 19.10 (based on Ubuntu 19.10.)
In respect of ffmpeg, which repo is the "Sources" repo mentioned in the instructions? Here's the relevant portion of sources.list. Code:
# deb cdrom:[Pop_OS 19.10 _Eoan Ermine_ - Release amd64 (20191019)]/ eoan main restricted deb-src http://us.archive.ubuntu.com/ubuntu/ eoan main restricted universe multiverse deb http://us.archive.ubuntu.com/ubuntu/ eoan-security main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ eoan-security main restricted universe multiverse deb http://us.archive.ubuntu.com/ubuntu/ eoan-updates main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ eoan-updates main restricted universe multiverse deb http://us.archive.ubuntu.com/ubuntu/ eoan-backports main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ eoan-backports main restricted universe multiverse deb http://us.archive.ubuntu.com/ubuntu/ eoan main restricted universe multiverse deb http://apt.pop-os.org/proprietary eoan main # deb-src http://apt.pop-os.org/proprietary eoan main |
![]() |
![]() |
#20 | Link | ||
Eurobeat Fan
Join Date: Sep 2014
Posts: 108
|
Quote:
Code:
export CC=gcc-9 CXX=g++-9 LD=gcc-9 Quote:
![]() Last edited by magiblot; 4th March 2020 at 16:30. |
||
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|