This is an automated email from the ASF dual-hosted git repository.

aboda pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git


The following commit(s) were added to refs/heads/main by this push:
     new 3c57dc0  MINIFICPP-1512 update README
3c57dc0 is described below

commit 3c57dc065d59720a019bc5828acbfbc0b9c4d71a
Author: Marton Szasz <[email protected]>
AuthorDate: Mon Mar 8 09:12:28 2021 +0100

    MINIFICPP-1512 update README
    
    Signed-off-by: Arpad Boda <[email protected]>
    
    This closes #1023
---
 README.md | 93 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 54 insertions(+), 39 deletions(-)

diff --git a/README.md b/README.md
index cc8f421..4a4d4d7 100644
--- a/README.md
+++ b/README.md
@@ -27,10 +27,12 @@ MiNiFi is a child project effort of Apache NiFi.  This 
repository is for a nativ
   - [System Requirements](#system-requirements)
   - [Bootstrapping](#bootstrapping)
   - [Building For Other Distros](#building-for-other-distros)
-  - [Cleaning](#cleaning)
+  - [Snapcraft](#snapcraft)
+  - [Installation](#installation)
   - [Configuring](#configuring)
   - [Running](#running)
   - [Deploying](#deploying)
+  - [Cleaning](#cleaning)
   - [Extensions](#extensions)
   - [Security](#security)
 - [Operations](#operations)
@@ -73,7 +75,7 @@ Through JNI extensions you can run NiFi processors using 
NARs. The JNI extension
 | Extension Set        | Processors           | CMAKE Flag  |
 | ------------- |:-------------| :-----|
 | Archive Extensions    | 
[ApplyTemplate](PROCESSORS.md#applytemplate)<br/>[CompressContent](PROCESSORS.md#compresscontent)<br/>[ManipulateArchive](PROCESSORS.md#manipulatearchive)<br/>[MergeContent](PROCESSORS.md#mergecontent)<br/>[FocusArchiveEntry](PROCESSORS.md#focusarchiveentry)<br/>[UnfocusArchiveEntry](PROCESSORS.md#unfocusarchiveentry)
      |   -DBUILD_LIBARCHIVE=ON |
-| AWS | 
[AWSCredentialsService](CONTROLLERS.md#awsCredentialsService)<br/>[PutS3Object](PROCESSORS.md#puts3object)<br/>[DeleteS3Object](PROCESSORS.md#deletes3object)
 | -DENABLE_AWS=ON  |
+| AWS | 
[AWSCredentialsService](CONTROLLERS.md#awscredentialsservice)<br/>[PutS3Object](PROCESSORS.md#puts3object)<br/>[DeleteS3Object](PROCESSORS.md#deletes3object)
 | -DENABLE_AWS=ON  |
 | CivetWeb | [ListenHTTP](PROCESSORS.md#listenhttp)  | -DDISABLE_CIVET=ON |
 | CURL | [InvokeHTTP](PROCESSORS.md#invokehttp)      |    -DDISABLE_CURL=ON  |
 | GPS | GetGPS      |    -DENABLE_GPS=ON  |
@@ -88,7 +90,7 @@ Through JNI extensions you can run NiFi processors using 
NARs. The JNI extension
 | SFTP | 
[FetchSFTP](PROCESSORS.md#fetchsftp)<br/>[ListSFTP](PROCESSORS.md#listsftp)<br/>[PutSFTP](PROCESSORS.md#putsftp)
 | -DENABLE_SFTP=ON |
 | SQL | ExecuteSQL<br/>PutSQL<br/>QueryDatabaseTable<br/> | -DENABLE_SQL=ON  |
 | SQLite | 
[ExecuteSQL](PROCESSORS.md#executesql)<br/>[PutSQL](PROCESSORS.md#putsql)      
|    -DENABLE_SQLITE=ON  |
-| Tensorflow | 
[TFApplyGraph](PROCESSORS.md#tfapplygraph)<br/>[TFConvertImageToTensor](PROCESSORS.md#tfconvertimagetotensor)<br/>[TFExtractTopLabels](PROCESSORS.md#tfextracttoplabels)<br/>
      |    -DENABLE_TENSORFLOW=ON  |
+| Tensorflow | 
TFApplyGraph<br/>TFConvertImageToTensor<br/>TFExtractTopLabels<br/>      |    
-DENABLE_TENSORFLOW=ON  |
 | USB Camera | [GetUSBCamera](PROCESSORS.md#getusbcamera)     |    
-DENABLE_USB_CAMERA=ON  |
 | Windows Event Log (Windows only) | 
CollectorInitiatedSubscription<br/>ConsumeWindowsEventLog<br/>TailEventLog | 
-DENABLE_WEL=ON |
 
@@ -99,22 +101,18 @@ Through JNI extensions you can run NiFi processors using 
NARs. The JNI extension
 * Build and usage currently only supports Windows, Linux and OS X 
environments. MiNiFi C++ can be built and run through the Windows Subsystem for 
Linux but we provide no support for this platform.
 * Provenance events generation is supported and are persisted using RocksDB. 
Volatile repositories can be used on systems without persistent storage.
 * If MiNiFi C++ is built with the OPC-UA extension enabled, it bundles 
[open62541](https://open62541.org/), which is available under the Mozilla 
Public License Version 2.0, a Category B license under [ASF 3rd party license 
policy](https://www.apache.org/legal/resolved.html#category-b).
+* If MiNiFi C++ packaged on Windows, the resulting MSI may not be publicly 
redistributed under the Apache license, because it contains Microsoft 
redistributable DLLs, which fall under Category X of the [ASF 3rd party license 
policy](https://www.apache.org/legal/resolved.html#category-x).
 
 ## System Requirements
 
 ### To build
 
 #### Utilities
-* CMake
-  * 3.10 or greater
-* gcc
-  * 4.8.4 or greater
-* g++
-  * 4.8.4 or greater
-* bison
-  * 3.0.x (3.2 has been shown to fail builds)
-* flex
-  * 2.5 or greater
+* CMake 3.11 or greater
+* gcc 4.8.4 or greater
+* g++ 4.8.4 or greater
+* bison 3.0.x (3.2 has been shown to fail builds)
+* flex 2.5 or greater
 
 ##### External Projects
 
@@ -126,12 +124,11 @@ versions of LibreSSL, cURL, or zlib are used:
 * automake
 * libtool
 
-**NOTE** if Lua support is enabled, then a C++ compiler with support for 
c++-14 must be used. If using GCC, version 6.x
-or greater is recommended.
+**NOTE** if Lua support is enabled, then a C++ compiler with support for C++ 
14 must be used. If using GCC, version 6.x or greater is recommended.
 
-**NOTE** if bustache (ApplyTemplate) support is enabled, a recent version of a 
compiler supporting c++-11 must be used. GCC versions >= 6.3.1 are known to 
work.
+**NOTE** if bustache (ApplyTemplate) support is enabled, a recent version of a 
compiler supporting C++ 11 must be used. GCC versions >= 6.3.1 are known to 
work.
 
-**NOTE** if Kafka support is enabled, a recent version of a compiler 
supporting C++-11 regexes must be used. GCC versions >= 4.9.x are recommended.
+**NOTE** if Kafka support is enabled, a recent version of a compiler 
supporting C++ 11 regexes must be used. GCC versions >= 4.9.x are recommended.
 
 **NOTE** if Expression Language support is enabled, FlexLexer must be in the 
include path and the version must be compatible with the version of flex used 
when generating lexer sources. Lexer source generation is automatically 
performed during CMake builds. To re-generate the sources, remove:
 
@@ -151,6 +148,7 @@ and rebuild.
 * Python 3 and development headers -- Required, unless Python support is 
disabled
 * Lua and development headers -- Optional, unless Lua support is enabled
 * libgps-dev -- Required if building libGPS support
+* Zlib headers
 
 #### CentOS 6
 
@@ -236,7 +234,8 @@ $ yum install cmake \
   openssl-devel \
   bzip2-devel \
   xz-devel \
-  doxygen
+  doxygen \
+  zlib-devel
 $ # (Optional) for building Python support
 $ yum install python34-devel
 $ # (Optional) for building Lua support
@@ -271,7 +270,8 @@ $ apt-get install cmake \
   uuid-dev uuid \
   libboost-all-dev libssl-dev \
   libbz2-dev liblzma-dev \
-  doxygen
+  doxygen \
+  zlib1g-dev
 $ # (Optional) for building Python support
 $ apt-get install libpython3-dev
 $ # (Optional) for building Lua support
@@ -305,7 +305,8 @@ $ brew install cmake \
   lua \
   xz \
   bzip2 \
-  doxygen
+  doxygen \
+  zlib
 $ brew install curl
 $ brew link curl --force
 $ # (Optional) for building USB Camera support
@@ -327,17 +328,18 @@ $ # It is recommended that you install bison from source 
as HomeBrew now uses an
 
 - MiNiFi C++ offers a bootstrap script in the root of our github repo that 
will boot strap the cmake and build process for you without the need to install 
dependencies yourself. To use this process, please run the command 
`boostrap.sh` from the root of the MiNiFi C++ source tree.
 
-
 - Per the table, below, you will be presented with a menu guided bootstrap 
process. You may enable and disable extensions ( further defined below ). Once 
you are finished selecting the features you wish to build, enter P to continue 
with the process. CMAKE dependencies will be resolved for your distro. You may 
enter command line options -n to force yes to all prompts ( including the 
package installation prompts ) and -b to automatically run make once the cmake 
process is complete. Altern [...]
 
 - If you provide -b or -p to bootstrap.sh, you do not need to follow the 
Building section, below. If you do not provide these arguments you may skip the 
cmake .. section from Building.
 
+- Using the Release build profile is recommended to reduce binary size. (~200 
MB vs ~30 MB)
+
   ```
   # ~/Development/code/apache/nifi-minifi-cpp on git:master
   $ ./bootstrap.sh
   # CMAKE Build dir exists, should we overwrite your build directory before we 
begin?
     If you have already bootstrapped, bootstrapping again isn't necessary to 
run make [ Y/N ] Y
-  $ *****************************************
+    *****************************************
      Select MiNiFi C++ Features to toggle.
     *****************************************
     A. Persistent Repositories .....Enabled
@@ -360,6 +362,7 @@ $ # It is recommended that you install bison from source as 
HomeBrew now uses an
     T. OpenCV Support ..............Disabled
     U. OPC-UA Support ..............Disabled
     W. SQL Support .................Disabled
+    X. Openwsman Support ...........Disabled
     ****************************************
                 Build Options.
     ****************************************
@@ -368,13 +371,14 @@ $ # It is recommended that you install bison from source 
as HomeBrew now uses an
     3. Enable JNI Support ..........Disabled
     4. Use Shared Dependency Links .Enabled
     5. Build Profile ...............RelWithDebInfo Debug MinSizeRel Release
+    6. Create ASAN build ...........Disabled
     P. Continue with these options
     Q. Quit
     * Extension cannot be installed due to
       version of cmake or other software, or
       incompatibility with other extensions
 
-    Enter choice [ A - W or 1-4 ]
+    Enter choice [ A - X or 1-6 ]
   ```
 
 - Boostrap now saves state between runs. State will automatically be saved. 
Provide -c or --clear to clear this state. The -i option provides a guided menu 
install with the ability to change
@@ -405,7 +409,7 @@ advanced features.
 - Perform a build
   ```
   # ~/Development/code/apache/nifi-minifi-cpp on git:master
-  $ make
+  $ make -j$(nproc)
   Scanning dependencies of target gmock_main
   Scanning dependencies of target gmock
   Scanning dependencies of target minifi
@@ -436,7 +440,7 @@ advanced features.
   CPack: Install projects
   CPack: - Install directory: ~/Development/code/apache/nifi-minifi-cpp
   CPack: Create package
-  CPack: - package: 
~/Development/code/apache/nifi-minifi-cpp/build/nifi-minifi-cpp-0.7.0-bin.tar.gz
 generated.
+  CPack: - package: 
~/Development/code/apache/nifi-minifi-cpp/build/nifi-minifi-cpp-0.9.0-bin.tar.gz
 generated.
   ```
 
 - Create a source assembly located in your build directory with suffix 
-source.tar.gz
@@ -448,18 +452,18 @@ advanced features.
   CPack: Install projects
   CPack: - Install directory: ~/Development/code/apache/nifi-minifi-cpp
   CPack: Create package
-  CPack: - package: 
~/Development/code/apache/nifi-minifi-cpp/build/nifi-minifi-cpp-0.7.0-source.tar.gz
 generated.
+  CPack: - package: 
~/Development/code/apache/nifi-minifi-cpp/build/nifi-minifi-cpp-0.9.0-source.tar.gz
 generated.
   ```
 
 - (Optional) Create a Docker image from the resulting binary assembly output 
from "make package".
 ```
 ~/Development/code/apache/nifi-minifi-cpp/build
 $ make docker
-NiFi-MiNiFi-CPP Version: 0.7.0
+NiFi-MiNiFi-CPP Version: 0.9.0
 Current Working Directory: 
/Users/jdyer/Development/github/nifi-minifi-cpp/docker
 CMake Source Directory: /Users/jdyer/Development/github/nifi-minifi-cpp
-MiNiFi Package: nifi-minifi-cpp-0.7.0-bin.tar.gz
-Docker Command: 'docker build --build-arg UID=1000 --build-arg GID=1000 
--build-arg MINIFI_VERSION=0.7.0 --build-arg 
MINIFI_PACKAGE=nifi-minifi-cpp-0.7.0-bin.tar.gz -t apacheminificpp:0.7.0 .'
+MiNiFi Package: nifi-minifi-cpp-0.9.0-bin.tar.gz
+Docker Command: 'docker build --build-arg UID=1000 --build-arg GID=1000 
--build-arg MINIFI_VERSION=0.9.0 --build-arg 
MINIFI_PACKAGE=nifi-minifi-cpp-0.9.0-bin.tar.gz -t apacheminificpp:0.9.0 .'
 Sending build context to Docker daemon 777.2 kB
 Step 1 : FROM alpine:3.5
  ---> 88e169ea8f46
@@ -494,13 +498,6 @@ provides the command to build your distro and the output 
file in your build dire
 | Ubuntu 18  | make u18 | nifi-minifi-cpp-bionic-$VERSION-bin.tar.gz
 
 
-### Cleaning
-Remove the build directory created above.
-```
-# ~/Development/code/apache/nifi-minifi-cpp on git:master
-$ rm -rf ./build
-```
-
 ### Snapcraft
 
 Snapcraft builds are supported. As per Snapcraft's official recommendations, 
we recommend using Ubuntu 16.04 as a build system when building the Snap. To 
build the snap, run
@@ -511,11 +508,20 @@ $ snapcraft
 
 from the project directory. Further instructions are available in the 
[Snapcraft documentation](https://docs.snapcraft.io/build-snaps/).
 
+### Installation
+After [building](#building) MiNiFi C++, extract the generated binary package 
'nifi-minifi-cpp-$VERSION-bin.tar.gz' at your desired installation path.
+```shell
+$ MINIFI_PACKAGE="$(pwd)"/build/nifi-minifi-cpp-*-bin.tar.gz
+$ pushd /opt
+$ sudo tar xvzf "$MINIFI_PACKAGE"
+$ cd nifi-minifi-cpp-*
+```
+
 ### Configuring
-The 'conf' directory in the root contains a template config.yml document, 
minifi.properties, and minifi-log.properties. Please see our [Configuration 
document](CONFIGURE.md) for details on how to configure agents.
+The 'conf' directory in the installation root contains a template config.yml 
document, minifi.properties, and minifi-log.properties. Please see our 
[Configuration document](CONFIGURE.md) for details on how to configure agents.
 
 ### Running
-After completing a [build](#building), the application can be run by issuing 
the following from :
+After completing the [installation](#installation), the application can be run 
by issuing the following command from the installation directory:
 
     $ ./bin/minifi.sh start
 
@@ -543,6 +549,14 @@ The build identifier will be carried with the deployed 
binary for the configurat
 
 On Windows it is suggested that MSI be used for installation.
 
+### Cleaning
+Remove the build directory created above.
+```
+# ~/Development/code/apache/nifi-minifi-cpp on git:master
+$ rm -rf ./build
+```
+
+
 ### Extensions
 
 Please see [Extensions.md](Extensions.md) on how to build and run 
conditionally built dependencies and extensions.
@@ -560,7 +574,7 @@ Antivirus software can take a long time to scan directories 
and the files within
 - provenance_repository
 
 ## Operations
-See our [operations documentation for additional inforomation on how to manage 
instances](OPS.md)
+See our [operations documentation for additional information on how to manage 
instances](OPS.md)
 
 ## Issue Tracking
 See https://issues.apache.org/jira/projects/MINIFICPP/issues for the issue 
tracker.
@@ -577,6 +591,7 @@ New contributions are expected to follow the Google style 
guide when it is reaso
 Additionally, all new files must include a copy of the Apache License Header.
 
 For more details on how to contribute please see our [Contribution 
Guide](CONTRIB.md)
+
 ## License
 Except as otherwise noted this software is licensed under the
 [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)

Reply via email to