mozbuild.repackaging package

Submodules

mozbuild.repackaging.application_ini module

mozbuild.repackaging.application_ini.get_application_ini_value(finder_or_application_directory, section, value, fallback=None)

Find string with given section and value in any application.ini under given directory or finder.

If string is not found and fallback is given, find string with given section and fallback instead.

Raises an Exception if no string is found.

mozbuild.repackaging.application_ini.get_application_ini_values(finder_or_application_directory, *args)

Find multiple strings for given section and value pairs. Additional args should be dictionaries with keys section, value, and optional fallback. Returns an iterable of strings, one for each dictionary provided.

fallback is treated as with get_application_ini_value.

Raises an Exception if any string is not found.

mozbuild.repackaging.deb module

exception mozbuild.repackaging.deb.HgServerError(msg)

Bases: Exception

Raised when Hg responds with an error code that is not 404 (i.e. when there is an outage)

exception mozbuild.repackaging.deb.NoDebPackageFound(deb_file_path)

Bases: Exception

Raised when no .deb is found after calling dpkg-buildpackage

mozbuild.repackaging.deb.repackage_deb(log, infile, output, template_dir, arch, version, build_number, release_product, release_type, fluent_localization, fluent_resource_loader)
mozbuild.repackaging.deb.repackage_deb_l10n(input_xpi_file, input_tar_file, output, template_dir, version, build_number, release_product)

mozbuild.repackaging.desktop_file module

exception mozbuild.repackaging.desktop_file.RemoteVCSError(msg)

Bases: Exception

Raised when vcs server (e.g., hg or git) responds with an error code that is not 404 (i.e. when there is an outage)

mozbuild.repackaging.desktop_file.generate_browser_desktop_entry(log, build_variables, release_product, release_type, fluent_localization, fluent_resource_loader)
mozbuild.repackaging.desktop_file.generate_browser_desktop_entry_file_text(log, build_variables, release_product, release_type, fluent_localization, fluent_resource_loader)

mozbuild.repackaging.dmg module

mozbuild.repackaging.dmg.repackage_dmg(infile, output, attribution_sentinel=None, compression=None)

mozbuild.repackaging.installer module

mozbuild.repackaging.installer.repackage_installer(topsrcdir, tag, setupexe, package, output, package_name, sfx_stub, use_upx)

mozbuild.repackaging.mar module

mozbuild.repackaging.mar.repackage_mar(topsrcdir, package, mar, output, arch=None, mar_channel_id=None)

mozbuild.repackaging.msi module

mozbuild.repackaging.msi.repackage_msi(topsrcdir, wsx, version, locale, arch, setupexe, candle, light, output)
mozbuild.repackaging.msi.update_wsx(wfile, pvalues)

mozbuild.repackaging.msix module

Repackage ZIP archives (or directories) into MSIX App Packages.

# Known issues

  • The icons in the Start Menu have a solid colour tile behind them. I think this is an issue with plating.

mozbuild.repackaging.msix.find_sdk_tool(binary, log=None)
mozbuild.repackaging.msix.get_appconstants_sys_mjs_values(finder, *args)

Extract values, such as the display version like MOZ_APP_VERSION_DISPLAY: “…”;, from the omnijar. This allows to determine the beta number, like X.YbW, where the regular beta version is only X.Y. Takes a list of names and returns an iterator of the unique such value found for each name. Raises an exception if a name is not found or if multiple values are found.

mozbuild.repackaging.msix.get_branding(use_official, topsrcdir, build_app, finder, log=None)

Figure out which branding directory to use.

mozbuild.repackaging.msix.get_embedded_version(version, buildid)

Turn a display version into “dotted quad” notation.

N.b.: some parts of the MSIX packaging ecosystem require the final part of the dotted quad to be identically 0, so we enforce that here.

mozbuild.repackaging.msix.log_copy_result(log, elapsed, destdir, result)
mozbuild.repackaging.msix.remove_single_line_comments(text)

Remove C++ style single-line comments from the text.

mozbuild.repackaging.msix.repackage_msix(dir_or_package, topsrcdir, channel=None, distribution_dirs=[], version=None, vendor=None, displayname=None, app_name=None, identity=None, publisher=None, publisher_display_name='Mozilla Corporation', arch=None, output=None, force=False, log=None, verbose=False, makeappx=None)
mozbuild.repackaging.msix.sdk_tool_search_path()
mozbuild.repackaging.msix.sign_msix(output, force=False, log=None, verbose=False)

Sign an MSIX with a locally generated self-signed certificate.

mozbuild.repackaging.msix.unpack_msix(input_msix, output, log=None, verbose=False)

Unpack the given MSIX to the given output directory.

MSIX packages are ZIP files, but they are Zip64/version 4.5 ZIP files, so mozjar.py doesn’t yet handle. Unpack using unzip{.exe} for simplicity.

In addition, file names inside the MSIX package are URL quoted. URL unquote here.

mozbuild.repackaging.pkg module

mozbuild.repackaging.pkg.repackage_pkg(infile, output)

mozbuild.repackaging.snap module

mozbuild.repackaging.snap.missing_connections(app_name)

Parsing the output of snap connections e.g.,

$ snap connections firefox Interface Connecteur Prise Notes alsa firefox:alsa - - audio-playback firefox:audio-playback :audio-playback - audio-record firefox:audio-record :audio-record - avahi-observe firefox:avahi-observe :avahi-observe -

mozbuild.repackaging.snap.repackage_snap(log, srcdir, objdir, snapdir, snapcraft, appname, reponame='canonical/firefox-snap', branchname='nightly', arch='amd64', dry_run=False)
mozbuild.repackaging.snap.unpack_tarball(package, destdir)

mozbuild.repackaging.snapcraft_transform module

class mozbuild.repackaging.snapcraft_transform.SnapDesktopFile(log, appname, branchname)

Bases: object

repack()
class mozbuild.repackaging.snapcraft_transform.SnapcraftTransform(source_file, appname, version, buildno)

Bases: object

EXPECTED_PARTS = ['rust', 'cbindgen', 'clang', 'dump-syms', 'hunspell', 'wasi-sdk', 'nodejs', 'mozconfig', 'firefox', 'firefox-langpacks', 'launcher', 'distribution', 'ffmpeg', 'apikeys', 'debug-symbols']
PARTS_TO_KEEP = ['hunspell', 'firefox-langpacks', 'launcher', 'distribution', 'ffmpeg']
add_firefox_repack(removed)
assert_parts(snap)

Make sure we have the expected parts

change_name(name)
change_version(version, build)
keep_non_build_parts()
parse(inp)
repack()
mozbuild.repackaging.snapcraft_transform.repr_str(dumper, data)

Module contents