2 Commits
v0.2.6 ... snap

Author SHA1 Message Date
Shin'ichiro Kawasaki
d845d69bb8 gencert.py: Support Snap Firefox and Chromium
Recently Ubuntu provides Firefox and Chromium in the form of Snap
package, and they place NSS DB at different path from non-Snap package.
However, current gencert.py implementation supports only the NSS DB
paths for non-Snap packages. This results in HTTPS communication failure
between the browsers and scratch_link.

Support the NSS DB paths for the Snap packages. Add a new function
prep_cert_for_app() which takes application name and its NSS DB search
path. Call this function for list of browsers, covering both non-Snap
and Snap packages.

Signed-off-by: Shin'ichiro Kawasaki <kawasaki@juno.dti.ne.jp>
2023-03-19 20:59:58 +09:00
Shin'ichiro Kawasaki
751190935a release.sh: add example command lines
I tend to forget the command lines to release new packages. Record it in
the release script.

Signed-off-by: Shin'ichiro Kawasaki <kawasaki@juno.dti.ne.jp>
2022-07-18 11:12:46 +09:00
2 changed files with 26 additions and 21 deletions

View File

@@ -152,36 +152,37 @@ def prep_nss_cert(dir, cert, nickname):
remove_cert(dir, nickname) remove_cert(dir, nickname)
add_cert(dir, cert, nickname) add_cert(dir, cert, nickname)
def prep_cert(): def prep_cert_for_app(cert, app, search_path):
# Generate certification and key """
gen_cert(cert_file_path, key_file_path) Find a NSS DB in the search_path for the app and prepare the cert in the DB.
"""
# Add certificate to FireFox
nssdb = None nssdb = None
firefox_nss_path = os.path.join(homedir, ".mozilla/firefox/") for root, dirs, files in os.walk(os.path.join(homedir, search_path)):
for root, dirs, files in os.walk(firefox_nss_path):
for name in files: for name in files:
if not re.match("key.*\.db", name): if not re.match("key.*\.db", name):
continue continue
nssdb = root nssdb = root
if prep_nss_cert(nssdb, cert_file_path, SCRATCH_CERT_NICKNAME): if prep_nss_cert(nssdb, cert, SCRATCH_CERT_NICKNAME):
logger.error(f"Failed to add certificate to FireFox NSS DB: {nssdb}") logger.error(f"Failed to add certificate to {app}: {nssdb}")
sys.exit(3) sys.exit(3)
else: else:
logger.info(f"Certificate is ready in FireFox NSS DB: {nssdb}") logger.info(f"Certificate is ready in {app} NSS DB: {nssdb}")
if not nssdb: if not nssdb:
logger.info("FireFox NSS DB not found. Do not add certificate.") logger.debug(f"NSS DB for {app} not found. Do not add certificate.")
# Add certificate to Chrome
nssdb = os.path.join(homedir, ".pki/nssdb") def prep_cert():
if os.path.isdir(nssdb): # Generate certification and key
if prep_nss_cert(nssdb, cert_file_path, SCRATCH_CERT_NICKNAME): gen_cert(cert_file_path, key_file_path)
logger.error(f"Failed to add certificate to Chrome")
sys.exit(4) nss_dbs = {
else: "FireFox": ".mozilla/firefox/",
logger.info("Certificate is ready for Chrome") "FireFox(Snap)": "snap/firefox/common/.mozilla/firefox/",
else: "Chrome": ".pki",
logger.info("Chrome NSS DB not found. Do not add certificate.") "Chromium(Snap)": "snap/chromium",
}
[ prep_cert_for_app(cert_file_path, k, nss_dbs[k]) for k in nss_dbs ]
if __name__ == "__main__": if __name__ == "__main__":
prep_cert() prep_cert()

View File

@@ -4,7 +4,11 @@ usage() {
echo "Usage: ${0} COMMAND" echo "Usage: ${0} COMMAND"
echo -e "COMMAND:" echo -e "COMMAND:"
echo -e "\tbuild" echo -e "\tbuild"
echo -e "\tupload FILES"
echo -e "\tupload-testpypi FILES" echo -e "\tupload-testpypi FILES"
echo -e "examples:"
echo -e "\t${0} build"
echo -e "\t${0} upload dist/*0.2.6*"
exit 1 exit 1
} }