[Libreoffice-commits] core.git: Branch 'feature/mar-updater' - 5 commits - bin/update Makefile.gbuild Makefile.in

Markus Mohrhard markus.mohrhard at googlemail.com
Wed Apr 26 00:45:16 UTC 2017


 Makefile.gbuild                       |   12 ++++++++++++
 Makefile.in                           |    3 +++
 bin/update/create_full_mar.py         |   14 ++++----------
 bin/update/create_partial_update.py   |    5 +++--
 bin/update/make_incremental_update.sh |   12 ++++++------
 bin/update/signing.py                 |   11 +++++++++++
 bin/update/tools.py                   |    4 ++++
 7 files changed, 43 insertions(+), 18 deletions(-)

New commits:
commit c434223f4b3f28aff960b6364de23df1a735fe57
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Wed Apr 26 02:43:25 2017 +0200

    add the generation of partial update files to the makefiles
    
    It seems that the generated partial update files are now generated
    correctly. We now need to handle languages and sign the partial files as
    well as upload them.
    
    Change-Id: I69fbdad42da2c8a2d9695bc852956b82ce773f4c

diff --git a/Makefile.gbuild b/Makefile.gbuild
index 6d625bb5e5fc..dbf0e0d40888 100644
--- a/Makefile.gbuild
+++ b/Makefile.gbuild
@@ -46,4 +46,16 @@ upload-update-info:
 	$(SRCDIR)/bin/update/upload_builds.py "$(PRODUCTNAME)" "$(BUILDID)" "$(PLATFORM)" "$(UPDATE_DIR)" "$(UPDATE_CONFIG)"
 	$(SRCDIR)/bin/update/upload_build_config.py "$(UPDATE_DIR)" "$(UPDATE_CONFIG)"
 
+create-partial-info:
+	$(eval BUILDID := $(shell git -C $(SRCDIR) log -1 --format=%H))
+	$(eval VERSION := $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)$(LIBO_VERSION_SUFFIX)$(LIBO_VERSION_SUFFIX_SUFFIX))
+	$(eval PLATFORM := $(RTL_OS)_$(RTL_ARCH))
+	$(eval MAR_NAME_PREFIX := $(PRODUCTNAME)_$(VERSION)_$(PLATFORM)_$(BUILDID))
+	$(eval UPDATE_DIR := $(WORKDIR)/update-info)
+	$(eval MAR_DIR := $(WORKDIR)/mar)
+	$(eval CURRENT_BUILD := $(WORKDIR)/mar/current-build/)
+	mkdir -p $(UPDATE_DIR)
+	mkdir -p $(UPDATE_DIR)/previous-builds
+	MAR=$(INSTDIR)/program/mar $(SRCDIR)/bin/update/create_partial_update.py "$(PRODUCTNAME)" "$(WORKDIR)" "$(UPDATE_DIR)" "$(MAR_DIR)/previous-builds/" "$(MAR_NAME_PREFIX)" "$(UPDATE_CONFIG)" "$(PLATFORM)" "$(CURRENT_BUILD)" "$(BUILDID)"
+
 # vim: set noet sw=4 ts=4:
diff --git a/Makefile.in b/Makefile.in
index e245a8dd3f77..3823ae1653f0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -419,6 +419,9 @@ create-update-info:
 upload-update-info:
 	$(MAKE) -f $(SRCDIR)/Makefile.gbuild upload-update-info
 
+create-partial-info:
+	$(MAKE) -f $(SRCDIR)/Makefile.gbuild create-partial-info
+
 dump-deps:
 	@$(SRCDIR)/bin/module-deps.pl $(MAKE) $(SRCDIR)/Makefile.gbuild
 
commit 71f39686cb37ab76a9ae2f31b09e2668eb536d90
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Wed Apr 26 02:43:02 2017 +0200

    extract the mar signing code
    
    Change-Id: I007b0b68a61242b7255a1a58a3637e3307d675aa

diff --git a/bin/update/create_full_mar.py b/bin/update/create_full_mar.py
index f4990304857e..649eafe2bfa6 100755
--- a/bin/update/create_full_mar.py
+++ b/bin/update/create_full_mar.py
@@ -7,6 +7,7 @@ import json
 
 from tools import uncompress_file_to_dir, get_file_info, make_complete_mar_name
 from config import parse_config
+from signing import sign_mar_file
 
 current_dir_path = os.path.dirname(os.path.realpath(__file__))
 
@@ -37,10 +38,8 @@ def main():
     mar_file = make_complete_mar_name(target_dir, filename_prefix)
     subprocess.call([os.path.join(current_dir_path, 'make_full_update.sh'), mar_file, uncompress_dir])
 
-    signed_mar_file = make_mar_name(target_dir, filename_prefix + '_signed')
-    subprocess.check_call([mar_executable, '-C', target_dir, '-d', config.certificate_path, '-n', config.certificate_name, '-s', mar_file, signed_mar_file])
 
-    os.rename(signed_mar_file, mar_file)
+    sign_mar_file(target_dir, config, mar_file, filename_prefix)
 
     file_info = { 'complete' : get_file_info(mar_file, config.base_url) }
 
