dmg-builder 22.5.0 → 22.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/out/dmg.js CHANGED
@@ -162,7 +162,7 @@ class DmgTarget extends _appBuilderLib().Target {
162
162
 
163
163
  await (0, _builderUtil().spawn)("hdiutil", addLogLevel(args));
164
164
 
165
- if (this.options.internetEnabled && parseInt(require("os").split(".")[0], 10) < 19) {
165
+ if (this.options.internetEnabled && parseInt(require("os").release().split(".")[0], 10) < 19) {
166
166
  await (0, _builderUtil().exec)("hdiutil", addLogLevel(["internet-enable"]).concat(artifactPath));
167
167
  }
168
168
 
package/out/dmg.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dmg.ts"],"names":[],"mappings":"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","sourcesContent":["import { DmgOptions, Target } from \"app-builder-lib\"\nimport { findIdentity, isSignAllowed } from \"app-builder-lib/out/codeSign/macCodeSign\"\nimport MacPackager from \"app-builder-lib/out/macPackager\"\nimport { createBlockmap } from \"app-builder-lib/out/targets/differentialUpdateInfoBuilder\"\nimport { executeAppBuilderAsJson } from \"app-builder-lib/out/util/appBuilder\"\nimport { Arch, AsyncTaskManager, exec, InvalidConfigurationError, isEmptyOrSpaces, log, spawn } from \"builder-util\"\nimport { CancellationToken } from \"builder-util-runtime\"\nimport { copyDir, copyFile, exists, statOrNull } from \"builder-util/out/fs\"\nimport { stat } from \"fs-extra\"\nimport * as path from \"path\"\nimport sanitizeFileName from \"sanitize-filename\"\nimport { TmpDir } from \"temp-file\"\nimport { addLicenseToDmg } from \"./dmgLicense\"\nimport { attachAndExecute, computeBackground, detach, getDmgVendorPath } from \"./dmgUtil\"\n\nexport class DmgTarget extends Target {\n readonly options: DmgOptions = this.packager.config.dmg || Object.create(null)\n\n constructor(private readonly packager: MacPackager, readonly outDir: string) {\n super(\"dmg\")\n }\n\n async build(appPath: string, arch: Arch) {\n const packager = this.packager\n // tslint:disable-next-line:no-invalid-template-strings\n const artifactName = packager.expandArtifactNamePattern(packager.config.dmg, \"dmg\", null, \"${productName}-\" + (packager.platformSpecificBuildOptions.bundleShortVersion || \"${version}\") + \".${ext}\")\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"DMG\",\n file: artifactPath,\n arch,\n })\n\n const volumeName = sanitizeFileName(this.computeVolumeName(this.options.title))\n\n const tempDmg = await createStageDmg(await packager.getTempFile(\".dmg\"), appPath, volumeName)\n\n const specification = await this.computeDmgOptions()\n // https://github.com/electron-userland/electron-builder/issues/2115\n const backgroundFile = specification.background == null ? null : await transformBackgroundFileIfNeed(specification.background, packager.info.tempDirManager)\n const finalSize = await computeAssetSize(packager.info.cancellationToken, tempDmg, specification, backgroundFile)\n const expandingFinalSize = (finalSize * 0.1) + finalSize\n await exec(\"hdiutil\", [\"resize\", \"-size\", expandingFinalSize.toString(), tempDmg])\n\n const volumePath = path.join(\"/Volumes\", volumeName)\n if (await exists(volumePath)) {\n log.debug({volumePath}, \"unmounting previous disk image\")\n await detach(volumePath)\n }\n\n if (!await attachAndExecute(tempDmg, true, () => customizeDmg(volumePath, specification, packager, backgroundFile))) {\n return\n }\n\n // dmg file must not exist otherwise hdiutil failed (https://github.com/electron-userland/electron-builder/issues/1308#issuecomment-282847594), so, -ov must be specified\n const args = [\"convert\", tempDmg, \"-ov\", \"-format\", specification.format!!, \"-o\", artifactPath]\n if (specification.format === \"UDZO\") {\n args.push(\"-imagekey\", `zlib-level=${process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL || \"9\"}`)\n }\n await spawn(\"hdiutil\", addLogLevel(args))\n if (this.options.internetEnabled && parseInt(require(\"os\").split(\".\")[0], 10) < 19) {\n await exec(\"hdiutil\", addLogLevel([\"internet-enable\"]).concat(artifactPath))\n }\n\n const licenseData = await addLicenseToDmg(packager, artifactPath)\n if (packager.packagerOptions.effectiveOptionComputed != null) {\n await packager.packagerOptions.effectiveOptionComputed({licenseData})\n }\n\n if (this.options.sign === true) {\n await this.signDmg(artifactPath)\n }\n\n const safeArtifactName = packager.computeSafeArtifactName(artifactName, \"dmg\")\n const updateInfo = this.options.writeUpdateInfo === false ? null : await createBlockmap(artifactPath, this, packager, safeArtifactName)\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n safeArtifactName,\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: updateInfo != null,\n updateInfo,\n })\n }\n\n private async signDmg(artifactPath: string) {\n if (!isSignAllowed(false)) {\n return\n }\n\n const packager = this.packager\n const qualifier = packager.platformSpecificBuildOptions.identity\n // explicitly disabled if set to null\n if (qualifier === null) {\n // macPackager already somehow handle this situation, so, here just return\n return\n }\n\n const keychainFile = (await packager.codeSigningInfo.value).keychainFile\n const certificateType = \"Developer ID Application\"\n let identity = await findIdentity(certificateType, qualifier, keychainFile)\n if (identity == null) {\n identity = await findIdentity(\"Mac Developer\", qualifier, keychainFile)\n if (identity == null) {\n return\n }\n }\n\n const args = [\"--sign\", identity.hash]\n if (keychainFile != null) {\n args.push(\"--keychain\", keychainFile)\n }\n args.push(artifactPath)\n await exec(\"codesign\", args)\n }\n\n computeVolumeName(custom?: string | null): string {\n const appInfo = this.packager.appInfo\n const shortVersion = this.packager.platformSpecificBuildOptions.bundleShortVersion || appInfo.version\n\n if (custom == null) {\n return `${appInfo.productFilename} ${shortVersion}`\n }\n\n return custom\n .replace(/\\${shortVersion}/g, shortVersion)\n .replace(/\\${version}/g, appInfo.version)\n .replace(/\\${name}/g, appInfo.name)\n .replace(/\\${productName}/g, appInfo.productName)\n }\n\n // public to test\n async computeDmgOptions(): Promise<DmgOptions> {\n const packager = this.packager\n const specification: DmgOptions = {...this.options}\n if (specification.icon == null && specification.icon !== null) {\n specification.icon = await packager.getIconPath()\n }\n\n if (specification.icon != null && isEmptyOrSpaces(specification.icon)) {\n throw new InvalidConfigurationError(\"dmg.icon cannot be specified as empty string\")\n }\n\n const background = specification.background\n if (specification.backgroundColor != null) {\n if (background != null) {\n throw new InvalidConfigurationError(\"Both dmg.backgroundColor and dmg.background are specified — please set the only one\")\n }\n }\n else if (background == null) {\n specification.background = await computeBackground(packager)\n }\n else {\n specification.background = path.resolve(packager.info.projectDir, background)\n }\n\n if (specification.format == null) {\n if (process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL != null) {\n (specification as any).format = \"UDZO\"\n }\n else if (packager.compression === \"store\") {\n specification.format = \"UDRO\"\n }\n else {\n specification.format = packager.compression === \"maximum\" ? \"UDBZ\" : \"UDZO\"\n }\n }\n\n if (specification.contents == null) {\n specification.contents = [\n {\n x: 130, y: 220\n },\n {\n x: 410, y: 220, type: \"link\", path: \"/Applications\"\n }\n ]\n }\n return specification\n }\n}\n\nasync function createStageDmg(tempDmg: string, appPath: string, volumeName: string) {\n //noinspection SpellCheckingInspection\n const imageArgs = addLogLevel([\"create\",\n \"-srcfolder\", appPath,\n \"-volname\", volumeName,\n \"-anyowners\", \"-nospotlight\",\n \"-format\", \"UDRW\",\n ])\n imageArgs.push(\"-fs\", \"HFS+\", \"-fsargs\", \"-c c=64,a=16,e=16\")\n imageArgs.push(tempDmg)\n await spawn(\"hdiutil\", imageArgs)\n return tempDmg\n}\n\nfunction addLogLevel(args: Array<string>): Array<string> {\n args.push(process.env.DEBUG_DMG === \"true\" ? \"-verbose\" : \"-quiet\")\n return args\n}\n\nasync function computeAssetSize(cancellationToken: CancellationToken, dmgFile: string, specification: DmgOptions, backgroundFile: string | null | undefined) {\n const asyncTaskManager = new AsyncTaskManager(cancellationToken)\n asyncTaskManager.addTask(stat(dmgFile))\n\n if (specification.icon != null) {\n asyncTaskManager.addTask(statOrNull(specification.icon))\n }\n\n if (backgroundFile != null) {\n asyncTaskManager.addTask(stat(backgroundFile))\n }\n\n let result = 32 * 1024\n for (const stat of await asyncTaskManager.awaitTasks()) {\n if (stat != null) {\n result += stat.size\n }\n }\n return result\n}\n\nasync function customizeDmg(volumePath: string, specification: DmgOptions, packager: MacPackager, backgroundFile: string | null | undefined) {\n const window = specification.window\n const env: any = {\n ...process.env,\n volumePath,\n appFileName: `${packager.appInfo.productFilename}.app`,\n iconSize: specification.iconSize || 80,\n iconTextSize: specification.iconTextSize || 12,\n\n PYTHONIOENCODING: \"utf8\",\n }\n\n if (specification.backgroundColor != null || specification.background == null) {\n env.backgroundColor = specification.backgroundColor || \"#ffffff\"\n\n if (window != null) {\n env.windowX = (window.x == null ? 100 : window.x).toString()\n env.windowY = (window.y == null ? 400 : window.y).toString()\n env.windowWidth = (window.width || 540).toString()\n env.windowHeight = (window.height || 380).toString()\n }\n }\n else {\n delete env.backgroundColor\n }\n\n const args = [\"dmg\", \"--volume\", volumePath]\n if (specification.icon != null) {\n args.push(\"--icon\", (await packager.getResource(specification.icon))!!)\n }\n if (backgroundFile != null) {\n args.push(\"--background\", backgroundFile)\n }\n\n const data: any = await executeAppBuilderAsJson(args)\n if (data.backgroundWidth != null) {\n env.windowWidth = window == null ? null : window.width\n env.windowHeight = window == null ? null : window.height\n\n if (env.windowWidth == null) {\n env.windowWidth = data.backgroundWidth.toString()\n }\n if (env.windowHeight == null) {\n env.windowHeight = data.backgroundHeight.toString()\n }\n\n if (env.windowX == null) {\n env.windowX = 400\n }\n if (env.windowY == null) {\n env.windowY = Math.round((1440 - env.windowHeight) / 2).toString()\n }\n }\n\n Object.assign(env, data)\n\n const asyncTaskManager = new AsyncTaskManager(packager.info.cancellationToken)\n env.iconLocations = await computeDmgEntries(specification, volumePath, packager, asyncTaskManager)\n await asyncTaskManager.awaitTasks()\n\n await exec(\"/usr/bin/python\", [path.join(getDmgVendorPath(), \"dmgbuild/core.py\")], {\n cwd: getDmgVendorPath(),\n env\n })\n return packager.packagerOptions.effectiveOptionComputed == null || !(await packager.packagerOptions.effectiveOptionComputed({volumePath, specification, packager}))\n}\n\nasync function computeDmgEntries(specification: DmgOptions, volumePath: string, packager: MacPackager, asyncTaskManager: AsyncTaskManager): Promise<string> {\n let result = \"\"\n for (const c of specification.contents!!) {\n if (c.path != null && c.path.endsWith(\".app\") && c.type !== \"link\") {\n log.warn({path: c.path, reason: \"actual path to app will be used instead\"}, \"do not specify path for application\")\n }\n\n const entryPath = c.path || `${packager.appInfo.productFilename}.app`\n const entryName = c.name || path.basename(entryPath)\n if (result.length !== 0) {\n result += \",\\n\"\n }\n result += `'${entryName}': (${c.x}, ${c.y})`\n\n if (c.type === \"link\") {\n asyncTaskManager.addTask(exec(\"ln\", [\"-s\", `/${entryPath.startsWith(\"/\") ? entryPath.substring(1) : entryPath}`, `${volumePath}/${entryName}`]))\n }\n // use c.path instead of entryPath (to be sure that this logic is not applied to .app bundle) https://github.com/electron-userland/electron-builder/issues/2147\n else if (!isEmptyOrSpaces(c.path) && (c.type === \"file\" || c.type === \"dir\")) {\n const source = await packager.getResource(c.path)\n if (source == null) {\n log.warn({entryPath, reason: \"doesn't exist\"}, \"skipped DMG item copying\")\n continue\n }\n\n const destination = `${volumePath}/${entryName}`\n asyncTaskManager.addTask(c.type === \"dir\" || (await stat(source)).isDirectory() ? copyDir(source, destination) : copyFile(source, destination))\n }\n }\n return result\n}\n\nasync function transformBackgroundFileIfNeed(file: string, tmpDir: TmpDir): Promise<string> {\n if (file.endsWith(\".tiff\") || file.endsWith(\".TIFF\")) {\n return file\n }\n\n const retinaFile = file.replace(/\\.([a-z]+)$/, \"@2x.$1\")\n if (await exists(retinaFile)) {\n const tiffFile = await tmpDir.getTempFile({suffix: \".tiff\"})\n await exec(\"tiffutil\", [\"-cathidpicheck\", file, retinaFile, \"-out\", tiffFile])\n return tiffFile\n }\n\n return file\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../src/dmg.ts"],"names":[],"mappings":"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","sourcesContent":["import { DmgOptions, Target } from \"app-builder-lib\"\nimport { findIdentity, isSignAllowed } from \"app-builder-lib/out/codeSign/macCodeSign\"\nimport MacPackager from \"app-builder-lib/out/macPackager\"\nimport { createBlockmap } from \"app-builder-lib/out/targets/differentialUpdateInfoBuilder\"\nimport { executeAppBuilderAsJson } from \"app-builder-lib/out/util/appBuilder\"\nimport { Arch, AsyncTaskManager, exec, InvalidConfigurationError, isEmptyOrSpaces, log, spawn } from \"builder-util\"\nimport { CancellationToken } from \"builder-util-runtime\"\nimport { copyDir, copyFile, exists, statOrNull } from \"builder-util/out/fs\"\nimport { stat } from \"fs-extra\"\nimport * as path from \"path\"\nimport sanitizeFileName from \"sanitize-filename\"\nimport { TmpDir } from \"temp-file\"\nimport { addLicenseToDmg } from \"./dmgLicense\"\nimport { attachAndExecute, computeBackground, detach, getDmgVendorPath } from \"./dmgUtil\"\n\nexport class DmgTarget extends Target {\n readonly options: DmgOptions = this.packager.config.dmg || Object.create(null)\n\n constructor(private readonly packager: MacPackager, readonly outDir: string) {\n super(\"dmg\")\n }\n\n async build(appPath: string, arch: Arch) {\n const packager = this.packager\n // tslint:disable-next-line:no-invalid-template-strings\n const artifactName = packager.expandArtifactNamePattern(packager.config.dmg, \"dmg\", null, \"${productName}-\" + (packager.platformSpecificBuildOptions.bundleShortVersion || \"${version}\") + \".${ext}\")\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"DMG\",\n file: artifactPath,\n arch,\n })\n\n const volumeName = sanitizeFileName(this.computeVolumeName(this.options.title))\n\n const tempDmg = await createStageDmg(await packager.getTempFile(\".dmg\"), appPath, volumeName)\n\n const specification = await this.computeDmgOptions()\n // https://github.com/electron-userland/electron-builder/issues/2115\n const backgroundFile = specification.background == null ? null : await transformBackgroundFileIfNeed(specification.background, packager.info.tempDirManager)\n const finalSize = await computeAssetSize(packager.info.cancellationToken, tempDmg, specification, backgroundFile)\n const expandingFinalSize = (finalSize * 0.1) + finalSize\n await exec(\"hdiutil\", [\"resize\", \"-size\", expandingFinalSize.toString(), tempDmg])\n\n const volumePath = path.join(\"/Volumes\", volumeName)\n if (await exists(volumePath)) {\n log.debug({volumePath}, \"unmounting previous disk image\")\n await detach(volumePath)\n }\n\n if (!await attachAndExecute(tempDmg, true, () => customizeDmg(volumePath, specification, packager, backgroundFile))) {\n return\n }\n\n // dmg file must not exist otherwise hdiutil failed (https://github.com/electron-userland/electron-builder/issues/1308#issuecomment-282847594), so, -ov must be specified\n const args = [\"convert\", tempDmg, \"-ov\", \"-format\", specification.format!!, \"-o\", artifactPath]\n if (specification.format === \"UDZO\") {\n args.push(\"-imagekey\", `zlib-level=${process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL || \"9\"}`)\n }\n await spawn(\"hdiutil\", addLogLevel(args))\n if (this.options.internetEnabled && parseInt(require(\"os\").release().split(\".\")[0], 10) < 19) {\n await exec(\"hdiutil\", addLogLevel([\"internet-enable\"]).concat(artifactPath))\n }\n\n const licenseData = await addLicenseToDmg(packager, artifactPath)\n if (packager.packagerOptions.effectiveOptionComputed != null) {\n await packager.packagerOptions.effectiveOptionComputed({licenseData})\n }\n\n if (this.options.sign === true) {\n await this.signDmg(artifactPath)\n }\n\n const safeArtifactName = packager.computeSafeArtifactName(artifactName, \"dmg\")\n const updateInfo = this.options.writeUpdateInfo === false ? null : await createBlockmap(artifactPath, this, packager, safeArtifactName)\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n safeArtifactName,\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: updateInfo != null,\n updateInfo,\n })\n }\n\n private async signDmg(artifactPath: string) {\n if (!isSignAllowed(false)) {\n return\n }\n\n const packager = this.packager\n const qualifier = packager.platformSpecificBuildOptions.identity\n // explicitly disabled if set to null\n if (qualifier === null) {\n // macPackager already somehow handle this situation, so, here just return\n return\n }\n\n const keychainFile = (await packager.codeSigningInfo.value).keychainFile\n const certificateType = \"Developer ID Application\"\n let identity = await findIdentity(certificateType, qualifier, keychainFile)\n if (identity == null) {\n identity = await findIdentity(\"Mac Developer\", qualifier, keychainFile)\n if (identity == null) {\n return\n }\n }\n\n const args = [\"--sign\", identity.hash]\n if (keychainFile != null) {\n args.push(\"--keychain\", keychainFile)\n }\n args.push(artifactPath)\n await exec(\"codesign\", args)\n }\n\n computeVolumeName(custom?: string | null): string {\n const appInfo = this.packager.appInfo\n const shortVersion = this.packager.platformSpecificBuildOptions.bundleShortVersion || appInfo.version\n\n if (custom == null) {\n return `${appInfo.productFilename} ${shortVersion}`\n }\n\n return custom\n .replace(/\\${shortVersion}/g, shortVersion)\n .replace(/\\${version}/g, appInfo.version)\n .replace(/\\${name}/g, appInfo.name)\n .replace(/\\${productName}/g, appInfo.productName)\n }\n\n // public to test\n async computeDmgOptions(): Promise<DmgOptions> {\n const packager = this.packager\n const specification: DmgOptions = {...this.options}\n if (specification.icon == null && specification.icon !== null) {\n specification.icon = await packager.getIconPath()\n }\n\n if (specification.icon != null && isEmptyOrSpaces(specification.icon)) {\n throw new InvalidConfigurationError(\"dmg.icon cannot be specified as empty string\")\n }\n\n const background = specification.background\n if (specification.backgroundColor != null) {\n if (background != null) {\n throw new InvalidConfigurationError(\"Both dmg.backgroundColor and dmg.background are specified — please set the only one\")\n }\n }\n else if (background == null) {\n specification.background = await computeBackground(packager)\n }\n else {\n specification.background = path.resolve(packager.info.projectDir, background)\n }\n\n if (specification.format == null) {\n if (process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL != null) {\n (specification as any).format = \"UDZO\"\n }\n else if (packager.compression === \"store\") {\n specification.format = \"UDRO\"\n }\n else {\n specification.format = packager.compression === \"maximum\" ? \"UDBZ\" : \"UDZO\"\n }\n }\n\n if (specification.contents == null) {\n specification.contents = [\n {\n x: 130, y: 220\n },\n {\n x: 410, y: 220, type: \"link\", path: \"/Applications\"\n }\n ]\n }\n return specification\n }\n}\n\nasync function createStageDmg(tempDmg: string, appPath: string, volumeName: string) {\n //noinspection SpellCheckingInspection\n const imageArgs = addLogLevel([\"create\",\n \"-srcfolder\", appPath,\n \"-volname\", volumeName,\n \"-anyowners\", \"-nospotlight\",\n \"-format\", \"UDRW\",\n ])\n imageArgs.push(\"-fs\", \"HFS+\", \"-fsargs\", \"-c c=64,a=16,e=16\")\n imageArgs.push(tempDmg)\n await spawn(\"hdiutil\", imageArgs)\n return tempDmg\n}\n\nfunction addLogLevel(args: Array<string>): Array<string> {\n args.push(process.env.DEBUG_DMG === \"true\" ? \"-verbose\" : \"-quiet\")\n return args\n}\n\nasync function computeAssetSize(cancellationToken: CancellationToken, dmgFile: string, specification: DmgOptions, backgroundFile: string | null | undefined) {\n const asyncTaskManager = new AsyncTaskManager(cancellationToken)\n asyncTaskManager.addTask(stat(dmgFile))\n\n if (specification.icon != null) {\n asyncTaskManager.addTask(statOrNull(specification.icon))\n }\n\n if (backgroundFile != null) {\n asyncTaskManager.addTask(stat(backgroundFile))\n }\n\n let result = 32 * 1024\n for (const stat of await asyncTaskManager.awaitTasks()) {\n if (stat != null) {\n result += stat.size\n }\n }\n return result\n}\n\nasync function customizeDmg(volumePath: string, specification: DmgOptions, packager: MacPackager, backgroundFile: string | null | undefined) {\n const window = specification.window\n const env: any = {\n ...process.env,\n volumePath,\n appFileName: `${packager.appInfo.productFilename}.app`,\n iconSize: specification.iconSize || 80,\n iconTextSize: specification.iconTextSize || 12,\n\n PYTHONIOENCODING: \"utf8\",\n }\n\n if (specification.backgroundColor != null || specification.background == null) {\n env.backgroundColor = specification.backgroundColor || \"#ffffff\"\n\n if (window != null) {\n env.windowX = (window.x == null ? 100 : window.x).toString()\n env.windowY = (window.y == null ? 400 : window.y).toString()\n env.windowWidth = (window.width || 540).toString()\n env.windowHeight = (window.height || 380).toString()\n }\n }\n else {\n delete env.backgroundColor\n }\n\n const args = [\"dmg\", \"--volume\", volumePath]\n if (specification.icon != null) {\n args.push(\"--icon\", (await packager.getResource(specification.icon))!!)\n }\n if (backgroundFile != null) {\n args.push(\"--background\", backgroundFile)\n }\n\n const data: any = await executeAppBuilderAsJson(args)\n if (data.backgroundWidth != null) {\n env.windowWidth = window == null ? null : window.width\n env.windowHeight = window == null ? null : window.height\n\n if (env.windowWidth == null) {\n env.windowWidth = data.backgroundWidth.toString()\n }\n if (env.windowHeight == null) {\n env.windowHeight = data.backgroundHeight.toString()\n }\n\n if (env.windowX == null) {\n env.windowX = 400\n }\n if (env.windowY == null) {\n env.windowY = Math.round((1440 - env.windowHeight) / 2).toString()\n }\n }\n\n Object.assign(env, data)\n\n const asyncTaskManager = new AsyncTaskManager(packager.info.cancellationToken)\n env.iconLocations = await computeDmgEntries(specification, volumePath, packager, asyncTaskManager)\n await asyncTaskManager.awaitTasks()\n\n await exec(\"/usr/bin/python\", [path.join(getDmgVendorPath(), \"dmgbuild/core.py\")], {\n cwd: getDmgVendorPath(),\n env\n })\n return packager.packagerOptions.effectiveOptionComputed == null || !(await packager.packagerOptions.effectiveOptionComputed({volumePath, specification, packager}))\n}\n\nasync function computeDmgEntries(specification: DmgOptions, volumePath: string, packager: MacPackager, asyncTaskManager: AsyncTaskManager): Promise<string> {\n let result = \"\"\n for (const c of specification.contents!!) {\n if (c.path != null && c.path.endsWith(\".app\") && c.type !== \"link\") {\n log.warn({path: c.path, reason: \"actual path to app will be used instead\"}, \"do not specify path for application\")\n }\n\n const entryPath = c.path || `${packager.appInfo.productFilename}.app`\n const entryName = c.name || path.basename(entryPath)\n if (result.length !== 0) {\n result += \",\\n\"\n }\n result += `'${entryName}': (${c.x}, ${c.y})`\n\n if (c.type === \"link\") {\n asyncTaskManager.addTask(exec(\"ln\", [\"-s\", `/${entryPath.startsWith(\"/\") ? entryPath.substring(1) : entryPath}`, `${volumePath}/${entryName}`]))\n }\n // use c.path instead of entryPath (to be sure that this logic is not applied to .app bundle) https://github.com/electron-userland/electron-builder/issues/2147\n else if (!isEmptyOrSpaces(c.path) && (c.type === \"file\" || c.type === \"dir\")) {\n const source = await packager.getResource(c.path)\n if (source == null) {\n log.warn({entryPath, reason: \"doesn't exist\"}, \"skipped DMG item copying\")\n continue\n }\n\n const destination = `${volumePath}/${entryName}`\n asyncTaskManager.addTask(c.type === \"dir\" || (await stat(source)).isDirectory() ? copyDir(source, destination) : copyFile(source, destination))\n }\n }\n return result\n}\n\nasync function transformBackgroundFileIfNeed(file: string, tmpDir: TmpDir): Promise<string> {\n if (file.endsWith(\".tiff\") || file.endsWith(\".TIFF\")) {\n return file\n }\n\n const retinaFile = file.replace(/\\.([a-z]+)$/, \"@2x.$1\")\n if (await exists(retinaFile)) {\n const tiffFile = await tmpDir.getTempFile({suffix: \".tiff\"})\n await exec(\"tiffutil\", [\"-cathidpicheck\", file, retinaFile, \"-out\", tiffFile])\n return tiffFile\n }\n\n return file\n}\n"],"sourceRoot":""}
package/out/dmgLicense.js CHANGED
@@ -55,7 +55,6 @@ function _licenseButtons() {
55
55
  return data;
56
56
  }
