Bug 8811

Summary: rp-pppoe - generated scripts commands use HOST pathnames, not necessarily TARGET
Product: buildroot Reporter: Lonnie Abelbeck <lonnie>
Component: OtherAssignee: unassigned
Status: RESOLVED FIXED    
Severity: normal CC: buildroot
Priority: P5    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: Target:
Build:

Description Lonnie Abelbeck 2016-03-21 22:43:29 UTC
Hi,

When building with CentOS 7 as the host, for files scripts/*.in, the @ID@ gets mapped to /bin/id instead of /usr/bin/id since rp-pppoe uses the host paths, not necessarily for the target.

Here is our fix...

In package/rp-pppoe/rp-pppoe.mk:
--
+define RP_PPPOE_SET_TARGET_COMMAND_PATHS
+	find $(@D)/scripts/ -name "*.in" | xargs sed -i \
+		-e 's:@ID@:/usr/bin/id:g' \
+		-e 's:@SETSID@:/usr/bin/setsid:g' \
+		-e 's:@ECHO@:/bin/echo:g' \
+		-e 's:@PPPD@:/usr/sbin/pppd:g'
+endef
+RP_PPPOE_POST_PATCH_HOOKS += RP_PPPOE_SET_TARGET_COMMAND_PATHS
--

You may ask why not eliminate the fully defined paths, but for @SETSID@ it is tested with -x in the script so it needs a full pathname.  The rest may not need a full pathname.

I think this fix is the lesser of the evils, and is easily tweaked if needed.

Lonnie