Mailing List Archive

Problem with 32-bit android version
Hi Mark

Using your new android packaging changes, I renamed the packaging
directory and cloned it fresh from github to make sure nothing was left
over. I also installed the 21.4.7075529 NDK, which the config files call
for. I built libs and apk using the profile you set up for firetv-max

Installing on a firetv-4k works, but running mythfrontend crashes after
the splash screen shows.

This is from logcat

10-08 11:11:29.909 18168 18193 I Qt      : qt started
10-08 11:11:29.924 18168 18193 E AndroidRuntime: FATAL EXCEPTION:
qtMainLoopThread
10-08 11:11:29.924 18168 18193 E AndroidRuntime: Process:
org.mythtv.mythfrontend, PID: 18168
10-08 11:11:29.924 18168 18193 E AndroidRuntime:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
"iconv_open" referenced by
"/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...

The exact same build using the shield profile runs fine on the shield.

Looking at the libs build for libexiv shows this (for both the
firetv-max and shield libs):

-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Success
-- Found Iconv:
/home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a

-- ICONV_INCLUDE_DIR :
-- ICONV_LIBRARIES :
/home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a

If iconv is built into libc, then why is it trying to use dlopen to open
a library for it?

The apk file does include /lib/armeabi-v7a/libiconv.so (And the shield
apk also contains it).

Even if it does not want to use the built-in iconv, it should still find
the libiconv.so.

On my linux system the only iconv.so in lib are in /php/20210902 and in
perl where it is capitalized as Iconv.so. This indicates that maybe it
is built-in these days and we can dispense with building iconv in the
libs. Would this solve the problem?

Also there is in the exiv2 source a cmake file called FindIconv.cmake.
That is what comes up with the message Iconv_IS_BUILT_IN. Perhaps some
change is needed.

Do you have any ideas?

Peter


_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 9 October 2022 2:36:49 am AEDT, Peter Bennett <pb.mythtv@gmail.com> wrote:
>Hi Mark
>
>Using your new android packaging changes, I renamed the packaging directory and cloned it fresh from github to make sure nothing was left over. I also installed the 21.4.7075529 NDK, which the config files call for. I built libs and apk using the profile you set up for firetv-max
>
>Installing on a firetv-4k works, but running mythfrontend crashes after the splash screen shows.
>

I tested on my firetv max and it worked fine. Which is why I pushed.
I also installed 64bit on my s20 which I used via Windows connect and cast and tgat worked but could not update the database which I assumed was a backend schema mismatch but not sure. Or its qt 5.15.6

>This is from logcat
>
>10-08 11:11:29.909 18168 18193 I Qt      : qt started
>10-08 11:11:29.924 18168 18193 E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread
>10-08 11:11:29.924 18168 18193 E AndroidRuntime: Process: org.mythtv.mythfrontend, PID: 18168
>10-08 11:11:29.924 18168 18193 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "iconv_open" referenced by "/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...
>
>The exact same build using the shield profile runs fine on the shield.
>
>Looking at the libs build for libexiv shows this (for both the firetv-max and shield libs):
>
>-- Performing Test Iconv_IS_BUILT_IN
>-- Performing Test Iconv_IS_BUILT_IN - Success
>-- Found Iconv: /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>-- ICONV_INCLUDE_DIR :
>-- ICONV_LIBRARIES : /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>
>If iconv is built into libc, then why is it trying to use dlopen to open a library for it?
>
>The apk file does include /lib/armeabi-v7a/libiconv.so (And the shield apk also contains it).
>
>Even if it does not want to use the built-in iconv, it should still find the libiconv.so.
>
>On my linux system the only iconv.so in lib are in /php/20210902 and in perl where it is capitalized as Iconv.so. This indicates that maybe it is built-in these days and we can dispense with building iconv in the libs. Would this solve the problem?
>
>Also there is in the exiv2 source a cmake file called FindIconv.cmake. That is what comes up with the message Iconv_IS_BUILT_IN. Perhaps some change is needed.
>
>Do you have any ideas?

There may be some leak of the host env into the isolated build env. Perhaps in pkgconfig. May need a pkconfig path erase but I think that is already done.

I think I should add config dump to the console on loading so you can tell in the log file though to make life easier. Config overrides anything in buildrc and setenv anyway.

My 32 bit build log does not show any BUILTIN lines for either libs or myth parts.

Ill have to think about this a bit more.

Mark

