You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sg...@apache.org on 2014/10/31 17:36:07 UTC

[1/2] git commit: CB-6992 Fix build issue on iOS when app name contains accented characters

Repository: cordova-lib
Updated Branches:
  refs/heads/master 4af51a2b4 -> 30d68acd6


CB-6992 Fix build issue on iOS when app name contains accented characters


Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/5b360c84
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/5b360c84
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/5b360c84

Branch: refs/heads/master
Commit: 5b360c84b41ceb2ef370b4fb6150be793c982b8f
Parents: 4af51a2
Author: Kotikov Vladimir <v-...@microsoft.com>
Authored: Fri Oct 24 02:58:19 2014 -0700
Committer: sgrebnov <v-...@microsoft.com>
Committed: Fri Oct 31 09:33:48 2014 -0700

----------------------------------------------------------------------
 cordova-lib/src/cordova/metadata/ios_parser.js | 8 ++++----
 cordova-lib/src/cordova/platform.js            | 6 +++++-
 2 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/5b360c84/cordova-lib/src/cordova/metadata/ios_parser.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/metadata/ios_parser.js b/cordova-lib/src/cordova/metadata/ios_parser.js
index 877b68e..c2b2844 100644
--- a/cordova-lib/src/cordova/metadata/ios_parser.js
+++ b/cordova-lib/src/cordova/metadata/ios_parser.js
@@ -40,9 +40,6 @@ module.exports = function ios_parser(project) {
         if (!xcodeproj_dir) throw new CordovaError('The provided path "' + project + '" is not a Cordova iOS project.');
         this.xcodeproj = path.join(project, xcodeproj_dir);
         this.originalName = this.xcodeproj.substring(this.xcodeproj.lastIndexOf(path.sep)+1, this.xcodeproj.indexOf('.xcodeproj'));
-        // CB-6992 it is necessary to normalize characters
-        // because node and shell scripts handles unicode symbols differently
-        this.originalName = unorm.nfd(this.originalName);
         this.cordovaproj = path.join(project, this.originalName);
     } catch(e) {
         throw new CordovaError('The provided path "'+project+'" is not a Cordova iOS project.');
@@ -59,7 +56,10 @@ module.exports.prototype = {
         } else {
             return Q.reject(new Error('update_from_config requires a ConfigParser object'));
         }
-        var name = config.name();
+        // CB-6992 it is necessary to normalize characters
+        // because node and shell scripts handles unicode symbols differently
+        // We need to normalize the name to NFD form since iOS uses NFD unicode form
+        var name = unorm.nfd(config.name());
         var pkg = config.ios_CFBundleIdentifier() || config.packageName();
         var version = config.version();
 

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/5b360c84/cordova-lib/src/cordova/platform.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/platform.js b/cordova-lib/src/cordova/platform.js
index d8264e1..bd22bf7 100644
--- a/cordova-lib/src/cordova/platform.js
+++ b/cordova-lib/src/cordova/platform.js
@@ -39,6 +39,7 @@ var config            = require('./config'),
     promiseutil       = require('../util/promise-util'),
     superspawn        = require('./superspawn'),
     semver            = require('semver'),
+    unorm             = require('unorm'),
     shell             = require('shelljs');
 
 // Expose the platform parsers on top of this command
@@ -455,7 +456,10 @@ function call_into_create(target, projectRoot, cfg, libDir, template_dir, opts)
     }
 
     var pkg = cfg.packageName().replace(/[^\w.]/g,'_');