57
57
 
58
- /* eslint-disable @typescript-eslint/camelcase */
59
58
  // DropDMG/dmgbuild a in any case (even if no english, but only ru/de) set to 0 (en_US), well, without docs, just believe that's correct
60
59
  const DEFAULT_REGION_CODE = 0;
61
60
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dmgLicense.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/camelcase */\nimport { exec, log } from \"builder-util\"\nimport { PlatformPackager } from \"app-builder-lib\"\nimport { getLicenseFiles } from \"app-builder-lib/out/util/license\"\nimport { outputFile, readFile } from \"fs-extra\"\nimport { serializeString } from \"./dmgUtil\"\nimport { getLicenseButtons, getLicenseButtonsFile } from \"./licenseButtons\"\n\n// DropDMG/dmgbuild a in any case (even if no english, but only ru/de) set to 0 (en_US), well, without docs, just believe that's correct\nconst DEFAULT_REGION_CODE = 0\n\nexport async function addLicenseToDmg(packager: PlatformPackager<any>, dmgPath: string): Promise<string | null> {\n // http://www.owsiak.org/?p=700\n const licenseFiles = await getLicenseFiles(packager)\n if (licenseFiles.length === 0) {\n return null\n }\n\n const licenseButtonFiles = await getLicenseButtonsFile(packager)\n packager.debugLogger.add(\"dmg.licenseFiles\", licenseFiles)\n packager.debugLogger.add(\"dmg.licenseButtons\", licenseButtonFiles)\n\n const style: Array<string> = []\n const rtfs: Array<string> = []\n const defaultButtons: Array<string> = []\n\n let counter = 5000\n const addedRegionCodes: Array<number> = []\n for (const item of licenseFiles) {\n log.info({lang: item.langName}, \"adding license\")\n\n // value from DropDMG, data the same for any language\n // noinspection SpellCheckingInspection\n style.push(`data 'styl' (${counter}, \"${item.langName}\") {\n $\"0001 0000 0000 000E 0011 0015 0000 000C\"\n $\"0000 0000 0000\"\n};`)\n\n let data = `data 'RTF ' (${counter}, \"${item.langName}\") {\\n`\n const fileData = await readFile(item.file, \"utf-8\")\n const isRtf = item.file.endsWith(\".rtf\") || item.file.endsWith(\".RTF\")\n data += isRtf ? serializeString((Buffer.from(fileData)).toString(\"hex\")) : wrapInRtf(await readFile(item.file, \"utf-8\"))\n data += \"\\n};\"\n rtfs.push(data)\n\n defaultButtons.push(await getLicenseButtons(licenseButtonFiles, item.langWithRegion, counter, item.langName))\n addedRegionCodes.push(getRegionCode(item.langWithRegion))\n counter++\n }\n\n const buffer = Buffer.allocUnsafe((2 + (3 * addedRegionCodes.length)) * 2)\n let offset = 0\n buffer.writeUInt16BE(DEFAULT_REGION_CODE, offset)\n offset += 2\n buffer.writeUInt16BE(addedRegionCodes.length, offset)\n offset += 2\n\n for (let i = 0; i < addedRegionCodes.length; i++) {\n const regionCode = addedRegionCodes[i]\n buffer.writeUInt16BE(regionCode, offset)\n offset += 2\n buffer.writeUInt16BE(i, offset)\n offset += 2\n buffer.writeUInt16BE(/* is two byte */ [14, 51, 52, 53].includes(regionCode) ? 1 : 0, offset)\n offset += 2\n }\n\n const lPic = `data 'LPic' (5000) {\\n${serializeString(buffer.toString(\"hex\"))}\\n};`\n const data = style\n .concat(rtfs)\n .concat(lPic)\n .concat(defaultButtons)\n .join(\"\\n\\n\")\n\n packager.debugLogger.add(\"dmg.licenseResource\", data)\n const tempFile = await packager.getTempFile(\".r\")\n await outputFile(tempFile, data)\n await exec(\"hdiutil\", [\"unflatten\", dmgPath])\n await exec(\"Rez\", [\"-a\", tempFile, \"-o\", dmgPath])\n await exec(\"hdiutil\", [\"flatten\", dmgPath])\n\n return data\n}\n\nfunction getRtfUnicodeEscapedString(text: string) {\n let result = \"\"\n for (let i = 0; i < text.length; i++) {\n if (text[i] === \"\\\\\" || text[i] === \"{\" || text[i] === \"}\" || text[i] === \"\\n\") {\n result += `\\\\${text[i]}`\n }\n else if (text[i] === \"\\r\") {\n // ignore\n }\n else if (text.charCodeAt(i) <= 0x7f) {\n result += text[i]\n }\n else {\n result += `\\\\u${text.codePointAt(i)}?`\n }\n }\n return result\n}\n\nfunction wrapInRtf(text: string) {\n return ` $\"7B5C 7274 6631 5C61 6E73 695C 616E 7369\"\n $\"6370 6731 3235 325C 636F 636F 6172 7466\"\n $\"3135 3034 5C63 6F63 6F61 7375 6272 7466\"\n $\"3833 300A 7B5C 666F 6E74 7462 6C5C 6630\"\n $\"5C66 7377 6973 735C 6663 6861 7273 6574\"\n $\"3020 4865 6C76 6574 6963 613B 7D0A 7B5C\"\n $\"636F 6C6F 7274 626C 3B5C 7265 6432 3535\"\n $\"5C67 7265 656E 3235 355C 626C 7565 3235\"\n $\"353B 7D0A 7B5C 2A5C 6578 7061 6E64 6564\"\n $\"636F 6C6F 7274 626C 3B3B 7D0A 5C70 6172\"\n $\"645C 7478 3536 305C 7478 3131 3230 5C74\"\n $\"7831 3638 305C 7478 3232 3430 5C74 7832\"\n $\"3830 305C 7478 3333 3630 5C74 7833 3932\"\n $\"305C 7478 3434 3830 5C74 7835 3034 305C\"\n $\"7478 3536 3030 5C74 7836 3136 305C 7478\"\n $\"3637 3230 5C70 6172 6469 726E 6174 7572\"\n $\"616C 5C70 6172 7469 6768 7465 6E66 6163\"\n $\"746F 7230 0A0A 5C66 305C 6673 3234 205C\"\n${serializeString(\"63663020\" + Buffer.from(getRtfUnicodeEscapedString(text)).toString(\"hex\").toUpperCase() + \"7D\")}`\n // ^ to produce correctly splitted output, this two leading chunks from default wrapper appended here\n}\n\nfunction getRegionCode(langWithRegion: string) {\n const result = regionCodes[langWithRegion]\n if (result == null) {\n throw new Error(`Cannot determine region code for ${langWithRegion}`)\n }\n return result\n}\n\n// noinspection SpellCheckingInspection\nconst regionCodes: any = {\n en_US: 0,\n fr_FR: 1,\n en_GB: 2,\n de_DE: 3,\n it_IT: 4,\n nl_NL: 5,\n nl_BE: 6,\n sv_SE: 7,\n es_ES: 8,\n da_DK: 9,\n pt_PT: 10,\n fr_CA: 11,\n nb_NO: 12,\n he_IL: 13,\n ja_JP: 14,\n en_AU: 15,\n ar: 16,\n fi_FI: 17,\n fr_CH: 18,\n de_CH: 19,\n el_GR: 20,\n is_IS: 21,\n mt_MT: 22,\n el_CY: 23,\n tr_TR: 24,\n hi_IN: 33,\n ur_PK: 34,\n it_CH: 36,\n ro_RO: 39,\n grc: 40,\n lt_LT: 41,\n pl_PL: 42,\n hu_HU: 43,\n et_EE: 44,\n lv_LV: 45,\n se: 46,\n fo_FO: 47,\n fa_IR: 48,\n ru_RU: 49,\n ga_IE: 50,\n ko_KR: 51,\n zh_CN: 52,\n zh_TW: 53,\n th_TH: 54,\n cs_CZ: 56,\n sk_SK: 57,\n bn: 60,\n be_BY: 61,\n uk_UA: 62,\n sr_RS: 65,\n sl_SI: 66,\n mk_MK: 67,\n hr_HR: 68,\n pt_BR: 71,\n bg_BG: 72,\n ca_ES: 73,\n gd: 75,\n gv: 76,\n br: 77,\n iu_CA: 78,\n cy: 79,\n \"ga-Latg_IE\": 81,\n en_CA: 82,\n dz_BT: 83,\n hy_AM: 84,\n ka_GE: 85,\n es_419: 86,\n to_TO: 88,\n fr_001: 91,\n de_AT: 92,\n gu_IN: 94,\n pa: 95,\n ur_IN: 96,\n vi_VN: 97,\n fr_BE: 98,\n uz_UZ: 99,\n en_SG: 100,\n nn_NO: 101,\n af_ZA: 102,\n eo: 103,\n mr_IN: 104,\n bo: 105,\n ne_NP: 106,\n kl: 107,\n en_IE: 108\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../src/dmgLicense.ts"],"names":[],"mappings":"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","sourcesContent":["import { exec, log } from \"builder-util\"\nimport { PlatformPackager } from \"app-builder-lib\"\nimport { getLicenseFiles } from \"app-builder-lib/out/util/license\"\nimport { outputFile, readFile } from \"fs-extra\"\nimport { serializeString } from \"./dmgUtil\"\nimport { getLicenseButtons, getLicenseButtonsFile } from \"./licenseButtons\"\n\n// DropDMG/dmgbuild a in any case (even if no english, but only ru/de) set to 0 (en_US), well, without docs, just believe that's correct\nconst DEFAULT_REGION_CODE = 0\n\nexport async function addLicenseToDmg(packager: PlatformPackager<any>, dmgPath: string): Promise<string | null> {\n // http://www.owsiak.org/?p=700\n const licenseFiles = await getLicenseFiles(packager)\n if (licenseFiles.length === 0) {\n return null\n }\n\n const licenseButtonFiles = await getLicenseButtonsFile(packager)\n packager.debugLogger.add(\"dmg.licenseFiles\", licenseFiles)\n packager.debugLogger.add(\"dmg.licenseButtons\", licenseButtonFiles)\n\n const style: Array<string> = []\n const rtfs: Array<string> = []\n const defaultButtons: Array<string> = []\n\n let counter = 5000\n const addedRegionCodes: Array<number> = []\n for (const item of licenseFiles) {\n log.info({lang: item.langName}, \"adding license\")\n\n // value from DropDMG, data the same for any language\n // noinspection SpellCheckingInspection\n style.push(`data 'styl' (${counter}, \"${item.langName}\") {\n $\"0001 0000 0000 000E 0011 0015 0000 000C\"\n $\"0000 0000 0000\"\n};`)\n\n let data = `data 'RTF ' (${counter}, \"${item.langName}\") {\\n`\n const fileData = await readFile(item.file, \"utf-8\")\n const isRtf = item.file.endsWith(\".rtf\") || item.file.endsWith(\".RTF\")\n data += isRtf ? serializeString((Buffer.from(fileData)).toString(\"hex\")) : wrapInRtf(await readFile(item.file, \"utf-8\"))\n data += \"\\n};\"\n rtfs.push(data)\n\n defaultButtons.push(await getLicenseButtons(licenseButtonFiles, item.langWithRegion, counter, item.langName))\n addedRegionCodes.push(getRegionCode(item.langWithRegion))\n counter++\n }\n\n const buffer = Buffer.allocUnsafe((2 + (3 * addedRegionCodes.length)) * 2)\n let offset = 0\n buffer.writeUInt16BE(DEFAULT_REGION_CODE, offset)\n offset += 2\n buffer.writeUInt16BE(addedRegionCodes.length, offset)\n offset += 2\n\n for (let i = 0; i < addedRegionCodes.length; i++) {\n const regionCode = addedRegionCodes[i]\n buffer.writeUInt16BE(regionCode, offset)\n offset += 2\n buffer.writeUInt16BE(i, offset)\n offset += 2\n buffer.writeUInt16BE(/* is two byte */ [14, 51, 52, 53].includes(regionCode) ? 1 : 0, offset)\n offset += 2\n }\n\n const lPic = `data 'LPic' (5000) {\\n${serializeString(buffer.toString(\"hex\"))}\\n};`\n const data = style\n .concat(rtfs)\n .concat(lPic)\n .concat(defaultButtons)\n .join(\"\\n\\n\")\n\n packager.debugLogger.add(\"dmg.licenseResource\", data)\n const tempFile = await packager.getTempFile(\".r\")\n await outputFile(tempFile, data)\n await exec(\"hdiutil\", [\"unflatten\", dmgPath])\n await exec(\"Rez\", [\"-a\", tempFile, \"-o\", dmgPath])\n await exec(\"hdiutil\", [\"flatten\", dmgPath])\n\n return data\n}\n\nfunction getRtfUnicodeEscapedString(text: string) {\n let result = \"\"\n for (let i = 0; i < text.length; i++) {\n if (text[i] === \"\\\\\" || text[i] === \"{\" || text[i] === \"}\" || text[i] === \"\\n\") {\n result += `\\\\${text[i]}`\n }\n else if (text[i] === \"\\r\") {\n // ignore\n }\n else if (text.charCodeAt(i) <= 0x7f) {\n result += text[i]\n }\n else {\n result += `\\\\u${text.codePointAt(i)}?`\n }\n }\n return result\n}\n\nfunction wrapInRtf(text: string) {\n return ` $\"7B5C 7274 6631 5C61 6E73 695C 616E 7369\"\n $\"6370 6731 3235 325C 636F 636F 6172 7466\"\n $\"3135 3034 5C63 6F63 6F61 7375 6272 7466\"\n $\"3833 300A 7B5C 666F 6E74 7462 6C5C 6630\"\n $\"5C66 7377 6973 735C 6663 6861 7273 6574\"\n $\"3020 4865 6C76 6574 6963 613B 7D0A 7B5C\"\n $\"636F 6C6F 7274 626C 3B5C 7265 6432 3535\"\n $\"5C67 7265 656E 3235 355C 626C 7565 3235\"\n $\"353B 7D0A 7B5C 2A5C 6578 7061 6E64 6564\"\n $\"636F 6C6F 7274 626C 3B3B 7D0A 5C70 6172\"\n $\"645C 7478 3536 305C 7478 3131 3230 5C74\"\n $\"7831 3638 305C 7478 3232 3430 5C74 7832\"\n $\"3830 305C 7478 3333 3630 5C74 7833 3932\"\n $\"305C 7478 3434 3830 5C74 7835 3034 305C\"\n $\"7478 3536 3030 5C74 7836 3136 305C 7478\"\n $\"3637 3230 5C70 6172 6469 726E 6174 7572\"\n $\"616C 5C70 6172 7469 6768 7465 6E66 6163\"\n $\"746F 7230 0A0A 5C66 305C 6673 3234 205C\"\n${serializeString(\"63663020\" + Buffer.from(getRtfUnicodeEscapedString(text)).toString(\"hex\").toUpperCase() + \"7D\")}`\n // ^ to produce correctly splitted output, this two leading chunks from default wrapper appended here\n}\n\nfunction getRegionCode(langWithRegion: string) {\n const result = regionCodes[langWithRegion]\n if (result == null) {\n throw new Error(`Cannot determine region code for ${langWithRegion}`)\n }\n return result\n}\n\n// noinspection SpellCheckingInspection\nconst regionCodes: any = {\n en_US: 0,\n fr_FR: 1,\n en_GB: 2,\n de_DE: 3,\n it_IT: 4,\n nl_NL: 5,\n nl_BE: 6,\n sv_SE: 7,\n es_ES: 8,\n da_DK: 9,\n pt_PT: 10,\n fr_CA: 11,\n nb_NO: 12,\n he_IL: 13,\n ja_JP: 14,\n en_AU: 15,\n ar: 16,\n fi_FI: 17,\n fr_CH: 18,\n de_CH: 19,\n el_GR: 20,\n is_IS: 21,\n mt_MT: 22,\n el_CY: 23,\n tr_TR: 24,\n hi_IN: 33,\n ur_PK: 34,\n it_CH: 36,\n ro_RO: 39,\n grc: 40,\n lt_LT: 41,\n pl_PL: 42,\n hu_HU: 43,\n et_EE: 44,\n lv_LV: 45,\n se: 46,\n fo_FO: 47,\n fa_IR: 48,\n ru_RU: 49,\n ga_IE: 50,\n ko_KR: 51,\n zh_CN: 52,\n zh_TW: 53,\n th_TH: 54,\n cs_CZ: 56,\n sk_SK: 57,\n bn: 60,\n be_BY: 61,\n uk_UA: 62,\n sr_RS: 65,\n sl_SI: 66,\n mk_MK: 67,\n hr_HR: 68,\n pt_BR: 71,\n bg_BG: 72,\n ca_ES: 73,\n gd: 75,\n gv: 76,\n br: 77,\n iu_CA: 78,\n cy: 79,\n \"ga-Latg_IE\": 81,\n en_CA: 82,\n dz_BT: 83,\n hy_AM: 84,\n ka_GE: 85,\n es_419: 86,\n to_TO: 88,\n fr_001: 91,\n de_AT: 92,\n gu_IN: 94,\n pa: 95,\n ur_IN: 96,\n vi_VN: 97,\n fr_BE: 98,\n uz_UZ: 99,\n en_SG: 100,\n nn_NO: 101,\n af_ZA: 102,\n eo: 103,\n mr_IN: 104,\n bo: 105,\n ne_NP: 106,\n kl: 107,\n en_IE: 108\n}\n"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dmg-builder",
3
- "version": "22.5.0",
3
+ "version": "22.7.0",
4
4
  "main": "out/dmgUtil.js",
5
5
  "author": "Vladimir Krivosheev",
6
6
  "license": "MIT",
@@ -13,15 +13,15 @@
13
13
  "vendor"
14
14
  ],