_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 10/8/22 13:58, Mark Spieth wrote:
>
> On 9 October 2022 2:36:49 am AEDT, Peter Bennett <pb.mythtv@gmail.com> wrote:
>> Hi Mark
>>
>> Using your new android packaging changes, I renamed the packaging directory and cloned it fresh from github to make sure nothing was left over. I also installed the 21.4.7075529 NDK, which the config files call for. I built libs and apk using the profile you set up for firetv-max
>>
>> Installing on a firetv-4k works, but running mythfrontend crashes after the splash screen shows.
>>
> I tested on my firetv max and it worked fine. Which is why I pushed.
> I also installed 64bit on my s20 which I used via Windows connect and cast and tgat worked but could not update the database which I assumed was a backend schema mismatch but not sure. Or its qt 5.15.6
>
>> This is from logcat
>>
>> 10-08 11:11:29.909 18168 18193 I Qt      : qt started
>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread
>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: Process: org.mythtv.mythfrontend, PID: 18168
>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "iconv_open" referenced by "/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...
>>
>> The exact same build using the shield profile runs fine on the shield.
>>
>> Looking at the libs build for libexiv shows this (for both the firetv-max and shield libs):
>>
>> -- Performing Test Iconv_IS_BUILT_IN
>> -- Performing Test Iconv_IS_BUILT_IN - Success
>> -- Found Iconv: /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>> -- ICONV_INCLUDE_DIR :
>> -- ICONV_LIBRARIES : /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>>
>> If iconv is built into libc, then why is it trying to use dlopen to open a library for it?
>>
>> The apk file does include /lib/armeabi-v7a/libiconv.so (And the shield apk also contains it).
>>
>> Even if it does not want to use the built-in iconv, it should still find the libiconv.so.
>>
>> On my linux system the only iconv.so in lib are in /php/20210902 and in perl where it is capitalized as Iconv.so. This indicates that maybe it is built-in these days and we can dispense with building iconv in the libs. Would this solve the problem?
>>
>> Also there is in the exiv2 source a cmake file called FindIconv.cmake. That is what comes up with the message Iconv_IS_BUILT_IN. Perhaps some change is needed.
>>
>> Do you have any ideas?
> There may be some leak of the host env into the isolated build env. Perhaps in pkgconfig. May need a pkconfig path erase but I think that is already done.
>
> I think I should add config dump to the console on loading so you can tell in the log file though to make life easier. Config overrides anything in buildrc and setenv anyway.
>
> My 32 bit build log does not show any BUILTIN lines for either libs or myth parts.
>
> Ill have to think about this a bit more.
>
> Mark
>
Hi Mark

Thanks. I have uploaded my firetv-max build so you can try it on your
fire stick, to determine if the problem lies in my build or in my fire
stick.

https://dl.orangedox.com/pCBmBm   in "Trial Versions"

Peter


_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 9/10/2022 5:40 am, Peter Bennett wrote:
>
> On 10/8/22 13:58, Mark Spieth wrote:
>>
>> On 9 October 2022 2:36:49 am AEDT, Peter Bennett
>> <pb.mythtv@gmail.com> wrote:
>>> Hi Mark
>>>
>>> Using your new android packaging changes, I renamed the packaging
>>> directory and cloned it fresh from github to make sure nothing was
>>> left over. I also installed the 21.4.7075529 NDK, which the config
>>> files call for. I built libs and apk using the profile you set up
>>> for firetv-max
>>>
>>> Installing on a firetv-4k works, but running mythfrontend crashes
>>> after the splash screen shows.
>>>
>> I tested on my firetv max and it worked fine. Which is why I pushed.
>> I also installed 64bit on my s20 which I used via Windows connect and
>> cast and tgat worked but could not update the database which I
>> assumed was a backend schema mismatch but not sure. Or its qt 5.15.6
>>
>>> This is from logcat
>>>
>>> 10-08 11:11:29.909 18168 18193 I Qt      : qt started
>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: FATAL EXCEPTION:
>>> qtMainLoopThread
>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: Process:
>>> org.mythtv.mythfrontend, PID: 18168
>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime:
>>> java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
>>> "iconv_open" referenced by
>>> "/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...
>>>
>>> The exact same build using the shield profile runs fine on the shield.
>>>
>>> Looking at the libs build for libexiv shows this (for both the
>>> firetv-max and shield libs):
>>>
>>> -- Performing Test Iconv_IS_BUILT_IN
>>> -- Performing Test Iconv_IS_BUILT_IN - Success
>>> -- Found Iconv:
>>> /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>>> -- ICONV_INCLUDE_DIR :
>>> -- ICONV_LIBRARIES :
>>> /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>>>
>>> If iconv is built into libc, then why is it trying to use dlopen to
>>> open a library for it?
>>>
>>> The apk file does include /lib/armeabi-v7a/libiconv.so (And the
>>> shield apk also contains it).
>>>
>>> Even if it does not want to use the built-in iconv, it should still
>>> find the libiconv.so.
>>>
>>> On my linux system the only iconv.so in lib are in /php/20210902 and
>>> in perl where it is capitalized as Iconv.so. This indicates that
>>> maybe it is built-in these days and we can dispense with building
>>> iconv in the libs. Would this solve the problem?
>>>
>>> Also there is in the exiv2 source a cmake file called
>>> FindIconv.cmake. That is what comes up with the message
>>> Iconv_IS_BUILT_IN. Perhaps some change is needed.
>>>
>>> Do you have any ideas?
>> There may be some leak of the host env into the isolated build env.
>> Perhaps in pkgconfig. May need a pkconfig path erase but I think that
>> is already done.
>>
>> I think I should add config dump to the console on loading so you can
>> tell in the log file though to make life easier. Config overrides
>> anything in buildrc and setenv anyway.
>>
>> My 32 bit build log does not show any BUILTIN lines for either libs
>> or myth parts.
>>
>> Ill have to think about this a bit more.
>>
>> Mark
>>
> Hi Mark
>
> Thanks. I have uploaded my firetv-max build so you can try it on your
> fire stick, to determine if the problem lies in my build or in my fire
> stick.
>
> https://dl.orangedox.com/pCBmBm   in "Trial Versions"