-    var name = cfg.name();
+    // CB-6992 it is necessary to normalize characters
+    // because node and shell scripts handles unicode symbols differently
+    // We need to normalize the name to NFD form since iOS uses NFD unicode form
+    var name = target == 'ios' ? unorm.nfd(cfg.name()) : cfg.name();
     args.push(output, pkg, name);
     if (template_dir) {
         args.push(template_dir);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[2/2] git commit: CB-7846 Fix plugin deletion when dependency plugin does not exist

Posted by sg...@apache.org.
CB-7846 Fix plugin deletion when dependency plugin does not exist


Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/30d68acd
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/30d68acd
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/30d68acd

Branch: refs/heads/master
Commit: 30d68acd6c9037b8bcd7d3f93e95d76e79d65207
Parents: 5b360c8
Author: sgrebnov <v-...@microsoft.com>
Authored: Wed Oct 22 12:59:05 2014 +0400
Committer: sgrebnov <v-...@microsoft.com>
Committed: Fri Oct 31 09:34:21 2014 -0700

----------------------------------------------------------------------
 cordova-lib/spec-plugman/util/dependencies.spec.js |  6 +++---
 cordova-lib/src/plugman/uninstall.js               | 12 +++++++++---
 cordova-lib/src/plugman/util/dependencies.js       | 17 +++++++++++++----
 3 files changed, 25 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/30d68acd/cordova-lib/spec-plugman/util/dependencies.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/util/dependencies.spec.js b/cordova-lib/spec-plugman/util/dependencies.spec.js
index d8e6ef2..3fa5ece 100644
--- a/cordova-lib/spec-plugman/util/dependencies.spec.js
+++ b/cordova-lib/spec-plugman/util/dependencies.spec.js
@@ -22,7 +22,7 @@ var dependencies = require('../../src/plugman/util/dependencies'),
     config = require('../../src/plugman/util/config-changes');
 
 describe('dependency module', function() {
-    describe('generate_dependency_info method', function() {
+    describe('generateDependencyInfo method', function() {
         it('should return a list of top-level plugins based on what is inside a platform.json file', function() {
             var tlps = {
                 "hello":"",
@@ -34,7 +34,7 @@ describe('dependency module', function() {
                 installed_plugins:tlps,
                 dependent_plugins:[]
             });
-            var obj = dependencies.generate_dependency_info('some dir');
+            var obj = dependencies.generateDependencyInfo('some dir');
             expect(obj.top_level_plugins).toEqual(Object.keys(tlps));
         });
         it('should return a dependency graph for the plugins', function() {
@@ -51,7 +51,7 @@ describe('dependency module', function() {
                 installed_plugins:tlps,
                 dependent_plugins:[]
             });
-            var obj = dependencies.generate_dependency_info(path.join(__dirname, '..', 'plugins', 'dependencies'), 'android');
+            var obj = dependencies.generateDependencyInfo(path.join(__dirname, '..', 'plugins', 'dependencies'), 'android');
             expect(obj.graph.getChain('A')).toEqual(['C','D']);
             expect(obj.graph.getChain('B')).toEqual(['D', 'E']);
         });

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/30d68acd/cordova-lib/src/plugman/uninstall.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/uninstall.js b/cordova-lib/src/plugman/uninstall.js
index fd02fe9..f4b94cd 100644
--- a/cordova-lib/src/plugman/uninstall.js
+++ b/cordova-lib/src/plugman/uninstall.js
@@ -118,7 +118,13 @@ module.exports.uninstallPlugin = function(id, plugins_dir, options) {
     // Recursively remove plugins which were installed as dependents (that are not top-level)
     var toDelete = [];
     function findDependencies(pluginId) {
-        var config = xml_helpers.parseElementtreeSync(path.join(plugin_dir, '..', pluginId, 'plugin.xml')),
+        var depPluginDir = path.join(plugin_dir, '..', pluginId);
+        // Skip plugin check for dependencies if it does not exist (CB-7846).
+        if (!fs.existsSync(depPluginDir) ) {
+            events.emit('verbose', 'Plugin "'+ pluginId +'" does not exist ('+ depPluginDir +')');
+            return;
+        }
+        var config = xml_helpers.parseElementtreeSync(path.join(depPluginDir, 'plugin.xml')),
             deps = config.findall('.//dependency').map(function (p) { return p.attrib.id; });
         deps.forEach(function (d) {
             if (toDelete.indexOf(d) === -1) {
@@ -139,7 +145,7 @@ module.exports.uninstallPlugin = function(id, plugins_dir, options) {
     // Can have missing plugins on some platforms when not supported..
     var dependList = {};
     platforms.forEach(function(platform) {
-        var depsInfo = dependencies.generate_dependency_info(plugins_dir, platform);
+        var depsInfo = dependencies.generateDependencyInfo(plugins_dir, platform);
         var tlps = depsInfo.top_level_plugins;
         var deps;
 
@@ -209,7 +215,7 @@ function runUninstallPlatform(actions, platform, project_dir, plugin_dir, plugin
     var plugin_id    = plugin_et._root.attrib['id'];
 
     // Deps info can be passed recusively
-    var depsInfo = options.depsInfo || dependencies.generate_dependency_info(plugins_dir, platform, 'remove');
+    var depsInfo = options.depsInfo || dependencies.generateDependencyInfo(plugins_dir, platform, 'remove');
 
     // Check that this plugin has no dependents.
     var dependents = dependencies.dependents(plugin_id, depsInfo, platform);

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/30d68acd/cordova-lib/src/plugman/util/dependencies.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/util/dependencies.js b/cordova-lib/src/plugman/util/dependencies.js
index 511dfb6..63690de 100644
--- a/cordova-lib/src/plugman/util/dependencies.js
+++ b/cordova-lib/src/plugman/util/dependencies.js
@@ -24,9 +24,11 @@
 
 var dep_graph = require('dep-graph'),
     path = require('path'),
+    fs = require('fs'),
     config_changes = require('./config-changes'),
     underscore = require('underscore'),
     xml_helpers = require('../../util/xml-helpers'),
+    events = require('../../events'),
     package;
 
 module.exports = package = {
@@ -41,7 +43,7 @@ module.exports = package = {
         return path.join(plugins_dir, plugin_id, 'plugin.xml');
     },
 
-    generate_dependency_info:function(plugins_dir, platform) {
+    generateDependencyInfo:function(plugins_dir, platform) {
         var json = config_changes.get_platform_json(plugins_dir, platform);
 
         // TODO: store whole dependency tree in plugins/[platform].json
@@ -59,7 +61,14 @@ module.exports = package = {
             });
         });
         Object.keys(json.dependent_plugins).forEach(function(plugin_id) {
-            var xml = xml_helpers.parseElementtreeSync( package.resolveConfig(plugin_id, plugins_dir) );
+            var configPath = package.resolveConfig(plugin_id, plugins_dir);
+            // dependency plugin does not exist (CB-7846)
+            if (!fs.existsSync(configPath)) {
+                events.emit('verbose', 'Plugin "'+ plugin_id +'" does not exist ('+ configPath +')');
+                return;
+            }
+
+            var xml = xml_helpers.parseElementtreeSync(configPath);
             var deps = xml.findall('.//dependency');
             deps && deps.forEach(function(dep) {
                 graph.add(plugin_id, dep.attrib.id);
@@ -78,7 +87,7 @@ module.exports = package = {
         if(typeof plugins_dir == 'object')
             depsInfo = plugins_dir;
         else
-            depsInfo = package.generate_dependency_info(plugins_dir, platform);
+            depsInfo = package.generateDependencyInfo(plugins_dir, platform);
 
         var graph = depsInfo.graph;
         var tlps = depsInfo.top_level_plugins;
@@ -96,7 +105,7 @@ module.exports = package = {
         if(typeof plugins_dir == 'object')
             depsInfo = plugins_dir;
         else
-            depsInfo = package.generate_dependency_info(plugins_dir, platform);
+            depsInfo = package.generateDependencyInfo(plugins_dir, platform);
 
         var graph = depsInfo.graph;
         var dependencies = graph.getChain(plugin_id);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org