15
15
  "dependencies": {
16
- "app-builder-lib": "22.5.0",
17
- "builder-util": "22.5.0",
16
+ "app-builder-lib": "22.7.0",
17
+ "builder-util": "22.7.0",
18
18
  "fs-extra": "^9.0.0",
19
19
  "iconv-lite": "^0.5.1",
20
- "js-yaml": "^3.13.1",
20
+ "js-yaml": "^3.14.0",
21
21
  "sanitize-filename": "^1.6.3"
22
22
  },
23
23
  "devDependencies": {
24
- "@types/fs-extra": "^8.1.0",
24
+ "@types/fs-extra": "^9.0.1",
25
25
  "@types/js-yaml": "^3.12.3",
26
26
  "temp-file": "^3.3.7"
27
27
  },
@@ -10,6 +10,7 @@ import os
10
10
  import os.path
11
11
  import stat
12
12
  import sys
13
+ from unicodedata import normalize
13
14
 
14
15
  if sys.platform == 'darwin':
15
16
  from . import osx
@@ -20,7 +21,7 @@ except NameError:
20
21
  long = int
21
22
 
22
23
  from .utils import *
23
-
24
+
24
25
  ALIAS_KIND_FILE = 0
25
26
  ALIAS_KIND_FOLDER = 1
