From 220f4161ba4db9625970bc3120d8ec6809ced19d Mon Sep 17 00:00:00 2001 From: "Rob G. Healey" Date: Sat, 24 Mar 2012 19:58:05 +0000 Subject: [PATCH] Removed the Python DistUtils since we have a geps for it now. svn: r19145 --- setup.cfg | 24 --- setup.py | 425 ------------------------------------------------------ 2 files changed, 449 deletions(-) delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index aba8b303d..000000000 --- a/setup.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[install] -#prefix=/usr -#install_lib= /usr/lib/python2.6/dist-packages -#install_data= $prefix -#install_scripts=/usr/bin -#record = log - -[dist] -long-description = Gramps is an application... - -[sdist] -formats = gztar zip - -[bdist_rpm] -group = Applications -python = python2.6 -packager = -doc_files = README INSTALL COPYING NEWS FAQ TODO - -[bdist_msi] -#bdist-dir = -#dist-dir = -#install-script = - diff --git a/setup.py b/setup.py deleted file mode 100644 index 7d8e8a231..000000000 --- a/setup.py +++ /dev/null @@ -1,425 +0,0 @@ -# Gramps - a GTK+/GNOME based genealogy program -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# testing a setup.py for Gramps - -from distutils.cmd import Command -from distutils.core import setup -from distutils.command.build import build -from distutils.command.install_data import install_data -import distutils.command.clean -import sys -import glob -import os.path -import os -import subprocess -import platform - -name = 'gramps' -version = "trunk" - -PO_DIR = 'po' -MO_DIR = os.path.join('build', 'mo') - -if sys.version < '2.6': - sys.exit('Error: Python-2.6 or newer is required. Current version:\n %s' - % sys.version) - -if os.name == 'nt': - script = [os.path.join('windows','gramps.pyw')] -elif os.name == 'darwin': - script = [os.path.join('mac','gramps.launcher.sh')] -else: - # os.name == 'posix' - script = [os.path.join('gramps.sh')] - -if platform.system() == 'FreeBSD': - man_dir = 'man' -else: - man_dir = os.path.join('share', 'man') - -def modules_check(): - '''Check if necessary modules is installed. - The function is executed by distutils (by the install command).''' - try: - try: - import gtk.glade - except RuntimeError: - print ("Error importing GTK - is there no windowing environment available ? \n" - "We're going to ignore this error and live dangerously. Please make \n" - "sure you have pygtk > 2.16 and gtk available!") - except ImportError: - raise - mod_list = [ - ('pygtk','gtk'), - ('pycairo','cairo'), - 'pygobject', - ] - ok = 1 - for m in mod_list: - if type(m)==tuple: - have_mod = False - for mod in m: - try: - exec('import %s'% mod) - except ImportError: - pass - else: - have_mod = True - if not have_mod: - ok = False - print ('Error: %s is Python module is required to install %s' - % (' or '.join(m), name.title())) - else: - try: - exec('import %s' % m) - except ImportError: - ok = False - print ('Error: %s Python module is required to install %s' - % (m, name.title())) - if not ok: - sys.exit(1) - -def gramps(): - # missing const.py (const.py.in) - libs = {'gramps': [ - '*.py', - 'DateHandler/*.py', - 'docgen/*.py', - 'Filters/*.py', - 'Filters/*/*.py', - 'Filters/Rules/*/*.py', - 'GrampsLocale/*.py', - 'GrampsLogger/*.py', - 'Merge/*.py', - 'Simple/*.py'], - 'gramps.cli': [ - '*.py', - 'plug/*.py'], - 'gramps.data': [ - '*.txt', - '*.xml'], - #'javascript/css/swanky-purse/images/*.png', - #'javascript/css/swanky-purse/*.css', - #'javascript/index.html', - #'javascript/js/*.js', - #'templates/*.html', - #'templates/registration/login.html', - #'templates/successful_data_change.html'], - 'gramps.gen': [ - '*.py', - 'db/*.py', - 'display/*.py', - 'lib/*.py', - 'mime/*.py', - 'plug/*.py', - 'plug/*/*.py', - 'proxy/*.py', - 'utils/*.py'], - 'gramps.glade': [ - '*.glade', - 'glade/catalog/*.py', - 'catalog/*.xml'], - 'gramps.gui': [ - '*.py', - 'editors/*.py', - 'editors/*/*.py', - 'plug/*.py', - 'plug/*/*.py', - 'selectors/*.py', - 'views/*.py', - 'views/treemodels/*.py', - 'widgets/*.py'], - 'gramps.images': [ - '*/*.png', - '*/*.svg', - '*.png', - '*.jpg', - '*.ico', - '*.gif'], - 'gramps.plugins': [ - '*.py', - '*/*.py', - 'lib/*.xml', - 'lib/maps/*.py', - 'webstuff/css/*.css', - 'webstuff/images/*.svg', - 'webstuff/images/*.png', - 'webstuff/images/*.gif', - '*.glade', - '*/*.glade'], - 'gramps.webapp': [ - '*.py', - 'webstuff/css/*.css', - 'webstuff/images/*.svg', - 'webstuff/images/*.png', - 'webstuff/images/*.gif', - 'grampsdb/fixtures/initial_data.json', - '*/*.py', - 'sqlite.db', - 'grampsdb/*.py', - 'fixtures/initial_data.json', - 'templatetags/*py'], - } - - return libs - -def os_files(): - if os.name == 'nt' or os.name == 'darwin': - files = [ - # application icon - (os.path.join('share', 'pixmaps'), [os.path.join('src', 'images', 'ped24.ico')]), - (os.path.join('share', 'pixmaps'), [os.path.join('src', 'images', 'gramps.png')]), - (os.path.join('share', 'icons', 'scalable'), glob.glob(os.path.join('src', 'images', 'scalable', '*.svg'))), - (os.path.join('share', 'icons', '16x16'), glob.glob(os.path.join('src', 'images', '16x16', '*.png'))), - (os.path.join('share', 'icons', '22x22'), glob.glob(os.path.join('src', 'images', '22x22' ,'*.png'))), - (os.path.join('share', 'icons', '48x48'), glob.glob(os.path.join('src', 'images', '48x48', '*.png'))), - # doc - ('share', ['COPYING']), - ('share', ['FAQ']), - ('share', ['INSTALL']), - ('share', ['NEWS']), - ('share', ['README']), - ('share', ['TODO']) - ] - else: - files = [ - # XDG application description - ('share/applications', ['data/gramps.desktop']), - # XDG application icon - ('share/pixmaps', ['src/images/gramps.png']), - # XDG desktop mime types cache - ('share/mime/packages', ['data/gramps.xml']), - # mime.types - ('share/mime-info', ['data/gramps.mime']), - ('share/mime-info', ['data/gramps.keys']), - ('share/icons/gnome/48x48/mimetypes', ['data/gnome-mime-application-x-gedcom.png']), - ('share/icons/gnome/48x48/mimetypes', ['data/gnome-mime-application-x-geneweb.png']), - ('share/icons/gnome/48x48/mimetypes', ['data/gnome-mime-application-x-gramps.png']), - ('share/icons/gnome/48x48/mimetypes', ['data/gnome-mime-application-x-gramps-package.png']), - ('share/icons/gnome/48x48/mimetypes', ['data/gnome-mime-application-x-gramps-xml.png']), - ('share/icons/gnome/scalable/mimetypes', ['data/gnome-mime-application-x-gedcom.svg']), - ('share/icons/gnome/scalable/mimetypes', ['data/gnome-mime-application-x-geneweb.svg']), - ('share/icons/gnome/scalable/mimetypes', ['data/gnome-mime-application-x-gramps.svg']), - ('share/icons/gnome/scalable/mimetypes', ['data/gnome-mime-application-x-gramps-package.svg']), - ('share/icons/gnome/scalable/mimetypes', ['data/gnome-mime-application-x-gramps-xml.svg']), - # man-page, /!\ should be gramps.1 with variables - # migration to sphinx/docutils/gettext environment ? - (os.path.join(man_dir, 'man1'), ['data/man/gramps.1.in']), - (os.path.join(man_dir, 'cs', 'man1'), ['data/man/cs/gramps.1.in']), - (os.path.join(man_dir, 'fr', 'man1'), ['data/man/fr/gramps.1.in']), - (os.path.join(man_dir, 'nl', 'man1'), ['data/man/nl/gramps.1.in']), - (os.path.join(man_dir, 'pl', 'man1'), ['data/man/pl/gramps.1.in']), - (os.path.join(man_dir, 'sv', 'man1'), ['data/man/sv/gramps.1.in']), - # icons - ('share/icons/hicolor/scalable/apps', glob.glob('src/images/scalable/*.svg')), - ('share/icons/hicolor/16x16/apps', glob.glob('src/images/16x16/*.png')), - ('share/icons/hicolor/22x22/apps', glob.glob('src/images/22x22/*.png')), - ('share/icons/hicolor/48x48/apps', glob.glob('src/images/48x48/*.png')), - # doc - ('share/doc/gramps', ['COPYING']), - ('share/doc/gramps', ['FAQ']), - ('share/doc/gramps', ['INSTALL']), - ('share/doc/gramps', ['NEWS']), - ('share/doc/gramps', ['README']), - ('share/doc/gramps', ['TODO']) - ] - return files - -def trans_files(): - ''' - List of available compiled translations; ready for installation - ''' - translation_files = [] - for mo in glob.glob (os.path.join (MO_DIR, '*', 'gramps.mo')): - lang = os.path.basename(os.path.dirname(mo)) - if os.name == 'posix': - dest = os.path.join('share', 'locale', lang, 'LC_MESSAGES') - else : - dest = os.path.join('locale', lang, 'LC_MESSAGES') - translation_files.append((dest, [mo])) - - return translation_files - -class BuildData(build): - ''' - Custom command for 'python setup.py build' ... - ''' - - def initialize_options (self): - - if os.name == 'posix': - # initial makefiles ... create launcher and generate const.py - # see script ! - #os.system('./autogen.sh') - # related translations files - os.system('intltool-merge -d po/ data/gramps.desktop.in data/gramps.desktop') - os.system('intltool-merge -x po/ data/gramps.xml.in data/gramps.xml') - os.system('intltool-merge -k po/ data/gramps.keys.in data/gramps.keys') - - def run (self): - - # Run upgrade pre script - # /!\ should be gramps.sh with variables - # missing const.py (const.py.in) - - for po in glob.glob(os.path.join(PO_DIR, '*.po')): - lang = os.path.basename(po[:-3]) - mo = os.path.join(MO_DIR, lang, 'gramps.mo') - directory = os.path.dirname(mo) - if not os.path.exists(directory): - os.makedirs(directory) - if os.name == 'posix': - os.system('msgfmt %s/%s.po -o %s' % (PO_DIR, lang, mo)) - print (directory) - - def finalize_options (self): - pass - -class InstallData(install_data): - ''' - Custom command for 'python setup.py install' ... - ''' - - def run (self): - - install_data.run(self) - - def finalize_options (self): - - if os.name == 'posix': - #update the XDG Shared MIME-Info database cache - sys.stdout.write('Updating the Shared MIME-Info database cache.\n') - subprocess.call(["update-mime-database", os.path.join(sys.prefix, 'share', 'mime')]) - - #update the mime.types database (debian, ubuntu) - #sys.stdout.write('Updating the mime.types database\n') - #subprocess.call("update-mime") - - # update the XDG .desktop file database - sys.stdout.write('Updating the .desktop file database.\n') - subprocess.call(["update-desktop-database"]) - - #ldconfig - -class Install(Command): - ''' - Standard command for 'python setup.py install' ... - ''' - - description = "Attempt an install and generate a log file" - - user_options = [('fake', None, 'Override')] - - def initialize_options(self): - pass - - def run (self): - pass - - def finalize_options (self): - pass - -class Uninstall(Command): - ''' - Custom command for uninstalling - ''' - - description = "Attempt an uninstall from an install log file" - - user_options = [('log=', None, 'Installation record filename')] - - def initialize_options(self): - self.log = 'log' - - def finalize_options(self): - pass - - def get_command_name(self): - return 'uninstall' - - def run(self): - f = None - self.ensure_filename('log') - try: - try: - f = open(self.log) - files = [file.strip() for file in f] - except IOError, e: - raise DistutilsFileError("unable to open log: %s", str(e)) - finally: - if f: - f.close() - - for file in files: - if os.path.isfile(file) or os.path.islink(file): - print ("removing %s" % repr(file)) - if not self.dry_run: - try: - os.unlink(file) - except OSError, e: - warn("could not delete: %s" % repr(file)) - elif not os.path.isdir(file): - print ("skipping %s" % repr(file)) - - dirs = set() - for file in reversed(sorted(files)): - dir = os.path.dirname(file) - if dir not in dirs and os.path.isdir(dir) and len(os.listdir(dir)) == 0: - dirs.add(dir) - # Only nuke empty Python library directories, else we could destroy - # e.g. locale directories we're the only app with a .mo installed for. - if dir.find("dist-packages") > 0: - print ("removing %s" % repr(dir)) - if not self.dry_run: - try: - os.rmdir(dir) - except OSError, e: - warn("could not remove directory: %s" % str(e)) - else: - print ("skipping empty directory %s" % repr(dir)) - - -result = setup( - name = name, - version = version, - description = 'Gramps (Genealogical Research and Analysis Management Programming System)', - author = 'Gramps Development Team', - author_email = 'don@gramps-project.org', - url = 'http://gramps-project.org', - license = 'GNU GPL v2 or greater', - packages = ['gramps', - 'gramps.cli', - 'gramps.data', - 'gramps.gen', - 'gramps.glade', - 'gramps.gui', - 'gramps.images', - 'gramps.plugins', - 'gramps.webapp', - ], - package_dir = {'gramps' : 'src'}, - package_data = gramps(), - data_files = trans_files() + os_files(), - platforms = ['Linux', 'FreeBSD', 'MacOS', 'Windows'], - scripts = script, - requires = ['pygtk', 'pycairo', 'pygobject'], - cmdclass = { - 'build': BuildData, - 'install': InstallData, # override Install! - #'install_data': InstallData, # python setup.py --help-commands - 'uninstall': Uninstall} - )