Closed Erisaren closed 5 years ago
sudo ./release.sh
with no results.
And without sudo
? You must not be root to build.
Thank you for your reply.
I tried without sudo
but it still fails. I tried ./release.sh
but I get permission denied
> erisa@Kazuki:~/scrcpy$ ./release.sh
> rm: cannot remove 'build_test/.ninja_log': Permission denied
> rm: cannot remove 'build_test/build.ninja': Permission denied
> rm: cannot remove 'build_test/compile_commands.json': Permission denied
> rm: cannot remove 'build_test/meson-logs/testlog.txt': Permission denied
> rm: cannot remove 'build_test/meson-logs/meson-log.txt': Permission denied
> rm: cannot remove 'build_test/meson-logs/testlog.json': Permission denied
> rm: cannot remove 'build_test/server': Permission denied
> rm: cannot remove 'build_test/meson-private/sanitycheckc.exe': Permission denied
> rm: cannot remove 'build_test/meson-private/sanitycheckc.c': Permission denied
> rm: cannot remove 'build_test/meson-private/build.dat': Permission denied
> rm: cannot remove 'build_test/meson-private/meson_test_setup.dat': Permission denied
> rm: cannot remove 'build_test/meson-private/meson_benchmark_setup.dat': Permission denied
> rm: cannot remove 'build_test/meson-private/coredata.dat': Permission denied
> rm: cannot remove 'build_test/meson-private/install.dat': Permission denied
> rm: cannot remove 'build_test/meson-private/cleantrees.dat': Permission denied
> rm: cannot remove 'build_test/app/test_cbuf@exe/tests_test_cbuf.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_sys_unix_command.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_fps_counter.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_stream.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_command.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_recorder.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_decoder.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_server.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_tiny_xpm.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_device_msg.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_net.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_receiver.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_controller.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_video_buffer.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_convert.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_scrcpy.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_input_manager.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_main.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_screen.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_control_msg.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_str_util.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_device.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_sys_unix_net.c.o': Permission denied
> rm: cannot remove 'build_test/app/scrcpy@exe/src_file_handler.c.o': Permission denied
> rm: cannot remove 'build_test/app/test_queue': Permission denied
> rm: cannot remove 'build_test/app/scrcpy': Permission denied
> rm: cannot remove 'build_test/app/test_device_event_deserialize@exe/src_device_msg.c.o': Permission denied
> rm: cannot remove 'build_test/app/test_device_event_deserialize@exe/tests_test_device_msg_deserialize.c.o': Permission denied
> rm: cannot remove 'build_test/app/test_strutil': Permission denied
> rm: cannot remove 'build_test/app/test_queue@exe/tests_test_queue.c.o': Permission denied
> rm: cannot remove 'build_test/app/test_control_event_serialize': Permission denied
> rm: cannot remove 'build_test/app/config.h': Permission denied
> rm: cannot remove 'build_test/app/test_strutil@exe/tests_test_strutil.c.o': Permission denied
> rm: cannot remove 'build_test/app/test_strutil@exe/src_str_util.c.o': Permission denied
> rm: cannot remove 'build_test/app/test_cbuf': Permission denied
> rm: cannot remove 'build_test/app/test_device_event_deserialize': Permission denied
> rm: cannot remove 'build_test/app/test_control_event_serialize@exe/tests_test_control_msg_serialize.c.o': Permission denied
> rm: cannot remove 'build_test/app/test_control_event_serialize@exe/src_control_msg.c.o': Permission denied
> rm: cannot remove 'build_test/app/test_control_event_serialize@exe/src_str_util.c.o': Permission denied
With makefile for win64
> erisa@Kazuki:~/scrcpy$ make -f Makefile.CrossWindows build-win64
> make -C prebuilt-deps prepare-win64
> make[1]: Entering directory '/home/erisa/scrcpy/prebuilt-deps'
> SDL2-2.0.10: found
> ffmpeg-4.1.4-win64-shared: found
> ffmpeg-4.1.4-win64-dev: found
> platform-tools: found
> make[1]: Leaving directory '/home/erisa/scrcpy/prebuilt-deps'
> [ -d "build-win64" ] || ( mkdir "build-win64" && \
> meson "build-win64" \
> --cross-file cross_win64.txt \
> --buildtype release --strip -Db_lto=true \
> -Dcrossbuild_windows=true \
> -Dcompile_server=false \
> -Dportable=true )
> ninja -C "build-win64"
> ninja: Entering directory `build-win64'
> ninja: error: loading 'build.ninja': No such file or directory
> Makefile.CrossWindows:78: recipe for target 'build-win64' failed
> make: *** [build-win64] Error 1
With makefile for win32
> erisa@Kazuki:~/scrcpy$ make -f Makefile.CrossWindows
> ./gradlew clean
>
> FAILURE: Build failed with an exception.
>
> * What went wrong:
> Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
> > Could not create service of type FileHasher using BuildSessionScopeServices.createFileSnapshotter().
>
> * Try:
> Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
>
> * Get more help at https://help.gradle.org
>
> BUILD FAILED in 861ms
> Makefile.CrossWindows:40: recipe for target 'clean' failed
> make: *** [clean] Error 1
The "permission denied" is because you first call it with sudo
. Remove all your build folders with sudo
(sudo rm -rf build_test
) then release without sudo
.
I deleted the directories and tried release without sudo
.
> erisa@Kazuki:~/scrcpy$ ./release.sh
> The Meson build system
> Version: 0.45.1
> Source dir: /home/erisa/scrcpy
> Build dir: /home/erisa/scrcpy/build_test
> Build type: native build
> Project name: scrcpy
> Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
> Build machine cpu family: x86_64
> Build machine cpu: x86_64
> Found pkg-config: /usr/bin/pkg-config (0.29.1)
> Native dependency libavformat found: YES 57.83.100
> Native dependency libavcodec found: YES 57.107.100
> Native dependency libavutil found: YES 55.78.100
> Native dependency sdl2 found: YES 2.0.10
> Configuring config.h using configuration
> Program ./scripts/build-wrapper.sh found: YES (/home/erisa/scrcpy/server/./scripts/build-wrapper.sh)
> server/meson.build:5: WARNING: Passed invalid keyword argument "console".
> WARNING: This will become a hard error in the future.
> WARNING: Unknown keyword arguments in target scrcpy-server: console
> Build targets in project: 8
> Found ninja-1.8.2 at /usr/bin/ninja
> ninja: Entering directory `build_test'
> [39/40] Generating scrcpy-server with a custom command.
> FAILED: server/scrcpy-server.jar
> /home/erisa/scrcpy/server/./scripts/build-wrapper.sh /home/erisa/scrcpy/server server/scrcpy-server.jar debug
>
> FAILURE: Build failed with an exception.
>
> * What went wrong:
> Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
> > Could not create service of type FileHasher using BuildSessionScopeServices.createFileSnapshotter().
>
> * Try:
> Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
>
> * Get more help at https://help.gradle.org
>
> BUILD FAILED in 853ms
> ninja: build stopped: subcommand failed.
Ok, this is a gradle issue now. Try switching to Java 8.
https://stackoverflow.com/a/53272420/1987178
Please copy-paste the text instead of screenshot, so that errors can be indexed by search engines.
I edited the comments.
I think I fixed the issue with gradle. There was a .gradle directory created as root and it was set on read only. I deleted the directory and launched ./release.sh
so it built a new directory. I also downgraded openjdk from 11 to 8.
I still get the same issue about SDL2.
erisa@Kazuki:~/scrcpy$ ./release.sh
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build_test
Build type: native build
Project name: scrcpy
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Native dependency libavformat found: YES 57.83.100
Native dependency libavcodec found: YES 57.107.100
Native dependency libavutil found: YES 55.78.100
Native dependency sdl2 found: YES 2.0.10
Configuring config.h using configuration
Program ./scripts/build-wrapper.sh found: YES (/home/erisa/scrcpy/server/./scripts/build-wrapper.sh)
server/meson.build:5: WARNING: Passed invalid keyword argument "console".
WARNING: This will become a hard error in the future.
WARNING: Unknown keyword arguments in target scrcpy-server: console
Build targets in project: 8
Found ninja-1.8.2 at /usr/bin/ninja
ninja: Entering directory `build_test'
[39/40] Generating scrcpy-server with a custom command.
> Task :server:preBuild UP-TO-DATE
> Task :server:preDebugBuild
> Task :server:compileDebugAidl
> Task :server:compileDebugRenderscript NO-SOURCE
> Task :server:checkDebugManifest
> Task :server:generateDebugBuildConfig
> Task :server:prepareLintJar UP-TO-DATE
> Task :server:generateDebugSources
> Task :server:javaPreCompileDebug
> Task :server:mainApkListPersistenceDebug
> Task :server:generateDebugResValues
> Task :server:generateDebugResources
> Task :server:mergeDebugResources
> Task :server:createDebugCompatibleScreenManifests
> Task :server:processDebugManifest
> Task :server:processDebugResources
> Task :server:compileDebugJavaWithJavac
> Task :server:compileDebugSources
> Task :server:mergeDebugShaders
> Task :server:compileDebugShaders
> Task :server:generateDebugAssets
> Task :server:mergeDebugAssets
> Task :server:checkDebugDuplicateClasses
> Task :server:mergeExtDexDebug
> Task :server:mergeLibDexDebug
> Task :server:transformClassesWithDexBuilderForDebug
> Task :server:mergeProjectDexDebug
> Task :server:validateSigningDebug
> Task :server:signingConfigWriterDebug
> Task :server:mergeDebugJniLibFolders
> Task :server:transformNativeLibsWithMergeJniLibsForDebug
> Task :server:transformNativeLibsWithStripDebugSymbolForDebug
> Task :server:processDebugJavaRes NO-SOURCE
> Task :server:transformResourcesWithMergeJavaResForDebug
> Task :server:packageDebug
> Task :server:assembleDebug
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 3s
28 actionable tasks: 27 executed, 1 up-to-date
[39/40] Running all tests.
1/5 test_cbuf OK 0.08 s
2/5 test_control_event_serialize OK 0.09 s
3/5 test_device_event_deserialize OK 0.10 s
4/5 test_queue OK 0.07 s
5/5 test_strutil OK 0.02 s
OK: 5
FAIL: 0
SKIP: 0
TIMEOUT: 0
Full log written to /home/erisa/scrcpy/build_test/meson-logs/testlog.txt
> Task :server:lint
Ran lint on variant release: 0 issues found
Ran lint on variant debug: 0 issues found
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 8s
33 actionable tasks: 8 executed, 25 up-to-date
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build_release
Build type: native build
Project name: scrcpy
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Native dependency libavformat found: YES 57.83.100
Native dependency libavcodec found: YES 57.107.100
Native dependency libavutil found: YES 55.78.100
Native dependency sdl2 found: YES 2.0.10
Configuring config.h using configuration
Program ./scripts/build-wrapper.sh found: YES (/home/erisa/scrcpy/server/./scripts/build-wrapper.sh)
server/meson.build:5: WARNING: Passed invalid keyword argument "console".
WARNING: This will become a hard error in the future.
WARNING: Unknown keyword arguments in target scrcpy-server: console
Build targets in project: 8
Found ninja-1.8.2 at /usr/bin/ninja
[39/39] Generating scrcpy-server with a custom command.
> Task :server:preBuild UP-TO-DATE
> Task :server:preReleaseBuild UP-TO-DATE
> Task :server:compileReleaseAidl UP-TO-DATE
> Task :server:compileReleaseRenderscript NO-SOURCE
> Task :server:checkReleaseManifest UP-TO-DATE
> Task :server:generateReleaseBuildConfig UP-TO-DATE
> Task :server:prepareLintJar UP-TO-DATE
> Task :server:generateReleaseSources UP-TO-DATE
> Task :server:javaPreCompileRelease UP-TO-DATE
> Task :server:mainApkListPersistenceRelease UP-TO-DATE
> Task :server:generateReleaseResValues UP-TO-DATE
> Task :server:generateReleaseResources UP-TO-DATE
> Task :server:mergeReleaseResources UP-TO-DATE
> Task :server:createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :server:processReleaseManifest UP-TO-DATE
> Task :server:processReleaseResources UP-TO-DATE
> Task :server:compileReleaseJavaWithJavac UP-TO-DATE
> Task :server:compileReleaseSources UP-TO-DATE
> Task :server:lintVitalRelease
> Task :server:checkReleaseDuplicateClasses UP-TO-DATE
> Task :server:mergeExtDexRelease UP-TO-DATE
> Task :server:transformClassesWithDexBuilderForRelease UP-TO-DATE
> Task :server:mergeDexRelease UP-TO-DATE
> Task :server:mergeReleaseShaders UP-TO-DATE
> Task :server:compileReleaseShaders UP-TO-DATE
> Task :server:generateReleaseAssets UP-TO-DATE
> Task :server:mergeReleaseAssets UP-TO-DATE
> Task :server:signingConfigWriterRelease UP-TO-DATE
> Task :server:mergeReleaseJniLibFolders UP-TO-DATE
> Task :server:transformNativeLibsWithMergeJniLibsForRelease UP-TO-DATE
> Task :server:transformNativeLibsWithStripDebugSymbolForRelease UP-TO-DATE
> Task :server:processReleaseJavaRes NO-SOURCE
> Task :server:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
> Task :server:packageRelease UP-TO-DATE
> Task :server:assembleRelease
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 2s
27 actionable tasks: 1 executed, 26 up-to-date
/home/erisa/scrcpy
./gradlew clean
BUILD SUCCESSFUL in 878ms
2 actionable tasks: 2 executed
rm -rf "build-server" "build-win32" "build-win64" \
"build-win32-noconsole" "build-win64-noconsole" "dist"
[ -d "build-server" ] || ( mkdir "build-server" && \
meson "build-server" \
--buildtype release -Dcompile_app=false )
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build-server
Build type: native build
Project name: scrcpy
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Program ./scripts/build-wrapper.sh found: YES (/home/erisa/scrcpy/server/./scripts/build-wrapper.sh)
server/meson.build:5: WARNING: Passed invalid keyword argument "console".
WARNING: This will become a hard error in the future.
WARNING: Unknown keyword arguments in target scrcpy-server: console
Build targets in project: 2
Found ninja-1.8.2 at /usr/bin/ninja
ninja -C "build-server"
ninja: Entering directory `build-server'
[1/1] Generating scrcpy-server with a custom command.
> Task :server:preBuild UP-TO-DATE
> Task :server:preReleaseBuild
> Task :server:compileReleaseAidl
> Task :server:compileReleaseRenderscript NO-SOURCE
> Task :server:checkReleaseManifest
> Task :server:generateReleaseBuildConfig
> Task :server:prepareLintJar UP-TO-DATE
> Task :server:generateReleaseSources
> Task :server:javaPreCompileRelease
> Task :server:mainApkListPersistenceRelease
> Task :server:generateReleaseResValues
> Task :server:generateReleaseResources
> Task :server:mergeReleaseResources
> Task :server:createReleaseCompatibleScreenManifests
> Task :server:processReleaseManifest
> Task :server:processReleaseResources
> Task :server:compileReleaseJavaWithJavac
> Task :server:compileReleaseSources
> Task :server:lintVitalRelease
> Task :server:checkReleaseDuplicateClasses
> Task :server:mergeExtDexRelease
> Task :server:transformClassesWithDexBuilderForRelease
> Task :server:mergeDexRelease
> Task :server:mergeReleaseShaders
> Task :server:compileReleaseShaders
> Task :server:generateReleaseAssets
> Task :server:mergeReleaseAssets
> Task :server:signingConfigWriterRelease
> Task :server:mergeReleaseJniLibFolders
> Task :server:transformNativeLibsWithMergeJniLibsForRelease
> Task :server:transformNativeLibsWithStripDebugSymbolForRelease
> Task :server:processReleaseJavaRes NO-SOURCE
> Task :server:transformResourcesWithMergeJavaResForRelease
> Task :server:packageRelease
> Task :server:assembleRelease
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 4s
27 actionable tasks: 26 executed, 1 up-to-date
make -C prebuilt-deps prepare-win32
make[1]: Entering directory '/home/erisa/scrcpy/prebuilt-deps'
SDL2-2.0.10: found
ffmpeg-4.1.4-win32-shared: found
ffmpeg-4.1.4-win32-dev: found
platform-tools: found
make[1]: Leaving directory '/home/erisa/scrcpy/prebuilt-deps'
[ -d "build-win32" ] || ( mkdir "build-win32" && \
meson "build-win32" \
--cross-file cross_win32.txt \
--buildtype release --strip -Db_lto=true \
-Dcrossbuild_windows=true \
-Dcompile_server=false \
-Dportable=true )
The Meson build system
Version: 0.45.1
Source dir: /home/erisa/scrcpy
Build dir: /home/erisa/scrcpy/build-win32
Build type: cross build
Project name: scrcpy
Native C compiler: cc (gcc 7.4.0 "cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0")
Cross C compiler: /usr/bin/i686-w64-mingw32-gcc (gcc 7.3.0)
Host machine cpu family: x86
Host machine cpu: i686
Target machine cpu family: x86
Target machine cpu: i686
Build machine cpu family: x86_64
Build machine cpu: x86_64
app/meson.build:45:4: ERROR: C library 'SDL2' not found
A full log can be found at /home/erisa/scrcpy/build-win32/meson-logs/meson-log.txt
Makefile.CrossWindows:54: recipe for target 'build-win32' failed
make: *** [build-win32] Error 1
sha256sum prebuilt-deps/SDL2-devel-2.0.10-mingw.tar.gz
find prebuilt-deps/SDL2-2.0.10/
?
(use ``` for code blocks)
I deleted the sdl2 dev zip file at first because there was a checksum mismatch and it was a zero byte file, then I added the sdl2 file I downloaded from libsdl website and well, it seems since it was not the dev version, it caused some issues, then the gradle issue and running with sudo worsened it.
I deleted the sdl2 folder and upon launching ./release.sh
it downloaded the sdl2 dev zip file again and the checksum matched, finally.
Sorry for all the bother and thank you for your patience.
No problem, building on Windows is quite a mess, and the scripts I wrote are a bit hacky, so if everything is ok they work, but otherwise everything may happen :)
Greetings, I have an issue while trying to cross compile for windows.
I used
sudo make -f Makefile.CrossWindows build-win64
andsudo ./release.sh
with no results. I always getapp/meson.build:45:4: ERROR: C library 'SDL2' not found
when I try to compile andI downloaded SDL2-2.0.10 and I unzipped it on prebuilt-deps folder because it was failing to find it.
This is the meson log: