diff options
Diffstat (limited to 'app-crypt/gcr')
-rw-r--r-- | app-crypt/gcr/Manifest | 8 | ||||
-rw-r--r-- | app-crypt/gcr/files/3.36.0-avoid-gnupg-circular-dep.patch | 52 | ||||
-rw-r--r-- | app-crypt/gcr/files/3.36.0-fix-gck-slot-test.patch | 37 | ||||
-rw-r--r-- | app-crypt/gcr/files/3.36.0-meson-enum-race.patch | 31 | ||||
-rw-r--r-- | app-crypt/gcr/files/3.36.0-meson-fix-gtk-doc-without-ui.patch | 24 | ||||
-rw-r--r-- | app-crypt/gcr/files/3.36.0-meson-vapi-deps.patch | 48 | ||||
-rw-r--r-- | app-crypt/gcr/files/3.36.0-optional-vapi.patch | 88 | ||||
-rw-r--r-- | app-crypt/gcr/gcr-3.36.0.ebuild | 85 |
8 files changed, 373 insertions, 0 deletions
diff --git a/app-crypt/gcr/Manifest b/app-crypt/gcr/Manifest index d248946582c3..592900561c7e 100644 --- a/app-crypt/gcr/Manifest +++ b/app-crypt/gcr/Manifest @@ -1,4 +1,12 @@ AUX 3.34.0-fix-desktop-files.patch 2102 BLAKE2B a733e4c0c62d8d80229663efe81d5d563404c3dc428838ed5a1515fada5a1e4da92eee38f37918d80ffd3121603e4ce1e4dab82ebe433d838bf0949794a88fa2 SHA512 9967470ccaeea405ad55fc16f699ac5048bf803eb9043258c2f532ff36fbf252d683b45b6f0fd1a19d9f48f5f0ace60fff50881dd8ab1e13c5c1a9170d5eff6a +AUX 3.36.0-avoid-gnupg-circular-dep.patch 1994 BLAKE2B 371e3124e2fb53c5a8a2b66920d65741a3e9238783a64c9d055a8efc5132958b41ab8576885dc08e92aab3454d2f65ff3e8f8b28779b65b8b92c1547ee02d52e SHA512 6702a7318f3be324f3938b1f838a4d4cc1908502162bcedc96b965934aaf87f6540b91b8a5f9b6bdddadf6d1043ac7788669cb06142af78a81e6774148f8b528 +AUX 3.36.0-fix-gck-slot-test.patch 1337 BLAKE2B 7a6a6f62df7967c15cd413da75262c072165aef1923553e2d214743a837b7b166178c400a1f753d945f7c0904de840a748d4c2057ed9ddb9b2530d66ba544d52 SHA512 f76a7bd687281ac299310fddef4fc0a1b1d3955a097a56dd52d57ed42e9a25c1b865959d5ea4c8bed0d472f30fb8dd4660d60e50f4d3352c119e13562ba0a361 +AUX 3.36.0-meson-enum-race.patch 870 BLAKE2B 66913d68fd8d5c6af776b90077070d126e91313571519e187dc9a551e63b5ba9869549f567c8b68e9bdf34cda4e6a11904676315cd8bc80eaf409afdc9aee00c SHA512 026371b5710a5544f107563963361abaa2fedfde617eed09c1651c745dbd8f1adcac78578644ef0e8b95331b8836758990d4bb84ee90493789a16f701f40a93e +AUX 3.36.0-meson-fix-gtk-doc-without-ui.patch 654 BLAKE2B b929e5112ec488bc70dd50c63d8e35bbfdb311833d2f896d8a79520e0e4334c6ea84f543f14ce7d03b0a1c86840274f2485cd4a1924eaf6ba67a82e5173b0083 SHA512 afea6074440a4763d54b5662adb2e934595d5e289a6d2e0f6d6e8440283abcf6b5ddf8ce0a6246fbfc75ffb3a66efd7d53b727b9b2c849cc72eea4f31405bdd3 +AUX 3.36.0-meson-vapi-deps.patch 1658 BLAKE2B 98796051a8b2983dfa82ed6d56c033e70676988462cf3d8fdce255e729ffc6f7def12207e64079895b99af941655804fd1f06d861c950e0cccac3cfcffa585aa SHA512 6bda1adef741699271f55ac33644f5762f8a5ba6c9f15a12870c78a9cafd2e61f350e4732335b51e0f4969a7fc2aaea7f93fda32fe5fbfe2be7ec62f3deddb5f +AUX 3.36.0-optional-vapi.patch 2278 BLAKE2B 3492fc70397ee07b04dc156070b153bacc50c9f4a641fba430a27b5b84d788b5f9e2528697bb36f0145607184f233d37676411558b5fc252e7284f46785b2f89 SHA512 f9dd41ee5b7e876f347c2d9130816d5203b64615400b331fd4b5abf95eba6c8bdb3ae59a0b2dacb34ceb7ae778ef7b32c08964f8a1bef1734fbb6522830ff480 DIST gcr-3.34.0.tar.xz 1454244 BLAKE2B fc84e5eaa3b2822d1c04fff3b8b343de2655cce34317327a3594b506172c703a9d4b1d5562ed213bc1ae7df5d31ac1c5ab3c5733cfe8e5edf85e334ce7ff85f4 SHA512 9314b531ed46a42b2c8c1531c7d95003db04f2c8065e46f4e6a84ec26400ce6302ea71c4db42a8c7b98884a0b84d75a0ca65d988aa0fe6de6d897d772b070093 +DIST gcr-3.36.0.tar.xz 1025760 BLAKE2B 03f0d0ed40b600ed80e894111fedff3efcbbaaf6f261d6a44a3649a1acb50c4f35f3dc9a7ddb60f56cab241f68fef83aa5a02a94036e70a6556b35300f2c8fb5 SHA512 0431e7971b73accc62869c9497fcff7c111c453aa6a8ff25b42f19ceae1be0aec52e0e4eb504676f967c6e4f179198c15c521278690822e3457dbc5fe512fd5e EBUILD gcr-3.34.0-r1.ebuild 1892 BLAKE2B 99121cf56e5e2c42105e70e0211c5e0df823bad896b28e786ef79f771f4a5a56f23648cc520044e8f8340ef9ce583efdefde7736c1be09ab4ed3920e59fd7b7e SHA512 31f67170d9129e9133607b6b0f3d16c5bb6e1eda2cbfe9571a40b0b02b97a93d03155ec04ff3bbb825c6efb3fa087a4d0286bbaa259ea0063c16049f486d93fa +EBUILD gcr-3.36.0.ebuild 1969 BLAKE2B ea19f9d139914b8453daffff5fc8e6366e796818a4e7b4e8982ffee15da6ee10e03d311844d6908cdb81db780a9033792237d5950c71f4562d4c8ed701926371 SHA512 fa341bf052a72e7f86966a9204080af1dc776279ebe8306d84fa41abde842721349f32697eb4562783864d358f50b9dd30fe7095cce71f14e810cb6a4fae52b1 MISC metadata.xml 249 BLAKE2B e71e1b95fee768c696704acbf7e3cf0e599ed2bc8de92bae0141d1194ef9e842bdc292798904487a9b90ddfda9b0e84abd3b76b1518576c1d288240e4e46f110 SHA512 c40662134899a5c9f0369a1017806f35adf3280a0b3c91726f7a8ca6012a073a8b471583f5bfb6fe95faac1dcf607e8e2e43f8c91d48ec46f4a8824e2f551506 diff --git a/app-crypt/gcr/files/3.36.0-avoid-gnupg-circular-dep.patch b/app-crypt/gcr/files/3.36.0-avoid-gnupg-circular-dep.patch new file mode 100644 index 000000000000..313b65628e46 --- /dev/null +++ b/app-crypt/gcr/files/3.36.0-avoid-gnupg-circular-dep.patch @@ -0,0 +1,52 @@ +From d3fd10fa3d3fe3e2e60a9ca5cfb401faa5e9c5bd Mon Sep 17 00:00:00 2001 +From: Rasmus Thomsen <oss@cogitri.dev> +Date: Wed, 11 Mar 2020 11:49:08 +0100 +Subject: [PATCH 4/6] meson: allow building without gpg(2) installed + +This avoids circular dependencies, such as gcr -> gpg2 -> pinentry -> gcr +--- + meson.build | 7 +++++-- + meson_options.txt | 5 +++++ + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index f19af0f..57b625b 100644 +--- a/meson.build ++++ b/meson.build +@@ -41,7 +41,10 @@ gobject_dep = dependency('gobject-2.0', version: '>=' + min_glib_version) + gio_dep = dependency('gio-2.0', version: '>=' + min_glib_version) + gio_unix_dep = dependency('gio-unix-2.0',version: '>=' + min_glib_version) + glib_deps = [ glib_dep, gmodule_dep, gthread_dep, gobject_dep, gio_dep, gio_unix_dep, ] +-gpg_bin = find_program('gpg2', 'gpg') ++gpg_path = get_option('gpg_path') ++if gpg_path == '' ++ gpg_path = find_program('gpg2', 'gpg').path() ++endif + libgcrypt_dep = dependency('libgcrypt', version: '>= 1') + p11kit_dep = dependency('p11-kit-1', version: '>= 0.19.0') + p11_system_config_modules = p11kit_dep.get_pkgconfig_variable('p11_system_config_modules') +@@ -65,7 +68,7 @@ conf.set('HAVE_GETTEXT', true) + conf.set('HAVE_LOCALE_H', cc.has_header('locale.h')) + conf.set('HAVE_TIMEGM', cc.has_function('timegm')) + conf.set('HAVE_MLOCK', cc.has_function('mlock')) +-conf.set_quoted('GPG_EXECUTABLE', gpg_bin.path()) ++conf.set_quoted('GPG_EXECUTABLE', gpg_path) + conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version()) + config_file = configure_file( + output: 'config.h', +diff --git a/meson_options.txt b/meson_options.txt +index bbdc8e3..ae0f524 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -13,3 +13,8 @@ option('gtk_doc', + value: true, + description: 'Build the reference documentation (requires gtk-doc)', + ) ++option('gpg_path', ++ type: 'string', ++ value: '', ++ description: 'Path to gpg, autodetected if not set', ++) +-- +2.20.1 + diff --git a/app-crypt/gcr/files/3.36.0-fix-gck-slot-test.patch b/app-crypt/gcr/files/3.36.0-fix-gck-slot-test.patch new file mode 100644 index 000000000000..44a7919ea8d4 --- /dev/null +++ b/app-crypt/gcr/files/3.36.0-fix-gck-slot-test.patch @@ -0,0 +1,37 @@ +From 4835310d233899f8b541e1c75c79f5c3a9ebf928 Mon Sep 17 00:00:00 2001 +From: Simon McVittie <smcv@debian.org> +Date: Sun, 15 Mar 2020 13:00:08 +0000 +Subject: [PATCH 1/6] gck-slot: Initialize struct tm to all-zeroes + +If the format string for strptime() doesn't include a time zone, +then the tm_isdst member will be left uninitialized (see NOTES in +Linux strptime(3)). This means we will be off by an hour from the +intended time if whatever arbitrary junk is on the stack happens to +include a positive value for tm.tm_isdst. + +Resolves: https://gitlab.gnome.org/GNOME/gcr/issues/42 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=953981 +Signed-off-by: Simon McVittie <smcv@debian.org> +(cherry picked from commit b1c8213b64fdfcad8c4ae0ff33a31105c0a0a312) +--- + gck/gck-slot.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/gck/gck-slot.c b/gck/gck-slot.c +index f3b2f97..f00857f 100644 +--- a/gck/gck-slot.c ++++ b/gck/gck-slot.c +@@ -607,7 +607,9 @@ _gck_token_info_from_pkcs11 (CK_TOKEN_INFO_PTR info) + { + GckTokenInfo *token_info; + gchar *string; +- struct tm tm; ++ /* Must be zero-filled, because strptime will leave tm_isdst ++ * unchanged */ ++ struct tm tm = { 0 }; + + token_info = g_new0 (GckTokenInfo, 1); + token_info->label = gck_string_from_chars (info->label, sizeof (info->label)); +-- +2.20.1 + diff --git a/app-crypt/gcr/files/3.36.0-meson-enum-race.patch b/app-crypt/gcr/files/3.36.0-meson-enum-race.patch new file mode 100644 index 000000000000..ef9d7a1bc3ad --- /dev/null +++ b/app-crypt/gcr/files/3.36.0-meson-enum-race.patch @@ -0,0 +1,31 @@ +From b04d117d5f8275a4c605743825faf2d5a28ae028 Mon Sep 17 00:00:00 2001 +From: Niels De Graef <nielsdegraef@gmail.com> +Date: Fri, 19 Jun 2020 22:37:31 +0200 +Subject: [PATCH 3/6] meson: Make sure gcr-oids.h is built + +Fixes https://gitlab.gnome.org/GNOME/gcr/-/issues/48 + +(cherry picked from commit 9fca6ae0aa7355c27d0922c561b9fbe18dde5b3d) +--- + gcr/meson.build | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gcr/meson.build b/gcr/meson.build +index 199452f..06c3a63 100644 +--- a/gcr/meson.build ++++ b/gcr/meson.build +@@ -178,7 +178,10 @@ endif + gcr_base_dep = declare_dependency( + link_with: gcr_base_lib, + include_directories: include_directories('..'), +- sources: gcr_enums_gen[1], # Make sure gcr-enum-types-base.h can be included ++ sources: [ ++ gcr_enums_gen[1], ++ gcr_oids[1], ++ ], + ) + + if get_option('introspection') +-- +2.20.1 + diff --git a/app-crypt/gcr/files/3.36.0-meson-fix-gtk-doc-without-ui.patch b/app-crypt/gcr/files/3.36.0-meson-fix-gtk-doc-without-ui.patch new file mode 100644 index 000000000000..72950d381ea2 --- /dev/null +++ b/app-crypt/gcr/files/3.36.0-meson-fix-gtk-doc-without-ui.patch @@ -0,0 +1,24 @@ +From 9343a5b0afb8265e02798c48ab52758d6cdfddf9 Mon Sep 17 00:00:00 2001 +From: Mart Raudsepp <leio@gentoo.org> +Date: Tue, 18 Aug 2020 09:53:38 +0300 +Subject: [PATCH 6/6] build: Don't build gcr gtk-doc without ui enabled + +gcr gtk-doc includes both gcr and gcr ui documentation, so we can't build +it without ui enabled +--- + docs/meson.build | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/docs/meson.build b/docs/meson.build +index f353516..8984ef2 100644 +--- a/docs/meson.build ++++ b/docs/meson.build +@@ -1,2 +1,4 @@ + subdir('reference/gck') +-subdir('reference/gcr') ++if get_option('gtk') ++ subdir('reference/gcr') ++endif +-- +2.20.1 + diff --git a/app-crypt/gcr/files/3.36.0-meson-vapi-deps.patch b/app-crypt/gcr/files/3.36.0-meson-vapi-deps.patch new file mode 100644 index 000000000000..60d1058ee654 --- /dev/null +++ b/app-crypt/gcr/files/3.36.0-meson-vapi-deps.patch @@ -0,0 +1,48 @@ +From fc2bc7e230b745dbbd4f4b2cd82e1e5e0c7bf109 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 11 May 2020 22:19:16 +0000 +Subject: [PATCH 2/6] meson.build: correctly set internal vapi dependencies + +If they are set as strings, meson will supply the right +arguments to vapigen, but will not set the ninja dependencies +to ensure they get built first, and so races will occur: +https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/1881/steps/8/logs/step1b + +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +(cherry picked from commit 91712a2e131692fa727a0da2868bc23e8df1bf17) +--- + gcr/meson.build | 2 +- + ui/meson.build | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/gcr/meson.build b/gcr/meson.build +index 254a933..199452f 100644 +--- a/gcr/meson.build ++++ b/gcr/meson.build +@@ -203,7 +203,7 @@ if get_option('introspection') + + gcr_vapi = gnome.generate_vapi('gcr-@0@'.format(gcr_major_version), + sources: gcr_gir[0], +- packages: [ 'glib-2.0', 'gio-2.0', 'gck-@0@'.format(gck_major_version) ], ++ packages: [ 'glib-2.0', 'gio-2.0', gck_vapi ], + metadata_dirs: meson.current_source_dir(), + vapi_dirs: [ + build_root / 'gck', +diff --git a/ui/meson.build b/ui/meson.build +index 5ca3753..477412d 100644 +--- a/ui/meson.build ++++ b/ui/meson.build +@@ -174,8 +174,8 @@ if get_option('introspection') + packages: [ + 'glib-2.0', + 'gio-2.0', +- 'gck-@0@'.format(gck_major_version), +- 'gcr-@0@'.format(gcr_major_version), ++ gck_vapi, ++ gcr_vapi, + 'gtk+-3.0' + ], + metadata_dirs: meson.current_source_dir(), +-- +2.20.1 + diff --git a/app-crypt/gcr/files/3.36.0-optional-vapi.patch b/app-crypt/gcr/files/3.36.0-optional-vapi.patch new file mode 100644 index 000000000000..50969fdae409 --- /dev/null +++ b/app-crypt/gcr/files/3.36.0-optional-vapi.patch @@ -0,0 +1,88 @@ +From 525f5c7dbfdff6c1b24510a22eeffa804836e1bf Mon Sep 17 00:00:00 2001 +From: Mart Raudsepp <leio@gentoo.org> +Date: Tue, 18 Aug 2020 09:36:19 +0300 +Subject: [PATCH 5/6] build: Make vapi optional + +--- + gck/meson.build | 2 ++ + gcr/meson.build | 2 ++ + meson_options.txt | 5 +++++ + ui/meson.build | 2 ++ + 4 files changed, 11 insertions(+) + +diff --git a/gck/meson.build b/gck/meson.build +index 756b486..a15f4ed 100644 +--- a/gck/meson.build ++++ b/gck/meson.build +@@ -142,6 +142,7 @@ if get_option('introspection') + install: true, + ) + ++if get_option('vapi') + gck_vapi = gnome.generate_vapi('gck-@0@'.format(gck_major_version), + sources: gck_gir[0], + metadata_dirs: meson.current_source_dir(), +@@ -153,6 +154,7 @@ if get_option('introspection') + install_dir: get_option('datadir') / 'vala' / 'vapi', + ) + endif ++endif + + # pkg-config file + pkgconfig.generate(gck_lib, +diff --git a/gcr/meson.build b/gcr/meson.build +index 06c3a63..cc642cf 100644 +--- a/gcr/meson.build ++++ b/gcr/meson.build +@@ -204,6 +204,7 @@ if get_option('introspection') + install: true, + ) + ++if get_option('vapi') + gcr_vapi = gnome.generate_vapi('gcr-@0@'.format(gcr_major_version), + sources: gcr_gir[0], + packages: [ 'glib-2.0', 'gio-2.0', gck_vapi ], +@@ -217,6 +218,7 @@ if get_option('introspection') + install: true, + ) + endif ++endif + + # pkg-config file + pkgconfig.generate(gcr_base_lib, +diff --git a/meson_options.txt b/meson_options.txt +index ae0f524..f68cb95 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -18,3 +18,8 @@ option('gpg_path', + value: '', + description: 'Path to gpg, autodetected if not set', + ) ++option('vapi', ++ type: 'boolean', ++ value: true, ++ description: 'Generate vapi data (requires vapigen and introspection option)', ++) +diff --git a/ui/meson.build b/ui/meson.build +index 477412d..0b89b24 100644 +--- a/ui/meson.build ++++ b/ui/meson.build +@@ -169,6 +169,7 @@ if get_option('introspection') + install: true, + ) + ++if get_option('vapi') + gcr_ui_vapi = gnome.generate_vapi('gcr-ui-@0@'.format(gcr_major_version), + sources: gcr_ui_gir[0], + packages: [ +@@ -190,6 +191,7 @@ if get_option('introspection') + install: true, + ) + endif ++endif + + # gcr-viewer + gcr_viewer = executable('gcr-viewer', +-- +2.20.1 + diff --git a/app-crypt/gcr/gcr-3.36.0.ebuild b/app-crypt/gcr/gcr-3.36.0.ebuild new file mode 100644 index 000000000000..c966f4aed3dc --- /dev/null +++ b/app-crypt/gcr/gcr-3.36.0.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +VALA_USE_DEPEND="vapigen" +PYTHON_COMPAT=( python3_{6,7,8} ) + +inherit gnome.org gnome2-utils meson python-any-r1 vala xdg + +DESCRIPTION="Libraries for cryptographic UIs and accessing PKCS#11 modules" +HOMEPAGE="https://gitlab.gnome.org/GNOME/gcr" + +LICENSE="GPL-2+ LGPL-2+" +SLOT="0/1" # subslot = suffix of libgcr-base-3 and co + +IUSE="gtk gtk-doc +introspection +vala" +REQUIRED_USE="vala? ( introspection )" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris" + +DEPEND=" + >=dev-libs/glib-2.44.0:2 + >=dev-libs/libgcrypt-1.2.2:0= + >=app-crypt/p11-kit-0.19.0 + gtk? ( >=x11-libs/gtk+-3.12:3[X,introspection?] ) + >=sys-apps/dbus-1 + introspection? ( >=dev-libs/gobject-introspection-1.58:= ) +" +RDEPEND="${DEPEND} + app-crypt/gnupg +" +BDEPEND=" + ${PYTHON_DEPS} + gtk? ( dev-libs/libxml2:2 ) + dev-util/gdbus-codegen + dev-util/glib-utils + gtk-doc? ( >=dev-util/gtk-doc-1.9 + app-text/docbook-xml-dtd:4.1.2 ) + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig + vala? ( $(vala_depend) ) +" + +PATCHES=( + "${FILESDIR}"/${PV}-fix-gck-slot-test.patch + "${FILESDIR}"/${PV}-meson-vapi-deps.patch + "${FILESDIR}"/${PV}-meson-enum-race.patch + "${FILESDIR}"/${PV}-avoid-gnupg-circular-dep.patch + "${FILESDIR}"/${PV}-optional-vapi.patch + "${FILESDIR}"/${PV}-meson-fix-gtk-doc-without-ui.patch +) + +pkg_setup() { + python-any-r1_pkg_setup +} + +src_prepare() { + use vala && vala_src_prepare + xdg_src_prepare +} + +src_configure() { + local emesonargs=( + $(meson_use introspection) + $(meson_use gtk) + $(meson_use gtk-doc gtk_doc) + -Dgpg_path="${EPREFIX}"/usr/bin/gpg + $(meson_use vala vapi) + ) + meson_src_configure +} + +src_test() { + dbus-run-session meson test -C "${BUILD_DIR}" || die 'tests failed' +} + +pkg_postinst() { + xdg_pkg_postinst + gnome2_schemas_update +} + +pkg_postrm() { + xdg_pkg_postrm + gnome2_schemas_update +} |