26
27
 
@@ -56,7 +57,7 @@ class AppleShareInfo (object):
56
57
 
57
58
  def __repr__(self):
58
59
  return 'AppleShareInfo(%r,%r,%r)' % (self.zone, self.server, self.user)
59
-
60
+
60
61
  class VolumeInfo (object):
61
62
  def __init__(self, name, creation_date, fs_type, disk_type,
62
63
  attribute_flags, fs_id, appleshare_info=None,
@@ -64,13 +65,13 @@ class VolumeInfo (object):
64
65
  dialup_info=None, network_mount_info=None):
65
66
  #: The name of the volume on which the target resides
66
67
  self.name = name
67
-
68
+
68
69
  #: The creation date of the target's volume
69
70
  self.creation_date = creation_date
70
-
71
+
71
72
  #: The filesystem type (a two character code, e.g. ``b'H+'`` for HFS+)
72
73
  self.fs_type = fs_type
73
-
74
+
74
75
  #: The type of disk; should be one of
75
76
  #:
76
77
  #: * ALIAS_FIXED_DISK
@@ -116,7 +117,7 @@ class VolumeInfo (object):
116
117
  for a in args:
117
118
  v = getattr(self, a)
118
119
  values.append(repr(v))
119
-
120
+
120
121
  kwargs = ['appleshare_info', 'driver_name', 'posix_path',
121
122
  'disk_image_alias', 'dialup_info', 'network_mount_info']