I tested the above and it works fine. DB access works too (can save
bookmarks and last played pos).

This surprised me. I expected it to fail. firetv-max must be different
enough from the firetv4k.

It should build the same way as always for you so I dont understand what
is different now.

exiv2 is still the git version as before.

Try this one
https://digivation.com.au/debian/mythfrontend-20221002-arm-v33.0~master.20220521.4e1e81967d-0ubuntu0.apk


Try adding this near the top of makelibs.sh after INSTALLROOT is defined
of course. say line 319 or around there.

export PKG_CONFIG_DIR=
export
PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTINSTALLROOT/lib/pkgconfig
export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT
export PKG_CONFIG_SYSROOT_DIR=

That should eliminate any PKGCONFIG leakage from your env (I hope)

also check your /usr/lib/pkgconfig dir to see if iconv exists there. and
any other place pkgconfig might find things.

HTH

Mark


_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 10/8/22 19:33, Mark Spieth wrote:
> On 9/10/2022 5:40 am, Peter Bennett wrote:
>>
>> On 10/8/22 13:58, Mark Spieth wrote:
>>>
>>> On 9 October 2022 2:36:49 am AEDT, Peter Bennett
>>> <pb.mythtv@gmail.com> wrote:
>>>> Hi Mark
>>>>
>>>> Using your new android packaging changes, I renamed the packaging
>>>> directory and cloned it fresh from github to make sure nothing was
>>>> left over. I also installed the 21.4.7075529 NDK, which the config
>>>> files call for. I built libs and apk using the profile you set up
>>>> for firetv-max
>>>>
>>>> Installing on a firetv-4k works, but running mythfrontend crashes
>>>> after the splash screen shows.
>>>>
>>> I tested on my firetv max and it worked fine. Which is why I pushed.
>>> I also installed 64bit on my s20 which I used via Windows connect
>>> and cast and tgat worked but could not update the database which I
>>> assumed was a backend schema mismatch but not sure. Or its qt 5.15.6
>>>
>>>> This is from logcat
>>>>
>>>> 10-08 11:11:29.909 18168 18193 I Qt      : qt started
>>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: FATAL EXCEPTION:
>>>> qtMainLoopThread
>>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: Process:
>>>> org.mythtv.mythfrontend, PID: 18168
>>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime:
>>>> java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
>>>> "iconv_open" referenced by
>>>> "/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...
>>>>
>>>> The exact same build using the shield profile runs fine on the shield.
>>>>
>>>> Looking at the libs build for libexiv shows this (for both the
>>>> firetv-max and shield libs):
>>>>
>>>> -- Performing Test Iconv_IS_BUILT_IN
>>>> -- Performing Test Iconv_IS_BUILT_IN - Success
>>>> -- Found Iconv:
>>>> /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>>>> -- ICONV_INCLUDE_DIR :
>>>> -- ICONV_LIBRARIES :
>>>> /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>>>>
>>>> If iconv is built into libc, then why is it trying to use dlopen to
>>>> open a library for it?
>>>>
>>>> The apk file does include /lib/armeabi-v7a/libiconv.so (And the
>>>> shield apk also contains it).
>>>>
>>>> Even if it does not want to use the built-in iconv, it should still
>>>> find the libiconv.so.
>>>>
>>>> On my linux system the only iconv.so in lib are in /php/20210902
>>>> and in perl where it is capitalized as Iconv.so. This indicates
>>>> that maybe it is built-in these days and we can dispense with
>>>> building iconv in the libs. Would this solve the problem?
>>>>
>>>> Also there is in the exiv2 source a cmake file called
>>>> FindIconv.cmake. That is what comes up with the message
>>>> Iconv_IS_BUILT_IN. Perhaps some change is needed.
>>>>
>>>> Do you have any ideas?
>>> There may be some leak of the host env into the isolated build env.
>>> Perhaps in pkgconfig. May need a pkconfig path erase but I think
>>> that is already done.
>>>
>>> I think I should add config dump to the console on loading so you
>>> can tell in the log file though to make life easier. Config
>>> overrides anything in buildrc and setenv anyway.
>>>
>>> My 32 bit build log does not show any BUILTIN lines for either libs
>>> or myth parts.
>>>
>>> Ill have to think about this a bit more.
>>>
>>> Mark
>>>
>> Hi Mark
>>
>> Thanks. I have uploaded my firetv-max build so you can try it on your
>> fire stick, to determine if the problem lies in my build or in my
>> fire stick.
>>
>> https://dl.orangedox.com/pCBmBm   in "Trial Versions"
>
> I tested the above and it works fine. DB access works too (can save
> bookmarks and last played pos).
>
> This surprised me. I expected it to fail. firetv-max must be different
> enough from the firetv4k.
>
> It should build the same way as always for you so I dont understand
> what is different now.
>
> exiv2 is still the git version as before.
>
> Try this one
> https://digivation.com.au/debian/mythfrontend-20221002-arm-v33.0~master.20220521.4e1e81967d-0ubuntu0.apk
>
>
> Try adding this near the top of makelibs.sh after INSTALLROOT is
> defined of course. say line 319 or around there.
>
> export PKG_CONFIG_DIR=
> export
> PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTINSTALLROOT/lib/pkgconfig
> export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT
> export PKG_CONFIG_SYSROOT_DIR=
>
> That should eliminate any PKGCONFIG leakage from your env (I hope)
>
> also check your /usr/lib/pkgconfig dir to see if iconv exists there.
> and any other place pkgconfig might find things.
>
> HTH
>
> Mark
>
>
>
I installed your package (after uninstalling mine). I get the same error
when launching mythfrontend

