Skip to content

Commit

Permalink
bump version to 1.9.12 and simplify macOS release naming and update U…
Browse files Browse the repository at this point in the history
…RL handling
  • Loading branch information
mauro-balades committed Jan 26, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 89b2c39 commit e91d11b
Showing 4 changed files with 84 additions and 112 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@zen-browser/surfer",
"version": "1.9.10",
"version": "1.9.12",
"description": "Simplifying building firefox forks!",
"main": "index.js",
"bin": {
171 changes: 80 additions & 91 deletions src/commands/package.ts
Original file line number Diff line number Diff line change
@@ -36,118 +36,107 @@ export const surferPackage = async () => {

// The engine directory must have been downloaded for this to be valid
// TODO: Make this a reusable function that can be used by everything
if (!existsSync(ENGINE_DIR)) {
log.error(
`Unable to locate any source directories.\nRun |${bin_name} download| to generate the source directory.`
)
}

if (!existsSync(machPath)) {
log.error(`Cannot locate the 'mach' binary within ${ENGINE_DIR}`)
}

const arguments_ = ['package']

log.info(
`Packaging \`${config.binaryName}\` with args ${JSON.stringify(
arguments_.slice(1, 0)
)}...`
)

const currentCWD = process.cwd()

if (!process.env.SURFER_SIGNING_MODE) {
await dispatch(machPath, arguments_, ENGINE_DIR, true)

// Merge language packs
for (const locale of await getLocales()) {
const arguments_ = ['build', `merge-${locale}`]

log.info(
`Packaging \`${config.binaryName}\` with args ${JSON.stringify(
arguments_.slice(1, 0)
)}...`
if (!process.env.JUST_MAR) {
if (!existsSync(ENGINE_DIR)) {
log.error(
`Unable to locate any source directories.\nRun |${bin_name} download| to generate the source directory.`
)
}

await dispatch(machPath, arguments_, ENGINE_DIR, true)
if (!existsSync(machPath)) {
log.error(`Cannot locate the 'mach' binary within ${ENGINE_DIR}`)
}

log.info('Copying language packs')
const arguments_ = ['package']

await dispatch(
machPath,
['package-multi-locale', '--locales', ...(await getLocales())],
ENGINE_DIR,
true
log.info(
`Packaging \`${config.binaryName}\` with args ${JSON.stringify(
arguments_.slice(1, 0)
)}...`
)
}

log.info('Copying results up')
const currentCWD = process.cwd()

log.debug("Creating the dist directory if it doesn't exist")
if (!existsSync(DIST_DIR)) await mkdir(DIST_DIR, { recursive: true })

log.debug('Indexing files to copy')
const filesInMozillaDistrobution = await readdir(join(OBJ_DIR, 'dist'), {
withFileTypes: true,
})
const files = filesInMozillaDistrobution
.filter((entry) => entry.isFile())
.map((entry) => entry.name)

for (const file of files) {
const destinationFile = join(DIST_DIR, file)
log.debug(`Copying ${file}`)
if (existsSync(destinationFile)) await unlink(destinationFile)
await copyFile(join(OBJ_DIR, 'dist', file), destinationFile)
}
if (!process.env.SURFER_SIGNING_MODE) {
await dispatch(machPath, arguments_, ENGINE_DIR, true)

// Windows has some special dist files that are available within the dist
// directory.
if ((process as any).surferPlatform == 'win32') {
const installerDistributionDirectory = join(
OBJ_DIR,
'dist',
'install',
'sea'
)
log.info('Copying language packs')

if (!existsSync(installerDistributionDirectory)) {
log.error(
`Could not find windows installer files located at '${installerDistributionDirectory}'`
await dispatch(
machPath,
['package-multi-locale', '--locales', ...(await getLocales())],
ENGINE_DIR,
true
)
}

const installerDistributionDirectoryContents = await readdir(
installerDistributionDirectory,
{ withFileTypes: true }
)
const windowsInstallerFiles = installerDistributionDirectoryContents
log.info('Copying results up')

log.debug("Creating the dist directory if it doesn't exist")
if (!existsSync(DIST_DIR)) await mkdir(DIST_DIR, { recursive: true })

log.debug('Indexing files to copy')
const filesInMozillaDistrobution = await readdir(join(OBJ_DIR, 'dist'), {
withFileTypes: true,
})
const files = filesInMozillaDistrobution
.filter((entry) => entry.isFile())
.map((entry) => entry.name)

for (const file of windowsInstallerFiles) {
let newFileName = file
for (const file of files) {
const destinationFile = join(DIST_DIR, file)
log.debug(`Copying ${file}`)
if (existsSync(destinationFile)) await unlink(destinationFile)
await copyFile(join(OBJ_DIR, 'dist', file), destinationFile)
}

// There are some special cases that I want to reformat the name for
if (file.includes('.installer.exe')) {
newFileName = `${config.binaryName}.installer.exe`
}
if (file.includes('.installer-stub.exe')) {
newFileName = `${config.binaryName}.installer.pretty.exe`
log.warning(
`The installer ${newFileName} requires that your binaries are available from the internet and everything is correctly configured. I recommend you ship '${config.binaryName}.installer.exe' if you have not set this up correctly yet`
// Windows has some special dist files that are available within the dist
// directory.
if ((process as any).surferPlatform == 'win32') {
const installerDistributionDirectory = join(
OBJ_DIR,
'dist',
'install',
'sea'
)

if (!existsSync(installerDistributionDirectory)) {
log.error(
`Could not find windows installer files located at '${installerDistributionDirectory}'`
)
}

// Actually copy
const destinationFile = join(DIST_DIR, newFileName)
log.debug(`Copying ${file}`)
if (existsSync(destinationFile)) await unlink(destinationFile)
await copyFile(
join(installerDistributionDirectory, file),
destinationFile
const installerDistributionDirectoryContents = await readdir(
installerDistributionDirectory,
{ withFileTypes: true }
)
const windowsInstallerFiles = installerDistributionDirectoryContents
.filter((entry) => entry.isFile())
.map((entry) => entry.name)

for (const file of windowsInstallerFiles) {
let newFileName = file

// There are some special cases that I want to reformat the name for
if (file.includes('.installer.exe')) {
newFileName = `${config.binaryName}.installer.exe`
}
if (file.includes('.installer-stub.exe')) {
newFileName = `${config.binaryName}.installer.pretty.exe`
log.warning(
`The installer ${newFileName} requires that your binaries are available from the internet and everything is correctly configured. I recommend you ship '${config.binaryName}.installer.exe' if you have not set this up correctly yet`
)
}

// Actually copy
const destinationFile = join(DIST_DIR, newFileName)
log.debug(`Copying ${file}`)
if (existsSync(destinationFile)) await unlink(destinationFile)
await copyFile(
join(installerDistributionDirectory, file),
destinationFile
)
}
}
}

8 changes: 1 addition & 7 deletions src/commands/patches/branding-patch.ts
Original file line number Diff line number Diff line change
@@ -422,13 +422,7 @@ pref("devtools.selfxss.count", 5);
}

function setUpdateURLs() {
let suffix = '';
if ((process as any).surferPlatform == 'darwin') {
if (compatMode == 'x86_64') {
suffix = '-generic';
}
}
const baseURL = `URL=https://@MOZ_APPUPDATE_HOST@/updates/browser/%BUILD_TARGET%/%CHANNEL%${suffix}/update.xml`
const baseURL = `URL=https://@MOZ_APPUPDATE_HOST@/updates/browser/%BUILD_TARGET%/%CHANNEL%/update.xml`
const appIni = join(ENGINE_DIR, 'build', 'application.ini.in')
const appIniContents = readFileSync(appIni).toString()
const updatedAppIni = appIniContents.replace(/URL=.*update.xml/g, baseURL)
15 changes: 2 additions & 13 deletions src/commands/updates/browser.ts
Original file line number Diff line number Diff line change
@@ -59,12 +59,7 @@ function getReleaseMarName(releaseInfo: ReleaseInfo): string | undefined {
}
}
if ((process as any).surferPlatform == 'darwin') {
if (compatMode == 'x86_64') {
releaseMarName = 'macos-x86_64.mar'
}
else if (compatMode == 'aarch64') {
releaseMarName = 'macos-aarch64.mar'
}
releaseMarName = 'macos.mar' // universal binary
}
if ((process as any).surferPlatform == 'linux') {
if (compatMode == 'x86_64') {
@@ -115,18 +110,12 @@ async function writeUpdateFileToDisk(
}
}
) {
let suffix = '';
if ((process as any).surferPlatform == 'darwin') {
if (compatMode == 'x86_64') {
suffix = '-generic';
}
}
const xmlPath = join(
DIST_DIR,
'update',
'browser',
target,
channel + suffix,
channel,
'update.xml'
)
const document = create(updateObject)

0 comments on commit e91d11b

Please sign in to comment.