[Buildroot] [git commit] package/libb64: new package

Arnout Vandecappelle (Essensium/Mind) arnout at mind.be
Sat Sep 2 13:13:47 UTC 2017


commit: https://git.buildroot.net/buildroot/commit/?id=69911ee1e0389ae84b083ec30844fb14676d9551
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

This patch adds libb64, a library of ANSI C routines for fast
encoding/decoding data into and from a base64-encoded format.

The package contains a static library, headers, and an executable.
The latter, however, requires C++ and offers no advantages over busybox
or coreutils base64, so it is not installed. Therefore, nothing is
installed to target.

Signed-off-by: Angelo Compagnucci <angelo.compagnucci at gmail.com>
[Arnout:
- properly wrap Config.in
- move from Crypto to Other menu
- don't install to target
- don't make headers executable
- don't add -D to install with multiple source files
- extend commit log]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
---
 package/Config.in          |  1 +
 package/libb64/Config.in   | 14 ++++++++++++++
 package/libb64/libb64.hash |  3 +++
 package/libb64/libb64.mk   | 30 ++++++++++++++++++++++++++++++
 4 files changed, 48 insertions(+)

diff --git a/package/Config.in b/package/Config.in
index 85416af..34ce399 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1413,6 +1413,7 @@ menu "Other"
 	source "package/lapack/Config.in"
 	source "package/libargtable2/Config.in"
 	source "package/libatomic_ops/Config.in"
+	source "package/libb64/Config.in"
 	source "package/libbsd/Config.in"
 	source "package/libcap/Config.in"
 	source "package/libcap-ng/Config.in"
diff --git a/package/libb64/Config.in b/package/libb64/Config.in
new file mode 100644
index 0000000..405d0b8
--- /dev/null
+++ b/package/libb64/Config.in
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_LIBB64
+	bool "libb64"
+	help
+	  libb64 is a library of ANSI C routines for fast encoding
+	  and decoding of data into and from a base64-encoded format.
+	  C++ wrappers are included, as well as the source code for
+	  standalone encoding and decoding executables.
+
+	  Base64 uses a subset of displayable ASCII characters, and is
+	  therefore a useful encoding for storing binary data in a text
+	  file, such as XML, or sending binary data over text-only
+	  email.
+
+	  http://libb64.sourceforge.net
diff --git a/package/libb64/libb64.hash b/package/libb64/libb64.hash
new file mode 100644
index 0000000..012a7b0
--- /dev/null
+++ b/package/libb64/libb64.hash
@@ -0,0 +1,3 @@
+# sha1 from sourceforge, sha256 locally computed
+sha1  04b3e21b8c951d27f02fe91249ca3474554af0b9  libb64-1.2.1.zip
+sha256  20106f0ba95cfd9c35a13c71206643e3fb3e46512df3e2efb2fdbf87116314b2  libb64-1.2.1.zip
diff --git a/package/libb64/libb64.mk b/package/libb64/libb64.mk
new file mode 100644
index 0000000..4dea959
--- /dev/null
+++ b/package/libb64/libb64.mk
@@ -0,0 +1,30 @@
+################################################################################
+#
+# libb64
+#
+################################################################################
+
+LIBB64_VERSION = 1.2.1
+LIBB64_SOURCE = libb64-$(LIBB64_VERSION).zip
+LIBB64_SITE = https://downloads.sourceforge.net/project/libb64/libb64/libb64
+LIBB64_LICENSE = Public Domain
+LIBB64_LICENSE_FILES = LICENSE
+LIBB64_INSTALL_STAGING = YES
+# Only static lib and headers
+LIBB64_INSTALL_TARGET = NO
+
+define LIBB64_EXTRACT_CMDS
+	unzip $(DL_DIR)/$(LIBB64_SOURCE) -d $(BUILD_DIR)
+endef
+
+define LIBB64_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CCFLAGS="$(TARGET_CFLAGS)" -C $(@D) all_src
+endef
+
+define LIBB64_INSTALL_STAGING_CMDS
+	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/b64
+	$(INSTALL) -m 0644 $(@D)/include/b64/* $(STAGING_DIR)/usr/include/b64
+	$(INSTALL) -D -m 0755 $(@D)/src/libb64.a $(STAGING_DIR)/usr/lib
+endef
+
+$(eval $(generic-package))


More information about the buildroot mailing list