10-08 19:59:39.596  7187  7208 E AndroidRuntime: FATAL EXCEPTION:
qtMainLoopThread
10-08 19:59:39.596  7187  7208 E AndroidRuntime: Process:
org.mythtv.mythfrontend, PID: 7187
10-08 19:59:39.596  7187  7208 E AndroidRuntime:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
"iconv_open" referenced by
"/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...

I also tried it on another fire stick 4k with the same result.

Very strange ...

Peter



_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 9 October 2022 11:10:29 am AEDT, Peter Bennett <pb.mythtv@gmail.com> wrote:
>
>On 10/8/22 19:33, Mark Spieth wrote:
>> On 9/10/2022 5:40 am, Peter Bennett wrote:
>>>
>>> On 10/8/22 13:58, Mark Spieth wrote:
>>>>
>>>> On 9 October 2022 2:36:49 am AEDT, Peter Bennett <pb.mythtv@gmail.com> wrote:
>>>>> Hi Mark
>>>>>
>>>>> Using your new android packaging changes, I renamed the packaging directory and cloned it fresh from github to make sure nothing was left over. I also installed the 21.4.7075529 NDK, which the config files call for. I built libs and apk using the profile you set up for firetv-max
>>>>>
>>>>> Installing on a firetv-4k works, but running mythfrontend crashes after the splash screen shows.
>>>>>
>>>> I tested on my firetv max and it worked fine. Which is why I pushed.
>>>> I also installed 64bit on my s20 which I used via Windows connect and cast and tgat worked but could not update the database which I assumed was a backend schema mismatch but not sure. Or its qt 5.15.6
>>>>
>>>>> This is from logcat
>>>>>
>>>>> 10-08 11:11:29.909 18168 18193 I Qt      : qt started
>>>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread
>>>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: Process: org.mythtv.mythfrontend, PID: 18168
>>>>> 10-08 11:11:29.924 18168 18193 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "iconv_open" referenced by "/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...
>>>>>
>>>>> The exact same build using the shield profile runs fine on the shield.
>>>>>
>>>>> Looking at the libs build for libexiv shows this (for both the firetv-max and shield libs):
>>>>>
>>>>> -- Performing Test Iconv_IS_BUILT_IN
>>>>> -- Performing Test Iconv_IS_BUILT_IN - Success
>>>>> -- Found Iconv: /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>>>>> -- ICONV_INCLUDE_DIR :
>>>>> -- ICONV_LIBRARIES : /home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
>>>>>
>>>>> If iconv is built into libc, then why is it trying to use dlopen to open a library for it?
>>>>>
>>>>> The apk file does include /lib/armeabi-v7a/libiconv.so (And the shield apk also contains it).
>>>>>
>>>>> Even if it does not want to use the built-in iconv, it should still find the libiconv.so.
>>>>>
>>>>> On my linux system the only iconv.so in lib are in /php/20210902 and in perl where it is capitalized as Iconv.so. This indicates that maybe it is built-in these days and we can dispense with building iconv in the libs. Would this solve the problem?
>>>>>
>>>>> Also there is in the exiv2 source a cmake file called FindIconv.cmake. That is what comes up with the message Iconv_IS_BUILT_IN. Perhaps some change is needed.
>>>>>
>>>>> Do you have any ideas?
>>>> There may be some leak of the host env into the isolated build env. Perhaps in pkgconfig. May need a pkconfig path erase but I think that is already done.
>>>>
>>>> I think I should add config dump to the console on loading so you can tell in the log file though to make life easier. Config overrides anything in buildrc and setenv anyway.
>>>>
>>>> My 32 bit build log does not show any BUILTIN lines for either libs or myth parts.
>>>>
>>>> Ill have to think about this a bit more.
>>>>
>>>> Mark
>>>>
>>> Hi Mark
>>>
>>> Thanks. I have uploaded my firetv-max build so you can try it on your fire stick, to determine if the problem lies in my build or in my fire stick.
>>>
>>> https://dl.orangedox.com/pCBmBm   in "Trial Versions"
>>
>> I tested the above and it works fine. DB access works too (can save bookmarks and last played pos).
>>
>> This surprised me. I expected it to fail. firetv-max must be different enough from the firetv4k.
>>
>> It should build the same way as always for you so I dont understand what is different now.
>>
>> exiv2 is still the git version as before.
>>
>> Try this one https://digivation.com.au/debian/mythfrontend-20221002-arm-v33.0~master.20220521.4e1e81967d-0ubuntu0.apk
>>
>>
>> Try adding this near the top of makelibs.sh after INSTALLROOT is defined of course. say line 319 or around there.
>>
>> export PKG_CONFIG_DIR=
>> export PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTINSTALLROOT/lib/pkgconfig
>> export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT
>> export PKG_CONFIG_SYSROOT_DIR=
>>
>> That should eliminate any PKGCONFIG leakage from your env (I hope)
>>
>> also check your /usr/lib/pkgconfig dir to see if iconv exists there. and any other place pkgconfig might find things.
>>
>> HTH
>>
>> Mark
>>
>>
>>
>I installed your package (after uninstalling mine). I get the same error when launching mythfrontend
>
>10-08 19:59:39.596  7187  7208 E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread
>10-08 19:59:39.596  7187  7208 E AndroidRuntime: Process: org.mythtv.mythfrontend, PID: 7187
>10-08 19:59:39.596  7187  7208 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "iconv_open" referenced by "/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...
>
>I also tried it on another fire stick 4k with the same result.
>
>Very strange ...
>
I had to uninstall too. :)

