diff mbox series

[1/1] package/netopeer2: add patch to solve issue with empty group name

Message ID 20200824124147.23051-1-heiko.thiery@gmail.com
State Accepted
Headers show
Series [1/1] package/netopeer2: add patch to solve issue with empty group name | expand

Commit Message

Heiko Thiery Aug. 24, 2020, 12:41 p.m. UTC
When building on a host that has no name specified for the used group in
/etc/group the script in install step will fail due to missing group name.

CMake Error at CMakeLists.txt:80 (message):
  Learning server module group failed: id: cannot find name for group ID 8000

The patch was taken from upstream and modified manually because of merge
conflicts.

Fixes:
http://autobuild.buildroot.net/results/f197ca1def9dc1292e1e784757f2da9d95484431/

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
Cc: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Cc: Matthew Weber <matthew.weber@rockwellcollins.com>
---
 ...support-using-current-user-for-SR-mo.patch | 98 +++++++++++++++++++
 1 file changed, 98 insertions(+)
 create mode 100644 package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch

Comments

Matt Weber Aug. 24, 2020, 7:49 p.m. UTC | #1
Heiko,


On Mon, Aug 24, 2020 at 7:43 AM Heiko Thiery <heiko.thiery@gmail.com> wrote:
>
> When building on a host that has no name specified for the used group in
> /etc/group the script in install step will fail due to missing group name.
>
> CMake Error at CMakeLists.txt:80 (message):
>   Learning server module group failed: id: cannot find name for group ID 8000
>

When cross compiling we still don't want it to actually be using the
host systems users/groups as part of the build.  However with how
Buildroot finalizes the root filesystem this will all get fixed up
before a user would use the rootfs on target.

Reviewed-by: Matthew Weber <matthew.weber@rockwellcollins.com>

