From 0c44bd147207f6ff98b952b17717f2449ec58c51 Mon Sep 17 00:00:00 2001 From: don bright Date: Thu, 10 Jan 2013 00:31:57 +0100 Subject: [PATCH 1/3] add three people. update copyright date to 2013. --- src/AboutDialog.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/AboutDialog.html b/src/AboutDialog.html index bb48f6c0..0eee1cb1 100644 --- a/src/AboutDialog.html +++ b/src/AboutDialog.html @@ -22,7 +22,7 @@

-Copyright (C) 2009-2012 Marius Kintel <marius@kintel.net> and Clifford Wolf <clifford@clifford.at> +Copyright (C) 2009-2013 Marius Kintel <marius@kintel.net> and Clifford Wolf <clifford@clifford.at>

@@ -105,7 +105,7 @@ Please visit this link for a copy of the license: 0: + if user_name is None: + # Read username if not specified or loaded from svn config, or on + # subsequent tries. + sys.stdout.write('Please enter your googlecode.com username: ') + sys.stdout.flush() + user_name = sys.stdin.readline().rstrip() + if password is None: + # Read password if not loaded from svn config, or on subsequent tries. + print 'Please enter your googlecode.com password.' + print '** Note that this is NOT your Gmail account password! **' + print 'It is the password you use to access Subversion repositories,' + print 'and can be found here: http://code.google.com/hosting/settings' + password = getpass.getpass() + + status, reason, url = upload(file_path, project_name, user_name, password, + summary, labels) + # Returns 403 Forbidden instead of 401 Unauthorized for bad + # credentials as of 2007-07-17. + if status in [httplib.FORBIDDEN, httplib.UNAUTHORIZED]: + # Rest for another try. + user_name = password = None + tries = tries - 1 + else: + # We're done. + break + + return status, reason, url + + +def main(): + parser = optparse.OptionParser(usage='googlecode-upload.py -s SUMMARY ' + '-p PROJECT [options] FILE') + parser.add_option('-s', '--summary', dest='summary', + help='Short description of the file') + parser.add_option('-p', '--project', dest='project', + help='Google Code project name') + parser.add_option('-u', '--user', dest='user', + help='Your Google Code username') + parser.add_option('-w', '--password', dest='password', + help='Your Google Code password') + parser.add_option('-l', '--labels', dest='labels', + help='An optional list of comma-separated labels to attach ' + 'to the file') + + options, args = parser.parse_args() + + if not options.summary: + parser.error('File summary is missing.') + elif not options.project: + parser.error('Project name is missing.') + elif len(args) < 1: + parser.error('File to upload not provided.') + elif len(args) > 1: + parser.error('Only one file may be specified.') + + file_path = args[0] + + if options.labels: + labels = options.labels.split(',') + else: + labels = None + + status, reason, url = upload_find_auth(file_path, options.project, + options.summary, labels, + options.user, options.password) + if url: + print 'The file was uploaded successfully.' + print 'URL: %s' % url + return 0 + else: + print 'An error occurred. Your file was not uploaded.' + print 'Google Code upload server said: %s (%s)' % (reason, status) + return 1 + + +if __name__ == '__main__': + sys.exit(main()) From 8d23b5b07b0fcc9a2c75db85954bb32dc57fc6e9 Mon Sep 17 00:00:00 2001 From: don bright Date: Wed, 9 Jan 2013 19:56:56 -0600 Subject: [PATCH 3/3] dont crash if there's no .netrc file. add security notice. discourage .netrc use. --- scripts/googlecode_upload.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/scripts/googlecode_upload.py b/scripts/googlecode_upload.py index 5e25feb5..375d7aaa 100644 --- a/scripts/googlecode_upload.py +++ b/scripts/googlecode_upload.py @@ -4,27 +4,35 @@ # OpenSCAD Usage: # # 1. get a google account, get it added to the Google Code OpenSCAD project -# 2. go to https://code.google.com/hosting/settings to find your password +# 2. go to https://code.google.com/hosting/settings for username & password # ----- # # security note - # -# dont use the ~/.netrc file to store your password -# keep your password secret +# it's not advisable to use a ~/.netrc file to store your password +# keep your googlecode password secret # only upload from a secure machine # user's personal data can be at risk if your account -# is compromised and a fake openscad were to be uploaded -# +# is compromised and a fake openscad were to be uploaded. +# notify the OpenSCAD maintainer if your computer is stolen or +# your google account is ever compromised. # ----- # 4. if you are making a Stable Release, check 'docs/release_checklist.txt' # 5. create an OpenSCAD package (linux dev snapshot: ./scripts/release-common.sh) # 6. Run this to do the upload: # export SUMMARY="Linux x86-64 Snapshot" # replace as appropriate # export PACKAGEFILE=openscad-2013.01.10.x86-64.tar.gz # replace as appropriate -# python ./scripts/googlecode_upload.py -s $SUMMARY -p openscad $PACKAGEFILE -# 7. Wait.... (there is no progress meter). It should say 'success' eventually. +# python ./scripts/googlecode_upload.py -s '$SUMMARY' -p openscad $PACKAGEFILE +# 7. It will ask for username. Use user.name@gmail.com (include the @ mail address) +# 8. It will ask for password. Copy/paste the password from the https google code settings page above +# Don't use the big bold password, use the 'plain font' password from the 'machine' line +# 9. Wait.... (there is no progress meter). It should say 'success' eventually. # -# The rest of this file is original from Google. +# The rest of this file is original from Google with slight modifications by the +# OpenSCAD team. Modifications licensed under the same license as the +# original code from google - the Apache Software License 2.0: +# http://www.apache.org/licenses/LICENSE-2.0 + # # Copyright 2006, 2007 Google Inc. All Rights Reserved. @@ -196,7 +204,11 @@ def upload_find_auth(file_path, project_name, summary, labels=None, """ if user_name is None or password is None: from netrc import netrc - authenticators = netrc().authenticators("code.google.com") + authenticators = None + try: + authenticators = netrc().authenticators("code.google.com") + except: + print "Error accessing netrc authenticator. Trying alternate method" if authenticators: if user_name is None: user_name = authenticators[0]