Added logic to properly install pygit2 on ubuntu systems and made the pygit2 installation more flexible in general.
This commit is contained in:
		
							parent
							
								
									5db269e560
								
							
						
					
					
						commit
						addc6d5a26
					
				| @ -28,6 +28,13 @@ salt: | ||||
|       install_from_source: True | ||||
|     pygit2: | ||||
|       install_from_source: True | ||||
|       version: 0.23.0 | ||||
|       libgit2: | ||||
|         version: 0.23.0 | ||||
|         install_from_source: True | ||||
|         build_parent_dir: /usr/src/ | ||||
|         # hash necessary until github issue #9272 is addressed | ||||
|         download_hash: 683d1164e361e2a0a8d52652840e2340 | ||||
|     gitpython: | ||||
|       install_from_source: False | ||||
| 
 | ||||
|  | ||||
| @ -1,9 +1,16 @@ | ||||
| {% from "salt/map.jinja" import salt_settings with context %} | ||||
| {% set pygit2_settings = salt_settings.gitfs.pygit2 %} | ||||
| 
 | ||||
| git: | ||||
|   pkg.installed | ||||
| 
 | ||||
| {% if salt_settings.gitfs.pygit2.install_from_source %} | ||||
| {% if pygit2_settings.install_from_source %} | ||||
| {% set libgit2_settings = pygit2_settings.libgit2 %} | ||||
| 
 | ||||
| {% if libgit2_settings.install_from_source %} | ||||
| {% set libgit2_src_dir = libgit2_settings.build_parent_dir + 'libgit2-' + libgit2_settings.version %} | ||||
| {% set libgit2_build_dir = libgit2_src_dir + '/_build' %} | ||||
| 
 | ||||
| # we probably don't have a package or it's not a high enough version | ||||
| # install latest from source/pip | ||||
| pygit-deps: | ||||
| @ -17,32 +24,32 @@ pygit-deps: | ||||
| 
 | ||||
| dl-libgit2-src: | ||||
|   archive.extracted: | ||||
|     - name: /usr/src | ||||
|     - source: https://github.com/libgit2/libgit2/archive/v0.22.1.tar.gz | ||||
|     - source_hash: md5=dbf516d18e176bbb131de3efccfee533 | ||||
|     - name: {{ libgit2_settings.build_parent_dir }} | ||||
|     - source: https://github.com/libgit2/libgit2/archive/v{{ libgit2_settings.version }}.tar.gz | ||||
|     - source_hash: md5={{ libgit2_settings.download_hash }} | ||||
|     - archive_format: tar | ||||
|     - keep: True | ||||
|     - if_missing: /usr/src/libgit2-0.22.1 | ||||
|     - if_missing: /usr/src/libgit2-{{ libgit2_settings.version }} | ||||
| 
 | ||||
| /usr/src/libgit2-0.22.1/_build: | ||||
| {{ libgit2_build_dir }}: | ||||
|   file.directory | ||||
| 
 | ||||
| configure-libgit2: | ||||
|   cmd.run: | ||||
|     - name: cmake .. | ||||
|     - cwd: /usr/src/libgit2-0.22.1/_build | ||||
|     - creates: /usr/src/libgit2-0.22.1/_build/Makefile | ||||
|     - cwd: {{ libgit2_build_dir }} | ||||
|     - creates: {{ libgit2_build_dir }}/Makefile | ||||
| 
 | ||||
| build-libgit2: | ||||
|   cmd.run: | ||||
|     - name: make -j4 | ||||
|     - cwd: /usr/src/libgit2-0.22.1/_build | ||||
|     - creates: /usr/src/libgit2-0.22.1/_build/libgit2.so | ||||
|     - cwd: {{ libgit2_build_dir }} | ||||
|     - creates: {{ libgit2_build_dir }}/libgit2.so | ||||
| 
 | ||||
| install-libgit2: | ||||
|   cmd.run: | ||||
|     - name: make install | ||||
|     - cwd: /usr/src/libgit2-0.22.1/_build | ||||
|     - cwd: {{ libgit2_build_dir }} | ||||
|     - creates: /usr/local/lib/libgit2.so | ||||
| 
 | ||||
