From 12c449466d22d95f02aeaf513af2983c3914c5e3 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 17 May 2016 17:54:58 -0400 Subject: 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(+) create mode 100644 media-libs/libxmlbird/Manifest create mode 100644 media-libs/libxmlbird/files/libxmlbird-1.2.0-configure-valac.patch create mode 100644 media-libs/libxmlbird/files/libxmlbird-1.2.0-libdir.patch create mode 100644 media-libs/libxmlbird/files/libxmlbird-1.2.0-verbose.patch create mode 100644 media-libs/libxmlbird/libxmlbird-1.2.0.ebuild create mode 100644 media-libs/libxmlbird/metadata.xml (limited to 'media-libs/libxmlbird') diff --git a/media-libs/libxmlbird/Manifest b/media-libs/libxmlbird/Manifest new file mode 100644 index 000000000000..bf037fcf61b3 --- /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 000000000000..121d6fd68de8 --- /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 +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 000000000000..ca47ba35d5d6 --- /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 +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 000000000000..b44a28de2303 --- /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 000000000000..0934a67798a4 --- /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 000000000000..6cbe76d4b07f --- /dev/null +++ b/media-libs/libxmlbird/metadata.xml @@ -0,0 +1,11 @@ + + + + + fonts@gentoo.org + + + https://birdfont.org/bugtracker/ + johanmattssonm/xmlbird + + -- cgit v1.2.3-65-gdbad