Browse Source

Improve and add more variable substitutions for debian packaging
Change fastbuild flag from 1 to 2
Ignore Debian changes file

Eloston 8 years ago
parent
commit
dca44ef718

+ 1 - 0
.gitignore

@@ -11,3 +11,4 @@ __pycache__/
 
 # Ignore packages
 /*.deb
+/chromium-browser_*.changes

+ 26 - 13
building/debian.py

@@ -26,6 +26,8 @@ import itertools
 import tempfile
 import locale
 import datetime
+import re
+import string
 
 from . import generic
 
@@ -154,22 +156,33 @@ class DebianPlatform(generic.GenericPlatform):
                 return result + timezone
             finally:
                 locale.setlocale(locale.LC_TIME, current_lc)
-        template_parsing_defs = {
-            ("changelog.in", "changelog"): {
-                "VERSION": "{}-{}".format(self.version, self.revision),
-                "DATETIME": get_changelog_date()
-            }
-        }
+
+        class CustomTemplate(string.Template): # Inspired by http://stackoverflow.com/questions/12768107/string-substitutions-using-templates-in-python
+            pattern = r"""
+            {delim}(?:
+              (?P<escaped>{delim}) |
+              _(?P<named>{id})      |
+              {{(?P<braced>{id})}}   |
+              (?P<invalid>{delim}((?!_)|(?!{{)))
+            )
+            """.format(delim=re.escape("$ungoog"), id=string.Template.idpattern)
+
+        template_parsing_defs = dict(
+            changelog_version="{}-{}".format(self.version, self.revision),
+            changelog_datetime=get_changelog_date(),
+            build_output=str(self.build_output)
+        )
         self.logger.info("Building Debian package...")
         destination_dpkg_dir = self.sandbox_root / pathlib.Path("debian")
         distutils.dir_util.copy_tree(str(self.PLATFORM_RESOURCES / pathlib.Path("dpkg_dir")), str(destination_dpkg_dir))
-        for template_expr in template_parsing_defs:
-            old_name, new_name = template_expr
-            with (destination_dpkg_dir / pathlib.Path(old_name)).open() as old_file:
-                content = old_file.read().format(**template_parsing_defs[template_expr])
-                with (destination_dpkg_dir / pathlib.Path(new_name)).open("w") as new_file:
-                    new_file.write(content)
-            (destination_dpkg_dir / pathlib.Path(old_name)).unlink()
+        for old_path in destination_dpkg_dir.glob("*.in"):
+            new_path = destination_dpkg_dir / old_path.stem
+            old_path.replace(new_path)
+            with new_path.open("r+") as new_file:
+                content = CustomTemplate(new_file.read()).substitute(**template_parsing_defs)
+                new_file.seek(0)
+                new_file.write(content)
+                new_file.truncate()
         result = subprocess.run(["dpkg-buildpackage", "-b", "-uc"], cwd=str(self.sandbox_root))
         if not result.returncode == 0:
             raise Exception("dpkg-buildpackage returned non-zero exit code: {}".format(result.returncode))

+ 2 - 2
building/resources/debian/dpkg_dir/changelog.in

@@ -1,5 +1,5 @@
-chromium-browser ({VERSION}) stretch; urgency=low
+chromium-browser ($ungoog{changelog_version}) stretch; urgency=low
 
   * New version
 
- -- Eloston <eloston@null>  {DATETIME}
+ -- Eloston <eloston@null>  $ungoog{changelog_datetime}

+ 0 - 1
building/resources/debian/dpkg_dir/chrome-sandbox.install

@@ -1 +0,0 @@
-out/Release/chrome-sandbox usr/lib/chromium

+ 1 - 0
building/resources/debian/dpkg_dir/chrome-sandbox.install.in

@@ -0,0 +1 @@
+$ungoog{build_output}/chrome-sandbox usr/lib/chromium

+ 0 - 1
building/resources/debian/dpkg_dir/chromedriver.install

@@ -1 +0,0 @@
-out/Release/chromedriver usr/lib/chromium

+ 1 - 0
building/resources/debian/dpkg_dir/chromedriver.install.in

@@ -0,0 +1 @@
+$ungoog{build_output}/chromedriver usr/lib/chromium

+ 0 - 1
building/resources/debian/dpkg_dir/chromium-l10n.install

@@ -1 +0,0 @@
-out/Release/locales usr/lib/chromium

+ 1 - 0
building/resources/debian/dpkg_dir/chromium-l10n.install.in

@@ -0,0 +1 @@
+$ungoog{build_output}/locales usr/lib/chromium

+ 0 - 18
building/resources/debian/dpkg_dir/chromium.install

@@ -1,18 +0,0 @@
-out/Release/chromium usr/lib/chromium
-
-out/Release/*.bin usr/lib/chromium
-out/Release/*.pak usr/lib/chromium
-out/Release/icudtl.dat usr/lib/chromium
-
-out/Release/resources/en-US.pak usr/lib/chromium/locales
-
-debian/presubj usr/share/bug/chromium
-
-debian/master_preferences usr/share/chromium
-
-debian/chromium.xml usr/share/gnome-control-center/default-apps
-
-debian/chromium.desktop usr/share/applications
-
-debian/default-flags etc/chromium.d
-

+ 18 - 0
building/resources/debian/dpkg_dir/chromium.install.in

@@ -0,0 +1,18 @@
+$ungoog{build_output}/chromium usr/lib/chromium
+
+$ungoog{build_output}/*.bin usr/lib/chromium
+$ungoog{build_output}/*.pak usr/lib/chromium
+$ungoog{build_output}/icudtl.dat usr/lib/chromium
+
+$ungoog{build_output}/resources/en-US.pak usr/lib/chromium/locales
+
+debian/presubj usr/share/bug/chromium
+
+debian/master_preferences usr/share/chromium
+
+debian/chromium.xml usr/share/gnome-control-center/default-apps
+
+debian/chromium.desktop usr/share/applications
+
+debian/default-flags etc/chromium.d
+

+ 0 - 1
building/resources/debian/dpkg_dir/chromium.manpages

@@ -1 +0,0 @@
-out/Release/chromium.1

+ 1 - 0
building/resources/debian/dpkg_dir/chromium.manpages.in

@@ -0,0 +1 @@
+$ungoog{build_output}/chromium.1

+ 9 - 6
building/resources/debian/dpkg_dir/rules → building/resources/debian/dpkg_dir/rules.in

@@ -10,14 +10,14 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
 	dh $@ --parallel
 
 override_dh_auto_build-arch:
-	mv out/Release/chrome out/Release/chromium || true
-	mv out/Release/chrome.1 out/Release/chromium.1 || true
-	mv out/Release/chrome_sandbox out/Release/chrome-sandbox || true
-	mv out/Release/locales/en-US.pak out/Release/resources || true
-	chmod 4755 out/Release/chrome-sandbox # suid sandbox
+	mv $ungoog{build_output}/chrome $ungoog{build_output}/chromium || true
+	mv $ungoog{build_output}/chrome.1 $ungoog{build_output}/chromium.1 || true
+	mv $ungoog{build_output}/chrome_sandbox $ungoog{build_output}/chrome-sandbox || true
+	mv $ungoog{build_output}/locales/en-US.pak $ungoog{build_output}/resources || true
+	chmod 4755 $ungoog{build_output}/chrome-sandbox # suid sandbox
 
 override_dh_auto_build-indep:
-	mv out/Release/locales/en-US.pak out/Release/resources || true
+	mv $ungoog{build_output}/locales/en-US.pak $ungoog{build_output}/resources || true
 
 override_dh_auto_install-arch:
 	dh_auto_install
@@ -36,6 +36,9 @@ override_dh_auto_install-arch:
 		cp $$file $$dst/chromium.$$ext; \
 		done
 
+override_dh_strip:
+	dh_strip --no-automatic-dbgsym # Do not build any debug packages
+
 override_dh_fixperms:
 	dh_fixperms --exclude chrome-sandbox
 

+ 2 - 2
gyp_flags

@@ -4,6 +4,7 @@ default_apps_list_linux_dest=[]
 remoting=0
 disable_nacl=1
 disable_pnacl=1
+disable_newlib=1
 enable_remoting_host=0
 enable_automation=0
 enable_google_now=0
@@ -18,9 +19,8 @@ enable_rlz=0
 enable_pre_sync_backup=0
 enable_prod_wallet_service=0
 enable_one_click_signin=0
-disable_newlib=1
 enable_hidpi=1
-fastbuild=1
+fastbuild=2
 disable_fatal_linker_warnings=1
 tracing_like_official_build=1
 fieldtrial_testing_like_official_build=1