summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xutils/common/gitscraper.py17
-rwxr-xr-xutils/common/tarball-rbutil.py (renamed from utils/common/deploy-rbutil.py)87
2 files changed, 59 insertions, 45 deletions
diff --git a/utils/common/gitscraper.py b/utils/common/gitscraper.py
index 5b3b316115..8d162155d9 100755
--- a/utils/common/gitscraper.py
+++ b/utils/common/gitscraper.py
@@ -142,6 +142,23 @@ def get_object(repo, blob, destfile):
142 return True 142 return True
143 143
144 144
145def parse_rev(repo, hash):
146 '''Retrieve output of git rev-parse for a given hash.
147 @param repo Path to repository root.
148 @param hash Hash identifying the tree / commit to describe.
149 @return Description string.
150 '''
151 output = subprocess.Popen(
152 ["git", "rev-parse", "--verify", "--short=10", hash],
153 stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=repo)
154 cmdout = output.communicate()
155 if len(cmdout[1]) > 0:
156 print("An error occured!\n")
157 print(cmdout[1])
158 return ""
159 return cmdout[0].decode().rstrip()
160
161
145def describe_treehash(repo, treehash): 162def describe_treehash(repo, treehash):
146 '''Retrieve output of git-describe for a given hash. 163 '''Retrieve output of git-describe for a given hash.
147 @param repo Path to repository root. 164 @param repo Path to repository root.
diff --git a/utils/common/deploy-rbutil.py b/utils/common/tarball-rbutil.py
index 0c98575843..ccc413ca59 100755
--- a/utils/common/deploy-rbutil.py
+++ b/utils/common/tarball-rbutil.py
@@ -1,13 +1,12 @@
1#!/usr/bin/python 1#!/usr/bin/python3
2# __________ __ ___. 2# __________ __ ___.
3# Open \______ \ ____ ____ | | _\_ |__ _______ ___ 3# Open \______ \ ____ ____ | | _\_ |__ _______ ___
4# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 4# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 5# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 6# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7# \/ \/ \/ \/ \/ 7# \/ \/ \/ \/ \/
8# $Id$
9# 8#
10# Copyright (c) 2010 Dominik Riebeling 9# Copyright (c) 2022 Dominik Riebeling
11# 10#
12# All files in this archive are subject to the GNU General Public License. 11# All files in this archive are subject to the GNU General Public License.
13# See the file COPYING in the source tree root for full license agreement. 12# See the file COPYING in the source tree root for full license agreement.
@@ -16,13 +15,44 @@
16# KIND, either express or implied. 15# KIND, either express or implied.
17# 16#
18 17
19import deploy 18import os
19import sys
20import gitscraper
20 21
21deploy.program = "RockboxUtility" 22if len(sys.argv) < 2:
22deploy.project = "rbutil/rbutilqt/rbutilqt.pro" 23 print("Usage: %s <version|hash>" % sys.argv[0])
23deploy.svnserver = "svn://svn.rockbox.org/rockbox/" 24 sys.exit()
24deploy.svnpaths = \ 25
25 ["rbutil/", 26repository = os.path.abspath(
27 os.path.join(os.path.dirname(os.path.abspath(__file__)), "../.."))
28
29if '.' in sys.argv[1]:
30 version = sys.argv[1]
31 basename = f"RockboxUtility-v{version}-src"
32 ref = f"refs/tags/rbutil_{version}"
33 refs = gitscraper.get_refs(repository)
34 if ref in refs:
35 tree = refs[ref]
36 else:
37 print("Could not find hash for version!")
38 sys.exit()
39else:
40 tree = gitscraper.parse_rev(repository, sys.argv[1])
41 basename = f"RockboxUtility-{tree}"
42
43filelist = ["utils/rbutilqt",
44 "utils/ipodpatcher",
45 "utils/sansapatcher",
46 "utils/mkamsboot",
47 "utils/chinachippatcher",
48 "utils/mks5lboot",
49 "utils/mkmpioboot",
50 "utils/mkimxboot",
51 "utils/mktccboot",
52 "utils/bspatch",
53 "utils/bzip2",
54 "utils/cmake",
55 "utils/CMakeLists.txt",
26 "tools/ucl", 56 "tools/ucl",
27 "tools/rbspeex", 57 "tools/rbspeex",
28 "utils/imxtools", 58 "utils/imxtools",
@@ -48,41 +78,8 @@ deploy.svnpaths = \
48 "tools/voicefont.h", 78 "tools/voicefont.h",
49 "tools/wavtrim.c", 79 "tools/wavtrim.c",
50 "tools/sapi_voice.vbs"] 80 "tools/sapi_voice.vbs"]
51deploy.useupx = False
52deploy.bundlecopy = {
53 "icons/rbutilqt.icns" : "Contents/Resources/",
54 "Info.plist" : "Contents/"
55}
56deploy.progexe = {
57 "win32" : "release/RockboxUtility.exe",
58 "darwin" : "RockboxUtility.app",
59 "linux2" : "RockboxUtility",
60 "linux" : "RockboxUtility"
61}
62deploy.regreplace = {
63 "rbutil/rbutilqt/version.h" : [["\$Rev\$", "%REVISION%"],
64 ["(^#define BUILDID).*", "\\1 \"%BUILDID%\""]],
65 "rbutil/rbutilqt/Info.plist" : [["\$Rev\$", "%REVISION%"]],
66}
67# OS X 10.6 defaults to gcc 4.2. Building universal binaries that are
68# compatible with 10.4 requires using gcc-4.0.
69deploy.qmakespec = {
70 "win32" : "",
71 "darwin" : "macx-g++40",
72 "linux2" : "",
73 "linux" : ""
74}
75deploy.make = {
76 "win32" : "mingw32-make",
77 "darwin" : "make",
78 "linux2" : "make",
79 "linux" : "make"
80}
81 81
82# all files of the program. Will get put into an archive after building 82print(f"Getting git revision {tree}")
83# (zip on w32, tar.bz2 on Linux). Does not apply on Mac which uses dmg. 83gitscraper.archive_files(repository, tree, filelist, basename, archive="tbz")
84# progexe will get added automatically.
85deploy.programfiles = list()
86deploy.nsisscript = ""
87 84
88deploy.deploy() 85print(f"Created {basename}.tar.bz2.")