2008-01-12 Benny Malengier <benny.malengier@gramps-project.org>
* src/GrampsDisplay.py: open url in standard way * src/gramps.py: add comment on use of import gnome * README: * INSTALL: Remove need for gconf, add need for xdg utilities svn: r9788
This commit is contained in:
		| @@ -1,3 +1,10 @@ | ||||
| 2008-01-12  Benny Malengier <benny.malengier@gramps-project.org> | ||||
| 	* src/GrampsDisplay.py: open url in standard way | ||||
| 	* src/gramps.py: add comment on use of import gnome | ||||
| 	* README: | ||||
| 	* INSTALL: | ||||
| 	Remove need for gconf, add need for xdg utilities | ||||
|  | ||||
| 2008-01-12 Raphael Ackermann <raphael.ackermann@gmail.com> | ||||
|     * src/Config/__init__.py: revert wrong indentation changes | ||||
|  | ||||
|   | ||||
							
								
								
									
										35
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								INSTALL
									
									
									
									
									
								
							| @@ -24,16 +24,17 @@ missing. | ||||
|  | ||||
| Regular vs local installation | ||||
| ----------------------------- | ||||
| This version of gramps requires, among others, the two things to be done: | ||||
| gconf schemas and mime types for gramps MUST be properly installed. | ||||
| This version of gramps requires, among others, the following to be done: | ||||
|  | ||||
| mime types for gramps MUST be properly installed. | ||||
|  | ||||
| The usual ./configure, make, and make install as a root should do the trick. | ||||
|  | ||||
| But be careful if you're using the non-default options or would like | ||||
| to install without being root. | ||||
|  | ||||
| The latter is possible, but you should supply additional arguments to | ||||
| autogen or configure: | ||||
|    --with-gconf-source=xml::$HOME/.gconf | ||||
|    --with-gconf-schema-file-dir=$HOME | ||||
|    --with-mime-dir=$HOME/.local/share/mime | ||||
|    --disable-scrollkeeper | ||||
| Most likely, such local install will also need some prefix with write | ||||
| @@ -41,30 +42,21 @@ permissions for you: | ||||
|    --prefix=$HOME/my_gramps_path | ||||
|  | ||||
| Whether you're doing local install or regular install, | ||||
| YOU MUST INSTALL GCONF SCHEMAS AND MIME TYPES. | ||||
| YOU MUST INSTALL MIME TYPES. | ||||
| YOU HAVE BEEN WARNED! | ||||
|  | ||||
|  | ||||
| Installing under non-default prefix | ||||
| ----------------------------------- | ||||
| As hinted above, the gconf schemas and mime types for gramps | ||||
| MUST be properly installed. The "proper install" means installing | ||||
| them where gconfd and shared mime system, respectively, will | ||||
| find them. | ||||
|  | ||||
| By default, gconfd will look in these places: | ||||
|    1. Whatever is returned by running: | ||||
|       $ gconftool-2 --get-default-source | ||||
|    2. The xml::$HOME/.gconf        : this is a per-user setup, not system-wide | ||||
|       or  xml:merged:$HOME/.gconf  : this is a per-user setup, not system-wide | ||||
| There is a number of ways to let gconfd know where else | ||||
| to look, but this is outside the scope of installing gramps. | ||||
| As hinted above, mime types for gramps MUST be properly installed.  | ||||
| The "proper install" means installing | ||||
| them where the shared mime system will find them. | ||||
|  | ||||
| By default, the shared mime systems will look in these places: | ||||
|    1. /usr/share/mime | ||||
|    2. /usr/local/share/mime   : this may be broken on some systems | ||||
|    3. $HOME/.local/share/mime : this is a per-user setup, not system-wide | ||||
| Likewise, there's a number of ways to instruct the shared mime system | ||||
| There's a number of ways to instruct the shared mime system | ||||
| to look in other places, but this is the whole other story. | ||||
|  | ||||
| So if you install some place other than /usr/share, you will most | ||||
| @@ -79,16 +71,15 @@ something like --prefix=/usr/local/my_gramps, /var/gramps123/blah, etc. | ||||
|  | ||||
| Packager's issues | ||||
| ------------------ | ||||
| The above mentioned gconf schemas and mime types must be installed. | ||||
| However, the update-mime-database and the gconftool-2 calls to process | ||||
| the newly installed types and schemas must be done in POST-INSTALLATION. | ||||
| The above mime types must be installed. | ||||
| However, the update-mime-database to process the newly installed types and schemas must be done in POST-INSTALLATION. | ||||
| In packager's world, the install happens on packager's machine | ||||
| into something like /tmp/gramps-tmp. However, the postinstall | ||||
| should happen on the user's machine. | ||||
|  | ||||
| To assist with that, there's an argument available in configure | ||||
| (or autogen, which will pass it to configure) which disables | ||||
| the gconf schema and mime type processing: | ||||
| mime type processing: | ||||
|    --enable-packager-mode | ||||
| This argument should disable postinstall calls made during | ||||
| make install, and print a nasty warning during configure. | ||||
|   | ||||
							
								
								
									
										6
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								README
									
									
									
									
									
								
							| @@ -16,11 +16,15 @@ The following packages are *STRONGLY RECOMMENDED* to be installed: | ||||
