elektra: Add the package 2398/head
authorHarald Geyer <harald@ccbib.org>
Sat, 20 Feb 2016 21:58:49 +0000 (21:58 +0000)
committerHarald Geyer <harald@ccbib.org>
Sun, 10 Apr 2016 11:11:05 +0000 (11:11 +0000)
Elektra is a library and tools for advanced configuration management
(3-way merging, notifications, etc.). This has been tested on mxs target.

Signed-off-by: Harald Geyer <harald@ccbib.org>
libs/elektra/Makefile [new file with mode: 0644]

diff --git a/libs/elektra/Makefile b/libs/elektra/Makefile
new file mode 100644 (file)
index 0000000..5cfaae7
--- /dev/null
@@ -0,0 +1,378 @@
+#
+# Copyright (C) 2006-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# No copyright by Harald Geyer as filling in a template doesn't constitute
+# an original work in the sense of copyright law.
+
+include $(TOPDIR)/rules.mk
+
+PKG_MAINTAINER:=Harald Geyer <harald@ccbib.org>
+
+PKG_NAME:=elektra
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=doc/COPYING
+PKG_VERSION:=0.8.15
+PKG_RELEASE:=1
+
+# Use this for official releasees
+PKG_MD5SUM:=33ec1e5982fb7fbd8893bf7b579b80f0
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://ftp.libelektra.org/ftp/elektra/releases
+
+# Use this to test versions still under development
+#PKG_SOURCE_PROTO:=git
+#PKG_SOURCE_URL:=https://github.com/ElektraInitiative/libelektra.git
+#PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+#PKG_SOURCE_VERSION:=e97efb29a94f3a49cb952d06552fcf53708ea8c7
+#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
+
+PKG_BUILD_DEPENDS:=elektra/host swig/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/libelektra/Default
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=Elektra
+  URL:=http://www.libelektra.org/
+  SUBMENU:=libelektra
+endef
+
+define Package/libelektra/Default-description
+Elektra provides an universal and secure framework to store
+configuration parameters in a global, hierarchical key database.
+endef
+
+define Package/libelektra-core
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra core library
+  DEPENDS:=+libpthread
+endef
+
+define Package/libelektra-core/description
+$(call Package/libelektra/Default-description)
+
+This package contains the core libraries, that all other parts of
+elektra and all programs using elektra depend on, and an almost
+minimal set of plugins to be actually useful.
+endef
+
+define Package/elektra-kdb
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Elektra kdb tool
+  URL:=http://www.libelektra.org/
+  DEPENDS:=+libelektra-core +libstdcpp
+endef
+
+define Package/elektra-kdb/description
+$(call Package/libelektra/Default-description)
+
+This package contains the kdb tool, which allows to access and change
+the content of the key database from the shell.
+endef
+
+define Package/libelektra-resolvers
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra additional resolvers
+  DEPENDS:=+libelektra-core +libpthread
+endef
+
+define Package/libelektra-resolvers/description
+$(call Package/libelektra/Default-description)
+
+This package contains additional resolvers not included in the
+libelektra-core package. Usually there is no reason to install this.
+endef
+
+define Package/libelektra-plugins
+  $(call Package/libelektra/Default)
+  TITLE:=Useful elektra plugins
+  DEPENDS:=+libelektra-core
+endef
+
+define CONTENT_ELEKTRA_PLUGINS_TEXT
+ccode conditionals csvstorage enum filecheck glob hexcode hidden hosts
+iconv keytometa line lineendings list mathcheck network null path
+simpleini syslog uname validation
+endef
+
+CONTENT_ELEKTRA_PLUGINS = $(strip $(CONTENT_ELEKTRA_PLUGINS_TEXT))
+
+define Package/libelektra-plugins/description
+$(call Package/libelektra/Default-description)
+
+This package contains plugins for various common configuration file
+format and optional features without heavy dependencies. Currently
+these plugins are included:
+$(CONTENT_ELEKTRA_PLUGINS_TEXT)
+endef
+
+define Package/libelektra-cpp
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra plugins depending on libstdcpp
+  DEPENDS:=+libelektra-core +libstdcpp
+endef
+
+CONTENT_ELEKTRA_CPP=dump regexstore struct type
+
+define Package/libelektra-cpp/description
+$(call Package/libelektra/Default-description)
+
+This package contains plugins written in C++.
+Currently these are:
+$(CONTENT_ELEKTRA_CPP)
+endef
+
+define Package/libelektra-boost
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra plugins depending on boost
+  DEPENDS:=+libelektra-core +libstdcpp +boost
+endef
+
+define Package/libelektra-boost/description
+$(call Package/libelektra/Default-description)
+
+This package contains plugins written in C++ with an dependency on
+boost. Currently this is a plugin for a tcl like format.
+endef
+
+define Package/libelektra-crypto
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra crypto plugin
+  DEPENDS:=+libelektra-core +libopenssl
+endef
+
+define Package/libelektra-crypto/description
+$(call Package/libelektra/Default-description)
+
+This package contains support for encrypting values before storage.
+endef
+
+define Package/libelektra-dbus
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra dbus plugin
+  DEPENDS:=+libelektra-core +libdbus
+endef
+
+define Package/libelektra-dbus/description
+$(call Package/libelektra/Default-description)
+
+This package contains support for dbus notification on configuration
+changes.
+endef
+
+define Package/libelektra-xml
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra xmltool plugin
+  DEPENDS:=+libelektra-core +libxml2
+endef
+
+define Package/libelektra-xml/description
+$(call Package/libelektra/Default-description)
+
+This package contains a plugin for storing data with xml syntax.
+endef
+
+define Package/libelektra-yajl
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra yajl (json) plugin
+  DEPENDS:=+libelektra-core +yajl
+endef
+
+define Package/libelektra-yajl/description
+$(call Package/libelektra/Default-description)
+
+This package contains support for storing the key database as json files.
+endef
+
+define Package/libelektra-python2
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra python2 plugin
+  DEPENDS:=+libelektra-core +python-light +libstdcpp
+endef
+
+define Package/libelektra-python2/description
+$(call Package/libelektra/Default-description)
+
+This package adds python2 support to elektra.
+endef
+
+define Package/libelektra-python3
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra python3 plugin
+  DEPENDS:=+libelektra-core +python3-light +libstdcpp
+endef
+
+define Package/libelektra-python3/description
+$(call Package/libelektra/Default-description)
+
+This package adds python3 support to elektra.
+endef
+
+define Package/libelektra-lua
+  $(call Package/libelektra/Default)
+  TITLE:=Elektra lua plugin
+  DEPENDS:=+libelektra-core +lua +libstdcpp
+endef
+
+define Package/libelektra-lua/description
+$(call Package/libelektra/Default-description)
+
+This package adds lua support to elektra.
+endef
+
+define Package/libelektra-extra
+  $(call Package/libelektra/Default)
+  TITLE:=Additional elektra plugins
+  DEPENDS:=+libelektra-core
+endef
+
+CONTENT_ELEKTRA_EXTRA:=constants counter error fstab logchange rename timeofday tracer
+
+define Package/libelektra-extra/description
+$(call Package/libelektra/Default-description)
+
+This package contains extra plugins that are only useful for debugging
+or as an example of what can be done. Currently this includes:
+$(CONTENT_ELEKTRA_EXTRA)
+endef
+
+CMAKE_OPTIONS = \
+       -DTARGET_PLUGIN_FOLDER="" \
+       -DBUILD_FULL=OFF \
+       -DBUILD_STATIC=OFF \
+       -DBUILD_DOCUMENTATION=OFF \
+       -DFORCE_IN_SOURCE_BUILD=ON \
+       -DBUILD_TESTING=OFF \
+       -DKDB_DEFAULT_RESOLVER=resolver_fm_pb_b \
+       -DKDB_DEFAULT_STORAGE=ini \
+       -DPLUGINS="ALL;-crypto_gcrypt"
+
+CMAKE_HOST_OPTIONS = \
+       -DCMAKE_SKIP_RPATH=FALSE \
+       -DCMAKE_INSTALL_RPATH=$(STAGING_DIR_HOST)/lib/ \
+       -DINSTALL_BUILD_TOOLS=ON \
+       -DBUILD_STATIC=OFF \
+       -DBUILD_DOCUMENTATION=OFF \
+       -DINSTALL_SYSTEM_FILES=OFF \
+       -DFORCE_IN_SOURCE_BUILD=ON \
+       -DBUILD_TESTING=OFF \
+       -DPLUGINS="ALL;-python2;-python" \
+       -DTOOLS="gen;kdb"
+
+define Package/libelektra-core/install
+       $(INSTALL_DIR) $(1)/etc/kdb/
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-core.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ease.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-kdb.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-meta.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-plugin.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-proposal.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-resolver_fm_pb_b.so $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ni.so $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ini.so $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-sync.so $(1)/usr/lib/
+endef
+
+define Package/elektra-kdb/install
+       $(INSTALL_DIR) $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kdb $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/usr/lib/elektra/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektratools* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/elektra/tool_exec/ $(1)/usr/lib/elektra/
+endef
+
+define Package/libelektra-resolvers/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-resolver_* $(1)/usr/lib/
+       rm -f $(1)/usr/lib/libelektra-resolver_fm_pb_b.so
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-wresolver.so $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-noresolver.so $(1)/usr/lib/
+endef
+
+define Package/libelektra-plugins/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(foreach plugin,$(CONTENT_ELEKTRA_PLUGINS),$(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-$(plugin).so $(1)/usr/lib/;)
+endef
+
+define Package/libelektra-boost/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-tcl.so $(1)/usr/lib/
+endef
+
+define Package/libelektra-cpp/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(foreach plugin,$(CONTENT_ELEKTRA_CPP),$(PKG_INSTALL_DIR)/usr/lib/libelektra-$(plugin).so) $(1)/usr/lib/
+endef
+
+define Package/libelektra-crypto/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-crypto* $(1)/usr/lib/
+endef
+
+define Package/libelektra-dbus/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-dbus.so $(1)/usr/lib/
+endef
+
+define Package/libelektra-xml/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-xmltool.so $(1)/usr/lib/
+endef
+
+define Package/libelektra-yajl/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-yajl.so $(1)/usr/lib/
+endef
+
+define Package/libelektra-python2/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-python2.so $(1)/usr/lib/
+endef
+
+define Package/libelektra-python3/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-python.so $(1)/usr/lib/
+endef
+
+define Package/libelektra-lua/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-lua.so $(1)/usr/lib/
+endef
+
+define Package/libelektra-extra/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(foreach plugin,$(CONTENT_ELEKTRA_EXTRA),$(PKG_INSTALL_DIR)/usr/lib/libelektra-$(plugin).so) $(1)/usr/lib/
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/elektra/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/elektra/* $(1)/usr/include/elektra/
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
+endef
+
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,libelektra-core))
+$(eval $(call BuildPackage,elektra-kdb))
+$(eval $(call BuildPackage,libelektra-resolvers))
+$(eval $(call BuildPackage,libelektra-plugins))
+$(eval $(call BuildPackage,libelektra-boost))
+$(eval $(call BuildPackage,libelektra-cpp))
+$(eval $(call BuildPackage,libelektra-crypto))
+$(eval $(call BuildPackage,libelektra-dbus))
+$(eval $(call BuildPackage,libelektra-xml))
+$(eval $(call BuildPackage,libelektra-yajl))
+$(eval $(call BuildPackage,libelektra-python2))
+$(eval $(call BuildPackage,libelektra-python3))
+$(eval $(call BuildPackage,libelektra-lua))
+$(eval $(call BuildPackage,libelektra-extra))