aboutsummaryrefslogtreecommitdiffstats
path: root/community
diff options
context:
space:
mode:
authorAndré Klitzing <aklitzing@gmail.com>2018-05-18 13:39:55 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2018-07-16 13:21:13 +0000
commit4d5853ef53a5fc0a674145edd5b1b23360279adf (patch)
treea1c9f39dbc25e0bf4f3b5af14d6084c7fda28f15 /community
parentdca0d6e33e0aa22eda936daea8eb43b3e4ece412 (diff)
downloadaports-4d5853ef53a5fc0a674145edd5b1b23360279adf.tar.bz2
aports-4d5853ef53a5fc0a674145edd5b1b23360279adf.tar.xz
community/msitools: moved from testing
Diffstat (limited to 'community')
-rw-r--r--community/msitools/APKBUILD48
-rw-r--r--community/msitools/fix-segfault.patch44
2 files changed, 92 insertions, 0 deletions
diff --git a/community/msitools/APKBUILD b/community/msitools/APKBUILD
new file mode 100644
index 0000000000..75dd330356
--- /dev/null
+++ b/community/msitools/APKBUILD
@@ -0,0 +1,48 @@
+# Maintainer: André Klitzing <aklitzing@gmail.com>
+pkgname=msitools
+pkgver=0.97
+pkgrel=1
+pkgdesc="Set of programs to inspect and build Windows Installer (.MSI) files"
+url="https://wiki.gnome.org/msitools"
+arch="all"
+license="GPL"
+makedepends="libgsf-dev libgcab-dev vala intltool libtool"
+subpackages="$pkgname-dev $pkgname-lang
+ $pkgname-bash-completion:bashcomp:noarch"
+source="https://download.gnome.org/sources/msitools/${pkgver}/${pkgname}-${pkgver}.tar.xz
+ fix-segfault.patch"
+builddir="$srcdir/"$pkgname-$pkgver
+
+build() {
+ cd "$builddir"
+ ./configure --prefix=/usr --disable-static
+ sed -i 's|LIBTOOL = $(SHELL) $(top_builddir)/libtool|LIBTOOL = /usr/bin/libtool|g' Makefile
+ make
+}
+
+check() {
+ cd "$builddir"
+ make check
+}
+
+package() {
+ cd "$builddir"
+ make install DESTDIR="${pkgdir}"
+}
+
+bashcomp() {
+ depends=""
+ pkgdesc="Bash completions for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
+
+ _submv usr/share/bash-completion/completions
+}
+
+_submv() {
+ local path="$1"
+ mkdir -p "$subpkgdir"/${path%/*}
+ mv "$pkgdir"/$path "$subpkgdir"/${path%/*}/
+}
+
+sha512sums="bc4cefa7dacc69d10d8a29a0779966c70be97cbeb3a7651cc4292759f56ed2766345596df85a195f54fb4007221f4433ad9f32ed9b39e5b765a565a88ed399dc msitools-0.97.tar.xz
+71311d61517997ac7017611326e81e2ec1d5ebdd87179096973299c04f89d2207a046e2437d6e310ee17325d7f527790519e98672f9256ba0574fc8f3a4e87ce fix-segfault.patch"
diff --git a/community/msitools/fix-segfault.patch b/community/msitools/fix-segfault.patch
new file mode 100644
index 0000000000..e2109ef2dd
--- /dev/null
+++ b/community/msitools/fix-segfault.patch
@@ -0,0 +1,44 @@
+diff --git a/tools/msiinfo.c b/tools/msiinfo.c
+index ac299fd..e695f14 100644
+--- a/tools/msiinfo.c
++++ b/tools/msiinfo.c
+@@ -420,7 +420,7 @@ static gboolean export_create_table(const char *table,
+ guint num_columns = libmsi_record_get_field_count(names);
+ guint num_keys = libmsi_record_get_field_count(keys);
+ guint i, len;
+- char size[20], extra[30];
++ char size[20], extra[30], typestr[20];
+ gchar *name, *type;
+
+ if (!strcmp(table, "_Tables") ||
+@@ -455,25 +455,25 @@ static gboolean export_create_table(const char *table,
+ /* fall through */
+ case 's': case 'S':
+ strcpy(size, type+1);
+- sprintf(type, "CHAR(%s)", size);
++ sprintf(typestr, "CHAR(%s)", size);
+ break;
+ case 'i': case 'I':
+ len = atol(type + 1);
+ if (len <= 2)
+- strcpy(type, "INT");
++ strcpy(typestr, "INT");
+ else if (len == 4)
+- strcpy(type, "LONG");
++ strcpy(typestr, "LONG");
+ else
+ abort();
+ break;
+ case 'v': case 'V':
+- strcpy(type, "OBJECT");
++ strcpy(typestr, "OBJECT");
+ break;
+ default:
+ abort();
+ }
+
+- printf("`%s` %s%s", name, type, extra);
++ printf("`%s` %s%s", name, typestr, extra);
+ g_free(name);
+ g_free(type);
+ }