[arch-commits] Commit in ansible/trunk (2 files)

Bartłomiej Piotrowski bpiotrowski at archlinux.org
Fri Jan 2 19:00:37 UTC 2015


    Date: Friday, January 2, 2015 @ 20:00:37
  Author: bpiotrowski
Revision: 125182

upgpkg: ansible 1.8.2-2

backport the patch fixing archlinux detection

Added:
  ansible/trunk/0001-Fix-os_family-and-distribution-on-archlinux.patch
Modified:
  ansible/trunk/PKGBUILD

--------------------------------------------------------+
 0001-Fix-os_family-and-distribution-on-archlinux.patch |  175 +++++++++++++++
 PKGBUILD                                               |   13 -
 2 files changed, 185 insertions(+), 3 deletions(-)

Added: 0001-Fix-os_family-and-distribution-on-archlinux.patch
===================================================================
--- 0001-Fix-os_family-and-distribution-on-archlinux.patch	                        (rev 0)
+++ 0001-Fix-os_family-and-distribution-on-archlinux.patch	2015-01-02 19:00:37 UTC (rev 125182)
@@ -0,0 +1,175 @@
+From 5efc4efca7288f072028d1a13e5d0d731f0b7a8f Mon Sep 17 00:00:00 2001
+From: Christian Hammerl <info at christian-hammerl.de>
+Date: Sat, 18 Oct 2014 15:02:04 +0200
+Subject: [PATCH] Fix os_family and distribution on archlinux
+
+Fixes #8732, ansible/ansible-modules-core#34
+---
+ lib/ansible/module_utils/facts.py | 145 +++++++++++++++++++-------------------
+ 1 file changed, 73 insertions(+), 72 deletions(-)
+
+diff --git a/lib/ansible/module_utils/facts.py b/lib/ansible/module_utils/facts.py
+index 8ec1b4f..6bbcace 100644
+--- a/lib/ansible/module_utils/facts.py
++++ b/lib/ansible/module_utils/facts.py
+@@ -273,84 +273,85 @@ class Facts(object):
+             self.facts['distribution_release'] = dist[2] or 'NA'
+             # Try to handle the exceptions now ...
+             for (path, name) in Facts.OSDIST_LIST:
+-                if os.path.exists(path) and os.path.getsize(path) > 0:
+-                    if self.facts['distribution'] in ('Fedora', ):
+-                        # Once we determine the value is one of these distros
+-                        # we trust the values are always correct
+-                        break
+-                    elif name == 'RedHat':
+-                        data = get_file_content(path)
+-                        if 'Red Hat' in data:
+-                            self.facts['distribution'] = name
+-                        else:
+-                            self.facts['distribution'] = data.split()[0]
+-                        break
+-                    elif name == 'OtherLinux':
+-                        data = get_file_content(path)
+-                        if 'Amazon' in data:
+-                            self.facts['distribution'] = 'Amazon'
+-                            self.facts['distribution_version'] = data.split()[-1]
+-                            break
+-                    elif name == 'OpenWrt':
+-                        data = get_file_content(path)
+-                        if 'OpenWrt' in data:
+-                            self.facts['distribution'] = name
+-                            version = re.search('DISTRIB_RELEASE="(.*)"', data)
+-                            if version:
+-                                self.facts['distribution_version'] = version.groups()[0]
+-                            release = re.search('DISTRIB_CODENAME="(.*)"', data)
+-                            if release:
+-                                self.facts['distribution_release'] = release.groups()[0]
++                if os.path.exists(path):
++                    if os.path.getsize(path) > 0:
++                        if self.facts['distribution'] in ('Fedora', ):
++                            # Once we determine the value is one of these distros
++                            # we trust the values are always correct
+                             break
+-                    elif name == 'Alpine':
+-                        data = get_file_content(path)
+-                        self.facts['distribution'] = name
+-                        self.facts['distribution_version'] = data
+-                        break
+-                    elif name == 'Solaris':
+-                        data = get_file_content(path).split('\n')[0]
+-                        if 'Solaris' in data:
+-                            ora_prefix = ''
+-                            if 'Oracle Solaris' in data:
+-                                data = data.replace('Oracle ','')
+-                                ora_prefix = 'Oracle '
+-                            self.facts['distribution'] = data.split()[0]
+-                            self.facts['distribution_version'] = data.split()[1]
+-                            self.facts['distribution_release'] = ora_prefix + data
++                        elif name == 'RedHat':
++                            data = get_file_content(path)
++                            if 'Red Hat' in data:
++                                self.facts['distribution'] = name
++                            else:
++                                self.facts['distribution'] = data.split()[0]
+                             break
+-                    elif name == 'SuSE':
+-                        data = get_file_content(path)
+-                        if 'suse' in data.lower():
+-                            if path == '/etc/os-release':
+-                                release = re.search("PRETTY_NAME=[^(]+ \(?([^)]+?)\)", data)
++                        elif name == 'OtherLinux':
++                            data = get_file_content(path)
++                            if 'Amazon' in data:
++                                self.facts['distribution'] = 'Amazon'
++                                self.facts['distribution_version'] = data.split()[-1]
++                                break
++                        elif name == 'OpenWrt':
++                            data = get_file_content(path)
++                            if 'OpenWrt' in data:
++                                self.facts['distribution'] = name
++                                version = re.search('DISTRIB_RELEASE="(.*)"', data)
++                                if version:
++                                    self.facts['distribution_version'] = version.groups()[0]
++                                release = re.search('DISTRIB_CODENAME="(.*)"', data)
+                                 if release:
+                                     self.facts['distribution_release'] = release.groups()[0]
+-                                    break
+-                            elif path == '/etc/SuSE-release':
+-                                data = data.splitlines()
+-                                for line in data:
+-                                    release = re.search('CODENAME *= *([^\n]+)', line)
+-                                    if release:
+-                                        self.facts['distribution_release'] = release.groups()[0].strip()
+-                                        break
+-                    elif name == 'Debian':
+-                        data = get_file_content(path)
+-                        if 'Debian' in data:
+-                            release = re.search("PRETTY_NAME=[^(]+ \(?([^)]+?)\)", data)
+-                            if release:
+-                                self.facts['distribution_release'] = release.groups()[0]
+-                            break
+-                    elif name == 'Mandriva':
+-                        data = get_file_content(path)
+-                        if 'Mandriva' in data:
+-                            version = re.search('DISTRIB_RELEASE="(.*)"', data)
+-                            if version:
+-                                self.facts['distribution_version'] = version.groups()[0]
+-                            release = re.search('DISTRIB_CODENAME="(.*)"', data)
+-                            if release:
+-                                self.facts['distribution_release'] = release.groups()[0]
++                                break
++                        elif name == 'Alpine':
++                            data = get_file_content(path)
+                             self.facts['distribution'] = name
++                            self.facts['distribution_version'] = data
+                             break
++                        elif name == 'Solaris':
++                            data = get_file_content(path).split('\n')[0]
++                            if 'Solaris' in data:
++                                ora_prefix = ''
++                                if 'Oracle Solaris' in data:
++                                    data = data.replace('Oracle ','')
++                                    ora_prefix = 'Oracle '
++                                self.facts['distribution'] = data.split()[0]
++                                self.facts['distribution_version'] = data.split()[1]
++                                self.facts['distribution_release'] = ora_prefix + data
++                                break
++                        elif name == 'SuSE':
++                            data = get_file_content(path)
++                            if 'suse' in data.lower():
++                                if path == '/etc/os-release':
++                                    release = re.search("PRETTY_NAME=[^(]+ \(?([^)]+?)\)", data)
++                                    if release:
++                                        self.facts['distribution_release'] = release.groups()[0]
++                                        break
++                                elif path == '/etc/SuSE-release':
++                                    data = data.splitlines()
++                                    for line in data:
++                                        release = re.search('CODENAME *= *([^\n]+)', line)
++                                        if release:
++                                            self.facts['distribution_release'] = release.groups()[0].strip()
++                                            break
++                        elif name == 'Debian':
++                            data = get_file_content(path)
++                            if 'Debian' in data:
++                                release = re.search("PRETTY_NAME=[^(]+ \(?([^)]+?)\)", data)
++                                if release:
++                                    self.facts['distribution_release'] = release.groups()[0]
++                                break
++                        elif name == 'Mandriva':
++                            data = get_file_content(path)
++                            if 'Mandriva' in data:
++                                version = re.search('DISTRIB_RELEASE="(.*)"', data)
++                                if version:
++                                    self.facts['distribution_version'] = version.groups()[0]
++                                release = re.search('DISTRIB_CODENAME="(.*)"', data)
++                                if release:
++                                    self.facts['distribution_release'] = release.groups()[0]
++                                self.facts['distribution'] = name
++                                break
+                     else:
+                         self.facts['distribution'] = name
+ 
+-- 
+2.2.1
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2015-01-02 17:00:32 UTC (rev 125181)
+++ PKGBUILD	2015-01-02 19:00:37 UTC (rev 125182)
@@ -7,7 +7,7 @@
 
 pkgname=ansible
 pkgver=1.8.2
-pkgrel=1
+pkgrel=2
 pkgdesc='Radically simple IT automation platform'
 arch=('any')
 url='http://www.ansible.com'
@@ -18,9 +18,16 @@
             'python2-crypto: needed for accelerated mode'
             'python2-keyczar: needed for accelerated mode')
 backup=('etc/ansible/ansible.cfg')
-source=(http://releases.ansible.com/ansible/$pkgname-$pkgver.tar.gz)
-sha256sums=('2cd01ff4d67acb410bae0a9438956f6fc36d01babd956b0dc3b700620f2372b9')
+source=(http://releases.ansible.com/ansible/$pkgname-$pkgver.tar.gz
+        0001-Fix-os_family-and-distribution-on-archlinux.patch)
+md5sums=('c2ac0e5a4c092dfa84c7e9e51cd45095'
+         '2d00eecedea58697186087b7c446f112')
 
+prepare() {
+  cd $pkgname-$pkgver
+  patch -p1 -i ../0001-Fix-os_family-and-distribution-on-archlinux.patch
+}
+
 build() {
   cd $pkgname-$pkgver
   python2 setup.py build



More information about the arch-commits mailing list