Compiling Cingg on termux (Linux userspace for Android devices)
Hello all! So, because I only have this tablet: $ termux-info Packages CPU architecture: arm Subscribed repositories: # sources.list deb https://ipfs.io/ipns/ k51qzi5uqu5dg9vawh923wejqffxiu9bhqlze5f508msk0h7ylpac27fdgaskx stable main # science-repo (sources.list.d/science.list) deb https://grimler.se/science-packages-24 science stable # game-repo (sources.list.d/game.list) deb https://grimler.se/game- packages-24 games stable # x11-repo (sources.list.d/x11.list) deb https://termux.com/x11- packages-bin x11 main Updatable packages: All packages up to date Android version: 10 Kernel build information: Linux localhost 4.14.141+ #1 SMP PREEMPT Mon Mar 29 18:09:45 CST 2021 armv8l Android Device manufacturer: HUAWEI Device model: KOB2-L09 I tried to do my best and compile Cingg on *that* Of course my attempt failed So far, but at least buildsystem unpack sources correctly and start to build them. I installed termux from so-called AppGallery (but termux actually exist for F-droid, libre/oss repo independent from Google play), and updated it, after installing few utilites and editing source list (it uses apt, like debian, while you can call it as 'pkg search blah, pkg install meh') because since mid-2020 they changed their way Of hosting binaries More about termux : https://github.com/termux/termux-app Works on Android 7+, provides X via Xsdl or vnc Does not require root priviledges on device In theory you can try to install more compatible arm distro but this Will eat more space So I tried Hard way! Packages with development files have '-static' added to their name. So, I tried to call configure in Cingg source tree with suitable argument. generated by GNU Autoconf 2.71. Invocation command line was $ ./configure --with-single-user --with-thirdparty --enable-static-build --without-vaapi --without-vdpau --without-shuttle_usb --without-libzmpeg --without-lv2 --with-clang device uses clang-12 currently (!) I tried to update configure.ac based on result of 'autoscan' invokation, it makes configure phase longer but more verbose. But main show breaker was difference between /bin/sh and bin/bash (with long termux path) Default was sh and it was barking at += statements in configure.ac like those CFG_CFLAGS+=" -pthread -Wall" # misguided pedantic warnings # this is extra work, not a gain... CFG_CFLAGS+=" -Wno-unknown-warning-option" CFG_CFLAGS+=" -Wno-attributes" CFG_CFLAGS+=" -Wno-unused-result" CFG_CFLAGS+=" -Wno-stringop-overflow" CFG_CFLAGS+=" -Wno-format-truncation" CFG_CFLAGS+=" -Wno-format-overflow" CFG_CFLAGS+=" -Wno-parentheses" CFG_CFLAGS+=" -Wno-stringop-truncation" CFG_CFLAGS+=" -D__STDC_CONSTANT_MACROS" CFG_CFLAGS+=" -D__STDC_LIMIT_MACROS" And as result configure was half-broken, failed to make thirdparty.. :/ But by changing configure's first line manually to #! /data/data/com.termux/files/usr/bin/bash I overcome this error! Of course with less than 700 mb free out of 16 gb flash 'disk' (I have few huge navigator apps and Android was weighting 9 gb from very start!) build in thirdparty failed, and guicast/cinelerra dirs had their own problems related to missing shared mem support (!) and other problems but at least it started See my hacks attached Be aware about limited number of write cycles when it comes to flash memory! Big compiles can degrade internal storage prety quickly, I am afraid
Update: Found few more problems, most dangerously-looking in guicast/ Fixed compilation of guicast/cinelerra object files by adding this patch New_cin_termux-3.diff And placing bthread.h in guicast bthread.h from https://github.com/tux-mind/libbthread/blob/master/bthread.h Config: $ ./configure --without-lv2 --without-vaapi --without-vdpau --without-shuttle_usb --with-clang --enable-static-build --with-single-user --without-shuttle --without-libzmpeg --without-fireware --without-dv --without-dvb --without-openexr Without-fireware somewhat does not work, need to fix global-config by hand After fixing sh to bash in configure I still was forced to fix global-config by adding there +CFLAGS += -DNO_BTRACE +CFLAGS += -DNO_GDB +CFLAGS += -DNO_CTX Probably must be default on non-x86? I still can't build cin more fully due to space constrains. On Thursday, May 6, 2021, Andrew Randrianasulu <[email protected]> wrote:
Hello all! So, because I only have this tablet:
$ termux-info Packages CPU architecture: arm Subscribed repositories: # sources.list deb https://ipfs.io/ipns/k51qzi5uqu5dg9vawh923wejqffxiu9bhqlze5f 508msk0h7ylpac27fdgaskx stable main # science-repo (sources.list.d/science.list) deb https://grimler.se/science-packages-24 science stable # game-repo (sources.list.d/game.list) deb https://grimler.se/game-packag es-24 games stable # x11-repo (sources.list.d/x11.list) deb https://termux.com/x11-package s-bin x11 main Updatable packages: All packages up to date Android version: 10 Kernel build information: Linux localhost 4.14.141+ #1 SMP PREEMPT Mon Mar 29 18:09:45 CST 2021 armv8l Android Device manufacturer: HUAWEI Device model: KOB2-L09
I tried to do my best and compile Cingg on *that* Of course my attempt failed So far, but at least buildsystem unpack sources correctly and start to build them.
I installed termux from so-called AppGallery (but termux actually exist for F-droid, libre/oss repo independent from Google play), and updated it, after installing few utilites and editing source list (it uses apt, like debian, while you can call it as 'pkg search blah, pkg install meh') because since mid-2020 they changed their way Of hosting binaries
More about termux :
https://github.com/termux/termux-app Works on Android 7+, provides X via Xsdl or vnc Does not require root priviledges on device
In theory you can try to install more compatible arm distro but this Will eat more space So I tried Hard way!
Packages with development files have '-static' added to their name. So, I tried to call configure in Cingg source tree with suitable argument.
generated by GNU Autoconf 2.71. Invocation command line was
$ ./configure --with-single-user --with-thirdparty --enable-static-build --without-vaapi --without-vdpau --without-shuttle_usb --without-libzmpeg --without-lv2 --with-clang
device uses clang-12 currently (!)
I tried to update configure.ac based on result of 'autoscan' invokation, it makes configure phase longer but more verbose.
But main show breaker was difference between /bin/sh and bin/bash (with long termux path) Default was sh and it was barking at += statements in configure.ac like those
CFG_CFLAGS+=" -pthread -Wall" # misguided pedantic warnings # this is extra work, not a gain... CFG_CFLAGS+=" -Wno-unknown-warning-option" CFG_CFLAGS+=" -Wno-attributes" CFG_CFLAGS+=" -Wno-unused-result" CFG_CFLAGS+=" -Wno-stringop-overflow" CFG_CFLAGS+=" -Wno-format-truncation" CFG_CFLAGS+=" -Wno-format-overflow" CFG_CFLAGS+=" -Wno-parentheses" CFG_CFLAGS+=" -Wno-stringop-truncation" CFG_CFLAGS+=" -D__STDC_CONSTANT_MACROS" CFG_CFLAGS+=" -D__STDC_LIMIT_MACROS"
And as result configure was half-broken, failed to make thirdparty.. :/
But by changing configure's first line manually to
#! /data/data/com.termux/files/usr/bin/bash
I overcome this error!
Of course with less than 700 mb free out of 16 gb flash 'disk' (I have few huge navigator apps and Android was weighting 9 gb from very start!) build in thirdparty failed, and guicast/cinelerra dirs had their own problems related to missing shared mem support (!) and other problems but at least it started
See my hacks attached
Be aware about limited number of write cycles when it comes to flash memory! Big compiles can degrade internal storage prety quickly, I am afraid
tried to make more real patches: $ git format-patch -o randrik/ e04ca4a9e14 randrik/0001-constify-fileffmpeg.C.patch randrik/0002-ifdef-for-DV.patch randrik/0003-TERMUX-ifdefs-in-guicast.patch randrik/0004-libzmpeg-TERMUX-ifdefs.patch randrik/0005-Add-libzmpeg-ifdef-in-fileac3-move-fireware-objects-.patch randrik/0006-more-ifdefs-for-file.C-ac3-demand-libzmpeg.patch note patch0001 re-enables leaking ff->video_probe(), so do not apply as-is.... 0002 should be safe for apply 0003/0004 a bit more involved and adds header for termux compilation 0005/0006 should be safe to apply together On Friday, May 7, 2021, Andrew Randrianasulu <[email protected]> wrote:
Update:
Found few more problems, most dangerously-looking in guicast/
Fixed compilation of guicast/cinelerra object files by adding this patch
New_cin_termux-3.diff
And placing bthread.h in guicast bthread.h from
https://github.com/tux-mind/libbthread/blob/master/bthread.h
Config:
$ ./configure --without-lv2 --without-vaapi --without-vdpau --without-shuttle_usb --with-clang --enable-static-build --with-single-user --without-shuttle --without-libzmpeg --without-fireware --without-dv --without-dvb --without-openexr
Without-fireware somewhat does not work, need to fix global-config by hand
After fixing sh to bash in configure I still was forced to fix global-config by adding there
+CFLAGS += -DNO_BTRACE +CFLAGS += -DNO_GDB +CFLAGS += -DNO_CTX
Probably must be default on non-x86?
I still can't build cin more fully due to space constrains.
On Thursday, May 6, 2021, Andrew Randrianasulu <[email protected]> wrote:
Hello all! So, because I only have this tablet:
$ termux-info Packages CPU architecture: arm Subscribed repositories: # sources.list deb https://ipfs.io/ipns/k51qzi5uqu5dg9vawh923wejqffxiu9bhqlze5f 508msk0h7ylpac27fdgaskx stable main # science-repo (sources.list.d/science.list) deb https://grimler.se/science-packages-24 science stable # game-repo (sources.list.d/game.list) deb https://grimler.se/game-packages-24 games stable # x11-repo (sources.list.d/x11.list) deb https://termux.com/x11-package s-bin x11 main Updatable packages: All packages up to date Android version: 10 Kernel build information: Linux localhost 4.14.141+ #1 SMP PREEMPT Mon Mar 29 18:09:45 CST 2021 armv8l Android Device manufacturer: HUAWEI Device model: KOB2-L09
I tried to do my best and compile Cingg on *that* Of course my attempt failed So far, but at least buildsystem unpack sources correctly and start to build them.
I installed termux from so-called AppGallery (but termux actually exist for F-droid, libre/oss repo independent from Google play), and updated it, after installing few utilites and editing source list (it uses apt, like debian, while you can call it as 'pkg search blah, pkg install meh') because since mid-2020 they changed their way Of hosting binaries
More about termux :
https://github.com/termux/termux-app Works on Android 7+, provides X via Xsdl or vnc Does not require root priviledges on device
In theory you can try to install more compatible arm distro but this Will eat more space So I tried Hard way!
Packages with development files have '-static' added to their name. So, I tried to call configure in Cingg source tree with suitable argument.
generated by GNU Autoconf 2.71. Invocation command line was
$ ./configure --with-single-user --with-thirdparty --enable-static-build --without-vaapi --without-vdpau --without-shuttle_usb --without-libzmpeg --without-lv2 --with-clang
device uses clang-12 currently (!)
I tried to update configure.ac based on result of 'autoscan' invokation, it makes configure phase longer but more verbose.
But main show breaker was difference between /bin/sh and bin/bash (with long termux path) Default was sh and it was barking at += statements in configure.ac like those
CFG_CFLAGS+=" -pthread -Wall" # misguided pedantic warnings # this is extra work, not a gain... CFG_CFLAGS+=" -Wno-unknown-warning-option" CFG_CFLAGS+=" -Wno-attributes" CFG_CFLAGS+=" -Wno-unused-result" CFG_CFLAGS+=" -Wno-stringop-overflow" CFG_CFLAGS+=" -Wno-format-truncation" CFG_CFLAGS+=" -Wno-format-overflow" CFG_CFLAGS+=" -Wno-parentheses" CFG_CFLAGS+=" -Wno-stringop-truncation" CFG_CFLAGS+=" -D__STDC_CONSTANT_MACROS" CFG_CFLAGS+=" -D__STDC_LIMIT_MACROS"
And as result configure was half-broken, failed to make thirdparty.. :/
But by changing configure's first line manually to
#! /data/data/com.termux/files/usr/bin/bash
I overcome this error!
Of course with less than 700 mb free out of 16 gb flash 'disk' (I have few huge navigator apps and Android was weighting 9 gb from very start!) build in thirdparty failed, and guicast/cinelerra dirs had their own problems related to missing shared mem support (!) and other problems but at least it started
See my hacks attached
Be aware about limited number of write cycles when it comes to flash memory! Big compiles can degrade internal storage prety quickly, I am afraid
participants (1)
-
Andrew Randrianasulu