# current_version_name_source = 'id'
# Optionally, override home directory for gpg
-# gpghome = /home/fdroid/somewhere/else/.gnupg
+# gpghome = '/home/fdroid/somewhere/else/.gnupg'
# The ID of a GPG key for making detached signatures for apks. Optional.
# gpgkey = '1DBA2E89'
repos.append(d)
break
return repos
+
+
+def is_repo_file(filename):
+ '''Whether the file in a repo is a build product to be delivered to users'''
+ return os.path.isfile(filename) \
+ and os.path.basename(filename) not in [
+ 'index.jar',
+ 'index.xml',
+ 'index.html',
+ 'categories.txt',
+ ]
sys.exit(1)
# Process any apks that are waiting to be signed...
- for apkfile in sorted(glob.glob(os.path.join(output_dir, '*.apk'))):
-
- apkfilename = os.path.basename(apkfile)
- sigfilename = apkfilename + ".asc"
+ for f in sorted(glob.glob(os.path.join(output_dir, '*.*'))):
+ if common.get_file_extension(f) == 'asc':
+ continue
+ if not common.is_repo_file(f):
+ continue
+ filename = os.path.basename(f)
+ sigfilename = filename + ".asc"
sigpath = os.path.join(output_dir, sigfilename)
if not os.path.exists(sigpath):
gpgargs.extend(['--homedir', config['gpghome']])
if 'gpgkey' in config:
gpgargs.extend(['--local-user', config['gpgkey']])
- gpgargs.append(os.path.join(output_dir, apkfilename))
+ gpgargs.append(os.path.join(output_dir, filename))
p = FDroidPopen(gpgargs)
if p.returncode != 0:
logging.error("Signing failed.")
sys.exit(1)
- logging.info('Signed ' + apkfilename)
+ logging.info('Signed ' + filename)
if __name__ == "__main__":
cachechanged = False
repo_files = []
for name in os.listdir(repodir):
- if name in ['index.jar', 'index.xml', 'index.html', 'categories.txt', ]:
- continue
file_extension = common.get_file_extension(name)
if file_extension == 'apk' or file_extension == 'obb':
continue
filename = os.path.join(repodir, name)
- if not os.path.isfile(filename):
+ if not common.is_repo_file(name):
continue
stat = os.stat(filename)
if stat.st_size == 0:
#------------------------------------------------------------------------------#
-echo_header "copy tests/repo, generate a keystore, and update"
+echo_header "copy tests/repo, generate java/gpg keys, update, and gpgsign"
REPOROOT=`create_test_dir`
+GNUPGHOME=$REPOROOT/gnupghome
cd $REPOROOT
$fdroid init
cp -a $WORKSPACE/tests/metadata $WORKSPACE/tests/repo $REPOROOT/
+cp -a $WORKSPACE/tests/gnupghome $GNUPGHOME
+chmod 0700 $GNUPGHOME
echo "accepted_formats = ['json', 'txt', 'xml', 'yml']" >> config.py
echo "install_list = 'org.adaway'" >> config.py
echo "uninstall_list = {'com.android.vending', 'com.facebook.orca',}" >> config.py
+echo "gpghome = '$GNUPGHOME'" >> config.py
+echo "gpgkey = 'CE71F7FB'" >> config.py
$fdroid update --verbose
test -e repo/index.xml
test -e repo/index.jar
grep -F '<application id=' repo/index.xml > /dev/null
grep -F '<install packageName=' repo/index.xml > /dev/null
grep -F '<uninstall packageName=' repo/index.xml > /dev/null
+$fdroid gpgsign --verbose
+$fdroid gpgsign --verbose
+test -e repo/obb.mainpatch.current_1619.apk.asc
+test -e repo/obb.main.twoversions_1101617_src.tar.gz.asc
+! test -e repo/obb.mainpatch.current_1619.apk.asc.asc
+! test -e repo/obb.main.twoversions_1101617_src.tar.gz.asc.asc
+! test -e repo/index.xml.asc
#------------------------------------------------------------------------------#