virtualenv env/
. env/bin/activate
pip install -e .
- python setup.py install
+ python2 setup.py install
'repo_url': "https://MyFirstFDroidRepo.org/fdroid/repo",
'repo_name': "My First FDroid Repo Demo",
'repo_icon': "fdroid-icon.png",
- 'repo_description':
+ 'repo_description': (
"This is a repository of apps to be used with FDroid. Applications in this "
- "repository are either official binaries built by the original application "
- "developers, or are binaries built from source by the admin of f-droid.org "
- "using the tools on https://gitlab.com/u/fdroid.",
+ + "repository are either official binaries built by the original application "
+ + "developers, or are binaries built from source by the admin of f-droid.org "
+ + "using the tools on https://gitlab.com/u/fdroid."),
'archive_older': 0,
}
if not test_sdk_exists(config):
sys.exit(3)
+ if not test_build_tools_exists(config):
+ sys.exit(3)
+
for k in ["keystorepass", "keypass"]:
if k in config:
write_password_file(k)
if not os.path.isdir(os.path.join(c['sdk_path'], 'build-tools')):
logging.critical('Android SDK path "' + c['sdk_path'] + '" does not contain "build-tools/"!')
return False
- if not os.path.isdir(os.path.join(c['sdk_path'], 'build-tools', c['build_tools'])):
- logging.critical('Configured build-tools version "' + c['build_tools'] + '" not found in the SDK!')
- return False
return True
def sync_from_localcopy(repo_section, local_copy_dir):
logging.info('Syncing from local_copy_dir to this repo.')
# trailing slashes have a meaning in rsync which is not needed here, so
- # remove them all
- _local_sync(os.path.join(local_copy_dir, repo_section).rstrip('/'),
- repo_section.rstrip('/'))
+ # make sure both paths have exactly one trailing slash
+ _local_sync(os.path.join(local_copy_dir, repo_section).rstrip('/') + '/',
+ repo_section.rstrip('/') + '/')
def update_localcopy(repo_section, local_copy_dir):
if 'srcname' in apk:
shutil.move(os.path.join(repodir, apk['srcname']),
os.path.join(archivedir, apk['srcname']))
- # Move GPG signature too...
- sigfile = apk['srcname'] + '.asc'
- sigsrc = os.path.join(repodir, sigfile)
- if os.path.exists(sigsrc):
- shutil.move(sigsrc, os.path.join(archivedir, sigfile))
+ # Move GPG signature too...
+ sigfile = apk['srcname'] + '.asc'
+ sigsrc = os.path.join(repodir, sigfile)
+ if os.path.exists(sigsrc):
+ shutil.move(sigsrc, os.path.join(archivedir, sigfile))
archapks.append(apk)
apks.remove(apk)
resize_all_icons(repodirs)
sys.exit(0)
+ # check that icons exist now, rather than fail at the end of `fdroid update`
+ for k in ['repo_icon', 'archive_icon']:
+ if k in config:
+ if not os.path.exists(config[k]):
+ logging.error(k + ' "' + config[k] + '" does not exist! Correct it in config.py.')
+ sys.exit(1)
+
# Get all apps...
apps = metadata.read_metadata()
#------------------------------------------------------------------------------#
# test building the source tarball
cd $WORKSPACE
-python setup.py sdist
+python2 setup.py sdist
#------------------------------------------------------------------------------#
# test install using site packages
cd $WORKSPACE
rm -rf $WORKSPACE/env
-virtualenv --system-site-packages $WORKSPACE/env
+virtualenv --python=python2 --system-site-packages $WORKSPACE/env
. $WORKSPACE/env/bin/activate
pip install -e $WORKSPACE
-python setup.py install
+python2 setup.py install
# run tests in new pip+virtualenv install
. $WORKSPACE/env/bin/activate
cd $WORKSPACE
set +e
# use the virtualenv python so pylint checks against its installed libs
- PYTHONPATH=$WORKSPACE/.pylint-plugins python /usr/bin/pylint \
+ PYTHONPATH=$WORKSPACE/.pylint-plugins python2 /usr/bin/pylint \
--output-format=parseable --reports=n \
--load-plugins astng_hashlib \
fdroidserver/*.py fdroid makebuildserver setup.py > $WORKSPACE/pylint.parseable
set -x
}
+# keep this as an old version to test the automatic parsing of build-tools
+# verion numbers in `fdroid init`
create_fake_android_home() {
mkdir $1/build-tools
- mkdir $1/build-tools/20.0.0
- touch $1/build-tools/20.0.0/aapt
+ mkdir $1/build-tools/19.0.2
+ touch $1/build-tools/19.0.2/aapt
}
create_test_dir() {
aapt=`ls -1 $ANDROID_HOME/build-tools/*/aapt | sort | tail -1`
fi
+# allow the location of python to be overridden
+if [ -z $python ]; then
+ python=python2
+fi
+
+
+#------------------------------------------------------------------------------#
+echo_header "run commit hooks"
+
+cd $WORKSPACE
+./hooks/pre-commit
+
#------------------------------------------------------------------------------#
echo_header "create a source tarball and use that to build a repo"
cd $WORKSPACE
-python setup.py sdist
+$python setup.py sdist
REPOROOT=`create_test_dir`
cd $REPOROOT
#------------------------------------------------------------------------------#
-echo_header "check that fake android home passes `fdroid init`"
+echo_header "check that fake android home passes 'fdroid init'"
REPOROOT=`create_test_dir`
FAKE_ANDROID_HOME=`create_test_dir`