GitLiveApp / firebase-java-sdk

A pure java port of the Firebase Android SDK
Apache License 2.0
18 stars 6 forks source link

Subsequent execution of copyAars fails because of permissions #10

Closed fmasa closed 5 months ago

fmasa commented 5 months ago

When copyAars is executed, the some jars copied to build/jar do not have write permissions on them. When this task is executed again, it fails because it now tries to overwrite file that is read only.

This means that when working on this library I have to run clean task between every build. This happens on Linux (and I would expect this to be the case on Mac as well).

Failed tasks correspond to the files without write permissions:

Execution failed for task ':firebase-auth-interop-20.0.0.aar'.
> Could not copy zip entry /home/fmasa/dev/oss/firebase-java-sdk/build/aar/firebase-auth-interop-20.0.0.aar!classes.jar to '/home/fmasa/dev/oss/firebase-java-sdk/build/jar/firebase-auth-interop-20.0.0.jar'.
   > /home/fmasa/dev/oss/firebase-java-sdk/build/jar/firebase-auth-interop-20.0.0.jar (Permission denied)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

This is the result of ls -lh build/jar:

-rw-r--r-- 1 fmasa fmasa 6.8K Apr 10 21:21 asynclayoutinflater-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa  41K Apr 10 21:21 coordinatorlayout-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa 670K Apr 10 21:21 core-1.2.0.jar
-rw-r--r-- 1 fmasa fmasa 5.6K Apr 10 21:21 core-runtime-2.0.0.jar
-rw-r--r-- 1 fmasa fmasa  12K Apr 10 21:21 cursoradapter-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa  33K Apr 10 21:21 customview-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa  12K Apr 10 21:21 documentfile-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa  31K Apr 10 21:21 drawerlayout-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa  11K Apr 10 21:21 firebase-abt-21.1.1.jar
-rw-r--r-- 1 fmasa fmasa 2.7K Apr 10 21:21 firebase-appcheck-interop-17.1.0.jar
-r-xr-xr-x 1 fmasa fmasa 5.4K Apr 10 21:21 firebase-auth-interop-20.0.0.jar
-rw-r--r-- 1 fmasa fmasa 103K Apr 10 21:21 firebase-common-20.4.2.jar
-rw-r--r-- 1 fmasa fmasa 2.8K Apr 10 21:21 firebase-common-ktx-20.4.2.jar
-rw-r--r-- 1 fmasa fmasa  49K Apr 10 21:21 firebase-components-17.1.5.jar
-rw-r--r-- 1 fmasa fmasa 113K Apr 10 21:21 firebase-config-21.6.0.jar
-rw-r--r-- 1 fmasa fmasa  12K Apr 10 21:21 firebase-config-interop-16.0.0.jar
-rw-r--r-- 1 fmasa fmasa 584K Apr 10 21:21 firebase-database-20.3.0.jar
-r-xr-xr-x 1 fmasa fmasa  87K Apr 10 21:21 firebase-database-collection-18.0.1.jar
-rw-r--r-- 1 fmasa fmasa  11K Apr 10 21:21 firebase-encoders-json-18.0.1.jar
-rw-r--r-- 1 fmasa fmasa 1.5M Apr 10 21:21 firebase-firestore-24.10.0.jar
-rw-r--r-- 1 fmasa fmasa  55K Apr 10 21:21 firebase-functions-20.4.0.jar
-r-xr-xr-x 1 fmasa fmasa  38K Apr 10 21:21 firebase-iid-21.1.0.jar
-r-xr-xr-x 1 fmasa fmasa 1.7K Apr 10 21:21 firebase-iid-interop-17.1.0.jar
-rw-r--r-- 1 fmasa fmasa  63K Apr 10 21:21 firebase-installations-17.2.0.jar
-rw-r--r-- 1 fmasa fmasa 7.2K Apr 10 21:21 firebase-installations-interop-17.1.1.jar
-r-xr-xr-x 1 fmasa fmasa 3.3K Apr 10 21:21 firebase-measurement-connector-18.0.0.jar
-rw-r--r-- 1 fmasa fmasa 163K Apr 10 21:21 fragment-1.0.0.jar
-rw-rw-r-- 1 fmasa fmasa 9.5K Apr 10 21:21 grpc-android-1.52.1.jar
-rw-r--r-- 1 fmasa fmasa 7.5K Apr 10 21:21 interpolator-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa 9.7K Apr 10 21:21 legacy-support-core-ui-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa 2.0K Apr 10 21:21 legacy-support-core-utils-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa  11K Apr 10 21:21 lifecycle-livedata-2.0.0.jar
-rw-r--r-- 1 fmasa fmasa 8.5K Apr 10 21:21 lifecycle-livedata-core-2.0.0.jar
-rw-r--r-- 1 fmasa fmasa 8.9K Apr 10 21:21 lifecycle-runtime-2.0.0.jar
-rw-r--r-- 1 fmasa fmasa 6.9K Apr 10 21:21 lifecycle-viewmodel-2.0.0.jar
-rw-r--r-- 1 fmasa fmasa  35K Apr 10 21:21 loader-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa 6.8K Apr 10 21:21 localbroadcastmanager-1.0.0.jar
-r-xr-xr-x 1 fmasa fmasa 496K Apr 10 21:21 play-services-base-18.1.0.jar
-r-xr-xr-x 1 fmasa fmasa 347K Apr 10 21:21 play-services-basement-18.1.0.jar
-r-xr-xr-x 1 fmasa fmasa  44K Apr 10 21:21 play-services-cloud-messaging-16.0.0.jar
-r-xr-xr-x 1 fmasa fmasa 7.3K Apr 10 21:21 play-services-stats-17.0.0.jar
-r-xr-xr-x 1 fmasa fmasa  41K Apr 10 21:21 play-services-tasks-18.0.2.jar
-rw-r--r-- 1 fmasa fmasa  16K Apr 10 21:21 print-1.0.0.jar
-r-xr-xr-x 1 fmasa fmasa 2.8M Apr 10 21:21 protolite-well-known-types-18.0.0.jar
-rw-r--r-- 1 fmasa fmasa  23K Apr 10 21:21 slidingpanelayout-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa  34K Apr 10 21:21 swiperefreshlayout-1.0.0.jar
-rw-r--r-- 1 fmasa fmasa  32K Apr 10 21:21 versionedparcelable-1.1.0.jar
-rw-r--r-- 1 fmasa fmasa  55K Apr 10 21:21 viewpager-1.0.0.jar
nbransby commented 5 months ago

I have seen this behavior on mac, I didn't realise its was due to the permissions, do you know of a solution?

fmasa commented 5 months ago

AFAIK the Gradle Copy task supports change of file permissions, so leveraging that to add the write permission for the jars should do the trick. I'll take a look at it in a few days. You can assign this issue to me, so I don't forget 😅