122
123
  for a in kwargs:
@@ -124,7 +125,7 @@ class VolumeInfo (object):
124
125
  if v is not None:
125
126
  values.append('%s=%r' % (a, v))
126
127
  return 'VolumeInfo(%s)' % ','.join(values)
127
-
128
+
128
129
  class TargetInfo (object):
129
130
  def __init__(self, kind, filename, folder_cnid, cnid, creation_date,
130
131
  creator_code, type_code, levels_from=-1, levels_to=-1,
@@ -132,7 +133,7 @@ class TargetInfo (object):
132
133
  posix_path=None, user_home_prefix_len=None):
133
134
  #: Either ALIAS_KIND_FILE or ALIAS_KIND_FOLDER
134
135
  self.kind = kind
135
-
136
+
136
137
  #: The filename of the target
137
138
  self.filename = filename
138
139
 
@@ -197,7 +198,7 @@ class TargetInfo (object):
197
198
  values.append('%s=%r' % (a, v))
198
199
 
199
200
  return 'TargetInfo(%s)' % ','.join(values)
200
-
201
+
201
202
  TAG_CARBON_FOLDER_NAME = 0
202
203
  TAG_CNID_PATH = 1
203
204
  TAG_CARBON_PATH = 2
@@ -230,7 +231,7 @@ class Alias (object):
230
231
 
