[esnacc-dev] [PATCH] FAQ: Add frequently asked questions

Aaron Conole aconole at bytheb.org
Fri Sep 23 21:32:06 UTC 2016


Signed-off-by: Aaron Conole <aconole at bytheb.org>
---
 FAQ.md      | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Makefile.am |  3 ++-
 2 files changed, 87 insertions(+), 1 deletion(-)
 create mode 100644 FAQ.md

diff --git a/FAQ.md b/FAQ.md
new file mode 100644
index 0000000..7f051a1
--- /dev/null
+++ b/FAQ.md
@@ -0,0 +1,85 @@
+Frequently Asked Questions
+==========================
+
+Enhanced SNACC <http://esnacc-ng.org>
+
+## Contents
+
+- [General](#general)
+- [Licensing](#licensing)
+
+
+## General
+
+### Q: What is eSNACC?
+
+A: eSNACC is the Enhanced Sample Neufeld ASN.1 C Compiler.  It is a libre
+   project with the goal of producing an ASN.1 to C/C++ (and more) code 
+   compiler.  ASN.1 is a standardized language maintained by the International
+   Telecommunications Union.  The goal of ASN.1 is to produce a language which
+   describes various types of data, and defines the framework by which that
+   data is serialized and deserialized.
+   
+
+### Q: What versions of ASN.1 does eSNACC interoperate with?
+
+A: eSNACC can support most of X.608/X.609 for Basic Encoding Rules.  Some 
+   notable exceptions exist (there are a few compliance issues with string
+   formats and internationalization).
+
+
+### Q: Which languages does eSNACC target?
+
+A: Currently, eSNACC targets C and C++ languages.  There are some outstanding
+   efforts to provide back-ends for python, java, C#, and go.
+
+   Note that not every feature may be available in every language.  For example,
+   some encoding rules may only be implemented in one language.  In these cases,
+   the documentation should explain the differences.
+
+
+### Q: Which encoding rules are support?  Do you support X enconding?
+
+A: There is a good amount of support for Basic Encoding Rules.  Some 
+   Distinguished Encoding Rules and Packet Encoding Rules support exists, but
+   it is very early stages.  Work is currently underway to enhance this and
+   provide DER, PER, XER, and GSER support both in C and C++ languages.
+
+   Other encodings will be added.  The best way to get your favorite encoding
+   is to write a new set of support libraries and add the code generation. Then
+   submit it as a patch (hopefully with tests for `make check`).
+
+
+## Licensing
+
+### Q: Why do you have such a strange set of licenses?
+
+A: A bit of history.  The SNACC project began back when free licenses were not
+   fully vetted.  The original code was licensed as both LGPL and GPL, but this
+   was not workable (it would create a piece of code that was always GPL'd).
+
+   It was relicensed for 1.1 as GPLv2 for the compiler, and "Free Software" for
+   the library.  Although it is a bit fuzzy, the understanding is that this
+   means you are free to run this work, modify this work, redistribute this 
+   work (including your modifications), and study the code this work (where
+   this work means the parts of code which make up 'the library').
+
+   In 2002/2003 timeframe, DigitalNet (a now defunct branch of Getronics) took
+   the SNACC code and enhanced it to include better support for C++, and newer
+   ASN.1 syntax.  These enhancements were added under the eSNACC Public License
+   under contract to the US government.  They codify the 'Free Software' 
+   license referenced above (although, obviously do not re-license the 
+   software).
+
+
+### Q: So am I free to use eSNACC in my application?
+
+A: Yes.  If you incorporate the eSNACC compiler, you will be subject to the
+   terms of the GNU GPL v2.  If you only use the compiler to generate code and
+   then use the resulting code and support libraries, your new work can be 
+   licensed however you like.
+
+
+### Q: Have you vetted this by a lawyer?
+
+A: A little bit, yes.
diff --git a/Makefile.am b/Makefile.am
index 8d867cd..00e0a74 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -32,7 +32,8 @@ docs = \
 	INSTALL.md \
 	NEWS \
 	COPYING \
-	COPYING.epl
+	COPYING.epl \
+	FAQ.md
 
 EXTRA_DIST = \
 	$(docs) \
-- 
2.7.4



More information about the dev mailing list