From d21bddc159ca7ec9c3f48bfb426a88e3d04edf7d Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 1 Apr 2014 14:56:11 -0400 Subject: [PATCH 1/4] improved warning when trying to init a dir with stuff in it --- fdroidserver/init.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fdroidserver/init.py b/fdroidserver/init.py index 666cfaef..d6804c35 100644 --- a/fdroidserver/init.py +++ b/fdroidserver/init.py @@ -112,7 +112,8 @@ def main(): shutil.copyfile(os.path.join(examplesdir, 'config.py'), 'config.py') os.chmod('config.py', 0o0600) else: - logging.info('Looks like this is already an F-Droid repo, cowardly refusing to overwrite it...') + logging.warn('Looks like this is already an F-Droid repo, cowardly refusing to overwrite it...') + logging.info('Try running `fdroid init` in an empty directory.') sys.exit() # now that we have a local config.py, read configuration... From 8ef6546f8118e7c14ed2a96eaa8ca882896cec61 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 1 Apr 2014 16:57:49 -0400 Subject: [PATCH 2/4] move fdroid-icon.png to examples/ --- fdroid-icon.png => examples/fdroid-icon.png | Bin fdroidserver/init.py | 2 +- setup.py | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename fdroid-icon.png => examples/fdroid-icon.png (100%) diff --git a/fdroid-icon.png b/examples/fdroid-icon.png similarity index 100% rename from fdroid-icon.png rename to examples/fdroid-icon.png diff --git a/fdroidserver/init.py b/fdroidserver/init.py index d6804c35..d9a2c65c 100644 --- a/fdroidserver/init.py +++ b/fdroidserver/init.py @@ -101,7 +101,7 @@ def main(): else: # we're running straight out of the git repo prefix = tmp - examplesdir = prefix + examplesdir = prefix + '/examples' fdroiddir = os.getcwd() diff --git a/setup.py b/setup.py index 90962a4e..f1b63731 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup(name='FDroidServer', [ 'buildserver/config.buildserver.py', 'examples/config.py', 'examples/makebs.config.py', - 'fdroid-icon.png']), + 'examples/fdroid-icon.png']), ], install_requires=[ 'python-magic', From ed3bd25bb5651d2374b925c139ccd494d907ad72 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 1 Apr 2014 17:06:05 -0400 Subject: [PATCH 3/4] oops, include common. to call write_password_file() --- fdroidserver/init.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fdroidserver/init.py b/fdroidserver/init.py index d9a2c65c..3c67b50c 100644 --- a/fdroidserver/init.py +++ b/fdroidserver/init.py @@ -56,8 +56,8 @@ def genpassword(): def genkey(keystore, repo_keyalias, password, keydname): '''generate a new keystore with a new key in it for signing repos''' logging.info('Generating a new key in "' + keystore + '"...') - write_password_file("keystorepass", password) - write_password_file("keypass", password) + common.write_password_file("keystorepass", password) + common.write_password_file("keypass", password) p = FDroidPopen(['keytool', '-genkey', '-keystore', keystore, '-alias', repo_keyalias, '-keyalg', 'RSA', '-keysize', '4096', From e53092cffa993031cdd6f3269ca792e42b41a9a6 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 1 Apr 2014 17:37:37 -0400 Subject: [PATCH 4/4] fix genkey key listing in `fdroid init` FDroidPopen() does not have a way to send to stdin, so we will use the password file for now. In the long run, at least the keypass should always be sent via stdin rather than via a file. Ideally, storepass would be too, but if they are different, then storepass is less important. --- fdroidserver/init.py | 5 +++-- fdroidserver/publish.py | 2 ++ fdroidserver/update.py | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/fdroidserver/init.py b/fdroidserver/init.py index 3c67b50c..d7ecab59 100644 --- a/fdroidserver/init.py +++ b/fdroidserver/init.py @@ -66,12 +66,13 @@ def genkey(keystore, repo_keyalias, password, keydname): '-storepass:file', config['keystorepassfile'], '-keypass:file', config['keypassfile'], '-dname', keydname]) + # TODO keypass should be sent via stdin if p.returncode != 0: raise BuildException("Failed to generate key", p.stdout) # now show the lovely key that was just generated p = FDroidPopen(['keytool', '-list', '-v', - '-keystore', keystore, '-alias', repo_keyalias]) - output = p.communicate(password)[0] + '-keystore', keystore, '-alias', repo_keyalias], + '-storepass:file', config['keystorepassfile']) logging.info(output.lstrip().strip() + '\n\n') diff --git a/fdroidserver/publish.py b/fdroidserver/publish.py index 1c241501..5a75a85c 100644 --- a/fdroidserver/publish.py +++ b/fdroidserver/publish.py @@ -132,6 +132,7 @@ def main(): '-storepass:file', config['keystorepassfile'], '-keypass:file', config['keypassfile'], '-dname', config['keydname']]) + # TODO keypass should be sent via stdin if p.returncode != 0: raise BuildException("Failed to generate key") @@ -141,6 +142,7 @@ def main(): '-keypass:file', config['keypassfile'], '-sigalg', 'MD5withRSA', '-digestalg', 'SHA1', apkfile, keyalias]) + # TODO keypass should be sent via stdin if p.returncode != 0: raise BuildException("Failed to sign application") diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 55d4b0e2..6e54bbc0 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -800,6 +800,7 @@ def make_index(apps, apks, repodir, archive, categories): '-keypass:file', config['keypassfile'], '-digestalg', 'SHA1', '-sigalg', 'MD5withRSA', os.path.join(repodir, 'index.jar') , config['repo_keyalias']]) + # TODO keypass should be sent via stdin if p.returncode != 0: logging.info("Failed to sign index") sys.exit(1)