chiark / gitweb /
Merge branch 'bug-fixes-for-v0.2.1' of https://gitlab.com/eighthave/fdroidserver
authorDaniel Martí <mvdan@mvdan.cc>
Tue, 1 Jul 2014 16:13:00 +0000 (18:13 +0200)
committerDaniel Martí <mvdan@mvdan.cc>
Tue, 1 Jul 2014 16:13:00 +0000 (18:13 +0200)
README
fdroidserver/common.py
fdroidserver/server.py
fdroidserver/update.py
jenkins-build
tests/run-tests

diff --git a/README b/README
index 218deff818099d04e9a293fa2709ad06c282cb7d..6efc5cd870555d3fdc820e214eedabcc48c4bd63 100644 (file)
--- a/README
+++ b/README
@@ -27,4 +27,4 @@ install:
     virtualenv env/
     . env/bin/activate
     pip install -e .
-    python setup.py install
+    python2 setup.py install
index aa362ea8e22ec0177cc5565b35790d3ef39eaaa1..0636915c3328d3c19f0cffea07422b3fbb5e9d09 100644 (file)
@@ -61,11 +61,11 @@ def get_default_config():
         '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,
     }
 
@@ -121,6 +121,9 @@ def read_config(opts, config_file='config.py'):
     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)
@@ -151,9 +154,6 @@ def test_sdk_exists(c):
     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
 
 
index 9b46de70a95ad93b226949b304479c502d3cdbb7..4e9023049e62ef366cc44c3a55ed1b68f46f4488 100644 (file)
@@ -157,9 +157,9 @@ def _local_sync(fromdir, todir):
 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):
index bff615e43939d11aa3f3dd429aa4fc818d733fbb..72d268d3b78fc57a7140a36e358360a4c0308c25 100644 (file)
@@ -876,11 +876,11 @@ def archive_old_apks(apps, apks, archapks, repodir, archivedir, defaultkeepversi
                 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)
@@ -933,6 +933,13 @@ def main():
         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()
 
index 35add775cf37ae57b34a3d8b16f81ee268b043f5..4069d820d19df8c5251cf6ba3b1a66510f466e9e 100755 (executable)
@@ -53,17 +53,17 @@ cd $WORKSPACE/tests
 #------------------------------------------------------------------------------#
 # 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
@@ -81,7 +81,7 @@ sh hooks/pre-commit
 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
index 11aa2deb3a01e70462ba52e3147fab53b0d662a1..44ede13d9780fc1dc984bc0b46b7ed5edaa080a9 100755 (executable)
@@ -23,10 +23,12 @@ copy_apks_into_repo() {
     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() {
@@ -75,12 +77,24 @@ if [ -z $aapt ]; then
     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
@@ -172,7 +186,7 @@ set -e
 
 
 #------------------------------------------------------------------------------#
-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`