From a6d4e68bf121a3d0e1e626f4d288ad2b594947e2 Mon Sep 17 00:00:00 2001 From: Sona Sarmadi Date: Tue, 28 Aug 2018 07:11:55 +0200 Subject: First draft of doc copied from standard profile -updated rel-info -updated UG -added new chapterdoc for RT: Real-Time in Enea Linux Change-Id: If8cec0e29d1d6aa4a09507881d815af13dd68ee2 Signed-off-by: Sona Sarmadi --- doc/Makefile | 381 ++ doc/README | 21 + doc/book-enea-linux-open-source/doc/README | 4 + doc/book-enea-linux-open-source/doc/about.xml | 12 + doc/book-enea-linux-open-source/doc/book.xml | 15 + doc/book-enea-linux-open-source/doc/licenses.xml | 6521 ++++++++++++++++++++ doc/book-enea-linux-open-source/swcomp.mk | 10 + .../doc/about_release.xml | 235 + doc/book-enea-linux-release-info/doc/book.xml | 22 + .../doc/build_boot_template.xml | 34 + .../doc/eltf_params_template.xml | 151 + .../doc/eltf_params_updated.xml | 282 + .../eltf_params_updated_template_how_to_use.txt | 320 + .../doc/getting_enea_linux.xml | 185 + .../doc/jiraissues_override.xml | 32 + .../doc/known_bugs_and_limitations.xml | 377 ++ .../doc/main_changes.xml | 54 + .../doc/prerequisites.xml | 34 + .../doc/system_requirements.xml | 159 + doc/book-enea-linux-release-info/swcomp.mk | 10 + .../doc/application_development.xml | 282 + doc/book-enea-linux-user-guide/doc/book.xml | 22 + .../doc/eltf_params_template.xml | 151 + .../doc/eltf_params_updated.xml | 313 + .../eltf_params_updated_template_how_to_use.txt | 320 + .../doc/getting_enea_linux.xml | 145 + .../doc/getting_started.xml | 108 + .../doc/images/install_new_sw.png | Bin 0 -> 48962 bytes .../doc/images/install_new_sw.svg | 888 +++ .../doc/introduction.xml | 55 + doc/book-enea-linux-user-guide/doc/preface.xml | 157 + .../doc/prerequisites_and_requirements.xml | 101 + .../doc/real_time_in_enea_linux.xml | 26 + .../doc/troubleshooting.xml | 10 + .../doc/using_eclipse.xml | 1225 ++++ .../doc/using_enea_linux.xml | 806 +++ doc/book-enea-linux-user-guide/swcomp.mk | 10 + doc/docsrc_common/pardoc-distro.xml | 27 + doc/enea-linux-security-report | 1055 ++++ doc/gen_known_issues.py | 122 + doc/gen_pkgdiff.py | 237 + doc/init.mk | 100 + doc/initbuildboot.sh | 115 + doc/manifest_conf.mk | 7 + 44 files changed, 15141 insertions(+) create mode 100644 doc/Makefile create mode 100644 doc/README create mode 100644 doc/book-enea-linux-open-source/doc/README create mode 100644 doc/book-enea-linux-open-source/doc/about.xml create mode 100644 doc/book-enea-linux-open-source/doc/book.xml create mode 100644 doc/book-enea-linux-open-source/doc/licenses.xml create mode 100644 doc/book-enea-linux-open-source/swcomp.mk create mode 100644 doc/book-enea-linux-release-info/doc/about_release.xml create mode 100644 doc/book-enea-linux-release-info/doc/book.xml create mode 100644 doc/book-enea-linux-release-info/doc/build_boot_template.xml create mode 100644 doc/book-enea-linux-release-info/doc/eltf_params_template.xml create mode 100644 doc/book-enea-linux-release-info/doc/eltf_params_updated.xml create mode 100644 doc/book-enea-linux-release-info/doc/eltf_params_updated_template_how_to_use.txt create mode 100644 doc/book-enea-linux-release-info/doc/getting_enea_linux.xml create mode 100644 doc/book-enea-linux-release-info/doc/jiraissues_override.xml create mode 100644 doc/book-enea-linux-release-info/doc/known_bugs_and_limitations.xml create mode 100644 doc/book-enea-linux-release-info/doc/main_changes.xml create mode 100644 doc/book-enea-linux-release-info/doc/prerequisites.xml create mode 100644 doc/book-enea-linux-release-info/doc/system_requirements.xml create mode 100644 doc/book-enea-linux-release-info/swcomp.mk create mode 100644 doc/book-enea-linux-user-guide/doc/application_development.xml create mode 100644 doc/book-enea-linux-user-guide/doc/book.xml create mode 100644 doc/book-enea-linux-user-guide/doc/eltf_params_template.xml create mode 100644 doc/book-enea-linux-user-guide/doc/eltf_params_updated.xml create mode 100644 doc/book-enea-linux-user-guide/doc/eltf_params_updated_template_how_to_use.txt create mode 100644 doc/book-enea-linux-user-guide/doc/getting_enea_linux.xml create mode 100644 doc/book-enea-linux-user-guide/doc/getting_started.xml create mode 100644 doc/book-enea-linux-user-guide/doc/images/install_new_sw.png create mode 100644 doc/book-enea-linux-user-guide/doc/images/install_new_sw.svg create mode 100644 doc/book-enea-linux-user-guide/doc/introduction.xml create mode 100644 doc/book-enea-linux-user-guide/doc/preface.xml create mode 100644 doc/book-enea-linux-user-guide/doc/prerequisites_and_requirements.xml create mode 100644 doc/book-enea-linux-user-guide/doc/real_time_in_enea_linux.xml create mode 100644 doc/book-enea-linux-user-guide/doc/troubleshooting.xml create mode 100644 doc/book-enea-linux-user-guide/doc/using_eclipse.xml create mode 100644 doc/book-enea-linux-user-guide/doc/using_enea_linux.xml create mode 100644 doc/book-enea-linux-user-guide/swcomp.mk create mode 100644 doc/docsrc_common/pardoc-distro.xml create mode 100644 doc/enea-linux-security-report create mode 100644 doc/gen_known_issues.py create mode 100644 doc/gen_pkgdiff.py create mode 100644 doc/init.mk create mode 100644 doc/initbuildboot.sh create mode 100644 doc/manifest_conf.mk diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..f5ab81f --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,381 @@ +#2017-03-27 Replaced poky autocloning for parameter extraction with XML file updated by the ELTF test system +#2017-11-24 Added support for pdf download in eclipse + +#Path to this subsystem's root directory +SUBSYSROOT := $(shell pwd) + +# NOTE: MANIFESTHASH in manifest_conf.mk needs to be the final release tag before a release +# The manifest_conf.mk defines MANIFESTHASH and MANIFESTURL and PROFILE_NAME(on front+footers) +include manifest_conf.mk +MANIFESTDIR := $(shell echo "$(MANIFESTURL)" | sed 's/.*\///;s/\.git//') + +# Further down we extract the list of target manifest file names from the manifest itself + + + +# ***************** Generic docbuild.git auto-clone + s_docbuild symlink *** +# This also defines TMPCLONEROOT which optionally can be nondefault using BOOK_GLOBALCLONEROOT=yes or a path +include init.mk + +TMPCLONEROOT_MANIFEST := $(TMPCLONEROOT)/manifest + + +# ******************* AutoGenerated chapter from template and target READMEs ******* +BUILDBOOT_XML := book-enea-linux-release-info/doc/build_boot_generated.xml +BUILDBOOT_TEMPLATE := book-enea-linux-release-info/doc/build_boot_template.xml + +PKGDIFF_GEN_XML := book-enea-linux-release-info/doc/pkgdiff_generated.xml +JIRA_ISSUES_GEN_XML := book-enea-linux-release-info/doc/jiraissues_generated.xml + +MACHINE_LIST_XML := book-enea-linux-release-info/doc/machine_list_generated.xml + +ELTF_PARAMS_TEMPLATE := book-enea-linux-release-info/doc/eltf_params_template.xml +ELTF_PARAMS_UPDATED := book-enea-linux-release-info/doc/eltf_params_updated.xml + + + +# ----------------------------------------------------- +#Path to DocBook make files and templates +DOCBOOKMAKE = $(SUBSYSROOT)/s_docbuild/docmake +DOCBOOKTEMPLATE = $(SUBSYSROOT)/s_docbuild/template + +#Path to the OLINK database including leading part of file name (will add -$(FORMAT).db) +DOCBOOKOLINKDB_BASE = $(SUBSYSROOT)/s_docbuild/olinkdb/olink-targetdb-ose5-master + +DOCBOOK_OLINKS ?= yes +DOCBOOK_FO_USEFOP ?= yes +DOCBOOK_TO_BOOKDIR ?= yes +DOCBOOK_CLEANTMP ?= yes + +#Components (books) in this subsystem. Now use all books found here +# COMPONENTS := book-enea-linux-release-info book-enea-linux-open-source +# COMPONENTS += book-enea-linux-eclipse-open-source +COMPONENTS := $(shell ls -d book-enea* ) + +# -------------------------------------------------------------- +ifeq ($(VERBOSE),yes) +VERB := +else +VERB := @ +endif +MAKEFLAGS += --no-print-directory +MAKEFLAGS += --directory $(SUBSYSROOT) +MAKEFLAGS += --no-builtin-rules --no-builting-variables + +# Skip xml validation to make it possible to include xml files with unresolved links +VALIDATE = no + +# BL_LABEL is either given on make command line or using BOOK_VER which have defaults below or a timestamp + +# ****************************************************************** + +# Export all parameters including those on the command line +export + +.PHONY: doc books docusage init initbuild initmanifest initpardoc initbuildboot dist + + +docusage: + @echo 'make docusage #Shows this help text' + @echo ' DOCBOOK_TOOLS_VERSIONS=yes #Displays./testeltfver.sh DocBook tools versions in this machine' + @echo 'make doc #Builds doc. ALSO automatically does all inits if needed' + @echo 'make dist BOOK_DIST_DIR=xx/doc #Builds doc as above and copies results to BOOK_DIST_DIR' + @echo ' # Does not work with DOCBOOK_TO_BOOKDIR or BOOK_BUILD_DIR' + @echo ' BOOK_DIST_ECLIPSE=yes #Currently EclipseHelp formated doc will not be in BOOK_DIST_DIR' + @echo ' # unless BOOK_DIST_ECLIPSE is set to yes' + @echo 'make init #Init all needed init* below' + @echo 'make initbuild #Init s_docbuild Docbook build system and central files' + @echo 'make initmanifest #Init s_manifest by cloning, to detect which targets are included' + @echo 'make initpardoc #Init s_docsrc_common with extracted parameters/' + @echo 'make initbuildboot #Init build_boot chapter from READMEs and template in release info' + @echo 'make initissues #Init known issues section from Jira' + @echo 'make eltf #Test - displays all ELTF_xxx variables that ELTF shall replace' + @echo ' MANIFESTHASH=xxxxx #Option for all inits above to use nondefault manifest version' + @echo ' #It shall either be ref/tags/ or a hashvalue' + @echo ' #Configured tag or hashvalue $(MANIFESTHASH)' + @echo ' #Configured MANIFESTURL $(MANIFESTURL)' + @echo ' #Configured PROFILE_NAME $(PROFILE_NAME)' + @echo ' DOCBOOK_CLEANTMP=no #Option to keep temp files in doc/ and tmp/' + @echo ' BOOK_GLOBALCLONEROOT=yes #Option for all init above to clone all outside the doc directory' + @echo ' BOOK_GLOBALCLONEROOT=otherpath #Option for all init above to clone all to given path' + @echo 'make clean #Clean results and all s_*, but not any external clones' + @echo '' + @echo 'Optional parameters for make doc:' + @echo ' COMP= #Component (book) to build. Book component names are book-*' + @echo ' #Default component/s:' + @echo ' $(COMPONENTS)' + @echo ' FORMAT= #One of: pdf, html, or eclipse (Default all are built)' + @echo ' BL_LABEL= #Becomes footer in book (default: from poky enea.conf MAJORMINOR' + @echo ' # and with profile name taken from the manifest repo name)' + @echo ' DOCBOOK_TO_BOOKDIR=no #(default yes) Avoid moving result to book directory' + @echo ' # and avoid erasing common doc and tmp directories' + @echo ' BOOKFORCE=yes #Force rebuilding (ignore dependency on file times or BL_LABEL)' + @echo ' # Dependency only works if common doc directory is kept' + @echo ' BOOKCONDITION="xx;yy;.." #Include XML elements with condition any of xx or yy' + @echo ' # (if rebuilding, BOOKFORCE=yes may be needed)' + @echo ' # Empty=only default. none=none, all=everything.' + @echo ' BOOKDEFAULTCONDITION #Default conditions, if no BOOKCONDITION. Used in book-*/swcomp.mk' + @echo ' SHOW_COMMENTS=yes #For proofread. Unhide .. comments Only PDF' + @echo ' BOOKVERBOSE=yes #Verbose info building books' + @echo ' DOCBOOK_OLINKS=no #Avoid the olink database in Makefile (in book not using it)' + @echo ' DOCBOOK_OLINK_TARGETDB=only #Build a target db for this book (for links into it)' + @echo ' DOCBOOK_OLINK_TARGETDB=yes #Build a target db AND build the book' + @echo ' #Master olinkdb defined in this Makefile, one per generated format, is:' + @echo ' $(DOCBOOKOLINKDB_BASE)_*.db' + @echo ' Typical examples:' + @echo ' make doc Creates all books, all formats' + @echo ' make doc COMP=book-xxxx FORMAT=html' + @echo ' make doc COMP=book-xxxx FORMAT=pdf' + @echo ' make doc BL_LABEL="Version 1.2.3" Creates all with version in footers and front' + @echo '' + @echo ' Requires docbook-xsl-1.76.1 or later, docbook-xml 4.2, svg1.1, fop-1.0 + fop-hyph.jar' + @echo ' fop + the separate fop-hyph can be found together in package "libfop-java"' + @echo ' otherwise fetch fop-hyph.jar and place in same place as fop.jar' + @echo ' Requires libxml2-2.7.8 or later, libxslt-1.1.26 or later' + @echo ' Requires java machine to run fop (creating PDF). jar for optional FORMAT=eclipse' + @echo ' Without jar, the optional EclipseHelp format can not be built' + @echo ' tools_book_standalone.mk => libxml2, libxslt, and fop (and to catalog-el.xml)' + @echo ' catalog-el.xml => svg, docbook-xml, docbook-xsl' +ifeq ($(DOCBOOK_TOOLS_VERSIONS),yes) + $(VERB)$(MAKE) -f $(DOCBOOKMAKE)/tools_book_standalone.mk book_tools_versions +endif + +# We rely on make doing these in order left to right +init: initbuild initcommon initmanifest initpardoc initbuildboot initpkgdiff initissues +pullall: pullbuild + +# If no COMP, iterate over books-* in COMPONENTS with make doc +ifeq ($(COMP),) +doc: +ifneq ($(filter book-%, $(COMPONENTS)),) + $(VERB)for comp in $(filter book-%, $(COMPONENTS)); do \ + $(MAKE) doc COMP=$$comp; \ + done +endif + +else +include $(SUBSYSROOT)/$(COMP)/swcomp.mk + +doc: books + @# +endif + +dist: doc + @echo "Copying resulting built documents to $(BOOK_DIST_DIR)" + $(VERB)if [ "$(BOOK_DIST_DIR)" = "" ]; then echo "ERROR: Missing BOOK_DIST_DIR parameter, typically shall be xxx/doc"; exit 10; fi + $(VERB)if [ ! -d "`dirname $(BOOK_DIST_DIR)`" ]; then echo "ERROR: Missing parent for BOOK_DIST_DIR"; exit 10; fi + $(VERB)if [ -f "$(BOOK_DIST_DIR)/Makefile" ]; then echo "ERROR: Wrong BOOK_DIST_DIR, contains a Makefile?"; exit 10; fi + $(VERB)if [ ! -d "$(BOOK_DIST_DIR)" ]; then mkdir -p "$(BOOK_DIST_DIR)" ; fi + $(VERB)for book in $(COMPONENTS); do \ + if ls -d $$book/book*.pdf >/dev/null 2>&1; then cp --preserve=timestamps $$book/book*.pdf "$(BOOK_DIST_DIR)" ; fi ; \ + if ls -d $$book/html >/dev/null 2>&1; then cp -r --preserve=timestamps $$book/html "$(BOOK_DIST_DIR)" ; fi ; \ + if [ "$(BOOK_DIST_ECLIPSE)" = "yes" ]; then \ + if ls -d $$book/eclipse >/dev/null 2>&1; then cp -r --preserve=timestamps $$book/eclipse "$(BOOK_DIST_DIR)" ; fi ; \ + fi ; \ + done + +# Default FORMATs +ifeq ($(FORMAT),) +FORMAT=html pdf eclipse +endif + + +books: init +# BOOKPACKAGES is defined in all book-*/swcomp.mk + $(VERB)DISTRO_VERSION=`egrep '"EneaLinux_REL_VER">' $(ELTF_PARAMS_UPDATED) | sed 's/.*//;s/<\/phrase>.*//'` ; \ + BOOKVER="Profile $(PROFILE_NAME)-$$DISTRO_VERSION" ; \ + for book in $(BOOKPACKAGES); do \ + for format in $(FORMAT); do \ + $(MAKE) -f $(DOCBOOKMAKE)/make_docbook_standalone.mk BOOK=$$book FORMAT=$$format BOOK_VER="$$BOOKVER" books || exit 10; \ + if [ $$format = eclipse ]; then \ + if [ ! -f $$COMP/$$book.pdf ]; then \ + $(MAKE) -f $(DOCBOOKMAKE)/make_docbook_standalone.mk BOOK=$$book FORMAT=pdf BOOK_VER="$$BOOKVER" books || exit 10; \ + fi; \ + cp $$COMP/$$book.pdf $$COMP/eclipse/plugins/com.enea.doc.book-*/. ; \ + fi ; \ + done ; \ + done +ifeq ($(DOCBOOK_TO_BOOKDIR),yes) + $(VERB)rm -rf doc tmp +else +ifeq ($(DOCBOOK_CLEANTMP),yes) +# keep only doc/pdf/book-*.pdf doc/eclipse/plugins/com.enea.doc.book-* but delete doc/eclipse/plugins/com.enea.doc.book-*/done* + $(VERB)rm -rf tmp 2>/dev/null ; rm -rf doc/pdf/book-*/ ; rm -rf doc/eclipse/plugins/com.enea.doc.book-*/done* 2>/dev/null +endif +endif + +# cleaninit cleans ALL tmpcommon and all s_* +clean: cleaninit cleanbuildboot cleanpkgdiff cleanissues cleanmanifest + @echo "Cleaning build results and temporary files" + $(VERB)rm -rf doc tmp 2>/dev/null +ifneq ($(filter book-%, $(COMPONENTS)),) + $(VERB)for comp in $(filter book-%, $(COMPONENTS)); do \ + rm -rf $$comp/book*.pdf $$comp/html $$comp/eclipse 2>/dev/null; \ + done + $(VERB)rm -rf doc tmp 2>/dev/null +endif + + +# ****************************************************************** +# ****************** SUPPORT FOR TARGETS *************************** +initmanifest: s_manifest + + +# ----------------------------------------- +# We only clone the manifest to be able to autodetect which targets are in it +# git clone requires only the tag string e.g. EL6, not the entire ref/tags/EL6 that repo requires +# git clone -b hashvalue is not supported. We must first clone, then git checkout hashvalue +# These steps work also for a tag so we could use the same stepwise code + +s_manifest: $(TMPCLONEROOT_MANIFEST) + $(VERB)rm s_manifest 2>/dev/null; ln -s $(TMPCLONEROOT_MANIFEST) s_manifest + +cleanmanifest: + @echo "Cleaning generated manifest files" + $(VERB)rm -f $(MACHINE_LIST_XML) 2>/dev/null + $(VERB)rm -rf "$(TMPCLONEROOT_MANIFEST)" s_manifest 2>/dev/null + +$(TMPCLONEROOT_MANIFEST): + $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi + $(VERB)if [ ! -d "$(TMPCLONEROOT_MANIFEST)" ]; then mkdir -p "$(TMPCLONEROOT_MANIFEST)" ; fi + $(VERB) MBRANCH=`echo "$(MANIFESTHASH)" | sed 's/.*\///'`; \ + echo "**** Cloning manifest version $$MBRANCH of $(MANIFESTURL) in $(TMPCLONEROOT_MANIFEST)" ; \ + cd "$(TMPCLONEROOT_MANIFEST)"; git clone $(MANIFESTURL) ; cd $(MANIFESTDIR) ; git checkout $(MANIFESTHASH) + $(VERB)if [ ! -d "$(TMPCLONEROOT_MANIFEST)/$(MANIFESTDIR)" ]; then echo "ERROR: Missing $(TMPCLONEROOT_MANIFEST)/$(MANIFESTDIR)"; exit 10 ; fi ; \ + TARGETDEFAULTXMLS=`cd $(TMPCLONEROOT_MANIFEST)/$(MANIFESTDIR); ls -1 */default.xml 2>/dev/null` ; \ + TARGET_LIST=`echo "$$TARGETDEFAULTXMLS" | sed 's/\/default.xml//;s/^/# export MACHINE=/'` ; \ + echo "" >$(MACHINE_LIST_XML) ; \ + echo ">$(MACHINE_LIST_XML) ; \ + echo "\"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd\">" >>$(MACHINE_LIST_XML) ; \ + echo "" >>$(MACHINE_LIST_XML) ; \ + echo "# Set MACHINE to ONE of the targets in this release!" >>$(MACHINE_LIST_XML) ; \ + echo "$$TARGET_LIST" >>$(MACHINE_LIST_XML) ; \ + echo "" >>$(MACHINE_LIST_XML) + + +# **************************************************************************** +# ******************** SUPPORT FOR dynamic pardoc with added parameters ****** +# pardoc-distro can contain MAJOR.MINOR-xxxxx keeping -xxxx when replacing MINOR.MINOR from enea.conf + +PATH_DOCSRC_COMMON = $(SUBSYSROOT)/s_docsrc_common +NAME_DOCSRC_COMMON = docsrc_common +TMPCLONEROOT_DOCSRC_COMMON := $(TMPCLONEROOT)/$(NAME_DOCSRC_COMMON) +TMPPARDOC := $(TMPCLONEROOT_DOCSRC_COMMON)/pardoc-distro.xml + +initpardoc: s_docsrc_common + +cleanpardoc: + @echo "Cleaning dynamic parameters" + $(VERB)rm -rf $(TMPCLONEROOT_DOCSRC_COMMON) ; rm s_docsrc_common + + +s_docsrc_common: $(TMPCLONEROOT_DOCSRC_COMMON) + $(VERB)rm s_docsrc_common 2>/dev/null; ln -s $(TMPCLONEROOT_DOCSRC_COMMON) s_docsrc_common + +$(TMPCLONEROOT_DOCSRC_COMMON): + $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi + $(VERB)if [ ! -d $(TMPCLONEROOT_DOCSRC_COMMON) ]; then mkdir -p $(TMPCLONEROOT_DOCSRC_COMMON) ; fi + @echo "**** Copy docsrc_common/ files to $(TMPCLONEROOT_DOCSRC_COMMON)" + $(VERB)cat docsrc_common/pardoc-distro.xml >$(TMPPARDOC) + +# **************************************************************************** +# ***** Create XML chapter with build/boot commands from all README files in manifest + +initbuildboot: $(BUILDBOOT_XML) + +cleanbuildboot: + @echo "Cleaning generated build-boot command document file" + $(VERB)rm -f $(BUILDBOOT_XML) 2>/dev/null + + +$(BUILDBOOT_XML): $(BUILDBOOT_TEMPLATE) + @echo "**** Creating $(BUILDBOOT_XML) from READMEs" + $(VERB)INITBB_CMD=initbuildboot.sh ; \ + if [ -f "$$INITBB_CMD" ]; then \ + sh "$$INITBB_CMD" -xml $(BUILDBOOT_XML) -template $(BUILDBOOT_TEMPLATE) -readmebasedir s_manifest/$(MANIFESTDIR); \ + else \ + echo "ERROR: Missing $$INITBB_CMD, can not create $(BUILDBOOT_XML)"; exit 10; \ + fi + +# **************************************************************************** +# ***** Create Package DIFF XML section + +initpkgdiff: $(PKGDIFF_GEN_XML) + +cleanpkgdiff: + @echo "Cleaning generated package diff document file" + $(VERB)rm -f $(PKGDIFF_GEN_XML) 2>/dev/null + +$(PKGDIFF_GEN_XML): + $(VERB)PREVIOUS_BL=`egrep '"prev_baseline"' docsrc_common/pardoc-distro.xml | sed 's/^.*//;s/<\/phrase>.*$$//'` ; \ + echo "**** Generating $(PKGDIFF_GEN_XML) compared to $$PREVIOUS_BL, using gen_pkgdiff.py" ; \ + python gen_pkgdiff.py >$(PKGDIFF_GEN_XML) + + +# **************************************************************************** +# ***** Create Jira Issues XML section for the known bugs chapter + +.PHONY: $(JIRA_ISSUES_GEN_XML) +# We want new issue list to be generated also at build, not only at init + +initissues: $(JIRA_ISSUES_GEN_XML) + + +cleanissues: + @echo "Cleaning generated known issues document file" + $(VERB)rm -f $(JIRA_ISSUES_GEN_XML) 2>/dev/null + +$(JIRA_ISSUES_GEN_XML): + @echo "**** Generating $(JIRA_ISSUES_GEN_XML), fetching from Jira using gen_known_issues.py" + $(VERB)python gen_known_issues.py >$(JIRA_ISSUES_GEN_XML) + +# **************************************************************************** + +# +# All ELTF_ variables names only has upper case, underline and digits +eltf: + @echo "# make eltf extracts and displays all ELTF_ variables found here" + @echo "# in $(SUBSYSROOT)/$(ELTF_PARAMS_TEMPLATE)" + @echo "# Replace all variables, creating a new eltf*updated.xml file from the eltf*template.xml" + @echo "#" + @echo "# Only replace + push the result file $(ELTF_PARAMS_UPDATED), IF IT WILL BE CHANGED." + @echo "#" + @echo "# IMPORTANT: See eltf_params_updated_template_how_to_use.txt for requirements and details!" + @echo "# Below is only a summary!" + @echo "#" + @echo "# ELTF_ variables must be UNIQUE, e.g. a variable must not be a part of another variable" + @echo "#" + @echo "# ELTF_PL_* and ELTF_T_PL_* shall have the format for programlisting and are often multiline - see below." + @echo "#" + @echo "# ELTF_*_URL and ELTF_*_TXTURL are the URL part and TXT part of ulink; those shall be exactly identical," + @echo "# unless the URL is very very long." + @echo "#" + @echo "# ELTF_T_* are target (MACHINE) variables in one subsection, replace with machine specific strings." + @echo "#" + @echo "# Append more target subsections to *updated.xml, if more than one target is in a release!" + @echo "# Replace the line with appended" + @echo "# complete target section elements copied before the variables are replaced." + @echo "# In each target section, replace the ELTF_T* variables with machine dependent strings" + @echo "# Append final lines seen after " + @echo "# but that would often only be two final lines" + @echo "#" + @echo "# ELTF_ Variables: Replace each variable with a string, for ELTF_*PL* it can be multiline" + @echo "# DO NOT use any leading or trailing spaces and DO NOT use TABs" + @echo "#" + @echo "# ELTF_ Everywhere: Only 7-bit ASCII inside the string replacing a variable. Translate characters" + @echo "# like & < > to & < > etc." + @echo "# unless real XML shall be inserted like when entire sections are appended." + @echo "#" + @echo "# ELTF_ programlisting, variables with PL in the name: Max line length < 80 char." + @echo "# Use backslash + indent-leading-spaces for continuation lines." + @echo "# Multiline. No trailing spaces on any line inside the programlisting." + @echo "#" + @echo "# The following variables shall be replaced with suitable contents (egrep from the template):" + @echo "# Again: See details in eltf_params_updated_template_how_to_use.txt" + @echo "# including also examples of contents of each variable!" + @echo "#" + $(VERB)( egrep 'ELTF_[A-Z_0-9][A-Z_0-9]*' $(ELTF_PARAMS_TEMPLATE) 2>/dev/null | sed 's/ELTF_/\nELTF_/g' | egrep 'ELTF_[A-Z_0-9][A-Z_0-9]*' | sed 's/\(ELTF_[A-Z_0-9][A-Z_0-9]*\).*/\1/' ) | sort + @echo "# The make eltf also here extracts any left-over ELTF variables from $(ELTF_PARAMS_UPDATED)" + @echo "# It should not be any left here:" + $(VERB)( egrep 'ELTF_[A-Z_0-9][A-Z_0-9]*' $(ELTF_PARAMS_UPDATED) 2>/dev/null | sed 's/ELTF_/\nELTF_/g' | egrep 'ELTF_[A-Z_0-9][A-Z_0-9]*' | sed 's/\(ELTF_[A-Z_0-9][A-Z_0-9]*\).*/\1/' ) | sort + @echo "# If you see any left-over above, something is wrong" diff --git a/doc/README b/doc/README new file mode 100644 index 0000000..957f34a --- /dev/null +++ b/doc/README @@ -0,0 +1,21 @@ + +rt profile + +___Prerequisites-commands:Ubuntu16.04.5LTS +sudo apt-get -y update +udo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping +___END + +___RepoInstall-commands:Ubuntu16.04.5LTS +mkdir -p ~/bin +curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo +chmod a+x ~/bin/repo +export PATH=~/bin:$PATH +___END + +___RepoClone-commands: +mkdir enea-linux +cd enea-linux +repo init -u git@git.enea.com:linux/manifests/el_manifests-rt.git -b refs/tags/Enea_Linux_8.0 -m /default.xml +repo sync +___END diff --git a/doc/book-enea-linux-open-source/doc/README b/doc/book-enea-linux-open-source/doc/README new file mode 100644 index 0000000..c40a2d9 --- /dev/null +++ b/doc/book-enea-linux-open-source/doc/README @@ -0,0 +1,4 @@ +The licenses.xml in the git repository of Enea Linux Open Source Report +is the frozen version belonging to the last official release of Enea Linux. +The contents must be generated from the release script to obtain the latest +lists of packages and licenses. diff --git a/doc/book-enea-linux-open-source/doc/about.xml b/doc/book-enea-linux-open-source/doc/about.xml new file mode 100644 index 0000000..d4b6437 --- /dev/null +++ b/doc/book-enea-linux-open-source/doc/about.xml @@ -0,0 +1,12 @@ + + + + About this Report + + This document contains the open source and license information + pertaining to packages provided with Enea Linux . + \ No newline at end of file diff --git a/doc/book-enea-linux-open-source/doc/book.xml b/doc/book-enea-linux-open-source/doc/book.xml new file mode 100644 index 0000000..5b71cd0 --- /dev/null +++ b/doc/book-enea-linux-open-source/doc/book.xml @@ -0,0 +1,15 @@ + + +]> + + <trademark class="registered">Enea</trademark> Linux Open Source Report + Release Version + + + + + + diff --git a/doc/book-enea-linux-open-source/doc/licenses.xml b/doc/book-enea-linux-open-source/doc/licenses.xml new file mode 100644 index 0000000..541b766 --- /dev/null +++ b/doc/book-enea-linux-open-source/doc/licenses.xml @@ -0,0 +1,6521 @@ + + + + Packages and Licenses + +
+ Packages + + + + + + + + + + + + + + + + Package Name + + Version + + Description + + License + + + + + + acl + + 2.2.52 + + Utilities for managing POSIX Access Control Lists. + + LGPL-2.1, GPL-2.0 + + + + acpica + + 20170303 + + The ACPI Component Architecture (ACPICA) project provides + an OS-independent reference implementation of the Advanced + Configuration and Power Interface Specification (ACPI). ACPICA + code contains those portions of ACPI meant to be directly + integrated into the host OS as a kernel-resident subsystem and a + small set of tools to assist in developing and debugging ACPI + tables. + + BSD, GPL-2.0 + + + + alsa-lib + + 1.1.5 + + ALSA sound library. + + LGPL-2.1, GPL-2.0 + + + + apt + + 1.2.24 + + Advanced front-end for dpkg. + + GPL-2.0 + + + + attr + + 2.4.47 + + Utilities for manipulating filesystem extended + attributes. + + LGPL-2.1, GPL-2.0 + + + + autoconf-archive + + 2016.09.16 + + a collection of freely re-usable Autoconf macros. + + GPL-3.0-with-autoconf-exception + + + + autoconf + + 2.69 + + Autoconf is an extensible package of M4 macros that produce + shell scripts to automatically configure software source code + packages. Autoconf creates a configuration script for a package + from a template file that lists the operating system features that + the package can use in the form of M4 macro calls. + + GPL-2.0, GPL-3.0 + + + + automake + + 1.15.1 + + Automake is a tool for automatically generating + `Makefile.in' files compliant with the GNU Coding Standards. + Automake requires the use of Autoconf. + + GPL-2.0 + + + + base-files + + 3.0.14 + + The base-files package creates the basic system directory + structure and provides a small set of key configuration files for + the system. + + GPL-2.0 + + + + base-passwd + + 3.5.29 + + The master copies of the user database files (/etc/passwd + and /etc/group). The update-passwd tool is also provided to keep + the system databases synchronized with these master files. + + GPL-2.0 + + + + bash-completion + + 2.7 + + Programmable Completion for Bash 4. + + GPL-2.0 + + + + bash + + 4.4.12 + + An sh-compatible command language interpreter. + + GPL-3.0 + + + + bc + + 1.06 + + Arbitrary precision calculator language. + + GPL-2.0, LGPL-2.1 + + + + binutils-cross-x86_64 + + 2.30 + + The GNU Binutils are a collection of binary tools. The main + ones are ld (GNU Linker) and as (GNU Assembler). This package also + includes addition tools such as addr2line (Converts addresses into + filenames and line numbers) ar (utility for creating modifying and + extracting archives) nm (list symbols in object files) objcopy + (copy and translate object files) objdump (Display object + information) and other tools and related libraries. + + GPL-3.0 + + + + binutils + + 2.30 + + The GNU Binutils are a collection of binary tools. The main + ones are ld (GNU Linker) and as (GNU Assembler). This package also + includes addition tools such as addr2line (Converts addresses into + filenames and line numbers) ar (utility for creating modifying and + extracting archives) nm (list symbols in object files) objcopy + (copy and translate object files) objdump (Display object + information) and other tools and related libraries. + + GPL-3.0 + + + + bison + + 3.0.4 + + Bison is a general-purpose parser generator that converts + an annotated context-free grammar into an LALR(1) or GLR parser + for that grammar. Bison is upward compatible with Yacc: all + properly-written Yacc grammars ought to work with Bison with no + change. Anyone familiar with Yacc should be able to use Bison with + little trouble. + + GPL-3.0 + + + + bmap-tools + + 3.4 + + "Bmap-tools - tools to generate block map (AKA bmap) and + flash images using bmap. Bmaptool is a generic tool for creating + the block map (bmap) for a file and copying files using the block + map. The idea is that large file containing unused blocks like raw + system image files can be copied or flashed a lot faster with + bmaptool than with traditional tools like ""dd"" or + ""cp""." + + GPL-2.0 + + + + btrfs-tools + + 4.13.3 + + Btrfs is a new copy on write filesystem for Linux aimed at + implementing advanced features while focusing on fault tolerance + repair and easy administration. This package contains utilities + (mkfs fsck btrfsctl) used to work with btrfs and an utility + (btrfs-convert) to make a btrfs filesystem from an ext3. + + GPL-2.0 + + + + busybox + + 1.27.2 + + BusyBox combines tiny versions of many common UNIX + utilities into a single small executable. It provides minimalist + replacements for most of the utilities you usually find in GNU + fileutils shellutils etc. The utilities in BusyBox generally have + fewer options than their full-featured GNU cousins; however the + options that are included provide the expected functionality and + behave very much like their GNU counterparts. BusyBox provides a + fairly complete POSIX environment for any small or embedded + system. + + GPL-2.0, BSD-4-Clause + + + + bzip2 + + 1.0.6 + + bzip2 compresses files using the Burrows-Wheeler + block-sorting text compression algorithm and Huffman coding. + Compression is generally considerably better than that achieved by + more conventional LZ77/LZ78-based compressors and approaches the + performance of the PPM family of statistical compressors. + + BSD-4-Clause + + + + ca-certificates + + 20170717 + + This package includes PEM files of CA certificates to allow + SSL-based applications to check for the authenticity of SSL + connections. This derived from Debian's CA Certificates. + + GPL-2.0, MPL-2.0 + + + + cdrtools + + 3.01a31 + + A set of tools for CD recording including cdrecord. + + GPL-2.0, LGPL-2.1 + + + + coreutils + + 8.29 + + The GNU Core Utilities provide the basic file shell and + text manipulation utilities. These are the core utilities which + are expected to exist on every system. + + GPL-3.0 + + + + cross-localedef + + 2.27 + + Cross locale generation tool for glibc. + + LGPL-2.1 + + + + cryptodev-linux + + 1.9 + + A /dev/crypto device driver header file. + + GPL-2.0 + + + + curl + + 7.61.0 + + Command line tool and library for client-side URL + transfers. + + MIT + + + + cwautomacros + + 20110201 + + Collection of autoconf m4 macros. + + GPL-2.0 + + + + db + + 5.3.28 + + Berkeley Database v5. + + Sleepycat + + + + dbus-glib + + 0.108 + + GLib bindings for the D-Bus message bus that integrate the + D-Bus library with the GLib thread abstraction and main + loop. + + AFL-2.0, GPL-2.0 + + + + dbus-test + + 1.12.2 + + D-Bus test package (for D-bus functionality testing + only). + + AFL-2.0, GPL-2.0 + + + + dbus + + 1.12.2 + + "D-Bus is a message bus system a simple way for + applications to talk to one another. In addition to interprocess + communication D-Bus helps coordinate process lifecycle; it makes + it simple and reliable to code a \""single instance\"" application + or daemon and to launch applications and daemons on demand when + their services are needed." + + AFL-2.0, GPL-2.0 + + + + debianutils + + 4.8.4 + + Miscellaneous utilities specific to Debian. + + GPL-2.0 + + + + depmodwrapper + + 1.0 + + Wrapper script for the Linux kernel module dependency + indexer. + + MIT + + + + diffutils + + 3.6 + + Diffutils contains the GNU diff diff3 sdiff and cmp + utilities. These programs are usually used for creating patch + files. + + GPL-3.0 + + + + dosfstools + + 4.1 + + DOS FAT Filesystem Utilities. + + GPL-3.0 + + + + dpkg + + 1.18.24 + + Package maintenance system from Debian. + + GPL-2.0 + + + + dropbear + + 2017.75 + + A lightweight SSH and SCP implementation. + + MIT, BSD-3-Clause, BSD-2-Clause, PD + + + + dtc + + 1.4.5 + + The Device Tree Compiler is a tool used to manipulate the + Open-Firmware-like device tree used by PowerPC kernels. + + GPL-2.0, BSD + + + + dwarfsrcfiles + + 1.0 + + A small utility for printing debig source file locations + embedded in binaries. + + GPL-2.0 + + + + e2fsprogs + + 1.43.8 + + The Ext2 Filesystem Utilities (e2fsprogs) contain all of + the standard utilities for creating fixing configuring and + debugging ext2 filesystems. + + GPL-2.0, LGPL-2.0, BSD, MIT + + + + elfutils + + 0.170 + + Utilities and libraries for handling compiled object + files. + + GPL-3.0, Elfutils-Exception + + + + enea-image-standard + + 1.0 + + Base image for the Standard profile + + MIT + + + + expat + + 2.2.5 + + Expat is an XML parser library written in C. It is a + stream-oriented parser in which an application registers handlers + for things the parser might find in the XML document (like start + tags) + + MIT + + + + file + + 5.32 + + File attempts to classify files depending on their contents + and prints a description if a match is found. + + BSD + + + + flex + + 2.6.0 + + Flex is a fast lexical analyser generator. Flex is a tool + for generating programs that recognize lexical patterns in + text. + + BSD + + + + freetype + + 2.9 + + FreeType is a software font engine that is designed to be + small efficient highly customizable and portable while capable of + producing high-quality output (glyph images). It can be used in + graphics libraries display servers font conversion tools text + image generation tools and many other products as well. + + FreeType, GPL-2.0 + + + + gawk + + 4.2.1 + + The GNU version of awk a text processing utility. Awk + interprets a special-purpose programming language to do quick and + easy text pattern matching and reformatting jobs. + + GPL-3.0 + + + + gcc-cross-initial-x86_64 + + 7.3.0 + + GNU cc and gcc C compilers. + + GPL-3.0-with-GCC-exception, GPL-3.0 + + + + gcc-cross-x86_64 + + 7.3.0 + + GNU cc and gcc C compilers. + + GPL-3.0-with-GCC-exception, GPL-3.0 + + + + gcc-source-7.3.0 + + 7.3.0 + + GNU cc and gcc C compilers. + + GPL-3.0-with-GCC-exception, GPL-3.0 + + + + gcc + + 7.3.0 + + Runtime libraries from GCC. + + GPL-3.0-with-GCC-exception + + + + gdbm + + 1.14.1 + + Key/value database library with extensible hashing. + + GPL-3.0 + + + + gettext-minimal + + 0.19.8.1 + + Contains the m4 macros sufficient to support building + autoconf/automake. This provides a significant build time speedup + by the removal of gettext-native from most dependency chains (now + only needed for gettext for the target). + + FSF-Unlimited + + + + gettext + + 0.19.8.1 + + GNU gettext is a set of tools that provides a framework to + help other programs produce multi-lingual messages. These tools + include a set of conventions about how programs should be written + to support message catalogs a directory and file naming + organization for the message catalogs themselves a runtime library + supporting the retrieval of translated messages and a few + stand-alone programs to massage in various ways the sets of + translatable and already translated strings. + + GPL-3.0, LGPL-2.1 + + + + glib-2.0 + + 2.54.3 + + GLib is a general-purpose utility library which provides + many useful data types macros type conversions string utilities + file utilities a main loop abstraction and so on. + + LGPL-2.1, BSD, PD + + + + glibc-locale + + 2.27 + + Locale data from glibc. + + GPL-2.0, LGPL-2.1 + + + + glibc + + 2.27 + + The GNU C Library is used as the system C library in most + systems with the Linux kernel. + + GPL-2.0, LGPL-2.1 + + + + gmp + + 6.1.2 + + GMP is a free library for arbitrary precision arithmetic + operating on signed integers rational numbers and floating point + numbers + + GPL-2.0, LGPL-3.0 + + + + gnome-desktop-testing + + 2014.1 + + Test runner for GNOME-style installed tests. + + LGPL-2.0 + + + + gnu-config + + 20150728 + + Tool that installs the GNU config.guess / config.sub into a + directory tree + + GPL-3.0-with-autoconf-exception + + + + gnu-efi + + 3.0.6 + + Libraries for producing EFI binaries. + + GPL-2.0, BSD-2-Clause + + + + gnutls + + 3.6.1 + + GNU Transport Layer Security Library. + + GPL-3.0, LGPL-2.1 + + + + gperf + + 3.1 + + GNU gperf is a perfect hash function generator + + GPL-3.0 + + + + gptfdisk + + 1.0.3 + + GPT fdisk is a disk partitioning tool loosely modeled on + Linux fdisk but used for modifying GUID Partition Table (GPT) + disks. The related FixParts utility fixes some common problems on + Master Boot Record (MBR) disks. + + GPL-2.0 + + + + grep + + 3.1 + + GNU grep utility. + + GPL-3.0 + + + + groff + + 1.22.3 + + The groff (GNU troff) software is a typesetting package + which reads plain text mixed with formatting commands and produces + formatted output. + + GPL-3.0 + + + + grub-bootconf + + 1.00 + + Basic grub.cfg for use in EFI systems. + + MIT + + + + grub-efi + + 2.02 + + GRUB2 is the next generaion of a GPLed bootloader intended + to unify bootloading across x86 operating systems. In addition to + loading the Linux kernel it implements the Multiboot standard + which allows for flexible loading of multiple boot images. + + GPL-3.0 + + + + grub + + 2.02 + + GRUB2 is the next generaion of a GPLed bootloader intended + to unify bootloading across x86 operating systems. In addition to + loading the Linux kernel it implements the Multiboot standard + which allows for flexible loading of multiple boot images. + + GPL-3.0 + + + + gtk-doc + + 1.27 + + Gtk-doc is a set of scripts that extract specially + formatted comments from glib-based software and produce a set of + html documentation files from them + + GPL-2.0 + + + + inputproto + + 2.3.2 + + This package provides the wire protocol for the X Input + extension. The extension supports input devices other then the + core X keyboard and pointer. + + MIT + + + + intltool + + 0.51.0 + + Utility scripts for internationalizing XML. + + GPL-2.0 + + + + iucode-tool + + 2.1.2 + + iucode_tool is a program to manipulate Intel i686 and + X86-64 processor microcode update collections and to use the + kernel facilities to update the microcode on Intel system + processors. It can load microcode data files in text and binary + format sort list and filter the microcode updates contained in + these files write selected microcode updates to a new file in + binary format or upload them to the kernel. It operates on + microcode data downloaded directly from Intel: + http://feeds.downloadcenter.intel.com/rss/?p=2371 + + GPL-2.0 + + + + kbd + + 2.0.4 + + Keytable files and keyboard utilities. + + GPL-2.0 + + + + kbproto + + 1.0.7 + + This package provides the wire protocol for the X Keyboard + extension. This extension is used to control options related to + keyboard handling and layout. + + MIT + + + + kern-tools + + 0.2 + + Tools for managing Yocto Project style branched + kernels. + + GPL-2.0 + + + + keymaps + + 1.0 + + Keymaps and initscript to set the keymap on bootup. + + GPL-2.0 + + + + kmod + + 25 + + kmod is a set of tools to handle common tasks with Linux + kernel modules like insert remove list check properties resolve + dependencies and aliases. + + GPL-2.0, LGPL-2.1 + + + + ldconfig + + 2.12.1 + + A standalone native ldconfig build. + + GPL-2.0 + + + + libarchive + + 3.3.2 + + C library and command-line tools for reading and writing + tar cpio zip ISO and other archive formats + + BSD + + + + libcap + + 2.25 + + Library for getting/setting POSIX.1e capabilities. + + BSD, GPL-2.0 + + + + libcgroup + + 0.41 + + libcgroup is a library that abstracts the control group + file system in Linux. Control groups allow you to limit account + and isolate resource usage (CPU memory disk I/O etc.) of groups of + processes. + + LGPL-2.1 + + + + libcheck + + 0.12.0 + + Check - unit testing framework for C code. + + LGPL-2.1 + + + + libffi + + 3.2.1 + + The `libffi' library provides a portable high level + programming interface to various calling conventions. This allows + a programmer to call any function specified by a call interface + description at run time. FFI stands for Foreign Function + Interface. A foreign function interface is the popular name for + the interface that allows code written in one language to call + code written in another language. The `libffi' library really only + provides the lowest machine dependent layer of a fully featured + foreign function interface. A layer must exist above `libffi' that + handles type conversions for values passed between the two + languages. + + MIT + + + + libgcc + + 7.3.0 + + GNU cc and gcc C compilers. + + GPL-3.0-with-GCC-exception + + + + libice + + 1.0.9 + + The Inter-Client Exchange (ICE) protocol provides a generic + framework for building protocols on top of reliable byte-stream + transport connections. It provides basic mechanisms for setting up + and shutting down connections for performing authentication for + negotiating versions and for reporting errors. + + MIT + + + + libidn + + 1.33 + + Implementation of the Stringprep Punycode and IDNA + specifications defined by the IETF Internationalized Domain Names + (IDN) working group. + + LGPL-2.1, LGPL-3.0, GPL-3.0 + + + + libmpc + + 1.1.0 + + Mpc is a C library for the arithmetic of complex numbers + with arbitrarily high precision and correct rounding of the + result. It is built upon and follows the same principles as + Mpfr + + LGPL-3.0 + + + + libpcre + + 8.41 + + The PCRE library is a set of functions that implement + regular expression pattern matching using the same syntax and + semantics as Perl 5. PCRE has its own native API as well as a set + of wrapper functions that correspond to the POSIX regular + expression API. + + BSD + + + + libpng + + 1.6.34 + + PNG image format decoding library. + + Libpng + + + + libpthread-stubs + + 0.4 + + This library provides weak aliases for pthread functions + not provided in libc or otherwise available by default. + + MIT + + + + libsdl + + 1.2.15 + + Simple DirectMedia Layer is a cross-platform multimedia + library designed to provide low level access to audio keyboard + mouse joystick 3D hardware via OpenGL and 2D video + framebuffer. + + LGPL-2.1 + + + + libsm + + 1.2.2 + + "The Session Management Library (SMlib) is a low-level + \""C\"" language interface to XSMP. The purpose of the X Session + Management Protocol (XSMP) is to provide a uniform mechanism for + users to save and restore their sessions. A session is a group of + clients each of which has a particular state." + + MIT + + + + libtool + + 2.4.6 + + This is GNU libtool a generic library support script. + Libtool hides the complexity of generating special library types + (such as shared libraries) behind a consistent interface. + + GPL-2.0, LGPL-2.1 + + + + libunistring + + 0.9.9 + + Text files are nowadays usually encoded in Unicode and may + consist of very different scripts from Latin letters to Chinese + Hanzi with many kinds of special characters accents right-to-left + writing marks hyphens Roman numbers and much more. But the POSIX + platform APIs for text do not contain adequate functions for + dealing with particular properties of many Unicode characters. In + fact the POSIX APIs for text have several assumptions at their + base which don't hold for Unicode text. This library provides + functions for manipulating Unicode strings and for manipulating C + strings according to the Unicode standard. This package contains + documentation. + + LGPL-3.0, GPL-2.0 + + + + libx11 + + 1.6.5 + + This package provides a client interface to the X Window + System otherwise known as 'Xlib'. It provides a complete API for + the basic functions of the window system. + + MIT, BSD + + + + libxau + + 1.0.8 + + libxau provides the main interfaces to the X11 + authorisation handling which controls authorisation for X + connections both client-side and server-side. + + MIT + + + + libxcb + + 1.12 + + The X protocol C-language Binding (XCB) is a replacement + for Xlib featuring a small footprint latency hiding direct access + to the protocol improved threading support and + extensibility. + + MIT + + + + libxdmcp + + 1.1.2 + + The purpose of the X Display Manager Control Protocol + (XDMCP) is to provide a uniform mechanism for an autonomous + display to request login service from a remote host. An X terminal + (screen keyboard mouse processor network interface) is a prime + example of an autonomous display. + + MIT + + + + libxext + + 1.3.3 + + libXext provides an X Window System client interface to + several extensions to the X protocol. The supported protocol + extensions are DOUBLE-BUFFER DPMS Extended-Visual-Information LBX + MIT_SHM MIT_SUNDRY-NONSTANDARD Multi-Buffering SECURITY SHAPE SYNC + TOG-CUP XC-APPGROUP XC-MISC XTEST. libXext also provides a small + set of utility functions to aid authors of client APIs for X + protocol extensions. + + MIT + + + + libxkbcommon + + 0.8.0 + + libxkbcommon is a keymap compiler and support library which + processes a reduced subset of keymaps as defined by the XKB + specification. + + MIT + + + + libxml-parser-perl + + 2.44 + + XML::Parser - A perl module for parsing XML + documents. + + Artistic-1.0, GPL-1.0 + + + + libxml2 + + 2.9.7 + + The XML Parser Library allows for manipulation of XML + files. Libxml2 exports Push and Pull type parser interfaces for + both XML and HTML. It can do DTD validation at parse time on a + parsed document instance or with an arbitrary DTD. Libxml2 + includes complete XPath XPointer and Xinclude implementations. It + also has a SAX like interface which is designed to be compatible + with Expat. + + MIT + + + + libxrandr + + 1.5.1 + + The X Resize Rotate and Reflect Extension called RandR for + short brings the ability to resize rotate and reflect the root + window of a screen. It is based on the X Resize and Rotate + Extension as specified in the Proceedings of the 2001 Usenix + Technical Conference [RANDR]. + + MIT + + + + libxrender + + 0.9.10 + + The X Rendering Extension (Render) introduces digital image + composition as the foundation of a new rendering model within the + X Window System. Rendering geometric figures is accomplished by + client-side tessellation into either triangles or trapezoids. Text + is drawn by loading glyphs into the server and rendering sets of + them. + + MIT + + + + libxslt + + 1.1.32 + + GNOME XSLT library. + + MIT + + + + linux-intel + + 4.14.56 + + Linux kernel. + + GPL-2.0 + + + + linux-libc-headers + + 4.15.7 + + Sanitized set of kernel headers for the C library's + use. + + GPL-2.0 + + + + lz4 + + 1.7.4 + + LZ4 is a very fast lossless compression algorithm providing + compression speed at 400 MB/s per core scalable with multi-cores + CPU. It also features an extremely fast decoder with speed in + multiple GB/s per core typically reaching RAM speed limits on + multi-core systems. + + BSD, BSD-2-Clause, GPL-2.0 + + + + lzo + + 2.10 + + Lossless data compression library. + + GPL-2.0 + + + + lzop + + 1.03 + + lzop is a compression utility which is designed to be a + companion to gzip. \nIt is based on the LZO data compression + library and its main advantages over \ngzip are much higher + compression and decompression speed at the cost of some + \ncompression ratio. The lzop compression utility was designed + with the goals \nof reliability speed portability and with + reasonable drop-in compatibility \nto gzip. + + GPL-2.0 + + + + m4 + + 1.4.18 + + GNU m4 is an implementation of the traditional Unix macro + processor. It is mostly SVR4 compatible although it has some + extensions (for example handling more than 9 positional parameters + to macros). GNU M4 also has built-in functions for including files + running shell commands doing arithmetic etc. + + GPL-3.0 + + + + make + + 4.2.1 + + Make is a tool which controls the generation of executables + and other non-source files of a program from the program's source + files. Make gets its knowledge of how to build your program from a + file called the makefile which lists each of the non-source files + and how to compute it from other files. + + GPL-3.0, LGPL-2.0 + + + + makedepend + + 1.0.5 + + The makedepend program reads each sourcefile in sequence + and parses it like a C-preprocessor processing all #include + #define #undef #ifdef #ifndef #endif #if #elif and #else + directives so that it can correctly tell which #include directives + would be used in a compilation. Any #include directives can + reference files having other #include directives and parsing will + occur in these files as well. + + MIT + + + + makedevs + + 1.0.1 + + Tool for creating device nodes. + + GPL-2.0 + + + + meson + + 0.44.1 + + A high performance build system. + + Apache-2.0 + + + + mklibs + + 0.1.43 + + mklibs produces cut-down shared libraries that contain only + the routines required by a particular set of executables. + + GPL-2.0 + + + + mpfr + + 3.1.5 + + C library for multiple-precision floating-point + computations with exact rounding. + + LGPL-3.0 + + + + mtools + + 4.0.18 + + Mtools is a collection of utilities to access MS-DOS disks + from GNU and Unix without mounting them. + + GPL-3.0 + + + + nasm + + 2.13.03 + + General-purpose x86 assembler. + + BSD-2-Clause + + + + ncurses + + 6.0 + + SVr4 and XSI-Curses compatible curses library and terminfo + tools including tic infocmp captoinfo. Supports color multiple + highlights forms-drawing characters and automatic recognition of + keypad and function-key sequences. Extensions include resizable + windows and mouse support on both xterm and Linux console using + the gpm library. + + MIT + + + + netbase + + 5.4 + + This package provides the necessary infrastructure for + basic TCP/IP based networking + + GPL-2.0 + + + + nettle + + 3.4 + + A low level cryptographic library. + + LGPL-3.0, GPL-2.0 + + + + ninja + + 1.8.2 + + Ninja is a small build system with a focus on + speed.. + + Apache-2.0 + + + + nodejs + + 8.9.4 + + nodeJS Evented I/O for V8 JavaScript + + MIT, BSD + + + + nspr + + 4.19 + + Netscape Portable Runtime Library. + + GPL-2.0, MPL-2.0, LGPL-2.1 + + + + nss + + 3.35 + + Network Security Services (NSS) is a set of libraries + designed to support cross-platform development of security-enabled + client and server applications. Applications built with NSS can + support SSL v2 and v3 TLS PKCS 5 PKCS 7 PKCS 11 PKCS 12 S/MIME + X.509 v3 certificates and other security standards. + + MPL-2.0, GPL-2.0, MPL-2.0, LGPL-2.1 + + + + openssl + + 1.0.2o + + Secure Socket Layer (SSL) binary and related cryptographic + tools. + + OpenSSL + + + + opkg-utils + + 0.3.6 + + Additional utilities for the opkg package manager. + + GPL-2.0 + + + + os-release + + 1.0 + + The /etc/os-release file contains operating system + identification data. + + MIT + + + + ossp-uuid + + 1.6.2 + + OSSP uuid is a ISO-C:1999 application programming interface + (API) and corresponding command line interface (CLI) for the + generation of DCE 1.1 ISO/IEC 11578:1996 and RFC 4122 compliant + Universally Unique Identifier (UUID). It supports DCE 1.1 variant + UUIDs of version 1 (time and node based) version 3 (name based + MD5) version 4 (random number based) and version 5 (name based + SHA-1). + + MIT + + + + ovmf + + git + + OVMF is an EDK II based project to enable UEFI support for + Virtual Machines. OVMF contains sample UEFI firmware for QEMU and + KVM + + BSD + + + + packagegroup-core-boot + + 1.0 + + The minimal set of packages required to boot the + system + + MIT + + + + packagegroup-core-ssh-dropbear + + 1.0 + + Dropbear SSH client/server. + + MIT + + + + parted + + 3.2 + + Disk partition editing/resizing utility. + + GPL-3.0 + + + + perl + + 5.24.1 + + Perl scripting language. + + Artistic-1.0, GPL-1.0 + + + + pigz + + 2.4 + + pigz which stands for parallel implementation of gzip is a + fully functional replacement for gzip that exploits multiple + processors and multiple cores to the hilt when compressing data. + pigz was written by Mark Adler and uses the zlib and pthread + libraries. + + Zlib, Apache-2.0 + + + + pixman + + 0.34.0 + + Pixman provides a library for manipulating pixel regions -- + a set of Y-X banded rectangles image compositing using the + Porter/Duff model and implicit mask generation for geometric + primitives including trapezoids triangles and rectangles. + + MIT, PD + + + + pkgconfig + + 0.29.2 + + pkg-config is a helper tool used when compiling + applications and libraries. It helps determined the correct + compiler/link options. It is also language-agnostic. + + GPL-2.0 + + + + popt + + 1.16 + + Library for parsing command line options. + + MIT + + + + prelink + + 1.0 + + The prelink package contains a utility which modifies ELF + shared libraries and executables so that far fewer relocations + need to be resolved at runtime and thus programs come up + faster. + + GPL-2.0 + + + + procps + + 3.3.12 + + Procps contains a set of system utilities that provide + system information about processes using the /proc filesystem. The + package includes the programs ps top vmstat w kill and + skill. + + GPL-2.0, LGPL-2.0 + + + + pseudo + + 1.9.0 + + Pseudo gives fake root capabilities to a normal + user. + + LGPL-2.1 + + + + ptest-runner + + 2.1.1 + + The ptest-runner2 package installs a ptest-runner program + which loops through all installed ptest test suites and runs them + in sequence. + + GPL-2.0 + + + + python + + 2.7.14 + + The Python Programming Language. + + Python-2.0 + + + + python3-setuptools + + 39.0.0 + + Download build install upgrade and uninstall Python + packages. + + MIT + + + + python3 + + 3.5.5 + + The Python Programming Language. + + Python-2.0 + + + + qemu-helper + + 1.0 + + Helper utilities needed by the runqemu script. + + GPL-2.0 + + + + qemu + + 2.11.1 + + Fast open source processor emulator. + + GPL-2.0, LGPL-2.1 + + + + qemuwrapper + + 1.0 + + QEMU wrapper script. + + MIT + + + + quilt + + 0.65 + + Tool for working with series of patches. + + GPL-2.0 + + + + randrproto + + 1.5.0 + + This package provides the wire protocol for the X Resize + Rotate and Reflect extension. This extension provides the ability + to resize rotate and reflect the root window of a screen. + + MIT + + + + re2c + + 0.16 + + Tool for writing very fast and very flexible + scanners. + + PD + + + + readline + + 7.0 + + The GNU Readline library provides a set of functions for + use by applications that allow users to edit command lines as they + are typed in. Both Emacs and vi editing modes are available. The + Readline library includes additional functions to maintain a list + of previously-entered command lines to recall and perhaps reedit + those lines and perform csh-like history expansion on previous + commands. + + GPL-3.0 + + + + renderproto + + 0.11.1 + + This package provides the wire protocol for the X Rendering + extension. This is the basis the image composition within the X + window system. + + MIT + + + + rpm + + 4.14.1 + + The RPM Package Manager (RPM) is a powerful command line + driven package management system capable of installing + uninstalling verifying querying and updating software packages. + Each software package consists of an archive of files along with + information about the package like its version a description + etc. + + GPL-2.0 + + + + rt-tests + + 1.1 + + Real-Time preemption testcases. + + GPL-2.0 + + + + run-postinsts + + 1.0 + + Runs postinstall scripts on first boot of the target + device. + + MIT + + + + sed + + 4.2.2 + + Stream EDitor (text filtering utility). + + GPL-3.0 + + + + shadow-securetty + + 4.2.1 + + Provider of the machine specific securetty file. + + MIT + + + + shadow-sysroot + + 4.2.1 + + Shadow utils requirements for useradd.bbclass. + + BSD, Artistic-1.0 + + + + shadow + + 4.2.1 + + Tools to change and administer password and group + data. + + BSD, Artistic-1.0 + + + + shared-mime-info + + 1.9 + + Shared MIME type database and specification. + + GPL-2.0 + + + + sqlite3 + + 3.22.0 + + Embeddable SQL database engine. + + PD + + + + squashfs-tools + + 4.3 + + Tools for manipulating SquashFS filesystems. + + GPL-2.0, PD + + + + stress + + 1.0.4 + + Deliberately simple workload generator for POSIX systems. + It imposes a configurable amount of CPU memory I/O and disk stress + on the system. + + GPL-2.0 + + + + syslinux + + 6.03 + + Multi-purpose linux bootloader. + + GPL-2.0 + + + + systemd-boot + + 237 + + systemd is a system and service manager for Linux + compatible with SysV and LSB init scripts. systemd provides + aggressive parallelization capabilities uses socket and D-Bus + activation for starting services offers on-demand starting of + daemons keeps track of processes using Linux cgroups supports + snapshotting and restoring of the system state maintains mount and + automount points and implements an elaborate transactional + dependency-based service control logic. It can work as a drop-in + replacement for sysvinit. + + GPL-2.0, LGPL-2.1 + + + + systemd-bootconf + + 1.00 + + Basic systemd-boot configuration files. + + MIT + + + + systemd-compat-units + + 1.0 + + Enhances systemd compatilibity with existing SysVinit + scripts. + + MIT + + + + systemd-serialgetty + + 1.0 + + Serial terminal support for systemd. + + GPL-2.0 + + + + systemd-systemctl + + 1.0 + + Wrapper for enabling systemd services. + + MIT + + + + systemd + + 237 + + systemd is a system and service manager for Linux + compatible with SysV and LSB init scripts. systemd provides + aggressive parallelization capabilities uses socket and D-Bus + activation for starting services offers on-demand starting of + daemons keeps track of processes using Linux cgroups supports + snapshotting and restoring of the system state maintains mount and + automount points and implements an elaborate transactional + dependency-based service control logic. It can work as a drop-in + replacement for sysvinit. + + GPL-2.0, LGPL-2.1 + + + + texinfo-dummy + + 1.0 + + Fake version of the texinfo utility suite. + + MIT + + + + thermald + + 1.7.1 + + Thermal Daemon is a Linux daemon used to prevent the + overheating of platforms. This daemon monitors temperature and + applies compensation using available cooling methods. + + GPL-2.0 + + + + tzcode + + 2018d + + tzcode timezone zoneinfo utils -- zic zdump + tzselect. + + PD, BSD, BSD-3-Clause + + + + tzdata + + 2018d + + Timezone data. + + PD, BSD, BSD-3-Clause + + + + unifdef + + 2.11 + + Selectively remove #ifdef statements from sources. + + BSD-2-Clause + + + + unzip + + 6.0 + + Utilities for extracting and viewing files in .zip + archives. + + BSD-3-Clause + + + + update-rc.d + + 0.7 + + update-rc.d is a utility that allows the management of + symlinks to the initscripts in the /etc/rcN.d directory + structure. + + GPL-2.0 + + + + util-linux + + 2.32 + + Util-linux includes a suite of basic system administration + utilities commonly found on most Linux systems. Some of the more + important utilities include disk partitioning kernel message + management filesystem creation and system login. + + GPL-2.0, LGPL-2.1, BSD + + + + util-macros + + 1.19.1 + + M4 autotools macros used by various X.org programs. + + MIT + + + + volatile-binds + + 1.0 + + Volatile bind mount setup and configuration for + read-only-rootfs + + MIT + + + + which + + 2.21 + + Which is a utility that prints out the full path of the + executables that bash(1) would execute when the passed program + names would have been entered on the shell prompt. It does this by + using the exact same algorithm as bash. + + GPL-3.0 + + + + xcb-proto + + 1.12 + + Function prototypes for the X protocol C-language Binding + (XCB). XCB is a replacement for Xlib featuring a small footprint + latency hiding direct access to the protocol improved threading + support and extensibility. + + MIT + + + + xextproto + + 7.3.0 + + This package provides the wire protocol for several X + extensions. These protocol extensions include DOUBLE-BUFFER DPMS + Extended-Visual-Information LBX MIT_SHM MIT_SUNDRY-NONSTANDARD + Multi-Buffering SECURITY SHAPE SYNC TOG-CUP XC-APPGROUP XC-MISC + XTEST. In addition a small set of utility functions are also + available. + + MIT + + + + xkeyboard-config + + 2.22 + + The non-arch keyboard configuration database for X Window. + The goal is to provide the consistent well-structured frequently + released open source of X keyboard configuration data for X Window + System implementations. The project is targeted to XKB-based + systems. + + MIT + + + + xproto + + 7.0.31 + + This package provides the basic headers for the X Window + System. + + MIT + + + + xtrans + + 1.3.5 + + The X Transport Interface is intended to combine all system + and transport specific code into a single place. This API should + be used by all libraries clients and servers of the X Window + System. Use of this API should allow the addition of new types of + transports and support for new platforms without making any + changes to the source except in the X Transport Interface + code. + + MIT + + + + xz + + 5.2.3 + + Utilities for managing LZMA compressed files. + + GPL-2.0, GPL-3.0-with-autoconf-exception, LGPL-2.1, + PD + + + + zlib + + 1.2.11 + + Zlib is a general-purpose patent-free lossless data + compression library which is used by many different + programs. + + Zlib + + + + +
+ +
+ Open Source Licenses + +
+ AFL-2.0 + + + +The Academic Free License + v. 2.0 + +This Academic Free License (the "License") applies to any original work of authorship +(the "Original Work") whose owner (the "Licensor") has placed the following notice +immediately following the copyright notice for the Original Work: +Licensed under the Academic Free License version 2.0 + +1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, +non-exclusive, perpetual, sublicenseable license to do the following: +a) to reproduce the Original Work in copies; + +b) to prepare derivative works ("Derivative Works") based upon the Original Work; + +c) to distribute copies of the Original Work and Derivative Works to the public; + +d) to perform the Original Work publicly; and + +e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, +non-exclusive, perpetual, sublicenseable license, under patent claims owned or +controlled by the Licensor that are embodied in the Original Work as furnished by the +Licensor, to make, use, sell and offer for sale the Original Work and Derivative +Works. + +3) Grant of Source Code License. The term "Source Code" means the preferred form of +the Original Work for making modifications to it and all available documentation +describing how to modify the Original Work. Licensor hereby agrees to provide a +machine-readable copy of the Source Code of the Original Work along with each copy of +the Original Work that Licensor distributes. Licensor reserves the right to satisfy +this obligation by placing a machine-readable copy of the Source Code in an +information repository reasonably calculated to permit inexpensive and convenient +access by You for as long as Licensor continues to distribute the Original Work, and +by publishing the address of that information repository in a notice immediately +following the copyright notice that applies to the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any +contributors to the Original Work, nor any of their trademarks or service marks, may +be used to endorse or promote products derived from this Original Work without express +prior written permission of the Licensor. Nothing in this License shall be deemed to +grant any rights to trademarks, copyrights, patents, trade secrets or any other +intellectual property of Licensor except as expressly stated herein. No patent +license is granted to make, use, sell or offer to sell embodiments of any patent +claims other than the licensed claims defined in Section 2. No right is granted to +the trademarks of Licensor even if such marks are included in the Original Work. +Nothing in this License shall be interpreted to prohibit Licensor from licensing under +different terms from this License any Original Work that Licensor otherwise would have +a right to license. + +5) This section intentionally omitted. + +6) Attribution Rights. You must retain, in the Source Code of any Derivative Works +that You create, all copyright, patent or trademark notices from the Source Code of +the Original Work, as well as any notices of licensing and any descriptive text +identified therein as an "Attribution Notice." You must cause the Source Code for any +Derivative Works that You create to carry a prominent Attribution Notice reasonably +calculated to inform recipients that You have modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the +copyright in and to the Original Work and the patent rights granted herein by Licensor +are owned by the Licensor or are sublicensed to You under the terms of this License +with the permission of the contributor(s) of those copyrights and patent rights. +Except as expressly stated in the immediately proceeding sentence, the Original Work +is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either +express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE +QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an +essential part of this License. No license to Original Work is granted hereunder +except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal theory, whether +in tort (including negligence), contract, or otherwise, shall the Licensor be liable +to any person for any direct, indirect, special, incidental, or consequential damages +of any character arising as a result of this License or the use of the Original Work +including, without limitation, damages for loss of goodwill, work stoppage, computer +failure or malfunction, or any and all other commercial damages or losses. This +limitation of liability shall not apply to liability for death or personal injury +resulting from Licensor`s negligence to the extent applicable law prohibits such +limitation. Some jurisdictions do not allow the exclusion or limitation of incidental +or consequential damages, so this exclusion and limitation may not apply to You. + +9) Acceptance and Termination. If You distribute copies of the Original Work or a +Derivative Work, You must make a reasonable effort under the circumstances to obtain +the express assent of recipients to the terms of this License. Nothing else but this +License (or another written agreement between Licensor and You) grants You permission +to create Derivative Works based upon the Original Work or to exercise any of the +rights granted in Section 1 herein, and any attempt to do so except under the terms of +this License (or another written agreement between Licensor and You) is expressly +prohibited by U.S. copyright law, the equivalent laws of other countries, and by +international treaty. Therefore, by exercising any of the rights granted to You in +Section 1 herein, You indicate Your acceptance of this License and all of its terms +and conditions. + +10) Termination for Patent Action. This License shall terminate automatically and You +may no longer exercise any of the rights granted to You by this License as of the date +You commence an action, including a cross-claim or counterclaim, for patent +infringement (i) against Licensor with respect to a patent applicable to software or +(ii) against any entity with respect to a patent applicable to the Original Work (but +excluding combinations of the Original Work with other software or hardware). + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License +may be brought only in the courts of a jurisdiction wherein the Licensor resides or in +which Licensor conducts its primary business, and under the laws of that jurisdiction +excluding its conflict-of-law provisions. The application of the United Nations +Convention on Contracts for the International Sale of Goods is expressly excluded. +Any use of the Original Work outside the scope of this License or after its +termination shall be subject to the requirements and penalties of the U.S. Copyright +Act, 17 U.S.C. ¤ 101 et seq., the equivalent laws of other countries, and +international treaty. This section shall survive the termination of this License. + +12) Attorneys Fees. In any action to enforce the terms of this License or seeking +damages relating thereto, the prevailing party shall be entitled to recover its costs +and expenses, including, without limitation, reasonable attorneys` fees and costs +incurred in connection with such action, including any appeal of such action. This +section shall survive the termination of this License. + +13) Miscellaneous. This License represents the complete agreement concerning the +subject matter hereof. If any provision of this License is held to be unenforceable, +such provision shall be reformed only to the extent necessary to make it enforceable. + +14) Definition of "You" in This License. "You" throughout this License, whether in +upper or lower case, means an individual or a legal entity exercising rights under, +and complying with all of the terms of, this License. For legal entities, "You" +includes any entity that controls, is controlled by, or is under common control with +you. For purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, +or (iii) beneficial ownership of such entity. + +15) Right to Use. You may use the Original Work in all ways not otherwise restricted +or conditioned by this License or by law, and Licensor promises not to interfere with +or be responsible for such uses by You. + +This license is Copyright (C) 2003 Lawrence E. Rosen. All rights reserved. +Permission is hereby granted to copy and distribute this license without modification. +This license may not be modified without the express written permission of its +copyright owner. + + +
+ +
+ Apache-2.0 + + + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don`t include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +
+ +
+ Artistic-1.0 + + + +The Artistic License +Preamble + +The intent of this document is to state the conditions under which a Package may be +copied, such that the Copyright Holder maintains some semblance of artistic control +over the development of the package, while giving the users of the package the right +to use and distribute the Package in a more-or-less customary fashion, plus the right +to make reasonable modifications. + +Definitions: + +"Package" refers to the collection of files distributed by the Copyright Holder, and +derivatives of that collection of files created through textual modification. +"Standard Version" refers to such a Package if it has not been modified, or has been +modified in accordance with the wishes of the Copyright Holder. +"Copyright Holder" is whoever is named in the copyright or copyrights for the package. +"You" is you, if you`re thinking about copying or distributing this Package. +"Reasonable copying fee" is whatever you can justify on the basis of media cost, +duplication charges, time of people involved, and so on. (You will not be required to +justify it to the Copyright Holder, but only to the computing community at large as a +market that must bear the fee.) +"Freely Available" means that no fee is charged for the item itself, though there may +be fees involved in handling the item. It also means that recipients of the item may +redistribute it under the same conditions they received it. +1. You may make and give away verbatim copies of the source form of the Standard +Version of this Package without restriction, provided that you duplicate all of the +original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications derived from the +Public Domain or from the Copyright Holder. A Package modified in such a way shall +still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided that you +insert a prominent notice in each changed file stating how and when you changed that +file, and provided that you do at least ONE of the following: + +a) place your modifications in the Public Domain or otherwise make them Freely +Available, such as by posting said modifications to Usenet or an equivalent medium, or +placing the modifications on a major archive site such as ftp.uu.net, or by allowing +the Copyright Holder to include your modifications in the Standard Version of the +Package. + +b) use the modified Package only within your corporation or organization. + +c) rename any non-standard executables so the names do not conflict with standard +executables, which must also be provided, and provide a separate manual page for each +non-standard executable that clearly documents how it differs from the Standard +Version. + +d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or executable form, +provided that you do at least ONE of the following: + +a) distribute a Standard Version of the executables and library files, together with +instructions (in the manual page or equivalent) on where to get the Standard Version. + +b) accompany the distribution with the machine-readable source of the Package with +your modifications. + +c) accompany any non-standard executables with their corresponding Standard Version +executables, giving the non-standard executables non-standard names, and clearly +documenting the differences in manual pages (or equivalent), together with +instructions on where to get the Standard Version. + +d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this Package. You +may charge any fee you choose for support of this Package. You may not charge a fee +for this Package itself. However, you may distribute this Package in aggregate with +other (possibly commercial) programs as part of a larger (possibly commercial) +software distribution provided that you do not advertise this Package as a product of +your own. + +6. The scripts and library files supplied as input to or produced as output from the +programs of this Package do not automatically fall under the copyright of this +Package, but belong to whomever generated them, and may be sold commercially, and may +be aggregated with this Package. + +7. C or perl subroutines supplied by you and linked into this Package shall not be +considered part of this Package. + +8. The name of the Copyright Holder may not be used to endorse or promote products +derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS +FOR A PARTICULAR PURPOSE. + +The End + + +
+ +
+ BSD + + +Copyright (c) The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +
+ +
+ BSD-2-Clause + + + +The FreeBSD Copyright + +Copyright 1992-2010 The FreeBSD Project. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are +permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of +conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other materials +provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS`` AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD +PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those of the +authors and should not be interpreted as representing official policies, either +expressed or implied, of the FreeBSD Project. + + +
+ +
+ BSD-3-Clause + + + +Copyright (c) <YEAR>, <OWNER> +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are +permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of +conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other materials +provided with the distribution. +Neither the name of the <ORGANIZATION> nor the names of its contributors may be +used to endorse or promote products derived from this software without specific prior +written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY +WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + + +
+ +
+ BSD-4-Clause + + + +Copyright (c) <year>, <copyright holder> +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the <organization>. +4. Neither the name of the <organization> nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS`` AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +
+ +
+ Elfutils-Exception + + + This file describes the limits of the Exception under which you are allowed + to distribute Non-GPL Code in linked combination with Red Hat elfutils. + For the full text of the license, please see one of the header files + included with the source distribution or the file COPYING found in the + top level directory of the source. + + The Approved Interfaces are the functions declared in the files: + + libelf.h + libdw.h + libdwfl.h + + +
+ +
+ FSF-Unlimited + + +Copyright (C) 1997-2010 Free Software Foundation, Inc. +This file is free software; the Free Software Foundation +gives unlimited permission to copy and/or distribute it, +with or without modifications, as long as this notice is preserved. + +
+ +
+ FreeType + + + The FreeType Project LICENSE + ---------------------------- + + 2006-Jan-27 + + Copyright 1996-2002, 2006 by + David Turner, Robert Wilhelm, and Werner Lemberg + + + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + """ + Portions of this software are copyright � <year> The FreeType + Project (www.freetype.org). All rights reserved. + """ + + Please replace <year> with the value from the FreeType version you + actually use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty +-------------- + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts +----------- + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + http://www.freetype.org + + +--- end of FTL.TXT --- + + +
+ +
+ GPL-1.0 + + + +GNU General Public License, version 1 + + GNU GENERAL PUBLIC LICENSE + Version 1, February 1989 + + Copyright (C) 1989 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The license agreements of most software companies try to keep users +at the mercy of those companies. By contrast, our General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. The +General Public License applies to the Free Software Foundation`s +software and to any other program whose authors commit to using it. +You can use it for your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Specifically, the General Public License is designed to make +sure that you have the freedom to give away or sell copies of free +software, that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of a such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author`s protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors` reputations. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any program or other work which +contains a notice placed by the copyright holder saying it may be +distributed under the terms of this General Public License. The +"Program", below, refers to any such program or work, and a "work based +on the Program" means either the Program or any work containing the +Program or a portion of it, either verbatim or with modifications. Each +licensee is addressed as "you". + + 1. You may copy and distribute verbatim copies of the Program`s source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this +General Public License and to the absence of any warranty; and give any +other recipients of the Program a copy of this General Public License +along with the Program. You may charge a fee for the physical act of +transferring a copy. + + 2. You may modify your copy or copies of the Program or any portion of +it, and copy and distribute such modifications under the terms of Paragraph +1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating that + you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, that + in whole or in part contains the Program or any part thereof, either + with or without modifications, to be licensed at no charge to all + third parties under the terms of this General Public License (except + that you may choose to grant warranty protection to some or all + third parties, at your option). + + c) If the modified program normally reads commands interactively when + run, you must cause it, when started running for such interactive use + in the simplest and most usual way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this General + Public License. + + d) You may charge a fee for the physical act of transferring a + copy, and you may at your option offer warranty protection in + exchange for a fee. + +Mere aggregation of another independent work with the Program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other work under the scope of these terms. + + 3. You may copy and distribute the Program (or a portion or derivative of +it, under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal charge + for the cost of distribution) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +Source code for a work means the preferred form of the work for making +modifications to it. For an executable file, complete source code means +all the source code for all modules it contains; but, as a special +exception, it need not include source code for modules which are standard +libraries that accompany the operating system on which the executable +file runs, or for standard header files or definitions files that +accompany that operating system. + + 4. You may not copy, modify, sublicense, distribute or transfer the +Program except as expressly provided under this General Public License. +Any attempt otherwise to copy, modify, sublicense, distribute or transfer +the Program is void, and will automatically terminate your rights to use +the Program under this License. However, parties who have received +copies, or rights to use copies, from you under this General Public +License will not have their licenses terminated so long as such parties +remain in full compliance. + + 5. By copying, distributing or modifying the Program (or any work based +on the Program) you indicate your acceptance of this license to do so, +and all its terms and conditions. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further restrictions on the +recipients` exercise of the rights granted herein. + + 7. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of the license which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +the license, you may choose any version ever published by the Free Software +Foundation. + + 8. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to humanity, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + + To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the program`s name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19xx name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w`. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c` for details. + +The hypothetical commands `show w` and `show c` should show the +appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w` and `show +c`; they could even be mouse-clicks or menu items--whatever suits your +program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision` (a program to direct compilers to make passes + at assemblers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +That`s all there is to it! + + +
+ +
+ GPL-2.0 + + + +GNU GENERAL PUBLIC LICENSE + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +Preamble + +The licenses for most software are designed to take away your freedom to share and +change it. By contrast, the GNU General Public License is intended to guarantee your +freedom to share and change free software--to make sure the software is free for all +its users. This General Public License applies to most of the Free Software +Foundation`s software and to any other program whose authors commit to using it. (Some +other Free Software Foundation software is covered by the GNU Lesser General Public +License instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General +Public Licenses are designed to make sure that you have the freedom to distribute +copies of free software (and charge for this service if you wish), that you receive +source code or can get it if you want it, that you can change the software or use +pieces of it in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny you +these rights or to ask you to surrender the rights. These restrictions translate to +certain responsibilities for you if you distribute copies of the software, or if you +modify it. + +For example, if you distribute copies of such a program, whether gratis or for a fee, +you must give the recipients all the rights that you have. You must make sure that +they, too, receive or can get the source code. And you must show them these terms so +they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) offer you +this license which gives you legal permission to copy, distribute and/or modify the +software. + +Also, for each author`s protection and ours, we want to make certain that everyone +understands that there is no warranty for this free software. If the software is +modified by someone else and passed on, we want its recipients to know that what they +have is not the original, so that any problems introduced by others will not reflect +on the original authors` reputations. + +Finally, any free program is threatened constantly by software patents. We wish to +avoid the danger that redistributors of a free program will individually obtain patent +licenses, in effect making the program proprietary. To prevent this, we have made it +clear that any patent must be licensed for everyone`s free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice placed by +the copyright holder saying it may be distributed under the terms of this General +Public License. The "Program", below, refers to any such program or work, and a "work +based on the Program" means either the Program or any derivative work under copyright +law: that is to say, a work containing the Program or a portion of it, either verbatim +or with modifications and/or translated into another language. (Hereinafter, +translation is included without limitation in the term "modification".) Each licensee +is addressed as "you". + +Activities other than copying, distribution and modification are not covered by this +License; they are outside its scope. The act of running the Program is not restricted, +and the output from the Program is covered only if its contents constitute a work +based on the Program (independent of having been made by running the Program). Whether +that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program`s source code as you +receive it, in any medium, provided that you conspicuously and appropriately publish +on each copy an appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any warranty; and +give any other recipients of the Program a copy of this License along with the +Program. + +You may charge a fee for the physical act of transferring a copy, and you may at your +option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications or +work under the terms of Section 1 above, provided that you also meet all of these +conditions: + +a) You must cause the modified files to carry prominent notices stating that you +changed the files and the date of any change. +b) You must cause any work that you distribute or publish, that in whole or in part +contains or is derived from the Program or any part thereof, to be licensed as a whole +at no charge to all third parties under the terms of this License. +c) If the modified program normally reads commands interactively when run, you must +cause it, when started running for such interactive use in the most ordinary way, to +print or display an announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide a warranty) and +that users may redistribute the program under these conditions, and telling the user +how to view a copy of this License. (Exception: if the Program itself is interactive +but does not normally print such an announcement, your work based on the Program is +not required to print an announcement.) +These requirements apply to the modified work as a whole. If identifiable sections of +that work are not derived from the Program, and can be reasonably considered +independent and separate works in themselves, then this License, and its terms, do not +apply to those sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based on the Program, +the distribution of the whole must be on the terms of this License, whose permissions +for other licensees extend to the entire whole, and thus to each and every part +regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to control +the distribution of derivative or collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or distribution +medium does not bring the other work under the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, under Section 2) in +object code or executable form under the terms of Sections 1 and 2 above provided that +you also do one of the following: + +a) Accompany it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a medium customarily +used for software interchange; or, +b) Accompany it with a written offer, valid for at least three years, to give any +third party, for a charge no more than your cost of physically performing source +distribution, a complete machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium customarily used for +software interchange; or, +c) Accompany it with the information you received as to the offer to distribute +corresponding source code. (This alternative is allowed only for noncommercial +distribution and only if you received the program in object code or executable form +with such an offer, in accord with Subsection b above.) +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all the source +code for all modules it contains, plus any associated interface definition files, plus +the scripts used to control compilation and installation of the executable. However, +as a special exception, the source code distributed need not include anything that is +normally distributed (in either source or binary form) with the major components +(compiler, kernel, and so on) of the operating system on which the executable runs, +unless that component itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy from a +designated place, then offering equivalent access to copy the source code from the +same place counts as distribution of the source code, even though third parties are +not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as expressly +provided under this License. Any attempt otherwise to copy, modify, sublicense or +distribute the Program is void, and will automatically terminate your rights under +this License. However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such parties remain in +full compliance. + +5. You are not required to accept this License, since you have not signed it. However, +nothing else grants you permission to modify or distribute the Program or its +derivative works. These actions are prohibited by law if you do not accept this +License. Therefore, by modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and all its terms and +conditions for copying, distributing or modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), the +recipient automatically receives a license from the original licensor to copy, +distribute or modify the Program subject to these terms and conditions. You may not +impose any further restrictions on the recipients` exercise of the rights granted +herein. You are not responsible for enforcing compliance by third parties to this +License. + +7. If, as a consequence of a court judgment or allegation of patent infringement or +for any other reason (not limited to patent issues), conditions are imposed on you +(whether by court order, agreement or otherwise) that contradict the conditions of +this License, they do not excuse you from the conditions of this License. If you +cannot distribute so as to satisfy simultaneously your obligations under this License +and any other pertinent obligations, then as a consequence you may not distribute the +Program at all. For example, if a patent license would not permit royalty-free +redistribution of the Program by all those who receive copies directly or indirectly +through you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any particular +circumstance, the balance of the section is intended to apply and the section as a +whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other +property right claims or to contest validity of any such claims; this section has the +sole purpose of protecting the integrity of the free software distribution system, +which is implemented by public license practices. Many people have made generous +contributions to the wide range of software distributed through that system in +reliance on consistent application of that system; it is up to the author/donor to +decide if he or she is willing to distribute software through any other system and a +licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a consequence +of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain countries +either by patents or by copyrighted interfaces, the original copyright holder who +places the Program under this License may add an explicit geographical distribution +limitation excluding those countries, so that distribution is permitted only in or +among countries not thus excluded. In such case, this License incorporates the +limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the General +Public License from time to time. Such new versions will be similar in spirit to the +present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies a +version number of this License which applies to it and "any later version", you have +the option of following the terms and conditions either of that version or of any +later version published by the Free Software Foundation. If the Program does not +specify a version number of this License, you may choose any version ever published by +the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs whose +distribution conditions are different, write to the author to ask for permission. For +software which is copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our decision will be +guided by the two goals of preserving the free status of all derivatives of our free +software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE +PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN +WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE +RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM +PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE +OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE +WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to +the public, the best way to achieve this is to make it free software which everyone +can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to +the start of each source file to most effectively convey the exclusion of warranty; +and each file should have at least the "copyright" line and a pointer to where the +full notice is found. + +one line to give the program`s name and an idea of what it does. +Copyright (C) yyyy name of author + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it starts +in an interactive mode: + +Gnomovision version 69, Copyright (C) year name of author +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details +type `show w`. This is free software, and you are welcome +to redistribute it under certain conditions; type `show c` +for details. +The hypothetical commands `show w` and `show c` should show the appropriate parts of +the General Public License. Of course, the commands you use may be called something +other than `show w` and `show c`; they could even be mouse-clicks or menu +items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, if +any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; +alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright +interest in the program `Gnomovision` +(which makes passes at compilers) written +by James Hacker. + +signature of Ty Coon, 1 April 1989 +Ty Coon, President of Vice +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may consider it +more useful to permit linking proprietary applications with the library. If this is +what you want to do, use the GNU Lesser General Public License instead of this +License. + + +
+ +
+ GPL-3.0 + + +GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/> + +Everyone is permitted to copy and distribute verbatim copies of this license document, +but changing it is not allowed. +Preamble + +The GNU General Public License is a free, copyleft license for software and other +kinds of works. + +The licenses for most software and other practical works are designed to take away +your freedom to share and change the works. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change all versions of a +program--to make sure it remains free software for all its users. We, the Free +Software Foundation, use the GNU General Public License for most of our software; it +applies also to any other work released this way by its authors. You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General +Public Licenses are designed to make sure that you have the freedom to distribute +copies of free software (and charge for them if you wish), that you receive source +code or can get it if you want it, that you can change the software or use pieces of +it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or +asking you to surrender the rights. Therefore, you have certain responsibilities if +you distribute copies of the software, or if you modify it: responsibilities to +respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, +you must pass on to the recipients the same freedoms that you received. You must make +sure that they, too, receive or can get the source code. And you must show them these +terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert +copyright on the software, and (2) offer you this License giving you legal permission +to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is no +warranty for this free software. For both users' and authors' sake, the GPL requires +that modified versions be marked as changed, so that their problems will not be +attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of +the software inside them, although the manufacturer can do so. This is fundamentally +incompatible with the aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we have designed +this version of the GPL to prohibit the practice for those products. If such problems +arise substantially in other domains, we stand ready to extend this provision to those +domains in future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States should not +allow patents to restrict development and use of software on general-purpose +computers, but in those that do, we wish to avoid the special danger that patents +applied to a free program could make it effectively proprietary. To prevent this, the +GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. +TERMS AND CONDITIONS +0. Definitions. + +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + +“The Program” refers to any copyrightable work licensed under this +License. Each licensee is addressed as “you”. “Licensees” +and “recipients” may be individuals or organizations. + +To “modify” a work means to copy from or adapt all or part of the work in +a fashion requiring copyright permission, other than the making of an exact copy. The +resulting work is called a “modified version” of the earlier work or a +work “based on” the earlier work. + +A “covered work” means either the unmodified Program or a work based on +the Program. + +To “propagate” a work means to do anything with it that, without +permission, would make you directly or secondarily liable for infringement under +applicable copyright law, except executing it on a computer or modifying a private +copy. Propagation includes copying, distribution (with or without modification), +making available to the public, and in some countries other activities as well. + +To “convey” a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through a computer +network, with no transfer of a copy, is not conveying. + +An interactive user interface displays “Appropriate Legal Notices” to the +extent that it includes a convenient and prominently visible feature that (1) displays +an appropriate copyright notice, and (2) tells the user that there is no warranty for +the work (except to the extent that warranties are provided), that licensees may +convey the work under this License, and how to view a copy of this License. If the +interface presents a list of user commands or options, such as a menu, a prominent +item in the list meets this criterion. +1. Source Code. + +The “source code” for a work means the preferred form of the work for +making modifications to it. “Object code” means any non-source form of a +work. + +A “Standard Interface” means an interface that either is an official +standard defined by a recognized standards body, or, in the case of interfaces +specified for a particular programming language, one that is widely used among +developers working in that language. + +The “System Libraries” of an executable work include anything, other than +the work as a whole, that (a) is included in the normal form of packaging a Major +Component, but which is not part of that Major Component, and (b) serves only to +enable use of the work with that Major Component, or to implement a Standard Interface +for which an implementation is available to the public in source code form. A +“Major Component”, in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system (if any) on which +the executable work runs, or a compiler used to produce the work, or an object code +interpreter used to run it. + +The “Corresponding Source” for a work in object code form means all the +source code needed to generate, install, and (for an executable work) run the object +code and to modify the work, including scripts to control those activities. However, +it does not include the work's System Libraries, or general-purpose tools or generally +available free programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source includes interface +definition files associated with source files for the work, and the source code for +shared libraries and dynamically linked subprograms that the work is specifically +designed to require, such as by intimate data communication or control flow between +those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate +automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. +2. Basic Permissions. + +All rights granted under this License are granted for the term of copyright on the +Program, and are irrevocable provided the stated conditions are met. This License +explicitly affirms your unlimited permission to run the unmodified Program. The output +from running a covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your rights of fair use +or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without +conditions so long as your license otherwise remains in force. You may convey covered +works to others for the sole purpose of having them make modifications exclusively for +you, or provide you with facilities for running those works, provided that you comply +with the terms of this License in conveying all material for which you do not control +copyright. Those thus making or running the covered works for you must do so +exclusively on your behalf, under your direction and control, on terms that prohibit +them from making any copies of your copyrighted material outside their relationship +with you. + +Conveying under any other circumstances is permitted solely under the conditions +stated below. Sublicensing is not allowed; section 10 makes it unnecessary. +3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological measure under any +applicable law fulfilling obligations under article 11 of the WIPO copyright treaty +adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention +of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of +technological measures to the extent such circumvention is effected by exercising +rights under this License with respect to the covered work, and you disclaim any +intention to limit operation or modification of the work as a means of enforcing, +against the work's users, your or third parties' legal rights to forbid circumvention +of technological measures. +4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you receive it, in any +medium, provided that you conspicuously and appropriately publish on each copy an +appropriate copyright notice; keep intact all notices stating that this License and +any non-permissive terms added in accord with section 7 apply to the code; keep intact +all notices of the absence of any warranty; and give all recipients a copy of this +License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer +support or warranty protection for a fee. +5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to produce it from +the Program, in the form of source code under the terms of section 4, provided that +you also meet all of these conditions: + + * a) The work must carry prominent notices stating that you modified it, and +giving a relevant date. + * b) The work must carry prominent notices stating that it is released under this +License and any conditions added under section 7. This requirement modifies the +requirement in section 4 to “keep intact all notices”. + * c) You must license the entire work, as a whole, under this License to anyone +who comes into possession of a copy. This License will therefore apply, along with any +applicable section 7 additional terms, to the whole of the work, and all its parts, +regardless of how they are packaged. This License gives no permission to license the +work in any other way, but it does not invalidate such permission if you have +separately received it. + * d) If the work has interactive user interfaces, each must display Appropriate +Legal Notices; however, if the Program has interactive interfaces that do not display +Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are +not by their nature extensions of the covered work, and which are not combined with it +such as to form a larger program, in or on a volume of a storage or distribution +medium, is called an “aggregate” if the compilation and its resulting +copyright are not used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work in an aggregate +does not cause this License to apply to the other parts of the aggregate. +6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of sections 4 and 5, +provided that you also convey the machine-readable Corresponding Source under the +terms of this License, in one of these ways: + + * a) Convey the object code in, or embodied in, a physical product (including a +physical distribution medium), accompanied by the Corresponding Source fixed on a +durable physical medium customarily used for software interchange. + * b) Convey the object code in, or embodied in, a physical product (including a +physical distribution medium), accompanied by a written offer, valid for at least +three years and valid for as long as you offer spare parts or customer support for +that product model, to give anyone who possesses the object code either (1) a copy of +the Corresponding Source for all the software in the product that is covered by this +License, on a durable physical medium customarily used for software interchange, for a +price no more than your reasonable cost of physically performing this conveying of +source, or (2) access to copy the Corresponding Source from a network server at no +charge. + * c) Convey individual copies of the object code with a copy of the written offer +to provide the Corresponding Source. This alternative is allowed only occasionally and +noncommercially, and only if you received the object code with such an offer, in +accord with subsection 6b. + * d) Convey the object code by offering access from a designated place (gratis or +for a charge), and offer equivalent access to the Corresponding Source in the same way +through the same place at no further charge. You need not require recipients to copy +the Corresponding Source along with the object code. If the place to copy the object +code is a network server, the Corresponding Source may be on a different server +(operated by you or a third party) that supports equivalent copying facilities, +provided you maintain clear directions next to the object code saying where to find +the Corresponding Source. Regardless of what server hosts the Corresponding Source, +you remain obligated to ensure that it is available for as long as needed to satisfy +these requirements. + * e) Convey the object code using peer-to-peer transmission, provided you inform +other peers where the object code and Corresponding Source of the work are being +offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the +Corresponding Source as a System Library, need not be included in conveying the object +code work. + +A “User Product” is either (1) a “consumer product”, which +means any tangible personal property which is normally used for personal, family, or +household purposes, or (2) anything designed or sold for incorporation into a +dwelling. In determining whether a product is a consumer product, doubtful cases shall +be resolved in favor of coverage. For a particular product received by a particular +user, “normally used” refers to a typical or common use of that class of +product, regardless of the status of the particular user or of the way in which the +particular user actually uses, or expects or is expected to use, the product. A +product is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent the only +significant mode of use of the product. + +“Installation Information” for a User Product means any methods, +procedures, authorization keys, or other information required to install and execute +modified versions of a covered work in that User Product from a modified version of +its Corresponding Source. The information must suffice to ensure that the continued +functioning of the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for +use in, a User Product, and the conveying occurs as part of a transaction in which the +right of possession and use of the User Product is transferred to the recipient in +perpetuity or for a fixed term (regardless of how the transaction is characterized), +the Corresponding Source conveyed under this section must be accompanied by the +Installation Information. But this requirement does not apply if neither you nor any +third party retains the ability to install modified object code on the User Product +(for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to +continue to provide support service, warranty, or updates for a work that has been +modified or installed by the recipient, or for the User Product in which it has been +modified or installed. Access to a network may be denied when the modification itself +materially and adversely affects the operation of the network or violates the rules +and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with +this section must be in a format that is publicly documented (and with an +implementation available to the public in source code form), and must require no +special password or key for unpacking, reading or copying. +7. Additional Terms. + +“Additional permissions” are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. Additional +permissions that are applicable to the entire Program shall be treated as though they +were included in this License, to the extent that they are valid under applicable law. +If additional permissions apply only to part of the Program, that part may be used +separately under those permissions, but the entire Program remains governed by this +License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional +permissions from that copy, or from any part of it. (Additional permissions may be +written to require their own removal in certain cases when you modify the work.) You +may place additional permissions on material, added by you to a covered work, for +which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered +work, you may (if authorized by the copyright holders of that material) supplement the +terms of this License with terms: + + * a) Disclaiming warranty or limiting liability differently from the terms of +sections 15 and 16 of this License; or + * b) Requiring preservation of specified reasonable legal notices or author +attributions in that material or in the Appropriate Legal Notices displayed by works +containing it; or + * c) Prohibiting misrepresentation of the origin of that material, or requiring +that modified versions of such material be marked in reasonable ways as different from +the original version; or + * d) Limiting the use for publicity purposes of names of licensors or authors of +the material; or + * e) Declining to grant rights under trademark law for use of some trade names, +trademarks, or service marks; or + * f) Requiring indemnification of licensors and authors of that material by anyone +who conveys the material (or modified versions of it) with contractual assumptions of +liability to the recipient, for any liability that these contractual assumptions +directly impose on those licensors and authors. + +All other non-permissive additional terms are considered “further +restrictions” within the meaning of section 10. If the Program as you received +it, or any part of it, contains a notice stating that it is governed by this License +along with a term that is a further restriction, you may remove that term. If a +license document contains a further restriction but permits relicensing or conveying +under this License, you may add to a covered work material governed by the terms of +that license document, provided that the further restriction does not survive such +relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the +relevant source files, a statement of the additional terms that apply to those files, +or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a +separately written license, or stated as exceptions; the above requirements apply +either way. +8. Termination. + +You may not propagate or modify a covered work except as expressly provided under this +License. Any attempt otherwise to propagate or modify it is void, and will +automatically terminate your rights under this License (including any patent licenses +granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a +particular copyright holder is reinstated (a) provisionally, unless and until the +copyright holder explicitly and finally terminates your license, and (b) permanently, +if the copyright holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if +the copyright holder notifies you of the violation by some reasonable means, this is +the first time you have received notice of violation of this License (for any work) +from that copyright holder, and you cure the violation prior to 30 days after your +receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of +parties who have received copies or rights from you under this License. If your rights +have been terminated and not permanently reinstated, you do not qualify to receive new +licenses for the same material under section 10. +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy of the +Program. Ancillary propagation of a covered work occurring solely as a consequence of +using peer-to-peer transmission to receive a copy likewise does not require +acceptance. However, nothing other than this License grants you permission to +propagate or modify any covered work. These actions infringe copyright if you do not +accept this License. Therefore, by modifying or propagating a covered work, you +indicate your acceptance of this License to do so. +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives a license +from the original licensors, to run, modify and propagate that work, subject to this +License. You are not responsible for enforcing compliance by third parties with this +License. + +An “entity transaction” is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an organization, or +merging organizations. If propagation of a covered work results from an entity +transaction, each party to that transaction who receives a copy of the work also +receives whatever licenses to the work the party's predecessor in interest had or +could give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if the predecessor +has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or +affirmed under this License. For example, you may not impose a license fee, royalty, +or other charge for exercise of rights granted under this License, and you may not +initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging +that any patent claim is infringed by making, using, selling, offering for sale, or +importing the Program or any portion of it. +11. Patents. + +A “contributor” is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The work thus licensed +is called the contributor's “contributor version”. + +A contributor's “essential patent claims” are all patent claims owned or +controlled by the contributor, whether already acquired or hereafter acquired, that +would be infringed by some manner, permitted by this License, of making, using, or +selling its contributor version, but do not include claims that would be infringed +only as a consequence of further modification of the contributor version. For purposes +of this definition, “control” includes the right to grant patent +sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license +under the contributor's essential patent claims, to make, use, sell, offer for sale, +import and otherwise run, modify and propagate the contents of its contributor +version. + +In the following three paragraphs, a “patent license” is any express +agreement or commitment, however denominated, not to enforce a patent (such as an +express permission to practice a patent or covenant not to sue for patent +infringement). To “grant” such a patent license to a party means to make +such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the +Corresponding Source of the work is not available for anyone to copy, free of charge +and under the terms of this License, through a publicly available network server or +other readily accessible means, then you must either (1) cause the Corresponding +Source to be so available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner consistent with +the requirements of this License, to extend the patent license to downstream +recipients. “Knowingly relying” means you have actual knowledge that, but +for the patent license, your conveying the covered work in a country, or your +recipient's use of the covered work in a country, would infringe one or more +identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, +or propagate by procuring conveyance of, a covered work, and grant a patent license to +some of the parties receiving the covered work authorizing them to use, propagate, +modify or convey a specific copy of the covered work, then the patent license you +grant is automatically extended to all recipients of the covered work and works based +on it. + +A patent license is “discriminatory” if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on the +non-exercise of one or more of the rights that are specifically granted under this +License. You may not convey a covered work if you are a party to an arrangement with a +third party that is in the business of distributing software, under which you make +payment to the third party based on the extent of your activity of conveying the work, +and under which the third party grants, to any of the parties who would receive the +covered work from you, a discriminatory patent license (a) in connection with copies +of the covered work conveyed by you (or copies made from those copies), or (b) +primarily for and in connection with specific products or compilations that contain +the covered work, unless you entered into that arrangement, or that patent license was +granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied +license or other defenses to infringement that may otherwise be available to you under +applicable patent law. +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the conditions +of this License. If you cannot convey a covered work so as to satisfy simultaneously +your obligations under this License and any other pertinent obligations, then as a +consequence you may not convey it at all. For example, if you agree to terms that +obligate you to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this License would be +to refrain entirely from conveying the Program. +13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have permission to link or +combine any covered work with a work licensed under version 3 of the GNU Affero +General Public License into a single combined work, and to convey the resulting work. +The terms of this License will continue to apply to the part which is the covered +work, but the special requirements of the GNU Affero General Public License, section +13, concerning interaction through a network will apply to the combination as such. +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the GNU +General Public License from time to time. Such new versions will be similar in spirit +to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a +certain numbered version of the GNU General Public License “or any later +version” applies to it, you have the option of following the terms and +conditions either of that numbered version or of any later version published by the +Free Software Foundation. If the Program does not specify a version number of the GNU +General Public License, you may choose any version ever published by the Free Software +Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU +General Public License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no +additional obligations are imposed on any author or copyright holder as a result of +your choosing to follow a later version. +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE +QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE +OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE +WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided above cannot be +given local legal effect according to their terms, reviewing courts shall apply local +law that most closely approximates an absolute waiver of all civil liability in +connection with the Program, unless a warranty or assumption of liability accompanies +a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to +the public, the best way to achieve this is to make it free software which everyone +can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to +the start of each source file to most effectively state the exclusion of warranty; and +each file should have at least the “copyright” line and a pointer to +where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like this when +it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate parts of +the General Public License. Of course, your program's commands might be different; for +a GUI interface, you would use an “about box”. + +You should also get your employer (if you work as a programmer) or school, if any, to +sign a “copyright disclaimer” for the program, if necessary. For more +information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + +The GNU General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may consider it +more useful to permit linking proprietary applications with the library. If this is +what you want to do, use the GNU Lesser General Public License instead of this +License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. + +
+ +
+ GPL-3.0-with-GCC-exception + + + +insert GPL v3 text here + +GCC RUNTIME LIBRARY EXCEPTION +Version 3.1, 31 March 2009 + +General information: +http://www.gnu.org/licenses/gcc-exception.html +Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/> +Everyone is permitted to copy and distribute verbatim copies of this license document, +but changing it is not allowed. +This GCC Runtime Library Exception ("Exception") is an additional permission under +section 7 of the GNU General Public License, version 3 ("GPLv3"). It applies to a +given file (the "Runtime Library") that bears a notice placed by the copyright holder +of the file stating that the file is governed by GPLv3 along with this Exception. +When you use GCC to compile a program, GCC may combine portions of certain GCC header +files and runtime libraries with the compiled program. The purpose of this Exception +is to allow compilation of non-GPL (including proprietary) programs to use, in this +way, the header files and runtime libraries covered by this Exception. + +0. Definitions. +A file is an "Independent Module" if it either requires the Runtime Library for +execution after a Compilation Process, or makes use of an interface provided by the +Runtime Library, but is not otherwise based on the Runtime Library. +"GCC" means a version of the GNU Compiler Collection, with or without modifications, +governed by version 3 (or a specified later version) of the GNU General Public License +(GPL) with the option of using any subsequent versions published by the FSF. +"GPL-compatible Software" is software whose conditions of propagation, modification +and use would permit combination with GCC in accord with the license of GCC. +"Target Code" refers to output from any compiler for a real or virtual target +processor architecture, in executable form or suitable for input to an assembler, +loader, linker and/or execution phase. Notwithstanding that, Target Code does not +include data in any format that is used as a compiler intermediate representation, or +used for producing a compiler intermediate representation. +The "Compilation Process" transforms code entirely represented in non-intermediate +languages designed for human-written code, and/or in Java Virtual Machine byte code, +into Target Code. Thus, for example, use of source code generators and preprocessors +need not be considered part of the Compilation Process, since the Compilation Process +can be understood as starting with the output of the generators or preprocessors. +A Compilation Process is "Eligible" if it is done using GCC, alone or with other +GPL-compatible software, or if it is done without using any work based on GCC. For +example, using non-GPL-compatible Software to optimize any GCC intermediate +representations would not qualify as an Eligible Compilation Process. + +1. Grant of Additional Permission. +You have permission to propagate a work of Target Code formed by combining the Runtime +Library with Independent Modules, even if such propagation would otherwise violate the +terms of GPLv3, provided that all Target Code was generated by Eligible Compilation +Processes. You may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. + +2. No Weakening of GCC Copyleft. +The availability of this Exception does not imply any general presumption that +third-party software is unaffected by the copyleft requirements of the license of GCC. + + +
+ +
+ GPL-3.0-with-autoconf-exception + + + +insert GPL v3 text here + +AUTOCONF CONFIGURE SCRIPT EXCEPTION + +Version 3.0, 18 August 2009 + +Copyright © 2009 Free Software Foundation, Inc. <http://fsf.org/> + +Everyone is permitted to copy and distribute verbatim copies of this license document, +but changing it is not allowed. + +This Exception is an additional permission under section 7 of the GNU General Public +License, version 3 ("GPLv3"). It applies to a given file that bears a notice placed by +the copyright holder of the file stating that the file is governed by GPLv3 along with +this Exception. + +The purpose of this Exception is to allow distribution of Autoconf`s typical output +under terms of the recipient`s choice (including proprietary). + +0. Definitions. +"Covered Code" is the source or object code of a version of Autoconf that is a covered +work under this License. + +"Normally Copied Code" for a version of Autoconf means all parts of its Covered Code +which that version can copy from its code (i.e., not from its input file) into its +minimally verbose, non-debugging and non-tracing output. + +"Ineligible Code" is Covered Code that is not Normally Copied Code. + +1. Grant of Additional Permission. +You have permission to propagate output of Autoconf, even if such propagation would +otherwise violate the terms of GPLv3. However, if by modifying Autoconf you cause any +Ineligible Code of the version you received to become Normally Copied Code of your +modified version, then you void this Exception for the resulting covered work. If you +convey that resulting covered work, you must remove this Exception in accordance with +the second paragraph of Section 7 of GPLv3. + +2. No Weakening of Autoconf Copyleft. +The availability of this Exception does not imply any general presumption that +third-party software is unaffected by the copyleft requirements of the license of +Autoconf. + + +
+ +
+ LGPL-2.0 + + +GNU LIBRARY GENERAL PUBLIC LICENSE + + + +Version 2, June 1991 + + + +Copyright (C) 1991 Free Software Foundation, Inc. + +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + +Everyone is permitted to copy and distribute verbatim copies + +of this license document, but changing it is not allowed. + + + +[This is the first released version of the library GPL. It is + + numbered 2 because it goes with version 2 of the ordinary GPL.] + +Preamble + + + +The licenses for most software are designed to take away your freedom to share and +change it. By contrast, the GNU General Public Licenses are intended to guarantee your +freedom to share and change free software--to make sure the software is free for all +its users. + + + +This license, the Library General Public License, applies to some specially designated +Free Software Foundation software, and to any other libraries whose authors decide to +use it. You can use it for your libraries, too. + + + +When we speak of free software, we are referring to freedom, not price. Our General +Public Licenses are designed to make sure that you have the freedom to distribute +copies of free software (and charge for this service if you wish), that you receive +source code or can get it if you want it, that you can change the software or use +pieces of it in new free programs; and that you know you can do these things. + + + +To protect your rights, we need to make restrictions that forbid anyone to deny you +these rights or to ask you to surrender the rights. These restrictions translate to +certain responsibilities for you if you distribute copies of the library, or if you +modify it. + + + +For example, if you distribute copies of the library, whether gratis or for a fee, you +must give the recipients all the rights that we gave you. You must make sure that +they, too, receive or can get the source code. If you link a program with the library, +you must provide complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling it. And you must +show them these terms so they know their rights. + + + +Our method of protecting your rights has two steps: (1) copyright the library, and (2) +offer you this license which gives you legal permission to copy, distribute and/or +modify the library. + + + +Also, for each distributor's protection, we want to make certain that everyone +understands that there is no warranty for this free library. If the library is +modified by someone else and passed on, we want its recipients to know that what they +have is not the original version, so that any problems introduced by others will not +reflect on the original authors' reputations. + + + +Finally, any free program is threatened constantly by software patents. We wish to +avoid the danger that companies distributing free software will individually obtain +patent licenses, thus in effect transforming the program into proprietary software. To +prevent this, we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + + +Most GNU software, including some libraries, is covered by the ordinary GNU General +Public License, which was designed for utility programs. This license, the GNU Library +General Public License, applies to certain designated libraries. This license is quite +different from the ordinary one; be sure to read it in full, and don't assume that +anything in it is the same as in the ordinary license. + + + +The reason we have a separate public license for some libraries is that they blur the +distinction we usually make between modifying or adding to a program and simply using +it. Linking a program with a library, without changing the library, is in some sense +simply using the library, and is analogous to running a utility program or application +program. However, in a textual and legal sense, the linked executable is a combined +work, a derivative of the original library, and the ordinary General Public License +treats it as such. + + + +Because of this blurred distinction, using the ordinary General Public License for +libraries did not effectively promote software sharing, because most developers did +not use the libraries. We concluded that weaker conditions might promote sharing +better. + + + +However, unrestricted linking of non-free programs would deprive the users of those +programs of all benefit from the free status of the libraries themselves. This Library +General Public License is intended to permit developers of non-free programs to use +free libraries, while preserving your freedom as a user of such programs to change the +free libraries that are incorporated in them. (We have not seen how to achieve this as +regards changes in header files, but we have achieved it as regards changes in the +actual functions of the Library.) The hope is that this will lead to faster +development of free libraries. + + + +The precise terms and conditions for copying, distribution and modification follow. +Pay close attention to the difference between a "work based on the library" and a +"work that uses the library". The former contains code derived from the library, while +the latter only works together with the library. + + + +Note that it is possible for a library to be covered by the ordinary General Public +License rather than by this special one. + + + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + + +0. This License Agreement applies to any software library which contains a notice +placed by the copyright holder or other authorized party saying it may be distributed +under the terms of this Library General Public License (also called "this License"). +Each licensee is addressed as "you". + + + +A "library" means a collection of software functions and/or data prepared so as to be +conveniently linked with application programs (which use some of those functions and +data) to form executables. + + + +The "Library", below, refers to any such software library or work which has been +distributed under these terms. A "work based on the Library" means either the Library +or any derivative work under copyright law: that is to say, a work containing the +Library or a portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is included without +limitation in the term "modification".) + + + +"Source code" for a work means the preferred form of the work for making modifications +to it. For a library, complete source code means all the source code for all modules +it contains, plus any associated interface definition files, plus the scripts used to +control compilation and installation of the library. + + + +Activities other than copying, distribution and modification are not covered by this +License; they are outside its scope. The act of running a program using the Library is +not restricted, and output from such a program is covered only if its contents +constitute a work based on the Library (independent of the use of the Library in a +tool for writing it). Whether that is true depends on what the Library does and what +the program that uses the Library does. + + + +1. You may copy and distribute verbatim copies of the Library's complete source code +as you receive it, in any medium, provided that you conspicuously and appropriately +publish on each copy an appropriate copyright notice and disclaimer of warranty; keep +intact all the notices that refer to this License and to the absence of any warranty; +and distribute a copy of this License along with the Library. + + + +You may charge a fee for the physical act of transferring a copy, and you may at your +option offer warranty protection in exchange for a fee. + + + +2. You may modify your copy or copies of the Library or any portion of it, thus +forming a work based on the Library, and copy and distribute such modifications or +work under the terms of Section 1 above, provided that you also meet all of these +conditions: + + + +a) The modified work must itself be a software library. + +b) You must cause the files modified to carry prominent notices stating that you +changed the files and the date of any change. + +c) You must cause the whole of the work to be licensed at no charge to all third +parties under the terms of this License. + +d) If a facility in the modified Library refers to a function or a table of data to be +supplied by an application program that uses the facility, other than as an argument +passed when the facility is invoked, then you must make a good faith effort to ensure +that, in the event an application does not supply such function or table, the facility +still operates, and performs whatever part of its purpose remains meaningful. + +(For example, a function in a library to compute square roots has a purpose that is +entirely well-defined independent of the application. Therefore, Subsection 2d +requires that any application-supplied function or table used by this function must be +optional: if the application does not supply it, the square root function must still +compute square roots.) + + + +These requirements apply to the modified work as a whole. If identifiable sections of +that work are not derived from the Library, and can be reasonably considered +independent and separate works in themselves, then this License, and its terms, do not +apply to those sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based on the Library, +the distribution of the whole must be on the terms of this License, whose permissions +for other licensees extend to the entire whole, and thus to each and every part +regardless of who wrote it. + + + +Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to control +the distribution of derivative or collective works based on the Library. + + + +In addition, mere aggregation of another work not based on the Library with the +Library (or with a work based on the Library) on a volume of a storage or distribution +medium does not bring the other work under the scope of this License. + + + +3. You may opt to apply the terms of the ordinary GNU General Public License instead +of this License to a given copy of the Library. To do this, you must alter all the +notices that refer to this License, so that they refer to the ordinary GNU General +Public License, version 2, instead of to this License. (If a newer version than +version 2 of the ordinary GNU General Public License has appeared, then you can +specify that version instead if you wish.) Do not make any other change in these +notices. + + + +Once this change is made in a given copy, it is irreversible for that copy, so the +ordinary GNU General Public License applies to all subsequent copies and derivative +works made from that copy. + + + +This option is useful when you wish to copy part of the code of the Library into a +program that is not a library. + + + +4. You may copy and distribute the Library (or a portion or derivative of it, under +Section 2) in object code or executable form under the terms of Sections 1 and 2 above +provided that you accompany it with the complete corresponding machine-readable source +code, which must be distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange. + + + +If distribution of object code is made by offering access to copy from a designated +place, then offering equivalent access to copy the source code from the same place +satisfies the requirement to distribute the source code, even though third parties are +not compelled to copy the source along with the object code. + + + +5. A program that contains no derivative of any portion of the Library, but is +designed to work with the Library by being compiled or linked with it, is called a +"work that uses the Library". Such a work, in isolation, is not a derivative work of +the Library, and therefore falls outside the scope of this License. + + + +However, linking a "work that uses the Library" with the Library creates an executable +that is a derivative of the Library (because it contains portions of the Library), +rather than a "work that uses the library". The executable is therefore covered by +this License. Section 6 states terms for distribution of such executables. + + + +When a "work that uses the Library" uses material from a header file that is part of +the Library, the object code for the work may be a derivative work of the Library even +though the source code is not. Whether this is true is especially significant if the +work can be linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + + +If such an object file uses only numerical parameters, data structure layouts and +accessors, and small macros and small inline functions (ten lines or less in length), +then the use of the object file is unrestricted, regardless of whether it is legally a +derivative work. (Executables containing this object code plus portions of the Library +will still fall under Section 6.) + + + +Otherwise, if the work is a derivative of the Library, you may distribute the object +code for the work under the terms of Section 6. Any executables containing that work +also fall under Section 6, whether or not they are linked directly with the Library +itself. + + + +6. As an exception to the Sections above, you may also compile or link a "work that +uses the Library" with the Library to produce a work containing portions of the +Library, and distribute that work under terms of your choice, provided that the terms +permit modification of the work for the customer's own use and reverse engineering for +debugging such modifications. + + + +You must give prominent notice with each copy of the work that the Library is used in +it and that the Library and its use are covered by this License. You must supply a +copy of this License. If the work during execution displays copyright notices, you +must include the copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one of these things: + + + +a) Accompany the work with the complete corresponding machine-readable source code for +the Library including whatever changes were used in the work (which must be +distributed under Sections 1 and 2 above); and, if the work is an executable linked +with the Library, with the complete machine-readable "work that uses the Library", as +object code and/or source code, so that the user can modify the Library and then +relink to produce a modified executable containing the modified Library. (It is +understood that the user who changes the contents of definitions files in the Library +will not necessarily be able to recompile the application to use the modified +definitions.) + +b) Accompany the work with a written offer, valid for at least three years, to give +the same user the materials specified in Subsection 6a, above, for a charge no more +than the cost of performing this distribution. + +c) If distribution of the work is made by offering access to copy from a designated +place, offer equivalent access to copy the above specified materials from the same +place. + +d) Verify that the user has already received a copy of these materials or that you +have already sent this user a copy. + +For an executable, the required form of the "work that uses the Library" must include +any data and utility programs needed for reproducing the executable from it. However, +as a special exception, the source code distributed need not include anything that is +normally distributed (in either source or binary form) with the major components +(compiler, kernel, and so on) of the operating system on which the executable runs, +unless that component itself accompanies the executable. + + + +It may happen that this requirement contradicts the license restrictions of other +proprietary libraries that do not normally accompany the operating system. Such a +contradiction means you cannot use both them and the Library together in an executable +that you distribute. + + + +7. You may place library facilities that are a work based on the Library side-by-side +in a single library together with other library facilities not covered by this +License, and distribute such a combined library, provided that the separate +distribution of the work based on the Library and of the other library facilities is +otherwise permitted, and provided that you do these two things: + + + +a) Accompany the combined library with a copy of the same work based on the Library, +uncombined with any other library facilities. This must be distributed under the terms +of the Sections above. + +b) Give prominent notice with the combined library of the fact that part of it is a +work based on the Library, and explaining where to find the accompanying uncombined +form of the same work. + +8. You may not copy, modify, sublicense, link with, or distribute the Library except +as expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense, link with, or distribute the Library is void, and will automatically +terminate your rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses terminated so long +as such parties remain in full compliance. + + + +9. You are not required to accept this License, since you have not signed it. However, +nothing else grants you permission to modify or distribute the Library or its +derivative works. These actions are prohibited by law if you do not accept this +License. Therefore, by modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and all its terms and +conditions for copying, distributing or modifying the Library or works based on it. + + + +10. Each time you redistribute the Library (or any work based on the Library), the +recipient automatically receives a license from the original licensor to copy, +distribute, link with or modify the Library subject to these terms and conditions. You +may not impose any further restrictions on the recipients' exercise of the rights +granted herein. You are not responsible for enforcing compliance by third parties to +this License. + + + +11. If, as a consequence of a court judgment or allegation of patent infringement or +for any other reason (not limited to patent issues), conditions are imposed on you +(whether by court order, agreement or otherwise) that contradict the conditions of +this License, they do not excuse you from the conditions of this License. If you +cannot distribute so as to satisfy simultaneously your obligations under this License +and any other pertinent obligations, then as a consequence you may not distribute the +Library at all. For example, if a patent license would not permit royalty-free +redistribution of the Library by all those who receive copies directly or indirectly +through you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + + + +If any portion of this section is held invalid or unenforceable under any particular +circumstance, the balance of the section is intended to apply, and the section as a +whole is intended to apply in other circumstances. + + + +It is not the purpose of this section to induce you to infringe any patents or other +property right claims or to contest validity of any such claims; this section has the +sole purpose of protecting the integrity of the free software distribution system +which is implemented by public license practices. Many people have made generous +contributions to the wide range of software distributed through that system in +reliance on consistent application of that system; it is up to the author/donor to +decide if he or she is willing to distribute software through any other system and a +licensee cannot impose that choice. + + + +This section is intended to make thoroughly clear what is believed to be a consequence +of the rest of this License. + + + +12. If the distribution and/or use of the Library is restricted in certain countries +either by patents or by copyrighted interfaces, the original copyright holder who +places the Library under this License may add an explicit geographical distribution +limitation excluding those countries, so that distribution is permitted only in or +among countries not thus excluded. In such case, this License incorporates the +limitation as if written in the body of this License. + + + +13. The Free Software Foundation may publish revised and/or new versions of the +Library General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems or +concerns. + + + +Each version is given a distinguishing version number. If the Library specifies a +version number of this License which applies to it and "any later version", you have +the option of following the terms and conditions either of that version or of any +later version published by the Free Software Foundation. If the Library does not +specify a license version number, you may choose any version ever published by the +Free Software Foundation. + + + +14. If you wish to incorporate parts of the Library into other free programs whose +distribution conditions are incompatible with these, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, write +to the Free Software Foundation; we sometimes make exceptions for this. Our decision +will be guided by the two goals of preserving the free status of all derivatives of +our free software and of promoting the sharing and reuse of software generally. + + + +NO WARRANTY + + + +15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE +LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN +WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE +RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY +PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + + +16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE +OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE +WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + + +END OF TERMS AND CONDITIONS + + + +How to Apply These Terms to Your New Libraries + + + +If you develop a new library, and you want it to be of the greatest possible use to +the public, we recommend making it free software that everyone can redistribute and +change. You can do so by permitting redistribution under these terms (or, +alternatively, under the terms of the ordinary General Public License). + + + +To apply these terms, attach the following notices to the library. It is safest to +attach them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a pointer to +where the full notice is found. + + + +one line to give the library's name and an idea of what it does. + +Copyright (C) year name of author + + + +This library is free software; you can redistribute it and/or + +modify it under the terms of the GNU Library General Public + +License as published by the Free Software Foundation; either + +version 2 of the License, or (at your option) any later version. + + + +This library is distributed in the hope that it will be useful, + +but WITHOUT ANY WARRANTY; without even the implied warranty of + +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + +Library General Public License for more details. + + + +You should have received a copy of the GNU Library General Public + +License along with this library; if not, write to the + +Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + +Boston, MA 02110-1301, USA. + +Also add information on how to contact you by electronic and paper mail. + + + +You should also get your employer (if you work as a programmer) or your school, if +any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; +alter the names: + + + +Yoyodyne, Inc., hereby disclaims all copyright interest in + +the library `Frob' (a library for tweaking knobs) written + +by James Random Hacker. + + + +signature of Ty Coon, 1 April 1990 + +Ty Coon, President of Vice + +That's all there is to it! + + +
+ +
+ LGPL-2.1 + + + +GNU LESSER GENERAL PUBLIC LICENSE + +Version 2.1, February 1999 + +Copyright (C) 1991, 1999 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] +Preamble + +The licenses for most software are designed to take away your freedom to share and +change it. By contrast, the GNU General Public Licenses are intended to guarantee your +freedom to share and change free software--to make sure the software is free for all +its users. + +This license, the Lesser General Public License, applies to some specially designated +software packages--typically libraries--of the Free Software Foundation and other +authors who decide to use it. You can use it too, but we suggest you first think +carefully about whether this license or the ordinary General Public License is the +better strategy to use in any particular case, based on the explanations below. + +When we speak of free software, we are referring to freedom of use, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish); that you +receive source code or can get it if you want it; that you can change the software and +use pieces of it in new free programs; and that you are informed that you can do these +things. + +To protect your rights, we need to make restrictions that forbid distributors to deny +you these rights or to ask you to surrender these rights. These restrictions translate +to certain responsibilities for you if you distribute copies of the library or if you +modify it. + +For example, if you distribute copies of the library, whether gratis or for a fee, you +must give the recipients all the rights that we gave you. You must make sure that +they, too, receive or can get the source code. If you link other code with the +library, you must provide complete object files to the recipients, so that they can +relink them with the library after making changes to the library and recompiling it. +And you must show them these terms so they know their rights. + +We protect your rights with a two-step method: (1) we copyright the library, and (2) +we offer you this license, which gives you legal permission to copy, distribute and/or +modify the library. + +To protect each distributor, we want to make it very clear that there is no warranty +for the free library. Also, if the library is modified by someone else and passed on, +the recipients should know that what they have is not the original version, so that +the original author`s reputation will not be affected by problems that might be +introduced by others. + +Finally, software patents pose a constant threat to the existence of any free program. +We wish to make sure that a company cannot effectively restrict the users of a free +program by obtaining a restrictive license from a patent holder. Therefore, we insist +that any patent license obtained for a version of the library must be consistent with +the full freedom of use specified in this license. + +Most GNU software, including some libraries, is covered by the ordinary GNU General +Public License. This license, the GNU Lesser General Public License, applies to +certain designated libraries, and is quite different from the ordinary General Public +License. We use this license for certain libraries in order to permit linking those +libraries into non-free programs. + +When a program is linked with a library, whether statically or using a shared library, +the combination of the two is legally speaking a combined work, a derivative of the +original library. The ordinary General Public License therefore permits such linking +only if the entire combination fits its criteria of freedom. The Lesser General Public +License permits more lax criteria for linking other code with the library. + +We call this license the "Lesser" General Public License because it does Less to +protect the user`s freedom than the ordinary General Public License. It also provides +other free software developers Less of an advantage over competing non-free programs. +These disadvantages are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain special +circumstances. + +For example, on rare occasions, there may be a special need to encourage the widest +possible use of a certain library, so that it becomes a de-facto standard. To achieve +this, non-free programs must be allowed to use the library. A more frequent case is +that a free library does the same job as widely used non-free libraries. In this case, +there is little to gain by limiting the free library to free software only, so we use +the Lesser General Public License. + +In other cases, permission to use a particular library in non-free programs enables a +greater number of people to use a large body of free software. For example, permission +to use the GNU C Library in non-free programs enables many more people to use the +whole GNU operating system, as well as its variant, the GNU/Linux operating system. + +Although the Lesser General Public License is Less protective of the users` freedom, +it does ensure that the user of a program that is linked with the Library has the +freedom and the wherewithal to run that program using a modified version of the +Library. + +The precise terms and conditions for copying, distribution and modification follow. +Pay close attention to the difference between a "work based on the library" and a +"work that uses the library". The former contains code derived from the library, +whereas the latter must be combined with the library in order to run. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License Agreement applies to any software library or other program which +contains a notice placed by the copyright holder or other authorized party saying it +may be distributed under the terms of this Lesser General Public License (also called +"this License"). Each licensee is addressed as "you". + +A "library" means a collection of software functions and/or data prepared so as to be +conveniently linked with application programs (which use some of those functions and +data) to form executables. + +The "Library", below, refers to any such software library or work which has been +distributed under these terms. A "work based on the Library" means either the Library +or any derivative work under copyright law: that is to say, a work containing the +Library or a portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is included without +limitation in the term "modification".) + +"Source code" for a work means the preferred form of the work for making modifications +to it. For a library, complete source code means all the source code for all modules +it contains, plus any associated interface definition files, plus the scripts used to +control compilation and installation of the library. + +Activities other than copying, distribution and modification are not covered by this +License; they are outside its scope. The act of running a program using the Library is +not restricted, and output from such a program is covered only if its contents +constitute a work based on the Library (independent of the use of the Library in a +tool for writing it). Whether that is true depends on what the Library does and what +the program that uses the Library does. + +1. You may copy and distribute verbatim copies of the Library`s complete source code +as you receive it, in any medium, provided that you conspicuously and appropriately +publish on each copy an appropriate copyright notice and disclaimer of warranty; keep +intact all the notices that refer to this License and to the absence of any warranty; +and distribute a copy of this License along with the Library. + +You may charge a fee for the physical act of transferring a copy, and you may at your +option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Library or any portion of it, thus +forming a work based on the Library, and copy and distribute such modifications or +work under the terms of Section 1 above, provided that you also meet all of these +conditions: + +a) The modified work must itself be a software library. +b) You must cause the files modified to carry prominent notices stating that you +changed the files and the date of any change. +c) You must cause the whole of the work to be licensed at no charge to all third +parties under the terms of this License. +d) If a facility in the modified Library refers to a function or a table of data to be +supplied by an application program that uses the facility, other than as an argument +passed when the facility is invoked, then you must make a good faith effort to ensure +that, in the event an application does not supply such function or table, the facility +still operates, and performs whatever part of its purpose remains meaningful. +(For example, a function in a library to compute square roots has a purpose that is +entirely well-defined independent of the application. Therefore, Subsection 2d +requires that any application-supplied function or table used by this function must be +optional: if the application does not supply it, the square root function must still +compute square roots.) + +These requirements apply to the modified work as a whole. If identifiable sections of +that work are not derived from the Library, and can be reasonably considered +independent and separate works in themselves, then this License, and its terms, do not +apply to those sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based on the Library, +the distribution of the whole must be on the terms of this License, whose permissions +for other licensees extend to the entire whole, and thus to each and every part +regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to control +the distribution of derivative or collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library with the +Library (or with a work based on the Library) on a volume of a storage or distribution +medium does not bring the other work under the scope of this License. + +3. You may opt to apply the terms of the ordinary GNU General Public License instead +of this License to a given copy of the Library. To do this, you must alter all the +notices that refer to this License, so that they refer to the ordinary GNU General +Public License, version 2, instead of to this License. (If a newer version than +version 2 of the ordinary GNU General Public License has appeared, then you can +specify that version instead if you wish.) Do not make any other change in these +notices. + +Once this change is made in a given copy, it is irreversible for that copy, so the +ordinary GNU General Public License applies to all subsequent copies and derivative +works made from that copy. + +This option is useful when you wish to copy part of the code of the Library into a +program that is not a library. + +4. You may copy and distribute the Library (or a portion or derivative of it, under +Section 2) in object code or executable form under the terms of Sections 1 and 2 above +provided that you accompany it with the complete corresponding machine-readable source +code, which must be distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange. + +If distribution of object code is made by offering access to copy from a designated +place, then offering equivalent access to copy the source code from the same place +satisfies the requirement to distribute the source code, even though third parties are +not compelled to copy the source along with the object code. + +5. A program that contains no derivative of any portion of the Library, but is +designed to work with the Library by being compiled or linked with it, is called a +"work that uses the Library". Such a work, in isolation, is not a derivative work of +the Library, and therefore falls outside the scope of this License. + +However, linking a "work that uses the Library" with the Library creates an executable +that is a derivative of the Library (because it contains portions of the Library), +rather than a "work that uses the library". The executable is therefore covered by +this License. Section 6 states terms for distribution of such executables. + +When a "work that uses the Library" uses material from a header file that is part of +the Library, the object code for the work may be a derivative work of the Library even +though the source code is not. Whether this is true is especially significant if the +work can be linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + +If such an object file uses only numerical parameters, data structure layouts and +accessors, and small macros and small inline functions (ten lines or less in length), +then the use of the object file is unrestricted, regardless of whether it is legally a +derivative work. (Executables containing this object code plus portions of the Library +will still fall under Section 6.) + +Otherwise, if the work is a derivative of the Library, you may distribute the object +code for the work under the terms of Section 6. Any executables containing that work +also fall under Section 6, whether or not they are linked directly with the Library +itself. + +6. As an exception to the Sections above, you may also combine or link a "work that +uses the Library" with the Library to produce a work containing portions of the +Library, and distribute that work under terms of your choice, provided that the terms +permit modification of the work for the customer`s own use and reverse engineering for +debugging such modifications. + +You must give prominent notice with each copy of the work that the Library is used in +it and that the Library and its use are covered by this License. You must supply a +copy of this License. If the work during execution displays copyright notices, you +must include the copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one of these things: + +a) Accompany the work with the complete corresponding machine-readable source code for +the Library including whatever changes were used in the work (which must be +distributed under Sections 1 and 2 above); and, if the work is an executable linked +with the Library, with the complete machine-readable "work that uses the Library", as +object code and/or source code, so that the user can modify the Library and then +relink to produce a modified executable containing the modified Library. (It is +understood that the user who changes the contents of definitions files in the Library +will not necessarily be able to recompile the application to use the modified +definitions.) +b) Use a suitable shared library mechanism for linking with the Library. A suitable +mechanism is one that (1) uses at run time a copy of the library already present on +the user`s computer system, rather than copying library functions into the executable, +and (2) will operate properly with a modified version of the library, if the user +installs one, as long as the modified version is interface-compatible with the version +that the work was made with. +c) Accompany the work with a written offer, valid for at least three years, to give +the same user the materials specified in Subsection 6a, above, for a charge no more +than the cost of performing this distribution. +d) If distribution of the work is made by offering access to copy from a designated +place, offer equivalent access to copy the above specified materials from the same +place. +e) Verify that the user has already received a copy of these materials or that you +have already sent this user a copy. +For an executable, the required form of the "work that uses the Library" must include +any data and utility programs needed for reproducing the executable from it. However, +as a special exception, the materials to be distributed need not include anything that +is normally distributed (in either source or binary form) with the major components +(compiler, kernel, and so on) of the operating system on which the executable runs, +unless that component itself accompanies the executable. + +It may happen that this requirement contradicts the license restrictions of other +proprietary libraries that do not normally accompany the operating system. Such a +contradiction means you cannot use both them and the Library together in an executable +that you distribute. + +7. You may place library facilities that are a work based on the Library side-by-side +in a single library together with other library facilities not covered by this +License, and distribute such a combined library, provided that the separate +distribution of the work based on the Library and of the other library facilities is +otherwise permitted, and provided that you do these two things: + +a) Accompany the combined library with a copy of the same work based on the Library, +uncombined with any other library facilities. This must be distributed under the terms +of the Sections above. +b) Give prominent notice with the combined library of the fact that part of it is a +work based on the Library, and explaining where to find the accompanying uncombined +form of the same work. +8. You may not copy, modify, sublicense, link with, or distribute the Library except +as expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense, link with, or distribute the Library is void, and will automatically +terminate your rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses terminated so long +as such parties remain in full compliance. + +9. You are not required to accept this License, since you have not signed it. However, +nothing else grants you permission to modify or distribute the Library or its +derivative works. These actions are prohibited by law if you do not accept this +License. Therefore, by modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and all its terms and +conditions for copying, distributing or modifying the Library or works based on it. + +10. Each time you redistribute the Library (or any work based on the Library), the +recipient automatically receives a license from the original licensor to copy, +distribute, link with or modify the Library subject to these terms and conditions. You +may not impose any further restrictions on the recipients` exercise of the rights +granted herein. You are not responsible for enforcing compliance by third parties with +this License. + +11. If, as a consequence of a court judgment or allegation of patent infringement or +for any other reason (not limited to patent issues), conditions are imposed on you +(whether by court order, agreement or otherwise) that contradict the conditions of +this License, they do not excuse you from the conditions of this License. If you +cannot distribute so as to satisfy simultaneously your obligations under this License +and any other pertinent obligations, then as a consequence you may not distribute the +Library at all. For example, if a patent license would not permit royalty-free +redistribution of the Library by all those who receive copies directly or indirectly +through you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any particular +circumstance, the balance of the section is intended to apply, and the section as a +whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other +property right claims or to contest validity of any such claims; this section has the +sole purpose of protecting the integrity of the free software distribution system +which is implemented by public license practices. Many people have made generous +contributions to the wide range of software distributed through that system in +reliance on consistent application of that system; it is up to the author/donor to +decide if he or she is willing to distribute software through any other system and a +licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a consequence +of the rest of this License. + +12. If the distribution and/or use of the Library is restricted in certain countries +either by patents or by copyrighted interfaces, the original copyright holder who +places the Library under this License may add an explicit geographical distribution +limitation excluding those countries, so that distribution is permitted only in or +among countries not thus excluded. In such case, this License incorporates the +limitation as if written in the body of this License. + +13. The Free Software Foundation may publish revised and/or new versions of the Lesser +General Public License from time to time. Such new versions will be similar in spirit +to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library specifies a +version number of this License which applies to it and "any later version", you have +the option of following the terms and conditions either of that version or of any +later version published by the Free Software Foundation. If the Library does not +specify a license version number, you may choose any version ever published by the +Free Software Foundation. + +14. If you wish to incorporate parts of the Library into other free programs whose +distribution conditions are incompatible with these, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, write +to the Free Software Foundation; we sometimes make exceptions for this. Our decision +will be guided by the two goals of preserving the free status of all derivatives of +our free software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE +LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN +WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE +RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY +PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE +OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE +WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Libraries + +If you develop a new library, and you want it to be of the greatest possible use to +the public, we recommend making it free software that everyone can redistribute and +change. You can do so by permitting redistribution under these terms (or, +alternatively, under the terms of the ordinary General Public License). + +To apply these terms, attach the following notices to the library. It is safest to +attach them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a pointer to +where the full notice is found. + +one line to give the library`s name and an idea of what it does. +Copyright (C) year name of author + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your school, if +any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; +alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in +the library `Frob` (a library for tweaking knobs) written +by James Random Hacker. + +signature of Ty Coon, 1 April 1990 +Ty Coon, President of Vice +That`s all there is to it! + + +
+ +
+ LGPL-3.0 + + +GNU LESSER GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/> + +Everyone is permitted to copy and distribute verbatim copies of this license document, +but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the terms and +conditions of version 3 of the GNU General Public License, supplemented by the +additional permissions listed below. +0. Additional Definitions. + +As used herein, “this License” refers to version 3 of the GNU Lesser +General Public License, and the “GNU GPL” refers to version 3 of the GNU +General Public License. + +“The Library” refers to a covered work governed by this License, other +than an Application or a Combined Work as defined below. + +An “Application” is any work that makes use of an interface provided by +the Library, but which is not otherwise based on the Library. Defining a subclass of a +class defined by the Library is deemed a mode of using an interface provided by the +Library. + +A “Combined Work” is a work produced by combining or linking an +Application with the Library. The particular version of the Library with which the +Combined Work was made is also called the “Linked Version”. + +The “Minimal Corresponding Source” for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code for portions of +the Combined Work that, considered in isolation, are based on the Application, and not +on the Linked Version. + +The “Corresponding Application Code” for a Combined Work means the object +code and/or source code for the Application, including any data and utility programs +needed for reproducing the Combined Work from the Application, but excluding the +System Libraries of the Combined Work. +1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License without being +bound by section 3 of the GNU GPL. +2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a facility refers to +a function or data to be supplied by an Application that uses the facility (other than +as an argument passed when the facility is invoked), then you may convey a copy of the +modified version: + + * a) under this License, provided that you make a good faith effort to ensure +that, in the event an Application does not supply the function or data, the facility +still operates, and performs whatever part of its purpose remains meaningful, or + * b) under the GNU GPL, with none of the additional permissions of this License +applicable to that copy. + +3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a header file +that is part of the Library. You may convey such object code under terms of your +choice, provided that, if the incorporated material is not limited to numerical +parameters, data structure layouts and accessors, or small macros, inline functions +and templates (ten or fewer lines in length), you do both of the following: + + * a) Give prominent notice with each copy of the object code that the Library is +used in it and that the Library and its use are covered by this License. + * b) Accompany the object code with a copy of the GNU GPL and this license +document. + +4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken together, +effectively do not restrict modification of the portions of the Library contained in +the Combined Work and reverse engineering for debugging such modifications, if you +also do each of the following: + + * a) Give prominent notice with each copy of the Combined Work that the Library is +used in it and that the Library and its use are covered by this License. + * b) Accompany the Combined Work with a copy of the GNU GPL and this license +document. + * c) For a Combined Work that displays copyright notices during execution, include +the copyright notice for the Library among these notices, as well as a reference +directing the user to the copies of the GNU GPL and this license document. + * d) Do one of the following: + o 0) Convey the Minimal Corresponding Source under the terms of this +License, and the Corresponding Application Code in a form suitable for, and under +terms that permit, the user to recombine or relink the Application with a modified +version of the Linked Version to produce a modified Combined Work, in the manner +specified by section 6 of the GNU GPL for conveying Corresponding Source. + o 1) Use a suitable shared library mechanism for linking with the Library. A +suitable mechanism is one that (a) uses at run time a copy of the Library already +present on the user's computer system, and (b) will operate properly with a modified +version of the Library that is interface-compatible with the Linked Version. + * e) Provide Installation Information, but only if you would otherwise be required +to provide such information under section 6 of the GNU GPL, and only to the extent +that such information is necessary to install and execute a modified version of the +Combined Work produced by recombining or relinking the Application with a modified +version of the Linked Version. (If you use option 4d0, the Installation Information +must accompany the Minimal Corresponding Source and Corresponding Application Code. If +you use option 4d1, you must provide the Installation Information in the manner +specified by section 6 of the GNU GPL for conveying Corresponding Source.) + +5. Combined Libraries. + +You may place library facilities that are a work based on the Library side by side in +a single library together with other library facilities that are not Applications and +are not covered by this License, and convey such a combined library under terms of +your choice, if you do both of the following: + + * a) Accompany the combined library with a copy of the same work based on the +Library, uncombined with any other library facilities, conveyed under the terms of +this License. + * b) Give prominent notice with the combined library that part of it is a work +based on the Library, and explaining where to find the accompanying uncombined form of +the same work. + +6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions of the GNU Lesser +General Public License from time to time. Such new versions will be similar in spirit +to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library as you received +it specifies that a certain numbered version of the GNU Lesser General Public License +“or any later version” applies to it, you have the option of following +the terms and conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you received it does not +specify a version number of the GNU Lesser General Public License, you may choose any +version of the GNU Lesser General Public License ever published by the Free Software +Foundation. + +If the Library as you received it specifies that a proxy can decide whether future +versions of the GNU Lesser General Public License shall apply, that proxy's public +statement of acceptance of any version is permanent authorization for you to choose +that version for the Library. + +
+ +
+ Libpng + + + +This copy of the libpng notices is provided for your convenience. In case of +any discrepancy between this copy and the notices in the file png.h that is +included in the libpng distribution, the latter shall prevail. + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + +If you modify libpng you may insert additional notices immediately following +this sentence. + +This code is released under the libpng license. + +libpng versions 1.2.6, August 15, 2004, through 1.4.5, December 9, 2010, are +Copyright (c) 2004, 2006-2010 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.2.5 +with the following individual added to the list of Contributing Authors + + Cosmin Truta + +libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are +Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.0.6 +with the following individuals added to the list of Contributing Authors + + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-0.96, +with the following individuals added to the list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996, 1997 Andreas Dilger +Distributed according to the same disclaimer and license as libpng-0.88, +with the following individuals added to the list of Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing Authors +and Group 42, Inc. disclaim all warranties, expressed or implied, +including, without limitation, the warranties of merchantability and of +fitness for any purpose. The Contributing Authors and Group 42, Inc. +assume no liability for direct, indirect, incidental, special, exemplary, +or consequential damages, which may result from the use of the PNG +Reference Library, even if advised of the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + +1. The origin of this source code must not be misrepresented. + +2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + +3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, without +fee, and encourage the use of this source code as a component to +supporting the PNG file format in commercial products. If you use this +source code in a product, acknowledgment is not required but would be +appreciated. + + +A "png_get_copyright" function is available, for convenient use in "about" +boxes and the like: + + printf("%s",png_get_copyright(NULL)); + +Also, the PNG logo (in PNG format, of course) is supplied in the +files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a +certification mark of the Open Source Initiative. + +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +December 9, 2010 + + +
+ +
+ MIT + + + +MIT License + +Copyright (c) <year> <copyright holders> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +
+ +
+ MPL-2.0 + + +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +
+ +
+ OpenSSL + + + +OpenSSL License + + ==================================================================== + Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + + 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + endorse or promote products derived from this software without + prior written permission. For written permission, please contact + openssl-core@openssl.org. + + 5. Products derived from this software may not be called "OpenSSL" + nor may "OpenSSL" appear in their names without prior written + permission of the OpenSSL Project. + + 6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the OpenSSL Project + for use in the OpenSSL Toolkit (http://www.openssl.org/)" + + THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS`` AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + ==================================================================== + + This product includes cryptographic software written by Eric Young + (eay@cryptsoft.com). This product includes software written by Tim + Hudson (tjh@cryptsoft.com). + + + Original SSLeay License + ----------------------- + +Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) +All rights reserved. + + This package is an SSL implementation written + by Eric Young (eay@cryptsoft.com). + The implementation was written so as to conform with Netscapes SSL. + + This library is free for commercial and non-commercial use as long as + the following conditions are aheared to. The following conditions + apply to all code found in this distribution, be it the RC4, RSA, + lhash, DES, etc., code; not just the SSL code. The SSL documentation + included with this distribution is covered by the same copyright terms + except that the holder is Tim Hudson (tjh@cryptsoft.com). + + Copyright remains Eric Young`s, and as such any Copyright notices in + the code are not to be removed. + If this package is used in a product, Eric Young should be given attribution + as the author of the parts of the library used. + This can be in the form of a textual message at program startup or + in documentation (online or textual) provided with the package. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + "This product includes cryptographic software written by + Eric Young (eay@cryptsoft.com)" + The word `cryptographic` can be left out if the rouines from the library + being used are not cryptographic related :-). + 4. If you include any Windows specific code (or a derivative thereof) from + the apps directory (application code) you must include an acknowledgement: + "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + + THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS`` AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + The licence and distribution terms for any publically available version or +derivative of this code cannot be changed. i.e. this code cannot simply be copied and +put under another distribution licence + [including the GNU Public Licence.] + + + + + +
+ +
+ PD + + +This is a placeholder for the Public Domain License + +
+ +
+ Python-2.0 + + + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python +alone or in any derivative version, provided, however, that PSF`s +License Agreement and PSF`s notice of copyright, i.e., "Copyright (c) +2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights +Reserved" are retained in Python alone or in any derivative version +prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI`s +License Agreement and CNRI`s notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI`s License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI`s License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia`s conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + +ACCEPT + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +
+ +
+ Sleepycat + + + +The Sleepycat License +Copyright (c) 1990-1999 +Sleepycat Software. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +Redistributions in any form must be accompanied by information on +how to obtain complete source code for the DB software and any +accompanying software that uses the DB software. The source code +must either be included in the distribution or be available for no +more than the cost of distribution plus a nominal fee, and must be +freely redistributable under reasonable conditions. For an +executable file, complete source code means the source code for all +modules it contains. It does not include source code for modules or +files that typically accompany the major components of the operating +system on which the executable file runs. +THIS SOFTWARE IS PROVIDED BY SLEEPYCAT SOFTWARE ``AS IS`` AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR +NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL SLEEPYCAT SOFTWARE +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +Copyright (c) 1990, 1993, 1994, 1995 +The Regents of the University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +Neither the name of the University nor the names of its contributors +may be used to endorse or promote products derived from this software +without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS`` AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +Copyright (c) 1995, 1996 +The President and Fellows of Harvard University. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +Neither the name of the University nor the names of its contributors +may be used to endorse or promote products derived from this software +without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS`` AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + +
+ +
+ Zlib + + +zlib License + + + This software is provided `as-is`, without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + + +
+
+ +
+ Proprietary Licenses + + There are no Proprietary Licenses. +
+
\ No newline at end of file diff --git a/doc/book-enea-linux-open-source/swcomp.mk b/doc/book-enea-linux-open-source/swcomp.mk new file mode 100644 index 0000000..231fe03 --- /dev/null +++ b/doc/book-enea-linux-open-source/swcomp.mk @@ -0,0 +1,10 @@ +# Component build specification + +# Version of THIS book +BOOK_VER ?= $(REL_VER)-dev + +DOCBOOK_SRC := $(COMP)/swcomp.mk $(COMP)/doc/book.xml $(shell find $(COMP)/doc -type f \( -name "*.xml" -o -name "*.svg" -o -name "*.png" \) ! -name "book.xml" -print) + +BOOKPACKAGES := book-enea-linux-open-source-rt +BOOKDESC_$(BOOKPACKAGES) := "Enea Linux Open Source Report" +BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) diff --git a/doc/book-enea-linux-release-info/doc/about_release.xml b/doc/book-enea-linux-release-info/doc/about_release.xml new file mode 100644 index 0000000..cb75bc1 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/about_release.xml @@ -0,0 +1,235 @@ + + + + About This Release + + This release of Enea Linux provides a publicly available + Enea Linux distribution for a selected set of targets. This release is + generated from the Yocto Project distribution using the branch .INFO eltf_params_updated.xml contains many parameters in + the book, also in the open source books, and MUST be created FROM eltf_params_template.xml. + + The parameters are automatically used in the books, via + xi:include statements, similar to how parameters from pardoc-distro.xml are + included in the book. Read the file eltf_params_updated_template_how_to_use.txt for + important details about formats and how to do! The idea is that ELTF will + auto-create/update it. + +
+ Provided Contents + + The current release contains documentation, prebuilt kernels and + images, a bootloader and an SDK. The directories structure is detailed + below: + + -- Documentation/ + /* Enea Linux 8 documentation */ + -- intel-corei7-64/ + /* artifacts for the reference machine */ + -- deb/ + /* deb packages */ + -- images/ + -- enea-image-rt + /* precompiled artifacts for the platform release image */ + -- various artifacts (rootfs, kernel, config, dtb etc.) + -- enea-image-rt-sdk + /* precompiled artifacts for the development process. The image + contains userspace tools and kernel configurations necessary + for developing, debugging and profiling applications and \ + kernel modules */ + -- various artifacts + -- sdk + /* SDK related artifacts including SDK installer and manifests */ + /* self-extracting archive installing cross-compilation + toolchain for the platform */ + -- x86_64-buildtools-nativesdk-standalone-8.0.sh + /* self-extracting archive installing additional tools + for the host machine */ + + The following set of artifacts is available: + + -- Image + /* kernel image */ +-- Image-target.bin + /* kernel image, same as above */ +-- Image-target.dtb + /* the device tree blob */ +-- config-target.config + /* kernel configuration file */ +-- image-name-target.ext3 + /* compressed EXT3 image of the rootfs */ +-- image-name-target.tar.bz2 + /* tar archive of the image */ +-- modules-<target>.tgz + /* external kernel modules */ +
+ +
+ Supported Host Environment + + The following environments have been validated as host environments + for this release of Enea Linux: Ubuntu 16.04 LTS, + 64-bit. + + INFO Below is a complete section with ID + "eltf-target-tables-section" included from elft_params_updated.xml. It + contains a variable number of target tables and the section title should + be "Supported Targets with Parameters". It has have a short sentence about + what it is in the beginning. The subtitles shall have the directory name + of the target in the manifest. +
+ + + +
+ Provided Packages + + + + + + + + + + Type of Packages + + Reference + + + + + + Packages in Enea Linux + + See the Enea Linux Open Source + Report + + + + +
+ +
+ Provided Toolchains (SDK) + + The SDK contains toolchains supporting cross-compilation of + applications for the targets on an aarch64 host. For information on how to + build and install a toolchain, see the chapter Using Enea Linux, in the . +
+ +
+ Provided Documentation + + The following Enea Linux manuals are available: + + + + Enea Linux Release + Information (this document) + + + + Enea Linux User's Guide + + + + Enea Linux Open Source + Report + + + + Enea Linux Test + Report + + + + Enea Linux Security + Report + + + + Enea Linux Real-Time Guide + + +
+ +
+ Other Provided Functionality + + The functionality in a distribution depends on included packages in + the default image. In addition to the supported features, the following + functionality is also available, among other:INFO: This section + might be hidden by setting condition hidden on the section, MANUALLY in + this file + + + + APT Package Management + + + + Eclipse ADT (excl. QEMU) and plug-ins for application + development: LTTng, Perf, LatencyTOP, PowerTOP, SystemTap + + +
+ +
+ Security Fixes + + See the List of + CVEs addressed in Enea Linux for details. +
+ +
+ Intentional Limitations + + The following functionality supported in other Enea Linux releases + has been excluded in this release:INFO: This section might be + hidden by setting condition hidden on the section, MANUALLY in this + file. + + Eclipse plug-ins for image creation (HOB) + + + + Networking features: DPDK vSwitch, DPDK + + + + Real-time features: Fully Preemptible Kernel (FPK) from the + PREEMPT_RT patch + + + + Memory features: NUMA + + +
+
diff --git a/doc/book-enea-linux-release-info/doc/book.xml b/doc/book-enea-linux-release-info/doc/book.xml new file mode 100644 index 0000000..13aff10 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/book.xml @@ -0,0 +1,22 @@ + + +]> + + <trademark class="registered">Enea</trademark> Linux Release Information + Release Version + + + + + + + + + diff --git a/doc/book-enea-linux-release-info/doc/build_boot_template.xml b/doc/book-enea-linux-release-info/doc/build_boot_template.xml new file mode 100644 index 0000000..e39dd81 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/build_boot_template.xml @@ -0,0 +1,34 @@ + + + + Target Specific Instructions + + If the source has been fetched (), there will be a target specific README + file containing the build and boot instructions. To make it easier for the + reader, the contents of this file(s) have been extracted into the following + sections. + + + The build process duration may vary and be longer than expected in + some cases, depending on the individual build resources and parameters of + each target/machine supported in this release. + + + NOTE: Only EDIT THE TEMPLATE build_boot_template.xml file here + and also only edit the manifest template ".README" (name starting by a dot)! + A new build_boot_generated.xml file is created from the template and + sections are added below automatically from the README files for each target + when building the book! Only in the template file you see a line below with + SCRIPT_...._HERE and the text telling that this is a template + file. + + SCRIPT_INCLUDES_BUILD_BOOT_SECTIONS_HERE + + This is a template file which you can edit. When + the book is built, a new XML chapter file is created where the above part of + this file is copied to the new XML file and all from the line above is + replaced automatically by build and boot sections from the README + files! + \ No newline at end of file diff --git a/doc/book-enea-linux-release-info/doc/eltf_params_template.xml b/doc/book-enea-linux-release-info/doc/eltf_params_template.xml new file mode 100644 index 0000000..278ad71 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/eltf_params_template.xml @@ -0,0 +1,151 @@ + + +
+ File with Parameters in the Book Auto-updated by ELFT + + + See the eltf_params_updated_template_howto_use.txt text + file for description of how to create the final eltf_params_updated.xml from this template and for + all REQUIREMENTS. Use the command + "make eltf" to extract a full list of all + ELTF variables, which always begins with ELTF_ and don't only rely on the + howto text file list! The plan is that ELTF will auto-update this when + needed. + + +
+ Common Parameters + + A programlisting, ID + "eltf-prereq-apt-get-commands-host" + + ELTF_PL_HOST_PREREQ + + A programlisting, ID + "eltf-getting-repo-install-command" + + ELTF_PL_GET_REPO + + Several phrase elements, various IDs. Ensure EL_REL_VER is + correct also compared to the "previous" REL VER in pardoc-distro.xml + "prev_baseline". + + ELTF_EL_REL_VER + + ELTF_YOCTO_VER + + ELTF_YOCTO_NAME + + ELTF_YOCTO_PROJ_DOWNLOAD_TXTURL + + ELTF_EL_DOWNLOAD_TXTURL + + A programlisting, ID "eltf-repo-cloning-enea-linux". Use + $MACHINE/default.xml as parameter, where MACHINE is one of the target + directory names in the manifest. + + ELTF_PL_CLONE_W_REPO + + A table with ONE row, only the row with ID + "eltf-eclipse-version-row" is included in the book. MANUALLY BOTH in the + template.xml and in the updated.xml, set condition hidden on the + <row>, if eclipse is not in the release. + + + + + + Eclipse version ELTF_ECLIPSE_VERSION plus command line + development tools are included in this Enea Linux release. + + + + + + Below is one big section with title "Supported Targets with + Parameters". The entire section is included completely in the book via ID + "eltf-target-tables-section" and shall be LAST in the template. The + template contains ONE target subsection. COPY/APPEND it, if multiple + targets exist in the release and optionally add rows with additional + target parameters in each target subsection table. +
+ +
+ Supported Targets with Parameters + + The tables below describes the target(s) supported in this Enea + Linux release. + +
+ MACHINE ELTF_T_MANIFEST_DIR - Information + + + + + + + + + + Target official name + + ELTF_T_NAME + + + + Architecture and Description + + ELTF_T_ARC_DESC + + + + Link to target datasheet + + See ELTF_T_DS_TXTURL + + + + Poky version + + ELTF_T_POKY_VER + + + + GCC version + + ELTF_T_GCC_VER + + + + Linux Kernel Version + + ELTF_T_KERN_VER + + + + Supported Drivers + + ELTF_T_DRIVERS + + + + Enea rpm folder for downloading RPM packages for this + target + + ELTF_T_EL_RPM_TXTURL + + + + +
+ + +
+
\ No newline at end of file diff --git a/doc/book-enea-linux-release-info/doc/eltf_params_updated.xml b/doc/book-enea-linux-release-info/doc/eltf_params_updated.xml new file mode 100644 index 0000000..dfcee4a --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/eltf_params_updated.xml @@ -0,0 +1,282 @@ + + +
+ File with Parameters in the Book Auto-updated by ELFT + + + See the eltf_params_updated_template_howto_use.txt text + file for description of how to create the final eltf_params_updated.xml from this template and for + all REQUIREMENTS. Use the command + "make eltf" to extract a full list of all + ELTF variables, which always begins with ELTF_ and don't only rely on the + howto text file list! The plan is that ELTF will auto-update this when + needed. + + +
+ Common Parameters + + A programlisting, ID + "eltf-prereq-apt-get-commands-host" + + # Host Ubuntu 16.04.2 LTS 64bit +sudo apt-get -y update +sudo apt-get -y install sed wget subversion git-core coreutils unzip texi2html \ + texinfo libsdl1.2-dev docbook-utils fop gawk python-pysqlite2 diffstat \ + make gcc build-essential xsltproc g++ desktop-file-utils chrpath \ + libgl1-mesa-dev libglu1-mesa-dev autoconf automake groff libtool xterm \ + libxml-parser-perl + + A programlisting, ID + "eltf-getting-repo-install-command" + + mkdir -p ~/bin +curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo +chmod a+x ~/bin/repo +export PATH=~/bin:$PATH + + Several phrase elements, various IDs. Ensure EL_REL_VER is + correct also compared to the "previous" REL VER in pardoc-distro.xml + "prev_baseline". + + 8 + + 2.5 + + sumo + + http://www.yoctoproject.org/downloads + + http://linux.enea.com/EneaLinux8.0 + + A programlisting, ID "eltf-repo-cloning-enea-linux". Use + $MACHINE/default.xml as parameter, where MACHINE is one of the target + directory names in the manifest. + + mkdir enea-linux +cd enea-linux +repo init -u git@git.enea.com:linux/manifests/el_manifests-rt.git \ + -b refs/tags/Enea_Linux_8.0 -m $MACHINE/default.xml +repo sync + + A table with ONE row, only the row with ID + "eltf-eclipse-version-row" is included in the book. MANUALLY in book, set + condition hidden if eclipse is not in the release. + + + + + + Eclipse version 4.7 (Oxygen) plus command line development + tools are included in this Enea Linux release. + + + + + + Below is one big section with title "Supported Targets with + Parameters". The entire section is included completely in the book via ID + "eltf-target-tables-section" and shall be LAST in the template. The + template contains ONE target subsection. COPY/APPEND it, if multiple + targets exist in the release and optionally add rows with additional + target parameters in each target subsection table. +
+ +
+ Supported Reference Boards with Parameters + + The table(s) below describes the target(s) supported in this Enea + Linux release. + + + MACHINE Information Intel Xeon D + + + + + + + Component + + Description + + + + + + Target official name + + Intel Xeon D + + + + Architecture and Description + + x86-64 + + + + Link to target datasheet + + Intel + Xeon D datasheet + + + + Poky version + + Git-commit-id: TBD + + + + GCC version + + 7.3 + + + + Linux Kernel Version + + 4.14 + + + + Supported Drivers + + Ethernet, RTC, UART + + + +
+ + + MACHINE Information Intel Atom C3000 + + + + + + + Component + + Description + + + + + + Target official name + + Intel Atom C3000 + + + + Architecture and Description + + x86-64 + + + + Link to target datasheet + + Intel + Atom datasheet + + + + Poky version + + Git-commit-id: TBD + + + + GCC version + + 7.3 + + + + Linux Kernel Version + + 4.14 + + + + Supported Drivers + + Ethernet, RTC, UART + + + +
+ + + MACHINE Information Intel NUC Kaby Lake + + + + + + + Component + + Description + + + + + + Target official name + + Intel NUC Kaby Lake + + + + Architecture and Description + + x86-64 + + + + Link to target datasheet + + Intel + NUC Kaby Lake datasheet + + + + Poky version + + Git-commit-id: TBD + + + + GCC version + + 7.3 + + + + Linux Kernel Version + + 4.14 + + + + Supported Drivers + + Ethernet, RTC, UART + + + +
+
+
diff --git a/doc/book-enea-linux-release-info/doc/eltf_params_updated_template_how_to_use.txt b/doc/book-enea-linux-release-info/doc/eltf_params_updated_template_how_to_use.txt new file mode 100644 index 0000000..6e1358f --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/eltf_params_updated_template_how_to_use.txt @@ -0,0 +1,320 @@ +eltf_params_template_updated_howto_use.txt + +This is a way to collect all parameters for an Enea Linux release +in one parameter file, easy to automatically update by ELTF regularly. + +NOTE: Both the release info AND the open source books use parameters from + here, but the XML file is inside the release info book directory. + +NOTE: The manifest_conf.mk, or overridden by the environment variable + MANIFESTHASH, contains the full tag (or hashvalue) for downloading + the manifest when the books are built. The list of target + directories are fetched from the manifest into the book. + The eltf_params_updates.xml can all the time contain + the final next complete tag e.g. refs/tags/EL6 or similar + in the ELTF_PL_CLONE_W_REPO parameter command lines. + +The ordinary book XML files use xi:include statements to include elements +from this parameter file. The book XML files can thus be manually edited. +Before editing, you must run "make init". +Any other text in the template or updated.xml file, outside the parts that +are included in the book, are not used but still all must be correct +DocBook XML files. + +ELTF work: + template => ELTF replaces ALL ELTF_xxx variables => updated XML file + => push to git only if changed + + +eltf_params_template.xml (in git) + File used by ELTF to autocreate/update the real parameter + file eltf_params_updated.xml. + +eltf_params_updated.xml (in git) + Real parameter file where ELTF has replaced all ELTF_xx variables with + strings, in several cases with multiline strings. + No spaces or linefeed allowed in beginning or end of the variable values! + + +xi:include: Each parameter is xi:include'ed in various book files, using + the IDs existing in the parameter files. + In most cases the 1:st element inside an element with an ID is included + using a format like eltf-prereq-apt-get-commands-host/1. + In very few cases the element with the ID is included in the book, one + example is the target section which has an ID, but which contains + multiple subsections, one per target. + All IDs in a book must be unique. + +DocBook XML: All XML files must be correct DocBook XML files. + +Do NOT edit/save the real *updated.xml file with XMLmind to avoid changes + not done by ELTF. But it is OK to open the real file in XMLmind to + check that the format is correct. + +ELTF should autocreate a temporary "real" file but only replace + and push the eltf_params_updated.xml if it is changed. + + +make eltf + This lists all ELTF_xxx variables and some rules how to treat them + +DocBook Format: All elements - rules: + Several strict generic XML rules apply for all strings: + 1. No TABs allowed or any other control chr than "linefeed" + 2. Only 7-bit ASCII + 3. Any < > & must be converted to < > and & + Similar for any other non-7-bit-ASCII but avoid those! + 4. No leading spaces or linefeeds when replacing the ELTF_* variable + 5. No trailing spaces or linefeeds when replacing the ELTF_* variable + 6. Note: Keep existing spaces before/efter ELTF_* in a few cases. + +DocBook Format: - rules: ELTF*PL* variables + Several strict rules apply for the multiline string in programlisting + in addition to the general XML rules above: + 7. Max line length < 80 char + 8. Use backslash (\) to break longer lines + 9. Use spaces (e.g. 4) to indent continuation lines in programlistings + 10. No trailing spaces on any line + 11. No spaces or linefeed immediately after leading + 12. No spaces or linefeed before trailing + +DocBook Format: - rules: ELTF_*URL* variables + 13. ELTF_*URL and corresponding ELTF_*TXTURL shall be identical strings + 14. Only if the URL is extremely long, the TXTURL can be a separate string + +Each target has one section with target parameters: +
+ MACHINE ELTF_T_MANIFEST_DIR - Information + ..... with many ELTF_ variables .... +
+ + 15. If there is only one target. ELTF just replaces ELTF parameters + + 16. It there are multiple targets. ELTF copies the section and appends the + section the required number of times. + Each section ID will become unique: eltf-target-table-ELTF_T_MANIFEST_DIR + Each section title will become unique + +Tables with target parameters in each target section: + 17. It is possible for ELTF to append more rows with one parameter each + to these tables, because the entire tables are included in the book + +Special - NOT YET READY DEFINED how to handle the optionally included + Eclipse and its version, but this is a first suggestion: + 18. Just now ELTF can define ELFT_ECLIPSE_VERSION as a full string + with both version number and name, + 19. MANUALLY if Eclipse is NOT included in the release, + the release manager should manually set condition="hidden" on + the entire section in the book XML about Eclipse + + + +BELOW WE TRY TO EXPLAIN EACH ELTF_* variable, but always check with make eltf +if there are more new variables, missing in this description file. + +_____________________________________________________________________________ +ELTF_PL_HOST_PREREQ Multiline list of host prerequisites, e.g. commands + like sudo apt-get install xxxx or similar. + First line = comment with the complete host name! + It is possible to include multiple hosts by just + adding an empty line, comment with host name, etc. + xi:include eltf-prereq-apt-get-commands-host/1 + This is a ... + Example: +# Host Ubuntu 14.04.5 LTS 64bit +sudo apt-get update +sudo apt-get install sed wget subversion git-core coreutils unzip texi2html \ + texinfo libsdl1.2-dev docbook-utils fop gawk python-pysqlite2 diffstat \ + make gcc build-essential xsltproc g++ desktop-file-utils chrpath \ + libgl1-mesa-dev libglu1-mesa-dev autoconf automake groff libtool xterm \ + libxml-parser-perl + +_____________________________________________________________________________ +ELTF_PL_GET_REPO Multiline commands to download the repo tool + xi:include eltf-getting-repo-install-command/1 + This is a ... + Example: +mkdir -p ~/bin +curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo +chmod a+x ~/bin/repo +export PATH=~/bin:$PATH + +_____________________________________________________________________________ +ELTF_EL_REL_VER General parameter string: The version of this Enea + Linux release. Major version and optional .Minor + Typically created from MAJOR and MINOR in enea.conf + MINOR in enea.conf is empty or contains a dot+minor + xi_include EneaLinux_REL_VER/1 + This is a X.x used in many places. + Examples: +6 + or +6.1 + +_____________________________________________________________________________ +ELTF_YOCTO_VER General parameter string: Yocto version, created + from DISTRO in poky.ent + xi:include Yocto_VER/1 + This is a X.x used in many places. + Example: +2.5 + +_____________________________________________________________________________ +ELTF_YOCTO_NAME General parameter string: Yocto name (branch), created + from DISTRO_NAME_NO_CAP in poky.ent + xi:include Yocto_NAME/1 + This is a X.x used in many places. + Example: +sumo + +_____________________________________________________________________________ +ELTF_YOCTO_PROJ_DOWNLOAD_TXTURL General parameters. These two are IDENTICAL +ELTF_YOCTO_PROJ_DOWNLOAD_URL strings with correct Yocto version string + at the end, typically without "dot". + xi:include ULINK_YOCTO_PROJECT_DOWNLOAD/1 + This is an ... + Example: +http://www.yoctoproject.org/downloads + +_____________________________________________________________________________ +ELTF_EL_DOWNLOAD_TXTURL General parameters. These two are IDENTICAL strings +ELTF_EL_DOWNLOAD_URL and shall be the http:/..... address where + Enea Linux can be downloaded + Often containing same version as in ELTF_EL_REL_VER + xi:include ULINK_ENEA_LINUX_URL/1 + This is an ... + Example: +http://linux.enea.com/8 + +_____________________________________________________________________________ +ELTF_PL_CLONE_W_REPO Multiline commands to run repo to clone everything. + Use the variable $MACHINE/default.xml (the text in + the book will list the avaiable values of MACHINE, + taken from the manifest repository) + xi:include eltf-repo-cloning-enea-linux/1 + This is a ... + Example: +mkdir enea-linux +cd enea-linux +repo init -u git@git.enea.com:linux/manifests/el_manifests-rt.git \ + -b refs/tags/EL8 -m $MACHINE/default.xml +repo sync + +_____________________________________________________________________________ +ELTF_ECLIPSE_VERSION Optional general parameter string. + NOT YET READY DEFINED + Just now a release manage must manually set + condition="hidden" on the Eclipse section, + if Eclipse is not included in the release. + ELTF just replaces ELTF_ECLIPSE_VERSION with a full + string with "X.Y (name)" + It includes the ID and can only be ONCE in the book. + xi:include eltf-eclipse-version-row + Example. +4.5 (Mars) + + +_____________________________________________________________________________ +ELTF_T_* All these are in each target (MACHINE) and ELTF + must separately replace them with strings for + each target + NOTE: All (except the MANIFEST_DIR) are in rows + in a table and ELTF can select to append + more parameters by adding more rows + +_____________________________________________________________________________ +ELTF_T_MANIFEST_DIR This happens to be in two places. Must be exactly +ELTF_T_MANIFEST_DIR the directory name in the manifest, e.g. same + as the MACHINE names in $MACHINE/default.xml. + In book: a) Part of section ID + b) Part of section title + Examples: +p2041rgb + or +ls1021aiot + or +qemuarm + +_____________________________________________________________________________ +ELTF_T_NAME Target specific: "Target Official Name" + NOT same as the target directory name in most cases. + In book: An element in a row + Examples: +P2041RGB + or +LS1021a-IoT + or +qemuarm + +_____________________________________________________________________________ +ELTF_T_ARC_DESC Target specific: "Architecture and Description" + It can be a short identification string or + it can be a longer descriptive sentence. + In book: An element in a row + Examples: +Power, e500mc + or +ARM Cortex-A7 + +_____________________________________________________________________________ +ELTF_T_DS_TXTURL Target specific: "Link to target datasheet. These +ELTF_T_DS_URL two usually are IDENTICAL strings with correct + hyperlink to the target's official datasheet. + In book: an ... + Only if the link is VERY LONG, the text part shall + instead be a descriptive string (see 2:nd example). + NOTE: Also here no spaces or line-feeds! + Examples: +url="http://wiki.qemu.org">http://wiki.qemu.org +or +url="http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors/qoriq-ls1021a-iot-gateway-reference-design:LS1021A-IoT">link to NXP's datasheet + +_____________________________________________________________________________ +ELTF_T_POKY_VER Target specific: "Poky version" created either + from POKYVERSION in poky.ent + or using a hashvalue with a leading string, in + which case it may be different per target. + In book: An in a row + Examples: +15.0.0 +or +Git commit id: 75ca53211488a3e268037a44ee2a7ac5c7181bd2 + +_____________________________________________________________________________ +ELTF_T_GCC_VER Target specific: "GCC Version". Should be in poky + but not easy to find among various parameters. + ELTF would extract it from build logs building SDK + and it is possibly different per target. + In book: An in a row + Example: +5.3 + +_____________________________________________________________________________ +ELTF_T_KERN_VER Target specific: "Linux Kernel Version". Often + different per target. + In book: An in a row + Example: +3.12 + +_____________________________________________________________________________ +ELTF_T_DRIVERS Target specific: "Supported Drivers". This is a + comma-separated list of driver names. + ELTF should create the list in same order for each + target, e.g. alphabetic migth be OK. + In book: An in a row + Example: +Ethernet, I2C, SPI, PCI, USB, SD/SDHC/SDXC + + +_____________________________________________________________________________ +ELTF_T_EL_RPM_TXTURL Target specific: "Enea rpm folder for downloading +ELTF_T_EL_RPM_URL RPM packages for this target". These two are + INDENTICAL strings with hyperlink to the web site + at Enea where the customer can download RPMs + Note: Often the ELFT_EL_REL_VER value and + the ELTF_T_MANIFEST_DIR are used in the link. + In book: an ... + Example: +url="https://linux.enea.com/6/ls1021aiot/rpm">https://linux.enea.com/6/ls1021aiot/rpm + +_____________________________________________________________________________ diff --git a/doc/book-enea-linux-release-info/doc/getting_enea_linux.xml b/doc/book-enea-linux-release-info/doc/getting_enea_linux.xml new file mode 100644 index 0000000..76487ef --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/getting_enea_linux.xml @@ -0,0 +1,185 @@ + + + + Getting Enea Linux + + Enea Linux is available as both pre-built binary images and source + code. Both serve a specific purpose and each have their advantages. However, + using the pre-built binary images allows for getting up and running faster. + Please refer to the sections below for details on how to get Enea Linux as + pre-built binary images or source code. + +
+ Getting Pre-built Binaries + + Enea Linux pre-built binaries are available for download on portal.enea.com. + Log in using the credentials provided by Enea for your user account. Using + the menu, browse to the Linux section where you will now have access to + the Files and Online Documentation sections. + + The Files section lists each Enea Linux distribution, one for each + version and profile, as a separate download package. Clicking on the name + of the distribution will open a new page, which presents further details + about the content of the release and a list of downloadable archives, one + for each hardware target included in the release. Each archive provides + the following content: + + + + images directory – this directory + includes the binary image files needed to boot the target with Enea + Linux. This includes the kernel, the root file system, device tree, + etc. + + + + sdk directory – this directory + includes the installer for the SDK. + + + + deb directory – this directory + contains all the packages included in the distribution in deb format, + which can be installed using the package manager. + + + + For faster downloads, each archive is mirrored in several places, + geographically. Choose the archive in the region closest to you. + + The Documentation section lists all the documents delivered with the + release: + + + + Enea Linux User’s Guide - + intended for Enea Linux platform developers, who want to configure and + build customized Linux kernel images for embedded system targets, + using the Yocto configuration and build system. + + + + Enea Linux Open Source Report - + contains the open source and license information pertaining to + packages provided with this release of Enea Linux. + + + + Enea Linux Release Info - + provides information about the current released distribution for a + selected set of targets, along with installation requirements and + procedures. + + +
+ +
+ Getting the Sources + + Enea Linux sources are available for cloning from a set of Git + repositories on git.enea.com. + Since Enea Linux requires multiple repositories, Google Repo tool is used + in order to manage configurations and make the cloning step simpler. The + Google Repo tool uses files, known as manifests, which store a list of + tuples (repository URL, version). The Repo tool is then used to traverse + the list of tuples in the manifest file and clone the specified versions + of each repository. See Google Code Archive for + git-repo, for more info. + +
+ Get access to git.enea.com + + In order to get access to git.enea.com, a ssh key is required for + Git authentication. If you don't already have such a key, follow the + steps below to generate one: + + + + Generate the ssh key pair: + + $ ssh-keygen -t rsa + + When asked for a password, just press + Enter. This will create two files in the + .ssh directory in your home directory. + + id_rsa +id_rsa.pub + + + + Copy the public key into an authorized_keys file: + + $ cat id_rsa.pub >> authorized_keys + + + + Once these steps are done and you have a valid ssh key pair, send + the public key, + id_rsa.pub, + via email to mailto:git_support@list.enea.se in order to + get access to git.enea.com. +
+ +
+ Get Sources + + To use the Repo tool to download the sources for Enea Linux, do + the following: + + + + Make sure that the repo tool is installed. If not, do the + following: Below is include of ID + "eltf-getting-repo-install-command" from + eltf_params_updated.xml + + + + + + Define the MACHINE to the following target listed + here:Below is the "machine_list" programlisting in + machine_list_generated.xml created by the make system by extracting + from the manifest + + + + + + Then use the repo command below: + + + + + + Once the source code is downloaded, the current directory will + contain a README file with instructions on how to build the distro and + boot the raspberry pi machine. For ease of use, these instructions are + also copied into this document, see . + + It is not necessary to explicitly clone the manifest repository + since that is done automatically by the repo tool. To see the current + manifest, use the following command: + + $ repo manifest + + The UG should be updated with instructions on how to add + customizations. That section should also contain more info about the + manifest: the manifest templates, using a branch instead of the tag EL6, + etc. When this is done a reference from here should be added. +
+
+
\ No newline at end of file diff --git a/doc/book-enea-linux-release-info/doc/jiraissues_override.xml b/doc/book-enea-linux-release-info/doc/jiraissues_override.xml new file mode 100644 index 0000000..331a5ae --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/jiraissues_override.xml @@ -0,0 +1,32 @@ + + +
+ Extracted from Jira + + In the table below are the issue(s) that currently affect this specific release. Use the ticket reference provided for each issue, to look up further information if needed. + + + + + + + + + + Summary + + Enea Ref + + + + + + + + + + + + +
\ No newline at end of file diff --git a/doc/book-enea-linux-release-info/doc/known_bugs_and_limitations.xml b/doc/book-enea-linux-release-info/doc/known_bugs_and_limitations.xml new file mode 100644 index 0000000..6fafb8d --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/known_bugs_and_limitations.xml @@ -0,0 +1,377 @@ + + + + Known Problems in this Release + + Open source projects are continuously working on correcting reported + problems. Fixes and workarounds to bugs detected by Enea are submitted + upstream, and included in Enea Linux regardless of when they will be + included by the open source project. Issues that still affect the current + release are listed below.INFO: The Release-Specific Problems section further down is + generated from JIRA with gen_known_issues.py, but that script is HARDCODED + with affectedversion "Enea Linux 6" and needs to be adapted when a release + info for another EL version changes. + +
+ Yocto Project + + The Yocto Project community uses a Bugzilla database to track + information on reported bugs and other issues. +
+ +
+ Toolchain / SDK + + + + Building the kernel might fail if GNU Make of version 3.82 has + been installed on the host. The mandatory recovery action is to revert + to version 3.81.INFO It is possible to hide this entire + subsection by setting condition hidden on the section + element + + + + Installing a second toolchain in the same directory as a + previous one will break the $PATH variable of the first + one.LXCR-3624 + + +
+ +
+ Eclipse Tools + + The Eclipse tools provided together with Enea Linux are part of the + Yocto Project Application Development Toolkit (ADT) and are maintained by + different open source projects. The list below outlines current problems + with the plug-ins as such, as well as kernel limitations when using a tool + towards the mentioned target:INFO It is possible to hide this + setting condition hidden on the section element + + + + HOB is currently not supported + on Red Hat.LXCR-2994, LXCR-3222 + + + + SystemTap is currently not + supported on Red Hat.LXCR-3274 + + + + When running SystemTap for the + first time on a target, you may need to manually ssh into the target + beforehand, in order to add the RSA key of the host to the file + known_hosts. Failing to do so will result in Eclipse freezing with the + progress window displayed, and a terminal message The + authenticity of host <target_ip> can't be + established. + + + + SystemTap scripts sometimes + result crosstap error messages about inaccessible variables. This is + not an issue with the tool itself, but stems from the compiler + optimizing away some of the variables. See workaround in the User's + Guide.LXCR-2204 + + + + Currently BitBake Commander + projects can only be created for a local connection. Due to an + upstream bug, selecting a remote connection causes the Eclipse GUI to + freeze such that it must be killed.LXCR-2801 + + + + A limitation currently makes Eclipse non-responding when running a streaming + script, i.e. a script that runs continuously. + + + + The LatencyTop plug-in for the + P2041 target reports some errors due to the permissions configuration + on the target, but it works correctly if the + latencytop command is issued from the Eclipse + console.LXCR-6303 + + + + Currently LatencyTOP is not + available for ARM kernels built with SMP support due to an ARM + specific limitation in the Linux kernel. + + + + PowerTOP sometimes freezes + Eclipse after displaying a progress bar with message + Gathering powertop data file + remotely.LXCR-3143 + + + + When running powertop from the + Eclipse terminal towards p2020rdb targets it is necessary to specify + the full path in order to find the + command.LXCR-2265 + + + + When running powertop from the + Eclipse terminal towards zynq ZC702 targets it is necessary to specify + the full path in order to find the + command.LXCR-2265 + + + + The PowerTOP console in Eclipse + might display messages like Cannot load + /var/cache/powertop/<filename>. As a workaround, run + powertop --calibrate for a while to + generate the missing files. See Bugzilla + #698020.LXCR-3575 + + + + ssh-only is currently the only + supported connection type when running Eclipse tools towards a + target.LXCR-2799 + + + + Hyphen character '-' in the name of the Yocto Project ADT AutoTools project can cause + configuration errors.LXCR-2290 + + + + The LTTng tool does not work on + ARM targets, neither from within + Eclipse nor when run directly on target, due to a problem with + lttng-modules and gcc-4.8.x. See Bugzilla + #6015.LXCR-2653, LXCR-3053 + + + + When running LTTng from + Eclipse, it sometimes happens that a new session created in the + Control View does not immediately appear under Sessions for that + target. However, the session is created and will appear after + right-clicking "Sessions" and selecting "Refresh". + + + + The yocto-bsp properties page + has some problems in the graphical user interface. Occasionally it is + not possible to resize and scroll which makes it impossible to see the + lower part of the properties window.LXCR-3128 + + + + When connecting an Eclipse project configured for KGDB (GDB Hardware Debugging) to a 64-bit + PowerPC target, GDB fails to connect unless the architecture is + specified in .gdbinit. See Bugzilla + #457697.LXCR-3984 + + +
+ +
+ Target-Side Tools + + The target-side tools can be run stand-alone on target or from + Eclipse on host. The issues below are only observed when running the tools + directly on target:INFO It is possible to hide this setting + condition hidden on the section element + + + + The perf report command hangs + or crashes due to segmentation fault on ARM + targets.LXCR-2708 + + + + The perf report does not show + any output for the PandaBoard target.LXCR-2710 + + + + perf top displays for a few + seconds the error message Failed to open + /tmp/perf-388.map. Any attempt to exit the subsequent window + causes the system to hang.LXCR-3113 + + + + When running the perf top command on the i.MX + 6Quad SABRE Lite target, the console text may become red after running + for some time (~ 1 minute).LXCR-3631 + + + + The LTTng tool does not work on + ARM targets, neither from within + Eclipse nor when run directly on target, due to a problem with + lttng-modules and gcc-4.8.x. See Bugzilla + #6015.LXCR-2653, LXCR-3053 + + + + The powertop --calibrate + command does not work on the Keystone k2hk-evm + target.LXCR-2660 + + + + The powertop command run with + --calibrate or --time arguments may show some warnings on + PowerPC targets. + + + + When running powertop on + ARM targets, the following + warning/error is repeated: clk_set_rate: failed to set + i2c0_aper rate . Then powertop stops and the statistics are + no longer updated. What probably happens here is that the cpufreq + governor tries to scale the CPU frequency, but since the I2C clock is + derived from the CPU frequency, the I2C driver implements some policy + to stay within legal frequency limits and rejects the frequency + changes, ending up with the warning message. A fix + has been merged in the linux-xlnx kernel but is not yet propagated + into meta-xilinx.LXCR-3205, LXCR-3106, + LXCR-2660 + + + + If you get an error message like Cannot load from file + /var/cache/powertop/saved_results.powertop when running + powertop, there is most likely not + enough measurement data collected yet. All you have to do is to keep + powertop running for a certain time.LXCR-2176, LXCR-2660, + LXCR-3106 + + + + The message Model-specific registers (MSR) not found + (try enabling CONFIG_X86_MSR) appears when you run powertop on non-x86 targets. powertop is mainly an x86n + tool, so it expects X*^_MSR config to be enabled in the kernel. For + non-x86 targets this config is not available in the kernel, hence, + powertop warns about it, but the message can be ignored on those + targets. LXCR-2176, LXCR-2660, LXCR-3106 + + + + powertop issues a message + sh: /usr/bin/xset: No such file or directory when + it tries to use xset to configure X display preferences but cannot + find the binary since the image by default contains no X system. The + message can simply be ignored.LXCR-2176 + + +
+ +
+ Virtualization + + + + virtualization: CONFIG_BRIDGE + is not included in the default p2020rdb + kernel.LXVTCR-273 + + + + lxc: + + + + User namespace is not available on PowerPC targets as it is + an experimental feature in the 3.8 kernel. + + + + If multiple Linux containers are started from the same + process and share resources, destroying the containers might + result in a race condition with error message "Error in + `./lxc-test-concurrent': double free or corruption (fasttop)" + followed by an application + crash."LXVTCR-365 + + + + + + libvirt: Default network does + not start.LXVTCR-240 + + +
+ +
+ Documentation + + + + PDF navigation: When using + links to open other PDFs, or jump to another place in the same PDF, + jumping back sometimes fails. This has been observed when opening a + PDF in Adobe Reader, inside a browser with PDF add-on, as well as when + the browser is configured to open PDF files in an external PDF reader. + As a workaround, open the HTML version of the + document.LXCR-3283 + + + + Internet Explorer (IE) cannot display some + web pages: It is recommended to use Firefox or another + non-IE browser for opening external links. If you prefer reading the + documentation in PDF format in Adobe Reader (not in an Adobe plug-in + in a browser), remember to configure a non-IE browser as default + browser to be able to follow all links from within Adobe Reader. + Example of a link that does not work in IE: https://rt.wiki.kernel.org/. + LXCR-3281 + + +
+ +
+ Miscellaneous + + + + Running QEMU from an exported + rootfs requires sudo privileges on the host. + + + + menuconfig requires Ncurses. If the terminal that pops up + immediately closes instead of showing the menuconfig interface, check + that the Ncurses development library is installed. + + +
+ + + + +
\ No newline at end of file diff --git a/doc/book-enea-linux-release-info/doc/main_changes.xml b/doc/book-enea-linux-release-info/doc/main_changes.xml new file mode 100644 index 0000000..c2279ee --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/main_changes.xml @@ -0,0 +1,54 @@ + + + + Main Changes + + This chapter describes the major changes and additions made to this + release of Enea Linux.INFO Just now Hardcoded previous release + string in this paragraph.The list of changed packages + further down is created from the open source book licenses.xml by the script + gen_pkgdiff.py by comparing with an older open source licenses.xml, + depending on the parameter "prev_baseline" in pardoc-distro.xml, e.g. a tag + like "EL5". This parameter needs to be changed to a new TAG when a release + info for another EL version is created. It must correspond to the release + string above. + +
+ New Functionality/Enhancements + + + + New Yocto + Project version ()INFO Yocto_VER and + ULINK_YOCTO_PROJECT_DOWNLOAD in + eltf_params_updated.xml + + + + New targets: Intel Xeon D, Intel Atom C3000 and Intel NUC Kaby + Lake. + + +
+ +
+ Problems Fixed in this Release + + TBD FIXME or set condition hidden on the section + element +
+ +
+ Added Drivers + + TBD FIXME or set condition hidden on the section + element +
+ + +
diff --git a/doc/book-enea-linux-release-info/doc/prerequisites.xml b/doc/book-enea-linux-release-info/doc/prerequisites.xml new file mode 100644 index 0000000..324bb57 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/prerequisites.xml @@ -0,0 +1,34 @@ + + + + Prerequisites + + Building Enea Linux or compiling applications requires that your git + environment be setup properly and for certain packages to be installed on + your Linux development host. + + Please refer to Getting + Started - First-Time Git Setup, for more details on how to set up + your git environment correctly, including how to set your identity using the + following commands: + + $ git config --global user.name "John Doe" +$ git config --global user.email johndoe@example.com + + First ensure the system is up-to-date, then for the supported + distribution(s), you need the following packages:INFO: The + programlisting below is a parameters in eltf_params_updated.xml with ID: + "eltf-prereq-apt-get-command-host". If multiple hosts are supported, store + the commands for each host in the same programlisting with empty lines + between each - the comment with the FULL HOST name and version is + essential. + + + + + \ No newline at end of file diff --git a/doc/book-enea-linux-release-info/doc/system_requirements.xml b/doc/book-enea-linux-release-info/doc/system_requirements.xml new file mode 100644 index 0000000..cc1248e --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/system_requirements.xml @@ -0,0 +1,159 @@ + + +
+ System Requirements + + The host requirements listed below are extensive to allow for the + building of Linux images via the Yocto system, and not just + applications. + + Please also see the system requirements in the Yocto 2.3 documents: + Yocto + Project Start and the Yocto + Project Reference Manual. If needed, replace the Yocto version in + the links provided with a more recent version. + + + + + + + + + + + + Build host + requirements + system requirements + + + + + Linux distribution + + The downloaded code shall be built on a Linux host to + generate images for your target or for emulation in QEMU. For + information about the supported hosts and targets, see the Enea Linux Release Information in your Enea + Linux distribution. + + + + Internet access + + Internet access must be available when building an image, + since bitbake downloads source files from various servers during the + build. + + + + Packages + + Depending on the Linux distribution and version on host, some + packages may be required, by bitbake for example. You will install + any required packages while following the installation + instructions. + + + + Targets + + Images can be built or downloaded for any of the targets + supported in this release. + + + + Disk space + + Your system should have at least 50 GB of free disk + space when bitbaking the basic enea-image-name kernel image. + For larger images and to allow for future package extensions + and variations in the build process, a minimum of 100 GB free disk + space is recommended. + + + + Recommended RAM + + Your system must have at least 4 GB available + RAM. It is recommended to have 8 GB RAM available for + parallel build jobs. + + + + Java + + Java + java + is required to run Eclipse. Currently, Eclipse + generally recommends at least Java 6 JRE/JDK. More information + regarding operating environments for Eclipse is provided in the + Eclipse + Project Release Notes for the Eclipse version used in this + release. See the Enea Linux Release + Information for the Eclipse Version. + + + + + + The build time depends on the capacity of the processor and other + hardware, available resources, speed of internet connection, load situation, + etc. E.g: on a fast 16 core machine with 16 GB RAM and SSD disks, a complete + build from source could take about two hours. + + + + + + + + + + + + Target + Requirements + + + + External memory + + To boot a CGL + CGL + image, you need at least 16 GB on a hard-disk + drive + HDD + on an eSATA, USB drive, or SD card.INFO: + (packed rootfs 4.5 GB + unpacked rootfs 1.5 GB + good + margins)INFO: NFS does not support SELinux. In + order to have a security-enhanced Linux, one must take off from an + NFS-booted system and proceed with boot from external + memory. + + + + + +
+ System Shell Configuration + + Before installing Enea Linux, ensure that bash is the default + shell. + + If your system runs Ubuntu, you can use ls -l to ensure + /usr/bin is a symbolic link to bash. In case the link + points to dash, which is default in some Ubuntu versions, change it to + bash by running sudo dpkg-reconfigure + dash and answer No to the + question "Use dash as the default system shell (/bin/sh)?": + + # ls -l /bin/sh + lrwxrwxrwx 1 root root 4 2012-03-02 11:53 /bin/sh -> bash +
+
\ No newline at end of file diff --git a/doc/book-enea-linux-release-info/swcomp.mk b/doc/book-enea-linux-release-info/swcomp.mk new file mode 100644 index 0000000..c274604 --- /dev/null +++ b/doc/book-enea-linux-release-info/swcomp.mk @@ -0,0 +1,10 @@ +# Component build specification + +# Version of THIS book +BOOK_VER ?= $(REL_VER)-dev + +DOCBOOK_SRC := $(COMP)/swcomp.mk $(COMP)/doc/book.xml $(shell find $(COMP)/doc -type f \( -name "*.xml" -o -name "*.svg" -o -name "*.png" \) ! -name "book.xml" -print) + +BOOKPACKAGES := book-enea-linux-release-info-rt +BOOKDESC_$(BOOKPACKAGES) := "Enea Linux $(PROD_VER) Release Information" +BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) diff --git a/doc/book-enea-linux-user-guide/doc/application_development.xml b/doc/book-enea-linux-user-guide/doc/application_development.xml new file mode 100644 index 0000000..0e2edf4 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/application_development.xml @@ -0,0 +1,282 @@ + + + Application Development + +
+ Cross-Compiling Applications + + Running make cross-compiles your applications + according to the environment settings. By installing a Cross-Compilation + Toolchain for your target, the environment variables are set up for + cross-compilation. For more details, see . + + Once the cross-compilation environment is set up, you can make your + applications as usual and get them compiled for your target. Below you see + how to cross-compile from the command line. If Eclipse is installed, you + can also cross-compile your code from the Eclipse IDE. For more details, + see . + + + + Create a Makefile for your application. Example of a simple + Makefile and application: + + helloworld:helloworld.o + $(CC) -o helloworld helloworld.o + +clean: + rm -f *.o helloworld + + #include <stdio.h> + +int main(void) { + printf("Hello World\n"); + return 0; +} + + + + Run make to cross-compile your application + according to the environment set up: + + $ make + + + If the build fails, check if the GNU Make workaround solves + your problem. + + + + + Copy the helloworld program to your target + and run it: + + # ./helloworld +Hello World + + +
+ +
+ Cross-Compiling Kernel modules + + Running make cross-compiles your kernel modules + according to the environment settings. By installing a Cross-Compilation + Toolchain for your target, the environment variables are set up for + cross-compilation. For more details, see . + + Before cross-compiling kernel modules, you need to make sure the + installed toolchain includes the kernel source tree, which should be + available at: + <sdkdir>/sysroots/<targetarch>-enea-linux/usr/src/kernel. + If the kernel source tree is not included in the toolchain, you need to + add the kernel-dev package into the image recipe enea-image-<name> + and build the toolchain again. + + Once the cross-compilation environment is set up, you can make your + kernel modules as usual and get them compiled for your target. Below you + see how to cross-compile a kernel module. + + + + Create a Makefile for the kernel module. Example of a simple + Makefile and kernel module: + + obj-m := hello.o +PWD := $(shell pwd) + +KERNEL_SRC := <full path to kernel source tree> + +all: scripts + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) LDFLAGS="" modules +scripts: + $(MAKE) -C $(KERNEL_SRC) scripts +clean: + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) LDFLAGS="" clean + + #include <linux/module.h> /* Needed by all modules */ +#include <linux/kernel.h> /* Needed for KERN_INFO */ +#include <linux/init.h> /* Needed for the macros */ + +static int __init hello_start(void) +{ + printk(KERN_INFO "Loading hello module...\n"); + printk(KERN_INFO "Hello, world\n"); + return 0; +} + +static void __exit hello_end(void) +{ + printk(KERN_INFO "Goodbye, world\n"); +} + +module_init(hello_start); +module_exit(hello_end); + +MODULE_LICENSE("GPL"); + + + + Run make to cross-compile your kernel module + according to the environment set up: + + $ make + + + + Copy the kernel module hello.ko to your + target and install/remove it: + + # insmod hello.ko +# rmmod hello.ko +# dmesg +[...] Loading hello module... +[...] Hello, world +[...] Goodbye, world + + +
+ +
+ Add an Application using devtool + + As a prerequisite, you need to install the SDK and set up the + environment. For this, see . + + The following section, Use + devtool add to Add an Application, in Yocto Project Software + Development Kit (SDK) Developer's Guide, explains how to use devtool to + generate recipes from existing application code, edit and build recipes, + and deploy the output on target. If needed, replace the Yocto version in + the link. + + This example will show how to generate a recipe from the existing + application code and Makefile, edit the recipe in order to provide an + installation path for the application, build the recipe, and deploy the + output on a target, or create a DEB package from the recipe and install + the package. + + + + Create a simple application and Makefile in + <workspace_dir>/my_app: + + <workspace_dir>/my_app/my_hello_app.c + + #include <stdio.h> + +int main(void) +{ + printf("Hello world!\n"); + return 0; +} + + <workspace_dir>/my_app/Makefile + + my_hello_app: + + + + Generate a recipe (my-hello-recipe) using the source tree of the + application (<workspace_dir>/my_app): + + $ devtool add my-hello-recipe <workspace_dir>/my_app +NOTE: Using source tree as build directory since that would be the default for this +recipe +NOTE: Recipe <SDK_dir>/workspace/recipes/my-hello-recipe/my-hello-recipe.bb has been +automatically created; further editing may be required to make it fully functional + + $ cat <SDK_dir>/workspace/recipes/my-hello-recipe/my-hello-recipe.bb +# Recipe created by recipetool +# This is the basis of a recipe and may need further editing in order to be fully +# functional. +# (Feel free to remove these comments when editing.) +# +# Unable to find any files that looked like license statements. Check the +# accompanying documentation and source headers and set LICENSE and +# LIC_FILES_CHKSUM accordingly. +# +# NOTE: LICENSE is being set to "CLOSED" to allow you to at least start building - if +# this is not accurate with respect to the licensing of the software being built (it +# will not be in most cases) you must specify the correct value before using this +# recipe for anything other than initial testing/development! +LICENSE = "CLOSED" +LIC_FILES_CHKSUM = "" + +# No information for SRC_URI yet (only an external source tree was specified) +SRC_URI = "" + + +# NOTE: this is a Makefile-only piece of software, so we cannot generate much of the +# recipe automatically - you will need to examine the Makefile yourself and ensure +# that the appropriate arguments are passed in. + +do_configure () { + # Specify any needed configure commands here + : +} + +do_compile () { + # You will almost certainly need to add additional arguments here + oe_runmake +} + +do_install () { + # NOTE: unable to determine what to put here - there is a Makefile but no + # target named "install", so you will need to define this yourself + : +} + + + + Edit the recipe to provide an installation path for the + application: + + $ devtool edit-recipe my-hello-recipe + + $ cat <SDK_dir>/workspace/recipes/my-hello-recipe/my-hello-recipe.bb +... +do_install () { + # NOTE: unable to determine what to put here - there is a Makefile but no + # target named "install", so you will need to define this yourself + install -d ${D}${bindir} + install -m 0777 ${S}/my_hello_app ${D}${bindir} +} +... + + + + Build the recipe: + + $ devtool build my-hello-recipe + + The recipe build results can be seen here: + <SDK_dir>/tmp/work/<arch>-enea-linux/my-hello-recipe/1.0-r0/ + + + + Deploy the output (in this case, the application) on + target: + + $ devtool deploy-target my-hello-recipe root@<target_ip_address> +Parsing recipes..done. +NOTE: Successfully deployed +<SDK_dir>/tmp/work/<arch>-enea-linux/my-hello-recipe/1.0-r0/image + + As an alternative you can create a DEB package: + + $ devtool package my-hello-recipe +... +NOTE: Your packages are in <SDK_dir>/tmp/deploy/deb + + Then copy the DEB package on the target and install it using + dpkg: + + # dpkg -i my-hello-recipe-1.0-r0.1.<arch>.deb + + +
+
diff --git a/doc/book-enea-linux-user-guide/doc/book.xml b/doc/book-enea-linux-user-guide/doc/book.xml new file mode 100644 index 0000000..48747ef --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/book.xml @@ -0,0 +1,22 @@ + + +]> + + <trademark class="registered">Enea</trademark> Linux User's Guide + Release Version + + + + + + + + + + + + + diff --git a/doc/book-enea-linux-user-guide/doc/eltf_params_template.xml b/doc/book-enea-linux-user-guide/doc/eltf_params_template.xml new file mode 100644 index 0000000..eaa7ebd --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/eltf_params_template.xml @@ -0,0 +1,151 @@ + + +
+ File with Parameters in the Book Auto-updated by ELFT + + + See the eltf_params_updated_template_howto_use.txt text + file for description of how to create the final eltf_params_updated.xml from this template and for + all REQUIREMENTS. Use the command + "make eltf" to extract a full list of all + ELTF variables, which always begins with ELTF_ and don't only rely on the + howto text file list! The plan is that ELTF will auto-update this when + needed. + + +
+ Common Parameters + + A programlisting, ID + "eltf-prereq-apt-get-commands-host" + + ELTF_PL_HOST_PREREQ + + A programlisting, ID + "eltf-getting-repo-install-command" + + ELTF_PL_GET_REPO + + Several phrase elements, various IDs. Ensure EL_REL_VER is + correct also compared to the "previous" REL VER in pardoc-distro.xml + "prev_baseline". + + ELTF_EL_REL_VER + + ELTF_YOCTO_VER + + ELTF_YOCTO_NAME + + ELTF_YOCTO_PROJ_DOWNLOAD_TXTURL + + ELTF_EL_DOWNLOAD_TXTURL + + A programlisting, ID "eltf-repo-cloning-enea-linux". Use + $MACHINE/default.xml as parameter, where MACHINE is one of the target + directory names in the manifest. + + ELTF_PL_CLONE_W_REPO + + A table with ONE row, only the row with ID + "eltf-eclipse-version-row" is included in the book. MANUALLY BOTH in the + template.xml and in the updated.xml, set condition hidden on the + <row>, if eclipse is not in the release. + + + + + + Eclipse version ELTF_ECLIPSE_VERSION plus command line + development tools are included in this Enea NFV Access release. + + + + + + Below is one big section with title "Supported Targets with + Parameters". The entire section is included completely in the book via ID + "eltf-target-tables-section" and shall be LAST in the template. The + template contains ONE target subsection. COPY/APPEND it, if multiple + targets exist in the release and optionally add rows with additional + target parameters in each target subsection table. +
+ +
+ Supported Targets with Parameters + + The tables below describes the target(s) supported in this Enea + NFV Access release. + +
+ MACHINE ELTF_T_MANIFEST_DIR - Information + + + + + + + + + + Target official name + + ELTF_T_NAME + + + + Architecture and Description + + ELTF_T_ARC_DESC + + + + Link to target datasheet + + See ELTF_T_DS_TXTURL + + + + Poky version + + ELTF_T_POKY_VER + + + + GCC version + + ELTF_T_GCC_VER + + + + Linux Kernel Version + + ELTF_T_KERN_VER + + + + Supported Drivers + + ELTF_T_DRIVERS + + + + Enea rpm folder for downloading RPM packages for this + target + + ELTF_T_EL_RPM_TXTURL + + + + +
+ + +
+
\ No newline at end of file diff --git a/doc/book-enea-linux-user-guide/doc/eltf_params_updated.xml b/doc/book-enea-linux-user-guide/doc/eltf_params_updated.xml new file mode 100644 index 0000000..b557335 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/eltf_params_updated.xml @@ -0,0 +1,313 @@ + + +
+ File with Parameters in the Book Auto-updated by ELFT + + + See the eltf_params_updated_template_howto_use.txt text + file for description of how to create the final eltf_params_updated.xml from this template and for + all REQUIREMENTS. Use the command + "make eltf" to extract a full list of all + ELTF variables, which always begins with ELTF_ and don't only rely on the + howto text file list! The plan is that ELTF will auto-update this when + needed. + + +
+ Common Parameters + + A programlisting, ID + "eltf-prereq-apt-get-commands-host" + + # Host Ubuntu 16.04.2 LTS 64bit +sudo apt-get -y update +sudo apt-get -y install sed wget subversion git-core coreutils unzip texi2html \ + texinfo libsdl1.2-dev docbook-utils fop gawk python-pysqlite2 diffstat \ + make gcc build-essential xsltproc g++ desktop-file-utils chrpath \ + libgl1-mesa-dev libglu1-mesa-dev autoconf automake groff libtool xterm \ + libxml-parser-perl + + A programlisting, ID + "eltf-getting-repo-install-command" + + mkdir -p ~/bin +curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo +chmod a+x ~/bin/repo +export PATH=~/bin:$PATH + + Several phrase elements, various IDs. Ensure EL_REL_VER is + correct also compared to the "previous" REL VER in pardoc-distro.xml + "prev_baseline". + + 8 + + 2.5 + + sumo + + http://www.yoctoproject.org/downloads + + http://linux.enea.com/EneaLinux8.0 + + A programlisting, ID "eltf-repo-cloning-enea-linux". Use + $MACHINE/default.xml as parameter, where MACHINE is one of the target + directory names in the manifest. + + mkdir enea-linux +cd enea-linux +repo init -u git@git.enea.com:linux/manifests/el_manrtt.git \ + -b refs/tags/Enea_Linux_8.0 -m intel-corei7-64/default.xml +repo sync + + A table with ONE row, only the row with ID + "eltf-eclipse-version-row" is included in the book. MANUALLY in book, set + condition hidden if eclipse is not in the release. + + + + + + Eclipse version 4.7 (Oxygen) plus command line development + tools are included in this Enea Linux release. + + + + + + Below is one big section with title "Supported Targets with + Parameters". The entire section is included completely in the book via ID + "eltf-target-tables-section" and shall be LAST in the template. The + template contains ONE target subsection. COPY/APPEND it, if multiple + targets exist in the release and optionally add rows with additional + target parameters in each target subsection table. +
+ +
+ Supported Targets with Parameters + + The section(s) below describe the target(s) supported in this Enea + Linux release. + +
+ MACHINE Information + + The table(s) below describes the target(s) supported in this Enea + Linux release. + + + MACHINE Information Intel Xeon D + + + + + + + Component + + Description + + + + + + Target official name + + Intel Xeon D + + + + Architecture and Description + + x86-64 + + + + Link to target datasheet + + Intel + Xeon D datasheet + + + + Poky version + + Git-commit-id: TBD + + + + GCC version + + 7.3 + + + + Linux Kernel Version + + 4.14 + + + + Supported Drivers + + Ethernet, RTC, UART + + + + Enea deb folder for downloading DEB packages for this + target + + http://linux.enea.com/EneaLinux8.0/deb + + + +
+ + + MACHINE Information Intel Atom C3000 + + + + + + + Component + + Description + + + + + + Target official name + + Intel Atom C3000 + + + + Architecture and Description + + x86-64 + + + + Link to target datasheet + + Intel + Atom datasheet + + + + Poky version + + Git-commit-id: TBD + + + + GCC version + + 7.3 + + + + Linux Kernel Version + + 4.14 + + + + Supported Drivers + + Ethernet, RTC, UART + + + + Enea deb folder for downloading DEB packages for this + target + + http://linux.enea.com/EneaLinux8.0/deb + + + +
+ + + MACHINE Information Intel NUC Kaby Lake + + + + + + + Component + + Description + + + + + + Target official name + + Intel NUC Kaby Lake + + + + Architecture and Description + + x86-64 + + + + Link to target datasheet + + Intel + NUC Kaby Lake datasheet + + + + Poky version + + Git-commit-id: TBD + + + + GCC version + + 7.3 + + + + Linux Kernel Version + + 4.14 + + + + Supported Drivers + + Ethernet, RTC, UART + + + + Enea deb folder for downloading DEB packages for this + target + + http://linux.enea.com/EneaLinux8.0/deb + + + +
+
+
+
diff --git a/doc/book-enea-linux-user-guide/doc/eltf_params_updated_template_how_to_use.txt b/doc/book-enea-linux-user-guide/doc/eltf_params_updated_template_how_to_use.txt new file mode 100644 index 0000000..62e5d02 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/eltf_params_updated_template_how_to_use.txt @@ -0,0 +1,320 @@ +eltf_params_template_updated_howto_use.txt + +This is a way to collect all parameters for an Enea NFV Access release +in one parameter file, easy to automatically update by ELTF regularly. + +NOTE: Both the release info AND the open source books use parameters from + here, but the XML file is inside the release info book directory. + +NOTE: The manifest_conf.mk, or overridden by the environment variable + MANIFESTHASH, contains the full tag (or hashvalue) for downloading + the manifest when the books are built. The list of target + directories are fetched from the manifest into the book. + The eltf_params_updates.xml can all the time contain + the final next complete tag e.g. refs/tags/EL6 or similar + in the ELTF_PL_CLONE_W_REPO parameter command lines. + +The ordinary book XML files use xi:include statements to include elements +from this parameter file. The book XML files can thus be manually edited. +Before editing, you must run "make init". +Any other text in the template or updated.xml file, outside the parts that +are included in the book, are not used but still all must be correct +DocBook XML files. + +ELTF work: + template => ELTF replaces ALL ELTF_xxx variables => updated XML file + => push to git only if changed + + +eltf_params_template.xml (in git) + File used by ELTF to autocreate/update the real parameter + file eltf_params_updated.xml. + +eltf_params_updated.xml (in git) + Real parameter file where ELTF has replaced all ELTF_xx variables with + strings, in several cases with multiline strings. + No spaces or linefeed allowed in beginning or end of the variable values! + + +xi:include: Each parameter is xi:include'ed in various book files, using + the IDs existing in the parameter files. + In most cases the 1:st element inside an element with an ID is included + using a format like eltf-prereq-apt-get-commands-host/1. + In very few cases the element with the ID is included in the book, one + example is the target section which has an ID, but which contains + multiple subsections, one per target. + All IDs in a book must be unique. + +DocBook XML: All XML files must be correct DocBook XML files. + +Do NOT edit/save the real *updated.xml file with XMLmind to avoid changes + not done by ELTF. But it is OK to open the real file in XMLmind to + check that the format is correct. + +ELTF should autocreate a temporary "real" file but only replace + and push the eltf_params_updated.xml if it is changed. + + +make eltf + This lists all ELTF_xxx variables and some rules how to treat them + +DocBook Format: All elements - rules: + Several strict generic XML rules apply for all strings: + 1. No TABs allowed or any other control chr than "linefeed" + 2. Only 7-bit ASCII + 3. Any < > & must be converted to < > and & + Similar for any other non-7-bit-ASCII but avoid those! + 4. No leading spaces or linefeeds when replacing the ELTF_* variable + 5. No trailing spaces or linefeeds when replacing the ELTF_* variable + 6. Note: Keep existing spaces before/efter ELTF_* in a few cases. + +DocBook Format: - rules: ELTF*PL* variables + Several strict rules apply for the multiline string in programlisting + in addition to the general XML rules above: + 7. Max line length < 80 char + 8. Use backslash (\) to break longer lines + 9. Use spaces (e.g. 4) to indent continuation lines in programlistings + 10. No trailing spaces on any line + 11. No spaces or linefeed immediately after leading + 12. No spaces or linefeed before trailing + +DocBook Format: - rules: ELTF_*URL* variables + 13. ELTF_*URL and corresponding ELTF_*TXTURL shall be identical strings + 14. Only if the URL is extremely long, the TXTURL can be a separate string + +Each target has one section with target parameters: +
+ MACHINE ELTF_T_MANIFEST_DIR - Information + ..... with many ELTF_ variables .... +
+ + 15. If there is only one target. ELTF just replaces ELTF parameters + + 16. It there are multiple targets. ELTF copies the section and appends the + section the required number of times. + Each section ID will become unique: eltf-target-table-ELTF_T_MANIFEST_DIR + Each section title will become unique + +Tables with target parameters in each target section: + 17. It is possible for ELTF to append more rows with one parameter each + to these tables, because the entire tables are included in the book + +Special - NOT YET READY DEFINED how to handle the optionally included + Eclipse and its version, but this is a first suggestion: + 18. Just now ELTF can define ELFT_ECLIPSE_VERSION as a full string + with both version number and name, + 19. MANUALLY if Eclipse is NOT included in the release, + the release manager should manually set condition="hidden" on + the entire section in the book XML about Eclipse + + + +BELOW WE TRY TO EXPLAIN EACH ELTF_* variable, but always check with make eltf +if there are more new variables, missing in this description file. + +_____________________________________________________________________________ +ELTF_PL_HOST_PREREQ Multiline list of host prerequisites, e.g. commands + like sudo apt-get install xxxx or similar. + First line = comment with the complete host name! + It is possible to include multiple hosts by just + adding an empty line, comment with host name, etc. + xi:include eltf-prereq-apt-get-commands-host/1 + This is a ... + Example: +# Host Ubuntu 14.04.5 LTS 64bit +sudo apt-get update +sudo apt-get install sed wget subversion git-core coreutils unzip texi2html \ + texinfo libsdl1.2-dev docbook-utils fop gawk python-pysqlite2 diffstat \ + make gcc build-essential xsltproc g++ desktop-file-utils chrpath \ + libgl1-mesa-dev libglu1-mesa-dev autoconf automake groff libtool xterm \ + libxml-parser-perl + +_____________________________________________________________________________ +ELTF_PL_GET_REPO Multiline commands to download the repo tool + xi:include eltf-getting-repo-install-command/1 + This is a ... + Example: +mkdir -p ~/bin +curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo +chmod a+x ~/bin/repo +export PATH=~/bin:$PATH + +_____________________________________________________________________________ +ELTF_EL_REL_VER General parameter string: The version of this Enea + NFV Access release. Major version and optional .Minor + Typically created from MAJOR and MINOR in enea.conf + MINOR in enea.conf is empty or contains a dot+minor + xi_include EneaLinux_REL_VER/1 + This is a X.x used in many places. + Examples: +6 + or +6.1 + +_____________________________________________________________________________ +ELTF_YOCTO_VER General parameter string: Yocto version, created + from DISTRO in poky.ent + xi:include Yocto_VER/1 + This is a X.x used in many places. + Example: +2.1 + +_____________________________________________________________________________ +ELTF_YOCTO_NAME General parameter string: Yocto name (branch), created + from DISTRO_NAME_NO_CAP in poky.ent + xi:include Yocto_NAME/1 + This is a X.x used in many places. + Example: +krogoth + +_____________________________________________________________________________ +ELTF_YOCTO_PROJ_DOWNLOAD_TXTURL General parameters. These two are IDENTICAL +ELTF_YOCTO_PROJ_DOWNLOAD_URL strings with correct Yocto version string + at the end, typically without "dot". + xi:include ULINK_YOCTO_PROJECT_DOWNLOAD/1 + This is an ... + Example: +http://www.yoctoproject.org/downloads/core/krogoth/21 + +_____________________________________________________________________________ +ELTF_EL_DOWNLOAD_TXTURL General parameters. These two are IDENTICAL strings +ELTF_EL_DOWNLOAD_URL and shall be the http:/..... address where + Enea NFV Access can be downloaded + Often containing same version as in ELTF_EL_REL_VER + xi:include ULINK_ENEA_LINUX_URL/1 + This is an ... + Example: +http://linux.enea.com/6 + +_____________________________________________________________________________ +ELTF_PL_CLONE_W_REPO Multiline commands to run repo to clone everything. + Use the variable $MACHINE/default.xml (the text in + the book will list the avaiable values of MACHINE, + taken from the manifest repository) + xi:include eltf-repo-cloning-enea-linux/1 + This is a ... + Example: +mkdir enea-linux +cd enea-linux +repo init -u git@git.enea.com:linux/manifests/el_manifests-virtualization.git \ + -b refs/tags/EL6 -m $MACHINE/default.xml +repo sync + +_____________________________________________________________________________ +ELTF_ECLIPSE_VERSION Optional general parameter string. + NOT YET READY DEFINED + Just now a release manage must manually set + condition="hidden" on the Eclipse section, + if Eclipse is not included in the release. + ELTF just replaces ELTF_ECLIPSE_VERSION with a full + string with "X.Y (name)" + It includes the ID and can only be ONCE in the book. + xi:include eltf-eclipse-version-row + Example. +4.5 (Mars) + + +_____________________________________________________________________________ +ELTF_T_* All these are in each target (MACHINE) and ELTF + must separately replace them with strings for + each target + NOTE: All (except the MANIFEST_DIR) are in rows + in a table and ELTF can select to append + more parameters by adding more rows + +_____________________________________________________________________________ +ELTF_T_MANIFEST_DIR This happens to be in two places. Must be exactly +ELTF_T_MANIFEST_DIR the directory name in the manifest, e.g. same + as the MACHINE names in $MACHINE/default.xml. + In book: a) Part of section ID + b) Part of section title + Examples: +p2041rgb + or +ls1021aiot + or +qemuarm + +_____________________________________________________________________________ +ELTF_T_NAME Target specific: "Target Official Name" + NOT same as the target directory name in most cases. + In book: An element in a row + Examples: +P2041RGB + or +LS1021a-IoT + or +qemuarm + +_____________________________________________________________________________ +ELTF_T_ARC_DESC Target specific: "Architecture and Description" + It can be a short identification string or + it can be a longer descriptive sentence. + In book: An element in a row + Examples: +Power, e500mc + or +ARM Cortex-A7 + +_____________________________________________________________________________ +ELTF_T_DS_TXTURL Target specific: "Link to target datasheet. These +ELTF_T_DS_URL two usually are IDENTICAL strings with correct + hyperlink to the target's official datasheet. + In book: an ... + Only if the link is VERY LONG, the text part shall + instead be a descriptive string (see 2:nd example). + NOTE: Also here no spaces or line-feeds! + Examples: +url="http://wiki.qemu.org">http://wiki.qemu.org +or +url="http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors/qoriq-ls1021a-iot-gateway-reference-design:LS1021A-IoT">link to NXP's datasheet + +_____________________________________________________________________________ +ELTF_T_POKY_VER Target specific: "Poky version" created either + from POKYVERSION in poky.ent + or using a hashvalue with a leading string, in + which case it may be different per target. + In book: An in a row + Examples: +15.0.0 +or +Git commit id: 75ca53211488a3e268037a44ee2a7ac5c7181bd2 + +_____________________________________________________________________________ +ELTF_T_GCC_VER Target specific: "GCC Version". Should be in poky + but not easy to find among various parameters. + ELTF would extract it from build logs building SDK + and it is possibly different per target. + In book: An in a row + Example: +5.3 + +_____________________________________________________________________________ +ELTF_T_KERN_VER Target specific: "Linux Kernel Version". Often + different per target. + In book: An in a row + Example: +3.12 + +_____________________________________________________________________________ +ELTF_T_DRIVERS Target specific: "Supported Drivers". This is a + comma-separated list of driver names. + ELTF should create the list in same order for each + target, e.g. alphabetic migth be OK. + In book: An in a row + Example: +Ethernet, I2C, SPI, PCI, USB, SD/SDHC/SDXC + + +_____________________________________________________________________________ +ELTF_T_EL_RPM_TXTURL Target specific: "Enea rpm folder for downloading +ELTF_T_EL_RPM_URL RPM packages for this target". These two are + INDENTICAL strings with hyperlink to the web site + at Enea where the customer can download RPMs + Note: Often the ELFT_EL_REL_VER value and + the ELTF_T_MANIFEST_DIR are used in the link. + In book: an ... + Example: +url="https://linux.enea.com/6/ls1021aiot/rpm">https://linux.enea.com/6/ls1021aiot/rpm + +_____________________________________________________________________________ diff --git a/doc/book-enea-linux-user-guide/doc/getting_enea_linux.xml b/doc/book-enea-linux-user-guide/doc/getting_enea_linux.xml new file mode 100644 index 0000000..e58726e --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/getting_enea_linux.xml @@ -0,0 +1,145 @@ + + + Getting Enea Linux + + Enea Linux is available as both pre-built binary images and source + code. Both serve a specific purpose and each have their advantages. However, + using the pre-built binary images allows for getting up and running faster. + Please refer to the sections below for details on how to get Enea Linux as + pre-built binary images or source code. + +
+ Getting Pre-Built Binaries + + Enea Linux pre-built binaries are available for download on Enea + Download Portal. Log in using the credentials provided. Using the + menu, browse to the Linux section. You + will now have access to the Files section + and the Online Documentation + section. + + The Files section lists each Enea Linux distribution, one for each + version and profile, as a separate download package. Clicking on the name + of the distribution will open a new page, which presents further details + about the content of the release and a list of downloadable archives, one + for each hardware target included in the release. Each archive provides + the following content: + + + + images directory - this directory includes + the binary image files needed to boot the target with Enea Linux. This + includes the kernel, the root file system, device tree, etc. + + + + sdk directory - this directory includes the + installer for the SDK. + + + + deb directory - this directory contains all + the packages included in the distribution in deb format, which can be + installed using the package manager. + + + + For faster downloads, each archive is mirrored in several places, + geographically. Choose the archive in the region closest to you. + + The Documentation section lists all the documents delivered with the + release. +
+ +
+ Getting the Sources + + Enea Linux sources are available for cloning from a set of Git + repositories on git.enea.com. + Since Enea Linux requires multiple repositories, Google Repo tool is used + in order to manage configurations and make the cloning step simpler. + Google Repo tool uses files, known as manifests, which store a list of + tuples (repository URL, version). The Repo tool is then used to traverse + the list of tuples in the manifest file and clone the specified versions + of each repository. See https://code.google.com/p/git-repo/ + for more info. + +
+ Get access to git.enea.com + + In order to get access to git.enea.com, a ssh key is required for + Git authentication. If you don't already have such a key, follow the + steps below to generate one: + + + + Generate the ssh key pair: + + $ ssh-keygen -t rsa + + When asked for a password, just press Enter. This will create + two files in the .ssh directory in your home directory. + + id_rsa +id_rsa.pub + + + + Copy the public key into an authorized_keys file: + + $ cat id_rsa.pub >> authorized_keys + + + + Once these steps are done and you have a valid ssh key pair, send + the public key, id_rsa.pub, via email to + mailto:git_support@list.enea.se in order to get access to + git.enea.com. +
+ +
+ Get Sources + + To use the Repo tool to download the sources for Enea Linux, do + the following: + + + + Make sure that the repo tool is installed. If not, do the + following: Below is include of ID + "eltf-getting-repo-install-command" from + eltf_params_updated.xml + + + + + + Then use the repo command below: + + + + + + Once the source code is downloaded, the current directory will + contain a README file with instructions on how to + build the distro and boot the machine you choose. . + + It's not necessary to explicitly clone the manifest repository + since that is done automatically by the repo tool. To see the current + manifest, use the following command: + + $ repo manifest + + The UG should be updated with instructions on how to add + customizations. That section should also contain more info about the + manifest: the manifest templates, using a branch instead of the tag EL6, + etc. When this is done a reference from here should be added. +
+
+
diff --git a/doc/book-enea-linux-user-guide/doc/getting_started.xml b/doc/book-enea-linux-user-guide/doc/getting_started.xml new file mode 100644 index 0000000..61ffea5 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/getting_started.xml @@ -0,0 +1,108 @@ + + + Getting Started + +
+ Using Enea Linux + + + +
+ System Requirements + + +
+ +
+ Installing Enea Linux + + (downloading prebuit artifacts, brief description of files + etc.) +
+ +
+ Installing Enea Linux SDK + + +
+ +
+ Booting the images (RAM, SD Card) + + +
+ +
+ Package Management + + +
+
+ +
+ Building Enea Linux + + + +
+ System Requirements + + (covers shell configurations, required host packages, etc.) +
+ +
+ Getting Enea Linux sources + + (covers repo tool basic info, instructions how to clone repos, + etc.) +
+ +
+ Set up the build environment + + +
+ +
+ Build Enea Linux Images from sources + + +
+ +
+ Build Cross-Compilation Toolchain + + +
+
+ +
+ Customizing Enea Linux + + + +
+ Layers and Adaptations + + (covers building with a new layer etc.) +
+ +
+ Adding a Recipe + + +
+ +
+ Configuring Packages via Recipes + + +
+ +
+ Building with Commercial Licenses + + +
+
+
\ No newline at end of file diff --git a/doc/book-enea-linux-user-guide/doc/images/install_new_sw.png b/doc/book-enea-linux-user-guide/doc/images/install_new_sw.png new file mode 100644 index 0000000..fe1ccd9 Binary files /dev/null and b/doc/book-enea-linux-user-guide/doc/images/install_new_sw.png differ diff --git a/doc/book-enea-linux-user-guide/doc/images/install_new_sw.svg b/doc/book-enea-linux-user-guide/doc/images/install_new_sw.svg new file mode 100644 index 0000000..d73f03d --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/images/install_new_sw.svg @@ -0,0 +1,888 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/doc/book-enea-linux-user-guide/doc/introduction.xml b/doc/book-enea-linux-user-guide/doc/introduction.xml new file mode 100644 index 0000000..ccbdb0a --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/introduction.xml @@ -0,0 +1,55 @@ + + + Introduction + + Welcome to Enea Linux + + Enea Linux is based on the + open source configuration system Yocto which is becoming the de facto + standard for building and configuring embedded Linux. Yocto development is + coordinated by the Yocto Project which was initiated by the Linux + Foundation. + + The Yocto-based development environment of Enea Linux allows you to + build embedded Linux kernels and tool chains on a Linux host. It aids you in + customizing embedded Linux kernels for a specific hardware architecture, and + in building and troubleshooting embedded Linux applications on targets or + emulated in QEMU. + + Enea Linux also provides verified and easily installed board support + packages (BSP) for a number of hardware architectures. Each BSP includes a + Linux kernel and a root filesystem (rootfs), plus a number of packages that + can be extended on request. + + Providing true open source Linux with customer interests in mind, is + the cornerstone for Enea when supplying Enea Linux. We provide: + + + + A Yocto compatible environment, familiar for those who have used + Yocto from any other distribution. + + + + The Enea Linux environment is fully independent from hardware + vendor leverage and does not push for a particular hardware + architecture. + + + + Enea has initiated and contributes the ptest package test + framework to the Yocto Project. Enea also uses ptest to verify the + packages on target. + + + + By using, testing Yocto and sharing Linux patches with upstream + projects, Enea assists the open source community in providing mature + software in less time. As an Enea Linux user, you are welcome to contribute + to the global development of Linux by propagating your Linux patches through + Enea. + + Enea can also assist a customer by analyzing source code and producing + valid open source reports, as required by the community when open source + components are used. + \ No newline at end of file diff --git a/doc/book-enea-linux-user-guide/doc/preface.xml b/doc/book-enea-linux-user-guide/doc/preface.xml new file mode 100644 index 0000000..1752ff5 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/preface.xml @@ -0,0 +1,157 @@ + + + Preface + +
+ The Purpose of this Guide + + This guide is intended for all Enea Linux developers who want to + configure and build customized Linux kernel images for embedded system + targets, but also for developers who want to build and run applications in + Enea Linux. + + + Always read the README files and the Release Information before + this User's Guide. + + + The recommended order of operations for developers are: + + + + Receive information from Enea and read the initial documentation + online. + + + + Update the development host with the needed packages, then + download and install Enea Linux. + + + + Download and install the Cross-Compilation Toolchain. + + + + Start developing your own Enea Linux applications or building + your own Enea Linux images. + + + + It is assumed that the reader of this User's Guide has a deep + knowledge about Linux, how to configure the Linux kernel, and knows how to + use the Yocto build system. The variety of information provided in this + guide can serve as a quick start introduction to the standards and best + practices we share with the Linux community. In this spirit, Enea provides + training courses. + + With this Enea Linux release you have a verified and easy to install + board support package for a number of supported hardware types. The board + support package includes a set of prebuilt utilities, accessible and setup + to rapidly reach your objectives as a developer. In this regard, the + support package contains a Linux kernel and root file system, a Software + Development Kit (SDK) which includes the cross-compilation toolchain, a + variety of tools and scripts for development and customization, and if + opted for, a user-friendly Eclipse version with an integrated development + environment. + + The documentation for Enea Linux consists of generic and + distribution-specific documents. The generic documents are common for + several Enea Linux distributions. The main documents are: + + + + + + Enea Linux Release Information + + A distribution specific document detailing what the current + release contains, including supported features, references to + other documentation, known problems and limitations, and Enea + support contact information. + + + + README files for the distribution + + Distribution specific documents that serve as an + introduction and how-to for this release, where you also find + target specific commands and parameters, replacing the generic + examples in the User's Guide. These files also point to Build, + Boot, and Configuration information details for this + distribution. + + + + Enea Linux User's Guide + + The generic manual for developers who build Linux kernels + for embedded systems or use prebuilt Linux kernels. + + + + Enea Linux Open Source Report + + The distribution specific list of software packages with + corresponding Open Source Licenses, that are included in the Enea + Linux distribution. + + + + Enea Linux Security Report + + The release specific document listing the CVEs affecting + this distribuition. + + + +
+ + See also the following generic documentation related to the Yocto + project, which actually is based on OpenEmbedded. + + + + https://www.yoctoproject.org/documentation/archived + - Yocto project documentation. Search for the Yocto version included + in your Enea Linux distribution. + + + + + + http://docs.openembedded.org + - OpenEmbedded documentation, useful since Yocto is based on + OpenEmbedded. + + + + + + https://wiki.yoctoproject.org/wiki + - Yocto Wiki, useful information for Yocto users + + + + + + https://wiki.yoctoproject.org/wiki/Ptest + - Ptest wiki. Ptest was initiated by Enea, for building, installing + and running package test suites + + + + + + http://www.crashcourse.ca/wiki/index.php/Poky_Variable_Glossary + - Explanation of some Yocto/Poky variables used in the build + configuration files. + + +
+
\ No newline at end of file diff --git a/doc/book-enea-linux-user-guide/doc/prerequisites_and_requirements.xml b/doc/book-enea-linux-user-guide/doc/prerequisites_and_requirements.xml new file mode 100644 index 0000000..2215ba8 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/prerequisites_and_requirements.xml @@ -0,0 +1,101 @@ + + + Prerequisites and Requirements + + Building Enea Linux or compiling applications requires that your git + environment be setup properly and for certain packages to be installed on + your Linux development host. The following chapter details the + configurations needed on the build environment in order to properly use Enea + Linux. + +
+ Git Configuration + + If you intend to get Enea Linux sources and build Enea Linux + yourself, you will need Git installed in your build environemtn. Please + refer to Getting + Started - First-Time Git Setup, for more details on how to set up + your git environment correctly, including how to set your identity using + the following commands: + + $ git config --global user.name "John Doe" +$ git config --global user.email johndoe@example.com +
+ +
+ Host Packages + + In order to work with Enea Linux, you need a set of tools installed + on the build machine, depending on the scenario you use. The following + chapters will describe what tools to install on the build machine. + +
+ Using Pre-Build Binaries + + Using the pre-built binaries, you can get up and running more + quickly. Since building is not required, there are not a lot of packaes + and tools that need to be installed but a few are still required: + + + + wget - for downloading the Enea Linux binaries + + + + tar - for decompressing the Enea Linux release + + + + tftpboot server - for deploying Enea Linux on target + + + + NFS server - in case you want to mount the root file system + over NFS + + +
+ +
+ Required Packages for the Host Development System + + Building Enea Linux requires a set of packages to be installed on + your Linux development host. The list of required packages is described + in the Yocto + Project reference manual. +
+
+ +
+ Default Shell Configuration + + Before installing Enea Linux, make sure that + bash is the default shell. + + To verify the default system + shell + + + + If your system runs Ubuntu, use list to verify if + /usr/bin is a symbolic link to bash: + + # ls -l /bin/sh +lrwxrwxrwx 1 root root 4 2012-03-02 11:53 /bin/sh -> bash + + + + Optionally, in case the link points to dash, + change it through the following steps: + + # ls -l /bin/sh +lrwxrwxrwx 1 root root 4 2012-03-02 11:53 /bin/sh -> dash +# sudo dpkg-reconfigure dash +Use dash as the default system shell (/bin/sh)? No + + +
+
diff --git a/doc/book-enea-linux-user-guide/doc/real_time_in_enea_linux.xml b/doc/book-enea-linux-user-guide/doc/real_time_in_enea_linux.xml new file mode 100644 index 0000000..8f3ada0 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/real_time_in_enea_linux.xml @@ -0,0 +1,26 @@ + + + Real-Time in Enea Linux + + Additional packages providded by RT profile: + + + + bitcalc, 1.0-r0.0 + + + + count-ticks, 1.1-r1.0 + + + + partrt, 1.1-r0.0 + + + +
+ Benchmark + + TBD. +
+
\ No newline at end of file diff --git a/doc/book-enea-linux-user-guide/doc/troubleshooting.xml b/doc/book-enea-linux-user-guide/doc/troubleshooting.xml new file mode 100644 index 0000000..298bdd9 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/troubleshooting.xml @@ -0,0 +1,10 @@ + + + Troubleshooting + +
+ + + +
+
\ No newline at end of file diff --git a/doc/book-enea-linux-user-guide/doc/using_eclipse.xml b/doc/book-enea-linux-user-guide/doc/using_eclipse.xml new file mode 100644 index 0000000..f6c7759 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/using_eclipse.xml @@ -0,0 +1,1225 @@ + + + Using Eclipse + +
+ Installing Eclipse + + For instructions on how to install Eclipse Oxygen, please refer to + the Yocto + Project Software Development Kit (SDK) Developer's Guide, chapter + 4.3.2.1. Although the instructions listed there currently, refer to the + Neon release of Eclipse, the same steps still apply to the Oxygen release, + with some small differences: + + + + In step 1 from chapter + 4.3.2.1.1, the URL for downloading Eclipse should be http://www.eclipse.org/oxygen + instead. + + + + In step 3 from chapter + 4.3.2.1.2, the correct option in the drop-down menu should look like: + Oxygen - + http://download.eclipse.org/releases/oxygen. + + + + In step 5 from chapter + 4.3.2.1.2, under the category Mobile and Device + Development, select C/C++ GDB + Hardware Debugging as well. + + +
+ +
+ Installing Yocto Plug-ins + + Retrieve the archive containing the Yocto Plug-ins from the Enea + Linux release location and save it on your local machine. The archive file + has the following format: + org.yocto.sdk-<release>-<date>-archive.zip. + + To install the Yocto Plugins in Eclipse, follow the instructions in + chapter + 4.3.2.1.3.2. of the Yocto Manual, starting with step 8. In step 12 + use the local archive that you downloaded previously. + + To make sure that all required packages have been installed, go to + the menu Help > Install New Software > Eclipse + version, and select the version you use (e.g. Oxygen), to add + any missing packages. You can also check what packages are currently + installed by pressing the What is Already + Installed? link, as seen below. + + + + + + + + + + +
+ +
+ Setting up a TCF Connection from Eclipse + + Eclipse supports several types of remote connections to reference + boards. Among these is the Target Communication Framework (TCF) type of + connection. This information will be referenced throughout this guide, as + it is used by several features. + + How to set up a TCF connection to the target + to be used later onShould we add images to this + procedure to make it easier to understand? + + + + Make sure the tcf-agent is running on the + target: + + ps aux | grep tcf-agent +root 329 0.0 0.2 1864824 2600 ? Ssl 12:47 0:08 /usr/sbin/tcf-agent -d -L- -l0 + + + + Open the Target Explorer perspective from Window > Perspective > Open Perspective > + Other... > Target Explorer. + + This will open a new perspective, containing the System Management view. + + + + The System Management window + displays all existing TCF connections and allows you to manage them. + To create a new connection, go to Connections + > Create New Connection... + + + + Type in an appropriate name in the Connection Name field. + + + + Select TCP in the Transport Type section. + + + + Fill in the target's IP address and leave the Port as it is (1534). + + + + Check the Connect on finish + checkbox and click Finish. + + + + The connections created will be persistent and accessible from the + Debug Configurations plugins. +
+ +
+ Developing Applications in Eclipse + +
+ Cross-Compiling from Eclipse + + + Watch Enea's video about Cross-compiling + and Remote Debugging of Applications. + + + In order to use Eclipse to compile an application for a certain + target architecture, you need to first install a cross-compilation + toolchain + cross-compilation toolchain + + toolchain + + cross-compilation + (SDK + SDK + ), configure the cross-compiler in Eclipse, and then + create a Yocto ADT Autotools project , which uses + the Yocto SDK.INFO: This project type is still called ADT in + Eclipse even though Yocto talks about standard and extentible + SDK + + Installing the cross-compilation toolchain is pretty + straightforward. All you have to do is to run the shell script provided + with the release and follow the instructions, see Installing a Cross-Compilation Toolchain + (SDK). + + Before creating the project, you must first configure the + cross-compiler + cross-compiler + in Eclipse:Should images be added to the + procedure below for ease of understanding? + + + + Select Window > Preferences > + Yocto Project ADT to open a dialog.INFO: This + project type is still called ADT in Eclipse even though Yocto talks + about standard and extentible SDK + + + + Choose a Stand-alone pre-built + toolchain. + + + + For the Toolchain Root + Location option, specify the path to the + cross-compilation toolchain, e.g. + /opt/enea/<sdkversion>. + + + + For the Sysroot Location + option, specify the path to the target sysroot directory inside the + toolchain root location e.g. + <extsdkdir>/tmp/sysroots/corei7-64-enea-linux/ + + + + If multiple architectures are supported by the SDK, select the + desired target architecture from the drop-down list. + + + You can save different profiles with different + configurations. This makes it easy to compile the same code for + different architectures by simply choosing the desired development + profile. + + + + + In Target Options, select the + External HW option. + + + + + More details on how to configure the cross-compiler can be found + in the Yocto + Project Software Development Kit (SDK) Developer's Guide + 2.5. Change the Yocto version in the link if + needed. + + There is also a good cheat sheet available in Eclipse, under + Help > Cheat Sheets > Yocto Project > + Creating a Hello World ANSI C or C++ Autotools Project. + This cheat sheet covers all the steps up to building the + project. + + + Once you have configured the default options for the + cross-compiler you can create a project: + + + + Follow the steps in the wizard to create the project: + + + + Select File > New > Project + > C Project and click Next. + + + + Select Yocto Project ADT Autotools + Project > Hello World ANSI C Autotools Project, + and give the project a Project + name before clicking Next. + Having a hyphen character '-' in + the name can cause configuration errors. + + + + + Enter the Author and + click Finish. + + + + This will automatically generate all the files needed, + creating all necessary configurations for cross-compiling. For more + on how to create a project, watch Enea's + video about setting up an ADT project. + + + + Optionally, if you want to have specific options for + cross-compiling this project, select Project + > Change Yocto Project Settings and modify the options + for this project only. + + + + Right-click on the project from the Project Explorer and + choose Reconfigure Project. This + will generate the necessary makefiles to build the project. + + + + Finally, build the project from Project + > Build Project, or by right-clicking on the project + in the Project Explorer and selecting Build + Project. A binary file for the target architecture is + created in the project directory. + + + + + If you need to add more files or compiler flags or parameters to + the Makefile, edit Makefile.am accordingly and + then reconfigure the project. + + + + Eclipse displays the results from building a project in one + Eclipse console, and reconfiguring a project in another one. Switching + between the two consoles is necessary to view both outputs. + +
+ +
+ Debugging Applications from Eclipse + + + Watch Enea's video about Cross-compiling + and Remote Debugging of Applications. + + + Using Eclipse you can build an application, deploy it on the + target, and debug + debug + the source code remotely, all with a single mouse click. + However, in order to achieve this you need to make certain + configurations. + + When setting the cross-compiler options for a target, a run/debug + configuration is created as a C/C++ Remote + Application instance. The configuration is named according to + this syntax <project>_gdb_-<suffix>, for + example: hello_gdb_aarch64-enea-linux. + + + If a run/debug configuration is not created when setting the + cross-compiler options, perform the steps in Run/Debug Configuration Not + Created. + + + The instructions below describes how to use Eclipse to debug + single-process applications on a target. For information on how to debug + multi-process applications, see Debugging Multi-Process Applications from + Eclipse. + + Use the run/debug configuration to connect the Eclipse GDB + interface to the remote target, by doing the following: + + Should we add images for the procedure below as well? + + + + Select Run > Debug Configurations + > C/C++ Remote application from the menu and choose + the run/debug configuration from the instances under C/C++ + Remote Application in the left pane. You can rename, + duplicate or remove the configuration as needed. + + + + In the Main tab, do the + following: + + + + Select an existing Connection from the drop-down list, or + create a new one following the steps below: + + + + To create a new connection, click the New... button and select a connection + type. For debugging applications an SSH connection is recommended. + + + + Choose a connection name and fill in the Host information section with the + target's IP and the username. + + + For Enea Linux, the default username is root and there is no password + set. + + + + + Depending on your network setup, select either + Public key or Password-based authentication. If + using Password-based authentication, leave the field empty + when using the default root + username. + + + + Click Finish. The new connection should now be + available in the dropdown menu. This connection will be + persist through all Run/Debug configurations. + + You can manage your saved connections in the Connections view from Window -> Show View -> Other... -> + Connections. + + + + + + Select the binary C/C++ + Application you want to deploy. + + If you click the Search + Project button, Eclipse will parse the project and + provide a list of all compiled binaries to choose from. + Alternatively, you can Browse + the file system for a binary, or use Variables to manually define the + path. + + + + The Remote Absolute File + Path is the path to which the binary on the target + shall be deployed. Type it directly or click the Browse button and select a location on + the remote target. Note that you need to specify the path + including the filename. + + + + Optionally, you may choose not to download the application + to the target, but instead debug an already downloaded + application. + + + + You can also configure Eclipse to execute commands prior + to launching the application, by specifying the commands in the + corresponding field. + + + + + + In the Arguments tab you can + specify various arguments to be passed to your application at + launch-time. + + + + The Debugger tab deals with + GDB specific configurations. This is automatically populated when + configuring the cross-compiler. You may optionally choose + additionally useful options as with any Eclipse GDB interface, e.g. + whether to break at entering the main function or uploading shared + libraries. + + + + To enable debugging with shared libraries, do the + following: + + + + Retrieve the debug sources from the target, and store them + in a dedicated folder on the local host. They are found in + /usr/src/debug in the target rootfs. + + + + Set a path mapping your debug configuration. In the + Source tab, click Add, select Path + Mapping, and assign paths to the mapping: + + + Compilation path: + /usr/src/debug + + Local file system + path (path to the debug sources retrieved from the + target): + <path_to_chosen_folder>/usr/src/debug + + + + + In the Debugger/Shared + Libraries tab, select option Load shared library symbols automatically + and set the path to the shared library. The path depends on the + processor architecture of your target. + + For 32-bit targets: + <extsdkdir>/sysroots/<arch>-enea-linux/lib/.debug + + + For 64-bit targets: + <extsdkdir>/sysroots/<arch>-enea-linux/lib64/.debug + + Note that inside Eclipse you must load the shared + libraries with debug information (not stripped). Shared + libraries that get built into the rootfs of the target image + have debug information stripped off, for size and speed + optimizations. + + + + To debug applications that depend on shared libraries + built outside the rootfs of the target image, the same procedure + applies, with the exception that you must upload the required + shared libraries to the target prior to starting the debugging + session. + + If you upload them to /lib or + /lib64 (depending on the target architecture) + they get loaded by default. Otherwise, you must correctly update + the + LD_LIBRARY_PATH environment variable to + match their look-up path. In Eclipse, you can automatically + update this variable by setting the Commands to execute before application + field to: export + LD_LIBRARY_PATH=<path to uploaded shared + libs> + + + + + + Once you have set up all the debug configurations, click + Apply and Debug. This will launch the GDB on the target + and open the Debug perspective. This is the + standard Eclipse GDB interface when debugging a remote target. You + can use all GDB features, such as setting breakpoints, stepping + through code, reading variable values, reading registers, viewing + memory, etc. + + + + When the debugger starts, Eclipse opens three consoles: + + + + The Remote Shell - used to + launch the application and display its output. + + + + The GDB console - named as + the path to its GDB binary. You can use this console to control the + GDB from the command line. + + + + The third console is named as the path of the binary on the + local machine, and is in fact an artifact that must be + ignored. + + + + After having set up the debug configuration once, you can modify + and rebuild your application and then relaunch it by simply clicking the + Debug icon (the bug symbol) on the + toolbar. You can also select the drop-down list for more configurations, + and even add your configuration to the Favorites to easily retrieve it next time. + + If you only want to deploy and run the application, without + debugging, you can use the same configuration as the one set up for + debugging, but simply click the Run + icon (the Play button symbol) from the toolbar menu, or select Run > Run Configurations and Run the chosen + configuration. +
+ +
+ Debugging Multi-Process Applications from Eclipse + + In Eclipse, remote debugging of an application that uses multiple + processes + multiple processes + is slightly different compared to debugging a single + process application as described in Debugging Applications from + Eclipse. + + The following limitations exist for multi-process + debugging: + + + + All debugged processes must share the same binary. + + + + Debugging only works in non-stop mode, i.e. stopping at a + breakpoint only stops the current thread while other threads + continue to execute. + + + + + When using the GDB to debug multiple instances of the same + process or thread, using the same symbols file, breakpoints will be + common to all instances. That is, when setting a breakpoint in the + code, all instances will stop there, and there is no way to filter + them. The current thread filter in Eclipse is ineffective. + + + Use the run/debug configuration to connect + the Eclipse GDB client to the remote target: + + + + Go to Window > Preferences > + Run/Debug > Launching > Default Launchers. Under + C/C++ Attach to Applicaton > + Debug select the checkbox GDB (DSF) + Attach to Process via TCF/TE Launcher. + + + + Select Run > Debug Configurations... + from the menu and choose the run/debug configuration + from the instances under C/C++ Attach to + Application in the left pane. You can create, rename, + duplicate, or remove the configurations as needed. + + + + If you followed step 1, in + the lower part of the dialog you will see that Using GDB (DSF) Attach to Process via TCF/TE + Launcher is selected. If not, redo step 1 or click the Select Other... link, and use configuration + specific settings by selecting the checkbox GDB (DSF) Attach to Process via TCF/TE + Launcher. + + + + In the Main tab, do the + following: + + + + Select the binary C/C++ + Application you want to deploy. If you click the + Search Project button, Eclipse + will parse the project and provide a list of all compiled + binaries to choose from. Alternatively, you can Browse the file system for a binary, or + use Variables to manually + define the path. + + + + Select an existing Connection from the drop-down list. If a + connection is not available, create a new one following the + steps in Setting up a + TCF Connection from Eclipse. + + + + The Remote Absolute File + Path is the path to the binary of the process you are + planning to debug. Type it directly or click the Browse button and select a location on + the remote target. You need an active TCF connection to the + target for the Browse button to + work (see chapter Setting up a TCF + Connection from Eclipse). Note that you need to + specify the path including the filename. + + + + Specify the PID of the remote process you are planning to + attach. + + + + + + The Debugger tab deals with + GDB specific configurations. Select the gdbserver in the Debugger dropdown. You may + also choose other useful options as with any Eclipse GDB interface, + e.g. whether to break at entering the main function or uploading + shared libraries. The following actions are important: + + + + In the Main tab, enter + the path to the GDB binary in the SDK. For example: + <extsdkdir>/tmp/sysroots/x86_64-linux/usr/bin/<arch>-enea-linux/<arch>-enea-linux-gdb. + + + + Select option Non-stop mode. + + + + + + Once you have set up all the debug configurations, click + Apply and Debug. This will launch the GDB and + optionally open the Debug perspective for the + process you selected. This is the standard Eclipse GDB interface + when debugging a remote target. You can use all GDB features, such + as setting breakpoints, stepping through code, reading variable + values, reading registers, viewing memory, etc. + + + + Repeat these steps for each process you want to debug. You can + have multiple debug sessions running simultaneously for multiple + processes sharing the same source code. +
+ +
+ Using the Postmortem Debugger + + When a program crashes + post-mortem debugging + + core dump + , it may leave a core dump which can be used to figure out + exactly why the program crashed. Core dumps are disabled by default and + have to be activated before debugging. After retrieving and transferring + a core dump file to a host machine, Eclipse and the SDK tool generated + for the target, can be used to analyze the application state at the time + of the crash. + + If deep debugging within Linux libraries is needed, the debug SDK + is required. See Installing Enea Linux + SDK. + + To enable writing core dump files, two steps need to be performed + on the target: allowing resources for core dumps + and defining a core file name pattern. These + settings are valid until the next reboot, unless made permanent by + configuration changes in the root file system. + + Use the ulimit command to allow the system to + use resources for core dumps. The ulimit command + controls the resources available to a process started by the shell, on + systems that allow such control. Type the following to use this + command: + + ulimit -c unlimited + + To verify the result, type ulimit -a and see if + the core file size is set to unlimited. User limits + can also be changed from the application code using the function + setrlimit(...) declared in the + sys/resource.h header (see the manual available + through man setrlimit). To make this permanent across + a reboot, adjust the configuration in + /etc/security/limits.conf. + + The next step is to specify the core pattern which defines the + core dump file pattern name. The core pattern is defined in the + /proc/sys/kernel/core_pattern. + + The format of a core pattern follows certain rules: + + + + The maximum length is 128 characters + + + + Default core dump name is core + + + + The string stored in core_pattern is used + as a pattern template for the output filename. Certain string + patterns (beginning with %) are substituted with + their actual values. The patterns are: + + %<NUL> '%' is dropped +%% output one '%' +%p pid +%P global pid (init PID namespace) +%i tid +%I global tid (init PID namespace) +%u uid (in initial user namespace) +%g gid (in initial user namespace) +%d dump mode, matches PR_SET_DUMPABLE and /proc/sys/fs/suid_dumpable +%s signal number +%t UNIX time of dump +%h hostname +%e executable filename (may be shortened) +%E executable path +%<OTHER> both are dropped + + + + If the first character of the pattern is a + '|', the kernel will treat the rest of the + pattern as a command to run. The core dump will be written to the + standard input of that program instead of to a file. + + + + By setting the value core_uses_pid to + 1, the core dump filename gets the extension + .PID, if the core_pattern + does not contain "%p". + + For example, the default file name core + becomes core.PID if the + core_uses_pid is set, and no + core_pattern is defined. + + + + Specify a core pattern by writing it to + /proc/sys/kernel/core_pattern. For example: + echo "<suitable_directory>/core.%e.%p.%h.%t" > /proc/sys/kernel/core_pattern + + To make the core dump file name permanent across a reboot, + configure /etc/sysctl.conf. to reflect this choice, + by adding a line like in the following example: + kernel.core_pattern=<suitable_directory>/core.%e.%p.%h.%t. + + How to use the Eclipse post mortem debug configuration in order to + view the call trace, for the core dump in the Eclipse GDB + interface: + + + + Ensure a core dump can be created on the target, see the + information above. To see the full call stack, the application + object files, compiled with debug information, are needed (the + -g option in gcc). + + + + After a core dump has been created, retrieve the core dump + file from the target and store it on the host. + + + + In Eclipse on the host, you need the core dump file, the SDK + for the target, the application executable, and access to the source + code. Once you have those, do the following: + + Switch to the Debug perspective in + Eclipse. + + + + Select Run -> Debug + Configurations ... (scroll down if you don't see + the option at first glance) -> C/C++ + Postmortem Debugger. + + + + Make sure the C/C++ Application field + refers to your project executable, and fill in the + Core file field with the path to the + downloaded core file. + + + + Under the Debugger tab, + fill in the GDB Debugger field with the + path to the GDB binary from the SDK. Example path: + <extsdkdir>/tmp/sysroots/x86_64-linux/usr/bin/<arch>-enea-linux/<arch>-enea-linux-gdb + + + + Click the Debug button. Eclipse + should switch into the Debug perspective + (if it hasn't already) and the debugging instance should break + somewhere inside the application. The call stack should be + observable in the console and should show a termination + message. + + + + +
+
+ +
+ Debugging the Linux Kernel in Eclipse + + In this section you learn to set up Eclipse for KGDB + KGDB + kernel debugging over the serial port, with examples for + the raspberrypi3 target. This is only given as an + example, your Enea Linux distribution may contain other targets. The + corresponding instruction for debugging outside Eclipse is available in + Debugging the Linux Kernel (KGDB) from Command Line.LATER: Merge + the two instructions to shrink the amount of text; most of it is the + same. + + How to set up Eclipse for KGDB kernel debugging over a serial + port: + + + + Make sure that the cross-compilation toolchain + cross-compilation toolchain + + toolchain + + cross-compilation + (SDK + SDK + ) is installed on the host, see Installing Enea Linux SDK. + + + + Ensure that the kernel debug image + (vmlinux)is accessible on the host where you run + Eclipse, and that you have permissions to execute it. You will later + point to it in Eclipse. + + If you are using the default kernel delivered with Enea Linux, + you can find it in the rootfs under the /boot + folder. If you build your own kernel using bitbake, it should be + available in your build folder. Located in, for example: + tmp/work/raspberrypi3_64-enea-linux/linux-raspberrypi/1_4.9.59+gitAUTOINC+meta_machine-r0/image/boot/vmlinux-4.9.59 + + + + In Eclipse: + + + + Optional: The Linux kernel has a considerable amount of + sources, and indexing the whole of it might take a lot of time. + Save time by disabling C/C++ project indexing: + + Select Window > Preferences + > C/C++ > Indexer. + + + + Unselect the Enable + indexer checkbox. + + + + + + Create a project from the kernel tree: + + + + Select File > New > Project + > C/C++ > C project. + + + + In the left panel, select Makefile + project > Empty project, and give the project a + name. + + + + Unselect the Use default + location option. + + + + Click Browse and + navigate to the location of the kernel sources (git + folder). + + + + Click Finish. + + + + + + Create a C/C++ GDB Hardware Debugging configuration: + + + + Go to Run -> Debug + Configurations. + + + + Double-click GDB Hardware + Debugging. + + + + This will create a default configuration named + project_name Default. + + + + In the Main tab: + + + + Browse to the location of the + vmlinux image. As an alternative, you may + select a different project to debug, but if you followed the + steps above you should not need to modify this. + + + + Select the Disable auto + build radio button. + + + + At the bottom of the window, make sure GDB (DSF) Hardware Debugging Launcher + is selected. + + + + + + In the Debugger tab for + C/C++ Application: + + + + Browse to the location of the GDB + binary installed by the cross-compilation toolchain + installer, by default: + <extsdkdir>/tmp/sysroots/x86_64-linux/usr/bin/<arch>-enea-linux/<arch>-enea-linux-gdb. + + + + Select option Use remote + target. + + + + In the JTAG Device, + select Generic Serial from + the dropdown list. + + + + In the GDB Connection + String field, type the host's tty device used for + the serial connection to the target, e.g. + /dev/ttyUSB0. + + + + + + In the Startup tab: + + + + Deselect the Load image + option. + + + + Select the Load symbols + option. + + + + Ensure that the Use project + binary option defaults to your + vmlinux image. + + + + Click Apply to store + the configurations above. + + + + + + + + Prepare the target for KGDB debugging: + + + + Configure a serial communication on the target, using the + appropriate device for the target (e.g. ttyS0 + for p2020rdb, ttyS2 for + pandaboard, ttyPS0 for + zynq): + + echo ttyS0,115200 > /sys/module/kgdboc/parameters/kgdboc + + + + Start KGDB on the target SysRq: + + echo g > /proc/sysrq-trigger + + + + Keep the serial connection open, but close the terminal to + the target. + + + + + + Launch the debug session in Eclipse: + + + + Select Run > Debug + Configurations. + + + + Select the configuration created above. + + + + Click the Debug + button. + + + + The target halts in function + kgdb_breakpoint(). The GDB view opens in Eclipse, + and from here you can debug the kernel by giving ordinary GDB commands + (resume, step, set + breakpoint, etc.). + + +
+ +
+ Workarounds + +
+ Run/Debug Configuration Not Created + + + + Description: When setting up + Remote Debugging from Eclipse, + a run/debug configuration is not created when setting the + cross-compiler options, thus there is nothing to select under + C/C++ Remote Application in the + first step. + + + + Solution: Manually create a + run/debug configuration. + + Perform the following steps: + + + + Double-click the C/C++ Remote + Application. This will create a new debug + configuration named after your project. + + + + In the Debugger tab, + select a GDB debugger by + browsing for and selecting the debugger of your + cross-compilation toolchain, from your Sysroot Location. Example: + + $ <extsdkdir>/tmp/sysroots/x86_64-linux/usr/bin/\ +<arch>-enea-linux/<arch>-enea-linux-gdb + + where <sdkdir> is e.g. + /opt/enea/<sdkversion>. + + + + Outside Eclipse, create a new file named + .gdbinit within your Eclipse workspace, + under your project directory, e.g. <path to + workspace>/<project name>/.gdbinit, with the + following command, using your Sysroot + Location: + + $ set sysroot <extsdkdir>/sysroots + + + + Back in Eclipse in the Debugger tab, browse for the newly + created .gdbinit file and + select it under GDB command + file. + + + + Click Apply, then go back + to the Main tab and continue + with the remaining steps in the Remote + Debugging section. + + + + +
+
+
diff --git a/doc/book-enea-linux-user-guide/doc/using_enea_linux.xml b/doc/book-enea-linux-user-guide/doc/using_enea_linux.xml new file mode 100644 index 0000000..f22f6a2 --- /dev/null +++ b/doc/book-enea-linux-user-guide/doc/using_enea_linux.xml @@ -0,0 +1,806 @@ + + + Using Enea Linux + +
+ Building Enea Linux + + Enea Linux is made available as sources, this allows for of building + various Enea Linux artifacts and is detailed in the following + sections: + +
+ Building the images + + Build Enea Linux images using the following steps: + + + + Set the $MACHINE/<machine> variable to the target you + need, e.g. intel-corei7-64. + + + + Clone Enea Linux sources using Repo tool. Please refer to + for more details. + + $ mkdir enea-linux +$ cd enea-linux +$ repo init -u git@git.enea.com:linux/manifests/el_manifests-rt.git \ + -b refs/tags/Enea_Linux_8.0 -m $MACHINE/default.xml +$ repo sync + + + + Source the build environment + + $ cd poky +$ TEMPLATECONF=meta-el-rt/conf/template.<machine> \ +. ./oe-init-build-env <build_dir> + + Sourcing the build environment is needed everytime a new shell + is used. However, sourcing using the TEMPLATECONF + is only needed the first time around. After the first time, it is + enough to source the build directory created before. + + + The build directory may reside on an NFS mount, but the + TMPDIR + (<build_dir>/tmp) may not. Either build + all on a local disk, or update TMPDIR in + conf/local.conf to point to a local + disk. + + + + + Build Enea Linux image + + # You have already initiated the build environment and are in the <build_dir> +$ bitbake <enea-image-name> +$ cd <build_dir>/tmp/deploy/images/<target>/ # Here are the build binaries + + + Some builds have restrictions on the length of the path + name. If you get a build error indicating that the length is too + long, you need to move your build to obtain a shorter path. + + + Generated images are by default saved in + <build_dir>/tmp/deploy/images/<target>, + where <build_dir> by default is the current + working directory. Images are created for emulation on host or for + booting a physical target, according to how the build environment + was set up before running bitbake. + + Depending on the number of processors and cores, the amount or + RAM, the speed of your Internet connection and other factors, the + build process can take several hours the first time you run it. + Subsequent builds run much faster since parts of the build are + cached. + + + Make sure that the user running the build has access to the + Git repositories on git.enea.com. The build process fetches + information from git.enea.com so the user running the build shall + have the ssh key properly configured. Please refer to for more details on how to get access + to Enea Linux sources. + + + +
+ +
+ Building the SDK + + If you want to rebuild a cross-compilation toolchain to be used by + in application development, use the following steps: + + + + Clone Enea Linux sources using Repo tool. Please refer to + for more details on how to do + this. + + $ mkdir enea-linux +$ cd enea-linux +$ repo init -u git@git.enea.com:linux/manifests/el_manifests-rt.git \ + -b refs/tags/Enea_Linux_8.0 -m $MACHINE/default.xml +$ repo sync + + + + Source the build environment + + $ cd poky +$ TEMPLATECONF=meta-el-rt/conf/template.<machine> \ +. ./oe-init-build-env <build_dir> + + Sourcing the build environment is needed everytime a new shell + is used. However, sourcing using the TEMPLATECONF + is only needed the first time around. Afterwards it is enough to + source the build directory created before. + + + The build directory may reside on an NFS mount, but the + TMPDIR + (<build_dir>/tmp) may not. Either build + all on a local disk, or update TMPDIR in conf/local.conf to point + to a local disk. + + + + + Build Enea Linux SDK + + # You have already initiated the build environment and are in the <build_dir> +$ bitbake <enea-image-name> -c populate_sdk_ext +$ cd <build_dir>/tmp/deploy/sdk/ # Here is the SDK installer script + + + Some builds have restrictions on the length of the path + name. If you get a build error indicating that the length is too + long, you need to move your build to obtain a shorter path. + + + Generated SDK installer script is by default saved in + <build_dir>/tmp/deploy/sdk, where + <build_dir> by default is the current + working directory. + + Depending on the number of processors and cores, the amount or + RAM, the speed of your Internet connection and other factors, the + build process can take several hours the first time you run it. + Subsequent builds run much faster since parts of the build are + cached. + + For more details on how to install and use the SDK, please + refer to . + + +
+
+ +
+ Booting Enea Linux + + Regardless whether you decide to use the pre-built images or if you + choose to build your own, the end result should be similar. Once you have + the artifacts availalbe, you may proceed to booting Enea Linux on + target. + + Enea Linux supports multiple booting methods so those will be + described in the following sections. + +
+ Boot via PXE using DHCP, TFTP, and NFS servers + + Below you find an example of how to boot Enea Linux in a target + supporting PXE. The PXE boot is handled by the target BIOS. + + This requires the setup of DHCP, TFTP and NFS servers on the host. + The DHCP server contains a configuration for the target, found via the + target MAC address, and refers to the TFTP server for the boot image and + to the NFS server for the root file system. + + For the DHCP server, in addition to the general configuration, the + DHCPD configuration should contain an entry for the target with the + following information: + + + + Host name + + + + MAC hardware ethernet address (also available in the TFTP + configuration) + + + + IP address, (assuming a fixed IP address is used) + + + + The TFTP server shall be defined as + next-server + + + + The relative path in the TFTP server to the PXE file + pxelinux.0 + + + + The NFS server IP address and the path to the rootfs on the + NFS server, defined as option root-path + + + + Example of a DHCP server configuration: + + host intel-corei7-64_host { + hardware ethernet 01:00:25:90:c8:c5:98; + fixed-address 192.168.1.38; + next-server 192.168.2.10; + filename "intel-corei7-64_tftp/pxelinux.0"; + option root-path "192.168.2.20:/export/intel-corei7-64_rootfs"; +} + + For the TFTP server, the TFTP path to the target's pxelinux.0 file + is given in the DHCP Configuration. Examples of files included in the + TFTP subdirectory indicated by the DHCP configuration are: + + pxelinux.0 +vesamenu.c32 +boot/device01/bzImage (bootable image file) +pxelinux.cfg/01-00-25-90-c8-c5-98 (Configuration file) + + One configuration file has the same name as the target's MAC + address (but with hyphens instead of a colon). This configuration file + contains a pointer to the bootable image and also a list of command line + arguments to append when the image is started. The same NFS path to the + root file system is both in the DHCP and the TFTP configuration. + + Example of a configuration file: + + default vesamenu.c32 +prompt 0 +timeout 100 + +label device01 + menu label ^EneaLinuxNFS + menu default + kernel boot/device01/bzImage + append root=/dev/nfs nfsmount=192.168.2.20:/export/intel-corei7-64_rootfs ip=dhcp + console=ttyS0,115200 + + NFS server: The NFS server shall + contain an unpacked root file system in the path indicated both in the + DHCP and in the TFTP configuration. + + After configuring the servers, copy files from the build directory + into the correctly configured paths: + + + + Ensure the target is not already running an OS, otherwise the + target might attempt to change files on the root file system while + it is populated with new files. + + + + Copy pxelinux.0 and + vesamenu.c32 from the build directory, e.g. + from + <build_dir>tmp/work/corei7-64-enea-linux/syslinux/6.03-r0/image/usr/share/syslinux/. + + + + Copy bzImage from + <build_dir>/tmp/deploy/images/<target>/. + + + + Populate the root file system in the NFS directory by + unpacking + enea-image-rt-intel-corei7-64.tar.gz + found at + <build_dir>/tmp/deploy/images/<target>/. + + + + Boot the target by: + + + + Use the BIOS or boot setup to select PXE boot, if not already + selected. + + + + Reboot the target. + + + + The boot setup menu is usually launched by pressing F12 or ESC + during BIOS power up tests. Look up the manufacturer's documentation for + your board model to find the appropriate key. +
+
+ +
+ Customizing Enea Linux + +
+ Layers and Adaptations + + Bitbake allows a modular approach of Metadata, by building images + for the layers listed in the conf/bblayers.conf file from your build + directory. + + To avoid polluting the build with unnecessary packages, before + adding a new layer, it is recommended to check if the Metadata you need + is already available in the enabled layers, in which case, for the + intended configuration, it may require less modification. + + To ease further use of the layer, try to follow as many best + practices as possible when creating it: + + + + Use names starting with the meta prefix (although this is not + a requirement) + + + + + + Place your layer under poky + + + + + + Isolate different customizations by layer + + + + + + Assign the layer to a repository (to easily have access to + maintenance) + + + + To enable a layer, its top path must be specified in the + BBLAYERS variable, as follows: + + # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf +# changes incompatibly +POKY_BBLAYERS_CONF_VERSION = "2" + +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + /path/to/poky/meta \ + /path/to/poky/meta-el-common \ + /path/to/poky/meta-el-rt \ + /path/to/poky/meta-enea-bsp-common \ + /path/to/poky/meta-enea-bsp-x86 \ + /path/to/poky/meta-openembedded/meta-oe \ + /path/to/poky/meta-openembedded/meta-networking \ + /path/to/poky/meta-openembedded/meta-filesystems \ + /path/to/poky/meta-openembedded/meta-python \ + /path/to/poky/meta-poky \ + /path/to/poky/meta-<layer> \ + " + + Before adding an extra layer, please keep in mind that the order + of layers is important (due to BitBake parsing conf/layer.conf as + specified in BBLAYERS). To add an extra layer, you + can modify the build/conf/bblayers.conf file in the + source code editor you prefer, as described above, or use one of the + specially designed Yocto tools. + + To do such, you can simply modify the build/conf/bblayers.conf + file in the source code editor you prefer, as described above, or use + one of the specially designed Yocto tools. + + For instance, in addition to the above, the Yocto Bitbake layers + utility ensures a very useful checking of some basic layer requirements. + Bitbake layers are available, as most of the BitBake tools, when + sourcing oe-init-build-env. Therefore, to enable a custom meta layer, + you should simply run the following from the build directory: + + bitbake-layers add-layer <meta-layer> + + If the specified layer doesn't contain a + conf/layer.conf file, you should add one with the + needed configuration. Also, to make sure the layer insertion is done in + the right metadata, the utility looks for the bblayers.conf + configuration file in the corresponding path, which should be satisfied + if running the command from the generated build directory. + + For further information on this or on other utilities belonging to + the same suite, run: + + bitbake-layers -h + + As a result, BBLAYERS shall be extended with + the bsp-layer/s layer for your target and any other additional layer/s. + For details on how to do this, see the Yocto + 2.5 Dev Manual, section "Understanding and Creating Layers". If + needed replace the Yocto version. + + Layers can be added when you initialize the build environment. The + layers required for each target are specified in the build commands in + the Enea Linux distribution's Release Information. + + Each Enea Linux customer is advised to add a custom layer for + customer-specific additions and customizations, instead of modifying + existing layers. + + The recommended way to modify a package is to edit directly in the + recipe file. Utilizing the devshell, bitbake -c devshell + <image_name>, when constructing or modifying recipes is + really handy when experimenting, but do not forget to make the final + updates directly in the recipe file. It is difficult to keep track of + exactly what in the user environment is "dirty" and not in sync with + current recipes. Therefore, always make sure to bitbake -c + clean <image_name> after finishing up a devshell + session, and adapt recipes accordingly to ensure a shareable and + repeatable build environment. +
+ +
+ Adding a Recipe + + Study the Hello + World recipe in the Yocto Project Development Manual. If + needed replace the example version (2.5) with the Yocto version in your + Enea Linux distribution. +
+ +
+ Configuring Packages via Recipes + + The default configuration produces a standard Linux installation, + but it is often desirable to configure specific packages in more detail. + Different packages implement their configuration in different ways, and + there is no single method that is valid for all packages. As always, in + a collaborative development environment, the developer should make sure + that the recipes in the custom layer are upgraded accordingly when a + reconfiguration of a specific package is done. + + In subsequent sections you find examples on how to configure some + common packages. + +
+ The Linux Kernel + + The Linux kernel provides a vast array of configuration options, + managed using its own configuration system. The kernel package can be + supplied from different providers, and this example uses the + virtual/kernel package name to refer to the kernel used in the + build: + + $ bitbake -c menuconfig virtual/kernel + + + menuconfig requires Ncurses. If the terminal that pops up + immediately closes instead of showing the menuconfig interface, + check that the Ncurses development library is installed. + + + First build the kernel: + + $ bitbake -f -c compile -c install -c deploy virtual/kernel + + Then build the whole distribution: + + $ bitbake enea-image-<name> +
+ +
+ Busybox + + Busybox uses the same configuration system as the Linux kernel + and is therefore invoked similarly. In contrast to the kernel, there + is generally only one variant of busybox in a distribution and we can + therefore refer to it by the package name alone: + + $ bitbake -c menuconfig busybox +
+
+ +
+ Building with Commercial Licenses + + + Adding commercial-licensed packages might pose distribution + problems due to license agreements or patents. + + + Commercial-licensed packages are not provided with Enea Linux. + Depending on your use case, you might need to extend the initial image + with more packages by adding recipes and updating the image definition, + always in accordance with the license conditions. To succeed with + building the customized image, you might need to solve dependencies by + adding even more packages. + + Below is an example with steps on how to add a package with a + commercial license. The configuration is updated in two places and the + recipes are selected for the packages and any dependencies. + + + This is only an illustrating example, the exact configuration + may differ between different packages. Some packages could require + other defines added to local.conf and some packages might need an + added DEPENDS in the *.inc file, or other + particular changes. + + + + + Append the package name to the + IMAGE_INSTALL definition, used in the recipe + corresponding to the image you will build, as in one of the examples + below: + + + + If you need the package in a set of images, to avoid + defining it in each recipe, add the following line to + IMAGE_INSTALL in + meta-el-common/images/enea-image-common.inc + + package_name \ + + + + If you have specific images in which you need the package, + add the following line in the corresponding recipes in + meta-el-<profile>/images/enea-image-<profile>.bb + + IMAGE_INSTALL += " \ + package_name \ + " + + + + + + Add the required license to the + LICENSE_FLAGS_WHITELIST definition. This can be + done by adding script lines in the corresponding + scripts/conf_setup.sh file, which appends + LICENSE_FLAGS_WHITELIST += + "<suitable-license> to + conf/local.conf. + + + + To mitigate the build errors caused by packages with + commercial licenses, you might also need to append the generic + license LICENSE_FLAGS_WHITELIST += "commercial" + in the same way as above. + + + + Select the needed recipes for the packages and add these to + the build configuration. + + + + Select the needed recipes to resolve dependencies for the new + packages and add these to the build configuration. + + + + More information about recipes can be found here: + + + + http://git.openembedded.org/ + + + + + + https://wiki.yoctoproject.org/wiki/Building_your_own_recipes_from_first_principles + + + + + + http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#new-recipe-writing-a-new-recipe + + +
+
+ +
+ Installing the Enea Linux SDK + + Before cross-compiling applications for your target, you need to + install the Software Development Kit (SDK) - which contains the + cross-compilation toolchain - and set up the cross-compilation environment + on your host. The toolchain for each supported target contains a 64-bit + library for gcc. The toolchain and the environment-setup script are + wrapped together inside a toolchain installer in the form of a shell + script. + + The cross-compilation toolchain is packaged as follows: + + + + The <target> toolchain contains the lib64 (64-bit) + library. + + + + The <target> installer has an environment-setup script + which will select the lib64 to be used by gcc. This way, a 64-bit + application can be cross-compiled. + + + + Do as in the example below to install the SDK and set up the + cross-compilation environment: + + + + The fastest alternative is to use a precompiled + cross-compilation toolchain installer for your host and target. + + Please refer to the Release Information document, in section 1.1 + Provided Contents, for more details on where to find the pre-compiled + SDK installer. + + + + Run the installer to unpack the cross-compilation toolchain and + the environment-setup script: + + $ chmod 770 enea-*-toolchain-<version>.sh +$ ./enea-*-toolchain-<version>.sh + + When prompted, select to install the SDK in the desired + directory, referred to as <sdkdir>. The default path where the + SDK will be installed, will be shown in the prompt. The installer + unpacks the environment setup script in <sdkdir> and the + toolchain under <sdkdir>/sysroots. + + + Choose a unique directory for each toolchain. Installing a + second toolchain of any type (buildtools toolchain or + cross-compilation toolchain) in the same directory as a previously + installed one will break the $PATH variable of the first one. + + + + + Setup the toolchain environment for your target by sourcing the + environment-setup script: + + $ . <sdkdir>/environment-setup-<arch>-enea-linux + + Example: + + $ . /opt/enea/environment-setup-corei7-64-enea-linux + + + + Once the cross-compilation toolchain is in place and the environment + set up, you can proceed with Cross-Compiling Applications from Command + Line (4.1) or, if Eclipse is installed, Cross-Compiling from Eclipse + (5.4.1). +
+ +
+ Using Package Management + + A Package Management System (PMS) can be used to customize your + image in a consistent way, e.g. to install, upgrade, or delete packages + considering the dependencies. The package management systems supported by + Enea Linux are described in this section. More information about PMS can + be found in the Yocto 2.5 document Yocto + Project Mega Manual. If needed replace the Yocto version in the + link. + +
+ APT Package Management (DEB Packages) + + Enea Linux provides DEB packages on linux.enea.com site, + in directory + <release>/<target>/deb/. + + The application for performing runtime package management of DEB + packages on the target is called apt-get. + + Use the apt-get command to install, upgrade, or + remove packages. Before using any apt-get options that require network + access, please check that the network is configured and working + properly. + + The apt-get command is by default included in + Enea Linux images. + +
+ Configuring + + APT relies on the concept of repositories in order to find + packages and resolve dependencies. + + Any number of additional repositories can be added to APT's + configuration files (.list extension) located in sources.list.d + directory (e.g: + /etc/apt/sources.list.d/repos.list) and then be + queried by APT. + + # touch /etc/apt/sources.list.d/repos.list +# echo "deb [trusted=yes] http://server-address/path/to/the/package/directory ./" | \ +tee -a /etc/apt/sources.list.d/repos.list + + Run apt-get update to fetch information from + the new repository: + + # apt-get update +
+ +
+ Installing + + DEB packages typically have file names like + foo-1.0.1-r0.0_arm64.deb The file name includes the package name + (foo), version (1.0.1), revison (r0.0), and architecture (arm64). To + install a package, log in as root and type the following command at a + shell prompt: + + # apt-get install foo + + The apt-get install command will install one + or more packages in the system. +
+ +
+ Upgrading + + The apt-get upgrade command will upgrade one + or more packages which are currently installed in the system. If no + packages are given, all installed packages will be checked. + + # apt-get upgrade foo +
+ +
+ Removing + + The apt-get remove command will remove one or + more packages which are currently installed in the system. + Example: + + # apt-get remove ptest-runner +Reading package lists... Done +Building dependency tree +Reading state information... Done +The following packages were automatically installed and are no longer required: + libc6-dbg libc6-dev libc6-extra-nss libc6-thread-db libcidn1 + linux-libc-headers-dev +Use 'apt autoremove' to remove them. +The following packages will be REMOVED: + ptest-runner +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +After this operation, 0 B of additional disk space will be used. +Do you want to continue? [Y/n] y +(Reading database ... 5766 files and directories currently installed.) +Removing ptest-runner (2.0.2+git0+6d2872116c-r0.0) ... + +
+ +
+ Searching + + The apt-cache search allows searching for the + given expressions in the name, summary and description of known + packages. Example: + + # apt-cache search ptest-runner +ptest-runner - A C program to run all installed ptests +ptest-runner-dbg - A C program to run all installed ptests - Debugging files +ptest-runner-dev - A C program to run all installed ptests - Development files +
+
+
+
diff --git a/doc/book-enea-linux-user-guide/swcomp.mk b/doc/book-enea-linux-user-guide/swcomp.mk new file mode 100644 index 0000000..8b81e97 --- /dev/null +++ b/doc/book-enea-linux-user-guide/swcomp.mk @@ -0,0 +1,10 @@ +# Component build specification + +# Version of THIS book +BOOK_VER ?= $(REL_VER)-dev + +DOCBOOK_SRC := $(COMP)/swcomp.mk $(COMP)/doc/book.xml $(shell find $(COMP)/doc -type f \( -name "*.xml" -o -name "*.svg" -o -name "*.png" \) ! -name "book.xml" -print) + +BOOKPACKAGES := book-enea-linux-user-guide-rt +BOOKDESC_$(BOOKPACKAGES) := "Enea Linux $(PROD_VER) User's Guide" +BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) diff --git a/doc/docsrc_common/pardoc-distro.xml b/doc/docsrc_common/pardoc-distro.xml new file mode 100644 index 0000000..880b2fa --- /dev/null +++ b/doc/docsrc_common/pardoc-distro.xml @@ -0,0 +1,27 @@ + + + + +
+ Enea Linux DocBook XML Based UserDoc Names and Parameters + + NOTE: DO NOT EDIT THIS FILE IN xmlmind but you can open it to see any errors, don't save!!!! + + NOTE: Use xi:include to include parameters into a docbook XML file. + Note: Only full elements can be included and the included element must + be allowed in that place. Example: For ulink, entire ulink elements + must be included, not just parts of them. + + **** The phrase elements below can be used as variables in several + places in XML files and/or in make script files **** + + + +doc/book-enea-linux-open-source/doc/licenses.xml +doc/book-enea-linux-open-source/doc/licenses.xml +
diff --git a/doc/enea-linux-security-report b/doc/enea-linux-security-report new file mode 100644 index 0000000..60b4597 --- /dev/null +++ b/doc/enea-linux-security-report @@ -0,0 +1,1055 @@ +CVE-2017-1000380 +Package: kernel +Score: 2.1 (Low) +Description: sound/core/timer.c in the Linux kernel before 4.11.5 is vulnerable to a data race in the ALSA /dev/snd/timer driver resulting in local users being able to read information belonging to other users, i.e., uninitialized memory contents may be disclosed when a read and an ioctl happen at the same time. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000380 + +CVE-2017-1000366 +Package: glibc +Score: 7.2 (High) +Description: glibc contains a vulnerability that allows specially crafted LD_LIBRARY_PATH values to manipulate the heap/stack, causing them to alias, potentially resulting in arbitrary code execution. Please note that additional hardening changes have been made to glibc to prevent manipulation of stack and heap memory but these issues are not directly exploitable, as such they have not been given a CVE. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000366 + +CVE-2017-1000365 +Package: kernel +Score: 7.2 (High) +Description: The Linux Kernel imposes a size restriction on the arguments and environmental strings passed through RLIMIT_STACK/RLIM_INFINITY (1/4 of the size), but does not take the argument and environment pointers into account, which allows attackers to bypass this limitation. This affects Linux Kernel versions 4.11.5 and earlier. It appears that this feature was introduced in the Linux Kernel version 2.6.23. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000365 + +CVE-2017-1000253 +Package: kernel +Score: 8.0 (High) +Description: A flaw was found in the way the Linux kernel loaded ELF executables. Provided that an application was built as Position Independent Executable (PIE), the loader could allow part of that application's data segment to map over the memory area reserved for its stack, potentially resulting in memory corruption. An unprivileged local user with access to SUID (or otherwise privileged) PIE binary could use this flaw to escalate their privileges on the system.Upstream patch:https://git.kernel.org/linus/a87938b2e246b81b4fb713edb371a9fa3c5c3c86 +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2017-1000253 + +CVE-2017-1000251 +Package: kernel +Score: 8.3 (High) +Description: The native Bluetooth stack in the Linux Kernel (BlueZ), starting at the Linux kernel version 2.6.32 and up to and including 4.13.1, are vulnerable to a stack overflow vulnerability in the processing of L2CAP configuration responses resulting in Remote code execution in kernel space. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000251 + +CVE-2017-1000250 +Package: bluez5 +Score: 3.3 (Minor) +Description: All versions of the SDP server in BlueZ 5.46 and earlier are vulnerable to an information disclosure vulnerability which allows remote attackers to obtain sensitive information from the bluetoothd process memory. This vulnerability lies in the processing of SDP search attribute requests. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000250 + +CVE-2017-1000111 +Package: kernel +Score: 7.2 (High) +Description: Linux kernel: heap out-of-bounds in AF_PACKET sockets. This new issue is analogous to previously disclosed CVE-2016-8655. In both cases, a socket option that changes socket state may race with safety checks in packet_set_ring. Previously with PACKET_VERSION. This time with PACKET_RESERVE. The solution is similar: lock the socket for the update. This issue may be exploitable, we did not investigate further. As this issue affects PF_PACKET sockets, it requires CAP_NET_RAW in the process namespace. But note that with user namespaces enabled, any process can create a namespace in which it has CAP_NET_RAW. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000111 + +CVE-2017-1000101 +Package: curl +Score: 4.0 (Medium) +Description: curl supports "globbing" of URLs, in which a user can pass a numerical rangeto have the tool iterate over those numbers to do a sequence of transfers.In the globbing function that parses the numerical range, there was anomission that made curl read a byte beyond the end of the URL if given acarefully crafted, or just wrongly written, URL. The URL is stored in a heapbased buffer, so it could then be made to wrongly read something else insteadof crashing. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000101 + +CVE-2017-1000100 +Package: curl +Score: 4.0 (Medium) +Description: When doing an TFTP upload and curl/libcurl is given a URL that contains a verylong file name (longer than about 515 bytes), the file name is truncated tofit within the buffer boundaries, but the buffer size is still wrongly updatedto use the untruncated length. This too large value is then used in the`send()` call, making curl attempt to send more data than what is actually putinto the buffer. The `send()` function will then read beyond the end of theheap based buffer. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000100 + +CVE-2017-1000082 +Package: systemd +Score: 10.0 (High) +Description: systemd v233 and earlier fails to safely parse usernames starting with a numeric digit (e.g. "0day"), running the service in question with root privileges rather than the user intended. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000082 + +CVE-2017-18017 +Package: kernel +Score: 5.0 (Medium) +Description: The tcpmss_mangle_packet function in net/netfilter/xt_TCPMSS.c in the Linux kernel before 4.11, and 4.9.x before 4.9.36, allows remote attackers to cause a denial of service (use-after-free and memory corruption) or possibly have unspecified other impact by leveraging the presence of xt_TCPMSS in an iptables action. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-18017 + +CVE-2017-14496 +Package: dnsmasq +Score: 7.0 (High) +Description: Integer underflow in the add_pseudoheader function in dnsmasq before 2.78 , when the --add-mac, --add-cpe-id or --add-subnet option is specified, allows remote attackers to cause a denial of service via a crafted DNS request. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14496 + +CVE-2017-14106 +Package: kernel +Score: 4.9 (Medium) +Description: The tcp_disconnect function in net/ipv4/tcp.c in the Linux kernel before 4.12 allows local users to cause a denial of service (__tcp_select_window divide-by-zero error and system crash) by triggering a disconnect within a certain tcp_recvmsg code path. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14106 + +CVE-2017-13081 +Package: linux-firmware +Score: 2.9 (Minor) +Description: Wi-Fi Protected Access (WPA and WPA2) that supports IEEE 802.11w allows reinstallation of the Integrity Group Temporal Key (IGTK) during the group key handshake, allowing an attacker within radio range to spoof frames from access points to clients. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13081 + +CVE-2017-13080 +Package: linux-firmware +Score: 2.9 (Minor) +Description: Wi-Fi Protected Access (WPA and WPA2) allows reinstallation of the Group Temporal Key (GTK) during the group key handshake, allowing an attacker within radio range to replay frames from access points to clients. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13080 + +CVE-2017-12132 +Package: glibc +Score: 4.3 (Medium) +Description: The DNS stub resolver in the GNU C Library (aka glibc or libc6) before version 2.26, when EDNS support is enabled, will solicit large UDP responses from name servers, potentially simplifying off-path DNS spoofing attacks due to IP fragmentation. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12132 + +CVE-2017-11176 +Package: kernel +Score: 10.0 (High) +Description: The mq_notify function in the Linux kernel through 4.11.9 does not set the sock pointer to NULL upon entry into the retry logic. During a user-space close of a Netlink socket, it allows attackers to cause a denial of service (use-after-free) or possibly have unspecified other impact. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11176 + +CVE-2017-9955 +Package: GNU Binutils +Score: 4.3 (Medium) +Description: The get_build_id function in opncls.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, allows remote attackers to cause a denial of service (heap-based buffer over-read and application crash) via a crafted file in which a certain size field is larger than a corresponding data field, as demonstrated by mishandling within the objdump program. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9955 + +CVE-2017-9954 +Package: GNU Binutils +Score: 4.3 (Medium) +Description: The getvalue function in tekhex.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, allows remote attackers to cause a denial of service (stack-based buffer over-read and application crash) via a crafted tekhex file, as demonstrated by mishandling within the nm program. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9954 + +CVE-2017-9756 +Package: GNU Binutils +Score: 6.8 (Medium) +Description: The aarch64_ext_ldst_reglist function in opcodes/aarch64-dis.c in GNU Binutils 2.28 allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9756 + +CVE-2017-9755 +Package: GNU Binutils (objdump) +Score: 6.8 (Medium) +Description: opcodes/i386-dis.c in GNU Binutils 2.28 does not consider the number of registers for bnd mode, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9755 + +CVE-2017-9753 +Package: GNU Binutils +Score: 6.8 (Medium) +Description: The versados_mkobject function in bfd/versados.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, does not initialize a certain data structure, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9753 + +CVE-2017-9752 +Package: GNU Binutils, libbfd +Score: 6.8 (Medium) +Description: bfd/vms-alpha.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file in the _bfd_vms_get_value and _bfd_vms_slurp_etir functions during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9752 + +CVE-2017-9751 +Package: GNU Binutils +Score: 6.8 (Medium) +Description: opcodes/rl78-decode.opc in GNU Binutils 2.28 has an unbounded GETBYTE macro, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9751 + +CVE-2017-9750 +Package: GNU Binutils +Score: 6.8 (Medium) +Description: opcodes/rx-decode.opc in GNU Binutils 2.28 lacks bounds checks for certain scale arrays, which allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9750 + +CVE-2017-9749 +Package: GNU Binutils +Score: 6.8 (Medium) +Description: The *regs* macros in opcodes/bfin-dis.c in GNU Binutils 2.28 allow remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9749 + +CVE-2017-9748 +Package: GNU Binutils +Score: 6.8 (Medium) +Description: The ieee_object_p function in bfd/ieee.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, might allow remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. NOTE: this may be related to a compiler bug. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9748 + +CVE-2017-9747 +Package: GNU Binutils (libbfd) +Score: 6.8 (Medium) +Description: The ieee_archive_p function in bfd/ieee.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, might allow remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. NOTE: this may be related to a compiler bug. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9747 + +CVE-2017-9746 +Package: GNU Binutils +Score: 6.8 (Medium) +Description: The disassemble_bytes function in objdump.c in GNU Binutils 2.28 allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of rae insns printing for this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9746 + +CVE-2017-9745 +Package: GNU Binutils (libbfd) +Score: 6.8 (Medium) +Description: The _bfd_vms_slurp_etir function in bfd/vms-alpha.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9745 + +CVE-2017-9744 +Package: GNU Binutils (libbfd) +Score: 6.8 (Medium) +Description: The sh_elf_set_mach_from_flags function in bfd/elf32-sh.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9744 + +CVE-2017-9742 +Package: GNU Binutils (objdump) +Score: 6.8 (Medium) +Description: The score_opcodes function in opcodes/score7-dis.c in GNU Binutils 2.28 allows remote attackers to cause a denial of service (buffer overflow and application crash) or possibly have unspecified other impact via a crafted binary file, as demonstrated by mishandling of this file during \"objdump -D\" execution. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9742 + +CVE-2017-9445 +Package: systemd +Score: 5.0 (Medium) +Description: In systemd through 233, certain sizes passed to dns_packet_new in systemd-resolved can cause it to allocate a buffer that's too small. A malicious DNS server can exploit this via a response with a specially crafted TCP payload to trick systemd-resolved into allocating a buffer that's too small, and subsequently write arbitrary data beyond the end of it. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9445 + +CVE-2017-9050 +Package: libxml2-native +Score: 5.0 (Medium) +Description: libxml2 20904-GITv2.9.4-16-g0741801 is vulnerable to a heap-based buffer over-read in the xmlDictAddString function in dict.c. This vulnerability causes programs that use libxml2, such as PHP, to crash. This vulnerability exists because of an incomplete fix for CVE-2016-1839. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9050 + +CVE-2017-9049 +Package: libxml2-native +Score: 5.0 (Medium) +Description: libxml2 20904-GITv2.9.4-16-g0741801 is vulnerable to a heap-based buffer over-read in the xmlDictComputeFastKey function in dict.c. This vulnerability causes programs that use libxml2, such as PHP, to crash. This vulnerability exists because of an incomplete fix for libxml2 Bug 759398. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9049 + +CVE-2017-9048 +Package: libxml2-native +Score: 5.0 (Medium) +Description: libxml2 20904-GITv2.9.4-16-g0741801 is vulnerable to a stack-based buffer overflow. The function xmlSnprintfElementContent in valid.c is supposed to recursively dump the element content definition into a char buffer 'buf' of size 'size'. At the end of the routine, the function may strcat two more characters without checking whether the current strlen(buf) + 2 < size. This vulnerability causes programs that use libxml2, such as PHP, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9048 + +CVE-2017-9047 +Package: libxml2-native +Score: 5.0 (Medium) +Description: A buffer overflow was discovered in libxml2 20904-GITv2.9.4-16-g0741801. The function xmlSnprintfElementContent in valid.c is supposed to recursively dump the element content definition into a char buffer 'buf' of size 'size'. The variable len is assigned strlen(buf). If the content->type is XML_ELEMENT_CONTENT_ELEMENT, then (i) the content->prefix is appended to buf (if it actually fits) whereupon (ii) content->name is written to the buffer. However, the check for whether the content->name actually fits also uses 'len' rather than the updated buffer length strlen(buf). This allows us to write about "size" many bytes beyond the allocated memory. This vulnerability causes programs that use libxml2, such as PHP, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9047 + +CVE-2017-9044 +Package: GNU Binutils (readelf) +Score: 4.3 (Medium) +Description: The print_symbol_for_build_attribute function in readelf.c in GNU Binutils 2017-04-12 allows remote attackers to cause a denial of service (invalid read and SEGV) via a crafted ELF file. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9044 + +CVE-2017-9042 +Package: GNU Binutils +Score: 6.8 (Medium) +Description: readelf.c in GNU Binutils 2017-04-12 has a \"cannot be represented in type long\" issue, which might allow remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted ELF file. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9042 + +CVE-2017-9040 +Package: GNU Binutils +Score: 4.3 (Medium) +Description: GNU Binutils 2017-04-03 allows remote attackers to cause a denial of service (NULL pointer dereference and application crash), related to the process_mips_specific function in readelf.c, via a crafted ELF file that triggers a large memory-allocation attempt. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9040 + +CVE-2017-9039 +Package: GNU Binutils (readelf) +Score: 4.3 (Medium) +Description: GNU Binutils 2.28 allows remote attackers to cause a denial of service (memory consumption) via a crafted ELF file with many program headers, related to the get_program_headers function in readelf.c. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9039 + +CVE-2017-9038 +Package: GNU Binutils (readelf) +Score: 4.3 (Medium) +Description: GNU Binutils 2.28 allows remote attackers to cause a denial of service (heap-based buffer over-read and application crash) via a crafted ELF file, related to the byte_get_little_endian function in elfcomm.c, the get_unwind_section_word function in readelf.c, and ARM unwind information that contains invalid word offsets. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9038 + +CVE-2017-8872 +Package: libxml2-native +Score: 6.4 (Medium) +Description: The htmlParseTryOrFinish function in HTMLparser.c in libxml2 2.9.4 allows attackers to cause a denial of service (buffer over-read) or information disclosure. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8872 + +CVE-2017-8831 +Package: kernel +Score: 7.2 (High) +Description: The saa7164_bus_get function in drivers/media/pci/saa7164/saa7164-bus.c in the Linux kernel through 4.10.14 allows local users to cause a denial of service (out-of-bounds array access) or possibly have unspecified other impact by changing a certain sequence-number value, aka a "double fetch" vulnerability. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8831 + +CVE-2017-8804 +Package: glibc +Score: 7.8 (High) +Description: The xdr_bytes and xdr_string functions in the GNU C Library (aka glibc or libc6) 2.25 mishandle failures of buffer deserialization, which allows remote attackers to cause a denial of service (virtual memory allocation, or memory consumption if an overcommit setting is not used) via a crafted UDP packet to port 111, a related issue to CVE-2017-8779. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8804 + +CVE-2017-8779 +Package: rpcbind +Score: 7.8 (High) +Description: rpcbind through 0.2.4, LIBTIRPC through 1.0.1 and 1.0.2-rc through 1.0.2-rc3, and NTIRPC through 1.4.3 do not consider the maximum RPC data size during memory allocation for XDR strings, which allows remote attackers to cause a denial of service (memory consumption with no subsequent free) via a crafted UDP packet to port 111, aka rpcbomb +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8779 + +CVE-2017-8421 +Package: GNU Binutils +Score: 7.1 (High) +Description: The function coff_set_alignment_hook in coffcode.h in Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, has a memory leak vulnerability which can cause memory exhaustion in objdump via a crafted PE file. Additional validation in dump_relocs_in_section in objdump.c can resolve this. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8421 + +CVE-2017-8398 +Package: GNU Binutils +Score: 5.0 (Medium) +Description: dwarf.c in GNU Binutils 2.28 is vulnerable to an invalid read of size 1 during dumping of debug information from a corrupt binary. This vulnerability causes programs that conduct an analysis of binary programs, such as objdump and readelf, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8398 + +CVE-2017-8397 +Package: GNU Binutils +Score: 5.0 (Medium) +Description: The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read of size 1 and an invalid write of size 1 during processing of a corrupt binary containing reloc(s) with negative addresses. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objdump, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8397 + +CVE-2017-8396 +Package: GNU Binutils +Score: 5.0 (Medium) +Description: The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read of size 1 because the existing reloc offset range tests didn't catch small negative offsets less than the size of the reloc field. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objdump, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8396 + +CVE-2017-8395 +Package: GNU Binutils +Score: 5.0 (Medium) +Description: The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid write of size 8 because of missing a malloc() return-value check to see if memory had actually been allocated in the _bfd_generic_get_section_contents function. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objcopy, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8395 + +CVE-2017-8394 +Package: GNU Binutils +Score: 5.0 (Medium) +Description: The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read of size 4 due to NULL pointer dereferencing of _bfd_elf_large_com_section. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objcopy, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8394 + +CVE-2017-8393 +Package: GNU Binutils +Score: 5.0 (Medium) +Description: The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to a global buffer over-read error because of an assumption made by code that runs for objcopy and strip, that SHT_REL/SHR_RELA sections are always named starting with a .rel/.rela prefix. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objcopy and strip, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8393 + +CVE-2017-8392 +Package: GNU Binutils +Score: 5.0 (Medium) +Description: The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read of size 8 because of missing a check to determine whether symbols are NULL in the _bfd_dwarf2_find_nearest_line function. This vulnerability causes programs that conduct an analysis of binary programs using the libbfd library, such as objdump, to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8392 + +CVE-2017-8283 +Package: dpkg +Score: 7.5 (High) +Description: dpkg-source in dpkg 1.3.0 through 1.18.23 is able to use a non-GNU patch program and does not offer a protection mechanism for blank-indented diff hunks, which allows remote attackers to conduct directory traversal attacks via a crafted Debian source package, as demonstrated by use of dpkg-source on NetBSD. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8283 + +CVE-2017-8105 +Package: freetype +Score: 7.5 (High) +Description: FreeType 2 before 2017-03-24 has an out-of-bounds write caused by a heap-based buffer overflow related to the t1_decoder_parse_charstrings function in psaux/t1decode.c. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8105 + +CVE-2017-8072 +Package: kernel +Score: 7.2 (High) +Description: The cp2112_gpio_direction_input function in drivers/hid/hid-cp2112.c in the Linux kernel 4.9.x before 4.9.9 does not have the expected EIO error status for a zero-length report, which allows local users to have an unspecified impact via unknown vectors. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8072 + +CVE-2017-8071 +Package: kernel +Score: 2.1 (Low) +Description: drivers/hid/hid-cp2112.c in the Linux kernel 4.9.x before 4.9.9 uses a spinlock without considering that sleeping is possible in a USB HID request callback, which allows local users to cause a denial of service (deadlock) via unspecified vectors. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8071 + +CVE-2017-8070 +Package: kernel +Score: 7.2 (High) +Description: drivers/net/usb/catc.c in the Linux kernel 4.9.x before 4.9.11 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8070 + +CVE-2017-8069 +Package: kernel +Score: 7.2 (High) +Description: drivers/net/usb/rtl8150.c in the Linux kernel 4.9.x before 4.9.11 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8069 + +CVE-2017-8068 +Package: kernel +Score: 7.2 (High) +Description: drivers/net/usb/pegasus.c in the Linux kernel 4.9.x before 4.9.11 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8068 + +CVE-2017-8067 +Package: kernel +Score: 7.2 (High) +Description: drivers/char/virtio_console.c in the Linux kernel 4.9.x and 4.10.x before 4.10.12 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8067 + +CVE-2017-8066 +Package: kernel +Score: 7.2 (High) +Description: drivers/net/can/usb/gs_usb.c in the Linux kernel 4.9.x and 4.10.x before 4.10.2 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8066 + +CVE-2017-8065 +Package: kernel +Score: 7.2 (High) +Description: rypto/ccm.c in the Linux kernel 4.9.x and 4.10.x through 4.10.12 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8065 + +CVE-2017-8064 +Package: kernel +Score: 7.2 (High) +Description: drivers/media/usb/dvb-usb-v2/dvb_usb_core.c in the Linux kernel 4.9.x and 4.10.x before 4.10.12 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8064 + +CVE-2017-8063 +Package: kernel +Score: 7.2 (High) +Description: drivers/media/usb/dvb-usb/cxusb.c in the Linux kernel 4.9.x and 4.10.x before 4.10.12 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8063 + +CVE-2017-8062 +Package: kernel +Score: 7.2 (High) +Description: drivers/media/usb/dvb-usb/dw2102.c in the Linux kernel 4.9.x and 4.10.x before 4.10.4 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8062 + +CVE-2017-8061 +Package: kernel +Score: 7.2 (High) +Description: drivers/media/usb/dvb-usb/dvb-usb-firmware.c in the Linux kernel 4.9.x and 4.10.x before 4.10.7 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8061 + +CVE-2017-7895 +Package: kernel +Score: 10.0 (High) +Description: The NFSv2 and NFSv3 server implementations in the Linux kernel through 4.10.13 lack certain checks for the end of a buffer, which allows remote attackers to trigger pointer-arithmetic errors or possibly have unspecified other impact via crafted requests, related to fs/nfsd/nfs3xdr.c and fs/nfsd/nfsxdr.c. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7895 + +CVE-2017-7869 +Package: gnutls +Score: 5.0 (Medium) +Description: GnuTLS before 2017-02-20 has an out-of-bounds write caused by an integer overflow and heap-based buffer overflow related to the cdk_pkt_read function in opencdk/read-packet.c. This issue (which is a subset of the vendor's GNUTLS-SA-2017-3 report) is fixed in 3.5.10. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7869 + +CVE-2017-7645 +Package: kernel +Score: 7.8 (High) +Description: The NFSv2/NFSv3 server in the nfsd subsystem in the Linux kernel through 4.10.11 allows remote attackers to cause a denial of service (system crash) via a long RPC reply, related to net/sunrpc/svc.c, fs/nfsd/nfs3xdr.c, and fs/nfsd/nfsxdr.c. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7645 + +CVE-2017-7618 +Package: kernel +Score: 7.8 (High) +Description: crypto/ahash.c in the Linux kernel through 4.10.9 allows attackers to cause a denial of service (API operation calling its own callback, and infinite recursion) by triggering EBUSY on a full queue. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7618 + +CVE-2017-7614 +Package: GNU Binutils +Score: 7.5 (High) +Description: elflink.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, has a \"member access within null pointer\" undefined behavior issue, which might allow remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via an \"int main() {return 0;}\" program. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7614 + +CVE-2017-7487 +Package: kernel +Score: 7.2 (High) +Description: The ipxitf_ioctl function in net/ipx/af_ipx.c in the Linux kernel through 4.11.1 mishandles reference counts, which allows local users to cause a denial of service (use-after-free) or possibly have unspecified other impact via a failed SIOCGIFADDR ioctl call for an IPX interface. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7487 + +CVE-2017-7472 +Package: kernel +Score: 4.9 (Medium) +Description: The KEYS subsystem in the Linux kernel before 4.10.13 allows local users to cause a denial of service (memory consumption) via a series of KEY_REQKEY_DEFL_THREAD_KEYRING keyctl_set_reqkey_keyring calls. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7472 + +CVE-2017-7468 +Package: curl +Score: 6.0 (Medium) +Description: libcurl would attempt to resume a TLS session even if the client certificate had changed. That is unacceptable since a server by specification is allowed to skip the client certificate check on resume, and may instead use the old identity which was established by the previous certificate (or no certificate). +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7468 + +CVE-2017-7407 +Package: curl +Score: 2.1 (Low) +Description: The ourWriteOut function in tool_writeout.c in curl 7.53.1 might allow physically proximate attackers to obtain sensitive information from process memory in opportunistic circumstances by reading a workstation screen during use of a --write-out argument ending in a '%' character, which leads to a heap-based buffer over-read. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7407 + +CVE-2017-7304 +Package: Binutils +Score: 5.0 (Medium) +Description: The Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.28, is vulnerable to an invalid read (of size 8) because of missing a check (in the copy_special_section_fields function) for an invalid sh_link field before attempting to follow it. This vulnerability causes Binutils utilities like strip to crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7304 + +CVE-2017-7223 +Package: GNU Binutils +Score: 5.0 (Medium) +Description: GNU assembler in GNU Binutils 2.28 is vulnerable to a global buffer overflow (of size 1) while attempting to unget an EOF character from the input stream, potentially leading to a program crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7223 + +CVE-2017-7210 +Package: binutils +Score: 7.8 (High) +Description: objdump in GNU Binutils 2.28 is vulnerable to multiple heap-based buffer over-reads (of size 1 and size 8) while handling corrupt STABS enum type strings in a crafted object file, leading to program crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7210 + +CVE-2017-7209 +Package: binutils +Score: 4.3 (Medium) +Description: The dump_section_as_bytes function in readelf in GNU Binutils 2.28 accesses a NULL pointer while reading section contents in a corrupt binary, leading to a program crash. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7209 + +CVE-2017-6969 +Package: binutils +Score: 6.4 (Medium) +Description: readelf in GNU Binutils 2.28 is vulnerable to a heap-based buffer over-read while processing corrupt RL78 binaries. The vulnerability can trigger program crashes. It may lead to an information leak as well. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6969 + +CVE-2017-6966 +Package: binutil +Score: 4.0 (Medium) +Description: readelf in GNU Binutils 2.28 has a use-after-free (specifically read-after-free) error while processing multiple, relocated sections in an MSP430 binary. This is caused by mishandling of an invalid symbol index, and mishandling of state across invocations. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6966 + +CVE-2017-6965 +Package: binutils +Score: 4.3 (Medium) +Description: readelf in GNU Binutils 2.28 writes to illegal addresses while processing corrupt input files containing symbol-difference relocations, leading to a heap-based buffer overflow. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6965 + +CVE-2017-6874 +Package: Kernel +Score: 7.0 (High) +Description: Race condition in kernel/ucount.c in the Linux kernel through 4.10.2 allows local users to cause a denial of service (use-after-free and system crash) or possibly have unspecified other impact via crafted system calls that leverage certain decrement behavior that causes incorrect interaction between put_ucounts and get_ucounts. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6874 + +CVE-2017-6353 +Package: Kernel +Score: 5.0 (Medium) +Description: net/sctp/socket.c in the Linux kernel through 4.10.1 does not properly restrict association peel-off operations during certain wait states, which allows local users to cause a denial of service (invalid unlock and double free) via a multithreaded application. NOTE: this vulnerability exists because of an incorrect fix for CVE-2017-5986. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6353 + +CVE-2017-6348 +Package: Kernel +Score: 5.0 (Medium) +Description: The hashbin_delete function in net/irda/irqueue.c in the Linux kernel before 4.9.13 improperly manages lock dropping, which allows local users to cause a denial of service (deadlock) via crafted operations on IrDA devices. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6348 + +CVE-2017-6347 +Package: Kernel +Score: 7.0 (High) +Description: The ip_cmsg_recv_checksum function in net/ipv4/ip_sockglue.c in the Linux kernel before 4.10.1 has incorrect expectations about skb data layout, which allows local users to cause a denial of service (buffer over-read) or possibly have unspecified other impact via crafted system calls, as demonstrated by use of the MSG_MORE flag in conjunction with loopback UDP transmission. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6347 + +CVE-2017-6346 +Package: Kernel +Score: 7.0 (High) +Description: Race condition in net/packet/af_packet.c in the Linux kernel before 4.9.13 allows local users to cause a denial of service (use-after-free) or possibly have unspecified other impact via a multithreaded application that makes PACKET_FANOUT setsockopt system calls. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6346 + +CVE-2017-6345 +Package: Kernel +Score: 5.0 (Medium) +Description: The LLC subsystem in the Linux kernel before 4.9.13 does not ensure that a certain destructor exists in required circumstances, which allows local users to cause a denial of service (BUG_ON) or possibly have unspecified other impact via crafted system calls. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6345 + +CVE-2017-6214 +Package: Kernel +Score: 5.0 (Medium) +Description: The tcp_splice_read function in net/ipv4/tcp.c in the Linux kernel before 4.9.11 allows remote attackers to cause a denial of service (infinite loop and soft lockup) via vectors involving a TCP packet with the URG flag. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6214 + +CVE-2017-6074 +Package: Kernel +Score: 8.0 (High) +Description: The dccp_rcv_state_process function in net/dccp/input.c in the Linux kernel through 4.9.11 mishandles DCCP_PKT_REQUEST packet data structures in the LISTEN state, which allows local users to obtain root privileges or cause a denial of service (double free) via an application that makes an IPV6_RECVPKTINFO setsockopt system call. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6074 + +CVE-2017-6001 +Package: Kernel +Score: 8.0 (High) +Description: Race condition in kernel/events/core.c in the Linux kernel before 4.9.7 allows local users to gain privileges via a crafted application that makes concurrent perf_event_open system calls for moving a software group into a hardware context. NOTE: this vulnerability exists because of an incomplete fix for CVE-2016-6786. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6001 + +CVE-2017-5986 +Package: Kernel +Score: 7.0 (High) +Description: Race condition in the sctp_wait_for_sndbuf function in net/sctp/socket.c in the Linux kernel before 4.9.11 allows local users to cause a denial of service (assertion failure and panic) via a multithreaded application that peels off an association in a certain buffer-full state. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5986 + +CVE-2017-5970 +Package: Kernel +Score: 5.0 (Medium) +Description: The ipv4_pktinfo_prepare function in net/ipv4/ip_sockglue.c in the Linux kernel through 4.9.9 allows attackers to cause a denial of service (system crash) via (1) an application that makes crafted system calls or possibly (2) IPv4 traffic with invalid IP options. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5970 + +CVE-2017-5969 +Package: libxml2-native +Score: 2.6 (Low) +Description: libxml2 2.9.4, when used in recover mode, allows remote attackers to cause a denial of service (NULL pointer dereference) via a crafted XML document. NOTE: The maintainer states "I would disagree of a CVE with the Recover parsing option which should only be used for manual recovery at least for XML parser." +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5969 + +CVE-2017-5848 +Package: gstreamer +Score: 5.0 (Medium) +Description: The gst_ps_demux_parse_psm function in gst/mpegdemux/gstmpegdemux.c in gst-plugins-bad in GStreamer allows remote attackers to cause a denial of service (invalid memory read and crash) via vectors involving PSM parsing. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5848 + +CVE-2017-5847 +Package: gstreamer +Score: 5.0 (Medium) +Description: The gst_asf_demux_process_ext_content_desc function in gst/asfdemux/gstasfdemux.c in gst-plugins-ugly in GStreamer allows remote attackers to cause a denial of service (out-of-bounds heap read) via vectors involving extended content descriptors. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5847 + +CVE-2017-5669 +Package: Kernel +Score: 5.0 (Medium) +Description: The do_shmat function in ipc/shm.c in the Linux kernel through 4.9.12 does not restrict the address calculated by a certain rounding operation, which allows local users to map page zero, and consequently bypass a protection mechanism that exists for the mmap system call, by making crafted shmget and shmat system calls in a privileged context. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5669 + +CVE-2017-5618 +Package: GNU screen +Score: 7.2 (High) +Description: GNU screen before 4.5.1 allows local users to modify arbitrary files and consequently gain root privileges by leveraging improper checking of logfile permissions. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5618 + +CVE-2017-5601 +Package: libarchive +Score: 5.0 (Medium) +Description: An error in the lha_read_file_header_1() function (archive_read_support_format_lha.c) in libarchive 3.2.2 allows remote attackers to trigger an out-of-bounds read memory access and subsequently cause a crash via a specially crafted archive. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5601 + +CVE-2017-5577 +Package: Kernel +Score: 5.0 (Medium) +Description: The vc4_get_bcl function in drivers/gpu/drm/vc4/vc4_gem.c in the VideoCore DRM driver in the Linux kernel before 4.9.7 does not set an errno value upon certain overflow detections, which allows local users to cause a denial of service (incorrect pointer dereference and OOPS) via inconsistent size values in a VC4_SUBMIT_CL ioctl call. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5577 + +CVE-2017-5576 +Package: Kernel +Score: 7.0 (High) +Description: Integer overflow in the vc4_get_bcl function in drivers/gpu/drm/vc4/vc4_gem.c in the VideoCore DRM driver in the Linux kernel before 4.9.7 allows local users to cause a denial of service or possibly have unspecified other impact via a crafted size value in a VC4_SUBMIT_CL ioctl call. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5576 + +CVE-2017-5551 +Package: Kernel +Score: 4.0 (Medium) +Description: The simple_set_acl function in fs/posix_acl.c in the Linux kernel before 4.9.6 preserves the setgid bit during a setxattr call involving a tmpfs filesystem, which allows local users to gain group privileges by leveraging the existence of a setgid program with restrictions on execute permissions. NOTE: this vulnerability exists because of an incomplete fix for CVE-2016-7097. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5551 + +CVE-2017-5548 +Package: Kernel +Score: 7.0 (High) +Description: drivers/net/ieee802154/atusb.c in the Linux kernel 4.9.x before 4.9.6 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5548 + +CVE-2017-5547 +Package: Kernel +Score: 7.0 (High) +Description: drivers/hid/hid-corsair.c in the Linux kernel 4.9.x before 4.9.6 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a DMA scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5547 + +CVE-2017-5546 +Package: Kernel +Score: 7.0 (High) +Description: The freelist-randomization feature in mm/slab.c in the Linux kernel 4.8.x and 4.9.x before 4.9.5 allows local users to cause a denial of service (duplicate freelist entries and system crash) or possibly have unspecified other impact in opportunistic circumstances by leveraging the selection of a large value for a random number. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5546 + +CVE-2017-5335 +Package: GnuTLS +Score: 5.0 (Medium) +Description: The stream reading functions in lib/opencdk/read-packet.c in GnuTLS before 3.3.26 and 3.5.x before 3.5.8 allow remote attackers to cause a denial of service (out-of-memory error and crash) via a crafted OpenPGP certificate. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5335 + +CVE-2017-5225 +Package: tiff +Score: 7.5 (High) +Description: LibTIFF version 4.0.7 is vulnerable to a heap buffer overflow in the tools/tiffcp resulting in DoS or code execution via a crafted BitsPerSample value. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5225 + +CVE-2017-5029 +Package: libxslt +Score: 6.8 (Medium) +Description: The xsltAddTextString function in transform.c in libxslt 1.1.29, as used in Blink in Google Chrome prior to 57.0.2987.98 for Mac, Windows, and Linux and 57.0.2987.108 for Android, lacked a check for integer overflow during a size calculation, which allowed a remote attacker to perform an out of bounds memory write via a crafted HTML page. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5029 + +CVE-2017-3731 +Package: OpenSSL +Score: 5.0 (Medium) +Description: If an SSL/TLS server or client is running on a 32-bit host, and a specific cipher is being used, then a truncated packet can cause that server or client to perform an out-of-bounds read, usually resulting in a crash. For OpenSSL 1.1.0, the crash can be triggered when using CHACHA20/POLY1305; users should upgrade to 1.1.0d. For Openssl 1.0.2, the crash can be triggered when using RC4-MD5; users who have not disabled that algorithm should update to 1.0.2k. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3731 + +CVE-2017-3136 +Package: bind +Score: 5.9 (Medium) +Description: A query with a specific set of characteristics could cause a server using DNS64 to encounter an assertion failure and terminate.An attacker could deliberately construct a query, enabling denial-of-service against a server if it was configured to use the DNS64 feature and other preconditions were met. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3136 + +CVE-2017-3135 +Package: bind +Score: 6.0 (Medium) +Description: Under some conditions when using both DNS64 and RPZ to rewrite query responses, query processing can resume in an inconsistent state leading to either an INSIST assertion failure or an attempt to read through a NULL pointer. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3135 + +CVE-2017-2636 +Package: Kernel +Score: 7.2 (High) +Description: Race condition in drivers/tty/n_hdlc.c in the Linux kernel through 4.10.1 allows local users to gain privileges or cause a denial of service (double free) by setting the HDLC line discipline. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2636 + +CVE-2017-2628 +Package: curl +Score: 0.0 (Low) +Description: It was found that the fix for CVE-2015-3148 in curl was incomplete. An application using libcurl with HTTP Negotiate authentication could incorrectly re-use credentials for subsequent requests to the same server. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2628 + +CVE-2016-10350 +Package: libarchive +Score: 4.3 (Medium) +Description: The archive_read_format_cab_read_header function in archive_read_support_format_cab.c in libarchive 3.2.2 allows remote attackers to cause a denial of service (heap-based buffer over-read and application crash) via a crafted file. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10350 + +CVE-2016-10349 +Package: libarchive +Score: 4.2 (Medium) +Description: The archive_le32dec function in archive_endian.h in libarchive 3.2.2 allows remote attackers to cause a denial of service (heap-based buffer over-read and application crash) via a crafted file. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10349 + +CVE-2016-10229 +Package: kernel +Score: 10.0 (High) +Description: udp.c in the Linux kernel before 4.5 allows remote attackers to execute arbitrary code via UDP traffic that triggers an unsafe second checksum calculation during execution of a recv system call with the MSG_PEEK flag. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10229 + +CVE-2016-10228 +Package: glibc +Score: 4.2 (Medium) +Description: The iconv program in the GNU C Library (aka glibc or libc6) 2.25 and earlier, when invoked with the -c option, enters an infinite loop when processing invalid multi-byte input sequences, leading to a denial of service. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10228 + +CVE-2016-10208 +Package: Kernel +Score: 5.0 (Medium) +Description: The ext4_fill_super function in fs/ext4/super.c in the Linux kernel through 4.9.8 does not properly validate meta block groups, which allows physically proximate attackers to cause a denial of service (out-of-bounds read and system crash) via a crafted ext4 image. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10208 + +CVE-2016-10200 +Package: Kernel +Score: 7.0 (High) +Description: Race condition in the L2TPv3 IP Encapsulation feature in the Linux kernel before 4.8.14 allows local users to gain privileges or cause a denial of service (use-after-free) by making multiple bind system calls without properly ascertaining whether a socket has the SOCK_ZAPPED status, related to net/l2tp/l2tp_ip.c and net/l2tp/l2tp_ip6.c. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10200 + +CVE-2016-10154 +Package: Kernel +Score: 5.0 (Medium) +Description: The smbhash function in fs/cifs/smbencrypt.c in the Linux kernel 4.9.x before 4.9.1 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging use of more than one virtual page for a scatterlist. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10154 + +CVE-2016-10153 +Package: Kernel +Score: 7.0 (High) +Description: The crypto scatterlist API in the Linux kernel 4.9.x before 4.9.6 interacts incorrectly with the CONFIG_VMAP_STACK option, which allows local users to cause a denial of service (system crash or memory corruption) or possibly have unspecified other impact by leveraging reliance on earlier net/ceph/crypto.c code. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10153 + +CVE-2016-10150 +Package: KVM +Score: 10.0 (High) +Description: Use-after-free vulnerability in the kvm_ioctl_create_device function in virt/kvm/kvm_main.c in the Linux kernel before 4.8.13 allows host OS users to cause a denial of service (host OS crash) or possibly gain privileges via crafted ioctl calls on the /dev/kvm device. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10150 + +CVE-2016-10147 +Package: Kernel +Score: 5.0 (Medium) +Description: crypto/mcryptd.c in the Linux kernel before 4.8.15 allows local users to cause a denial of service (NULL pointer dereference and system crash) by using an AF_ALG socket with an incompatible algorithm, as demonstrated by mcryptd(md5). +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10147 + +CVE-2016-10044 +Package: Kernel +Score: 7.0 (High) +Description: The aio_mount function in fs/aio.c in the Linux kernel before 4.7.7 does not properly restrict execute access, which makes it easier for local users to bypass intended SELinux W^X policy restrictions, and consequently gain privileges, via an io_setup system call. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10044 + +CVE-2016-9844 +Package: unzip +Score: 2.1 (Low) +Description: Buffer overflow in the zi_short function in zipinfo.c in Info-Zip UnZip 6.0 allows remote attackers to cause a denial of service (crash) via a large compression method value in the central directory file header. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9844 + +CVE-2016-9754 +Package: Kernel +Score: 7.0 (High) +Description: The ring_buffer_resize function in kernel/trace/ring_buffer.c in the profiling subsystem in the Linux kernel before 4.6.1 mishandles certain integer calculations, which allows local users to gain privileges by writing to the /sys/kernel/debug/tracing/buffer_size_kb file. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9754 + +CVE-2016-9444 +Package: bind +Score: 7.0 (High) +Description: named in ISC BIND 9.x before 9.9.9-P5, 9.10.x before 9.10.4-P5, and 9.11.x before 9.11.0-P2 allows remote attackers to cause a denial of service (assertion failure and daemon exit) via a crafted DS resource record in an answer. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9444 + +CVE-2016-9401 +Package: bash +Score: 2.0 (Low) +Description: ref to yocto patch: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=1b2857a781b6666feaf5d3c91dc02ac263d0c4f6 +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9401 + +CVE-2016-9318 +Package: libxml2-native +Score: 6.8 (Medium) +Description: libxml2 2.9.4 and earlier, as used in XMLSec 1.2.23 and earlier and other products, does not offer a flag directly indicating that the current document may be read but other files may not be opened, which makes it easier for remote attackers to conduct XML External Entity (XXE) attacks via a crafted document. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9318 + +CVE-2016-9083 +Package: Kernel +Score: 8.0 (High) +Description: drivers/vfio/pci/vfio_pci.c in the Linux kernel through 4.8.11 allows local users to bypass integer overflow checks, and cause a denial of service (memory corruption) or have unspecified other impact, by leveraging access to a vfio PCI device file for a VFIO_DEVICE_SET_IRQS ioctl call, aka a "state machine confusion bug." +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9083 + +CVE-2016-8864 +Package: bind +Score: 5.0 (Medium) +Description: named in ISC BIND 9.x before 9.9.9-P4, 9.10.x before 9.10.4-P4, and 9.11.x before 9.11.0-P1 allows remote attackers to cause a denial of service (assertion failure and daemon exit) via a DNAME record in the answer section of a response to a recursive query, related to db.c and resolver.c. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8864 + +CVE-2016-8858 +Package: OpenSSL +Score: 7.8 (High) +Description: A memory exhaustion issue in OpenSSH that can be triggered before user authentication was found. An unauthenticated attacker could consume approx. 400 MB of memory per each connection. The attacker could set up multiple such connections to run out of server’s memory. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8858 + +CVE-2016-8655 +Package: Kernel +Score: 8.0 (High) +Description: Race condition in net/packet/af_packet.c in the Linux kernel through 4.8.12 allows local users to gain privileges or cause a denial of service (use-after-free) by leveraging the CAP_NET_RAW capability to change a socket version, related to the packet_set_ring and packet_setsockopt functions. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8655 + +CVE-2016-8636 +Package: Kernel +Score: 7.0 (High) +Description: Integer overflow in the mem_check_range function in drivers/infiniband/sw/rxe/rxe_mr.c in the Linux kernel before 4.9.10 allows local users to cause a denial of service (memory corruption), obtain sensitive information from kernel memory, or possibly have unspecified other impact via a write or read request involving the "RDMA protocol over infiniband" (aka Soft RoCE) technology. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8636 + +CVE-2016-8630 +Package: Kernel +Score: 6.0 (Medium) +Description: The x86_decode_insn function in arch/x86/kvm/emulate.c in the Linux kernel before 4.8.7, when KVM is enabled, allows local users to cause a denial of service (host OS crash) via a certain use of a ModR/M byte in an undefined instruction. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8630 + +CVE-2016-8625 +Package: curl +Score: 6.9 (Medium) +Description: When curl is built with libidn to handle International Domain Names (IDNA), ittranslates them to puny code for DNS resolving using the IDNA 2003 standard,while IDNA 2008 is the modern and up-to-date IDNA standard.This misalignment causes problems with for example domains using the German ßcharacter (known as the Unicode Character 'LATIN SMALL LETTER SHARP S') whichis used at times in the .de TLD and is translated differently in the two IDNAstandards, leading to users potentially and unknowingly issuing networktransfer requests to the wrong host.For example, `straße.de` is translated into `strasse.de` using IDNA 2003 butis translated into `xn--strae-oqa.de` using IDNA 2008. Needless to say, thosehost names could very well resolve to different addresses and be twocompletely independent servers. IDNA 2008 is mandatory for .de domains.curl is not alone with this problem, as there's currently a big flux in theworld of network user-agents about which IDNA version to support and use.This name problem exists for DNS-using protocols in curl, but only when builtto use libidn. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8625 + +CVE-2016-8624 +Package: curl +Score: 6.9 (Medium) +Description: curl doesn't parse the authority component of the URL correctly when the hostname part ends with a '#' character, and could instead be tricked intoconnecting to a different host. This may have security implications if you forexample use an URL parser that follows the RFC to check for allowed domainsbefore using curl to request them.Passing in `http://example.com#@evil.com/x.txt` would wrongly make curl send arequest to evil.com while your browser would connect to example.com given thesame URL.The problem exists for most protocol schemes. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8624 + +CVE-2016-8623 +Package: curl +Score: 4.9 (Medium) +Description: libcurl explicitly allows users to share cookies between multiple easy handlesthat are concurrently employed by different threads.When cookies to be sent to a server are collected, the matching functioncollects all cookies to send and the cookie lock is released immediatelyafterwards. That function however only returns a list with *references* back tothe original strings for name, value, path and so on. Therefore, if anotherthread quickly takes the lock and frees one of the original cookie structstogether with its strings, a use-after-free can occur and lead to informationdisclosure. Another thread can also replace the contents of the cookies fromseparate HTTP responses or API calls. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8623 + +CVE-2016-8622 +Package: curl +Score: 4.9 (Medium) +Description: The URL percent-encoding decode function in libcurl is called`curl_easy_unescape`. Internally, even if this function would be made toallocate a unscape destination buffer larger than 2GB, it would return thatnew length in a signed 32 bit integer variable, thus the length would geteither just truncated or both truncated and turned negative. That could thenlead to libcurl writing outside of its heap based buffer.This can be triggered by a user on a 64bit system if the user can send in acustom (very large) URL to a libcurl using program. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8622 + +CVE-2016-8621 +Package: curl +Score: 4.9 (Medium) +Description: The `curl_getdate` converts a given date string into a numerical timestamp andit supports a range of different formats and possibilites to express a dateand time. The underlying date parsing function is also used internally whenparsing for example HTTP cookies (possibly received from remote servers) andit can be used when doing conditional HTTP requests.The date parser function uses the libc sscanf() function at two places, withthe parsing strings "%02d:%02d" and ""%02d:%02d:%02d". The intent being thatit would parse either a string with HH:MM (two digits colon two digits) orHH:MM:SS (two digits colon two digits colon two digits). If instead the pieceof time that was sent in had the final digit cut off, thus ending with asingle-digit, the date parser code would advance its read pointer one byte toomuch and end up reading out of bounds. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8621 + +CVE-2016-8620 +Package: curl +Score: 6.9 (Medium) +Description: The curl tool's "globbing" feature allows a user to specify a numerical rangethrough which curl will iterate. It is typically specified as [1-5],specifying the first and the last numbers in the range. Or with [a-z], usingletters.1. The curl code for parsing the second *unsigned* number did not check for aleading minus character, which allowed a user to specify `[1--1]` with nocomplaints and have the latter `-1` number get turned into the largestunsigned long value the system can handle. This would ultimately cause curl towrite outside the dedicated malloced buffer after no less than 100,000iterations, since it would have room for 5 digits but not 6.2. When the range is specified with letters, and the ending letter is left out`[L-]`, the code would still advance its read pointer 5 bytes even if thestring was just 4 bytes and end up reading outside the given buffer. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8620 + +CVE-2016-8619 +Package: curl +Score: 6.9 (Medium) +Description: In curl's implementation of the Kerberos authentication mechanism, thefunction `read_data()` in security.c is used to fill the necessary krb5structures. When reading one of the length fields from the socket, it fails toensure that the length parameter passed to realloc() is not set to 0.This would lead to realloc() getting called with a zero size and when doing sorealloc() returns NULL *and* frees the memory - in contrary to normalrealloc() fails where it only returns NULL - causing libcurl to free thememory *again* in the error path.This flaw could be triggered by a malicious or just otherwise ill-behavingserver. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8619 + +CVE-2016-8618 +Package: curl +Score: 6.9 (Medium) +Description: The libcurl API function called `curl_maprintf()` can be tricked into doing adouble-free due to an unsafe `size_t` multiplication, on systems using 32 bit`size_t` variables. The function is also used internallty in numeroussituations.The function doubles an allocated memory area with realloc() and allows thesize to wrap and become zero and when doing so realloc() returns NULL *and*frees the memory - in contrary to normal realloc() fails where it only returnsNULL - causing libcurl to free the memory *again* in the error path.Systems with 64 bit versions of the `size_t` type are not affected by thisissue.This behavior is triggable using the publicly exposed function. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8618 + +CVE-2016-8617 +Package: curl +Score: 6.9 (Medium) +Description: In libcurl's base64 encode function, the output buffer is allocated as followswithout any checks on insize: malloc( insize * 4 / 3 + 4 )On systems with 32-bit addresses in userspace (e.g. x86, ARM, x32), themultiplication in the expression wraps around if insize is at least 1GB ofdata. If this happens, an undersized output buffer will be allocated, but thefull result will be written, thus causing the memory behind the output bufferto be overwritten.If a username is set directly via `CURLOPT_USERNAME` (or curl's `-u, --user`option), this vulnerability can be triggered. The name has to be at least512MB big in a 32bit system.Systems with 64 bit versions of the `size_t` type are not affected by thisissue. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8617 + +CVE-2016-8616 +Package: curl +Score: 3.9 (Low) +Description: When re-using a connection, curl was doing case insensitive comparisons of user name and password with the existing connections.This means that if an unused connection with proper credentials exists for a protocol that has connection-scoped credentials, an attacker can cause that connection to be reused if s/he knows the case-insensitive version of the correct password.We are not aware of any exploit of this flaw. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8616 + +CVE-2016-8615 +Package: curl +Score: 6.9 (Medium) +Description: If cookie state is written into a cookie jar file that is later read back and used for subsequent requests, a malicious HTTP server can inject new cookies for arbitrary domains into said cookie jar.The issue pertains to the function that loads cookies into memory, which reads the specified file into a fixed-size buffer in a line-by-line manner using the fgets() function. If an invocation of fgets() cannot read the whole line into the destination buffer due to it being too small, it truncates the output. This way, a very long cookie (name + value) sent by a malicious server would be stored in the file and subsequently that cookie could be read partially and crafted correctly, it could be treated as a different cookie for another server.We are not aware of any exploit of this flaw. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8615 + +CVE-2016-7795 +Package: systemd +Score: 4.9 (Medium) +Description: The manager_invoke_notify_message function in systemd 231 and earlier allows local users to cause a denial of service (assertion failure and PID 1 hang) via a zero-length message received over a notify socket. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7795 + +CVE-2016-7097 +Package: Kernel +Score: 3.6 (Low) +Description: The filesystem implementation in the Linux kernel through 4.8.2 preserves the setgid bit during a setxattr call, which allows local users to gain group privileges by leveraging the existence of a setgid program with restrictions on execute permissions. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7097 + +CVE-2016-6489 +Package: nettle +Score: 5.0 (Medium) +Description: The RSA and DSA decryption code in Nettle makes it easier for attackers to discover private keys via a cache side channel attack. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6489 + +CVE-2016-6480 +Package: Kernel +Score: 4.7 (Medium) +Description: Race condition in the ioctl_send_fib function in drivers/scsi/aacraid/commctrl.c in the Linux kernel through 4.7 allows local users to cause a denial of service (out-of-bounds access or system crash) by changing a certain size value, aka a "double fetch" vulnerability. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6480 + +CVE-2016-6354 +Package: flex +Score: 7.5 (High) +Description: Heap-based buffer overflow in the yy_get_next_buffer function in Flex before 2.6.1 might allow context-dependent attackers to cause a denial of service or possibly execute arbitrary code via vectors involving num_to_read. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6354 + +CVE-2016-6323 +Package: glibc +Score: 5.0 (Medium) +Description: The makecontext function in the GNU C Library (aka glibc or libc6) before 2.25 creates execution contexts incompatible with the unwinder on ARM EABI (32-bit) platforms, which might allow context-dependent attackers to cause a denial of service (hang), as demonstrated by applications compiled using gccgo, related to backtrace generation. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6323 + +CVE-2016-6321 +Package: Tar (Gnu) +Score: 5.0 (Medium) +Description: Directory traversal vulnerability in the safer_name_suffix function in GNU tar 1.14 through 1.29 might allow remote attackers to bypass an intended protection mechanism and write to arbitrary files via vectors related to improper sanitization of the file_name parameter, aka POINTYFEATHER. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6321 + +CVE-2016-6318 +Package: cracklib +Score: 7.5 (High) +Description: Stack-based buffer overflow in the FascistGecosUser function in lib/fascist.c in cracklib allows local users to cause a denial of service (application crash) or gain privileges via a long GECOS field, involving longbuffer. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6318 + +CVE-2016-6301 +Package: busybox +Score: 7.1 (High) +Description: The recv_and_process_client_pkt function in networking/ntpd.c in busybox allows remote attackers to cause a denial of service (CPU and bandwidth consumption) via a forged NTP packet, which triggers a communication loop. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6301 + +CVE-2016-6252 +Package: shadow +Score: 5.0 (Medium) +Description: Integer overflow in shadow 4.2.1 allows local users to gain privileges via crafted input to newuidmap. Patch: https://bugzilla.suse.com/attachment.cgi?id=684679&action=diff +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6252 + +CVE-2016-6185 +Package: Perl +Score: 5.0 (Medium) +Description: The XSLoader::load method in XSLoader in Perl does not properly locate .so files when called in a string eval, which might allow local users to execute arbitrary code via a Trojan horse library under the current working directory. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6185 + +CVE-2016-6170 +Package: bind +Score: 6.0 (Medium) +Description: DNS protocols were designed with the assumption that a certain amount of trust could be presumed between the operators of primary and secondary servers for a given zone. However, in current practice some organizations have scenarios which require them to accept zone data from sources that are not fully trusted (for example: providers of secondary name service). A party who is allowed to feed data into a zone (e.g. by AXFR, IXFR, or Dynamic DNS updates) can overwhelm the server which is accepting data by intentionally or accidentally exhausting that server's memory.https://kb.isc.org/article/AA-01390 +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6170 + +CVE-2016-6131 +Package: gcc +Score: 4.9 (Medium) +Description: A stack overflow vulnerability in the libiberty demangler was found, which causes its host application to crash on a tainted branch instruction. The problem is caused by a self-reference in a mangled type string that is "remembered" for later reference. This leads to an infinite recursion during the demangling. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6131 + +CVE-2016-5636 +Package: CPython +Score: 10.0 (High) +Description: Integer overflow in the get_data function in zipimport.c in CPython (aka Python) before 2.7.12, 3.x before 3.4.5, and 3.5.x before 3.5.2 allows remote attackers to have unspecified impact via a negative data size value, which triggers a heap-based buffer overflow. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5636 + +CVE-2016-5300 +Package: expat +Score: 7.8 (High) +Description: The XML parser in Expat does not use sufficient entropy for hash initialization, which allows context-dependent attackers to cause a denial of service (CPU consumption) via crafted identifiers in an XML document. NOTE: this vulnerability exists because of an incomplete fix for CVE-2012-0876. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5300 + +CVE-2016-5131 +Package: libxml2 +Score: 10.0 (High) +Description: Use-after-free vulnerability in libxml2 (used in chromium-browser) through 2.9.4, as used in Google Chrome before 52.0.2743.82, allows remote attackers to cause a denial of service or possibly have unspecified other impact via vectors related to the XPointer range-to function. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5131 + +CVE-2016-4658 +Package: libxml2 +Score: 10.0 (High) +Description: libxml2 in Apple iOS before 10, OS X before 10.12, tvOS before 10, and watchOS before 3 allows remote attackers to execute arbitrary code or cause a denial of service (memory corruption) via a crafted XML document. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4658 + +CVE-2016-4448 +Package: libxml2 +Score: 10.0 (High) +Description: Format string vulnerability in libxml2 before 2.9.4 allows attackers to have unspecified impact via format string specifiers in unknown vectors. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4448 + +CVE-2016-2775 +Package: bind +Score: 4.3 (Medium) +Description: ISC BIND 9.x before 9.9.9-P2, 9.10.x before 9.10.4-P2, and 9.11.x before 9.11.0b2, when lwresd or the named lwres option is enabled, allows remote attackers to cause a denial of service (daemon crash) via a long request that uses the lightweight resolver protocol. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2775 + +CVE-2016-2381 +Package: Perl +Score: 5.0 (Medium) +Description: Perl might allow context-dependent attackers to bypass the taint protection mechanism in a child process via duplicate environment variables in envp. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2381 + +CVE-2016-2183 +Package: OpenSSL +Score: 5.0 (Medium) +Description: The DES and Triple DES ciphers, as used in the TLS, SSH, and IPSec protocols and other protocols and products, have a birthday bound of approximately four billion blocks, which makes it easier for remote attackers to obtain cleartext data via a birthday attack against a long-duration encrypted session, as demonstrated by an HTTPS session using Triple DES in CBC mode, aka a "Sweet32" attack. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2183 + +CVE-2016-2147 +Package: busybox +Score: 5.0 (Medium) +Description: Integer overflow in the DHCP client (udhcpc) in BusyBox before 1.25.0 allows remote attackers to cause a denial of service (crash) via a malformed RFC1035-encoded domain name, which triggers an out-of-bounds heap write. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2147 + +CVE-2016-0800 +Package: OpenSSL +Score: 4.3 (Medium) +Description: The SSLv2 protocol, as used in OpenSSL before 1.0.1s and 1.0.2 before 1.0.2g and other products, requires a server to send a ServerVerify message before establishing that a client possesses certain plaintext RSA data, which makes it easier for remote attackers to decrypt TLS ciphertext data by leveraging a Bleichenbacher RSA padding oracle, aka a "DROWN" attack. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0800 + +CVE-2016-0718 +Package: expat +Score: 7.5 (High) +Description: Expat allows context-dependent attackers to cause a denial of service (crash) or possibly execute arbitrary code via a malformed input document, which triggers a buffer overflow. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0718 + +CVE-2016-0634 +Package: bash +Score: 5.0 (Medium) +Description: A vulnerability was found in a way bash expands the $HOSTNAME. Injecting the hostname with malicious code would cause it to run each time bash expanded \h in the prompt string. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0634 + +CVE-2015-9019 +Package: libxslt-native +Score: 5.0 (Medium) +Description: In libxslt 1.1.29 and earlier, the EXSLT math.random function was not initialized with a random seed during startup, which could cause usage of this function to produce predictable outputs +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-9019 + +CVE-2015-5224 +Package: util-linux +Score: 7.5 (High) +Description: The mkostemp function in login-utils in util-linux when used incorrectly allows remote attackers to cause file name collision and possibly other attacks. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5224 + +CVE-2014-9365 +Package: python +Score: 5.8 (Medium) +Description: The HTTP clients in the (1) httplib, (2) urllib, (3) urllib2, and (4) xmlrpclib libraries in CPython (aka Python) 2.x before 2.7.9 and 3.x before 3.4.3, when accessing an HTTPS URL, do not (a) check the certificate against a trust store or verify that the server hostname matches a domain name in the subject's (b) Common Name or (c) subjectAltName field of the X.509 certificate, which allows man-in-the-middle attackers to spoof SSL servers via an arbitrary valid certificate. +Ref: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9365 diff --git a/doc/gen_known_issues.py b/doc/gen_known_issues.py new file mode 100644 index 0000000..f926f9f --- /dev/null +++ b/doc/gen_known_issues.py @@ -0,0 +1,122 @@ +#!/usr/bin/python + +#------------------------------------------------------------------------------ +# +# This script generates an XML file with a table with issues in Jira. See the +# variable 'conditions' for query details. It is used bu the make system in +# the generation of the release notes. +# +# The result is printed to STDOUT. +# +# It is possible to override the generation. If there is a file named +# jiraissues_override.xml in the current directory, then that file will be +# printed instead. This mechanism can be used if the table needs manual +# modifications. +# +#------------------------------------------------------------------------------ + +from subprocess import check_output +import json, re, datetime +import time + +try: + with open("book-enea-linux-release-info/doc/jiraissues_override.xml") as f: + print f.read(), + + exit(0) + +except SystemExit: + # Printing the override file was successful. Exception raised by + # the exit() call in the try block. + exit(0) + +except IOError: + # Accessing the override file failed. Assume that it does not exist + # and proceed with normal operation. + pass + +jd = json.JSONDecoder() + +def jira_query(query): + jira_url = "http://eneaissues.enea.com" + fields = "key,summary" + query = query.replace(" ", "+") + + cmd = ["curl", + "-s", + "-D-", + "-u", "rest_reader:jira123", + "-X", "GET", + "-H", "Content-Type: application/json", + jira_url + "/rest/api/2/search?jql=" + query + "&fields=" + fields + ] + + tmp = check_output(cmd).splitlines() + tmp = jd.decode(tmp[-1]) + return tmp["issues"] + +conditions = ("project=LXCR", + "issueType=bug", + "resolution=Unresolved", + 'affectedversion="EL7_Std_ARM"' + ) + +bugs = [] + +time_str = time.strftime("%Y-%m-%d, %H:%M:%S (%Z)") + +for issue in jira_query(" and ".join(conditions)): + bugs.append((issue["key"], issue["fields"]["summary"])) + +print '' +print '' +print '
' +print ' Extracted from Jira' +print +print ' ' +print ' In the table below are the issue(s) that currently affect this specific release. Use the ticket reference provided for each issue, to look up further information if needed. Extracted at %s.' % time_str +print ' ' +print +print ' Jira query: (%s)' % "\n and ".join(conditions) +print +print ' ' +print ' ' +print ' ' +print +print ' ' +print +print ' ' +print ' ' +print ' Summary' +print +print ' Enea Ref' +print ' ' +print ' ' +print +print ' ', + +if bugs: + for bug in sorted(bugs): + print + print ' ' + print ' %s' % bug[1] + print + print ' %s' % bug[0] + print ' ' + +else: + print ' ' + print ' ' + print ' No issues found' + print ' ' + print ' ' + +print ' ' +print ' ' +print ' ' + +if bugs: + print ' Number of open bugs: %d' % len(bugs) + +print '
' diff --git a/doc/gen_pkgdiff.py b/doc/gen_pkgdiff.py new file mode 100644 index 0000000..7697469 --- /dev/null +++ b/doc/gen_pkgdiff.py @@ -0,0 +1,237 @@ +#!/bin/python +############################################################################### +# +# Diff two licenses.xml files. There are two cases: +# * Two arguments +# In this case, the two arguments are the two files to compare +# +# * No arguments +# In this casem the license files are specified by the following +# parameters in pardoc-distro.xml: +# - prev_baseline +# - prev_lic_file +# - new_lic_file +# +# The result is presented as three sets: +# 1) Removed +# Packages present in the previous file, but not in the new. +# +# 2) Added +# Packages present in the new file, but not in the previous. +# +# 3) Changed +# Packages present in both files, but with different versions. If more than +# one version of a package is included, then all difference in the version +# set causes the package to be listed as changed. +# E.g. +# (v1) -> (v2) +# (v1, v2) -> (v2, v3) +# +# Note that packages with the unchanged version is not listed. +# +# The output is presented as XML code printed to stdout. A summary is printed +# to STDERR at the end. +# +############################################################################### + +import os +import sys +import subprocess as sp +import xml.etree.ElementTree as ET +import re + +repo_root = sp.check_output(["git", "rev-parse", "--show-toplevel"]).rstrip() +script_root = os.path.dirname(os.path.realpath(__file__)) +param_file = os.path.join(script_root, "docsrc_common/pardoc-distro.xml") + +def get_param(param_name): + pat = re.compile("%s.*>([^<>]+)= 0: + s = sp.check_output(("git", "show", file_spec)) + else: + f = open(file_spec) + s = f.read() + f.close() + del f + + # ET can't handle some special quotes + for old, new in (("”", """), ("”", """)): + s = s.replace(old, new) + + root = ET.fromstring(s) + + for node in root.iter("section"): + if "id" in node.attrib: + if node.attrib["id"] == "licenses_packages": + break + + else: + return None + + for node in node: + if node.tag == "informaltable": + break + else: + return None + + tab = node[0][-1] + + plist = dict() + for row in tab: + pname = row[0].text + pver = row[1].text + if not pname in plist: + plist[pname] = set() + + plist[pname].add(pver) + + return set(plist), plist + +#---------------------------------------- + + +if len(sys.argv) == 3: + new_file, prev_file = sys.argv[1:3] + +elif len(sys.argv) == 1: + prev_baseline = get_param("prev_baseline") + prev_lic_file = get_param("prev_lic_file") + new_lic_file = get_param("new_lic_file") + + if not (prev_baseline and prev_lic_file and new_lic_file): + print '' + print '' + print '
' + print ' Changes in the Set of Provided Package' + print ' ' + print ' N/A. No previous baseline defined.' + print ' ' + print '
' + exit(0) + + new_file = os.path.relpath(os.path.join(repo_root, new_lic_file)) + prev_file = "%s:%s" % (prev_baseline, prev_lic_file) + +else: + sys.stderr.write("Usage:\n") + sys.stderr.write(" 1) %s\n" % sys.argv[0]) + sys.stderr.write(" 2) %s " % sys.argv[0]) + sys.stderr.write(" \n") + sys.stderr.write("\n") + sys.stderr.write("In case 1, the files are specified using the following\n") + sys.stderr.write("parameters in pardoc-distro.xml:\n") + sys.stderr.write(" - prev_baseline\n") + sys.stderr.write(" - prev_lic_file\n") + sys.stderr.write(" - new_lic_file\n") + exit() + +sys.stderr.write("New license file : %s\n" % new_file) +sys.stderr.write("Prev license file : %s\n" % prev_file) + +old_pset, old_pdict = get_pkgs(prev_file) +new_pset, new_pdict = get_pkgs(new_file) + +added = new_pset - old_pset # Set subtraction +removed = old_pset - new_pset # Set subtraction +common = old_pset & new_pset +changed = [ p for p in common if old_pdict[p] != new_pdict[p] ] + +print '' +print '' +print '
' +print ' Changes in the Set of Provided Package' +print ' ' +print ' This section describes changes in the provided packages.' +print ' ' +print '
' +print ' Added Packages' +print ' The following packages were added to this Enea Linux release:' +print ' ' +print ' ' +print ' ' +print ' ' +print ' Package' +print ' Version(s)' +print ' ' +print ' ' +print ' ' + +for p in sorted(list(added)): + print ' ' + print ' %s' % p + print ' %s' % ", ".join(sorted(new_pdict[p])) + print ' ' + +print ' ' +print ' ' +print ' ' +print '
' + +print '
' +print ' Removed Packages' +print ' The following packages were removed from this Enea Linux release:' +print ' ' +print ' ' +print ' ' +print ' ' +print ' Package' +print ' Version(s)' +print ' ' +print ' ' +print ' ' +for p in sorted(list(removed)): + print ' ' + print ' %s' % p + print ' %s' % ", ".join(sorted(old_pdict[p])) + print ' ' +print ' ' +print ' ' +print ' ' +print '
' + +print '
' +print ' Changed Package Versions' +print ' The following packages were updated to a newer version in this Enea Linux release:' +print ' ' +print ' ' +print ' ' +print ' ' +print ' Package' +print ' Previous Version(s)' +print ' New Version(s)' +print ' ' +print ' ' +print ' ' +for p in sorted(list(changed)): + print ' ' + print ' %s' % p + print ' %s' % ", ".join(sorted(old_pdict[p])) + print ' %s' % ", ".join(sorted(new_pdict[p])) + print ' ' + +print ' ' +print ' ' +print ' ' +print '
' +print '
' + +sys.stderr.write("Package Summary:\n") +sys.stderr.write(" Prev file : %3d\n" % len(old_pset)) +sys.stderr.write(" New file : %3d\n" % len(new_pset)) +sys.stderr.write(" Added : %3d\n" % len(added)) +sys.stderr.write(" Removed : %3d\n" % len(removed)) +sys.stderr.write(" Changed : %3d\n" % len(changed)) +sys.stderr.write(" Unchanged : %3d\n" % (len(common) - len(changed))) +sys.stderr.write("Done\n") diff --git a/doc/init.mk b/doc/init.mk new file mode 100644 index 0000000..7dc5efd --- /dev/null +++ b/doc/init.mk @@ -0,0 +1,100 @@ +# Makefile including this should first set nondefault BRANCH_DOCENEACOMMON before including it +# and should have targets init: s_docbuild and optional initcommon: s_doceneacommon +# Typically let doc: depend on init and initcommon inside Makefile +# Manually optionally set GLOBALTMPCLONEROOT to yes or to a parent dir for tmpcommon +# This init.mk file ver +# R1.00/2016-04-29 +# R2.00/2017-03-30 changed linux/documentation.git and it's old branch to linux/el_releases-common.git and it's new branch + +ifeq ($(VERBOSE),yes) +VERB := +else +VERB := @ +endif + +#Git repositories to be cloned +REPO_DOCBUILD := build/docbuild.git +NAME_DOCBUILD := docbuild +REPO_DOCENEACOMMON := linux/el_releases-common.git +NAME_DOCENEACOMMON := doceneacommon + +# Set nondefault BRANCH_DOCENEACOMMON in Makefile +BRANCH_DOCENEACOMMON ?= master +# Separate clones of el_releases-common.git with different branches, needed if cloned globally with risk that different distros can be at same place +ifneq ($(BRANCH_DOCENEACOMMON),master) +NAME_DOCENEACOMMON := doceneacommon_$(BRANCH_DOCENEACOMMON) +endif + +GLOBALTMPCLONEROOT = ../../tmpcommon +ifeq ($(BOOK_GLOBALCLONEROOT),) + TMPCLONEROOT := tmpcommon +else + ifeq ($(BOOK_GLOBALCLONEROOT),yes) + TMPCLONEROOT := $(GLOBALTMPCLONEROOT) + else + TMPCLONEROOT := $(BOOK_GLOBALCLONEROOT)/tmpcommon + endif +endif +DIR_TMPCLONEROOT := $(dir $(TMPCLONEROOT)) +ifeq ($(wildcard $(DIR_TMPCLONEROOT)),) +$(error Parent of selected clone root does not exist ($(DIR_TMPCLONEROOT))) +endif + +.PHONY: initbuild initcommon usageinit cleaninit +# Keep usageinit as default target here to avoid init by mistake + +usageinit: docusage + @echo 'make initbuild Create s_docbuild and if not exists, clone docbuild.git' + @echo 'make initcommon Create s_doceneacommon and if not exists, clone el_releases-common.git' + @echo ' Default clone in tmpcommon' + @echo ' BOOK_GLOBALCLONEROOT=yes Clone in $(GLOBALTMPCLONEROOT)' + @echo ' BOOK_GLOBALCLONEROOT=parentdir Clone in parentdir/tmpcommon' + @echo ' Default branch for el_releases-common.git is master' + @echo ' BRANCH_DOCENEACOMMON=... If another branch, Makefile should set this' + @echo 'make pullbuild git pull in s_docbuild' + @echo 'make pullcommon git pull in s_doceneacommon' + @echo 'make cleaninit Delete all s_* symlinks and local tmpcommon/' + + +# MOVE these to Makefile and set also non-default BRANCH_DOCENEACOMMON in Makefile +initbuild: s_docbuild +initcommon: s_doceneacommon +pullbuild: + $(VERB)if [ ! -d s_docbuild ]; then echo "ERROR: No s_docbuild exists?" ; exit 10 ; fi + $(VERB)cd s_docbuild ; git pull +pullcommon: + $(VERB)if [ ! -d s_doceneacommon ]; then echo "ERROR: No s_doceneacommon exists?" ; exit 10 ; fi + $(VERB)cd s_doceneacommon ; git pull + +s_docbuild: $(TMPCLONEROOT)/$(NAME_DOCBUILD) + $(VERB)rm s_docbuild 2>/dev/null; ln -s $(TMPCLONEROOT)/$(NAME_DOCBUILD) s_docbuild + +s_doceneacommon: $(TMPCLONEROOT)/$(NAME_DOCENEACOMMON) + $(VERB)rm s_doceneacommon 2>/dev/null; ln -s $(TMPCLONEROOT)/$(NAME_DOCENEACOMMON) s_doceneacommon + +$(TMPCLONEROOT)/$(NAME_DOCBUILD): + $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi + $(VERB)if [ -d "$(TMPCLONEROOT)/$(NAME_DOCBUILD)" ] ; then \ + echo "Already exists $(TMPCLONEROOT)/$(NAME_DOCBUILD)" ; \ + echo "Doing git pull instead"; cd $(TMPCLONEROOT)/$(NAME_DOCBUILD) ; git pull ; \ + else \ + echo "Cloning $(REPO_DOCBUILD) in $(TMPCLONEROOT)" ; \ + cd "$(TMPCLONEROOT)" ; \ + git clone -b master git@git.enea.se:$(REPO_DOCBUILD) $(NAME_DOCBUILD) ; \ + fi + +$(TMPCLONEROOT)/$(NAME_DOCENEACOMMON): + $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi + $(VERB)if [ -d "$(TMPCLONEROOT)/$(NAME_DOCENEACOMMON)" ] ; then \ + echo "Already exists $(TMPCLONEROOT)/$(NAME_DOCENEACOMMON)" ; \ + echo "Doing git pull instead"; cd $(TMPCLONEROOT)/$(NAME_DOCENEACOMMON) ; git pull ; \ + else \ + echo "Cloning $(REPO_DOCENEACOMMON) in $(TMPCLONEROOT) as $(NAME_DOCENEACOMMON)" ; \ + cd "$(TMPCLONEROOT)"; \ + git clone -b $(BRANCH_DOCENEACOMMON) git@git.enea.se:$(REPO_DOCENEACOMMON) $(NAME_DOCENEACOMMON) ; \ + fi + +cleaninit: + @echo "Clean only local tmpcommon/ and all local temporary symlinks s_docbuild s_targets etc." + $(VERB)rm -rf tmpcommon 2>/dev/null ; true + $(VERB)rm s_* 2>/dev/null ; true diff --git a/doc/initbuildboot.sh b/doc/initbuildboot.sh new file mode 100644 index 0000000..37b691f --- /dev/null +++ b/doc/initbuildboot.sh @@ -0,0 +1,115 @@ +#!/bin/sh +VER="R0.07" +# R0.07/lejo 2017-01-20 Add -readmebasedir to the README files from the manifest instead of s_targets + +BBTEMPLATE= +BBXML= +BB_TARGETREADME_BASE= + +USAGE="`basename $0` -xml buildbootxml-to-create -template templatexml-file -readmebasedir targetreadmebase ($VER) + Currently only supports sequence types Build-command: and Boot-command: + Both files should have path book-*release-info/doc/ + Creates the XML file from the template, inserting build/boot commands + from the various s_manifests/el_manifest-XXX/XXXtargetXXX/README files + at the place in template with >SCRIPT_INCLUDES_BUILD_BOOT_SECTIONS_HERE< + ignoring rest of template + The code tries to fold too long lines, but this is not perfect. Best would + be if the command lines already in README are short enough, e.g. by + using short variables, which work both on shell and uboot command lines" + +while echo "x$1" | egrep '^x-' >/dev/null 2>&1 +do + OPT="$1" ; shift + if [ "$OPT" = "--help" -o "$OPT" = "-h" -o "$OPT" = "-help" ] ; then echo "$USAGE" ; exit ; fi + if [ "$OPT" = "-xml" ] ; then BBXML="$1" ; shift; fi + if [ "$OPT" = "-template" ] ; then BBTEMPLATE="$1" ; shift; fi + if [ "$OPT" = "-readmebasedir" ] ; then BB_TARGETREADME_BASE="$1" ; shift; fi +done +if [ "$BBTEMPLATE" = "" ]; then echo "ERROR: Missing option -template templatefile"; exit ; fi +if [ "$BBXML" = "" ]; then echo "ERROR: Missing option -xml buildbootxml-to-create"; exit ; fi +if [ ! -f "$BBTEMPLATE" ]; then echo "ERROR: Missing templatefile '$BBTEMPLATE'"; exit; fi +if [ ! -d "`dirname \"$BBXML\"`" ]; then echo "ERROR: Missing parent directory for '$BBXML'"; exit ; fi +if [ ! -d "$BB_TARGETREADME_BASE" ]; then echo "ERROR: Missing basedir for README files '$BB_TARGETREADME_BASE'"; exit; fi + +echo "`basename $0` Creating $BBXML from" +TARGETREADMES=`cd $BB_TARGETREADME_BASE ; ls -d */README | tr '\n' ' '` +echo " $TARGETREADMES" + +# README file formats: +# a) Sequence starts: ___ XXXX:yyyy or ___ XXXX:yyyy conffile +# where XXXX is a type, yyyy is text to be in title +# b) Inside sequence: ___ END ends the sequence (ignore rest of line) +# c) Inside sequence: # Documentation line +# d) Inside sequence: Anything else is command or config lines +# Conv.to XML: ">" "<" "&" and put all inside +# *) Anywhere ____xxxx Leading 4 underlines or more, always ignored +# unless one of the recognized XXXX +# *) Anywhere outside sequence, ignore all +# *) There can be multiple of each type of sequence in each README file +# with different yyyy + + +cat $BBTEMPLATE | awk ' + />SCRIPT_INCLUDES_BUILD_BOOT_SECTIONS_HERE$BBXML + + +# Long command lines: The awk code below breaks too long lines, but this is not perfect. +extractcmds_filter() { + echo " " | tr -d '\n' + sed '/^___/d;s/\&/\&/g' | sed 's//\>/g;/^$/d' | \ + awk 'BEGIN { MAX=90; } + ( length($0) > MAX ) { + LINE=$0; + while (length(LINE) > MAX) { + if (index(LINE," ") == 0 ) { + print "ERROR: PROBLEM: No space in too long line:" LINE > "/dev/stderr"; + print $LINE; + next; + } + i=MAX; while ( substr(LINE,i,1) != " " ) { i=i-1; if (i==0) {break;} } + print substr(LINE,0,i) "\\"; + REST=substr(LINE,i+1); + if ( length(REST) == 0 ) { next ; } + LINE=" " REST; + } + if ( length(LINE) > 0 ) { print LINE; next ; } + } + { print;}' + echo "" +} + +extractcmds_for_type() { # target/README BOOTorBUILD + README=$BB_TARGETREADME_BASE/"$1" + CMDTYPE="$2" + COMMANDSFOR=`egrep "___$CMDTYPE:" $README` + for CMDS in $COMMANDSFOR + do + cmdsfor=`echo "$CMDS" | sed 's/[^:]*://'` +#-- echo " $CMDTYPE for $cmdsfor" + cat "$README" | sed -n "/$COMMANDSFOR/,/___END/p" | extractcmds_filter + done +} + +for targetreadme in $TARGETREADMES +do + TARGET=`dirname $targetreadme` + echo "" >>$BBXML + echo "
" >>$BBXML + echo " Target $TARGET" >>$BBXML + echo " NOTE: DO NOT EDIT THIS GENERATED FILE! Only edit the template file." >>$BBXML + echo "
" >>$BBXML + echo " Build Instructions for $TARGET" >>$BBXML + extractcmds_for_type $targetreadme Build-command >>$BBXML + echo "
" >>$BBXML + echo "" >>$BBXML + echo "
" >>$BBXML + echo " Boot Instructions for $TARGET" >>$BBXML + extractcmds_for_type $targetreadme Boot-command >>$BBXML + echo "
" >>$BBXML + echo "
" >>$BBXML +done + +echo "" >>$BBXML +echo "Ready created $BBXML" diff --git a/doc/manifest_conf.mk b/doc/manifest_conf.mk new file mode 100644 index 0000000..3bab6f4 --- /dev/null +++ b/doc/manifest_conf.mk @@ -0,0 +1,7 @@ +# To be included in Makefile +# NOTE: MANIFESTHASH needs to be changed to final release tag in format refs/tags/ELnnn before a release +# The values are shown in the release info +# The manifest is used to fetch information into the release info from the distro files +MANIFESTHASH ?= sumo +MANIFESTURL := git@git.enea.com:linux/manifests/el_manifests-rt.git +PROFILE_NAME := rt -- cgit v1.2.3-54-g00ecf