231
232
  #: A :class:`VolumeInfo` object describing the target's volume
232
233
  self.volume = volume
233
-
234
+
234
235
  #: A :class:`TargetInfo` object describing the target
235
236
  self.target = target
236
237
 
@@ -243,7 +244,7 @@ class Alias (object):
243
244
 
244
245
  if recsize < 150:
245
246
  raise ValueError('Incorrect alias length')
246
-
247
+
247
248
  if version != 2:
248
249
  raise ValueError('Unsupported alias version %u' % version)
249
250
 
@@ -257,7 +258,7 @@ class Alias (object):
257
258
 
258
259
  alias = Alias()
259
260
  alias.appinfo = appinfo
260
-
261
+
261
262
  alias.volume = VolumeInfo (volname.replace('/',':'),
262
263
  voldate, fstype, disktype,
263
264
  volattrs, volfsid)
@@ -266,7 +267,7 @@ class Alias (object):
266
267
  crdate, creator_code, type_code)
267
268
  alias.target.levels_from = levels_from
268
269
  alias.target.levels_to = levels_to
269
-
270
+
270
271
  tag = struct.unpack(b'>h', b.read(2))[0]
271
272
 
272
273
  while tag != -1:
@@ -324,9 +325,9 @@ class Alias (object):
324
325
  alias.extra.append((tag, value))