Which ndk, sdk, tools did you use last time.
?
Set up a config with all of those settings.

Yes very strange
_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 10/8/22 22:16, Mark Spieth wrote:
> I had to uninstall too.:)
>
> Which ndk, sdk, tools did you use last time.
> ?
> Set up a config with all of those settings.
>
> Yes very strange
> _______________________________________________

I set up a new config file firetv-4k, as follows

export ANDROID_BUILD_TOOLS_REVISION=29.0.2
export ANDROID_NDK=$ANDROID_SDK_ROOT/ndk/21.0.6113669
export ANDROID_NATIVE_API_LEVEL=21
export ANDROID_NDK_ROOT=$ANDROID_NDK
export TARGET_SDK_VERSION=$ANDROID_NATIVE_API_LEVEL
export ANDROID_API_VERSION=android-$ANDROID_NATIVE_API_LEVEL
export ANDROID_MIN_SDK_VERSION=21
export ARM64=0
export MODE=arm

Doing a make distclean, make libs, make apk gave me an apk that works on
the firetv-4k :) !!!

looking at the libs log, this time it did not find iconv built in. In
fact it failed to find iconv at all.

Performing Test Iconv_IS_BUILT_IN
Performing Test Iconv_IS_BUILT_IN - Failed
Could NOT find Iconv (missing: Iconv_LIBRARY)

It looks like it built exiv2 without iconv support. This is probably not
ideal.

Other things report iconv is missing (e.g. flac)

I don't understand what is going on with iconv.

I suppose I should try again with  ndk 21.0.6113669 and api version 25
to isolate the problem to either ndk or api version.

Peter

