Skip to content

Commit

Permalink
argdata-0.7 (untested)
Browse files Browse the repository at this point in the history
  • Loading branch information
fd00 committed Aug 26, 2017
1 parent 99c7454 commit c84887e
Show file tree
Hide file tree
Showing 3 changed files with 184 additions and 0 deletions.
89 changes: 89 additions & 0 deletions argdata/README
@@ -0,0 +1,89 @@
argdata
------------------------------------------
Argdata is a binary serialisation format inspired by YAML, MessagePack and
nvlists.

It is originally designed and currently used in CloudABI but does not depend
on anything specific to CloudABI.

The encoding is optimized for reading:

* Strings (UTF-8 encoded) and binary data appear verbatim within the encoded
data. Strings are followed by a null byte in the encoded data. This way,
pointers into the encoded argdata can be used directly, without having to
copy or overwrite data.

* Instead of encoding the number of elements in maps and sequences (the only
two structures containing subfields), the length of the subfields (in bytes)
is stored before each subfield. This makes it possible to iterate over a map
or sequence, without having to recursively iterate depth-first through all
the elements. Skipping over a large map containing many other maps is as
quick as skipping over a single integer. This means the encoded data can be
navigated through quite efficiently, without constructing a data structure
next to the encoded data.

So, after the encoded argdata is stored in a buffer, no dynamic memory is
needed at all to use any of the values contained within.

Runtime requirements:
cygwin-2.8.2-1
libargdata-devel-0.7-1bl1
libargdata1-0.7-1bl1
pkg-config-0.29.1-1

Build requirements:
(besides corresponding -devel packages)
binutils-2.25-4
cmake-3.6.2-1
cygport-0.24.1-1
gcc-core-5.4.0-1
gcc-g++-5.4.0-1
make-4.2.1-2
python-2.7.13-1

Canonical website:
https://github.com/NuxiNL/argdata

Canonical download:
https://github.com/NuxiNL/argdata/archive/v0.7.tar.gz

-------------------------------------------

Build instructions:
1. unpack argdata-0.7-X-src.tar.xz
2. if you use setup to install this src package,
it will be unpacked under /usr/src automatically
% cd /usr/src
% cygport ./argdata-0.7-X.cygport all

This will create:
/usr/src/argdata-0.7-X-src.tar.xz
/usr/src/argdata-0.7-X.tar.xz
/usr/src/libargdata1-0.7-X.tar.xz
/usr/src/libargdata-devel-0.7-X.tar.xz

-------------------------------------------

Files included in the binary package:

(argdata)
/usr/share/doc/Cygwin/argdata.README
/usr/share/doc/argdata/CONTRIBUTORS
/usr/share/doc/argdata/LICENSE
/usr/share/doc/argdata/README.md

(libargdata1)
/usr/bin/cygargdata-1.dll

(libargdata-devel)
/usr/include/argdata.h
/usr/include/argdata.hpp
/usr/lib/libargdata.dll.a
/usr/lib/pkgconfig/argdata.pc

------------------

Port Notes:

----- version 0.7-1bl1 -----
Initial release by fd0 <https://github.com/fd00/>
50 changes: 50 additions & 0 deletions argdata/argdata-0.7-1bl1.cygport
@@ -0,0 +1,50 @@
HOMEPAGE="https://github.com/NuxiNL/${PN}"
SRC_URI="https://github.com/NuxiNL/${PN}/archive/v${PV}.tar.gz"

CATEGORY="Libs"
SUMMARY="Binary serialisation format inspired by YAML, MessagePack and nvlists"
DESCRIPTION="Argdata is a binary serialisation format inspired by YAML, MessagePack and
nvlists.

It is originally designed and currently used in CloudABI but does not depend
on anything specific to CloudABI.

The encoding is optimized for reading:

* Strings (UTF-8 encoded) and binary data appear verbatim within the encoded
data. Strings are followed by a null byte in the encoded data. This way,
pointers into the encoded argdata can be used directly, without having to
copy or overwrite data.

* Instead of encoding the number of elements in maps and sequences (the only
two structures containing subfields), the length of the subfields (in bytes)
is stored before each subfield. This makes it possible to iterate over a map
or sequence, without having to recursively iterate depth-first through all
the elements. Skipping over a large map containing many other maps is as
quick as skipping over a single integer. This means the encoded data can be
navigated through quite efficiently, without constructing a data structure
next to the encoded data.

So, after the encoded argdata is stored in a buffer, no dynamic memory is
needed at all to use any of the values contained within."

inherit cmake

PKG_NAMES="
${PN}
lib${PN}1
lib${PN}-devel
"
argdata_CONTENTS="
usr/share
"
libargdata1_CONTENTS="
usr/bin
"
libargdata_devel_CONTENTS="
usr/include
usr/lib
"
argdata_SUMMARY="${SUMMARY} (licensing & readmes)"
libargdata1_SUMMARY="${SUMMARY} (runtime)"
libargdata_devel_SUMMARY="${SUMMARY} (development)"
45 changes: 45 additions & 0 deletions argdata/argdata-0.7-1bl1.src.patch
@@ -0,0 +1,45 @@
--- origsrc/argdata-0.7/CMakeLists.txt 2017-08-23 01:09:59.000000000 +0900
+++ src/argdata-0.7/CMakeLists.txt 2017-08-26 18:19:54.362891500 +0900
@@ -62,10 +62,16 @@ set_property(
"1"
)

+if (CYGWIN)
+ set_target_properties(argdata PROPERTIES SOVERSION 1)
+endif (CYGWIN)
+
install(
TARGETS
argdata
- DESTINATION
+ RUNTIME DESTINATION
+ ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION
${CMAKE_INSTALL_LIBDIR}
)

@@ -76,3 +82,11 @@ install(
DESTINATION
${CMAKE_INSTALL_INCLUDEDIR}
)
+
+SET(prefix ${CMAKE_INSTALL_PREFIX})
+SET(exec_prefix ${CMAKE_INSTALL_PREFIX})
+SET(libdir ${CMAKE_INSTALL_PREFIX}/lib)
+SET(includedir ${CMAKE_INSTALL_PREFIX}/include)
+SET(VERSION "0.7")
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/argdata.pc.in ${CMAKE_BINARY_DIR}/argdata.pc @ONLY)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/argdata.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
--- origsrc/argdata-0.7/argdata.pc.in 1970-01-01 09:00:00.000000000 +0900
+++ src/argdata-0.7/argdata.pc.in 2017-08-26 18:18:37.761000000 +0900
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: argdata
+Description: Binary serialisation format inspired by YAML, MessagePack and nvlists
+Version: @VERSION@
+Libs: -L${libdir} -largdata
+Cflags: -I${includedir}

0 comments on commit c84887e

Please sign in to comment.