commit:     12c449466d22d95f02aeaf513af2983c3914c5e3
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue May 17 21:54:58 2016 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue May 17 21:56:06 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=12c44946

media-libs/libxmlbird: new package

 media-libs/libxmlbird/Manifest                     |   1 +
 .../files/libxmlbird-1.2.0-configure-valac.patch   |  62 ++++++++
 .../libxmlbird/files/libxmlbird-1.2.0-libdir.patch | 159 +++++++++++++++++++++
 .../files/libxmlbird-1.2.0-verbose.patch           |  10 ++
 media-libs/libxmlbird/libxmlbird-1.2.0.ebuild      |  59 ++++++++
 media-libs/libxmlbird/metadata.xml                 |  11 ++
 6 files changed, 302 insertions(+)

diff --git a/media-libs/libxmlbird/Manifest b/media-libs/libxmlbird/Manifest
new file mode 100644
index 0000000..bf037fc
--- /dev/null
+++ b/media-libs/libxmlbird/Manifest
@@ -0,0 +1 @@
+DIST libxmlbird-1.2.0.tar.xz 20004 SHA256 
baca1d813c4a53c67a8052f8488766af7f73c38b1187fa0f7cd939899071dc24 SHA512 
0677004a79194dde87f27387ae1faeb19aa2ecd985664ad4f3f7576d39f71e0d05215c92bb15f3e3f1a4053e27025fd1a4151f1ba12774cfa789d47648097e5b
 WHIRLPOOL 
51ac2fe20fa434267dd2af968707c8370ff3b02c137554fc88e0a0147e61d2824c3381a46e016802fb6af3c16cdf950c231c3c6a01b7bda477f4c76091da3201

