From mythtv at mythqml.net Sat Oct 1 00:32:33 2022 From: mythtv at mythqml.net (Paul Harrison) Date: Sat, 1 Oct 2022 01:32:33 +0100 Subject: [mythtv] Testing the default and default-wide themes In-Reply-To: <0596caa5-96c2-c928-1ca6-8b7b527a7371@gmail.com> References: <0596caa5-96c2-c928-1ca6-8b7b527a7371@gmail.com> Message-ID: On 01/10/2022 00:02, Scott Theisen wrote: > Hello all, > > How do I test the default and default-wide themes? > > I am confident in my changes to them in > https://github.com/MythTV/mythtv/pull/646 since they are the same for > all themes, but I was wondering how to test those themes. > > Thanks, > > Scott Theisen > They are only used as a fallback if your chosen theme doesn't have a particular definition. If the theme is a wide theme then the search for the will go look in the theme first then fallback to default-wide and finally try default. If the theme is a 4:3 theme the the search will look in the theme first then try default. To test them you can rename the or comment it out in the active theme so the fallback will work. It doesn't always look good because of differences in the base elements but it's considered better that not working at all. Paul H. From mythtv at mythqml.net Sat Oct 1 00:35:55 2022 From: mythtv at mythqml.net (Paul Harrison) Date: Sat, 1 Oct 2022 01:35:55 +0100 Subject: [mythtv] Testing the default and default-wide themes In-Reply-To: References: <0596caa5-96c2-c928-1ca6-8b7b527a7371@gmail.com> Message-ID: On 01/10/2022 01:32, Paul Harrison wrote: > On 01/10/2022 00:02, Scott Theisen wrote: > >> Hello all, >> >> How do I test the default and default-wide themes? >> >> I am confident in my changes to them in >> https://github.com/MythTV/mythtv/pull/646 since they are the same for >> all themes, but I was wondering how to test those themes. >> >> Thanks, >> >> Scott Theisen >> > > They are only used as a fallback if your chosen theme doesn't have a > particular definition. > > > If the theme is a wide theme then the search for the will go > look in the theme first then fallback to default-wide and finally try > default. > > > If the theme is a 4:3 theme the the search will look in the theme > first then try default. > > > To test them you can rename the or comment it out in the > active theme so the fallback will work. It doesn't always look good > because of differences in the base elements but it's considered better > that not working at all. > > > Paul H. > > I meant to say it doesn't seem a good enough reason to break all themes IMHO? If it was for a feature addition or change then I can live with it but for what appears to be some code clean up I'm not so sure. Paul H. From scott.the.elm at gmail.com Sat Oct 1 01:23:08 2022 From: scott.the.elm at gmail.com (Scott Theisen) Date: Fri, 30 Sep 2022 21:23:08 -0400 Subject: [mythtv] Testing the default and default-wide themes In-Reply-To: References: <0596caa5-96c2-c928-1ca6-8b7b527a7371@gmail.com> Message-ID: <5865049e-f770-02f8-694c-9ae5dbc892ff@gmail.com> On 9/30/22 20:35, Paul Harrison wrote: > On 01/10/2022 01:32, Paul Harrison wrote: > >> On 01/10/2022 00:02, Scott Theisen wrote: >> >>> Hello all, >>> >>> How do I test the default and default-wide themes? >>> >>> I am confident in my changes to them in >>> https://github.com/MythTV/mythtv/pull/646 since they are the same >>> for all themes, but I was wondering how to test those themes. >>> >>> Thanks, >>> >>> Scott Theisen >>> >> >> They are only used as a fallback if your chosen theme doesn't have a >> particular definition. >> >> >> If the theme is a wide theme then the search for the will go >> look in the theme first then fallback to default-wide and finally try >> default. >> >> >> If the theme is a 4:3 theme the the search will look in the theme >> first then try default. >> >> >> To test them you can rename the or comment it out in the >> active theme so the fallback will work. It doesn't always look good >> because of differences in the base elements but it's considered >> better that not working at all. >> Changing the name worked, thanks.? MythCenter looked the same.? MythCenter-wide has the "pagetitle" more in the corner, but was otherwise the same. > > I meant to say it doesn't seem a good enough reason to break all > themes IMHO? If it was for a feature addition or change then I can > live with it but for what appears to be some code clean up I'm not so > sure. > > > Paul H. > I don't understand this comment; it doesn't seem to follow the rest.? Setting the subtitle of a manual recording in mythfrontend is a new feature. Regards, Scott From mythtv at mythqml.net Sat Oct 1 10:35:14 2022 From: mythtv at mythqml.net (Paul Harrison) Date: Sat, 1 Oct 2022 11:35:14 +0100 Subject: [mythtv] Testing the default and default-wide themes In-Reply-To: <5865049e-f770-02f8-694c-9ae5dbc892ff@gmail.com> References: <0596caa5-96c2-c928-1ca6-8b7b527a7371@gmail.com> <5865049e-f770-02f8-694c-9ae5dbc892ff@gmail.com> Message-ID: <758abfe0-5b68-214b-e295-93151b862d3c@mythqml.net> On 01/10/2022 02:23, Scott Theisen wrote: > On 9/30/22 20:35, Paul Harrison wrote: >> I meant to say it doesn't seem a good enough reason to break all >> themes IMHO? If it was for a feature addition or change then I can >> live with it but for what appears to be some code clean up I'm not so >> sure. >> >> >> Paul H. >> > > I don't understand this comment; it doesn't seem to follow the rest.? > Setting the subtitle of a manual recording in mythfrontend is a new > feature. > > Regards, > > Scott > Ah!. Sorry I didn't look at the pull request I assumed this was for the theme changes required because of this comment although I admit I didn't look too closely at what needs to change and whether it's a good enough reason to break stuff. https://github.com/MythTV/mythtv/pull/642#issuecomment-1260210103 My concern is we known from the likes of the SD statistics that we are loosing users at a alarming rate so the last thing we need is for stuff to be broken like themes that can be avoided otherwise a lot of users will just say sod it it's broken again I don't need this anymore and it's another user lost. We need to make life easier for users not harder. Paul H. From scott.the.elm at gmail.com Sat Oct 1 14:40:47 2022 From: scott.the.elm at gmail.com (Scott Theisen) Date: Sat, 1 Oct 2022 10:40:47 -0400 Subject: [mythtv] Testing the default and default-wide themes In-Reply-To: <758abfe0-5b68-214b-e295-93151b862d3c@mythqml.net> References: <0596caa5-96c2-c928-1ca6-8b7b527a7371@gmail.com> <5865049e-f770-02f8-694c-9ae5dbc892ff@gmail.com> <758abfe0-5b68-214b-e295-93151b862d3c@mythqml.net> Message-ID: On 10/1/22 06:35, Paul Harrison wrote: > On 01/10/2022 02:23, Scott Theisen wrote: >> On 9/30/22 20:35, Paul Harrison wrote: >>> I meant to say it doesn't seem a good enough reason to break all >>> themes IMHO? If it was for a feature addition or change then I can >>> live with it but for what appears to be some code clean up I'm not >>> so sure. >>> >>> >>> Paul H. >>> >> >> I don't understand this comment; it doesn't seem to follow the rest.? >> Setting the subtitle of a manual recording in mythfrontend is a new >> feature. >> >> Regards, >> >> Scott >> > > Ah!. Sorry I didn't look at the pull request I assumed this was for > the theme changes required because of this comment although I admit I > didn't look too closely at what needs to change and whether it's a > good enough reason to break stuff. > > https://github.com/MythTV/mythtv/pull/642#issuecomment-1260210103 > > > My concern is we known from the likes of the SD statistics that we are > loosing users at a alarming rate so the last thing we need is for > stuff to be broken like themes that can be avoided otherwise a lot of > users will just say sod it it's broken again I don't need this anymore > and it's another user lost. We need to make life easier for users not > harder. > > > Paul H. > The bundled themes don't use , which is what the linked comment is about.? Adding the few extra s is perfectly backwards compatible. I understand the desire to not break things, which is why the new is optional.? The theme change is backwards compatible, but has the downside that the new textedit widget does not effect anything without the MythTV change. Regards, Scott -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at digivation.com.au Sun Oct 2 09:12:03 2022 From: mark at digivation.com.au (Mark Spieth) Date: Sun, 2 Oct 2022 20:12:03 +1100 Subject: [mythtv] [mythtv-users] Android mythfrontend mysql driver problems In-Reply-To: <2874335b-f4fe-d8e4-2f5e-44f89f9dec4b@gmail.com> References: <543de484-0d17-e0dc-07e6-18adb2c54a63@gmail.com> <52790557-b37b-48af-0ced-c406db5b7b6c@gmail.com> <1c55aea91c9d9d3fb01a9637782cb51230e79f8d.camel@love2code.net> <2874335b-f4fe-d8e4-2f5e-44f89f9dec4b@gmail.com> Message-ID: <44a5e16d-036b-62f0-8e4e-25ea85e81039@digivation.com.au> On 29/09/2022 11:04 pm, Peter Bennett wrote: > > On 9/29/22 01:05, David Hampton via mythtv-dev wrote: >> On Wed, 2022-09-28 at 17:34 -0400, Peter Bennett wrote: >>> On 9/28/22 17:15, David Engel wrote: >>>> What problem?? I've rebuilt recently with no, new problems.? There >>>> are some resume from sleep related problems but I've usually >>>> attributed them to Nvidia Shield updates and not MythTV. >>> The problems are: >>> >>> 1. The build required API level 29 but the fire stick only has 25. >>> This would not affect the Shield. It was caused by the new QT which >>> disallowed specification of the minimum version in the manifest. I >>> fixed this locally by going back to api version 21 as we had used >>> before. >>> >>> 2. Rebuilding the libs, I was unable to build the mariadb-connector >>> library due to an error in the cmake file ConnectorName.cmake . It >>> has an END() command where it should have had ENDIF(). The build >>> failed with error "CMake Error at cmake/ConnectorName.cmake:30 >>> (ENDMACRO): ? Flow control statements are not properly nested.". >>> Changing it to ENDIF let the build complete that but I don't know >>> what is really going on with this, whether the downloaded source has >>> an error or whether some patch was applied incorrectly or if I am >>> just misunderstanding the whole problem. >> The downloaded source has an error. >> >>> 3. After fixing those, I built and installed mythfrontend (32bit >>> version) on a fire stick 4K. Starting it up fails with the message >>> "mythdbcon.cpp:84:MSqlDatabase? FATAL: Unable to load the QT QMYSQL >>> driver, is it installed?". All I see is the splash screen for a few >>> seconds then back to the android home page. >>> >>> It is possible that my fix for the mariadb connector was all wrong >>> and caused the DB problem. Or maybe we need a different mariadb >>> connector version. It is using version 2.3.7. I have pushed an update to the android libs and patches. There is now a config for various devices, nvshield and firetv-max No more managing SDK, NDK and arm versions and trying to remember what you last used. I left these much as before. firetv is at TARGETSDK 28 and build SDK must be at least 29 use to qt build requirements. to compile ??? ??? make CONFIG=firetv-max distclean everything These are in android-utilities/config. Add and update these as you see fit mariadb connector is now 3.2.6 and qt 5.15.6 among other updates It also supports SDK and build tools to 33. If you use NDK 24 or 25 you get a vulkan include failure when building ffmpeg. I didnt chase this so left the NDK at 21.4.xxxxx This is independent of SDK and build tools used. MIN API VERSION is also moved to the build system and not the pro file which is also more logical. Small commit to mythtv repo to support this. Readme is not updated yet. Please test and let me know if anything is wrong but I have done extensive building today and yesterday so hopefully I don't get surprised. To get different SDKs and NDKs, use studio and choose configure, manage sdks, select hidden items and select away. Also should I merge the datetime db update issue? My deb qt 5.15.4 and 5.15.6 still dont have the patches required AFAICT. Cheers Mark From david at istwok.net Mon Oct 3 20:41:26 2022 From: david at istwok.net (David Engel) Date: Mon, 3 Oct 2022 15:41:26 -0500 Subject: [mythtv] Improving manual recordings In-Reply-To: <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> References: <911a955d-c192-c4d6-69f8-861eacb54078@gmail.com> <1d0a42ac-034a-79cf-d951-05e94fa95b4b@gmail.com> <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> Message-ID: On Tue, Sep 27, 2022 at 10:11:23AM -0400, Scott Theisen wrote: > On 9/26/22 21:51, David Engel wrote: > > I'll have to review your patch. ENOTIME right now to do a thorough > > enough job but I did realize removing the "(Manual Record)" bit was > > not as easy as I'd hoped it was. > > > > David > > Thinking on it a little more, I think this way is better: > ``` > diff --git a/mythtv/programs/mythbackend/scheduler.cpp > b/mythtv/programs/mythbackend/scheduler.cpp > index 5d8a529dfc..fd2a322a06 100644 > --- a/mythtv/programs/mythbackend/scheduler.cpp > +++ b/mythtv/programs/mythbackend/scheduler.cpp > @@ -3698,6 +3698,16 @@ void Scheduler::UpdateManuals(uint recordid) > > ???? RecordingType rectype = RecordingType(query.value(0).toInt()); > ???? QString title = query.value(1).toString(); > +??? { > +??????? // match suffix to ProgramInfo manual recording constructor > +??????? QString suffix = " (" + QObject::tr("Manual Record") + ')'; > +??????? // corner case: user changed language between creating rule and > now, > +??????? // don't chop the end in that case > +??????? if (title.endsWith(suffix)) > +??????? { > +??????????? title.chop(suffix.size()); > +??????? } > +??? } > ???? QString subtitle = query.value(2).toString(); > ???? QString description = query.value(3).toString(); > ???? QString station = query.value(4).toString(); > ``` > > It has the same effect and is more correct in my opinion, even if it is more > computationally intensive.? It is also clearer what it is chopping. Sorry for the slow response. Last week turned into a rather hectic week. I'm going to veto this patch and anything similar to it. While it will likely work for the basic case of recording, there are enough enough other cases (e.g duplicate checking, override recordings, reactivation, change ending time, etc.) that I'm not confident in. If there is very strong support from others that something must be done, I would reluctantly accept the original suggestion to simply dropt the manual recording tag everywhere. See my next reply for another, albeit larger, change. David -- David Engel david at istwok.net From david at istwok.net Mon Oct 3 20:44:16 2022 From: david at istwok.net (David Engel) Date: Mon, 3 Oct 2022 15:44:16 -0500 Subject: [mythtv] Improving manual recordings In-Reply-To: <91ef580f-41b2-27de-4a7d-1ae7d5d38115@gmail.com> References: <506f0fce-60d7-296a-1f87-4a418be1002c@sbcglobal.net> <91ef580f-41b2-27de-4a7d-1ae7d5d38115@gmail.com> Message-ID: On Tue, Sep 27, 2022 at 02:50:02PM -0400, Scott Theisen wrote: > On 9/26/22 21:55, David Engel wrote: > > On Mon, Sep 26, 2022 at 06:20:13PM -0500, Steve Erlenborn wrote: > > > On 9/24/22 3:55PM, Scott Theisen wrote: > > > I worry about a possible name collision in the Record Rules. For one > > > show, I have an Automatic Record rule set up for my OTA tuner, and a > > > Manual Record Rule set up for my Cable tuner. > > > > > > Big Sky > > > Big Sky (Manual Record) > > > > > > If you eliminate "(Manual Record)", those separate record rules will be > > > harder to > > > distinguish. It would still be functional but it would be less clear to the > > > user. > > I don't think this should be a problem. Manual rules create > > artificial programs with manualid = . Manual rules > > only match programs with their own manualid and non-manual rules only > > match programs where manualid = 0. > > > > David > > His point, I think, is that if we went with my first suggestion both > recording rules would be labeled only as "Big Sky" without anything to > differentiate them in mythfrontend -> Manage Recordings -> Recording Rules. > > This is not an issue for my use case, which is why I didn't think of that.? > Trimming " (Manual Record)" after the fact is acceptable to me and supports > this mixed use case of manual and automatic rules with otherwise the same > title, by allowing the *user* to still easily identify which kind of rule it > is without requiring further changes. We already have this issue. In hindsight, we should have another column in the record table called ruletitle that is completely user editable. I would approve this change if you'd like to undertake it. David -- David Engel david at istwok.net From scott.the.elm at gmail.com Mon Oct 3 21:16:47 2022 From: scott.the.elm at gmail.com (Scott Theisen) Date: Mon, 3 Oct 2022 17:16:47 -0400 Subject: [mythtv] Improving manual recordings In-Reply-To: References: <911a955d-c192-c4d6-69f8-861eacb54078@gmail.com> <1d0a42ac-034a-79cf-d951-05e94fa95b4b@gmail.com> <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> Message-ID: <963a9528-e8bb-6e87-ad33-2aefcae07257@gmail.com> On 10/3/22 16:41, David Engel wrote: > On Tue, Sep 27, 2022 at 10:11:23AM -0400, Scott Theisen wrote: >> On 9/26/22 21:51, David Engel wrote: >>> I'll have to review your patch. ENOTIME right now to do a thorough >>> enough job but I did realize removing the "(Manual Record)" bit was >>> not as easy as I'd hoped it was. >>> >>> David >> Thinking on it a little more, I think this way is better: >> ``` >> diff --git a/mythtv/programs/mythbackend/scheduler.cpp >> b/mythtv/programs/mythbackend/scheduler.cpp >> index 5d8a529dfc..fd2a322a06 100644 >> --- a/mythtv/programs/mythbackend/scheduler.cpp >> +++ b/mythtv/programs/mythbackend/scheduler.cpp >> @@ -3698,6 +3698,16 @@ void Scheduler::UpdateManuals(uint recordid) >> >> ???? RecordingType rectype = RecordingType(query.value(0).toInt()); >> ???? QString title = query.value(1).toString(); >> +??? { >> +??????? // match suffix to ProgramInfo manual recording constructor >> +??????? QString suffix = " (" + QObject::tr("Manual Record") + ')'; >> +??????? // corner case: user changed language between creating rule and >> now, >> +??????? // don't chop the end in that case >> +??????? if (title.endsWith(suffix)) >> +??????? { >> +??????????? title.chop(suffix.size()); >> +??????? } >> +??? } >> ???? QString subtitle = query.value(2).toString(); >> ???? QString description = query.value(3).toString(); >> ???? QString station = query.value(4).toString(); >> ``` >> >> It has the same effect and is more correct in my opinion, even if it is more >> computationally intensive.? It is also clearer what it is chopping. > Sorry for the slow response. Last week turned into a rather hectic week. > > I'm going to veto this patch and anything similar to it. While it > will likely work for the basic case of recording, there are enough > enough other cases (e.g duplicate checking, override recordings, > reactivation, change ending time, etc.) that I'm not confident in. Manual recordings are excluded from duplicate checking: https://github.com/MythTV/mythtv/blob/167e016e38b30fb2984e1959dc323bbdaea30468/mythtv/programs/mythfrontend/manualschedule.cpp#L214 What do you mean by "override recordings"? I will perform some tests with overlapping manual recordings. Stopping the recordings early worked fine from what I remember. I'll also test two identically named recording rules with different lengths, with one canceled. You can't change the end time (or the start time) after creating a manual recording rule, except by adjusting the start early and end late times.? Unless you were talking about something else? > If there is very strong support from others that something must be > done, I would reluctantly accept the original suggestion to simply > dropt the manual recording tag everywhere. See my next reply for > another, albeit larger, change. > > David If you are referring to adding a ruletitle column to the record table, that is not something I am looking at tackling, since that would require MySQL changes and I am not familiar with MySQL. Scott From david at istwok.net Mon Oct 3 21:34:40 2022 From: david at istwok.net (David Engel) Date: Mon, 3 Oct 2022 16:34:40 -0500 Subject: [mythtv] Improving manual recordings In-Reply-To: <963a9528-e8bb-6e87-ad33-2aefcae07257@gmail.com> References: <911a955d-c192-c4d6-69f8-861eacb54078@gmail.com> <1d0a42ac-034a-79cf-d951-05e94fa95b4b@gmail.com> <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> <963a9528-e8bb-6e87-ad33-2aefcae07257@gmail.com> Message-ID: On Mon, Oct 03, 2022 at 05:16:47PM -0400, Scott Theisen wrote: > > > On 10/3/22 16:41, David Engel wrote: > > On Tue, Sep 27, 2022 at 10:11:23AM -0400, Scott Theisen wrote: > > > On 9/26/22 21:51, David Engel wrote: > > > > I'll have to review your patch. ENOTIME right now to do a thorough > > > > enough job but I did realize removing the "(Manual Record)" bit was > > > > not as easy as I'd hoped it was. > > > > > > > > David > > > Thinking on it a little more, I think this way is better: > > > ``` > > > diff --git a/mythtv/programs/mythbackend/scheduler.cpp > > > b/mythtv/programs/mythbackend/scheduler.cpp > > > index 5d8a529dfc..fd2a322a06 100644 > > > --- a/mythtv/programs/mythbackend/scheduler.cpp > > > +++ b/mythtv/programs/mythbackend/scheduler.cpp > > > @@ -3698,6 +3698,16 @@ void Scheduler::UpdateManuals(uint recordid) > > > > > > ???? RecordingType rectype = RecordingType(query.value(0).toInt()); > > > ???? QString title = query.value(1).toString(); > > > +??? { > > > +??????? // match suffix to ProgramInfo manual recording constructor > > > +??????? QString suffix = " (" + QObject::tr("Manual Record") + ')'; > > > +??????? // corner case: user changed language between creating rule and > > > now, > > > +??????? // don't chop the end in that case > > > +??????? if (title.endsWith(suffix)) > > > +??????? { > > > +??????????? title.chop(suffix.size()); > > > +??????? } > > > +??? } > > > ???? QString subtitle = query.value(2).toString(); > > > ???? QString description = query.value(3).toString(); > > > ???? QString station = query.value(4).toString(); > > > ``` > > > > > > It has the same effect and is more correct in my opinion, even if it is more > > > computationally intensive.? It is also clearer what it is chopping. > > Sorry for the slow response. Last week turned into a rather hectic week. > > > > I'm going to veto this patch and anything similar to it. While it > > will likely work for the basic case of recording, there are enough > > enough other cases (e.g duplicate checking, override recordings, > > reactivation, change ending time, etc.) that I'm not confident in. > > Manual recordings are excluded from duplicate checking: https://github.com/MythTV/mythtv/blob/167e016e38b30fb2984e1959dc323bbdaea30468/mythtv/programs/mythfrontend/manualschedule.cpp#L214 The scheduler performs its own form of duplicate checking while a program is recording and when one is stopped early. > What do you mean by "override recordings"? Override rules -- don't record and record with override settings. > I will perform some tests with overlapping manual recordings. Stopping the > recordings early worked fine from what I remember. I'll also test two > identically named recording rules with different lengths, with one canceled. > > You can't change the end time (or the start time) after creating a manual > recording rule, except by adjusting the start early and end late times.? > Unless you were talking about something else? The ending time can be changed while a program is recording. Programs can also be restarted either manually or automatically due to crashes either with the normal end time or another one for that recording. > > If there is very strong support from others that something must be > > done, I would reluctantly accept the original suggestion to simply > > dropt the manual recording tag everywhere. See my next reply for > > another, albeit larger, change. > > > > David > > If you are referring to adding a ruletitle column to the record table, that > is not something I am looking at tackling, since that would require MySQL > changes and I am not familiar with MySQL. Yes. This would be a good, simple task in which to learn. I didn't know SQL when I started working on MythTV, either. Learing it turned out to be very good for my career too. :) David -- David Engel david at istwok.net From scott.the.elm at gmail.com Mon Oct 3 22:57:27 2022 From: scott.the.elm at gmail.com (Scott Theisen) Date: Mon, 3 Oct 2022 18:57:27 -0400 Subject: [mythtv] Improving manual recordings In-Reply-To: References: <911a955d-c192-c4d6-69f8-861eacb54078@gmail.com> <1d0a42ac-034a-79cf-d951-05e94fa95b4b@gmail.com> <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> <963a9528-e8bb-6e87-ad33-2aefcae07257@gmail.com> Message-ID: On 10/3/22 17:34, David Engel wrote: > On Mon, Oct 03, 2022 at 05:16:47PM -0400, Scott Theisen wrote: >> On 10/3/22 16:41, David Engel wrote: >>> On Tue, Sep 27, 2022 at 10:11:23AM -0400, Scott Theisen wrote: >>>> On 9/26/22 21:51, David Engel wrote: >>>>> I'll have to review your patch. ENOTIME right now to do a thorough >>>>> enough job but I did realize removing the "(Manual Record)" bit was >>>>> not as easy as I'd hoped it was. >>>>> >>>>> David >>>> Thinking on it a little more, I think this way is better: >>>> ``` >>>> diff --git a/mythtv/programs/mythbackend/scheduler.cpp >>>> b/mythtv/programs/mythbackend/scheduler.cpp >>>> index 5d8a529dfc..fd2a322a06 100644 >>>> --- a/mythtv/programs/mythbackend/scheduler.cpp >>>> +++ b/mythtv/programs/mythbackend/scheduler.cpp >>>> @@ -3698,6 +3698,16 @@ void Scheduler::UpdateManuals(uint recordid) >>>> >>>> ???? RecordingType rectype = RecordingType(query.value(0).toInt()); >>>> ???? QString title = query.value(1).toString(); >>>> +??? { >>>> +??????? // match suffix to ProgramInfo manual recording constructor >>>> +??????? QString suffix = " (" + QObject::tr("Manual Record") + ')'; >>>> +??????? // corner case: user changed language between creating rule and >>>> now, >>>> +??????? // don't chop the end in that case >>>> +??????? if (title.endsWith(suffix)) >>>> +??????? { >>>> +??????????? title.chop(suffix.size()); >>>> +??????? } >>>> +??? } >>>> ???? QString subtitle = query.value(2).toString(); >>>> ???? QString description = query.value(3).toString(); >>>> ???? QString station = query.value(4).toString(); >>>> ``` >>>> >>>> It has the same effect and is more correct in my opinion, even if it is more >>>> computationally intensive.? It is also clearer what it is chopping. >>> Sorry for the slow response. Last week turned into a rather hectic week. >>> >>> I'm going to veto this patch and anything similar to it. While it >>> will likely work for the basic case of recording, there are enough >>> enough other cases (e.g duplicate checking, override recordings, >>> reactivation, change ending time, etc.) that I'm not confident in. >> Manual recordings are excluded from duplicate checking:https://github.com/MythTV/mythtv/blob/167e016e38b30fb2984e1959dc323bbdaea30468/mythtv/programs/mythfrontend/manualschedule.cpp#L214 > The scheduler performs its own form of duplicate checking while a > program is recording and when one is stopped early. Could that be why creating a new manual recording with the same (default) name resulted in only one recording with the newer duration overriding the old? > >> What do you mean by "override recordings"? > Override rules -- don't record and record with override settings. Don't record this showing works fine. Record with override appeared to work, although setting two overrides with three conflicting recordings and two tuners did not select both overrides without reducing the recording priority of the third recording.? However, we don't use that kind of override so I don't know how it's supposed to work. > >> I will perform some tests with overlapping manual recordings. Stopping the >> recordings early worked fine from what I remember. I'll also test two >> identically named recording rules with different lengths, with one canceled. >> >> You can't change the end time (or the start time) after creating a manual >> recording rule, except by adjusting the start early and end late times. >> Unless you were talking about something else? > The ending time can be changed while a program is recording. Programs > can also be restarted either manually or automatically due to crashes > either with the normal end time or another one for that recording. > Changing the end late amount worked for a recording in progress. Restarting a failed recording manually worked. Scott -------------- next part -------------- An HTML attachment was scrubbed... URL: From scott.the.elm at gmail.com Mon Oct 3 23:30:56 2022 From: scott.the.elm at gmail.com (Scott Theisen) Date: Mon, 3 Oct 2022 19:30:56 -0400 Subject: [mythtv] Improving manual recordings In-Reply-To: References: <911a955d-c192-c4d6-69f8-861eacb54078@gmail.com> <1d0a42ac-034a-79cf-d951-05e94fa95b4b@gmail.com> <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> <963a9528-e8bb-6e87-ad33-2aefcae07257@gmail.com> Message-ID: <6e8fa633-cbc0-4cdb-b70e-41d76b651906@gmail.com> On 10/3/22 18:57, Scott Theisen wrote: > Record with override appeared to work, although setting two overrides > with three conflicting recordings and two tuners did not select both > overrides without reducing the recording priority of the third > recording.? However, we don't use that kind of override so I don't > know how it's supposed to work. I misunderstood what the override recording was for.? Steve Erlenborn sent me a message off list about using it to time shift a recording, and I have set up a test for that tomorrow which appeared to work. Scott From david at istwok.net Tue Oct 4 01:33:52 2022 From: david at istwok.net (David Engel) Date: Mon, 3 Oct 2022 20:33:52 -0500 Subject: [mythtv] Improving manual recordings In-Reply-To: References: <911a955d-c192-c4d6-69f8-861eacb54078@gmail.com> <1d0a42ac-034a-79cf-d951-05e94fa95b4b@gmail.com> <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> <963a9528-e8bb-6e87-ad33-2aefcae07257@gmail.com> Message-ID: On Mon, Oct 03, 2022 at 06:57:27PM -0400, Scott Theisen wrote: > On 10/3/22 17:34, David Engel wrote: > > On Mon, Oct 03, 2022 at 05:16:47PM -0400, Scott Theisen wrote: > > > On 10/3/22 16:41, David Engel wrote: > > > > On Tue, Sep 27, 2022 at 10:11:23AM -0400, Scott Theisen wrote: > > > > > On 9/26/22 21:51, David Engel wrote: > > > > > > I'll have to review your patch. ENOTIME right now to do a thorough > > > > > > enough job but I did realize removing the "(Manual Record)" bit was > > > > > > not as easy as I'd hoped it was. > > > > > > > > > > > > David > > > > > Thinking on it a little more, I think this way is better: > > > > > ``` > > > > > diff --git a/mythtv/programs/mythbackend/scheduler.cpp > > > > > b/mythtv/programs/mythbackend/scheduler.cpp > > > > > index 5d8a529dfc..fd2a322a06 100644 > > > > > --- a/mythtv/programs/mythbackend/scheduler.cpp > > > > > +++ b/mythtv/programs/mythbackend/scheduler.cpp > > > > > @@ -3698,6 +3698,16 @@ void Scheduler::UpdateManuals(uint recordid) > > > > > > > > > > ???? RecordingType rectype = RecordingType(query.value(0).toInt()); > > > > > ???? QString title = query.value(1).toString(); > > > > > +??? { > > > > > +??????? // match suffix to ProgramInfo manual recording constructor > > > > > +??????? QString suffix = " (" + QObject::tr("Manual Record") + ')'; > > > > > +??????? // corner case: user changed language between creating rule and > > > > > now, > > > > > +??????? // don't chop the end in that case > > > > > +??????? if (title.endsWith(suffix)) > > > > > +??????? { > > > > > +??????????? title.chop(suffix.size()); > > > > > +??????? } > > > > > +??? } > > > > > ???? QString subtitle = query.value(2).toString(); > > > > > ???? QString description = query.value(3).toString(); > > > > > ???? QString station = query.value(4).toString(); > > > > > ``` > > > > > > > > > > It has the same effect and is more correct in my opinion, even if it is more > > > > > computationally intensive.? It is also clearer what it is chopping. > > > > Sorry for the slow response. Last week turned into a rather hectic week. > > > > > > > > I'm going to veto this patch and anything similar to it. While it > > > > will likely work for the basic case of recording, there are enough > > > > enough other cases (e.g duplicate checking, override recordings, > > > > reactivation, change ending time, etc.) that I'm not confident in. > > > Manual recordings are excluded from duplicate checking:https://github.com/MythTV/mythtv/blob/167e016e38b30fb2984e1959dc323bbdaea30468/mythtv/programs/mythfrontend/manualschedule.cpp#L214 > > The scheduler performs its own form of duplicate checking while a > > program is recording and when one is stopped early. > > Could that be why creating a new manual recording with the same (default) > name resulted in only one recording with the newer duration overriding the > old? Probably. The oldrecorded table serves multiple purposes. One purpose is maitaining scheduler state and that keys off scheduled (not recording) starttime, callsign and program title. > > > What do you mean by "override recordings"? > > Override rules -- don't record and record with override settings. > > Don't record this showing works fine. > > Record with override appeared to work, although setting two overrides with > three conflicting recordings and two tuners did not select both overrides > without reducing the recording priority of the third recording.? However, we > don't use that kind of override so I don't know how it's supposed to work. > > > > > > I will perform some tests with overlapping manual recordings. Stopping the > > > recordings early worked fine from what I remember. I'll also test two > > > identically named recording rules with different lengths, with one canceled. > > > > > > You can't change the end time (or the start time) after creating a manual > > > recording rule, except by adjusting the start early and end late times. > > > Unless you were talking about something else? > > The ending time can be changed while a program is recording. Programs > > can also be restarted either manually or automatically due to crashes > > either with the normal end time or another one for that recording. > > > > Changing the end late amount worked for a recording in progress. Restarting > a failed recording manually worked. I'm still not comfortable with the change. The more I think about it, I like the ruletitle change much, much more. It's the old adage -- If a thing is worth doing, it's worth doing well. David -- David Engel david at istwok.net From david at istwok.net Tue Oct 4 01:41:21 2022 From: david at istwok.net (David Engel) Date: Mon, 3 Oct 2022 20:41:21 -0500 Subject: [mythtv] [mythtv-users] Android mythfrontend mysql driver problems In-Reply-To: <44a5e16d-036b-62f0-8e4e-25ea85e81039@digivation.com.au> References: <543de484-0d17-e0dc-07e6-18adb2c54a63@gmail.com> <52790557-b37b-48af-0ced-c406db5b7b6c@gmail.com> <1c55aea91c9d9d3fb01a9637782cb51230e79f8d.camel@love2code.net> <2874335b-f4fe-d8e4-2f5e-44f89f9dec4b@gmail.com> <44a5e16d-036b-62f0-8e4e-25ea85e81039@digivation.com.au> Message-ID: On Sun, Oct 02, 2022 at 08:12:03PM +1100, Mark Spieth wrote: > On 29/09/2022 11:04 pm, Peter Bennett wrote: > > > > On 9/29/22 01:05, David Hampton via mythtv-dev wrote: > > > On Wed, 2022-09-28 at 17:34 -0400, Peter Bennett wrote: > > > > On 9/28/22 17:15, David Engel wrote: > > > > > What problem?? I've rebuilt recently with no, new problems.? There > > > > > are some resume from sleep related problems but I've usually > > > > > attributed them to Nvidia Shield updates and not MythTV. > > > > The problems are: > > > > > > > > 1. The build required API level 29 but the fire stick only has 25. > > > > This would not affect the Shield. It was caused by the new QT which > > > > disallowed specification of the minimum version in the manifest. I > > > > fixed this locally by going back to api version 21 as we had used > > > > before. > > > > > > > > 2. Rebuilding the libs, I was unable to build the mariadb-connector > > > > library due to an error in the cmake file ConnectorName.cmake . It > > > > has an END() command where it should have had ENDIF(). The build > > > > failed with error "CMake Error at cmake/ConnectorName.cmake:30 > > > > (ENDMACRO): ? Flow control statements are not properly nested.". > > > > Changing it to ENDIF let the build complete that but I don't know > > > > what is really going on with this, whether the downloaded source has > > > > an error or whether some patch was applied incorrectly or if I am > > > > just misunderstanding the whole problem. > > > The downloaded source has an error. > > > > > > > 3. After fixing those, I built and installed mythfrontend (32bit > > > > version) on a fire stick 4K. Starting it up fails with the message > > > > "mythdbcon.cpp:84:MSqlDatabase? FATAL: Unable to load the QT QMYSQL > > > > driver, is it installed?". All I see is the splash screen for a few > > > > seconds then back to the android home page. > > > > > > > > It is possible that my fix for the mariadb connector was all wrong > > > > and caused the DB problem. Or maybe we need a different mariadb > > > > connector version. It is using version 2.3.7. > > I have pushed an update to the android libs and patches. > > There is now a config for various devices, nvshield and firetv-max > > No more managing SDK, NDK and arm versions and trying to remember what you > last used. I left these much as before. firetv is at TARGETSDK 28 and build > SDK must be at least 29 use to qt build requirements. > > to compile > > ??? ??? make CONFIG=firetv-max distclean everything This is a good step toward something I wanted to do long ago. At least two things are still missing. * Use a Makefile to only build the libs that need to be rebuilt doing everything in makelibs.sh. * Allow specifying the libs(install)?(64)?, build(64)? and mythinstall(64)? direcotires in the config file. That would allow for things like keeping a stable nvshield config while working on an nvshield-test build. On the bad news front, my build goes into an infinite loop somehow. I'll investigate more tomorrow. David > > These are in android-utilities/config. Add and update these as you see fit > > mariadb connector is now 3.2.6 and qt 5.15.6 among other updates > > It also supports SDK and build tools to 33. > > If you use NDK 24 or 25 you get a vulkan include failure when building > ffmpeg. I didnt chase this so left the NDK at 21.4.xxxxx > > This is independent of SDK and build tools used. > > MIN API VERSION is also moved to the build system and not the pro file which > is also more logical. Small commit to mythtv repo to support this. > > Readme is not updated yet. > > Please test and let me know if anything is wrong but I have done extensive > building today and yesterday so hopefully I don't get surprised. > > To get different SDKs and NDKs, use studio and choose configure, manage > sdks, select hidden items and select away. > > Also should I merge the datetime db update issue? My deb qt 5.15.4 and > 5.15.6 still dont have the patches required AFAICT. > > Cheers > > Mark > > _______________________________________________ > mythtv-dev mailing list > mythtv-dev at mythtv.org > http://lists.mythtv.org/mailman/listinfo/mythtv-dev > http://wiki.mythtv.org/Mailing_List_etiquette > MythTV Forums: https://forum.mythtv.org -- David Engel david at istwok.net From scott.the.elm at gmail.com Tue Oct 4 15:33:42 2022 From: scott.the.elm at gmail.com (Scott Theisen) Date: Tue, 4 Oct 2022 11:33:42 -0400 Subject: [mythtv] Improving manual recordings In-Reply-To: References: <911a955d-c192-c4d6-69f8-861eacb54078@gmail.com> <1d0a42ac-034a-79cf-d951-05e94fa95b4b@gmail.com> <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> <963a9528-e8bb-6e87-ad33-2aefcae07257@gmail.com> Message-ID: On 10/3/22 21:33, David Engel wrote: > On Mon, Oct 03, 2022 at 06:57:27PM -0400, Scott Theisen wrote: >> On 10/3/22 17:34, David Engel wrote: >>> On Mon, Oct 03, 2022 at 05:16:47PM -0400, Scott Theisen wrote: >>>> On 10/3/22 16:41, David Engel wrote: >>>>> On Tue, Sep 27, 2022 at 10:11:23AM -0400, Scott Theisen wrote: >>>>>> On 9/26/22 21:51, David Engel wrote: >>>>>>> I'll have to review your patch. ENOTIME right now to do a thorough >>>>>>> enough job but I did realize removing the "(Manual Record)" bit was >>>>>>> not as easy as I'd hoped it was. >>>>>>> >>>>>>> David >>>>>> Thinking on it a little more, I think this way is better: >>>>>> ``` >>>>>> diff --git a/mythtv/programs/mythbackend/scheduler.cpp >>>>>> b/mythtv/programs/mythbackend/scheduler.cpp >>>>>> index 5d8a529dfc..fd2a322a06 100644 >>>>>> --- a/mythtv/programs/mythbackend/scheduler.cpp >>>>>> +++ b/mythtv/programs/mythbackend/scheduler.cpp >>>>>> @@ -3698,6 +3698,16 @@ void Scheduler::UpdateManuals(uint recordid) >>>>>> >>>>>> ???? RecordingType rectype = RecordingType(query.value(0).toInt()); >>>>>> ???? QString title = query.value(1).toString(); >>>>>> +??? { >>>>>> +??????? // match suffix to ProgramInfo manual recording constructor >>>>>> +??????? QString suffix = " (" + QObject::tr("Manual Record") + ')'; >>>>>> +??????? // corner case: user changed language between creating rule and >>>>>> now, >>>>>> +??????? // don't chop the end in that case >>>>>> +??????? if (title.endsWith(suffix)) >>>>>> +??????? { >>>>>> +??????????? title.chop(suffix.size()); >>>>>> +??????? } >>>>>> +??? } >>>>>> ???? QString subtitle = query.value(2).toString(); >>>>>> ???? QString description = query.value(3).toString(); >>>>>> ???? QString station = query.value(4).toString(); >>>>>> ``` >>>>>> >>>>>> It has the same effect and is more correct in my opinion, even if it is more >>>>>> computationally intensive.? It is also clearer what it is chopping. >>>>> Sorry for the slow response. Last week turned into a rather hectic week. >>>>> >>>>> I'm going to veto this patch and anything similar to it. While it >>>>> will likely work for the basic case of recording, there are enough >>>>> enough other cases (e.g duplicate checking, override recordings, >>>>> reactivation, change ending time, etc.) that I'm not confident in. >>>> Manual recordings are excluded from duplicate checking:https://github.com/MythTV/mythtv/blob/167e016e38b30fb2984e1959dc323bbdaea30468/mythtv/programs/mythfrontend/manualschedule.cpp#L214 >>> The scheduler performs its own form of duplicate checking while a >>> program is recording and when one is stopped early. >> Could that be why creating a new manual recording with the same (default) >> name resulted in only one recording with the newer duration overriding the >> old? > Probably. The oldrecorded table serves multiple purposes. One > purpose is maitaining scheduler state and that keys off scheduled (not > recording) starttime, callsign and program title. If it uses the callsign, that may be the cause of a separate issue I discovered.? I receive two channels (22.1 and 67.1) with the same callsign, MPT-HD.? When I manually scheduled a test recording on 22_1, it recorded from the other channel, 67_1, instead. > >>>> What do you mean by "override recordings"? >>> Override rules -- don't record and record with override settings. >> Don't record this showing works fine. >> >> Record with override appeared to work, although setting two overrides with >> three conflicting recordings and two tuners did not select both overrides >> without reducing the recording priority of the third recording.? However, we >> don't use that kind of override so I don't know how it's supposed to work. >> >>>> I will perform some tests with overlapping manual recordings. Stopping the >>>> recordings early worked fine from what I remember. I'll also test two >>>> identically named recording rules with different lengths, with one canceled. >>>> >>>> You can't change the end time (or the start time) after creating a manual >>>> recording rule, except by adjusting the start early and end late times. >>>> Unless you were talking about something else? >>> The ending time can be changed while a program is recording. Programs >>> can also be restarted either manually or automatically due to crashes >>> either with the normal end time or another one for that recording. >>> >> Changing the end late amount worked for a recording in progress. Restarting >> a failed recording manually worked. > I'm still not comfortable with the change. The more I think about it, > I like the ruletitle change much, much more. It's the old adage -- If > a thing is worth doing, it's worth doing well. > > David I don't want perfect to become the enemy of good enough.? I think trimming " (Manual Record)" is good enough. If *you* also want to add ruletitle, that seems to me like a mostly separate enhancement.? Since it is your idea, you probably have a better idea of what that change entails. Scott -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at istwok.net Tue Oct 4 18:23:11 2022 From: david at istwok.net (David Engel) Date: Tue, 4 Oct 2022 13:23:11 -0500 Subject: [mythtv] Improving manual recordings In-Reply-To: References: <1d0a42ac-034a-79cf-d951-05e94fa95b4b@gmail.com> <51cd2232-f9d8-5848-a81e-55f2c43a5e56@gmail.com> <963a9528-e8bb-6e87-ad33-2aefcae07257@gmail.com> Message-ID: On Tue, Oct 04, 2022 at 11:33:42AM -0400, Scott Theisen wrote: > On 10/3/22 21:33, David Engel wrote: > > On Mon, Oct 03, 2022 at 06:57:27PM -0400, Scott Theisen wrote: > > > On 10/3/22 17:34, David Engel wrote: > > > > On Mon, Oct 03, 2022 at 05:16:47PM -0400, Scott Theisen wrote: > > > > > On 10/3/22 16:41, David Engel wrote: > > > > > > On Tue, Sep 27, 2022 at 10:11:23AM -0400, Scott Theisen wrote: > > > > > > > On 9/26/22 21:51, David Engel wrote: > > > > > > > > I'll have to review your patch. ENOTIME right now to do a thorough > > > > > > > > enough job but I did realize removing the "(Manual Record)" bit was > > > > > > > > not as easy as I'd hoped it was. > > > > > > > > > > > > > > > > David > > > > > > > Thinking on it a little more, I think this way is better: > > > > > > > ``` > > > > > > > diff --git a/mythtv/programs/mythbackend/scheduler.cpp > > > > > > > b/mythtv/programs/mythbackend/scheduler.cpp > > > > > > > index 5d8a529dfc..fd2a322a06 100644 > > > > > > > --- a/mythtv/programs/mythbackend/scheduler.cpp > > > > > > > +++ b/mythtv/programs/mythbackend/scheduler.cpp > > > > > > > @@ -3698,6 +3698,16 @@ void Scheduler::UpdateManuals(uint recordid) > > > > > > > > > > > > > > ???? RecordingType rectype = RecordingType(query.value(0).toInt()); > > > > > > > ???? QString title = query.value(1).toString(); > > > > > > > +??? { > > > > > > > +??????? // match suffix to ProgramInfo manual recording constructor > > > > > > > +??????? QString suffix = " (" + QObject::tr("Manual Record") + ')'; > > > > > > > +??????? // corner case: user changed language between creating rule and > > > > > > > now, > > > > > > > +??????? // don't chop the end in that case > > > > > > > +??????? if (title.endsWith(suffix)) > > > > > > > +??????? { > > > > > > > +??????????? title.chop(suffix.size()); > > > > > > > +??????? } > > > > > > > +??? } > > > > > > > ???? QString subtitle = query.value(2).toString(); > > > > > > > ???? QString description = query.value(3).toString(); > > > > > > > ???? QString station = query.value(4).toString(); > > > > > > > ``` > > > > > > > > > > > > > > It has the same effect and is more correct in my opinion, even if it is more > > > > > > > computationally intensive.? It is also clearer what it is chopping. > > > > > > Sorry for the slow response. Last week turned into a rather hectic week. > > > > > > > > > > > > I'm going to veto this patch and anything similar to it. While it > > > > > > will likely work for the basic case of recording, there are enough > > > > > > enough other cases (e.g duplicate checking, override recordings, > > > > > > reactivation, change ending time, etc.) that I'm not confident in. > > > > > Manual recordings are excluded from duplicate checking:https://github.com/MythTV/mythtv/blob/167e016e38b30fb2984e1959dc323bbdaea30468/mythtv/programs/mythfrontend/manualschedule.cpp#L214 > > > > The scheduler performs its own form of duplicate checking while a > > > > program is recording and when one is stopped early. > > > Could that be why creating a new manual recording with the same (default) > > > name resulted in only one recording with the newer duration overriding the > > > old? > > Probably. The oldrecorded table serves multiple purposes. One > > purpose is maitaining scheduler state and that keys off scheduled (not > > recording) starttime, callsign and program title. > > If it uses the callsign, that may be the cause of a separate issue I > discovered.? I receive two channels (22.1 and 67.1) with the same callsign, > MPT-HD.? When I manually scheduled a test recording on 22_1, it recorded > from the other channel, 67_1, instead. > > > > > > > > What do you mean by "override recordings"? > > > > Override rules -- don't record and record with override settings. > > > Don't record this showing works fine. > > > > > > Record with override appeared to work, although setting two overrides with > > > three conflicting recordings and two tuners did not select both overrides > > > without reducing the recording priority of the third recording.? However, we > > > don't use that kind of override so I don't know how it's supposed to work. > > > > > > > > I will perform some tests with overlapping manual recordings. Stopping the > > > > > recordings early worked fine from what I remember. I'll also test two > > > > > identically named recording rules with different lengths, with one canceled. > > > > > > > > > > You can't change the end time (or the start time) after creating a manual > > > > > recording rule, except by adjusting the start early and end late times. > > > > > Unless you were talking about something else? > > > > The ending time can be changed while a program is recording. Programs > > > > can also be restarted either manually or automatically due to crashes > > > > either with the normal end time or another one for that recording. > > > > > > > Changing the end late amount worked for a recording in progress. Restarting > > > a failed recording manually worked. > > I'm still not comfortable with the change. The more I think about it, > > I like the ruletitle change much, much more. It's the old adage -- If > > a thing is worth doing, it's worth doing well. > > > > David > > I don't want perfect to become the enemy of good enough. That's true sometimes. I don't think so in this case. > I think trimming " > (Manual Record)" is good enough. Not when you've got a low risk alternative that not only solves this but another, related issue too. > If *you* also want to add ruletitle, that seems to me like a mostly separate > enhancement.? Since it is your idea, you probably have a better idea of what > that change entails. Fine. I'll leave it on my TODO list. Until I get to it, *you* can use the existing option to edit recording metadata after the fact. David -- David Engel david at istwok.net From david at istwok.net Tue Oct 4 21:28:31 2022 From: david at istwok.net (David Engel) Date: Tue, 4 Oct 2022 16:28:31 -0500 Subject: [mythtv] [mythtv-users] Android mythfrontend mysql driver problems In-Reply-To: References: <543de484-0d17-e0dc-07e6-18adb2c54a63@gmail.com> <52790557-b37b-48af-0ced-c406db5b7b6c@gmail.com> <1c55aea91c9d9d3fb01a9637782cb51230e79f8d.camel@love2code.net> <2874335b-f4fe-d8e4-2f5e-44f89f9dec4b@gmail.com> <44a5e16d-036b-62f0-8e4e-25ea85e81039@digivation.com.au> Message-ID: On Mon, Oct 03, 2022 at 08:41:21PM -0500, David Engel wrote: > On Sun, Oct 02, 2022 at 08:12:03PM +1100, Mark Spieth wrote: > > On 29/09/2022 11:04 pm, Peter Bennett wrote: > > > > > > On 9/29/22 01:05, David Hampton via mythtv-dev wrote: > > > > On Wed, 2022-09-28 at 17:34 -0400, Peter Bennett wrote: > > > > > On 9/28/22 17:15, David Engel wrote: > > > > > > What problem?? I've rebuilt recently with no, new problems.? There > > > > > > are some resume from sleep related problems but I've usually > > > > > > attributed them to Nvidia Shield updates and not MythTV. > > > > > The problems are: > > > > > > > > > > 1. The build required API level 29 but the fire stick only has 25. > > > > > This would not affect the Shield. It was caused by the new QT which > > > > > disallowed specification of the minimum version in the manifest. I > > > > > fixed this locally by going back to api version 21 as we had used > > > > > before. > > > > > > > > > > 2. Rebuilding the libs, I was unable to build the mariadb-connector > > > > > library due to an error in the cmake file ConnectorName.cmake . It > > > > > has an END() command where it should have had ENDIF(). The build > > > > > failed with error "CMake Error at cmake/ConnectorName.cmake:30 > > > > > (ENDMACRO): ? Flow control statements are not properly nested.". > > > > > Changing it to ENDIF let the build complete that but I don't know > > > > > what is really going on with this, whether the downloaded source has > > > > > an error or whether some patch was applied incorrectly or if I am > > > > > just misunderstanding the whole problem. > > > > The downloaded source has an error. > > > > > > > > > 3. After fixing those, I built and installed mythfrontend (32bit > > > > > version) on a fire stick 4K. Starting it up fails with the message > > > > > "mythdbcon.cpp:84:MSqlDatabase? FATAL: Unable to load the QT QMYSQL > > > > > driver, is it installed?". All I see is the splash screen for a few > > > > > seconds then back to the android home page. > > > > > > > > > > It is possible that my fix for the mariadb connector was all wrong > > > > > and caused the DB problem. Or maybe we need a different mariadb > > > > > connector version. It is using version 2.3.7. > > > > I have pushed an update to the android libs and patches. > > > > There is now a config for various devices, nvshield and firetv-max > > > > No more managing SDK, NDK and arm versions and trying to remember what you > > last used. I left these much as before. firetv is at TARGETSDK 28 and build > > SDK must be at least 29 use to qt build requirements. > > > > to compile > > > > ??? ??? make CONFIG=firetv-max distclean everything > > This is a good step toward something I wanted to do long ago. At > least two things are still missing. > > * Use a Makefile to only build the libs that need to be rebuilt doing > everything in makelibs.sh. > > * Allow specifying the libs(install)?(64)?, build(64)? and > mythinstall(64)? direcotires in the config file. That would allow > for things like keeping a stable nvshield config while working on an > nvshield-test build. > > On the bad news front, my build goes into an infinite loop somehow. > I'll investigate more tomorrow. I'm still not sure why it went into an infinite loop but the core probelm is in soundtouch/bootstrap. It is a /bin/sh script which uses "-a" in a if/elif test in two places. The problem is that /bin/sh on Debian is dash and it doesn't support -a. The fix is either to patch bootstrap to use /bin/bash or explicily execute bootstrap with bash in makelibs.sh. Which fix do you prefer? David -- David Engel david at istwok.net From mark at digivation.com.au Tue Oct 4 22:54:10 2022 From: mark at digivation.com.au (Mark Spieth) Date: Wed, 5 Oct 2022 09:54:10 +1100 Subject: [mythtv] [mythtv-users] Android mythfrontend mysql driver problems In-Reply-To: References: <543de484-0d17-e0dc-07e6-18adb2c54a63@gmail.com> <52790557-b37b-48af-0ced-c406db5b7b6c@gmail.com> <1c55aea91c9d9d3fb01a9637782cb51230e79f8d.camel@love2code.net> <2874335b-f4fe-d8e4-2f5e-44f89f9dec4b@gmail.com> <44a5e16d-036b-62f0-8e4e-25ea85e81039@digivation.com.au> Message-ID: <4f46f9bd-ffbd-e169-d13c-458b5c2bb692@digivation.com.au> On 5/10/2022 8:28 am, David Engel wrote: > On Mon, Oct 03, 2022 at 08:41:21PM -0500, David Engel wrote: >> On Sun, Oct 02, 2022 at 08:12:03PM +1100, Mark Spieth wrote: >>> On 29/09/2022 11:04 pm, Peter Bennett wrote: >>>> On 9/29/22 01:05, David Hampton via mythtv-dev wrote: >>>>> On Wed, 2022-09-28 at 17:34 -0400, Peter Bennett wrote: >>>>>> On 9/28/22 17:15, David Engel wrote: >>>>>>> What problem?? I've rebuilt recently with no, new problems.? There >>>>>>> are some resume from sleep related problems but I've usually >>>>>>> attributed them to Nvidia Shield updates and not MythTV. >>>>>> The problems are: >>>>>> >>>>>> 1. The build required API level 29 but the fire stick only has 25. >>>>>> This would not affect the Shield. It was caused by the new QT which >>>>>> disallowed specification of the minimum version in the manifest. I >>>>>> fixed this locally by going back to api version 21 as we had used >>>>>> before. >>>>>> >>>>>> 2. Rebuilding the libs, I was unable to build the mariadb-connector >>>>>> library due to an error in the cmake file ConnectorName.cmake . It >>>>>> has an END() command where it should have had ENDIF(). The build >>>>>> failed with error "CMake Error at cmake/ConnectorName.cmake:30 >>>>>> (ENDMACRO): ? Flow control statements are not properly nested.". >>>>>> Changing it to ENDIF let the build complete that but I don't know >>>>>> what is really going on with this, whether the downloaded source has >>>>>> an error or whether some patch was applied incorrectly or if I am >>>>>> just misunderstanding the whole problem. >>>>> The downloaded source has an error. >>>>> >>>>>> 3. After fixing those, I built and installed mythfrontend (32bit >>>>>> version) on a fire stick 4K. Starting it up fails with the message >>>>>> "mythdbcon.cpp:84:MSqlDatabase? FATAL: Unable to load the QT QMYSQL >>>>>> driver, is it installed?". All I see is the splash screen for a few >>>>>> seconds then back to the android home page. >>>>>> >>>>>> It is possible that my fix for the mariadb connector was all wrong >>>>>> and caused the DB problem. Or maybe we need a different mariadb >>>>>> connector version. It is using version 2.3.7. >>> I have pushed an update to the android libs and patches. >>> >>> There is now a config for various devices, nvshield and firetv-max >>> >>> No more managing SDK, NDK and arm versions and trying to remember what you >>> last used. I left these much as before. firetv is at TARGETSDK 28 and build >>> SDK must be at least 29 use to qt build requirements. >>> >>> to compile >>> >>> ??? ??? make CONFIG=firetv-max distclean everything >> This is a good step toward something I wanted to do long ago. At >> least two things are still missing. >> >> * Use a Makefile to only build the libs that need to be rebuilt doing >> everything in makelibs.sh. >> >> * Allow specifying the libs(install)?(64)?, build(64)? and >> mythinstall(64)? direcotires in the config file. That would allow >> for things like keeping a stable nvshield config while working on an >> nvshield-test build. >> >> On the bad news front, my build goes into an infinite loop somehow. >> I'll investigate more tomorrow. > I'm still not sure why it went into an infinite loop but the core > probelm is in soundtouch/bootstrap. It is a /bin/sh script which uses > "-a" in a if/elif test in two places. The problem is that /bin/sh on > Debian is dash and it doesn't support -a. The fix is either to patch > bootstrap to use /bin/bash or explicily execute bootstrap with bash in > makelibs.sh. Which fix do you prefer? > Fix the script so it uses compatible constructs to dash I think. The other way is to use "test" instead of the built-in contitional functionality. I think "test" supports it all. Doesnt really matter which way. is [[ ]] construct treated differently in dash vs bash? That may be an issue too as its used in a few places. Are there any -o operators too? Ill have to remember that. I also want to use sdkmanager to auto pull in any missing android build components. That should also make it easier to use. Maybe even make it CI-able. Also, adding the customizable dir suffix should be easy. makelibs deps a bit harder. But it doesnt take that long. Mark From david at istwok.net Wed Oct 5 01:39:40 2022 From: david at istwok.net (David Engel) Date: Tue, 4 Oct 2022 20:39:40 -0500 Subject: [mythtv] [mythtv-users] Android mythfrontend mysql driver problems In-Reply-To: <4f46f9bd-ffbd-e169-d13c-458b5c2bb692@digivation.com.au> References: <543de484-0d17-e0dc-07e6-18adb2c54a63@gmail.com> <52790557-b37b-48af-0ced-c406db5b7b6c@gmail.com> <1c55aea91c9d9d3fb01a9637782cb51230e79f8d.camel@love2code.net> <2874335b-f4fe-d8e4-2f5e-44f89f9dec4b@gmail.com> <44a5e16d-036b-62f0-8e4e-25ea85e81039@digivation.com.au> <4f46f9bd-ffbd-e169-d13c-458b5c2bb692@digivation.com.au> Message-ID: On Wed, Oct 05, 2022 at 09:54:10AM +1100, Mark Spieth wrote: > > On 5/10/2022 8:28 am, David Engel wrote: > > On Mon, Oct 03, 2022 at 08:41:21PM -0500, David Engel wrote: > > > On Sun, Oct 02, 2022 at 08:12:03PM +1100, Mark Spieth wrote: > > > > On 29/09/2022 11:04 pm, Peter Bennett wrote: > > > > > On 9/29/22 01:05, David Hampton via mythtv-dev wrote: > > > > > > On Wed, 2022-09-28 at 17:34 -0400, Peter Bennett wrote: > > > > > > > On 9/28/22 17:15, David Engel wrote: > > > > > > > > What problem?? I've rebuilt recently with no, new problems.? There > > > > > > > > are some resume from sleep related problems but I've usually > > > > > > > > attributed them to Nvidia Shield updates and not MythTV. > > > > > > > The problems are: > > > > > > > > > > > > > > 1. The build required API level 29 but the fire stick only has 25. > > > > > > > This would not affect the Shield. It was caused by the new QT which > > > > > > > disallowed specification of the minimum version in the manifest. I > > > > > > > fixed this locally by going back to api version 21 as we had used > > > > > > > before. > > > > > > > > > > > > > > 2. Rebuilding the libs, I was unable to build the mariadb-connector > > > > > > > library due to an error in the cmake file ConnectorName.cmake . It > > > > > > > has an END() command where it should have had ENDIF(). The build > > > > > > > failed with error "CMake Error at cmake/ConnectorName.cmake:30 > > > > > > > (ENDMACRO): ? Flow control statements are not properly nested.". > > > > > > > Changing it to ENDIF let the build complete that but I don't know > > > > > > > what is really going on with this, whether the downloaded source has > > > > > > > an error or whether some patch was applied incorrectly or if I am > > > > > > > just misunderstanding the whole problem. > > > > > > The downloaded source has an error. > > > > > > > > > > > > > 3. After fixing those, I built and installed mythfrontend (32bit > > > > > > > version) on a fire stick 4K. Starting it up fails with the message > > > > > > > "mythdbcon.cpp:84:MSqlDatabase? FATAL: Unable to load the QT QMYSQL > > > > > > > driver, is it installed?". All I see is the splash screen for a few > > > > > > > seconds then back to the android home page. > > > > > > > > > > > > > > It is possible that my fix for the mariadb connector was all wrong > > > > > > > and caused the DB problem. Or maybe we need a different mariadb > > > > > > > connector version. It is using version 2.3.7. > > > > I have pushed an update to the android libs and patches. > > > > > > > > There is now a config for various devices, nvshield and firetv-max > > > > > > > > No more managing SDK, NDK and arm versions and trying to remember what you > > > > last used. I left these much as before. firetv is at TARGETSDK 28 and build > > > > SDK must be at least 29 use to qt build requirements. > > > > > > > > to compile > > > > > > > > ??? ??? make CONFIG=firetv-max distclean everything > > > This is a good step toward something I wanted to do long ago. At > > > least two things are still missing. > > > > > > * Use a Makefile to only build the libs that need to be rebuilt doing > > > everything in makelibs.sh. > > > > > > * Allow specifying the libs(install)?(64)?, build(64)? and > > > mythinstall(64)? direcotires in the config file. That would allow > > > for things like keeping a stable nvshield config while working on an > > > nvshield-test build. > > > > > > On the bad news front, my build goes into an infinite loop somehow. > > > I'll investigate more tomorrow. > > I'm still not sure why it went into an infinite loop but the core > > probelm is in soundtouch/bootstrap. It is a /bin/sh script which uses > > "-a" in a if/elif test in two places. The problem is that /bin/sh on > > Debian is dash and it doesn't support -a. The fix is either to patch > > bootstrap to use /bin/bash or explicily execute bootstrap with bash in > > makelibs.sh. Which fix do you prefer? > > > Fix the script so it uses compatible constructs to dash I think. Okay. I'll do that tomorrow. > The other way is to use "test" instead of the built-in contitional > functionality. I think "test" supports it all. /bin/test on Debian doesn't support -a either. > Doesnt really matter which way. > > is [[ ]] construct treated differently in dash vs bash? That may be an issue > too as its used in a few places. > > Are there any -o operators too? Neither are supported in dash. FWIW, the immediate issue appears to be limited to just soundtouch and will be fixed there. Assuming /bin/sh is Bash is an all too common, but invalid, assumtion in Linux. IME, if one wants to use Bashisms, that's fine and reasonable on Linux. Just make sure it's explicitly run by /bin/bash and not /bin/sh. > Ill have to remember that. > > I also want to use sdkmanager to auto pull in any missing android build > components. That should also make it easier to use. Maybe even make it > CI-able. > > Also, adding the customizable dir suffix should be easy. makelibs deps a bit > harder. But it doesnt take that long. NOt as long as it used to with my newish (to me) 16-core/32-thread desktop. :) FYI, I noticed at least a couple of things built by makelibs don't honor/use -j$NCPUS. At least one uses cmake. I don't know how to request parallel builds with it. Fixing those would speed things up a little more. David -- David Engel david at istwok.net From pb.mythtv at gmail.com Fri Oct 7 20:06:33 2022 From: pb.mythtv at gmail.com (Peter Bennett) Date: Fri, 7 Oct 2022 16:06:33 -0400 Subject: [mythtv] [mythtv-users] Android mythfrontend mysql driver problems In-Reply-To: References: <543de484-0d17-e0dc-07e6-18adb2c54a63@gmail.com> <52790557-b37b-48af-0ced-c406db5b7b6c@gmail.com> <1c55aea91c9d9d3fb01a9637782cb51230e79f8d.camel@love2code.net> <2874335b-f4fe-d8e4-2f5e-44f89f9dec4b@gmail.com> <44a5e16d-036b-62f0-8e4e-25ea85e81039@digivation.com.au> <4f46f9bd-ffbd-e169-d13c-458b5c2bb692@digivation.com.au> Message-ID: <9026186a-abb9-39f7-fa16-f5d24bd6501f@gmail.com> I am trying to build with Mark's changes. I created a new entry in config, for firetv. The base fire TV is at SDK level 22, and the 4k is at 25. I set the MIN_SDK_VERSION to 21. Libs built fine. The apk make fails with this: External library /home/peter/proj/github.com/MythTV/packaging-master/android/mythinstall/lib/libicudata65.so does not exist! make: *** [Makefile:54: apk] Error 10 I see that libs for icu version 70 were built successfully, so I don't know why it is looking for version 65. I checked that the version 70 of icu was successful up to? *** Build ICU Done *** Any suggestions? From pb.mythtv at gmail.com Fri Oct 7 20:14:56 2022 From: pb.mythtv at gmail.com (Peter Bennett) Date: Fri, 7 Oct 2022 16:14:56 -0400 Subject: [mythtv] Fwd: [mythtv-users] Android mythfrontend mysql driver problems In-Reply-To: <9026186a-abb9-39f7-fa16-f5d24bd6501f@gmail.com> References: <9026186a-abb9-39f7-fa16-f5d24bd6501f@gmail.com> Message-ID: <582741b6-9cb7-5597-1bfb-b4468dc98fac@gmail.com> Ignore this? - I see I did not pull the latest MythTV source Sorry for the noise. Peter -------- Forwarded Message -------- Subject: Re: [mythtv] [mythtv-users] Android mythfrontend mysql driver problems Date: Fri, 7 Oct 2022 16:06:33 -0400 From: Peter Bennett To: mythtv-dev at mythtv.org I am trying to build with Mark's changes. I created a new entry in config, for firetv. The base fire TV is at SDK level 22, and the 4k is at 25. I set the MIN_SDK_VERSION to 21. Libs built fine. The apk make fails with this: External library /home/peter/proj/github.com/MythTV/packaging-master/android/mythinstall/lib/libicudata65.so does not exist! make: *** [Makefile:54: apk] Error 10 I see that libs for icu version 70 were built successfully, so I don't know why it is looking for version 65. I checked that the version 70 of icu was successful up to? *** Build ICU Done *** Any suggestions? -------------- next part -------------- An HTML attachment was scrubbed... URL: From pb.mythtv at gmail.com Sat Oct 8 15:36:49 2022 From: pb.mythtv at gmail.com (Peter Bennett) Date: Sat, 8 Oct 2022 11:36:49 -0400 Subject: [mythtv] Problem with 32-bit android version Message-ID: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> 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 From mark at digivation.com.au Sat Oct 8 17:58:50 2022 From: mark at digivation.com.au (Mark Spieth) Date: Sun, 09 Oct 2022 04:58:50 +1100 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> Message-ID: <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> On 9 October 2022 2:36:49 am AEDT, Peter Bennett 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 From pb.mythtv at gmail.com Sat Oct 8 18:40:42 2022 From: pb.mythtv at gmail.com (Peter Bennett) Date: Sat, 8 Oct 2022 14:40:42 -0400 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> Message-ID: <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> On 10/8/22 13:58, Mark Spieth wrote: > > On 9 October 2022 2:36:49 am AEDT, Peter Bennett 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 From mark at digivation.com.au Sat Oct 8 23:33:02 2022 From: mark at digivation.com.au (Mark Spieth) Date: Sun, 9 Oct 2022 10:33:02 +1100 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> Message-ID: <926f92f1-0759-ded3-d2a9-39749ed231b9@digivation.com.au> 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 >> 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 From pb.mythtv at gmail.com Sun Oct 9 00:10:29 2022 From: pb.mythtv at gmail.com (Peter Bennett) Date: Sat, 8 Oct 2022 20:10:29 -0400 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: <926f92f1-0759-ded3-d2a9-39749ed231b9@digivation.com.au> References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> <926f92f1-0759-ded3-d2a9-39749ed231b9@digivation.com.au> Message-ID: <40541920-735e-8efb-7a29-0ce204553143@gmail.com> 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 >>> 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 From mark at digivation.com.au Sun Oct 9 02:16:04 2022 From: mark at digivation.com.au (Mark Spieth) Date: Sun, 09 Oct 2022 13:16:04 +1100 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: <40541920-735e-8efb-7a29-0ce204553143@gmail.com> References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> <926f92f1-0759-ded3-d2a9-39749ed231b9@digivation.com.au> <40541920-735e-8efb-7a29-0ce204553143@gmail.com> Message-ID: <5F5C864C-9ACD-4EF9-940A-D9BE37B728A0@digivation.com.au> On 9 October 2022 11:10:29 am AEDT, Peter Bennett 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 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 From pb.mythtv at gmail.com Mon Oct 10 13:51:33 2022 From: pb.mythtv at gmail.com (Peter Bennett) Date: Mon, 10 Oct 2022 09:51:33 -0400 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: <5F5C864C-9ACD-4EF9-940A-D9BE37B728A0@digivation.com.au> References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> <926f92f1-0759-ded3-d2a9-39749ed231b9@digivation.com.au> <40541920-735e-8efb-7a29-0ce204553143@gmail.com> <5F5C864C-9ACD-4EF9-940A-D9BE37B728A0@digivation.com.au> Message-ID: 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 From mark at digivation.com.au Wed Oct 12 07:43:46 2022 From: mark at digivation.com.au (Mark Spieth) Date: Wed, 12 Oct 2022 18:43:46 +1100 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> <926f92f1-0759-ded3-d2a9-39749ed231b9@digivation.com.au> <40541920-735e-8efb-7a29-0ce204553143@gmail.com> <5F5C864C-9ACD-4EF9-940A-D9BE37B728A0@digivation.com.au> Message-ID: 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 From pb.mythtv at gmail.com Wed Oct 12 13:53:44 2022 From: pb.mythtv at gmail.com (Peter Bennett) Date: Wed, 12 Oct 2022 09:53:44 -0400 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> <926f92f1-0759-ded3-d2a9-39749ed231b9@digivation.com.au> <40541920-735e-8efb-7a29-0ce204553143@gmail.com> <5F5C864C-9ACD-4EF9-940A-D9BE37B728A0@digivation.com.au> Message-ID: <703ace4e-83e4-b872-9bf3-3db3a9a2784e@gmail.com> 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 From pb.mythtv at gmail.com Mon Oct 17 15:33:13 2022 From: pb.mythtv at gmail.com (Peter Bennett) Date: Mon, 17 Oct 2022 11:33:13 -0400 Subject: [mythtv] Problem with 32-bit android version In-Reply-To: <703ace4e-83e4-b872-9bf3-3db3a9a2784e@gmail.com> References: <01ebd6f3-005f-1aeb-ef6a-aa45d7f3c485@gmail.com> <11D1D65B-D67F-46AB-8413-EE6DFE87DA50@digivation.com.au> <52cb5a32-04d6-2f6d-6a44-352a36ef54f4@gmail.com> <926f92f1-0759-ded3-d2a9-39749ed231b9@digivation.com.au> <40541920-735e-8efb-7a29-0ce204553143@gmail.com> <5F5C864C-9ACD-4EF9-940A-D9BE37B728A0@digivation.com.au> <703ace4e-83e4-b872-9bf3-3db3a9a2784e@gmail.com> Message-ID: 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