| run-ldconfig-after-lib-install: | ||||
| @ -51,9 +58,15 @@ run-ldconfig-after-lib-install: | ||||
|     - onchanges: | ||||
|       - cmd: install-libgit2 | ||||
| 
 | ||||
| {% else %} | ||||
| {{ salt_settings.libgit2 }}: | ||||
|   pkg.installed | ||||
| 
 | ||||
| {% endif %} | ||||
| 
 | ||||
| install-pygit2: | ||||
|   pip.installed: | ||||
|     - name: pygit2 | ||||
|     - name: pygit2 == {{ pygit2_settings.version }} | ||||
| 
 | ||||
| {% else %} | ||||
| {{ salt_settings.pygit2 }}: | ||||
|  | ||||
| @ -9,22 +9,29 @@ Setup variable using grains['os_family'] based logic, only add key:values here | ||||
| that differ from whats in defaults.yaml | ||||
| ##} | ||||
| {% set os_family_map = salt['grains.filter_by']({ | ||||
|     'Debian':  {}, | ||||
|     'Ubuntu':  {}, | ||||
|     'CentOS':  {}, | ||||
|     'Amazon':  {}, | ||||
|     'Fedora':  {}, | ||||
|     'Debian':  { | ||||
|       'libgit2': 'libgit2-22', | ||||
|       'gitfs': { | ||||
|         'pygit2': { | ||||
|           'install_from_source': True, | ||||
|           'version': '0.22.1', | ||||
|           'libgit2': { | ||||
|             'install_from_source': False, | ||||
|           }, | ||||
|         }, | ||||
|       }, | ||||
|     }, | ||||
|     'RedHat':  { | ||||
|       'pygit2': 'python-pygit2', | ||||
|       'gitfs': { | ||||
|         'pygit2': { | ||||
|            'install_from_source': False | ||||
|            'install_from_source': False, | ||||
|         }, | ||||
|       }, | ||||
|       'master': { | ||||
|         'gitfs_provider': 'pygit2' | ||||
|       }, | ||||
|       'repotype': 'epel' | ||||
|       'repotype': 'epel', | ||||
|     }, | ||||
|     'Suse':    {}, | ||||
|     'Gentoo':  { | ||||
| @ -32,7 +39,7 @@ that differ from whats in defaults.yaml | ||||
|       'salt_minion': 'app-admin/salt', | ||||
|       'salt_syndic': 'app-admin/salt', | ||||
|       'salt_api': 'app-admin/salt', | ||||
|       'salt_cloud': 'app-admin/salt' | ||||
|       'salt_cloud': 'app-admin/salt', | ||||
|     }, | ||||
|     'Arch':    { | ||||
|       'salt_master': 'salt-zmq', | ||||
| @ -40,7 +47,7 @@ that differ from whats in defaults.yaml | ||||
|       'salt_syndic':  'salt-zmq', | ||||
|       'salt_cloud':  'salt-zmq', | ||||
|       'salt_api': 'salt-zmq', | ||||
|       'salt_ssh':  'salt-zmq' | ||||
|       'salt_ssh':  'salt-zmq', | ||||
|     }, | ||||
|     'FreeBSD': { | ||||
|       'salt_master': 'py27-salt', | ||||
| @ -55,20 +62,17 @@ that differ from whats in defaults.yaml | ||||
|       'minion_service': 'salt_minion', | ||||
|       'master_service': 'salt_master', | ||||
|       'api_service': 'salt_api', | ||||
|       'syndic_service': 'salt_syndic' | ||||
|       'syndic_service': 'salt_syndic', | ||||
|     }, | ||||
|   } | ||||
|   , grain="os_family" | ||||
|   , merge=salt['pillar.get']('salt:lookup')) | ||||
|   }, grain="os_family", merge=salt['pillar.get']('salt:lookup')) | ||||
| %} | ||||
| 
 | ||||
| {## Merge the flavor_map to the default settings ##} | ||||
| {% do default_settings.salt.update(os_family_map) %} | ||||
|      | ||||
| 
 | ||||
| {## Merge in salt:lookup pillar ##} | ||||
| {% set salt_settings = salt['pillar.get']( | ||||
|     'salt', | ||||
|     default=default_settings.salt, | ||||
|     merge=True | ||||
|   ) | ||||
|     merge=True) | ||||
| %} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Shane Poage
						Shane Poage