_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 11/10/2022 12:51 am, Peter Bennett wrote:
>
> On 10/8/22 22:16, Mark Spieth wrote:
>> I had to uninstall too.:)
>>
>> Which ndk, sdk, tools did you use last time.
>> ?
>> Set up a config with all of those settings.
>>
>> Yes very strange
>> _______________________________________________
>
> I set up a new config file firetv-4k, as follows
>
> export ANDROID_BUILD_TOOLS_REVISION=29.0.2
> export ANDROID_NDK=$ANDROID_SDK_ROOT/ndk/21.0.6113669
> export ANDROID_NATIVE_API_LEVEL=21
> export ANDROID_NDK_ROOT=$ANDROID_NDK
> export TARGET_SDK_VERSION=$ANDROID_NATIVE_API_LEVEL
> export ANDROID_API_VERSION=android-$ANDROID_NATIVE_API_LEVEL
> export ANDROID_MIN_SDK_VERSION=21
> export ARM64=0
> export MODE=arm
>
> Doing a make distclean, make libs, make apk gave me an apk that works
> on the firetv-4k :) !!!
>
> looking at the libs log, this time it did not find iconv built in. In
> fact it failed to find iconv at all.
>
> Performing Test Iconv_IS_BUILT_IN
> Performing Test Iconv_IS_BUILT_IN - Failed
> Could NOT find Iconv (missing: Iconv_LIBRARY)
>
> It looks like it built exiv2 without iconv support. This is probably
> not ideal.
>
> Other things report iconv is missing (e.g. flac)
>
> I don't understand what is going on with iconv.
>
> I suppose I should try again with  ndk 21.0.6113669 and api version 25
> to isolate the problem to either ndk or api version.

Hi Peter

I just had a look at my build and the associated output is


-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Success
-- Found Iconv:
/home/mark/android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/a
rm-linux-androideabi/libc.a
-- ICONV_INCLUDE_DIR :
-- ICONV_LIBRARIES :
/home/mark/android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/
lib/arm-linux-androideabi/libc.a

I still think its got something to do with pkgconfig.

Run this and see if libiconv is  present

(INSTALLROOT=`pwd`/mythinstall; export PKG_CONFIG_DIR=; export
PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTBASE/lib/pkgconfig;
export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT; export
PKG_CONFIG_SYSROOT_DIR=; pkg-config --list-all; )

try this patch

diff --git a/android/makelibs.sh b/android/makelibs.sh
index f00d8bf67e..6da3421158 100755
--- a/android/makelibs.sh
+++ b/android/makelibs.sh
@@ -954,6 +954,10 @@ cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE \
       -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_MAKE_PROGRAM=make \
       -DCMAKE_PREFIX_PATH="$INSTALLROOT" \
+      -DCMAKE_INCLUDE_PATH="$INSTALLROOT/include" \
+      -DCMAKE_LIBRARY_PATH="$INSTALLROOT/lib" \
+      -DIconv_INCLUDE_DIR="$INSTALLROOT/include" \
+      -DIconv_LIBRARY="$INSTALLROOT/lib/libiconv.a" \
       -DBUILD_SHARED_LIBS=ON \
       -DEXIV2_ENABLE_XMP=OFF \
       -DEXIV2_BUILD_SAMPLES=OFF \

This will use the built version.

Mark