|  | ||||
|    GraphViz         Enable creation of graphs using GraphViz engine | ||||
|                     http://www.graphviz.org | ||||
|    xdg              Freedesktop utilities, eg xdg-open | ||||
|  | ||||
| The following packages are optional | ||||
|    gtkspell         Enable spell checking in the notes | ||||
|    ttf-freefont     More font support in the reports | ||||
|    yelp             Gnome help browser. You can view our help online too  | ||||
|  | ||||
| No longer needed in 3.0: | ||||
|    yelp             Gnome help browser. At the moment no help is shipped | ||||
|                     with version 3.0. | ||||
|  | ||||
|  | ||||
| Documentation | ||||
|   | ||||
| @@ -42,36 +42,55 @@ def help(target, webpage='', section=''): | ||||
|             link + '#' + section | ||||
|     url(link) | ||||
|          | ||||
| def url(target): | ||||
| def url(link): | ||||
|     """ | ||||
|     Open the specified URL in a browser. Attempt using the GNOME system if | ||||
|     available, if not, try to find a browser. | ||||
|     Open the specified URL in a browser.  | ||||
|     """ | ||||
|     try: | ||||
|         import gnome | ||||
|         gnome.url_show(target) | ||||
|     except: | ||||
|         run_browser(target) | ||||
|          | ||||
|     if not run_file(link): | ||||
|         run_browser(link) | ||||
|  | ||||
| def run_file(file): | ||||
|     """ | ||||
|     Open a file or url with the default application. This should work | ||||
|     on GNOME, KDE, XFCE, ... as we use a freedesktop application | ||||
|     """ | ||||
|     import os | ||||
|      | ||||
|     search = os.environ['PATH'].split(':') | ||||
|      | ||||
|     xdgopen = 'xdg-open' | ||||
|     for path in search: | ||||
|         prog = os.path.join(path, xdgopen) | ||||
|         if os.path.isfile(prog): | ||||
|             os.spawnvpe(os.P_NOWAIT, prog, [prog, file], os.environ) | ||||
|             return True | ||||
|      | ||||
|     return False | ||||
|  | ||||
| def run_browser(url): | ||||
|     """ | ||||
|     Attempt of find a browswer, and launch with the browser with the | ||||
|     specified URL | ||||
|     Use run_file first! | ||||
|     """ | ||||
|     import os | ||||
|  | ||||
|     search = os.environ['PATH'].split(':') | ||||
|  | ||||
|     for browser in ['firefox','konqueror','epiphany','galeon','mozilla']: | ||||
|         for path in search: | ||||
|             prog = os.path.join(path,browser) | ||||
|             if os.path.isfile(prog): | ||||
|                 os.spawnvpe(os.P_NOWAIT, prog, [prog, url], os.environ) | ||||
|                 return | ||||
|  | ||||
|     # If we did not find a browser in the path, try this | ||||
|     try: | ||||
|         os.startfile(url) | ||||
|     except: | ||||
|         pass | ||||
|         import webbrowser | ||||
|         webbrowser.open_new_tab(url) | ||||
|     except ImportError: | ||||
|         import os | ||||
|  | ||||
|         search = os.environ['PATH'].split(':') | ||||
|  | ||||
|         for browser in ['firefox', 'konqueror', 'epiphany', | ||||
|                         'galeon', 'mozilla']: | ||||
|             for path in search: | ||||
|                 prog = os.path.join(path,browser) | ||||
|                 if os.path.isfile(prog): | ||||
|                     os.spawnvpe(os.P_NOWAIT, prog, [prog, url], os.environ) | ||||
|                     return | ||||
|  | ||||
|         # If we did not find a browser in the path, try this | ||||
|         try: | ||||
|             os.startfile(url) | ||||
|         except: | ||||
|             pass | ||||
|   | ||||
| @@ -168,6 +168,12 @@ def run(): | ||||
|     setup_logging() | ||||
|  | ||||
|     try: | ||||
|         #This is GNOME initialization code that is necessary for use  | ||||
|         # with the other GNOME libraries.  | ||||
|         #It only gets called if the user has gnome installed on his/her system. | ||||
|         #There is *no* requirement for it. | ||||
|         #If you don't call this, you are not guaranteed that the other GNOME | ||||
|         #libraries will function properly. I learned this the hard way. | ||||
|         import gnome | ||||
|         program = gnome.program_init('gramps',const.VERSION,  | ||||
|                                      gnome.libgnome_module_info_get(), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user