From b26854f76b2fa8d44937bdae0664b1a24b2c7e78 Mon Sep 17 00:00:00 2001 From: Thomas Lundström Date: Wed, 22 Jun 2016 19:24:31 +0200 Subject: Initial commit --- doc/Makefile | 321 ++++++++++++++ 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 | 14 + doc/book-enea-linux-open-source/doc/licenses.xml | 327 ++++++++++++++ doc/book-enea-linux-open-source/swcomp.mk | 10 + .../doc/about_release.xml | 469 +++++++++++++++++++++ doc/book-enea-linux-release-info/doc/book.xml | 18 + .../doc/build_boot_template.xml | 26 ++ .../doc/getting_enea_linux.xml | 103 +++++ .../doc/known_bugs_and_limitations.xml | 453 ++++++++++++++++++++ .../doc/main_changes.xml | 50 +++ .../doc/prerequisites.xml | 49 +++ doc/book-enea-linux-release-info/swcomp.mk | 10 + doc/docsrc_common/pardoc-distro.xml | 44 ++ doc/gen_known_issues.py | 91 ++++ doc/gen_pkgdiff.py | 234 ++++++++++ doc/init.mk | 98 +++++ doc/initbuildboot.sh | 111 +++++ doc/manifest_conf.mk | 7 + 20 files changed, 2451 insertions(+) create mode 100644 doc/Makefile 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/getting_enea_linux.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/swcomp.mk create mode 100644 doc/docsrc_common/pardoc-distro.xml 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..4c81dfc --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,321 @@ +#Path to this subsystem's root directory +SUBSYSROOT := $(shell pwd) + +# NOTE: MANIFESTHASH in manifest_conf.mk needs to be updated with final release tag before a release +# The manifest_conf.mk defines MANIFESTHASH and MANIFESTURL and PROFILE_NAME +include manifest_conf.mk + +# An alternative is to clone the manifest repository and extract the list of target manifest files from that +# We need all to get all README, but only first in alphabetic list is used to extract info from poky/ +TARGETDEFAULTXMLS := p2041rdb/default.xml + + +# ***************** 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 + +# ****************** SUPPORT FOR TARGETS *************************** +PATH_TARGETS = $(SUBSYSROOT)/s_targets +#Git repositories to be cloned +NAME_TARGETS := targets +#Path to the directory under which repos shall be cloned. +DOCBASEDIR=$(shell pwd) +REPODIR=$(DOCBASEDIR)/.. +TMPCLONEROOT_TARGETS := $(TMPCLONEROOT)/$(NAME_TARGETS) + + +# ******************* 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 + + +# ----------------------------------------------------- +#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-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 inittargets initpardoc initbuildboot dist + + +docusage: + @echo 'make docusage #Shows this help text' + @echo ' DOCBOOK_TOOLS_VERSIONS=yes #Displays DocBook tools versions in this machine' + @echo 'make doc #Builds the userdoc, does autoinit if needed' + @echo 'make dist BOOK_DIST_DIR=xx/doc #Builds all and copies results to BOOK_DIST_DIR' + @echo ' #Does not work with DOCBOOK_TO_BOOKDIR or BOOK_BUILD_DIR' + @echo ' #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 inittargets #Init s_targets using repo tool Targets in this distro with poky' + @echo 'make initpardoc #Init s_docsrc_common using info from poky/' + @echo 'make initbuildboot #Init build_boot chapter from READMEs and template in release info' + @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' + @echo 'make pullbuild #git pull in s_docbuild' + @echo 'make pulltargets #git pull in s_targets. You need also initpardoc initbuildboot' + @echo 'make clean #Clean. Also clean 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 ' 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 inittargets initpardoc initbuildboot initpkgdiff initissues +pullall: pullbuild pulltargets + +# 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_MAJOR=`egrep '"EneaLinux_DISTRO_VERSION_MAJOR"' s_docsrc_common/pardoc-distro.xml | sed 's/.*//;s/<\/phrase>.*//'` ; \ + DISTRO_VERSION_MINOR=`egrep '"EneaLinux_DISTRO_VERSION_MINOR"' s_docsrc_common/pardoc-distro.xml | sed 's/.*//;s/<\/phrase>.*//'` ; \ + BOOKVER="Profile $(PROFILE_NAME)-$$DISTRO_VERSION_MAJOR$$DISTRO_VERSION_MINOR" ; \ + 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; \ + 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_* and generated build_boot chapter xml +clean: cleaninit cleanbuildboot cleanpkgdiff cleanissues + $(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 *************************** +inittargets: s_targets +pulltargets: + $(VERB)if [ ! -d s_targets ]; then echo "ERROR: No s_targets exists?" ; exit 10 ; fi + $(VERB)cd s_targets; for targ in *; do ( cd $targ ; git pull ) + + +# ----------------------------------------- + +# Use repo to auto-clone each target separately - VERY LARGE if there are many targets (5 targets => about 1.3 Gytes) + +s_targets: $(TMPCLONEROOT_TARGETS) + $(VERB)rm s_targets 2>/dev/null; ln -s $(TMPCLONEROOT_TARGETS) s_targets + + +$(TMPCLONEROOT_TARGETS): + $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi + $(VERB)if [ ! -d $(TMPCLONEROOT_TARGETS) ]; then mkdir -p $(TMPCLONEROOT_TARGETS) ; fi + @echo "**** Cloning all targets using repo tool into $(TMPCLONEROOT_TARGETS)" + @echo "TARGETDEFAULTXMLS is <$(TARGETDEFAULTXMLS)>" + $(VERB)for target_default_xml in $(TARGETDEFAULTXMLS); \ + do \ + TARGDIR=$(TMPCLONEROOT_TARGETS)/`dirname $$target_default_xml` ; \ + echo "TARGDIR=<$$TARGDIR>" ; \ + if [ ! -d $$TARGDIR ]; then mkdir -p $$TARGDIR ; fi ; \ + ( cd $$TARGDIR ; \ + echo "*** Doing repo init -u $(MANIFESTURL) -b $(MANIFESTHASH) -m $$target_default_xml ; repo sync"; \ + repo init -u $(MANIFESTURL) -b $(MANIFESTHASH) -m $$target_default_xml ; repo sync ; \ + ) ; \ + done + +# **************************************************************************** +# ******************** 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: + $(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): s_targets + $(VERB)if [ ! -d "$(TMPCLONEROOT)" ] ; then mkdir -p "$(TMPCLONEROOT)" ; fi + $(VERB)if [ ! -d $(TMPCLONEROOT_DOCSRC_COMMON) ]; then mkdir -p $(TMPCLONEROOT_DOCSRC_COMMON) ; fi + @echo "**** Copy and patch docsrc_common/ files to $(TMPCLONEROOT_DOCSRC_COMMON)" + @echo "*** Add parameters from first target's enea.conf and add manifest parameters" + $(VERB)FIRSTTARGET=`ls -1 s_targets/ | head -1`; \ + ENEACONF=s_targets/$$FIRSTTARGET/poky/meta-el-common/conf/distro/enea.conf ; \ + DISTRO_VERSION_MAJOR=`egrep '^DISTRO_VERSION_MAJOR' $$ENEACONF | sed 's/^[^"]*"//;s/".*//'` ; \ + DISTRO_VERSION_MINOR=`egrep '^DISTRO_VERSION_MINOR' $$ENEACONF | sed 's/^[^"]*"//;s/".*//'` ; \ + cat docsrc_common/pardoc-distro.xml | sed '/<\/section>/d' | \ + sed '/$(TMPPARDOC) ; \ + echo "$$DISTRO_VERSION_MAJOR" >>$(TMPPARDOC) ; \ + echo "$$DISTRO_VERSION_MINOR" >>$(TMPPARDOC) ; \ + echo "$(PROFILE_NAME)" >>$(TMPPARDOC) ; \ + echo "$(MANIFESTURL)" >>$(TMPPARDOC) ; \ + echo "$(MANIFESTHASH)" >>$(TMPPARDOC) ; \ + echo "" >>$(TMPPARDOC) + +# **************************************************************************** +# ***** Create XML chapter with build/boot commands from all README files in s_targets + +initbuildboot: $(BUILDBOOT_XML) + +cleanbuildboot: + $(VERB)rm -f $(BUILDBOOT_XML) 2>/dev/null + + +$(BUILDBOOT_XML): s_targets $(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) ; \ + else \ + echo "ERROR: Missing $$INITBB_CMD, can not create $(BUILDBOOT_XML)"; exit 10; \ + fi + +# **************************************************************************** +# ***** Create Package DIFF XML section + +initpkgdiff: $(PKGDIFF_GEN_XML) + +cleanpkgdiff: + $(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: + $(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) + +# **************************************************************************** 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..f2f863f --- /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..d5da88e --- /dev/null +++ b/doc/book-enea-linux-open-source/doc/book.xml @@ -0,0 +1,14 @@ + + +]> + + <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..d9d138c --- /dev/null +++ b/doc/book-enea-linux-open-source/doc/licenses.xml @@ -0,0 +1,327 @@ + + + + Packages and Licenses +
+ + Packages + + + + + Invalid example! + + + + + + + + + + Package Name + Version + Description + License + + + + + + X + x.y + - + X + + + + +
+
+ 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. + +
+ + +
+
+ License statements for packages with PD license + + This section contains license texts extracted for packages that are declared + to be entirely or partly public domain. + +
+ byacc, version 20140422 +
+ Text 1 + +Upstream source http://dickey.his.com/byacc/byacc.html + +Berkeley Yacc is in the public domain; changes made to it by the current +maintainer are likewise unrestricted. That applies to most of the files. +A few files (currently those related to autoconf scripting) have other +licenses as noted here. + +Current byacc upstream maintainer: Thomas Dickey <dickey@invisible-island.net> + +Public domain notice and no warranty: +------------------------------------------------------------------------------- + Berkeley Yacc is an LALR(1) parser generator. Berkeley Yacc has been made +as compatible as possible with AT&T Yacc. Berkeley Yacc can accept any input +specification that conforms to the AT&T Yacc documentation. Specifications +that take advantage of undocumented features of AT&T Yacc will probably be +rejected. + + Berkeley Yacc is distributed with no warranty whatever. The code +is certain to contain errors. Neither the author nor any contributor +takes responsibility for any consequences of its use. + + Berkeley Yacc is in the public domain. The data structures and algorithms +used in Berkeley Yacc are all either taken from documents available to the +general public or are inventions of the author. Anyone may freely distribute +source or binary forms of Berkeley Yacc whether unchanged or modified. +Distributers may charge whatever fees they can obtain for Berkeley Yacc. +Programs generated by Berkeley Yacc may be distributed freely. + + Please report bugs to + + robert.corbett@eng.Sun.COM + +Include a small example if possible. Please include the banner string from +skeleton.c with the bug report. Do not expect rapid responses. +------------------------------------------------------------------------------- + +Files: aclocal.m4 +Licence: other-BSD +Copyright: 2004-2011,2012 by Thomas E. Dickey + 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, distribute with modifications, 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 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 ABOVE 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. + + Except as contained in this notice, the name(s) of the above copyright + holders shall not be used in advertising or otherwise to promote the + sale, use or other dealings in this Software without prior written + authorization. + +Files: install-sh +Copyright: 1994 X Consortium +Licence: other-BSD + 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 + X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- + TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of the X Consortium shall not + be used in advertising or otherwise to promote the sale, use or other deal- + ings in this Software without prior written authorization from the X Consor- + tium. + + FSF changes to this file are in the public domain. + + Calling this script install-sh is preferred over install.sh, to prevent + `make' implicit rules from creating a file called install from it + when there is no Makefile. + + This script is compatible with the BSD install script, but was written + from scratch. It can only install one file at a time, a restriction + shared with many OS's install programs. + +Files: debian/* +Copyright: 2012 Thomas E. Dickey +Licence: other-BSD + 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 the above listed + copyright holder(s) not be used in advertising or publicity pertaining + to distribution of the software without specific, written prior + permission. + + THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD + TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) 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. + +On Debian systems, the complete text of the GNU General +Public License can be found in '/usr/share/common-licenses/GPL-2' + +
+
+
+
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..d978b48 --- /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 +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..15d676c --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/about_release.xml @@ -0,0 +1,469 @@ + + + + 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 distribution using the branch .INFO Yocto distro autopicked + from poky.ent as DISTRO_NAME_NO_CAP + +
+ Provided Contents + + + + + + Item + + + + + + Source code, recipes, scripts, etc for building the + distro and SDKs. See . + + + + Documentation. See . + + + + Pre-built binaries (kernel image, dtb & rootfs) + + + + Pre-built packages (RPM) + + + + Eclipse executable plus development tools for command line + and Eclipse + + + + +
+ +
+ Supported Targets + + + + + + + + + + + + Target + + Architecture + + Specification + + + + + + P2041RDB + + Power, e500mc + + See link + to NXP's datasheet + + + + + + FIXME should autocreate a list of targets, hopefully from + the generated README file, by using MAKEFILE to update pardoc-distro + AND/OR also auto-create an XML file to include here with description text + for each target etc.. +
+ +
+ Supported Host Environment + + + + Ubuntu 14.04 LTS, 64-bitwas + EneaLinux_HOST_VER + + +
+ +
+ Supported Versions + + + + + + Item + + Version + + + + + + Yocto + + ()INFO: Auto-fetched + from poky.ent via pardoc-distro.xml + + + + Poky source + + INFO: Auto-fetched from + poky.ent via pardoc-distro.xml + + + + GCC version + + 5.3was EneaLinux_GCC_VER Not in poky.ent + + + + + Linux kernel versionwas EneaLinux_KERNEL_VER Not in + poky.ent + + 3.12 (P2041RDB & LS1021a-IoT)4.4 + (QEmu targets) + + + + Eclipse + + 4.5 (Mars)was Eclipse_VER and was Eclipse_NAME Not + in poky.ent + + + + Packages + + See + + + + +
+ +
+ Provided Packages + + + + + + + + + + Type of Packages and Provider + + Reference + + + + + + Packages in Enea Linux images + + See the Enea Linux Open Source + Report + + + + Tools in the Eclipse tarball provided with Enea + Linux + + See the Enea Linux Eclipse Open Source + Report + + + + Packages provided by Yocto + + See the Yocto "Release Notes" + + + + +
+ +
+ Provided Toolchain/s (SDK) + + The SDK contains toolchains supporting cross-compilation of + applications for the targets on an x86_64 host. See the Enea Linux Application Development + Guide for information on how to build and install a + toolchain. +
+ +
+ Supported Drivers + + + + + + + + + + Driver + + P2041RDB + + + + + + Ethernet + + X + + + + I2C + + X + + + + SPI + + X + + + + PCI Express + + X + + + + USB + + X + + + + Flash + + X + + + + SD/SDHC/SDXC + + X + + + + RTC + + X + + + + +
+ +
+ Provided Documentation + + The following Enea Linux manuals are available: + + + + README.htm - top page of the documentationFIXME Needs to + be fixed (= created and added to make dist). OR remove this + line? + + + + README - text files describing various details like build- and + boot-commands - the commands are also seen in . + + + + Enea Linux Release + Information (this document) + + + + Enea Linux Open Source + Report + + + + Enea Linux Eclipse Open Source + Report + + + + Enea Linux Platforms Development + Guide - Generic version included in this distribution + + + + Enea Linux Application Development + Guide - Generic version included in this distribution + + + + Enea Linux Real-Time Guide + can be read at http://linuxrealtime.org. + + + + In addition to the local versions of the generic guides reached via + the above links, you can also read the latest versions via the direct + online links below. When accessing them via the links below, you need to + logon to the portal.enea.com. These online versions may be + updated/improved asynchronously with the releases.INFO: Should be + accessable to all customer's with Enea Linux 6 or later + INFO: On portal, generic guides can NOT link TO the distro + specific guides, but the distro specific guides can link to the generic - + HOWEVER these links (found above) will go to the versions inside the + delivery, instead of to the latest versions. + + + + Enea + Linux Application Development Guide - Latest generic version + online + + + + Enea + Linux Platforms Development Guide - Latest generic version + online + + + + How to use Eclipse is described inside the Enea Linux user's guides. + Eclipse's own documentation is available in directory + eclipse/readme. +
+ +
+ 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: + + + + On target T4240RDB: + + + + SRIO support in user space (NWRITE, NREAD, msg, + doorbell) + + + + USDPAA + + + + + + Smart Package Management + + + + Eclipse ADT (excl. QEMU) and plug-ins for application + development: LTTng, Perf, LatencyTOP, PowerTOP, SystemTap + + +
+ +
+ Security Fixes + + See List of + CVEs addressed in Enea Linux and How + to Get Security Updates. +
+ +
+ Intentional Limitations + + The following functionality supported in other Enea Linux releases + has been excluded in this release: + + 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 + + +
+
\ No newline at end of file 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..d1226b9 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/book.xml @@ -0,0 +1,18 @@ + + + + <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..653f943 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/build_boot_template.xml @@ -0,0 +1,26 @@ + + + + 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 these build/boot instruction have been extracted + into the following sections. + + NOTE: Only EDIT THE TEMPLATE FILE! A new build_boot.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/getting_enea_linux.xml b/doc/book-enea-linux-release-info/doc/getting_enea_linux.xml new file mode 100644 index 0000000..f25c1a5 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/getting_enea_linux.xml @@ -0,0 +1,103 @@ + + + + Getting Enea Linux + +
+ Getting Pre-built Binaries + + Application developers will download pre-complied images from the + Enea Portal or will receive prebuilt images from the platform developers. + For further information on this see Enea Linux Application + Development Guide. +
+ +
+ Getting the Source + + The source for this Enea Linux release is available for cloning from + a set of Git repositories. To manage the different repositories, Google's + repo tool is used. The basic idea is to store a list with (repo-URL, + version) tuples in a separate file, known as the manifest. The repo tool + is then used to traverse the list and clone the specified versions of the + repositories. See https://code.google.com/p/git-repo/ + for more info. + + To use repo tool to download the source for Enea Linux, follow the + steps below: + + + + Make sure that the repo tool is installed. If not, follow the + instructions below: + + $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo +$ chmod a+x ~/bin/repoThe instruction assumes that ~/bin + exists and is included in the PATH variable. + + + + Use the repo tool to download the source:FIXME: Before + final release the tag for the manifest must be set in Makefile as + MANIFESTHASH, typically something like refs/tags/EL6. Before that, a + generic branch name is used instead, e.g. krogoth in + Makefile + + $ mkdir enea-linux +$ cd enea-linux +$ repo init -u \ + -b \ + -m <manifest file> +$ repo sync + + The parameter <manifest file> depends on the target. See + the following table: + + + + + + Target + + Manifest file + + + + + + P2041RDB + + p2041rdb/default.xml + + + + + + + + The source code is now downloaded. Current directory will contain a + README file with instructions on how to build the distro and boot the + target. For convenience, 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, e.g. to get a list of the repositories, use the following + command: + + $ repo manifest + + The UG should be updated with instructions on how to add + customisations. That section should also contain some more info about the + manifest: The manifest templates, using a branch instead of the tag EL6, + ... 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/known_bugs_and_limitations.xml b/doc/book-enea-linux-release-info/doc/known_bugs_and_limitations.xml new file mode 100644 index 0000000..5058404 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/known_bugs_and_limitations.xml @@ -0,0 +1,453 @@ + + + + Known Problems in This Release + + The open source projects are continuously working on correcting + reported problems. Corrections to bugs detected by Enea have been + upstreamed, and the corrections been included in Enea Linux regardless of + when they will be included by the open source project. Remaining issues are + listed below, and workarounds to some of the problems are described in + chapter Troubleshooting in the Enea Linux User's Guide. + +
+ Yocto + + Open source projects often use bug databases for much more than + tracking bugs. The Yocto Project's Bugzilla database also functions as a + feature tracking program, both for the current release and for future + releases, and a way to track non-software issues, like documentation + changes. + + The following page shows a sampling of the database: https://www.yoctoproject.org/tools-resources/bugs. + + For the full database, visit https://bugzilla.yoctoproject.org. +
+ +
+ 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. + + + + Installing a second toolchain in the same directory as a + previous one will break the $PATH variable of the first + one.LXCR-3624 + + +
+ +
+ Smart Package Manager + + Installation of some packages might currently fail when installing + using the Smart Package Manager. An example is the qemu package. Errors + can e.g. be reported by smart about conflicts with files from other + packages. + + The recommended solution to this problem is to install the failing + package using rpm, already available in enea-image-base. In order to + install it using rpm, first install rpm using the command smart + install rpm, then download the package to the target, and + finally on the target use rpm -i + <packagename>.rpm. If not installed, several dependencies + can be reported as "Failed dependencies" with lines "x is needed by y". In + that case, install the required packages "x" found by dependencies by + using the smart package manager. Add a channel to an accessible directory + containing all missing rpm packages. Add packages detected to be missing, + until all dependencies are resolved.FIXME It would be nice to add + also a PowerPC example with qemu failing, the example below is for + ARM. + +
+ Example with Failing QEMU Package + + As an example, the qemu installation can show the following + error. + + + The example below is for ARM, including the RPM names. For + PowerPC similar errors can occur and other packages are needed. + + + error: file /var/run from install of + qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 conflicts with file from package + base-files-3.0.14-r89.0.hierofalcon + + A solution to this problem is to install the above qemu package + using rpm, already available in enea-image-base. In order to install it + using rpm, first install rpm using the command smart install + rpm, then download the above package from + <build_dir>/tmp/deploy/rpm/aarch64. On target, use rpm -i + qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64.rpm. If not installed, + several dependencies can be seen, e.g.: + + error: Failed dependencies: + libpixman-1-0 >= 0.32.6 is needed by qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 + libpixman-1.so.0()(64bit) is needed by qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 + libglib-2.0.so.0()(64bit) is needed by qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 + libcap2 >= 2.22 is needed by qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 + libglib-2.0-0 >= 2.40.0 is needed by qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 + bluez4 >= 4.101 is needed by qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 + libbluetooth.so.3()(64bit) is needed by qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 + libcap.so.2()(64bit) is needed by qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64 + + Install the required packages found by dependencies by using the + smart package manager, as specified in the User's Guide, by adding a + channel to an accessible directory containing all of the above rpm + packages. Suggestion for installing required packages, as in the + following example for qemu and ARM: + + smart install bash + smart install libcap + smart install bluez4 + smart install libpixman-1-0 + rpm -i qemu-2.1.0+git0+541bbb07eb-r0.0.aarch64.rpm + + Add packages detected to be missing until all dependencies are + resolved. +
+
+ +
+ Eclipse Tools + + The Eclipse tools provided together with Enea Linux are part of the + Yocto 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: + + + + 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 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: + + + + 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..da302c1 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/main_changes.xml @@ -0,0 +1,50 @@ + + + + Main Changes + + This chapter describes the major changes and additions in the Enea + Linux release compared to the previous release (Enea Linux 5.0-ppc). + +
+ New Functionality/Enhancements + + Based in the Jira query: 'project = CPDX and fixVersion = "Enea + Linux 6"' + + + + New Yocto version (). See https://www.yoctoproject.org/downloads/core/krogoth21. + + + + Introduction of the repo tool to manage the Git + repositories. + + + + For details, see the Git logs for the repositories specified in the + manifest files. See for more inf + on repos and the manifest. +
+ +
+ Problems Fixed in this Release + + TBD FIXME or set condition hidden +
+ +
+ Added Drivers + + TBD FIXME or set condition hidden +
+ + +
\ No newline at end of file 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..587b812 --- /dev/null +++ b/doc/book-enea-linux-release-info/doc/prerequisites.xml @@ -0,0 +1,49 @@ + + + + Prerequisites + + Building Enea Linux or compiling applications requires some packages + to be installed on your Linux development host. See the list of Required + Packages for Host Development System, found in the Yocto 2.1 document: + https://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html#required-packages-for-the-host-development-system. + If needed, replace 2.1 with the actual Yocto version in your Enea Linux + distribution.Sorry by the list in the Yocto document do not seem to + be enough at all at least for platform building! Therefore we need to add a + complete list here, and we actually have a bigger list than we needed, but + it's better to have more and not be needed than to lack + information. + + Install Host Packages + + + The list below is generic and might contain packages that are not + necessary. Additional packages might be required to build for some + targets. See the Enea Linux Release Information if more packages are + needed and which hosts have been tested by Enea for this Enea Linux + release.QUEST: Are the lists below ok? The lists below try to + cover ALL normal use cases for both ApplGuide and PlatfGuide, incl. + Eclipse, instead of limiting to some use case. Easier to keep + updated. + + +
+ Ubuntu 14.04 LTS, 64-bit + + Ensure the system is up-to-date: + + $ sudo apt-get update + + For a supported Ubuntu + Ubuntu + distribution you need the following packages: + + # 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 +
+
\ 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..6e86ff1 --- /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 +BOOKDESC_$(BOOKPACKAGES) := "Enea Linux $(PROD_VER) Release Information" +BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) diff --git a/doc/docsrc_common/pardoc-distro.xml b/doc/docsrc_common/pardoc-distro.xml new file mode 100644 index 0000000..ad16c98 --- /dev/null +++ b/doc/docsrc_common/pardoc-distro.xml @@ -0,0 +1,44 @@ + + + + + +%common_poky_entities; +]> + + +
+ 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 **** + + You can add more elements using ENTITY lines in poky.ent, e.g. like Poky_VER below + + +&ENEA_LINUX_REL_VER; +https://linux.enea.com/&ENEA_LINUX_REL_VER; +&POKYVERSION; +&DISTRO; +&DISTRO_NAME_NO_CAP; +&YOCTO_RELEASE_NOTES; + + +doc/book-enea-linux-open-source/doc/licenses.xml +doc/book-enea-linux-open-source/doc/licenses.xml +
diff --git a/doc/gen_known_issues.py b/doc/gen_known_issues.py new file mode 100644 index 0000000..a400577 --- /dev/null +++ b/doc/gen_known_issues.py @@ -0,0 +1,91 @@ +#!/usr/bin/python + +from subprocess import check_output +import json, re, datetime +import time + +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="Enea Linux 6"' + ) + +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 ' This section lists open bugs in Jira. 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..11b3809 --- /dev/null +++ b/doc/gen_pkgdiff.py @@ -0,0 +1,234 @@ +#!/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 ' ' +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 ' ' +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 ' ' +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..252409c --- /dev/null +++ b/doc/init.mk @@ -0,0 +1,98 @@ +# 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 + +ifeq ($(VERBOSE),yes) +VERB := +else +VERB := @ +endif + +#Git repositories to be cloned +REPO_DOCBUILD := build/docbuild.git +NAME_DOCBUILD := docbuild +REPO_DOCENEACOMMON := linux/documentation.git +NAME_DOCENEACOMMON := doceneacommon + +# Set nondefault BRANCH_DOCENEACOMMON in Makefile +BRANCH_DOCENEACOMMON ?= master-enea +# Separate clones of documentation.git with different branches, needed if cloned globally with risk that different distros can be at same place +ifneq ($(BRANCH_DOCENEACOMMON),master-enea) +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 documentation.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 documentation.git is master-enea' + @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-enea 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..ea8dc12 --- /dev/null +++ b/doc/initbuildboot.sh @@ -0,0 +1,111 @@ +#!/bin/sh +VER="R0.06" + +BBTEMPLATE= +BBXML= + +USAGE="`basename $0` -xml buildbootxml-to-create -template templatexml-file ($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_targets/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 +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 + +echo "`basename $0` Creating $BBXML from" +TARGETREADMES=`cd s_targets ; 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=s_targets/"$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..686f101 --- /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 := krogoth +MANIFESTURL := git://git.enea.se/linux/manifests/el_manifests-networking.git +PROFILE_NAME := Networking -- cgit v1.2.3-54-g00ecf