X-Original-To: alpine-aports@lists.alpinelinux.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-oln040092065074.outbound.protection.outlook.com [40.92.65.74]) by lists.alpinelinux.org (Postfix) with ESMTP id 16DA2F84D35 for ; Thu, 7 Feb 2019 22:52:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Gecq5UQlMBF1dUsx7PtXPqdHpMDoE69bZqDFZ34+RsU=; b=BiBaqKByaHE6Maw/DolJaRc7h225vX4JDbejoYgvfa5cy2TvMXC5LcGVZi3RM5aN9O/COwFr2PIYS1g6UAwAdHqGXXt9Ei8Uz4UQUy7Qto64nUSthjP090o/qRbHev+MC29K2mVAwVH1qUlPgS8R5dpP7A/ePfVAfhLWrhjCuaKHEQF1aLZW9ibHj6DecJrvhm3fkro5bF4v1bJ3S0SZGBHVRUsTgnvbjWksWwfoF6QKsPFlugdOfrkWby1WmcxKI8ptmmQjK6NP0UYTscrYbzyZ/j18aNr+GBpYe40ehk/QxfNs/fXkGfzirco7/q8pr+OBZ9t134pWLXejZ/Wc9g== Received: from HE1EUR01FT027.eop-EUR01.prod.protection.outlook.com (10.152.0.51) by HE1EUR01HT070.eop-EUR01.prod.protection.outlook.com (10.152.1.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1580.10; Thu, 7 Feb 2019 22:52:45 +0000 Received: from VI1PR0602MB3245.eurprd06.prod.outlook.com (10.152.0.57) by HE1EUR01FT027.mail.protection.outlook.com (10.152.0.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1580.10 via Frontend Transport; Thu, 7 Feb 2019 22:52:45 +0000 Received: from VI1PR0602MB3245.eurprd06.prod.outlook.com ([fe80::158c:76c2:a615:1be4]) by VI1PR0602MB3245.eurprd06.prod.outlook.com ([fe80::158c:76c2:a615:1be4%3]) with mapi id 15.20.1601.016; Thu, 7 Feb 2019 22:52:45 +0000 From: =?iso-8859-1?Q?Fernando_Casas_Sch=F6ssow?= To: "alpine-aports@lists.alpinelinux.org" CC: =?iso-8859-1?Q?Fernando_Casas_Sch=F6ssow?= Subject: [alpine-aports] [PATCH] testing/ocaml-gettext: new aport Thread-Topic: [PATCH] testing/ocaml-gettext: new aport Thread-Index: AQHUvzfWzTR7iEid1ESCx/MTm9govg== Date: Thu, 7 Feb 2019 22:52:44 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: CWLP265CA0012.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:10::24) To VI1PR0602MB3245.eurprd06.prod.outlook.com (2603:10a6:802:7::11) x-incomingtopheadermarker: OriginalChecksum:4D9B6519D1D6E10C963E0FA714014582F501ACFAF249FAA5D2DEA954B566D551;UpperCasedChecksum:A474667E1105B23F7CD47301437D19049E23000DD589DEE67C2A647204B7AC70;SizeAsReceived:8514;Count:63 x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-tmn: [LiRtIUJRLmXUN1/vUyZy4R8kEai15MeO] x-microsoft-original-message-id: <20190207225224.9711-1-casasfernando@outlook.com> x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;HE1EUR01HT070;6:MVruZKKA0skJic9p1/s+MZiangCNZLpzhjk4g7P6qYV13rZ6FmhEyLNjSIyO5zzcfyCPdm5Rtt/vDO/jbaMcPj5eMyT9omIs94K+kKXD0tiPiRC5U48dui8g6EMyRkkQF6ckjPQ1cVElBEVX9LTFumnyuCFZ+51Xyulq/nBmP1k5oHmoth86M8BcQPWw6ePe1/f++VtIC1coLQQzk+wd0+lFY25ojVqyjzGkuNja52lTqdxAecsf+MQ9I3ts2nsDmEzmzi0aLVWkAOQgXadlA17Phno17BMsQ8FEStMyPSuwrh6f1blEdOEdP4mRAgy8GyK2WeJvZl0XSAiOy7AqPorzkLGV8d/b76Y0biG8tUUraMZhRziERo7WdQlhxyydO0/WzE765BIldEnj7zkgJoEpDuaQfYYR1YmkosfoBL8Dy6T8ZMifIFUJ12MWDqCcNocYevI3Ne1p0szGXLYgvA==;5:+XDkmkbLFWO0gr7QbkUJTLKGdK2pejQYwbiPLazwpfKksRljjYK7kBZgWUuNU8REdZlTelwwU/Nrn6bKnVjhEgH2o/PyEQpzaxc/WYL8rGb+H4+U6efvne3a3rifQoa9y+YGB+cLi1TLP1iSiJ3v1WZ4r3JCnlDBbFXsvt1V9J0SogyywQWdwlhk119BAICfye94PKRULTSS1SyHymlRaA==;7:5ca9902QOsC++Rnc8g+Yt2a5+wLoTZSe/IJmHtOy0LuZ/Da5WCpM/QVtrWEsf+JCVYE2LyUzKxWSl0agTDFOwJ6Iq0gX67IBSFTYzqHDLnfCMxANPLYVJCuwtkeUeUkFc95uNiqfeGcIyJZukjBudg== x-incomingheadercount: 63 x-eopattributedmessage: 0 x-ms-exchange-slblob-mailprops: +LiGfBxqLEscK8iDrlWu16HNueBCN9qlxGef8FmG55kly3Z3MYmMH/oSFl86tQ2+WqWpd/HJp81SFpPaG7m7Xl2mGGDXopu6ixEu0pCQJtCjdry9dgTL2mw8HloVNFQc9Gjv8/AZLxZuYn2wJz5tr7nozDwNZBPq/tHn/vdJ8FpPXYPc9fp8UrnVApcP1WkmCDEfICrCTLoE00nPPm3qmXbMcrM0eDcsJJ3otjH9RS2Kb2bIx36z/6lCmPf7VGu4GXpylMWrVmrFfWjCcoXRP6yl+8bO1qdtnPdgO5M0mQfD7y0Xlu3zaOexW0mve5CGW2R5knjYWlgp+mkZqPLXOEJpaNAINwHvTpxdsThFCKx0MqYx5ojT3qXyYz6a29siww9s1DUEhSAVEqc/1Bk3F2C3QaUBCTho+N172hB7zuFLx0fAaNStl/8d8JoYH8jD0zg7ruPyrTdqj5Qq8eQBQteIjMWVQgtomaIkO4bMFrk67oHY3/OkuUx9ft7ozXEV7fic0Ig04WS1bSSQA+2R9PCyubVSno7n48Df9yRvZAKLkD9UKHMlJnrceB2gaixG4eLmvlcKdj3C3f3DL04A21d6gkF/UsXTsg2NIaX2xuhv+NhMEnCm8XPkA2LOCWyH1qtsNWkfU+7z544IF2cGdWrhOA/kXgr+/QXnsFLzldYGy2m7jWSNOKGdmyH/1j+W8bjqtiZPnX8PWlpq/lNO6YYZwNxkWWdgopuJEzlpAZg0I4nMpcZsywuEVLly4iZwsf5Kq4k9c76nuvvVKP0g9SwE8IyEEkUO x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(201702181274)(2017031322404)(2017031323274)(2017031324274)(1601125500)(1603101475)(1701031045);SRVR:HE1EUR01HT070; x-ms-traffictypediagnostic: HE1EUR01HT070: x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(4566010)(82015058);SRVR:HE1EUR01HT070;BCL:0;PCL:0;RULEID:;SRVR:HE1EUR01HT070; x-microsoft-antispam-message-info: O3sfm9xTijvgxfRh7mHvDcb3ZMeVbTzr+orLbq8Tarhltin33xZYC/1sPgNz8brM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: c001924d-3e68-4f40-89c2-901a49278da7 X-MS-Exchange-CrossTenant-Network-Message-Id: 8d5381d6-bcca-44af-b980-08d68d4ef907 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: c001924d-3e68-4f40-89c2-901a49278da7 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Feb 2019 22:52:44.1780 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR01HT070 https://github.com/gildor478/ocaml-gettext OCaml library for i18n --- ...tracking-and-printing-untranslated-s.patch | 109 ++++++++++++++++++ ...text-stop-printing-extracted-strings.patch | 26 +++++ ...d-more-generated-files-to-.gitignore.patch | 44 +++++++ testing/ocaml-gettext/APKBUILD | 52 +++++++++ .../ocaml-gettext-0.3.4-use-ocamlopt-g.patch | 33 ++++++ 5 files changed, 264 insertions(+) create mode 100644 testing/ocaml-gettext/0001-pr_gettext-stop-tracking-and= -printing-untranslated-s.patch create mode 100644 testing/ocaml-gettext/0002-pr_gettext-stop-printing-ext= racted-strings.patch create mode 100644 testing/ocaml-gettext/0003-add-more-generated-files-to-= .gitignore.patch create mode 100644 testing/ocaml-gettext/APKBUILD create mode 100644 testing/ocaml-gettext/ocaml-gettext-0.3.4-use-ocamlopt-= g.patch diff --git a/testing/ocaml-gettext/0001-pr_gettext-stop-tracking-and-printi= ng-untranslated-s.patch b/testing/ocaml-gettext/0001-pr_gettext-stop-tracki= ng-and-printing-untranslated-s.patch new file mode 100644 index 0000000000..511eb3b4a8 --- /dev/null +++ b/testing/ocaml-gettext/0001-pr_gettext-stop-tracking-and-printing-untr= anslated-s.patch @@ -0,0 +1,109 @@ +From 35d2d7381c7101bb73d0b7f00fea06442c7b2ab8 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Tue, 29 Aug 2017 18:29:34 +0200 +Subject: [PATCH 1/3] pr_gettext: stop tracking (and printing) untranslated + strings + +Do not collect anymore the information of untranslated strings, since it +is only used to print all of them at the end of the message extraction. + +While I understand the reason why this was done (i.e. to discover +potentially untranslated user strings), this is something that just +causes lots of output in complex projects, since strings are basically +used for many non-UI tasks (say Str, Sys.command, etc), so the actual +result is that there are lots of false positive. Also, this is not +something xgettext (from GNU gettext) does. +--- + libgettext-ocaml/pr_gettext.ml | 44 -------------------------------------= ----- + 1 file changed, 44 deletions(-) + +diff --git a/libgettext-ocaml/pr_gettext.ml b/libgettext-ocaml/pr_gettext.= ml +index c44933f..d78cf21 100644 +--- a/libgettext-ocaml/pr_gettext.ml ++++ b/libgettext-ocaml/pr_gettext.ml +@@ -71,17 +71,10 @@ struct + module Loc =3D Syntax.Loc + module Ast =3D Syntax.Ast +=20 +- type untranslated_t =3D=20 +- { +- str: string; (* Real string, not OCaml one *) +- locations: (string * int) list; (* Location in the file *) +- } +- + type t =3D=20 + { + po_content: po_content; + translated: SetString.t; +- untranslated: untranslated_t MapString.t; + } +=20 + let string_of_ocaml_string str =3D +@@ -91,29 +84,6 @@ struct + "%S" + (fun s -> s) +=20 +- let string_not_translated t ocaml_str =3D=20 +- not (SetString.mem ocaml_str t.translated) +- +- let add_untranslated t loc ocaml_str =3D=20 +- let cur =3D=20 +- try=20 +- MapString.find ocaml_str t.untranslated=20 +- with Not_found -> +- { +- str =3D string_of_ocaml_string ocaml_str; +- locations =3D []; +- } +- in +- let untranslated =3D +- MapString.add=20 +- ocaml_str=20 +- {cur with=20 +- locations =3D=20 +- (Loc.file_name loc, Loc.start_line loc) :: cur.locations} +- t.untranslated +- in +- {t with untranslated =3D untranslated} +- +=20 + let add_translation t loc ocaml_singular plural_opt domain =3D + let filepos =3D=20 +@@ -164,15 +134,6 @@ struct + | Some f -> open_out f + | None -> stdout + in +- MapString.iter +- (fun _ {str =3D str; locations =3D locs} -> +- List.iter +- (fun (fn, lineno) -> +- Printf.eprintf=20 +- "%s:%d String %S not translated\n%!" +- fn lineno str) +- locs) +- t.untranslated; + Marshal.to_channel fd t.po_content [] +=20 + (* Check if the given node belong to the given functions *) +@@ -197,7 +158,6 @@ struct + val t =3D=20 + { + po_content =3D empty_po; +- untranslated =3D MapString.empty; + translated =3D SetString.empty; + } +=20 +@@ -234,10 +194,6 @@ struct + (* Add a plural / defined domain string *) + {< t =3D add_translation t loc singular (Some plural) (Some domain)= >} +=20 +- | <:expr@loc<$str:str$>> when +- string_not_translated t str -> +- {< t =3D add_untranslated t loc str >} +- + | e -> super#expr e +=20 + end +--=20 +2.13.2 + diff --git a/testing/ocaml-gettext/0002-pr_gettext-stop-printing-extracted-= strings.patch b/testing/ocaml-gettext/0002-pr_gettext-stop-printing-extract= ed-strings.patch new file mode 100644 index 0000000000..6d656d9bc6 --- /dev/null +++ b/testing/ocaml-gettext/0002-pr_gettext-stop-printing-extracted-strings= .patch @@ -0,0 +1,26 @@ +From 3f4fc73c2a0315c2da16dee7db0fcb2766f55d3c Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Tue, 29 Aug 2017 18:36:10 +0200 +Subject: [PATCH 2/3] pr_gettext: stop printing extracted strings + +They are written in the pot file already, no need to print them to +stderr (even though they are not errors). +--- + libgettext-ocaml/pr_gettext.ml | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libgettext-ocaml/pr_gettext.ml b/libgettext-ocaml/pr_gettext.= ml +index d78cf21..47d93e5 100644 +--- a/libgettext-ocaml/pr_gettext.ml ++++ b/libgettext-ocaml/pr_gettext.ml +@@ -78,7 +78,6 @@ struct + } +=20 + let string_of_ocaml_string str =3D +- prerr_endline str; + Scanf.sscanf=20 + (Printf.sprintf "\"%s\"" str) + "%S" +--=20 +2.13.2 + diff --git a/testing/ocaml-gettext/0003-add-more-generated-files-to-.gitign= ore.patch b/testing/ocaml-gettext/0003-add-more-generated-files-to-.gitigno= re.patch new file mode 100644 index 0000000000..00b410c5f2 --- /dev/null +++ b/testing/ocaml-gettext/0003-add-more-generated-files-to-.gitignore.pat= ch @@ -0,0 +1,44 @@ +From 202bf1e00eaa533e133c29b509d77cdfb7c13f5e Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Tue, 29 Aug 2017 18:55:37 +0200 +Subject: [PATCH 3/3] add more generated files to .gitignore + +Make sure all the files generated during a build are properly ignored +from the git status. +--- + .gitignore | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/.gitignore b/.gitignore +index d853d40..87821c3 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -1,3 +1,12 @@ ++*.a ++*.cma ++*.cmi ++*.cmo ++*.cmx ++*.cmxa ++*.o ++*.so ++*_parser.output + /_build/ + /setup.data + /setup.log +@@ -7,6 +16,12 @@ + /configure + /libgettext-ocaml/META + /libgettext-ocaml/gettextConfig.ml ++/libgettext-ocaml/gettextPo_parser.mli + /config.log + /config.status ++/po/*.mo + /po/fr.po.bak ++/doc/*.1 ++/doc/*.5 ++/ocaml-gettext/ocaml-gettext ++/ocaml-gettext/ocaml-xgettext +--=20 +2.13.2 + diff --git a/testing/ocaml-gettext/APKBUILD b/testing/ocaml-gettext/APKBUIL= D new file mode 100644 index 0000000000..f64d3816ca --- /dev/null +++ b/testing/ocaml-gettext/APKBUILD @@ -0,0 +1,52 @@ +# Contributor: Fernando Casas Schossow +# Maintainer: Fernando Casas Schossow +pkgname=3Docaml-gettext +pkgver=3D0.3.7 +pkgrel=3D0 +pkgdesc=3D"OCaml library for i18n" +url=3D"https://github.com/gildor478/ocaml-gettext" +arch=3D"all" +license=3D"LGPL-2.1-or-later-WITH-linking-exception" +makedepends=3D"ocaml ocaml-ocamldoc ocaml-camlp4-dev ocaml-fileutils ocaml= -fileutils-dev ocaml-findlib-dev chrpath autoconf automake libxml2 libxslt = docbook-xsl gettext-dev" +subpackages=3D"$pkgname-dev $pkgname-doc" +source=3D"${pkgname}-${pkgver}.tar.gz::https://github.com/gildor478/$pkgna= me/archive/$pkgver.tar.gz + 0001-pr_gettext-stop-tracking-and-printing-untranslated-s.patch + 0002-pr_gettext-stop-printing-extracted-strings.patch + 0003-add-more-generated-files-to-.gitignore.patch + ocaml-gettext-0.3.4-use-ocamlopt-g.patch" +builddir=3D"$srcdir/$pkgname-$pkgver" +options=3D"!check" # there is no test suite/unit tests since tests require= s camomile + +build() { + cd "$builddir" + autoreconf -i + unset MAKEFLAGS + export OCAMLPARAM=3D"safe-string=3D0,_" + sed -i 's/@OCAMLDOC@/@OCAMLDOC@ -unsafe-string/g' ConfMakefile.in + ./configure --prefix=3D/usr --disable-camomile --with-docbook-stylesheet= =3D/usr/share/xml/docbook/xsl-stylesheets-1.79.1 --with-stub-ldflags=3D-lin= tl + make all +} + +check() { + cd "$builddir" +} + +package() { + cd "$builddir" + export DESTDIR=3D"$pkgdir" + export OCAMLFIND_DESTDIR=3D"$DESTDIR/usr/lib/ocaml" + mkdir -p "$OCAMLFIND_DESTDIR" "$OCAMLFIND_DESTDIR/stublibs" + find _build -name '*.o' -exec rm {} \; + ocamlfind install gettext _build/lib/gettext/* + ocamlfind install gettext-stub _build/lib/gettext-stub/* + install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" + install -D -m 0755 _build/bin/ocaml-gettext "$pkgdir/usr/bin/ocaml-gettex= t" + install -D -m 0755 _build/bin/ocaml-xgettext "$pkgdir/usr/bin/ocaml-xgett= ext" + chrpath --delete $OCAMLFIND_DESTDIR/stublibs/dll*.so +} + +sha512sums=3D"1358320359b9d2f3fd97a47d69b2a619942a65605c1e5cbf25e33ef42a10= 273167b526bca15e6c9523b87d8ea9dfd3215334050ad8eb84a8c41d4feef880a27a ocaml= -gettext-0.3.7.tar.gz +430e67b9e228d36eae6d1a1378c40d3203799d04c05962d25be4703483418400d71c392c2d= 84baa434f5e7aab19e7925e08971392b969ff472e3baf81546ca6d 0001-pr_gettext-sto= p-tracking-and-printing-untranslated-s.patch +69f9e5a000cd29b5f6e7ee1b3ce0691ba4a7fdff456c76ce271daa76a74cf422aa8769f94c= ac46dbceb92dcdcdaecfbc65e255f61748bd52e7ccf7e88cc04bac 0002-pr_gettext-sto= p-printing-extracted-strings.patch +6cab63660875ec9f6314631ae0730870b714b5a1bc456d97a04c928f287feb82aae623b836= 1b6b56075901f2d9cd5716e27305cda4334ac0e61a40ce02bab599 0003-add-more-gener= ated-files-to-.gitignore.patch +b169f864194459db388ee8aa9db4cf97441419cb6b93c1b72854cca3fbbdcab8745a802326= f967b8786853ec136aca41847799100216d6f9272e6a56dc80d169 ocaml-gettext-0.3.4= -use-ocamlopt-g.patch" diff --git a/testing/ocaml-gettext/ocaml-gettext-0.3.4-use-ocamlopt-g.patch= b/testing/ocaml-gettext/ocaml-gettext-0.3.4-use-ocamlopt-g.patch new file mode 100644 index 0000000000..f8f05b5c0c --- /dev/null +++ b/testing/ocaml-gettext/ocaml-gettext-0.3.4-use-ocamlopt-g.patch @@ -0,0 +1,33 @@ +--- ocaml-gettext-0.3.4/TopMakefile.old 2013-09-14 08:54:04.713986462 +010= 0 ++++ ocaml-gettext-0.3.4/TopMakefile 2013-09-14 08:54:18.319006115 +0100 +@@ -102,7 +102,7 @@ + %.cmxa %.a %.so: + $(if $(STUBSOBJS), \ + $(OCAMLMKLIB) -o $* $^ $(OCAMLMKLIB_FLAGS), \ +- $(OCAMLOPT) -a -o $*.cmxa $^ \ ++ $(OCAMLOPT) -g -a -o $*.cmxa $^ \ + ) +=20 + %.cma %.a %.so: +@@ -161,7 +161,7 @@ + OLIBS =3D $(addsuffix .cmxa,$(LIBS)) +=20 + install-buildprog-opt: $(CMX) +- $(OCAMLOPT) -o $(NAME) $(INCLUDES) -package "$(REQUIRES)" -linkpkg \ ++ $(OCAMLOPT) -g -o $(NAME) $(INCLUDES) -package "$(REQUIRES)" -linkpkg \ + -predicates "$(PREDICATES)" $(OLIBS) $(CMX) + $(INSTALL) -d $(BUILDBIN)=20 + $(INSTALL_SCRIPT) -t $(BUILDBIN) $(NAME)=20 +@@ -300,10 +300,10 @@ + $(OCAMLC) $(INCLUDES) $(CLI_OCAMLFIND) -c $< +=20 + .ml.o: +- $(OCAMLOPT) $(INCLUDES) $(CLI_OCAMLFIND) -c $< ++ $(OCAMLOPT) -g $(INCLUDES) $(CLI_OCAMLFIND) -c $< + =09 + .ml.cmx: +- $(OCAMLOPT) $(INCLUDES) $(CLI_OCAMLFIND) -c $< ++ $(OCAMLOPT) -g $(INCLUDES) $(CLI_OCAMLFIND) -c $< + =09 + .mll.ml: + $(OCAMLLEX) $< --=20 2.20.1 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---