| <<<Back 1 day (to 2017/05/10) | 20170511 |
sebras | turludu: message received. you have successfully connected to #mupdf. :) | 01:26.47 |
| tor8: -old:sebras/master was updated last night, what mess have I still not cleaned up? ;) | 12:14.46 |
| we spoke about the .iml file, and I'm not sure you are satisfied with that..? | 12:15.24 |
| I know android studio automagically creates it, but I don't know why or if you can ask it not to or what the file is used for. | 12:15.56 |
tor8 | sebras: gradle doesn't have an installRelease target | 12:21.34 |
| the 'make run' target tries to launch LibraryActivity ... it's called ChoosePDFActivity in -old | 12:21.47 |
| the compileSdkVersion is 25 ... that doesn't work with permissions granted through the AndroidManifest.xml file | 12:22.16 |
| or was it targetSdkVersion? | 12:22.24 |
| do we really use the appcompat library? | 12:22.43 |
sebras | I'm confused as to what values I should be using for compileSdkVersion as I needed to change it for the gradle lint target to work. | 12:24.19 |
| I'll retry that and see if it magically works now. | 12:25.26 |
tor8 | the docs suggest to use the same as targetSdkVersion | 12:26.04 |
| and then they also suggest to use buildToolsVersion the same as compileSdkVersion, but that's patently false and does *not* work | 12:26.46 |
| question I guess is which point release to put in buildToolsVersion | 12:27.00 |
sebras | yeah, I set all of them to 16 just now. | 12:27.45 |
tor8 | do we need to set applicationId? | 12:27.55 |
sebras | except for buildtools. | 12:27.55 |
| the docs just say that this is used to set the applicaiton id, and how to get at it from inside java. | 12:28.27 |
| I haven't found anyone questioning why it is duplicated between gradle and AndroidManifest.xml yet. | 12:28.51 |
tor8 | /home/tor/src/mupdf-droid-old/build/intermediates/res/merged/debug/values-ldltr-v21/values-ldltr-v21.xml:3: AAPT: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Spinner.Underlined'. fails when I set compileSdkVersion to 16 | 12:28.54 |
sebras | if I read https://developer.android.com/studio/releases/build-tools.html# correctly then version 17 is the earliest build-tools release and it corresponds to api level 17 | 12:30.12 |
| that's what I got before. in the lint target. | 12:30.21 |
| but now I don't see that error message. | 12:30.29 |
tor8 | sebras: could be the android:textAppearance="?android:attr/textAppearanceMedium" lines? | 12:32.06 |
sebras | that doesn't explain why I no longer see the error message though. | 12:32.29 |
tor8 | make distclean | 12:32.48 |
| I get fewer and fewer such errors the newer I put compileSdkVersion at | 12:33.30 |
| with compileSdkVersion 23 I only get 2 such errors (android:TextAppearance.Material.Widget.Button.Borderless.Colored and android:TextAppearance.Material.Widget.Button.Colored) | 12:34.19 |
| with version 24 I get no such errors | 12:34.26 |
sebras | I make distcleaned but it still works! ugh, I really like this environment. | 12:35.09 |
| oh I just removed the appcompat dependency, it might be that causing the issues perhaps..? | 12:37.26 |
tor8 | sebras: after changing to version 24 and building successfully, I chaonged back to 16 and it built | 12:37.36 |
| but cleaning it with distclean and building afetr that fails | 12:37.43 |
| sebras: highly likely | 12:37.54 |
sebras | tor8: yes, that's it, if I remove the dependency block at the end of build.gradle it works better. | 12:38.08 |
tor8 | I don't think we use any appcompat classes in -old (or -mini) | 12:38.34 |
| the -nui code might though | 12:38.38 |
| sebras: yes, with compileSdkVersion 16 and no dependencies block, it builds | 12:39.23 |
sebras | I'm compiling fine without it, so I updated sebras/master again. | 12:39.24 |
tor8 | com.artifex.mupdf.mini/.ChoosePDFActivity still has the -mini package name :) | 12:41.16 |
| and the question is if we want to do something with the ABI lists | 12:41.53 |
sebras | fixed. | 12:42.33 |
tor8 | splits.abi.include() takes a vararg list of strings | 12:43.24 |
| whereas defaultConfig.ndk.abiFilters takes a Set<String> | 12:43.34 |
| we could add all abi targets, but that's going to lead to looong compile times which is annoying | 12:44.50 |
sebras | tor8: actually mips fails with the latest ndk. | 12:45.17 |
tor8 | oh lovely | 12:45.24 |
sebras | due to a gcc internal issue it seems. | 12:45.30 |
tor8 | any reason why? (other than google not testing their crap) | 12:45.34 |
jogux | isn't gcc deprecated these days? | 12:45.52 |
sebras | it fails in one of the fitz things. draw-device.o or something like that. | 12:45.59 |
| jogux: ok, so clang, the other gcc. | 12:46.08 |
jogux | ah :-) | 12:46.15 |
| not so good. | 12:46.18 |
sebras | jogux: also I'm not sure if setting compileSdkVersion or these things affects what compiler is used (it ought to). | 12:46.38 |
| tor8: if I set compileSdkVersion to 17.0.0 it downloaded that build-tools but then complains: Caused by: org.gradle.api.GradleException: The SDK Build Tools revision (17.0.0) is too low for project 'mupdf-android-viewer-old'. Minimum required is 25.0.0 | 12:47.07 |
| though I can't see where this is mentioned. | 12:47.17 |
tor8 | you mean buildToolsVersion | 12:47.41 |
| I ran into that too | 12:47.45 |
sebras | yeah, seems like this migth be cached elsewhere? | 12:48.00 |
tor8 | I suspect the build tools < 25 don't work with gradle | 12:48.19 |
| sebras: was that with ndk r14b? | 12:50.42 |
sebras | tor8: yes. | 12:51.01 |
| well, that's the ndk I installed at one point. | 12:51.11 |
| who knows what has been updated since then. | 12:51.17 |
tor8 | and they *still* haven't made a proper 64-bit linux release | 12:51.25 |
| still depending on users having multi-arch and installing 32-bit librarires | 12:51.41 |
| there's a r15 beta | 12:52.02 |
sebras | starts studio to try to figure out what is installed. | 12:52.05 |
| tor8: NDK 14.1.3816874 is what I have. | 12:52.47 |
| and you are correct, build-tools corresponds to gradle-version it seems: http://stackoverflow.com/questions/23999714/android-studio-gradle-buildtools-revision#24102134 | 12:54.02 |
jogux | The Android build system / SDK arrangement really does seem overly complex. :( | 12:55.58 |
tor8 | jogux: and it now all seems to be wrapped up by android-studio so no more doing things on a headless build server | 12:56.23 |
sebras | jogux: wait until you are forced to build it inside a docker container because no one knows how to install things that has dependencies any more. | 12:56.44 |
jogux | tor8: er. really. didn't know that part yet. The last time I had to do that I was still available to invoke the sdk manager in headless mode. ffs. :( | 12:57.54 |
sebras | jogux: tor8: I think they have revived some of the commands in sdkmanager and avdmanager lately, but I'm not sure if they did that as a reluctant concession to the headless users. | 12:59.30 |
| jogux: also if gradle didn't change so much I guess this would all be much easier. | 13:01.48 |
| tor8: ok, so I tried a few different versions of gradle build and the gradle wrapper, this affects what version of buildtools are required. | 13:06.09 |
| or rather what minimum version is allowed. | 13:06.17 |
| tor8: seems like we are able to compile properly starting with gradle 2.2.1 which implies build-tools 19.1.0 and gradle wrapper 3.3 | 13:10.34 |
tor8 | yeah, now I just gotta wait a couple of minutes for android studio to do its Indexing before the "Tools > Android" menu will appear | 13:11.10 |
| so that I can use it to install the NDK | 13:11.44 |
sebras | you might be able to do that using the sdkmanager CLI tool..? | 13:13.45 |
| but I have not learned how yet. | 13:13.52 |
tor8 | dunno. I'm trying to figure out the steps so I can put it in the README that we can point clueless users to | 13:14.10 |
sebras | sdkmanager --list shows what packages you have installed. | 13:15.15 |
tor8 | It seems the best way is to say "Install Android Studio, then use Android Studio to install the NDK. Ask Google for instructions on how to do that, because they keep changing the steps every two weeks." | 13:15.17 |
sebras | sdkmanager ndk-bundle | 13:15.38 |
| that apparently installs the ndk. | 13:15.43 |
tor8 | sebras: "which sdkmanager" | 13:15.47 |
| I have no tool in my path with that name | 13:15.54 |
sebras | android/sdk/tools/bin/sdkmanager | 13:16.02 |
| next to where the binary monkeyrunner is located. | 13:16.36 |
tor8 | oh great, yet another directory to add to my $PATH... | 13:17.00 |
| export PATH=$PATH:$HOME/Android/Sdk/tools/bin | 13:17.12 |
| export PATH=$PATH:$HOME/Android/Sdk/platform-tools | 13:17.13 |
| export PATH=$PATH:$HOME/Android/Sdk/ndk-bundle | 13:17.13 |
sebras | I have tools tools/bin platform-tools ndk-bundle and build-tools/$BUILD_TOOLD_VERSION | 13:18.03 |
tor8 | ReadMe.txt in mupdf-droid-old is woefully out of date | 13:19.51 |
sebras | much likely. | 13:20.09 |
| very likely? | 13:20.15 |
| I blame todays test. | 13:20.25 |
| today's. | 13:20.29 |
| agh! :) | 13:20.33 |
tor8 | sebras: well, one thing at a time | 13:20.54 |
sebras | ok, sebras/master updated again, now with as old gradle/build-tools as I can successfully compile with. | 13:23.23 |
tor8 | question though, do we want the oldest or newest? :) | 13:24.53 |
sebras | yes. | 13:25.20 |
| I have no idea. | 13:25.23 |
tor8 | I suspect we'll be better off in the long run by picking the newest at the time | 13:26.00 |
| and then *never* changing! | 13:26.05 |
| okay, maybe not the second part :) | 13:26.12 |
sebras | I'm thinking that the minSdkVersion ought to be what determines what version of android we work ok. | 13:26.19 |
| and using the latest version of gradle/build-tools most likely. | 13:26.32 |
tor8 | minSdkVersion defines which APIs you're allowed to use | 13:27.00 |
| targetSdkVersion sets the level of backwards compatibility cruft the system will apply to your app when its run | 13:27.18 |
sebras | tor8: I'm not sure I know what is included in the build-tools. | 13:27.20 |
tor8 | so the idea is that you set minSdkVersion as low as you can go | 13:27.36 |
sebras | because that's not the compiler, right? | 13:27.39 |
tor8 | and targetSdkVersion as high as you've tested the code | 13:27.42 |
| and compileSdkVersion I guess is which compiler/classlibrary/whatever is used | 13:28.05 |
| for -mini I've set minSdkVersion to 16 and targetSdkVersion to 21 | 13:28.23 |
| anything >21 requires extra crap for doing runtime permissions which I haven't gotten around to | 13:28.41 |
sebras | yeah, but because your environment and mine are not the same so I'm wary of going to high. | 13:28.55 |
tor8 | we've tested with targetSdkVersion 16 so let's use that | 13:29.13 |
| anything newer and you get different theme files etc | 13:29.21 |
| which changes the appearance | 13:29.24 |
| the theme and appearance is also part of the backwards compatibility stuff that gets applied when you set targetSdkVersion | 13:29.51 |
sebras | oh... I just reset to start testing with targteSdkVersion and compileSdkVersion == 21 | 13:30.22 |
| Running dex in-process requires build tools 23.0.2. | 13:30.37 |
| For faster builds update this project to use the latest build tools. | 13:30.37 |
| I see this message btw. | 13:30.42 |
tor8 | I just installed android-studio fresh | 13:31.32 |
| and it's installed "Android SDK Tools" 26.0.2 | 13:31.43 |
| and "Android SDK Platform-Tools" 25.0.5 | 13:31.54 |
| dunno what goes where | 13:32.06 |
| and why there are two such similarly named packages | 13:32.16 |
| right, platform-tools is "adb" | 13:32.49 |
| and tools is everything else | 13:33.02 |
sebras | how do you kno? | 13:33.08 |
| know | 13:33.10 |
tor8 | I googled and found the release notes | 13:33.38 |
| I mean I duck duck went... | 13:34.33 |
| https://developer.android.com/studio/releases/platform-tools.html | 13:34.35 |
| https://developer.android.com/studio/releases/sdk-tools.html | 13:34.40 |
| and gradle is now at 2.3.1 | 13:35.47 |
sebras | https://developer.android.com/studio/releases/build-tools.html | 13:35.50 |
tor8 | https://developer.android.com/studio/releases/gradle-plugin.html#revisions | 13:36.00 |
| soooo many bloody pointless packages | 13:36.26 |
| it reminds me of trying to compile gcc | 13:36.38 |
| impossible unless you have the exact correct patch-level version of EVERY single dependency. not documented anywhere, of course. | 13:37.03 |
sebras | tor8: no, no! compiling gcc for arm was WAAAY more straifrowrad (for me) | 13:37.06 |
| straight forward | 13:37.17 |
| though I just used the latest of all dependencies and it magically worked. | 13:37.42 |
| so compiling with targetSdkVersion and compileSdkVersion both set to 16 worked as well. | 13:38.16 |
tor8 | yup. I'm just testing with buildTools 25.0.3 and gradle plugin 2.3.1 | 13:39.03 |
| but first I did rm -rf ~/.gradle | 13:39.15 |
| cleared out 2G of crap | 13:39.23 |
sebras | tor8: mine is 6.5Gbyte, and because I dont't understand this crap I guess I keep it. | 13:42.05 |
tor8 | I had a *lot* of old gradle versions in there | 13:42.20 |
| everything it's ever downloaded | 13:42.26 |
sebras | gradle-2.10-all gradle-2.1.1-all gradle-2.11-all gradle-2.12-all | 13:43.00 |
| gradle-2.14.1-all gradle-2.14-all gradle-2.2.1-all gradle-2.2-all | 13:43.00 |
| gradle-2.3-all gradle-2.4-all gradle-2.5-all gradle-2.6-all gradle-2.7-all | 13:43.00 |
| gradle-2.8-all gradle-2.9-all gradle-3.0-all gradle-3.1-all gradle-3.2.1-all | 13:43.00 |
| gradle-3.2-all gradle-3.3-all gradle-3.4.1-all gradle-3.4-all | 13:43.00 |
| I'm not surprised at all. | 13:43.05 |
tor8 | oh, there's a gradle 3.4? | 13:43.20 |
| nope, it's even up to 3.5! | 13:43.35 |
sebras | yes, but don't confuse the gradle version with the gradle wrapper version | 13:43.52 |
| the latter is what you specify in build.gradle | 13:44.00 |
| the former is what you set in gradle/wrapper/*.properties | 13:44.08 |
| how gradle wrapper and gradle relate I' | 13:44.18 |
| m not sure about. | 13:44.22 |
tor8 | I don't think you specify either in build.gradle | 13:44.53 |
| in build.gradle you specify the android plugin for gradle | 13:45.05 |
sebras | hm... | 13:46.11 |
| ok, so the android plugin for gradle and then in the gradle wrapper what gradle version is to be used. | 13:46.48 |
tor8 | using 3.5-bin instead of 3.5-all reduced the amount of crap it downloaded in ~/.gradle | 13:47.58 |
| 100Mb less | 13:48.07 |
sebras | that's nice, but what does that mean for usage? | 13:48.24 |
tor8 | it didn't install all the javadoc html files, etc | 13:48.25 |
sebras | oh that's the difference. | 13:48.31 |
| now, why would you use gradle 3.5? | 13:48.42 |
tor8 | because android has brainwashed me to always want the newest and shiniest? | 13:49.12 |
sebras | ok. | 13:49.18 |
tor8 | and because nobody ever tests anything against older versions... | 13:49.26 |
| if they test anything at all | 13:49.34 |
sebras | so neither of us should really be doing android stuff, but you know that right? | 13:49.49 |
tor8 | yes. all too well. | 13:49.58 |
sebras | so gradle 3.2 is included in android studio. | 13:50.05 |
| android/studio/gradle/gradle-3.2/bin/gradle | 13:50.28 |
tor8 | hm. | 13:50.44 |
| so you think by using gradle-wrapper and gradle > 3.2 might cause trouble? | 13:50.57 |
sebras | would gradle > 3.2 be accessible to android studio users? | 13:51.16 |
| I have no idead what would be downloaded and how and why. | 13:51.28 |
tor8 | nah. look what happens when you try to run the gradle bundled... | 13:51.37 |
| > Failed to apply plugin [id 'com.android.application'] | 13:51.43 |
| > Minimum supported Gradle version is 3.3. Current version is 3.2. If using the gradle wrapper, try editing the distributionUrl in /home/tor/src/mupdf-droid-old/gradle/wrapper/gradle-wrapper.properties to gradle-3.3-all.zip | 13:51.43 |
sebras | oh.. so it actually says to use -all... | 13:52.08 |
tor8 | sebras: on tor/master my edits | 13:52.09 |
| https://gradle.org/install#with-the-gradle-wrapper suggests -bin.zip | 13:52.33 |
sebras | oh.. 3.5 looks very differently. | 13:57.39 |
| tor8: sebras/master adds -j4 for the generate step. | 14:04.16 |
tor8 | sebras: sounds reasonable, even though the generate step is not exactly a slow one | 14:11.45 |
| I started writing a java tool to do the hexdump | 14:11.54 |
sebras | I'm running another testcompilation using studio from a distcleaned state. | 14:14.34 |
| tor8: that worked. | 14:16.44 |
| tor8: alright, so I merged the updates into the switch commit and repushed sebras/master | 14:22.13 |
| I have been contemplating adding a make lint target triggering the corresponding lint target in gradle. | 14:22.40 |
| how do you feel about that? | 14:22.44 |
| since I'm seeing about 100 warnings I'm guessing this is something we ought to address in the end. | 14:23.04 |
tor8 | sebras: go for it | 14:30.05 |
sebras | tor8: what does this mean for pushing the current patchset? | 14:32.49 |
tor8 | sebras: nothing? you can add the 'make lint' target now or later. the commits as on sebras/master now LGTM. | 14:36.18 |
sebras | tor8: nice. | 14:43.32 |
| I've added the lint target. | 14:43.41 |
| tor8: one quick last look and then I'll push. | 14:43.48 |
| look for you that is. :) | 14:43.57 |
tor8 | sebras: LGTM | 14:44.18 |
sebras | tor8: yey! :) | 14:44.49 |
| pushed. | 14:45.05 |
| tor8: one question is about the corresponding patches on tor/jni. do you need them? | 14:45.31 |
tor8 | I'll rebase the jni stuff later | 14:48.35 |
| right now I've got to go | 14:48.50 |
| g'night! | 14:48.54 |
sebras | g'night! | 14:49.00 |
| Forward 1 day (to 2017/05/12)>>> | |