325
326
 
326
327
  tag = struct.unpack(b'>h', b.read(2))[0]
327
-
328
+
328
329
  return alias
329
-
330
+
330
331
  @classmethod
331
332
  def from_bytes(cls, bytes):
332
333
  """Construct an :class:`Alias` object given binary Alias data."""
@@ -340,13 +341,17 @@ class Alias (object):
340
341
  raise Exception('Not implemented (requires special support)')
341
342
 
342
343
  path = encode_utf8(path)
343
-
344
+
344
345
  a = Alias()
345
346
 
346
347
  # Find the filesystem
347
348
  st = osx.statfs(path)
348
349
  vol_path = st.f_mntonname
349
-
350
+
351
+ # File and folder names in HFS+ are normalized to a form similar to NFD.
352
+ # Must be normalized (NFD->NFC) before use to avoid unicode string comparison issues.
353
+ vol_path = normalize("NFC", vol_path.decode('utf-8')).encode('utf-8')
354
+
350
355
  # Grab its attributes
351
356
  attrs = [osx.ATTR_CMN_CRTIME,
352
357
  osx.ATTR_VOL_NAME,
@@ -355,7 +360,7 @@ class Alias (object):
355
360
 
356
361
  vol_crtime = volinfo[0]
357
362
  vol_name = encode_utf8(volinfo[1])
358
-
363
+
359
364
  # Also grab various attributes of the file
360
365
  attrs = [(osx.ATTR_CMN_OBJTYPE
361
366
  | osx.ATTR_CMN_CRTIME
@@ -371,14 +376,14 @@ class Alias (object):
371
376
 
372
377
  cnid = info[3]
373
378
  folder_cnid = info[4]
374
-
379
+
375
380
  dirname, filename = os.path.split(path)
376
381
 
377
382
  if dirname == b'' or dirname == b'.':
378
383
  dirname = os.getcwd()
379
384
 
380
385
  foldername = os.path.basename(dirname)
381
-
386
+
382
387
  creation_date = info[1]
383
388
 
384
389
  if kind == ALIAS_KIND_FILE:
@@ -425,7 +430,7 @@ class Alias (object):
425
430
  a.target.cnid_path = cnid_path
426
431
 
427
432
  return a
428
-
433
+
429
434
  def _to_fd(self, b):
430
435
  # We'll come back and fix the length when we're done
431
436
  pos = b.tell()
@@ -578,7 +583,7 @@ class Alias (object):
578
583
  b.write(b'\0')
579
584
 
580
585
  b.write(struct.pack(b'>hh', -1, 0))
581
-
586
+
582
587
  blen = b.tell() - pos
583
588
  b.seek(pos + 4, os.SEEK_SET)
584
589
  b.write(struct.pack(b'>h', blen))