[Cin] Compiling Cingg on termux (Linux userspace for Android devices)

Andrew Randrianasulu randrianasulu at gmail.com
Sat May 15 20:40:10 CEST 2021


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 <randrianasulu at gmail.com>
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 <randrianasulu at gmail.com>
> 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
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20210515/cbc75015/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-ifdef-for-DV.patch
Type: text/x-diff
Size: 1407 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20210515/cbc75015/attachment-0006.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-constify-fileffmpeg.C.patch
Type: text/x-diff
Size: 2820 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20210515/cbc75015/attachment-0007.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-Add-libzmpeg-ifdef-in-fileac3-move-fireware-objects-.patch
Type: text/x-diff
Size: 2971 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20210515/cbc75015/attachment-0008.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-TERMUX-ifdefs-in-guicast.patch
Type: text/x-diff
Size: 6873 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20210515/cbc75015/attachment-0009.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-libzmpeg-TERMUX-ifdefs.patch
Type: text/x-diff
Size: 2745 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20210515/cbc75015/attachment-0010.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-more-ifdefs-for-file.C-ac3-demand-libzmpeg.patch
Type: text/x-diff
Size: 1239 bytes
Desc: not available
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20210515/cbc75015/attachment-0011.bin>


More information about the Cin mailing list