diff options
Diffstat (limited to 'package/libsecret')
10 files changed, 458 insertions, 0 deletions
diff --git a/package/libsecret/Makefile b/package/libsecret/Makefile new file mode 100644 index 000000000..6659cbc67 --- /dev/null +++ b/package/libsecret/Makefile @@ -0,0 +1,31 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= libsecret +PKG_VERSION:= 0.16 +PKG_RELEASE:= 1 +PKG_MD5SUM:= ab0edcd5887a6fe78c948e36b6341858 +PKG_DESCR:= library for storing and retrieving passwords +PKG_SECTION:= libs +PKG_DEPENDS:= libgcrypt +PKG_BUILDDEP:= autotool libgcrypt +PKG_URL:= https://wiki.gnome.org/Libsecret +PKG_SITES:= https://git.gnome.org/browse/libsecret/snapshot/ +PKG_OPTS:= dev + +include $(TOPDIR)/mk/package.mk + +$(eval $(call PKG_template,LIBSECRET,libsecret,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) + +AUTOTOOL_STYLE:= autoreconf +CONFIGURE_ARGS+= --enable-vala=no \ + --enable-gcrypt + +libsecret-install: + $(INSTALL_DIR) $(IDIR_LIBSECRET)/usr/lib + $(CP) $(WRKINST)/usr/lib/libsecret*.so* \ + $(IDIR_LIBSECRET)/usr/lib + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/libsecret/patches/patch-Makefile_am b/package/libsecret/patches/patch-Makefile_am new file mode 100644 index 000000000..50af269ea --- /dev/null +++ b/package/libsecret/patches/patch-Makefile_am @@ -0,0 +1,26 @@ +--- libsecret-0.16.orig/Makefile.am 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/Makefile.am 2013-11-22 14:38:52.000000000 +0100 +@@ -3,7 +3,7 @@ include $(top_srcdir)/Makefile.decl + + ACLOCAL_AMFLAGS = -I build/m4 ${ACLOCAL_FLAGS} + +-SUBDIRS = build egg libsecret tool po docs . ++SUBDIRS = build egg libsecret tool . + + DISTCHECK_CONFIGURE_FLAGS = \ + --enable-debug=yes \ +@@ -42,14 +42,9 @@ upload-release: $(DIST_ARCHIVES) + upload-docs: + rsync -Hvax docs/reference/libsecret/html/./ master.gnome.org:public_html/libsecret-docs/ + +-if HAVE_VALAC +-dist-check-valac: +- +-else + dist-check-valac: + @echo "*** valac must be installed and enabled in order to make dist" + @false +-endif + + dist-hook: dist-check-valac + diff --git a/package/libsecret/patches/patch-Makefile_am.orig b/package/libsecret/patches/patch-Makefile_am.orig new file mode 100644 index 000000000..8273c753c --- /dev/null +++ b/package/libsecret/patches/patch-Makefile_am.orig @@ -0,0 +1,11 @@ +--- libsecret-0.16.orig/Makefile.am 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/Makefile.am 2013-11-21 12:03:12.000000000 +0100 +@@ -3,7 +3,7 @@ include $(top_srcdir)/Makefile.decl + + ACLOCAL_AMFLAGS = -I build/m4 ${ACLOCAL_FLAGS} + +-SUBDIRS = build egg libsecret tool po docs . ++SUBDIRS = build egg libsecret tool . + + DISTCHECK_CONFIGURE_FLAGS = \ + --enable-debug=yes \ diff --git a/package/libsecret/patches/patch-configure_ac b/package/libsecret/patches/patch-configure_ac new file mode 100644 index 000000000..e9de60534 --- /dev/null +++ b/package/libsecret/patches/patch-configure_ac @@ -0,0 +1,44 @@ +--- libsecret-0.16.orig/configure.ac 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/configure.ac 2013-11-22 18:00:42.000000000 +0100 +@@ -43,7 +43,6 @@ AC_PROG_INSTALL + AC_PROG_LN_S + AC_PROG_MAKE_SET + AM_PROG_LIBTOOL +-IT_PROG_INTLTOOL([0.35.0]) + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + + GETTEXT_PACKAGE=libsecret +@@ -66,9 +65,6 @@ PKG_CHECK_MODULES(GLIB, + LIBS="$LIBS $GLIB_LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + +-GTK_DOC_CHECK(1.9) +- +-GOBJECT_INTROSPECTION_CHECK([1.29]) + AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) + + # -------------------------------------------------------------------- +@@ -88,14 +84,6 @@ AM_CONDITIONAL(WITH_MANPAGES, test x$ena + # -------------------------------------------------------------------- + # Vala + +-VALA_REQUIRED=0.17.2.12 +- +-VAPIGEN_CHECK($VALA_REQUIRED) +- +-if test "$enable_vala" != "no"; then +- AC_PATH_PROG([VALAC], [valac], []) +-fi +-AM_CONDITIONAL(HAVE_VALAC, test "x$VALAC" != "x") + + # -------------------------------------------------------------------- + # libgcrypt +@@ -267,8 +255,6 @@ AC_CONFIG_FILES([ + docs/reference/libsecret/version-major.xml + egg/Makefile + egg/tests/Makefile +- po/Makefile.in +- po/Makefile + libsecret/Makefile + libsecret/libsecret.pc + libsecret/libsecret-unstable.pc diff --git a/package/libsecret/patches/patch-configure_ac.orig b/package/libsecret/patches/patch-configure_ac.orig new file mode 100644 index 000000000..a26aab5cb --- /dev/null +++ b/package/libsecret/patches/patch-configure_ac.orig @@ -0,0 +1,35 @@ +--- libsecret-0.16.orig/configure.ac 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/configure.ac 2013-11-21 15:23:11.000000000 +0100 +@@ -43,7 +43,6 @@ AC_PROG_INSTALL + AC_PROG_LN_S + AC_PROG_MAKE_SET + AM_PROG_LIBTOOL +-IT_PROG_INTLTOOL([0.35.0]) + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + + GETTEXT_PACKAGE=libsecret +@@ -66,9 +65,6 @@ PKG_CHECK_MODULES(GLIB, + LIBS="$LIBS $GLIB_LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + +-GTK_DOC_CHECK(1.9) +- +-GOBJECT_INTROSPECTION_CHECK([1.29]) + AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) + + # -------------------------------------------------------------------- +@@ -88,14 +84,6 @@ AM_CONDITIONAL(WITH_MANPAGES, test x$ena + # -------------------------------------------------------------------- + # Vala + +-VALA_REQUIRED=0.17.2.12 +- +-VAPIGEN_CHECK($VALA_REQUIRED) +- +-if test "$enable_vala" != "no"; then +- AC_PATH_PROG([VALAC], [valac], []) +-fi +-AM_CONDITIONAL(HAVE_VALAC, test "x$VALAC" != "x") + + # -------------------------------------------------------------------- + # libgcrypt diff --git a/package/libsecret/patches/patch-docs_reference_libsecret_Makefile_am b/package/libsecret/patches/patch-docs_reference_libsecret_Makefile_am new file mode 100644 index 000000000..1a749c19e --- /dev/null +++ b/package/libsecret/patches/patch-docs_reference_libsecret_Makefile_am @@ -0,0 +1,20 @@ +--- libsecret-0.16.orig/docs/reference/libsecret/Makefile.am 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/docs/reference/libsecret/Makefile.am 2013-11-21 12:01:48.000000000 +0100 +@@ -92,13 +92,13 @@ GTKDOC_LIBS= $(GLIB_LIBS) $(GOBJECT_LIBS + $(top_builddir)/libsecret/libsecret-@SECRET_MAJOR@.la + + # This includes the standard gtk-doc make rules, copied by gtkdocize. +-include $(top_srcdir)/gtk-doc.make ++#include $(top_srcdir)/gtk-doc.make + + # Other files to distribute + # e.g. EXTRA_DIST += version.xml.in +-EXTRA_DIST += \ +- version.xml.in \ +- version-major.xml.in ++#EXTRA_DIST += \ ++# version.xml.in \ ++# version-major.xml.in + + # Files not to distribute + # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types diff --git a/package/libsecret/patches/patch-docs_reference_libsecret_Makefile_am.orig b/package/libsecret/patches/patch-docs_reference_libsecret_Makefile_am.orig new file mode 100644 index 000000000..02e2351a3 --- /dev/null +++ b/package/libsecret/patches/patch-docs_reference_libsecret_Makefile_am.orig @@ -0,0 +1,11 @@ +--- libsecret-0.16.orig/docs/reference/libsecret/Makefile.am 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/docs/reference/libsecret/Makefile.am 2013-11-21 11:59:27.000000000 +0100 +@@ -92,7 +92,7 @@ GTKDOC_LIBS= $(GLIB_LIBS) $(GOBJECT_LIBS + $(top_builddir)/libsecret/libsecret-@SECRET_MAJOR@.la + + # This includes the standard gtk-doc make rules, copied by gtkdocize. +-include $(top_srcdir)/gtk-doc.make ++#include $(top_srcdir)/gtk-doc.make + + # Other files to distribute + # e.g. EXTRA_DIST += version.xml.in diff --git a/package/libsecret/patches/patch-libsecret_Makefile_am b/package/libsecret/patches/patch-libsecret_Makefile_am new file mode 100644 index 000000000..88e9ef5fb --- /dev/null +++ b/package/libsecret/patches/patch-libsecret_Makefile_am @@ -0,0 +1,95 @@ +--- libsecret-0.16.orig/libsecret/Makefile.am 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/libsecret/Makefile.am 2013-11-21 12:06:37.000000000 +0100 +@@ -1,6 +1,6 @@ + include $(top_srcdir)/Makefile.decl + +-SUBDIRS = . tests ++SUBDIRS = . + + AM_CPPFLAGS = \ + -I$(top_srcdir) \ +@@ -107,84 +107,6 @@ secret-enum-types.c: secret-enum-types.c + + CLEANFILES = + +-# ------------------------------------------------------------------ +-# INTROSPECTION +- +-if HAVE_INTROSPECTION +- +-include $(INTROSPECTION_MAKEFILE) +- +-INTROSPECTION_GIRS = Secret-@SECRET_MAJOR@.gir SecretUnstable-0.gir +-INTROSPECTION_SCANNER_ARGS = $(INTROSPECTION_FLAGS) --warn-all --add-include-path=$(srcdir) --add-include-path=. +-INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=. +- +-Secret-@SECRET_MAJOR@.gir: libsecret-@SECRET_MAJOR@.la +- +-Secret_@SECRET_MAJOR@_gir_NAMESPACE = Secret +-Secret_@SECRET_MAJOR@_gir_EXPORT_PACKAGES = libsecret-@SECRET_MAJOR@ +-Secret_@SECRET_MAJOR@_gir_INCLUDES = GObject-2.0 Gio-2.0 +-Secret_@SECRET_MAJOR@_gir_LIBS = libsecret-@SECRET_MAJOR@.la +-Secret_@SECRET_MAJOR@_gir_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -DSECRET_COMPILATION +-Secret_@SECRET_MAJOR@_gir_FILES = $(STABLE_FILES) +-Secret_@SECRET_MAJOR@_gir_SCANNERFLAGS = --c-include "libsecret/secret.h" +- +-SecretUnstable-0.gir: Secret-@SECRET_MAJOR@.gir +- +-SecretUnstable_0_gir_NAMESPACE = SecretUnstable +-SecretUnstable_0_gir_EXPORT_PACKAGES = libsecret-unstable +-SecretUnstable_0_gir_INCLUDES = GObject-2.0 Gio-2.0 +-SecretUnstable_0_gir_LIBS = libsecret-@SECRET_MAJOR@.la +-SecretUnstable_0_gir_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -DSECRET_COMPILATION -DSECRET_API_SUBJECT_TO_CHANGE +-SecretUnstable_0_gir_FILES = $(UNSTABLE_FILES) +-SecretUnstable_0_gir_SCANNERFLAGS = --c-include "libsecret/secret.h" --identifier-prefix=Secret --symbol-prefix=secret --include-uninstalled=$(builddir)/Secret-@SECRET_MAJOR@.gir +- +-girdir = $(datadir)/gir-1.0 +-gir_DATA = $(INTROSPECTION_GIRS) +- +-typelibsdir = $(libdir)/girepository-1.0 +-typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) +- +-if ENABLE_VAPIGEN +-include $(VAPIGEN_MAKEFILE) +- +-libsecret-@SECRET_MAJOR@.vapi: Secret-@SECRET_MAJOR@.gir Secret-@SECRET_MAJOR@.metadata libsecret-@SECRET_MAJOR@.deps +- +-libsecret-unstable.vapi: SecretUnstable-0.gir SecretUnstable-0.metadata libsecret-unstable.deps +- +-VAPIGEN_VAPIS = \ +- libsecret-@SECRET_MAJOR@.vapi \ +- libsecret-unstable.vapi +- +-libsecret_@SECRET_MAJOR@_vapi_DEPS = glib-2.0 gio-2.0 +-libsecret_@SECRET_MAJOR@_vapi_METADATADIRS = $(srcdir) +-libsecret_@SECRET_MAJOR@_vapi_FILES = Secret-@SECRET_MAJOR@.gir +- +-libsecret_unstable_vapi_DEPS = gio-2.0 libsecret-@SECRET_MAJOR@ +-libsecret_unstable_vapi_METADATADIRS = $(srcdir) +-libsecret_unstable_vapi_VAPIDIRS = $(builddir) +-libsecret_unstable_vapi_GIRDIRS = $(builddir) +-# ... because _GIRDIRS above is broken, yes, this is ugly +-libsecret_unstable_vapi_FILES = --girdir=$(builddir) +-libsecret_unstable_vapi_FILES += SecretUnstable-0.gir +- +-VAPI_DEPS = $(VAPIGEN_VAPIS:.vapi=.deps) +- +-libsecret-$(SECRET_MAJOR).deps: Makefile.am +- $(AM_V_GEN) echo $(libsecret_@SECRET_MAJOR@_vapi_DEPS) | tr ' ' '\n' > $@ +-libsecret-unstable.deps: Makefile.am +- $(AM_V_GEN) echo $(libsecret_unstable_vapi_DEPS) | tr ' ' '\n' > $@ +- +-vapidir = $(datadir)/vala/vapi +-vapi_DATA = \ +- $(VAPIGEN_VAPIS) \ +- $(VAPI_DEPS) +- +-CLEANFILES += \ +- $(VAPIGEN_VAPIS) \ +- $(VAPI_DEPS) +- +-endif # ENABLE_VAPIGEN +-endif # HAVE_INTROSPECTION + + # ------------------------------------------------------------------ + # PKG CONFIG diff --git a/package/libsecret/patches/patch-libsecret_tests_Makefile_am b/package/libsecret/patches/patch-libsecret_tests_Makefile_am new file mode 100644 index 000000000..d168c022e --- /dev/null +++ b/package/libsecret/patches/patch-libsecret_tests_Makefile_am @@ -0,0 +1,113 @@ +--- libsecret-0.16.orig/libsecret/tests/Makefile.am 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/libsecret/tests/Makefile.am 2013-11-21 15:35:42.000000000 +0100 +@@ -73,59 +73,6 @@ PY_TESTS = \ + + PY_ENV = $(JS_ENV) + +-# ------------------------------------------------------------------ +-# VALA +- +-VALA_V = $(VALA_V_$(V)) +-VALA_V_ = $(VALA_V_$(AM_DEFAULT_VERBOSITY)) +-VALA_V_0 = @echo " VALAC " $^; +- +-VALA_TESTS = \ +- test-vala-lang \ +- test-vala-unstable \ +- $(NULL) +- +-VALA_FLAGS = \ +- --vapidir=$(builddir)/.. \ +- --pkg gio-2.0 +- +-VALA_TESTS_VAPIS = \ +- $(builddir)/../libsecret-unstable.vapi \ +- $(builddir)/../libsecret-@SECRET_MAJOR@.vapi \ +- $(builddir)/mock-service-0.vapi +- +-VALA_SRCS = $(VALA_TESTS:=.vala) +-VALA_C_SRCS = $(VALA_SRCS:.vala=.c) +- +-if HAVE_VALAC +-$(VALA_C_SRCS): %.c: %.vala $(VALA_TESTS_VAPIS) +- $(VALA_V)$(VALAC) $(VALA_FLAGS) $(VALA_TESTS_VAPIS) -C $< +-endif +- +-test_vala_lang_CFLAGS = -w +-test_vala_unstable_CFLAGS = -DSECRET_WITH_UNSTABLE -w +- +-nodist_test_vala_lang_SOURCES = test-vala-lang.c +-nodist_test_vala_unstable_SOURCES = test-vala-unstable.c +- +-DISTCLEANFILES = $(VALA_C_SRCS) +- +-test-vala: $(VALA_TESTS) +- @gtester --verbose -m $(TEST_MODE) --g-fatal-warnings $(VALA_TESTS) +- +-VALA_TEST_TARGET = +- +-if HAVE_INTROSPECTION +-if ENABLE_VAPIGEN +-if HAVE_VALAC +- +-VALA_TEST_TARGET += test-vala +- +-TEST_PROGS += $(VALA_TESTS) +- +-endif # HAVE_VALAC +-endif # ENABLE_VAPIGEN +-endif # HAVE_INTROSPECTION + + test-c: $(C_TESTS) + @gtester --verbose -m $(TEST_MODE) --g-fatal-warnings $(C_TESTS) +@@ -138,50 +85,6 @@ test-py: + + test: test-c test-py test-js $(VALA_TEST_TARGET) + +-# ------------------------------------------------------------------ +-# INTROSPECTION +- +-if HAVE_INTROSPECTION +- +-include $(INTROSPECTION_MAKEFILE) +- +-INTROSPECTION_GIRS = MockService-0.gir +-INTROSPECTION_SCANNER_ARGS = $(INTROSPECTION_FLAGS) --warn-all --add-include-path=$(srcdir) --add-include-path=. +-INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=. +- +-MockService-0.gir: libmock_service.la +- +-MockService_0_gir_PACKAGES = gobject-2.0 gio-2.0 +-MockService_0_gir_EXPORT_PACKAGES = mock-service-0 +-MockService_0_gir_INCLUDES = GObject-2.0 Gio-2.0 +-MockService_0_gir_LIBS = libmock_service.la +-MockService_0_gir_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) +-MockService_0_gir_FILES = $(libmock_service_la_SOURCES) +-MockService_0_gir_SCANNERFLAGS = --c-include "mock-service.h" +- +-noinst_DATA = \ +- $(INTROSPECTION_GIRS) \ +- $(INTROSPECTION_GIRS:.gir=.typelib) +- +-if ENABLE_VAPIGEN +-include $(VAPIGEN_MAKEFILE) +- +-mock-service-0.vapi: MockService-0.gir $(builddir)/../libsecret-@SECRET_MAJOR@.vapi +- +-VAPIGEN_VAPIS = mock-service-0.vapi +- +-mock_service_0_vapi_DEPS = gio-2.0 libsecret-@SECRET_MAJOR@ +-mock_service_0_vapi_METADATADIRS = $(builddir) +-mock_service_0_vapi_VAPIDIRS = $(builddir) $(builddir)/.. +-mock_service_0_vapi_FILES = MockService-0.gir +- +-vapidir = $(datadir)/vala/vapi +-vapi_DATA = mock-service-0.vapi +- +-noinst_DATA += $(VAPIGEN_VAPIS) +- +-endif # ENABLE_VAPIGEN +-endif # HAVE_INTROSPECTION + + #-------------------------------------------------------------------- + diff --git a/package/libsecret/patches/patch-libsecret_tests_Makefile_am.orig b/package/libsecret/patches/patch-libsecret_tests_Makefile_am.orig new file mode 100644 index 000000000..efe20a44f --- /dev/null +++ b/package/libsecret/patches/patch-libsecret_tests_Makefile_am.orig @@ -0,0 +1,72 @@ +--- libsecret-0.16.orig/libsecret/tests/Makefile.am 2013-08-26 17:42:16.000000000 +0200 ++++ libsecret-0.16/libsecret/tests/Makefile.am 2013-11-21 12:15:40.000000000 +0100 +@@ -115,18 +115,6 @@ test-vala: $(VALA_TESTS) + + VALA_TEST_TARGET = + +-if HAVE_INTROSPECTION +-if ENABLE_VAPIGEN +-if HAVE_VALAC +- +-VALA_TEST_TARGET += test-vala +- +-TEST_PROGS += $(VALA_TESTS) +- +-endif # HAVE_VALAC +-endif # ENABLE_VAPIGEN +-endif # HAVE_INTROSPECTION +- + test-c: $(C_TESTS) + @gtester --verbose -m $(TEST_MODE) --g-fatal-warnings $(C_TESTS) + +@@ -138,50 +126,6 @@ test-py: + + test: test-c test-py test-js $(VALA_TEST_TARGET) + +-# ------------------------------------------------------------------ +-# INTROSPECTION +- +-if HAVE_INTROSPECTION +- +-include $(INTROSPECTION_MAKEFILE) +- +-INTROSPECTION_GIRS = MockService-0.gir +-INTROSPECTION_SCANNER_ARGS = $(INTROSPECTION_FLAGS) --warn-all --add-include-path=$(srcdir) --add-include-path=. +-INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=. +- +-MockService-0.gir: libmock_service.la +- +-MockService_0_gir_PACKAGES = gobject-2.0 gio-2.0 +-MockService_0_gir_EXPORT_PACKAGES = mock-service-0 +-MockService_0_gir_INCLUDES = GObject-2.0 Gio-2.0 +-MockService_0_gir_LIBS = libmock_service.la +-MockService_0_gir_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -I$(srcdir) +-MockService_0_gir_FILES = $(libmock_service_la_SOURCES) +-MockService_0_gir_SCANNERFLAGS = --c-include "mock-service.h" +- +-noinst_DATA = \ +- $(INTROSPECTION_GIRS) \ +- $(INTROSPECTION_GIRS:.gir=.typelib) +- +-if ENABLE_VAPIGEN +-include $(VAPIGEN_MAKEFILE) +- +-mock-service-0.vapi: MockService-0.gir $(builddir)/../libsecret-@SECRET_MAJOR@.vapi +- +-VAPIGEN_VAPIS = mock-service-0.vapi +- +-mock_service_0_vapi_DEPS = gio-2.0 libsecret-@SECRET_MAJOR@ +-mock_service_0_vapi_METADATADIRS = $(builddir) +-mock_service_0_vapi_VAPIDIRS = $(builddir) $(builddir)/.. +-mock_service_0_vapi_FILES = MockService-0.gir +- +-vapidir = $(datadir)/vala/vapi +-vapi_DATA = mock-service-0.vapi +- +-noinst_DATA += $(VAPIGEN_VAPIS) +- +-endif # ENABLE_VAPIGEN +-endif # HAVE_INTROSPECTION + + #-------------------------------------------------------------------- + |