diff --git a/media-libs/libxmlbird/files/libxmlbird-1.2.0-configure-valac.patch 
b/media-libs/libxmlbird/files/libxmlbird-1.2.0-configure-valac.patch
new file mode 100644
index 0000000..121d6fd
--- /dev/null
+++ b/media-libs/libxmlbird/files/libxmlbird-1.2.0-configure-valac.patch
@@ -0,0 +1,62 @@
+https://github.com/johanmattssonm/xmlbird/pull/5
+
+From 67864656d7446b067a388c6fd2f059322d7047f0 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vap...@gentoo.org>
+Date: Tue, 17 May 2016 17:00:05 -0400
+Subject: [PATCH] configure/test: respect --valac option
+
+Make sure we don't still test `valac` when the compiler has been set to
+a specific version/path.
+---
+ configure        | 6 +++---
+ scripts/tests.py | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure b/configure
+index f80559f..4bbd9d5 100755
+--- a/configure
++++ b/configure
+@@ -44,8 +44,8 @@ def test_library_version (lib):
+       process.communicate()[0]
+       return process.returncode == 0
+ 
+-def configure ():     
+-      if not test_program_version ("valac", 0, 16, 0):
++def configure(valac):
++      if not test_program_version(valac, 0, 16, 0):
+               print (FAIL + "valac is too old." + ENDC)
+               exit (1)
+ 
+@@ -105,7 +105,7 @@ if not options.nonnull:
+ else:
+       options.nonnull = True
+       
+-configure()
++configure(options.valac)
+ 
+ configfile.write_compile_parameters(options.prefix,
+                                                                       
options.dest,
+diff --git a/scripts/tests.py b/scripts/tests.py
+index 7281e05..88483f1 100644
+--- a/scripts/tests.py
++++ b/scripts/tests.py
+@@ -1,6 +1,6 @@
+ #!/usr/bin/python3
+ import subprocess
+-from scripts.config import PREFIX
++from scripts.config import (PREFIX, VALAC)
+ from scripts.run import run
+ from scripts.version import LIBXMLBIRD_SO_VERSION
+ 
+@@ -32,7 +32,7 @@ def build_tests():
+     run ("mkdir -p build/tests");
+ 
+     for test in tests:
+-        run ("valac --ccode --pkg=posix --pkg=xmlbird --vapidir=./build "
++        run (VALAC + " --ccode --pkg=posix --pkg=xmlbird --vapidir=./build "
+              + "--directory=./build tests/" + test + ".vala tests/Test.vala");
+ 
+         run ("""gcc -fPIC -c \
+-- 
+2.8.2
+

diff --git a/media-libs/libxmlbird/files/libxmlbird-1.2.0-libdir.patch 
b/media-libs/libxmlbird/files/libxmlbird-1.2.0-libdir.patch
new file mode 100644
index 0000000..ca47ba3
--- /dev/null
+++ b/media-libs/libxmlbird/files/libxmlbird-1.2.0-libdir.patch
@@ -0,0 +1,159 @@
+From 661c84d232e8d22978dd0220f7860b149c19f2e4 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vap...@gentoo.org>
+Date: Tue, 17 May 2016 17:37:53 -0400
+Subject: [PATCH] configure: respect libdir at build time
+
+The xmlbird.pc file encodes the libdir in it, so make sure we have it
+at configure & build time.  That means moving the flag from install to
+configure and the config module.
+
+Also clean up the code a bit so `--libdir lib64` doesn't break things.
+It previously assumed that the argument always had a leading slash.
+---
+ configure             | 19 ++++++++++++++++++-
+ install.py            | 39 +++++++++++----------------------------
+ scripts/configfile.py |  3 ++-
+ scripts/pkgconfig.py  |  2 +-
+ 4 files changed, 32 insertions(+), 31 deletions(-)
+
+diff --git a/configure b/configure
+index 4bbd9d5..ed64f66 100755
+--- a/configure
++++ b/configure
+@@ -51,6 +51,7 @@ def configure(valac):
+ 
+ parser = OptionParser()
+ parser.add_option('-p', '--prefix', dest='prefix', help='Install prefix', 
metavar='PREFIX')
++parser.add_option('-l', '--libdir', dest='libdir', help='path to directory 
for shared libraries (lib or lib64).', metavar='LIBDIR')
+ parser.add_option('-d', '--dest', dest='dest', help='Install to this 
directory', metavar='DEST')
+ parser.add_option('-c', '--cc', dest='cc', help='C compiler', metavar='CC')
+ parser.add_option('-v', '--valac', dest='valac', help='Vala compiler', 
metavar='VALAC')
+@@ -93,7 +94,22 @@ if not options.prefix:
+               options.prefix = '${DESTDIR}${PREFIX}'
+       else:
+               options.prefix = '/usr'
+-              
++
++if not options.libdir:
++      if platform.dist()[0] == 'Ubuntu' or platform.dist()[0] == 'Debian':
++              process = subprocess.Popen(['dpkg-architecture', 
'-qDEB_HOST_MULTIARCH'], stdout=subprocess.PIPE)
++              out, err = process.communicate()
++              options.libdir = 'lib/' + out.decode('UTF-8').rstrip('\n')
++      else:
++              p = platform.machine()
++              if p == 'i386' or p == 's390' or p == 'ppc' or p == 'armv7hl':
++                      options.libdir = 'lib'
++              elif p == 'x86_64' or p == 's390x' or p == 'ppc64':
++                      options.libdir = 'lib64'
++              else:
++                      options.libdir = 'lib'
++options.libdir = '/' + options.libdir.lstrip('/')
++
+ if not options.dest:
+       options.dest = ''
+ if not options.cc:
+@@ -108,6 +124,7 @@ else:
+ configure(options.valac)
+ 
+ configfile.write_compile_parameters(options.prefix,
++                                                                      
options.libdir,
+                                                                       
options.dest,
+                                                                       
options.cc,
+                                                                       
options.valac,
+diff --git a/install.py b/install.py
+index d3d3007..d8b995b 100755
+--- a/install.py
++++ b/install.py
+@@ -62,7 +62,6 @@ def link (dir, file, linkname):
+       run ('cd ' + dest + prefix + dir + ' && ln -sf ' + file + ' ' + 
linkname)
+ 
+ parser = OptionParser()
+-parser.add_option ("-l", "--libdir", dest="libdir", help="path to directory 
for shared libraries (lib or lib64).")
+ parser.add_option ("-d", "--dest", dest="dest", help="install to this 
directory", metavar="DEST")
+ 
+ (options, args) = parser.parse_args()
+@@ -73,40 +72,24 @@ if not options.dest:
+ prefix = config.PREFIX
+ dest = options.dest
+ 
+-if not options.libdir:        
+-      if platform.dist()[0] == 'Ubuntu' or platform.dist()[0] == 'Debian':
+-              process = subprocess.Popen(['dpkg-architecture', 
'-qDEB_HOST_MULTIARCH'], stdout=subprocess.PIPE)
+-              out, err = process.communicate()
+-              libdir = '/lib/' + out.decode('UTF-8').rstrip ('\n')
+-      else:
+-              p = platform.machine()
+-              if p == 'i386' or p == 's390' or p == 'ppc' or p == 'armv7hl':
+-                      libdir = '/lib'
+-              elif p == 'x86_64' or p == 's390x' or p == 'ppc64':
+-                      libdir = '/lib64'
+-              else:
+-                      libdir = '/lib'
+-else:
+-      libdir = options.libdir
+-
+ if "openbsd" in sys.platform:
+-      install ('build/bin/libxmlbird.so.' + '${LIBxmlbird_VERSION}', '/lib', 
644)
++      install ('build/bin/libxmlbird.so.' + '${LIBxmlbird_VERSION}', 
config.LIBDIR, 644)
+ elif os.path.isfile ('build/bin/libxmlbird.so.' + 
version.LIBXMLBIRD_SO_VERSION):
+-      install ('build/bin/libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, 
libdir, 644)
+-      link (libdir, 'libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, ' 
libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION_MAJOR)
+-      link (libdir, 'libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, ' 
libxmlbird.so')
++      install ('build/bin/libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, 
config.LIBDIR, 644)
++      link (config.LIBDIR, 'libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, 
' libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION_MAJOR)
++      link (config.LIBDIR, 'libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, 
' libxmlbird.so')
+ elif os.path.isfile ('build/libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION):
+-      install ('build/libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, 
libdir, 644)
+-      link (libdir, 'libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, ' 
libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION_MAJOR)
+-      link (libdir, 'libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, ' 
libxmlbird.so')
++      install ('build/libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, 
config.LIBDIR, 644)
++      link (config.LIBDIR, 'libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, 
' libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION_MAJOR)
++      link (config.LIBDIR, 'libxmlbird.so.' + version.LIBXMLBIRD_SO_VERSION, 
' libxmlbird.so')
+ elif os.path.isfile ('build/bin/libxmlbird.' + version.LIBXMLBIRD_SO_VERSION 
+ '.dylib'):
+-      install ('build/bin/libxmlbird-' + version.LIBXMLBIRD_SO_VERSION + 
'.dylib', libdir, 644)
+-      link (libdir, 'libxmlbird-' + version.LIBXMLBIRD_SO_VERSION + '.dylib', 
' libxmlbird.dylib.' + version.LIBXMLBIRD_SO_VERSION_MAJOR)
+-      link (libdir, 'libxmlbird-' + version.LIBXMLBIRD_SO_VERSION + '.dylib', 
' libxmlbird.dylib')
++      install ('build/bin/libxmlbird-' + version.LIBXMLBIRD_SO_VERSION + 
'.dylib', config.LIBDIR, 644)
++      link (config.LIBDIR, 'libxmlbird-' + version.LIBXMLBIRD_SO_VERSION + 
'.dylib', ' libxmlbird.dylib.' + version.LIBXMLBIRD_SO_VERSION_MAJOR)
++      link (config.LIBDIR, 'libxmlbird-' + version.LIBXMLBIRD_SO_VERSION + 
'.dylib', ' libxmlbird.dylib')
+ else:
+       print ("Can't find libxmlbird.")
+       exit (1)
+ 
+ install ('build/xmlbird/xmlbird.h', '/include', 644)
+ install ('build/xmlbird.vapi', '/share/vala/vapi', 644)
+-install ('build/xmlbird.pc', libdir + '/pkgconfig', 644)
++install ('build/xmlbird.pc', config.LIBDIR + '/pkgconfig', 644)
+diff --git a/scripts/configfile.py b/scripts/configfile.py
+index 71c1e20..4a88585 100755
+--- a/scripts/configfile.py
++++ b/scripts/configfile.py
+@@ -1,10 +1,11 @@
+ #!/usr/bin/python3
+ 
+-def write_compile_parameters (prefix, dest, cc, valac, non_null,
++def write_compile_parameters (prefix, libdir, dest, cc, valac, non_null,
+                               valacflags, cflags, ldflags):
+     f = open('./scripts/config.py', 'w+')
+     f.write("#!/usr/bin/python3\n")
+     f.write("PREFIX =  \"" + prefix + "\"\n")
++    f.write("LIBDIR =  \"" + libdir + "\"\n")
+     f.write("DEST = \"" + dest + "\"\n")
+     f.write("CC = \"" + cc + "\"\n")
+     f.write("VALAC = \"" + valac + "\"\n")
+diff --git a/scripts/pkgconfig.py b/scripts/pkgconfig.py
+index c080234..c79c413 100644
+--- a/scripts/pkgconfig.py
++++ b/scripts/pkgconfig.py
+@@ -6,7 +6,7 @@ def generate_pkg_config_file():
+         f.write("prefix=" + config.PREFIX + "\n")
+         f.write("""exec_prefix=${prefix}
+ includedir=${prefix}/include
+-libdir=${exec_prefix}/lib
++libdir=${exec_prefix}""" + config.LIBDIR + """
+ 
+ Name: xmlbird
+ Description: XML parser
+-- 
+2.8.2
+

diff --git a/media-libs/libxmlbird/files/libxmlbird-1.2.0-verbose.patch 
b/media-libs/libxmlbird/files/libxmlbird-1.2.0-verbose.patch
new file mode 100644
index 0000000..b44a28d
--- /dev/null
+++ b/media-libs/libxmlbird/files/libxmlbird-1.2.0-verbose.patch
@@ -0,0 +1,10 @@
+--- a/scripts/run.py
++++ b/scripts/run.py
+@@ -20,6 +20,7 @@ import subprocess
+ 
+ def run(cmd):
+       cmd = "sh -c \"" + cmd.replace ("\"", "\\\"") + "\""
++      print(cmd)
+       process = subprocess.Popen (cmd, shell=True)
+       process.communicate()[0]
+       if not process.returncode == 0:

diff --git a/media-libs/libxmlbird/libxmlbird-1.2.0.ebuild 
b/media-libs/libxmlbird/libxmlbird-1.2.0.ebuild
new file mode 100644
index 0000000..0934a67
--- /dev/null
+++ b/media-libs/libxmlbird/libxmlbird-1.2.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5} )
+
+inherit python-any-r1 vala toolchain-funcs multilib eutils
+
+DESCRIPTION="XML parser written in Vala"
+HOMEPAGE="https://birdfont.org/xmlbird.php";
+SRC_URI="https://birdfont.org/xmlbird-releases/${P}.tar.xz";
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+# The test build logic needs work.  Doesn't respect compiler settings.
+RESTRICT="test"
+
+src_prepare() {
+       vala_src_prepare
+
+       epatch "${FILESDIR}"/${PN}-1.2.0-verbose.patch
+       epatch "${FILESDIR}"/${PN}-1.2.0-configure-valac.patch
+       epatch "${FILESDIR}"/${PN}-1.2.0-libdir.patch
+
+       sed -i \
+               -e "s:pkg-config:$(tc-getPKG_CONFIG):" \
+               configure dodo.py || die
+       sed -i \
+               -e '/tests.build_tests/d' \
+               build.py || die
+}
+
+v() {
+       echo "$@"
+       "$@" || die
+}
+
+src_configure() {
+       v ./configure \
+               --prefix "${EPREFIX}/usr" \
+               --libdir "$(get_libdir)" \
+               --valac "${VALAC}" \
+               --cc "$(tc-getCC)" \
+               --cflags "${CFLAGS} ${CPPFLAGS}" \
+               --ldflags "${LDFLAGS}"
+}
+
+src_compile() {
+       v ./build.py
+}
+
+src_install() {
+       v ./install.py --dest "${D}"
+       dodoc NEWS README.md
+}

diff --git a/media-libs/libxmlbird/metadata.xml 
b/media-libs/libxmlbird/metadata.xml
new file mode 100644
index 0000000..6cbe76d
--- /dev/null
+++ b/media-libs/libxmlbird/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer type="project">
+       <email>fo...@gentoo.org</email>
+</maintainer>
+<upstream>
+       <bugs-to>https://birdfont.org/bugtracker/</bugs-to>
+       <remote-id type="github">johanmattssonm/xmlbird</remote-id>
+</upstream>
+</pkgmetadata>

Reply via email to