[
https://issues.apache.org/jira/browse/CB-10673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15173928#comment-15173928
]
ASF GitHub Bot commented on CB-10673:
-------------------------------------
Github user bso-intel commented on the pull request:
https://github.com/apache/cordova-android/pull/264#issuecomment-190778940
@vladimir-kotikov,
This is just one example of the conflicting plugins.
There could be so many plugins out there that requires the same library
files.
Usually, the library files are very commonly used in many plugins.
Those files usually come from the same cordova-<platform> templates.
The problem is that we disallow those plugins to be installed with an
exception that says "Uh oh! stacktrace...".
This makes impossible to use two plugins that use the same library files.
This is not plugin writer's fault or app developer's fault.
We may have to print the warning log that says "the library file already
exists. skipped copying them" or "overwrote it.".
Throwing an exception is too strict in my opinion.
> overlapped <source-file> target-dir from two different plugins causes a
> failure.
> --------------------------------------------------------------------------------
>
> Key: CB-10673
> URL: https://issues.apache.org/jira/browse/CB-10673
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android, iOS, Windows
> Reporter: Byoungro So
> Assignee: Byoungro So
> Labels: pendingPR, triaged
>
> Cordova-android forces the target-dir of the <source-file> tag to be unique
> for no reason.
> However, this causes an issue.
> It is always possible that two different plugins could have overlapped
> target-dir path.
> It is impossible for a plugin to know that the target-dir is overlapped with
> other plugins's target dir.
> So, we should relax this requirement.
> For example, cordova-sqlite-storage has the following in its plugin.xml.
> {code}
> <source-file src="src/android/libs/armeabi/libsqlc-native-driver.so"
> target-dir="libs/armeabi"/>
> {code}
> com.intel.security has the following in its plugin.xml.
> {code}
> <source-file src="src/android/armeabi" target-dir="libs" />
> {code}
> When adding two plugins, cordova-android throws an exception.
> {code}
> [t6.0.1] cordova plugin add [email protected]
> Fetching plugin "[email protected]" via npm
> Installing "cordova-sqlite-storage" for android
> Installing "cordova-sqlite-storage" for ios
> [t6.0.1] cordova plugin add https://github.com/01org/AppSecurityApi.git#v1.4.1
> Fetching plugin "https://github.com/01org/AppSecurityApi.git" via git clone
> Repository "https://github.com/01org/AppSecurityApi.git" checked out to git
> ref "v1.4.1".
> Installing "com.intel.security" for android
> Failed to install 'com.intel.security':CordovaError: Uh oh!
> "/Users/bso/cordova/test/t6.0.1/platforms/android/libs/armeabi" already
> exists!
> at copyNewFile
> (/Users/bso/cordova/test/t6.0.1/platforms/android/cordova/lib/pluginHandlers.js:212:15)
> at handlers.source-file.install
> (/Users/bso/cordova/test/t6.0.1/platforms/android/cordova/lib/pluginHandlers.js:34:13)
> at Object.ActionStack.process
> (/Users/bso/cordova/test/t6.0.1/platforms/android/cordova/node_modules/cordova-common/src/ActionStack.js:56:25)
> at Api.addPlugin
> (/Users/bso/cordova/test/t6.0.1/platforms/android/cordova/Api.js:205:20)
> at handleInstall
> (/Users/bso/cordova/bso-cordova-lib/cordova-lib/src/plugman/install.js:598:6)
> at
> /Users/bso/cordova/bso-cordova-lib/cordova-lib/src/plugman/install.js:396:28
> at _fulfilled
> (/Users/bso/cordova/bso-cordova-lib/cordova-lib/node_modules/q/q.js:787:54)
> at self.promiseDispatch.done
> (/Users/bso/cordova/bso-cordova-lib/cordova-lib/node_modules/q/q.js:816:30)
> at Promise.promise.promiseDispatch
> (/Users/bso/cordova/bso-cordova-lib/cordova-lib/node_modules/q/q.js:749:13)
> at
> /Users/bso/cordova/bso-cordova-lib/cordova-lib/node_modules/q/q.js:509:49
> Error: Uh oh!
> "/Users/bso/cordova/test/t6.0.1/platforms/android/libs/armeabi" already
> exists!
> {code}
> I figured the same issue is present in cordova-ios and cordova-windows, too.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]