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]