_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 10/12/22 03:43, Mark Spieth wrote:
> On 11/10/2022 12:51 am, Peter Bennett wrote:
>>
>> On 10/8/22 22:16, Mark Spieth wrote:
>>> I had to uninstall too.:)
>>>
>>> Which ndk, sdk, tools did you use last time.
>>> ?
>>> Set up a config with all of those settings.
>>>
>>> Yes very strange
>>> _______________________________________________
>>
>> I set up a new config file firetv-4k, as follows
>>
>> export ANDROID_BUILD_TOOLS_REVISION=29.0.2
>> export ANDROID_NDK=$ANDROID_SDK_ROOT/ndk/21.0.6113669
>> export ANDROID_NATIVE_API_LEVEL=21
>> export ANDROID_NDK_ROOT=$ANDROID_NDK
>> export TARGET_SDK_VERSION=$ANDROID_NATIVE_API_LEVEL
>> export ANDROID_API_VERSION=android-$ANDROID_NATIVE_API_LEVEL
>> export ANDROID_MIN_SDK_VERSION=21
>> export ARM64=0
>> export MODE=arm
>>
>> Doing a make distclean, make libs, make apk gave me an apk that works
>> on the firetv-4k :) !!!
>>
>> looking at the libs log, this time it did not find iconv built in. In
>> fact it failed to find iconv at all.
>>
>> Performing Test Iconv_IS_BUILT_IN
>> Performing Test Iconv_IS_BUILT_IN - Failed
>> Could NOT find Iconv (missing: Iconv_LIBRARY)
>>
>> It looks like it built exiv2 without iconv support. This is probably
>> not ideal.
>>
>> Other things report iconv is missing (e.g. flac)
>>
>> I don't understand what is going on with iconv.
>>
>> I suppose I should try again with  ndk 21.0.6113669 and api version
>> 25 to isolate the problem to either ndk or api version.
>
> Hi Peter
>
> I just had a look at my build and the associated output is
>
>
> -- Performing Test Iconv_IS_BUILT_IN
> -- Performing Test Iconv_IS_BUILT_IN - Success
> -- Found Iconv:
> /home/mark/android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/a
> rm-linux-androideabi/libc.a
> -- ICONV_INCLUDE_DIR :
> -- ICONV_LIBRARIES :
> /home/mark/android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/
> lib/arm-linux-androideabi/libc.a
>
> I still think its got something to do with pkgconfig.
>
> Run this and see if libiconv is  present
>
> (INSTALLROOT=`pwd`/mythinstall; export PKG_CONFIG_DIR=; export
> PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTBASE/lib/pkgconfig;
> export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT; export
> PKG_CONFIG_SYSROOT_DIR=; pkg-config --list-all; )
>
> try this patch
>
> diff --git a/android/makelibs.sh b/android/makelibs.sh
> index f00d8bf67e..6da3421158 100755
> --- a/android/makelibs.sh
> +++ b/android/makelibs.sh
> @@ -954,6 +954,10 @@ cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE \
>        -DCMAKE_BUILD_TYPE=Release \
>        -DCMAKE_MAKE_PROGRAM=make \
>        -DCMAKE_PREFIX_PATH="$INSTALLROOT" \
> +      -DCMAKE_INCLUDE_PATH="$INSTALLROOT/include" \
> +      -DCMAKE_LIBRARY_PATH="$INSTALLROOT/lib" \
> +      -DIconv_INCLUDE_DIR="$INSTALLROOT/include" \
> +      -DIconv_LIBRARY="$INSTALLROOT/lib/libiconv.a" \
>        -DBUILD_SHARED_LIBS=ON \
>        -DEXIV2_ENABLE_XMP=OFF \
>        -DEXIV2_BUILD_SAMPLES=OFF \
>
> This will use the built version.
>
> Mark
>
>
With that patch and the config CONFIG=firetv-max, I ran distclean, built
libs and apk

It still fails with a slightly different error, instead of "iconv_open",
it now complains about "__sendto_chk"

10-12 09:43:10.402 15975 15998 I Qt      : qt started
10-12 09:43:10.417 15975 15998 E AndroidRuntime: FATAL EXCEPTION:
qtMainLoopThread
10-12 09:43:10.417 15975 15998 E AndroidRuntime: Process:
org.mythtv.mythfrontend, PID: 15975
10-12 09:43:10.417 15975 15998 E AndroidRuntime:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
"__sendto_chk" referenced by
"/data/app/org.mythtv.mythfrontend-2/lib/arm/libexiv2.14.so"...

Output from your above command, but I think you will see the same on
your system. We already established that fire stick 4k fails with a
build that you did on your system.


(INSTALLROOT=`pwd`/mythinstall; export PKG_CONFIG_DIR=; export
PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTBASE/lib/pkgconfig;
export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT; export
PKG_CONFIG_SYSROOT_DIR=; pkg-config --list-all; )

exiv2      exiv2 - Exif and IPTC metadata library and tools
fftw3f     FFTW - fast Fourier transform library
flac       FLAC - Free Lossless Audio Codec Library
fontconfig Fontconfig - Font configuration and customization library
freetype2  FreeType 2 - A free, high-quality, and portable font engine.
fribidi    GNU FriBidi - Unicode Bidirectional Algorithm Library
icu-i18n   icu-i18n - International Components for Unicode:
Internationalization library
icu-io     icu-io - International Components for Unicode: Stream and I/O
Library
icu-uc     icu-uc - International Components for Unicode: Common and
Data libraries
libass     libass - LibASS is an SSA/ASS subtitles rendering library
libbluray  libbluray - library supporting Blu-ray playback
libcrypto  OpenSSL-libcrypto - OpenSSL cryptography library
libssl     OpenSSL-libssl - Secure Sockets Layer and cryptography libraries
libxml-2.0 libXML - libXML library version2.
libzip     libzip - library for handling zip archives
lzo2       lzo2 - LZO - a real-time data compression library
ogg        ogg - ogg is a library for manipulating ogg bitstreams
openssl    OpenSSL - Secure Sockets Layer and cryptography libraries and
tools
samplerate samplerate - An audio Sample Rate Conversion library
soundtouch SoundTouch - SoundTouch is an open-source audio processing
library for changing the Tempo, Pitch and Playback Rates of audio
streams or files
taglib     TagLib - Audio meta-data library
taglib_c   TagLib C Bindings - Audio meta-data library (C bindings)
vorbis     vorbis - vorbis is the primary Ogg Vorbis library
vorbisenc  vorbisenc - vorbisenc is a library that provides a convenient
API for setting up an encoding environment using libvorbis
vorbisfile vorbisfile - vorbisfile is a library that provides a
convenient high-level API for decoding and basic manipulation of all
Vorbis I audio streams

