aboutsummaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2016-09-04 19:21:09 -0700
committerMicah Lee <micah@micahflee.com>2016-09-04 19:21:09 -0700
commitdb9d81ba90b8a41f2b52292c80d55df53d66a648 (patch)
treef3d4ae9741aaffd5b2cb661d05f01a3805152a67 /setup.py
parent79938e9518c4584e8ee3a660869ddaa91d34dc42 (diff)
downloadonionshare-db9d81ba90b8a41f2b52292c80d55df53d66a648.tar.gz
onionshare-db9d81ba90b8a41f2b52292c80d55df53d66a648.zip
Migrate from PyInstaller to cx_Freeze for OSX
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py147
1 files changed, 78 insertions, 69 deletions
diff --git a/setup.py b/setup.py
index a3516a88..b37f3598 100644
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
-import os, sys, platform
+import os, sys, platform, tempfile
def file_list(path):
files = []
@@ -42,84 +42,69 @@ long_description = description + " " + (
author = 'Micah Lee'
author_email = 'micah@micahflee.com'
url = 'https://github.com/micahflee/onionshare'
-license = "GPL v3"
+license = 'GPL v3'
keywords = 'onion, share, onionshare, tor, anonymous, web server'
os = platform.system()
-if os == 'Windows':
+# Windows and Mac
+if os == 'Windows' or os == 'Darwin':
from cx_Freeze import setup, Executable
+
+ if os == 'Windows':
+ executables = [
+ Executable('install/scripts/onionshare',
+ icon='install/onionshare.ico',
+ base=None),
+ Executable('install/scripts/onionshare-gui',
+ icon='install/onionshare.ico',
+ shortcutName='OnionShare',
+ shortcutDir='ProgramMenuFolder',
+ base='Win32GUI')
+ ]
+ custom_info_plist = ''
+
+ elif os == 'Darwin':
+ executables = [
+ Executable('install/scripts/onionshare-gui'),
+ Executable('install/scripts/onionshare')
+ ]
+
+ # Write the correct version into Info.plist
+ f = tempfile.NamedTemporaryFile(mode='w')
+ custom_info_plist = f.name
+ f.write(open('install/Info.plist').read().replace('{VERSION}', str(version)))
+ f.flush()
+
setup(
- name="OnionShare",
- version=version,
- description=description,
- long_description=long_description,
- author=author,
- author_email=author_email,
- url=url,
- license=license,
- keywords=keywords,
+ name='OnionShare', version=version,
+ description=description, long_description=long_description,
+ author=author, author_email=author_email,
+ url=url, license=license, keywords=keywords,
options={
- "build_exe": {
- "packages": [],
- "excludes": [],
- "include_files": ['resources']
+ 'build_exe': {
+ 'packages': ['jinja2.ext'],
+ 'excludes': [],
+ 'include_files': ['resources']
+ },
+ 'bdist_mac': {
+ 'iconfile': 'install/onionshare.icns',
+ 'bundle_name': 'OnionShare',
+ 'qt_menu_nib': '/usr/local/Cellar/qt5/5.6.1-1/plugins/platforms',
+ 'custom_info_plist': custom_info_plist
}
},
- executables=[
- Executable("install/scripts/onionshare",
- icon="install/onionshare.ico",
- base=None),
- Executable("install/scripts/onionshare-gui",
- icon="install/onionshare.ico",
- shortcutName="OnionShare",
- shortcutDir="ProgramMenuFolder",
- base="Win32GUI")
- ]
+ executables=executables
)
-
-else:
- images = [
- 'resources/images/logo.png',
- 'resources/images/drop_files.png',
- 'resources/images/server_stopped.png',
- 'resources/images/server_started.png',
- 'resources/images/server_working.png'
- ]
- locale = [
- 'resources/locale/cs.json',
- 'resources/locale/de.json',
- 'resources/locale/en.json',
- 'resources/locale/eo.json',
- 'resources/locale/es.json',
- 'resources/locale/fi.json',
- 'resources/locale/fr.json',
- 'resources/locale/it.json',
- 'resources/locale/nl.json',
- 'resources/locale/no.json',
- 'resources/locale/pt.json',
- 'resources/locale/ru.json',
- 'resources/locale/tr.json'
- ]
-
- html = [
- 'resources/html/index.html',
- 'resources/html/denied.html',
- 'resources/html/404.html'
- ]
-
+# Linux
+else:
from setuptools import setup
setup(
- name='onionshare',
- version=version,
- description=description,
- long_description=long_description,
- author=author,
- author_email=author_email,
- url=url,
- license=license,
- keywords=keywords,
+ name='onionshare', version=version,
+ description=description, long_description=long_description,
+ author=author, author_email=author_email,
+ url=url, license=license, keywords=keywords,
packages=['onionshare', 'onionshare_gui'],
include_package_data=True,
scripts=['install/scripts/onionshare', 'install/scripts/onionshare-gui'],
@@ -131,9 +116,33 @@ else:
'resources/version.txt',
'resources/wordlist.txt'
]),
- (os.path.join(sys.prefix, 'share/onionshare/images'), images),
- (os.path.join(sys.prefix, 'share/onionshare/locale'), locale),
- (os.path.join(sys.prefix, 'share/onionshare/html'), html),
+ (os.path.join(sys.prefix, 'share/onionshare/images'), [
+ 'resources/images/logo.png',
+ 'resources/images/drop_files.png',
+ 'resources/images/server_stopped.png',
+ 'resources/images/server_started.png',
+ 'resources/images/server_working.png'
+ ]),
+ (os.path.join(sys.prefix, 'share/onionshare/locale'), [
+ 'resources/locale/cs.json',
+ 'resources/locale/de.json',
+ 'resources/locale/en.json',
+ 'resources/locale/eo.json',
+ 'resources/locale/es.json',
+ 'resources/locale/fi.json',
+ 'resources/locale/fr.json',
+ 'resources/locale/it.json',
+ 'resources/locale/nl.json',
+ 'resources/locale/no.json',
+ 'resources/locale/pt.json',
+ 'resources/locale/ru.json',
+ 'resources/locale/tr.json'
+ ]),
+ (os.path.join(sys.prefix, 'share/onionshare/html'), [
+ 'resources/html/index.html',
+ 'resources/html/denied.html',
+ 'resources/html/404.html'
+ ]),
('/usr/share/nautilus-python/extensions/', ['install/scripts/onionshare-nautilus.py']),
]
)