1
0
Fork 0
forked from len0rd/rockbox

rbutil: Replace deploy with tarball script.

The old deployment script doesn't work anymore due to the change to
cmake, and since we build the distribution packages (zip / dmg /
AppImage) with cmake directly there's not much need left for the old
deployment.

Change-Id: Ide20887c5bc2e22aabbfb47374d70529609fbc3c
This commit is contained in:
Dominik Riebeling 2022-02-19 18:31:25 +01:00
parent 045f52d475
commit fa1e6cc5bf
2 changed files with 59 additions and 45 deletions

View file

@ -142,6 +142,23 @@ def get_object(repo, blob, destfile):
return True
def parse_rev(repo, hash):
'''Retrieve output of git rev-parse for a given hash.
@param repo Path to repository root.
@param hash Hash identifying the tree / commit to describe.
@return Description string.
'''
output = subprocess.Popen(
["git", "rev-parse", "--verify", "--short=10", hash],
stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=repo)
cmdout = output.communicate()
if len(cmdout[1]) > 0:
print("An error occured!\n")
print(cmdout[1])
return ""
return cmdout[0].decode().rstrip()
def describe_treehash(repo, treehash):
'''Retrieve output of git-describe for a given hash.
@param repo Path to repository root.

View file

@ -1,13 +1,12 @@
#!/usr/bin/python
#!/usr/bin/python3
# __________ __ ___.
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
# \/ \/ \/ \/ \/
# $Id$
#
# Copyright (c) 2010 Dominik Riebeling
# Copyright (c) 2022 Dominik Riebeling
#
# All files in this archive are subject to the GNU General Public License.
# See the file COPYING in the source tree root for full license agreement.
@ -16,13 +15,44 @@
# KIND, either express or implied.
#
import deploy
import os
import sys
import gitscraper
deploy.program = "RockboxUtility"
deploy.project = "rbutil/rbutilqt/rbutilqt.pro"
deploy.svnserver = "svn://svn.rockbox.org/rockbox/"
deploy.svnpaths = \
["rbutil/",
if len(sys.argv) < 2:
print("Usage: %s <version|hash>" % sys.argv[0])
sys.exit()
repository = os.path.abspath(
os.path.join(os.path.dirname(os.path.abspath(__file__)), "../.."))
if '.' in sys.argv[1]:
version = sys.argv[1]
basename = f"RockboxUtility-v{version}-src"
ref = f"refs/tags/rbutil_{version}"
refs = gitscraper.get_refs(repository)
if ref in refs:
tree = refs[ref]
else:
print("Could not find hash for version!")
sys.exit()
else:
tree = gitscraper.parse_rev(repository, sys.argv[1])
basename = f"RockboxUtility-{tree}"
filelist = ["utils/rbutilqt",
"utils/ipodpatcher",
"utils/sansapatcher",
"utils/mkamsboot",
"utils/chinachippatcher",
"utils/mks5lboot",
"utils/mkmpioboot",
"utils/mkimxboot",
"utils/mktccboot",
"utils/bspatch",
"utils/bzip2",
"utils/cmake",
"utils/CMakeLists.txt",
"tools/ucl",
"tools/rbspeex",
"utils/imxtools",
@ -48,41 +78,8 @@ deploy.svnpaths = \
"tools/voicefont.h",
"tools/wavtrim.c",
"tools/sapi_voice.vbs"]
deploy.useupx = False
deploy.bundlecopy = {
"icons/rbutilqt.icns" : "Contents/Resources/",
"Info.plist" : "Contents/"
}
deploy.progexe = {
"win32" : "release/RockboxUtility.exe",
"darwin" : "RockboxUtility.app",
"linux2" : "RockboxUtility",
"linux" : "RockboxUtility"
}
deploy.regreplace = {
"rbutil/rbutilqt/version.h" : [["\$Rev\$", "%REVISION%"],
["(^#define BUILDID).*", "\\1 \"%BUILDID%\""]],
"rbutil/rbutilqt/Info.plist" : [["\$Rev\$", "%REVISION%"]],
}
# OS X 10.6 defaults to gcc 4.2. Building universal binaries that are
# compatible with 10.4 requires using gcc-4.0.
deploy.qmakespec = {
"win32" : "",
"darwin" : "macx-g++40",
"linux2" : "",
"linux" : ""
}
deploy.make = {
"win32" : "mingw32-make",
"darwin" : "make",
"linux2" : "make",
"linux" : "make"
}
# all files of the program. Will get put into an archive after building
# (zip on w32, tar.bz2 on Linux). Does not apply on Mac which uses dmg.
# progexe will get added automatically.
deploy.programfiles = list()
deploy.nsisscript = ""
print(f"Getting git revision {tree}")
gitscraper.archive_files(repository, tree, filelist, basename, archive="tbz")
deploy.deploy()
print(f"Created {basename}.tar.bz2.")