Peter


_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: Problem with 32-bit android version [ In reply to ]
On 10/12/22 09:53, Peter Bennett wrote:
> With that patch and the config CONFIG=firetv-max, I ran distclean,
> built libs and apk
>
> It still fails with a slightly different error, instead of
> "iconv_open", it now complains about "__sendto_chk"
>
> 10-12 09:43:10.402 15975 15998 I Qt      : qt started
> 10-12 09:43:10.417 15975 15998 E AndroidRuntime: FATAL EXCEPTION:
> qtMainLoopThread
> 10-12 09:43:10.417 15975 15998 E AndroidRuntime: Process:
> org.mythtv.mythfrontend, PID: 15975
> 10-12 09:43:10.417 15975 15998 E AndroidRuntime:
> java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
> "__sendto_chk" referenced by
> "/data/app/org.mythtv.mythfrontend-2/lib/arm/libexiv2.14.so"...
>
> Output from your above command, but I think you will see the same on
> your system. We already established that fire stick 4k fails with a
> build that you did on your system.
>
>
> (INSTALLROOT=`pwd`/mythinstall; export PKG_CONFIG_DIR=; export
> PKG_CONFIG_LIBDIR=$INSTALLROOT/lib/pkgconfig:$INSTALLROOT/share/pkgconfig:$QTBASE/lib/pkgconfig;
> export PKG_CONFIG_SYSROOT_DIR=$INSTALLROOT; export
> PKG_CONFIG_SYSROOT_DIR=; pkg-config --list-all; )
>
> exiv2      exiv2 - Exif and IPTC metadata library and tools
> fftw3f     FFTW - fast Fourier transform library
> flac       FLAC - Free Lossless Audio Codec Library
> fontconfig Fontconfig - Font configuration and customization library
> freetype2  FreeType 2 - A free, high-quality, and portable font engine.
> fribidi    GNU FriBidi - Unicode Bidirectional Algorithm Library
> icu-i18n   icu-i18n - International Components for Unicode:
> Internationalization library
> icu-io     icu-io - International Components for Unicode: Stream and
> I/O Library
> icu-uc     icu-uc - International Components for Unicode: Common and
> Data libraries
> libass     libass - LibASS is an SSA/ASS subtitles rendering library
> libbluray  libbluray - library supporting Blu-ray playback
> libcrypto  OpenSSL-libcrypto - OpenSSL cryptography library
> libssl     OpenSSL-libssl - Secure Sockets Layer and cryptography
> libraries
> libxml-2.0 libXML - libXML library version2.
> libzip     libzip - library for handling zip archives
> lzo2       lzo2 - LZO - a real-time data compression library
> ogg        ogg - ogg is a library for manipulating ogg bitstreams
> openssl    OpenSSL - Secure Sockets Layer and cryptography libraries
> and tools
> samplerate samplerate - An audio Sample Rate Conversion library
> soundtouch SoundTouch - SoundTouch is an open-source audio processing
> library for changing the Tempo, Pitch and Playback Rates of audio
> streams or files
> taglib     TagLib - Audio meta-data library
> taglib_c   TagLib C Bindings - Audio meta-data library (C bindings)
> vorbis     vorbis - vorbis is the primary Ogg Vorbis library
> vorbisenc  vorbisenc - vorbisenc is a library that provides a
> convenient API for setting up an encoding environment using libvorbis
> vorbisfile vorbisfile - vorbisfile is a library that provides a
> convenient high-level API for decoding and basic manipulation of all
> Vorbis I audio streams
>
> Peter
>
I removed your patch again.

After trying many combinations of settings, I found that the ones to fix
the issue are ANDROID_NATIVE_API_LEVEL and ANDROID_MIN_SDK_VERSION

The settings for firetv-max have ANDROID_NATIVE_API_LEVEL=28 and
ANDROID_MIN_SDK_VERSION=25

I committed a new config called firetv-4k with
ANDROID_NATIVE_API_LEVEL=21 and ANDROID_MIN_SDK_VERSION=21

ANDROID_NATIVE_API_LEVEL=25 gives "cannot find
armv7a-linux-androideabi25-clang"

ANDROID_NATIVE_API_LEVEL=28 gives iconv linking error when trying to run it

ANDROID_NATIVE_API_LEVEL=21 works fine.

I don't understand the difference between ANDROID_NATIVE_API_LEVEL and
ANDROID_MIN_SDK_VERSION. The fire tv 4k has api level 25. Is this
related to ANDROID_NATIVE_API_LEVEL and why would that not work? I did
install api level 25 with android studio but that did not help, still
got the same error.

Peter


_______________________________________________
mythtv-dev mailing list
mythtv-dev@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-dev
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org