> The patch was taken from upstream and modified manually because of merge
> conflicts.
>
> Fixes:
> http://autobuild.buildroot.net/results/f197ca1def9dc1292e1e784757f2da9d95484431/
>
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> Cc: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> Cc: Matthew Weber <matthew.weber@rockwellcollins.com>
> ---
>  ...support-using-current-user-for-SR-mo.patch | 98 +++++++++++++++++++
>  1 file changed, 98 insertions(+)
>  create mode 100644 package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch
>
> diff --git a/package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch b/package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch
> new file mode 100644
> index 0000000000..45257b2ff4
> --- /dev/null
> +++ b/package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch
> @@ -0,0 +1,98 @@
> +From 36ee1f33bceb0c2a7899e28d75c0d05408b561f1 Mon Sep 17 00:00:00 2001
> +From: Michal Vasko <mvasko@cesnet.cz>
> +Date: Mon, 24 Aug 2020 13:47:40 +0200
> +Subject: [PATCH] scripts FEATURE support using current user for SR modules
> +
> +Mostly for special cases user/group configuration
> +when the user/group cannot be retrieved normally.
> +
> +Fixes #701
> +
> +Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> +[patch taken from upstream:
> +https://github.com/CESNET/netopeer2/commit/12a82701e10651fbdedb1524b27edf3bb2377488]
> +Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> +---
> + CMakeLists.txt   | 10 +++++-----
> + scripts/setup.sh | 23 +++++++++++++++++++----
> + 2 files changed, 24 insertions(+), 9 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index 2d4175e..95e7e61 100755
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -68,19 +68,19 @@ if(NOT MODULES_OWNER)
> +     OUTPUT_VARIABLE MODULES_OWNER OUTPUT_STRIP_TRAILING_WHITESPACE
> +     ERROR_VARIABLE ERROR_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
> +     if(RET)
> +-        message(FATAL_ERROR "Learning server module user failed: ${ERROR_STR}")
> ++        message(WARNING "Learning server module user failed (${ERROR_STR}), the current user will be used.")
> +     endif()
> + endif()
> +-set(MODULES_OWNER "${MODULES_OWNER}" CACHE STRING "System user that will become the owner of server modules")
> +-if(NOT MODULES_GROUP)
> ++set(MODULES_OWNER "${MODULES_OWNER}" CACHE STRING "System user that will become the owner of server modules, empty means the current user")
> ++if(NOT MODULES_GROUP AND MODULES_OWNER)
> +     execute_process(COMMAND id -gn ${MODULES_OWNER} RESULT_VARIABLE RET
> +     OUTPUT_VARIABLE MODULES_GROUP OUTPUT_STRIP_TRAILING_WHITESPACE
> +     ERROR_VARIABLE ERROR_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
> +     if(RET)
> +-        message(FATAL_ERROR "Learning server module group failed: ${ERROR_STR}")
> ++        message(WARNING "Learning server module group failed (${ERROR_STR}), the current user group will be used.")
> +     endif()
> + endif()
> +-set(MODULES_GROUP "${MODULES_GROUP}" CACHE STRING "System group that the server modules will belong to")
> ++set(MODULES_GROUP "${MODULES_GROUP}" CACHE STRING "System group that the server modules will belong to, empty means the current user group")
> +
> + # set prefix for the PID file
> + if(NOT PIDFILE_PREFIX)
> +diff --git a/scripts/setup.sh b/scripts/setup.sh
> +index 7175bc4..b5d1406 100755
> +--- a/scripts/setup.sh
> ++++ b/scripts/setup.sh
> +@@ -1,7 +1,8 @@
> + #!/bin/bash
> +
> +-# env variables NP2_MODULE_DIR, NP2_MODULE_PERMS, NP2_MODULE_OWNER, NP2_MODULE_GROUP must be defined when executing this script!
> +-if [ -z "$NP2_MODULE_DIR" -o -z "$NP2_MODULE_PERMS" -o -z "$NP2_MODULE_OWNER" -o -z "$NP2_MODULE_GROUP" ]; then
> ++# env variables NP2_MODULE_DIR, NP2_MODULE_PERMS must be defined and NP2_MODULE_OWNER, NP2_MODULE_GROUP will be used if
> ++# defined when executing this script!
> ++if [ -z "$NP2_MODULE_DIR" -o -z "$NP2_MODULE_PERMS" ]; then
> +     echo "Required environment variables not defined!"
> +     exit 1
> + fi
> +@@ -33,7 +34,14 @@ MODULES=(
> +
> + # functions
> + INSTALL_MODULE() {
> +-    $SYSREPOCTL -a -i $MODDIR/$1 -s $MODDIR -p $PERMS -o $OWNER -g $GROUP -v2
> ++    CMD="'$SYSREPOCTL' -a -i $MODDIR/$1 -s '$MODDIR' -p '$PERMS' -v2"
> ++    if [ ! -z ${OWNER} ]; then
> ++        CMD="$CMD -o '$OWNER'"
> ++    fi
> ++    if [ ! -z ${GROUP} ]; then
> ++        CMD="$CMD -g '$GROUP'"
> ++    fi
> ++    eval $CMD
> +     local rc=$?
> +     if [ $rc -ne 0 ]; then
> +         exit $rc
> +@@ -41,7 +49,14 @@ INSTALL_MODULE() {
> + }
> +
> + UPDATE_MODULE() {
> +-    $SYSREPOCTL -a -U $MODDIR/$1 -s $MODDIR -p $PERMS -o $OWNER -g $GROUP -v2
> ++    CMD="'$SYSREPOCTL' -a -U $MODDIR/$1 -s '$MODDIR' -p '$PERMS' -v2"
> ++    if [ ! -z ${OWNER} ]; then
> ++        CMD="$CMD -o '$OWNER'"
> ++    fi
> ++    if [ ! -z ${GROUP} ]; then
> ++        CMD="$CMD -g '$GROUP'"
> ++    fi
> ++    eval $CMD
> +     local rc=$?
> +     if [ $rc -ne 0 ]; then
> +         exit $rc
> +--
> +2.20.1
> +
> --
> 2.20.1
>
Thomas Petazzoni Aug. 24, 2020, 8:21 p.m. UTC | #2
On Mon, 24 Aug 2020 14:41:47 +0200
Heiko Thiery <heiko.thiery@gmail.com> wrote:

> When building on a host that has no name specified for the used group in
> /etc/group the script in install step will fail due to missing group name.
> 
> CMake Error at CMakeLists.txt:80 (message):
>   Learning server module group failed: id: cannot find name for group ID 8000
> 
> The patch was taken from upstream and modified manually because of merge
> conflicts.
> 
> Fixes:
> http://autobuild.buildroot.net/results/f197ca1def9dc1292e1e784757f2da9d95484431/
> 
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> Cc: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> Cc: Matthew Weber <matthew.weber@rockwellcollins.com>
> ---
>  ...support-using-current-user-for-SR-mo.patch | 98 +++++++++++++++++++
>  1 file changed, 98 insertions(+)
>  create mode 100644 package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch

Applied to master, thanks.

Thomas
diff mbox series

Patch

diff --git a/package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch b/package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch
new file mode 100644
index 0000000000..45257b2ff4
--- /dev/null
+++ b/package/netopeer2/0003-scripts-FEATURE-support-using-current-user-for-SR-mo.patch
@@ -0,0 +1,98 @@ 
+From 36ee1f33bceb0c2a7899e28d75c0d05408b561f1 Mon Sep 17 00:00:00 2001
+From: Michal Vasko <mvasko@cesnet.cz>
+Date: Mon, 24 Aug 2020 13:47:40 +0200
+Subject: [PATCH] scripts FEATURE support using current user for SR modules
+
+Mostly for special cases user/group configuration
+when the user/group cannot be retrieved normally.
+
+Fixes #701
+
+Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
+[patch taken from upstream:
+https://github.com/CESNET/netopeer2/commit/12a82701e10651fbdedb1524b27edf3bb2377488]
+Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
+---
+ CMakeLists.txt   | 10 +++++-----
+ scripts/setup.sh | 23 +++++++++++++++++++----
+ 2 files changed, 24 insertions(+), 9 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2d4175e..95e7e61 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -68,19 +68,19 @@ if(NOT MODULES_OWNER)
+     OUTPUT_VARIABLE MODULES_OWNER OUTPUT_STRIP_TRAILING_WHITESPACE
+     ERROR_VARIABLE ERROR_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
+     if(RET)
+-        message(FATAL_ERROR "Learning server module user failed: ${ERROR_STR}")
++        message(WARNING "Learning server module user failed (${ERROR_STR}), the current user will be used.")
+     endif()
+ endif()
+-set(MODULES_OWNER "${MODULES_OWNER}" CACHE STRING "System user that will become the owner of server modules")
+-if(NOT MODULES_GROUP)
++set(MODULES_OWNER "${MODULES_OWNER}" CACHE STRING "System user that will become the owner of server modules, empty means the current user")
++if(NOT MODULES_GROUP AND MODULES_OWNER)
+     execute_process(COMMAND id -gn ${MODULES_OWNER} RESULT_VARIABLE RET
+     OUTPUT_VARIABLE MODULES_GROUP OUTPUT_STRIP_TRAILING_WHITESPACE
+     ERROR_VARIABLE ERROR_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
+     if(RET)
+-        message(FATAL_ERROR "Learning server module group failed: ${ERROR_STR}")
++        message(WARNING "Learning server module group failed (${ERROR_STR}), the current user group will be used.")
+     endif()
+ endif()
+-set(MODULES_GROUP "${MODULES_GROUP}" CACHE STRING "System group that the server modules will belong to")
++set(MODULES_GROUP "${MODULES_GROUP}" CACHE STRING "System group that the server modules will belong to, empty means the current user group")
+ 
+ # set prefix for the PID file
+ if(NOT PIDFILE_PREFIX)
+diff --git a/scripts/setup.sh b/scripts/setup.sh
+index 7175bc4..b5d1406 100755
+--- a/scripts/setup.sh
++++ b/scripts/setup.sh
+@@ -1,7 +1,8 @@
+ #!/bin/bash
+ 
+-# env variables NP2_MODULE_DIR, NP2_MODULE_PERMS, NP2_MODULE_OWNER, NP2_MODULE_GROUP must be defined when executing this script!
+-if [ -z "$NP2_MODULE_DIR" -o -z "$NP2_MODULE_PERMS" -o -z "$NP2_MODULE_OWNER" -o -z "$NP2_MODULE_GROUP" ]; then
++# env variables NP2_MODULE_DIR, NP2_MODULE_PERMS must be defined and NP2_MODULE_OWNER, NP2_MODULE_GROUP will be used if
++# defined when executing this script!
++if [ -z "$NP2_MODULE_DIR" -o -z "$NP2_MODULE_PERMS" ]; then
+     echo "Required environment variables not defined!"
+     exit 1
+ fi
+@@ -33,7 +34,14 @@ MODULES=(
+ 
+ # functions
+ INSTALL_MODULE() {
+-    $SYSREPOCTL -a -i $MODDIR/$1 -s $MODDIR -p $PERMS -o $OWNER -g $GROUP -v2
++    CMD="'$SYSREPOCTL' -a -i $MODDIR/$1 -s '$MODDIR' -p '$PERMS' -v2"
++    if [ ! -z ${OWNER} ]; then
++        CMD="$CMD -o '$OWNER'"
++    fi
++    if [ ! -z ${GROUP} ]; then
++        CMD="$CMD -g '$GROUP'"
++    fi
++    eval $CMD
+     local rc=$?
+     if [ $rc -ne 0 ]; then
+         exit $rc
+@@ -41,7 +49,14 @@ INSTALL_MODULE() {
+ }
+ 
+ UPDATE_MODULE() {
+-    $SYSREPOCTL -a -U $MODDIR/$1 -s $MODDIR -p $PERMS -o $OWNER -g $GROUP -v2
++    CMD="'$SYSREPOCTL' -a -U $MODDIR/$1 -s '$MODDIR' -p '$PERMS' -v2"
++    if [ ! -z ${OWNER} ]; then
++        CMD="$CMD -o '$OWNER'"
++    fi
++    if [ ! -z ${GROUP} ]; then
++        CMD="$CMD -g '$GROUP'"
++    fi
++    eval $CMD
+     local rc=$?
+     if [ $rc -ne 0 ]; then
+         exit $rc
+-- 
+2.20.1
+