diff --git a/bin/update/signing.py b/bin/update/signing.py
new file mode 100644
index 000000000000..e6ac2832d844
--- /dev/null
+++ b/bin/update/signing.py
@@ -0,0 +1,11 @@
+from tools import make_complete_mar_name
+
+import os
+import subprocess
+
+def sign_mar_file(target_dir, config, mar_file, filename_prefix):
+    signed_mar_file = make_complete_mar_name(target_dir, filename_prefix + '_signed')
+    mar_executable = os.environ.get('MAR', 'mar')
+    subprocess.check_call([mar_executable, '-C', target_dir, '-d', config.certificate_path, '-n', config.certificate_name, '-s', mar_file, signed_mar_file])
+
+    os.rename(signed_mar_file, mar_file)
commit 26354ce3738838f0902c6714b4de2505e44c11b3
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Wed Apr 26 02:42:15 2017 +0200

    extract mar file name generation
    
    Change-Id: If928cae4c722354d5c3e415e7cb8426a3a4412f7

diff --git a/bin/update/create_full_mar.py b/bin/update/create_full_mar.py
index ebe2a01cd2cf..f4990304857e 100755
--- a/bin/update/create_full_mar.py
+++ b/bin/update/create_full_mar.py
@@ -5,15 +5,11 @@ import os
 import subprocess
 import json
 
-from tools import uncompress_file_to_dir, get_file_info
+from tools import uncompress_file_to_dir, get_file_info, make_complete_mar_name
 from config import parse_config
 
 current_dir_path = os.path.dirname(os.path.realpath(__file__))
 
-def make_mar_name(target_dir, filename_prefix):
-    filename = filename_prefix + "_complete.mar"
-    return os.path.join(target_dir, filename)
-
 def main():
     print(sys.argv)
     if len(sys.argv) < 7:
@@ -38,8 +34,7 @@ def main():
 
     uncompress_dir = uncompress_file_to_dir(tar_file, temp_dir)
 
-    mar_executable = os.environ.get('MAR', 'mar')
-    mar_file = make_mar_name(target_dir, filename_prefix)
+    mar_file = make_complete_mar_name(target_dir, filename_prefix)
     subprocess.call([os.path.join(current_dir_path, 'make_full_update.sh'), mar_file, uncompress_dir])
 
     signed_mar_file = make_mar_name(target_dir, filename_prefix + '_signed')
diff --git a/bin/update/tools.py b/bin/update/tools.py
index 84c7ae6fb0ab..5a3e34521b40 100644
--- a/bin/update/tools.py
+++ b/bin/update/tools.py
@@ -49,3 +49,7 @@ def replace_variables_in_string(string, **kwargs):
         new_string = new_string.replace('$(%s)'%key, val)
 
     return new_string
+
+def make_complete_mar_name(target_dir, filename_prefix):
+    filename = filename_prefix + "_complete.mar"
+    return os.path.join(target_dir, filename)
commit 4ad2df85af41b9b0616b53de43cb4d14db8ae31b
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Wed Apr 26 02:13:45 2017 +0200

    reuse the new extract mar code for the partial update generation
    
    Change-Id: Ie8c92472631034935e73e55c934ce128c7b6ecd2

diff --git a/bin/update/create_partial_update.py b/bin/update/create_partial_update.py
index 90c2abd697e3..0382f82e79d3 100755
--- a/bin/update/create_partial_update.py
+++ b/bin/update/create_partial_update.py
@@ -8,6 +8,7 @@ import subprocess
 import errno
 
 from config import parse_config
+from uncompress_mar import extract_mar
 
 BUF_SIZE = 1024
 current_dir_path = os.path.dirname(os.path.realpath(__file__))
@@ -53,7 +54,7 @@ def handle_language(lang_entries, filedir):
         download_file(lang_file , data["url"], data["hash"])
         dir_path = os.path.join(lang_dir, "lang")
         mkdir_p(dir_path)
-        subprocess.call([mar, "-C", dir_path, "-x", lang_file])
+        extract_mar(lang_file, dir_path)
         langs[lang] = dir_path
 
     return langs
@@ -83,7 +84,7 @@ def download_mar_for_update_channel_and_platform(config, platform, temp_dir):
 
         dir_path = os.path.join(filedir, "complete")
         mkdir_p(dir_path)
-        subprocess.call([mar, "-C", dir_path, "-x", filepath])
+        extract_mar(filepath, dir_path)
 
         downloaded_updates[build] = {"complete": dir_path}
 
commit d5f1ab7aa7f0d337eeccfeeab72220bdf5cc6583
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Wed Apr 26 01:55:01 2017 +0200

    ignore the precomplete file at least for now
    
    Change-Id: I997bdc38f705d7536a99a168815ece93dcf0c0de

diff --git a/bin/update/make_incremental_update.sh b/bin/update/make_incremental_update.sh
index 7c5e10826ba8..72286f06ce8a 100755
--- a/bin/update/make_incremental_update.sh
+++ b/bin/update/make_incremental_update.sh
@@ -122,12 +122,12 @@ if test $? -ne 0 ; then
   exit 1
 fi
 
-if [ ! -f "precomplete" ]; then
-  if [ ! -f "Contents/Resources/precomplete" ]; then
-    notice "precomplete file is missing!"
-    exit 1
-  fi
-fi
+# if [ ! -f "precomplete" ]; then
+#   if [ ! -f "Contents/Resources/precomplete" ]; then
+#     notice "precomplete file is missing!"
+#     exit 1
+#   fi
+# fi
 
 list_dirs newdirs
 list_files newfiles


More information about the Libreoffice-commits mailing list