The third parameter specifies the tag, commit or revision number from
which to build it in the source repository.
-If the commit version starts with a !, that version is not built. Instead,
-everything after the ! is used as a reason why it can't be built. The
-purpose of this feature is to allow non-buildable releases (e.g. the source
-is not published) to be flagged, so the scripts don't generate repeated
-messages about them. (And also to record the information for review later).
-If an apk has already been built, ! causes it to be deleted once
-@code{fdroid update} is run; this is the procedure if ever a version has to
-be replaced.
-
In addition to the three, always required, parameters described above,
further parameters can be added (in name=value format) to apply further
configuration to the build. These are (roughly in order of application):
@table @code
+@item disable=<message>
+Disables this build, giving a reason why. (For backwards compatibility, this
+can also be achieved by starting the commit ID with '!')
+
+The purpose of this feature is to allow non-buildable releases (e.g. the source
+is not published) to be flagged, so the scripts don't generate repeated
+messages about them. (And also to record the information for review later).
+If an apk has already been built, disabling causes it to be deleted once
+@code{fdroid update} is run; this is the procedure if ever a version has to
+be replaced.
+
@item subdir=<path>
Specifies to build from a subdirectory of the checked out source code.
Normally this directory is changed to before building,
for thisbuild in app['builds']:
- if thisbuild['commit'].startswith('!'):
+ if thisbuild['commit'].startswith('!') or 'disable' in thisbuild:
print ("..skipping version " + thisbuild['version'] + " - " +
- thisbuild['commit'][1:])
+ thisbuild.get('disable', thisbuild['commit'][1:]))
else:
print "..scanning version " + thisbuild['version']
apklist.append(apk)
# Include ones we can't build, as a special case...
for thisbuild in app['builds']:
- if thisbuild['commit'].startswith('!'):
+ if thisbuild['commit'].startswith('!') or 'disable' in thisbuild:
if thisbuild['vercode'] == app['Current Version Code']:
cantupdate = True
apklist.append({
#TODO: Nasty: vercode is a string in the build, and an int elsewhere
'versioncode': int(thisbuild['vercode']),
'version': thisbuild['version'],
- 'buildproblem': thisbuild['commit'][1:]
+ 'buildproblem': thisbuild.get('disable', thisbuild['commit'][1:])
})
else:
builtit = False
"""
for app in apps:
for build in app['builds']:
- if build['commit'].startswith('!'):
+ if build['commit'].startswith('!') or 'disable' in build:
apkfilename = app['id'] + '_' + str(build['vercode']) + '.apk'
for repodir in repodirs:
apkpath = os.path.join(repodir, apkfilename)