All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2'
@ 2018-07-11  6:01 Haiqing Bai
  2018-07-11  8:41 ` Andreas Oberritter
  0 siblings, 1 reply; 5+ messages in thread
From: Haiqing Bai @ 2018-07-11  6:01 UTC (permalink / raw)
  To: openembedded-core, haiqing.bai

Some applications which depend on iproute/iproute2 need to
run '/sbin/ip.iproute2' through the symbol link '/bin/ip'
e.g ifupdown.

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
---
 meta/recipes-connectivity/iproute2/iproute2.inc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/recipes-connectivity/iproute2/iproute2.inc b/meta/recipes-connectivity/iproute2/iproute2.inc
index 4fbfec6f08..71d04a1021 100644
--- a/meta/recipes-connectivity/iproute2/iproute2.inc
+++ b/meta/recipes-connectivity/iproute2/iproute2.inc
@@ -29,6 +29,8 @@ do_configure_append () {
 do_install () {
     oe_runmake DESTDIR=${D} install
     mv ${D}${base_sbindir}/ip ${D}${base_sbindir}/ip.iproute2
+    install -d ${D}${base_bindir}
+    ln -s ${base_sbindir}/ip.iproute2 ${D}${base_bindir}/ip
     install -d ${D}${datadir}
     mv ${D}/share/* ${D}${datadir}/ || true
     rm ${D}/share -rf || true
-- 
2.13.3



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2'
  2018-07-11  6:01 [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2' Haiqing Bai
@ 2018-07-11  8:41 ` Andreas Oberritter
  2018-07-12 20:19   ` Randy MacLeod
  0 siblings, 1 reply; 5+ messages in thread
From: Andreas Oberritter @ 2018-07-11  8:41 UTC (permalink / raw)
  To: openembedded-core

On Wed, 11 Jul 2018 14:01:17 +0800
Haiqing Bai <Haiqing.Bai@windriver.com> wrote:

> Some applications which depend on iproute/iproute2 need to
> run '/sbin/ip.iproute2' through the symbol link '/bin/ip'
> e.g ifupdown.

Update-alternatives is supposed to create this link already.

> 
> Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
> ---
>  meta/recipes-connectivity/iproute2/iproute2.inc | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/meta/recipes-connectivity/iproute2/iproute2.inc b/meta/recipes-connectivity/iproute2/iproute2.inc
> index 4fbfec6f08..71d04a1021 100644
> --- a/meta/recipes-connectivity/iproute2/iproute2.inc
> +++ b/meta/recipes-connectivity/iproute2/iproute2.inc
> @@ -29,6 +29,8 @@ do_configure_append () {
>  do_install () {
>      oe_runmake DESTDIR=${D} install
>      mv ${D}${base_sbindir}/ip ${D}${base_sbindir}/ip.iproute2
> +    install -d ${D}${base_bindir}
> +    ln -s ${base_sbindir}/ip.iproute2 ${D}${base_bindir}/ip
>      install -d ${D}${datadir}
>      mv ${D}/share/* ${D}${datadir}/ || true
>      rm ${D}/share -rf || true



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2'
  2018-07-11  8:41 ` Andreas Oberritter
@ 2018-07-12 20:19   ` Randy MacLeod
  2018-07-13  2:06     ` Bai, Haiqing
  0 siblings, 1 reply; 5+ messages in thread
From: Randy MacLeod @ 2018-07-12 20:19 UTC (permalink / raw)
  To: Andreas Oberritter, openembedded-core, Bai, Haiqing

On 07/11/2018 04:41 AM, Andreas Oberritter wrote:
> On Wed, 11 Jul 2018 14:01:17 +0800
> Haiqing Bai <Haiqing.Bai@windriver.com> wrote:
> 
>> Some applications which depend on iproute/iproute2 need to
>> run '/sbin/ip.iproute2' through the symbol link '/bin/ip'
>> e.g ifupdown.
> 
> Update-alternatives is supposed to create this link already.

I assume that update-alternatives is creating
    /sbin/ip -> /sbin/ip.iproute2
but for some reason ipupdown is looking for
    /bin/ip

Is that right Haiqing ?

Why not fix ifupdown?

../Randy

> 
>>
>> Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
>> ---
>>   meta/recipes-connectivity/iproute2/iproute2.inc | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/meta/recipes-connectivity/iproute2/iproute2.inc b/meta/recipes-connectivity/iproute2/iproute2.inc
>> index 4fbfec6f08..71d04a1021 100644
>> --- a/meta/recipes-connectivity/iproute2/iproute2.inc
>> +++ b/meta/recipes-connectivity/iproute2/iproute2.inc
>> @@ -29,6 +29,8 @@ do_configure_append () {
>>   do_install () {
>>       oe_runmake DESTDIR=${D} install
>>       mv ${D}${base_sbindir}/ip ${D}${base_sbindir}/ip.iproute2
>> +    install -d ${D}${base_bindir}
>> +    ln -s ${base_sbindir}/ip.iproute2 ${D}${base_bindir}/ip
>>       install -d ${D}${datadir}
>>       mv ${D}/share/* ${D}${datadir}/ || true
>>       rm ${D}/share -rf || true
> 


-- 
# Randy MacLeod
# Wind River Linux


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2'
  2018-07-12 20:19   ` Randy MacLeod
@ 2018-07-13  2:06     ` Bai, Haiqing
  2018-07-13  9:14       ` Andreas Oberritter
  0 siblings, 1 reply; 5+ messages in thread
From: Bai, Haiqing @ 2018-07-13  2:06 UTC (permalink / raw)
  To: MacLeod, Randy, Andreas Oberritter, openembedded-core

Yes,  you are right.

The reasons that why not fix ifupdown like below:
1.  Some packages assume 'iproute' is their default dependency, not only 'ifupdown'.

2. Of course,  the source code of 'ifupdown' is very ugly,  not only  C code but also configure files used lots of shell command with absolute path:
And we  used git://anonscm.debian.org/git/collab-maint/ifupdown.git,  this is in continuous development,  it's sure lots of this kind of code will be pull in in future.
======================================================================================================
hbai@pek-lpgtest5:/buildarea2/hbai/wr/10/build/tmp-glibc/work/core2-64-wrs-linux/ifupdown/0.8.16-r0/git$ grep -rn "execute"
inet6.c:21:  if (!execute("/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.", ifd, exec) && !ignore_failures) return 0;
inet6.c:24:  if (!execute("-[[/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.use_tempaddr=%privext%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:27:  if (!execute("-/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.accept_ra=%accept_ra%", ifd, exec) && !ignore_failures) return 0;
inet6.c:30:  if (!execute("-/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.autoconf=1", ifd, exec) && !ignore_failures) return 0;
inet6.c:33:  if (!execute("/bin/ip addr flush dev %iface% mngtmpaddr", ifd, exec) && !ignore_failures) return 0;
inet6.c:36:  if (!execute("/bin/ip link set dev %iface% up", ifd, exec) && !ignore_failures) return 0;
inet6.c:39:  if (!execute("/lib/ifupdown/wait-for-ll6.sh", ifd, exec) && !ignore_failures) return 0;
inet6.c:42:  if (!execute("/sbin/dhclient -6 -P -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:45:  if (!execute("/sbin/dhclient -6 -S -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:48:  if (!execute("echo 'No DHCPv6 client software found!' >/dev/stderr; false", ifd, exec) && !ignore_failures) return 0;
inet6.c:54:  if (!execute("/bin/ip -6 addr flush dev %iface% scope global", ifd, exec) && !ignore_failures) return 0;
inet6.c:57:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet6.c:69:  if (!execute("-/bin/ip link set dev %iface% up 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
inet6.c:72:  if (!execute("-/bin/ip addr add dev %iface% ::1 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
inet6.c:78:  if (!execute("-/bin/ip addr del dev %iface% ::1 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
inet6.c:81:  if (!execute("-/bin/ip link set dev %iface% down 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
inet6.c:102:  if (!execute("/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.", ifd, exec) && !ignore_failures) return 0;
inet6.c:105:  if (!execute("-[[/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.use_tempaddr=%privext%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:108:  if (!execute("-[[/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.accept_ra=%accept_ra%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:111:  if (!execute("-[[/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.autoconf=%autoconf%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:114:  if (!execute("-[[/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.mtu=%mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:117:  if (!execute("/bin/ip addr flush dev %iface% mngtmpaddr", ifd, exec) && !ignore_failures) return 0;
inet6.c:120:  if (!execute("/bin/ip link set dev %iface% [[address %hwaddress%]] up", ifd, exec) && !ignore_failures) return 0;
inet6.c:123:  if (!execute("/bin/ip -6 addr add %address%[[/%netmask%]] [[scope %scope%]] dev %iface% [[preferred_lft %preferred-lifetime%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:126:  if (!execute("/bin/ip -6 addr add %address%[[/%netmask%]] [[scope %scope%]] dev %iface% [[preferred_lft %preferred-lifetime%]] nodad", ifd, exec) && !ignore_failures) return 0;
inet6.c:129:  if (!execute("[[ /bin/ip -6 route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:132:  if (!execute("/lib/ifupdown/settle-dad.sh", ifd, exec) && !ignore_failures) return 0;
inet6.c:138:  if (!execute("[[ /bin/ip -6 route del default via %gateway% [[metric %metric%]] dev %iface% ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:141:  if (!execute("/bin/ip -6 addr del %address%[[/%netmask%]] [[scope %scope%]] dev %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:144:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet6.c:157:  if (!execute("-[[/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.mtu=%mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:160:  if (!execute("[[/bin/ip link set dev %iface% address %hwaddress%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:163:  if (!execute("/bin/ip link set dev %iface% up 2>/dev/null || true", ifd, exec) && !ignore_failures) return 0;
inet6.c:169:  if (!execute("/bin/ip link set dev %iface% down 2>/dev/null || true", ifd, exec) && !ignore_failures) return 0;
inet6.c:186:  if (!execute("/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.", ifd, exec) && !ignore_failures) return 0;
inet6.c:189:  if (!execute("-[[/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.accept_ra=%accept_ra%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:192:  if (!execute("-[[/sbin/sysctl -q -e -w net.ipv6.conf.%iface/.//%.autoconf=%autoconf%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:195:  if (!execute("/bin/ip addr flush dev %iface% mngtmpaddr", ifd, exec) && !ignore_failures) return 0;
inet6.c:198:  if (!execute("/bin/ip link set dev %iface% [[address %hwaddress%]] up", ifd, exec) && !ignore_failures) return 0;
inet6.c:201:  if (!execute("/lib/ifupdown/wait-for-ll6.sh", ifd, exec) && !ignore_failures) return 0;
inet6.c:204:  if (!execute("/sbin/dhclient -6 -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -P -N -df /var/lib/dhcp/dhclient.%iface%.leases %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:207:  if (!execute("/sbin/dhclient -6 -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:210:  if (!execute("echo 'No DHCPv6 client software found!' >/dev/stderr; false", ifd, exec) && !ignore_failures) return 0;
inet6.c:216:  if (!execute("/sbin/dhclient -6 -r -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:219:  if (!execute("echo 'No DHCPv6 client software found!' >/dev/stderr; false", ifd, exec) && !ignore_failures) return 0;
inet6.c:222:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet6.c:236:  if (!execute("/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.", ifd, exec) && !ignore_failures) return 0;
inet6.c:239:  if (!execute("/bin/ip tunnel add %iface% mode sit remote %endpoint% [[local %local%]] \
inet6.c:243:  if (!execute("/bin/ip link set %iface% up [[mtu %mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:246:  if (!execute("[[ /bin/ip addr add %address%[[/%netmask%]] dev %iface% [[preferred_lft %preferred-lifetime%]] ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:249:  if (!execute("[[ /bin/ip route add %gateway% dev %iface% ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:252:  if (!execute("[[ /bin/ip route add ::/0 via %gateway% [[metric %metric%]] dev %iface% onlink ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:258:  if (!execute("/bin/ip tunnel del %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:273:  if (!execute("/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.", ifd, exec) && !ignore_failures) return 0;
inet6.c:276:  if (!execute("/bin/ip tunnel add %iface% mode sit remote any local %local% \
inet6.c:280:  if (!execute("/bin/ip link set %iface% up [[mtu %mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:283:  if (!execute("/bin/ip addr add 2002:%hexaddress%::1/16 dev %iface% [[preferred_lft %preferred-lifetime%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:286:  if (!execute("/bin/ip route add 2000::/3 via ::192.88.99.1 [[metric %metric%]] dev %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:292:  if (!execute("/bin/ip -6 route flush dev %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:295:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet6.c:298:  if (!execute("/bin/ip tunnel del %iface%", ifd, exec) && !ignore_failures) return 0;
Binary file ifup matches
interfaces.5:227:in which case the commands are executed in the order in which they appear
interfaces.5:341:(\fIup\fR or \fIpost-down\fR) are executed.
Binary file .git/index matches
defn2c.pl:162:                        print "  if (!execute(\"".quote_chars($1)."\", ifd, exec) && !ignore_failures) return 0;\n";
defn2c.pl:166:                        print "  if (!execute(\"".quote_chars($1)."\", ifd, exec) && !ignore_failures) return 0;\n";
defn2c.pl:170:                        print "  if (!execute(\"".quote_chars($1)."\", ifd, exec) && !ignore_failures) return 0;\n";
interfaces.5.pre:227:in which case the commands are executed in the order in which they appear
interfaces.5.pre:341:(\fIup\fR or \fIpost-down\fR) are executed.
.pc/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch/defn2c.pl:162:                        print "  if (!execute(\"".quote_chars($1)."\", ifd, exec) && !ignore_failures) return 0;\n";
.pc/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch/defn2c.pl:166:                        print "  if (!execute(\"".quote_chars($1)."\", ifd, exec) && !ignore_failures) return 0;\n";
.pc/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch/defn2c.pl:170:                        print "  if (!execute(\"".quote_chars($1)."\", ifd, exec) && !ignore_failures) return 0;\n";
Binary file inet.o matches
Binary file can.o matches
Makefile:12:OBJ := main.o addrfam.o execute.o config.o \
header.h:122:int execute(const char *command, interface_defn *ifd, execfn *exec);
Binary file inet6.o matches
inet.c:17:  if (!execute("/bin/ip link set dev %iface% up", ifd, exec) && !ignore_failures) return 0;
inet.c:23:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet.c:40:  if (!execute("/bin/ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \
inet.c:44:  if (!execute("/bin/ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up", ifd, exec) && !ignore_failures) return 0;
inet.c:47:  if (!execute("[[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]", ifd, exec) && !ignore_failures) return 0;
inet.c:53:  if (!execute("[[ /bin/ip route del default via %gateway% [[metric %metric%]] dev %iface% 2>&1 1>/dev/null || true ]]", ifd, exec) && !ignore_failures) return 0;
inet.c:56:  if (!execute("/bin/ip addr del %address%[[/%netmask%]] [[broadcast %broadcast%]] \
inet.c:60:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet.c:73:  if (!execute("[[/bin/ip link set dev %iface% mtu %mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:76:  if (!execute("[[/bin/ip link set dev %iface% address %hwaddress%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:79:  if (!execute("/bin/ip link set dev %iface% up 2>/dev/null || true", ifd, exec) && !ignore_failures) return 0;
inet.c:85:  if (!execute("/bin/ip link set dev %iface% down 2>/dev/null || true", ifd, exec) && !ignore_failures) return 0;
inet.c:98:  if (!execute("[[/bin/ip link set dev %iface% address %hwaddress%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:101:  if (!execute("/sbin/dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
inet.c:105:  if (!execute("/sbin/pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:108:  if (!execute("/sbin/udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-x hostname:%hostname%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:111:  if (!execute("/sbin/dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
inet.c:115:  if (!execute("echo 'No DHCP client software found!' >/dev/stderr; false", ifd, exec) && !ignore_failures) return 0;
inet.c:121:  if (!execute("/sbin/dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface%", ifd, exec) && !ignore_failures) return 0;
inet.c:124:  if (!execute("/sbin/pump -i %iface% -r", ifd, exec) && !ignore_failures) return 0;
inet.c:127:  if (!execute("if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi", ifd, exec) && !ignore_failures) return 0;
inet.c:130:  if (!execute("/sbin/dhcpcd -k %iface%", ifd, exec) && !ignore_failures) return 0;
inet.c:133:  if (!execute("echo 'No DHCP client software found!' >/dev/stderr; false", ifd, exec) && !ignore_failures) return 0;
inet.c:136:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet.c:148:  if (!execute("/sbin/bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
inet.c:155:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet.c:167:  if (!execute("/bin/ip tunnel add %iface% mode %mode% remote %endpoint% [[local %local%]] \
inet.c:171:  if (!execute("/bin/ip link set %iface% up [[mtu %mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:174:  if (!execute("/bin/ip addr add %address%/%netmask% dev %iface% [[peer %dstaddr%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:177:  if (!execute("[[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]", ifd, exec) && !ignore_failures) return 0;
inet.c:183:  if (!execute("/bin/ip tunnel del %iface%", ifd, exec) && !ignore_failures) return 0;
inet.c:195:  if (!execute("/usr/bin/pon [[%provider%]] [[unit %unit%]] [[%options%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:201:  if (!execute("/usr/bin/poff [[%provider%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:213:  if (!execute("/sbin/start-stop-daemon --start -x /usr/bin/wvdial \
inet.c:220:  if (!execute("/sbin/start-stop-daemon --stop -x /usr/bin/wvdial \
inet.c:233:  if (!execute("/usr/sbin/avahi-autoipd -D %iface%", ifd, exec) && !ignore_failures) return 0;
inet.c:239:  if (!execute("/usr/sbin/avahi-autoipd --kill %iface%", ifd, exec) && !ignore_failures) return 0;
Binary file link.o matches
examples/network-interfaces:31:# weird broadcast address: (the "up" lines are executed verbatim when the
examples/network-interfaces:49:# removed from the interfaces state so you will see it up until you execute:
examples/generate-interfaces.pl:27:open (IFC,"ifconfig -a | ") || die ("Could not execute ifconfig: $!\n");
examples/generate-interfaces.pl:64:open (ROU,"route -n | ") || die ("Could not execute route: $!\n");
debian/changelog:1191:       it to release the DHCP release an execute the hook script before
contrib/ifstate-check:35:open (IPLINK,"ip link show|") || die ("Could not execute ip: $!\n");
ipx.c:17:  if (!execute("ipx_interface add %iface% %frame% %netnum%", ifd, exec) && !ignore_failures) return 0;
ipx.c:23:  if (!execute("ipx_interface del %iface% %frame%", ifd, exec) && !ignore_failures) return 0;
ipx.c:35:  if (!execute("ipx_interface add %iface% %frame%", ifd, exec) && !ignore_failures) return 0;
ipx.c:41:  if (!execute("ipx_interface del %iface% %frame%", ifd, exec) && !ignore_failures) return 0;
Binary file execute.o matches
link.c:23:  if (!execute("if test -d /sys/class/net/%link% -a \
link.c:35:  if (!execute("-/bin/ip link set up dev %iface% 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
link.c:38:  if (!execute("[[/bin/ip link set %iface0% alias \"%description%\"]]", ifd, exec) && !ignore_failures) return 0;
link.c:44:  if (!execute("if test -d /sys/class/net/%link%/device/infiniband; then \
link.c:51:  if (!execute("-/bin/ip link set down dev %iface% 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
link.c:54:  if (!execute("[[-test -n \"%description%\" && /bin/echo > /sys/class/net/%iface0%/ifalias]]", ifd, exec) && !ignore_failures) return 0;
can.c:17:  if (!execute("ip link set %iface% type can bitrate %bitrate%", ifd, exec) && !ignore_failures) return 0;
can.c:20:  if (!execute("[[ ip link set %iface% type can loopback %loopback% ]]", ifd, exec) && !ignore_failures) return 0;
can.c:23:  if (!execute("[[ ip link set %iface% type can listen-only %listenonly% ]]", ifd, exec) && !ignore_failures) return 0;
can.c:26:  if (!execute("[[ ip link set %iface% type can triple-sampling %triple% ]]", ifd, exec) && !ignore_failures) return 0;
can.c:29:  if (!execute("[[ ip link set %iface% type can one-shot %oneshot% ]]", ifd, exec) && !ignore_failures) return 0;
can.c:32:  if (!execute("[[ ip link set %iface% type can berr-reporting %berr% ]]", ifd, exec) && !ignore_failures) return 0;
can.c:35:  if (!execute("ip link set %iface% up", ifd, exec) && !ignore_failures) return 0;
can.c:41:  if (!execute("ip link set %iface% down", ifd, exec) && !ignore_failures) return 0;
Binary file ipx.o matches
ifup.8:139:Show commands as they are executed.
execute.c:159:static int execute_options(interface_defn *ifd, execfn *exec, char *opt) {
execute.c:169:static int execute_scripts(interface_defn *ifd, execfn *exec, char *opt) {
execute.c:191:  if (!execute_options(iface, doit, "pre-up"))
execute.c:194:  if (!execute_scripts(iface, doit, "pre-up"))
execute.c:206:  if (!execute_options(iface, doit, "up"))
execute.c:209:  if (!execute_scripts(iface, doit, "up"))
execute.c:251:  if (!execute_scripts(iface, doit, "down"))
execute.c:254:  if (!execute_options(iface, doit, "down"))
execute.c:266:  if (!execute_scripts(iface, doit, "post-down"))
execute.c:269:  if (!execute_options(iface, doit, "post-down"))
execute.c:435:int execute(const char *command, interface_defn *ifd, execfn *exec) {
execute.c:589:          fprintf(stderr, "Could not execute mapping script %s on %s: %s\n", map->script, physical, strerror(errno));
hbai@pek-lpgtest5:/buildarea2/hbai/wr/10/build/tmp-glibc/work/core2-64-wrs-linux/ifupdown/0.8.16-r0/git$


hbai@pek-lpgtest5:/buildarea2/hbai/wr/10/build/tmp-glibc/work/core2-64-wrs-linux/ifupdown/0.8.16-r0/git$ grep -rn "bin\/ip"
inet6.defn:28:    /bin/ip addr flush dev %iface% mngtmpaddr \
inet6.defn:30:    /bin/ip link set dev %iface% up
inet6.defn:40:    /bin/ip -6 addr flush dev %iface% scope global
inet6.defn:41:    /bin/ip link set dev %iface% down \
inet6.defn:48:    -/bin/ip link set dev %iface% up 2>/dev/null if (!iface_is_lo())
inet6.defn:49:    -/bin/ip addr add dev %iface% ::1 2>/dev/null if (!iface_is_lo())
inet6.defn:51:    -/bin/ip addr del dev %iface% ::1 2>/dev/null if (!iface_is_lo())
inet6.defn:52:    -/bin/ip link set dev %iface% down 2>/dev/null if (!iface_is_lo())
inet6.defn:90:    /bin/ip addr flush dev %iface% mngtmpaddr \
inet6.defn:92:    /bin/ip link set dev %iface% [[address %hwaddress%]] up
inet6.defn:93:    /bin/ip -6 addr add %address%[[/%netmask%]] [[scope %scope%]] dev %iface% [[preferred_lft %preferred-lifetime%]] \
inet6.defn:95:    /bin/ip -6 addr add %address%[[/%netmask%]] [[scope %scope%]] dev %iface% [[preferred_lft %preferred-lifetime%]] nodad \
inet6.defn:97:    [[ /bin/ip -6 route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
inet6.defn:101:    [[ /bin/ip -6 route del default via %gateway% [[metric %metric%]] dev %iface% ]]
inet6.defn:102:    /bin/ip -6 addr del %address%[[/%netmask%]] [[scope %scope%]] dev %iface%
inet6.defn:103:    /bin/ip link set dev %iface% down \
inet6.defn:121:    [[/bin/ip link set dev %iface% address %hwaddress%]]
inet6.defn:122:    /bin/ip link set dev %iface% up 2>/dev/null || true
inet6.defn:125:    /bin/ip link set dev %iface% down 2>/dev/null || true \
inet6.defn:149:    /bin/ip addr flush dev %iface% mngtmpaddr \
inet6.defn:151:    /bin/ip link set dev %iface% [[address %hwaddress%]] up
inet6.defn:166:    /bin/ip link set dev %iface% down \
inet6.defn:192:    /bin/ip tunnel add %iface% mode sit remote %endpoint% [[local %local%]] \
inet6.defn:194:    /bin/ip link set %iface% up [[mtu %mtu%]]
inet6.defn:195:    [[ /bin/ip addr add %address%[[/%netmask%]] dev %iface% [[preferred_lft %preferred-lifetime%]] ]]
inet6.defn:196:    [[ /bin/ip route add %gateway% dev %iface% ]]
inet6.defn:197:    [[ /bin/ip route add ::/0 via %gateway% [[metric %metric%]] dev %iface% onlink ]]
inet6.defn:200:    /bin/ip tunnel del %iface%
inet6.defn:221:    /bin/ip tunnel add %iface% mode sit remote any local %local% \
inet6.defn:223:    /bin/ip link set %iface% up [[mtu %mtu%]]
inet6.defn:224:    /bin/ip addr add 2002:%hexaddress%::1/16 dev %iface% [[preferred_lft %preferred-lifetime%]]
inet6.defn:225:    /bin/ip route add 2000::/3 via ::192.88.99.1 [[metric %metric%]] dev %iface%
inet6.defn:228:    /bin/ip -6 route flush dev %iface%
inet6.defn:229:    /bin/ip link set dev %iface% down
inet6.defn:230:    /bin/ip tunnel del %iface%
inet6.c:33:  if (!execute("/bin/ip addr flush dev %iface% mngtmpaddr", ifd, exec) && !ignore_failures) return 0;
inet6.c:36:  if (!execute("/bin/ip link set dev %iface% up", ifd, exec) && !ignore_failures) return 0;
inet6.c:54:  if (!execute("/bin/ip -6 addr flush dev %iface% scope global", ifd, exec) && !ignore_failures) return 0;
inet6.c:57:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet6.c:69:  if (!execute("-/bin/ip link set dev %iface% up 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
inet6.c:72:  if (!execute("-/bin/ip addr add dev %iface% ::1 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
inet6.c:78:  if (!execute("-/bin/ip addr del dev %iface% ::1 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
inet6.c:81:  if (!execute("-/bin/ip link set dev %iface% down 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
inet6.c:117:  if (!execute("/bin/ip addr flush dev %iface% mngtmpaddr", ifd, exec) && !ignore_failures) return 0;
inet6.c:120:  if (!execute("/bin/ip link set dev %iface% [[address %hwaddress%]] up", ifd, exec) && !ignore_failures) return 0;
inet6.c:123:  if (!execute("/bin/ip -6 addr add %address%[[/%netmask%]] [[scope %scope%]] dev %iface% [[preferred_lft %preferred-lifetime%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:126:  if (!execute("/bin/ip -6 addr add %address%[[/%netmask%]] [[scope %scope%]] dev %iface% [[preferred_lft %preferred-lifetime%]] nodad", ifd, exec) && !ignore_failures) return 0;
inet6.c:129:  if (!execute("[[ /bin/ip -6 route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:138:  if (!execute("[[ /bin/ip -6 route del default via %gateway% [[metric %metric%]] dev %iface% ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:141:  if (!execute("/bin/ip -6 addr del %address%[[/%netmask%]] [[scope %scope%]] dev %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:144:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet6.c:160:  if (!execute("[[/bin/ip link set dev %iface% address %hwaddress%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:163:  if (!execute("/bin/ip link set dev %iface% up 2>/dev/null || true", ifd, exec) && !ignore_failures) return 0;
inet6.c:169:  if (!execute("/bin/ip link set dev %iface% down 2>/dev/null || true", ifd, exec) && !ignore_failures) return 0;
inet6.c:195:  if (!execute("/bin/ip addr flush dev %iface% mngtmpaddr", ifd, exec) && !ignore_failures) return 0;
inet6.c:198:  if (!execute("/bin/ip link set dev %iface% [[address %hwaddress%]] up", ifd, exec) && !ignore_failures) return 0;
inet6.c:222:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet6.c:239:  if (!execute("/bin/ip tunnel add %iface% mode sit remote %endpoint% [[local %local%]] \
inet6.c:243:  if (!execute("/bin/ip link set %iface% up [[mtu %mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:246:  if (!execute("[[ /bin/ip addr add %address%[[/%netmask%]] dev %iface% [[preferred_lft %preferred-lifetime%]] ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:249:  if (!execute("[[ /bin/ip route add %gateway% dev %iface% ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:252:  if (!execute("[[ /bin/ip route add ::/0 via %gateway% [[metric %metric%]] dev %iface% onlink ]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:258:  if (!execute("/bin/ip tunnel del %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:276:  if (!execute("/bin/ip tunnel add %iface% mode sit remote any local %local% \
inet6.c:280:  if (!execute("/bin/ip link set %iface% up [[mtu %mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:283:  if (!execute("/bin/ip addr add 2002:%hexaddress%::1/16 dev %iface% [[preferred_lft %preferred-lifetime%]]", ifd, exec) && !ignore_failures) return 0;
inet6.c:286:  if (!execute("/bin/ip route add 2000::/3 via ::192.88.99.1 [[metric %metric%]] dev %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:292:  if (!execute("/bin/ip -6 route flush dev %iface%", ifd, exec) && !ignore_failures) return 0;
inet6.c:295:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet6.c:298:  if (!execute("/bin/ip tunnel del %iface%", ifd, exec) && !ignore_failures) return 0;
Binary file ifup matches
Binary file inet.o matches
Binary file inet6.o matches
inet.c:17:  if (!execute("/bin/ip link set dev %iface% up", ifd, exec) && !ignore_failures) return 0;
inet.c:23:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet.c:40:  if (!execute("/bin/ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \
inet.c:44:  if (!execute("/bin/ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up", ifd, exec) && !ignore_failures) return 0;
inet.c:47:  if (!execute("[[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]", ifd, exec) && !ignore_failures) return 0;
inet.c:53:  if (!execute("[[ /bin/ip route del default via %gateway% [[metric %metric%]] dev %iface% 2>&1 1>/dev/null || true ]]", ifd, exec) && !ignore_failures) return 0;
inet.c:56:  if (!execute("/bin/ip addr del %address%[[/%netmask%]] [[broadcast %broadcast%]] \
inet.c:60:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet.c:73:  if (!execute("[[/bin/ip link set dev %iface% mtu %mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:76:  if (!execute("[[/bin/ip link set dev %iface% address %hwaddress%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:79:  if (!execute("/bin/ip link set dev %iface% up 2>/dev/null || true", ifd, exec) && !ignore_failures) return 0;
inet.c:85:  if (!execute("/bin/ip link set dev %iface% down 2>/dev/null || true", ifd, exec) && !ignore_failures) return 0;
inet.c:98:  if (!execute("[[/bin/ip link set dev %iface% address %hwaddress%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:136:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet.c:155:  if (!execute("/bin/ip link set dev %iface% down", ifd, exec) && !ignore_failures) return 0;
inet.c:167:  if (!execute("/bin/ip tunnel add %iface% mode %mode% remote %endpoint% [[local %local%]] \
inet.c:171:  if (!execute("/bin/ip link set %iface% up [[mtu %mtu%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:174:  if (!execute("/bin/ip addr add %address%/%netmask% dev %iface% [[peer %dstaddr%]]", ifd, exec) && !ignore_failures) return 0;
inet.c:177:  if (!execute("[[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]", ifd, exec) && !ignore_failures) return 0;
inet.c:183:  if (!execute("/bin/ip tunnel del %iface%", ifd, exec) && !ignore_failures) return 0;
Binary file link.o matches
link.defn:22:            /bin/ip link set up dev %link%; \
link.defn:23:            /bin/ip link add link %link% name %iface0% type vlan id %vlan_id%; \
link.defn:26:    -/bin/ip link set up dev %iface% 2>/dev/null \
link.defn:28:    [[/bin/ip link set %iface0% alias "%description%"]]
link.defn:33:        /bin/ip link del %iface%; \
link.defn:35:    -/bin/ip link set down dev %iface% 2>/dev/null \
tests/linux/up.18:5:/bin/ip link set up dev lo 2>/dev/null
tests/linux/up.18:14:/bin/ip link set dev eth0 up 2>/dev/null || true
tests/linux/up.18:19:/bin/ip link set dev eth1 up 2>/dev/null || true
tests/linux/up.18:24:/bin/ip link set dev eth2 up 2>/dev/null || true
tests/linux/up.18:30:/bin/ip link set dev eth3 up 2>/dev/null || true
tests/linux/up.13:6:/bin/ip link set up dev lo 2>/dev/null
tests/linux/down.4:7:/bin/ip addr del 1.2.3.4/255.255.255.0 broadcast 1.2.3.255           dev eth0 label eth0
tests/linux/down.4:8:/bin/ip link set dev eth0 down
tests/linux/down.9:6:/bin/ip -6 route flush dev tunnel
tests/linux/down.9:7:/bin/ip link set dev tunnel down
tests/linux/down.9:8:/bin/ip tunnel del tunnel
tests/linux/up.6:8:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255     dev eth0 label eth0
tests/linux/up.6:9:/bin/ip link set dev eth0  address 00:DE:AD:00:BE:AF up
tests/linux/up.1:8:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255     dev eth0 label eth0
tests/linux/up.1:9:/bin/ip link set dev eth0   up
tests/linux/up.1:17:/bin/ip addr add 1.2.3.4/255.252.0.0 broadcast 1.3.255.255    dev eth1 label eth1
tests/linux/up.1:18:/bin/ip link set dev eth1   up
tests/linux/up.1:26:/bin/ip addr add 1.2.3.4/255.255.255.128 broadcast 1.2.3.127          dev eth2 label eth2
tests/linux/up.1:27:/bin/ip link set dev eth2   up
tests/linux/up.1:35:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.0      dev eth3 label eth3
tests/linux/up.1:36:/bin/ip link set dev eth3   up
tests/linux/up.1:42:/bin/ip addr add 1.2.3.4/255.255.255.252 broadcast 1.2.3.4    dev eth3 label eth3
tests/linux/up.1:43:/bin/ip link set dev eth3   up
tests/linux/up.1:49:/bin/ip addr add 1.2.3.4/255.255.255.254 broadcast 255.255.255.255    dev eth3 label eth3
tests/linux/up.1:50:/bin/ip link set dev eth3   up
tests/linux/up.1:56:/bin/ip addr add 1.2.3.4/255.255.255.254 broadcast 0.0.0.0    dev eth3 label eth3
tests/linux/up.1:57:/bin/ip link set dev eth3   up
tests/linux/up.17:5:/bin/ip link set up dev lo 2>/dev/null
tests/linux/up.17:10:/bin/ip link set eth0 alias "foo"
tests/linux/up.17:15:/bin/ip link set dev eth0 up 2>/dev/null || true
tests/linux/up.17:17:/bin/ip link set eth1 alias "foo bar with spaces"
tests/linux/up.17:22:/bin/ip link set dev eth1 up 2>/dev/null || true
tests/linux/up.17:24:/bin/ip link set eth2 alias "works with ipv6 too"
tests/linux/up.17:29:/bin/ip link set dev eth2 up 2>/dev/null || true
tests/linux/up.9:8:/bin/ip tunnel add tunnel mode sit remote any local 2.3.4.5
tests/linux/up.9:9:/bin/ip link set tunnel up
tests/linux/up.9:10:/bin/ip addr add 2002:0203:0405::1/16 dev tunnel
tests/linux/up.9:11:/bin/ip route add 2000::/3 via ::192.88.99.1  dev tunnel
tests/linux/up.4:7:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255     dev eth0 label eth0
tests/linux/up.4:8:/bin/ip link set dev eth0   up
tests/linux/up.3:9:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255     dev eth0 label eth0
tests/linux/up.3:10:/bin/ip link set dev eth0   up
tests/linux/up.3:20:/bin/ip link set dev eth0  up
tests/linux/up.3:21:/bin/ip -6 addr add 3ffe:ffff:100:f101::1/64  dev eth0  nodad
tests/linux/up.3:31:/bin/ip link set dev eth0  up
tests/linux/up.3:32:/bin/ip -6 addr add 3ffe:ffff:100:f101::2/64  dev eth0  nodad
tests/linux/up.3:42:/bin/ip link set dev eth0  up
tests/linux/up.3:43:/bin/ip -6 addr add 3ffe:ffff:100:f101::3/64  dev eth0  nodad
tests/linux/up.3:53:/bin/ip link set dev eth0  up
tests/linux/up.3:54:/bin/ip -6 addr add 3ffe:ffff:100:f101::4  dev eth0  nodad
tests/linux/up.3:64:/bin/ip link set dev eth0  up
tests/linux/up.3:65:/bin/ip -6 addr add 3ffe:ffff:100:f101::5/128  dev eth0  nodad
tests/linux/up.3:75:/bin/ip link set dev eth0  up
tests/linux/up.3:76:/bin/ip -6 addr add 64  dev eth0  nodad
tests/linux/up.3:90:/bin/ip addr flush dev eth1 mngtmpaddr
tests/linux/up.3:91:/bin/ip link set dev eth1  up
tests/linux/up.3:92:/bin/ip -6 addr add 3ffe:ffff:100:f102::1/64  dev eth1  nodad
tests/linux/up.3:93: /bin/ip -6 route add default via 3ffe:ffff:100:f102::fff  dev eth1 onlink
tests/linux/up.3:102:/bin/ip link set dev eth1  up
tests/linux/up.3:103:/bin/ip -6 addr add 3ffe:ffff:100:f102::6/64  dev eth1  nodad
tests/linux/up.3:104: /bin/ip -6 route add default via 3ffe:ffff:100:f102::fff  dev eth1 onlink
tests/linux/up.2:8:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255     dev eth0 label eth0
tests/linux/up.2:9:/bin/ip link set dev eth0   up
tests/linux/up.2:15:/bin/ip addr add 1.3.4.5/255.255.255.0 broadcast 1.3.4.255    dev eth1 label eth1
tests/linux/up.2:16:/bin/ip link set dev eth1   up
tests/linux/up.2:22:/bin/ip addr add 1.4.5.6/255.255.255.0 broadcast 1.4.5.255    dev eth2 label eth2
tests/linux/up.2:23:/bin/ip link set dev eth2   up
tests/linux/up.2:29:/bin/ip addr add 1.5.6.7/255.255.255.0 broadcast 1.5.6.255    dev eth3 label eth3
tests/linux/up.2:30:/bin/ip link set dev eth3   up
tests/linux/up.2:36:/bin/ip addr add 1.7.8.9/255.255.255.0 broadcast 1.7.8.255    dev eth4 label eth4
tests/linux/up.2:37:/bin/ip link set dev eth4   up
tests/linux/up.2:43:/bin/ip addr add 1.8.9.10/255.255.255.0 broadcast 1.8.9.255           dev eth5 label eth5
tests/linux/up.2:44:/bin/ip link set dev eth5   up
tests/linux/up.16:5:/bin/ip link set up dev lo 2>/dev/null
tests/linux/up.16:13:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255           dev eth0 label eth0
tests/linux/up.16:14:/bin/ip link set dev eth0   up
tests/linux/up.16:20:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255           dev eth1 label eth1
tests/linux/up.16:21:/bin/ip link set dev eth1 mtu 1500 address 12:34:56:89:0a:bc up
tests/linux/up.16:31:/bin/ip link set dev eth1 address 12:34:ff:fe:0a:bc up
tests/linux/up.16:32:/bin/ip -6 addr add 3ffe:ffff:120::fffe:1/64  dev eth1
tests/linux/up.16:38:/bin/ip addr add 1.2.3.5/255.255.255.0 broadcast 1.2.3.255           dev eth2 label eth2
tests/linux/up.16:39:/bin/ip link set dev eth2 mtu 1500 address 12:34:56:89:0a:bc up
tests/linux/up.16:49:/bin/ip link set dev eth2 address 12:34:ff:fe:0a:bc up
tests/linux/up.16:50:/bin/ip -6 addr add 3ffe:ffff:120::fffe:1/64  dev eth2
tests/linux/up.16:56:/bin/ip addr add 1.2.3.5/255.255.255.0 broadcast 1.2.3.255           dev eth3 label eth3
tests/linux/up.16:57:/bin/ip link set dev eth3 mtu 1500 address 12:34:56:89:0a:bc up
tests/linux/up.8:8:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255     dev eth1 label eth1
tests/linux/up.8:9:/bin/ip link set dev eth1   up
tests/linux/up.8:17:/bin/ip addr add 1.5.3.4/255.255.255.0 broadcast 1.5.3.255    dev eth1:1 label eth1:1
tests/linux/up.8:18:/bin/ip link set dev eth1:1   up
tests/linux/up.8:23:if test -d /sys/class/net/eth2 -a             ! -d /sys/class/net/eth2.2 ;     then         if test -d /sys/class/net/eth2/device/infiniband; then             echo 0x2 > /sys/class/net/eth2/create_child;         else             /bin/ip link set up dev eth2;             /bin/ip link add link eth2 name eth2.2 type vlan id 2;    fi;     fi
tests/linux/up.8:27:/bin/ip addr add 2.3.4.5/255.255.255.0 broadcast 2.3.4.255    dev eth2.2 label eth2.2
tests/linux/up.8:28:/bin/ip link set dev eth2.2   up
tests/linux/up.8:31:if test -d /sys/class/net/eth2 -a             ! -d /sys/class/net/eth2.2 ;     then         if test -d /sys/class/net/eth2/device/infiniband; then             echo 0x2 > /sys/class/net/eth2/create_child;         else             /bin/ip link set up dev eth2;             /bin/ip link add link eth2 name eth2.2 type vlan id 2;    fi;     fi
tests/linux/up.8:35:/bin/ip addr add 3.4.5.6/255.255.254.0 broadcast 3.4.5.255    dev eth2.2:3 label eth2.2:3
tests/linux/up.8:36:/bin/ip link set dev eth2.2:3   up
tests/linux/up.7:8:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255     dev eth0 label eth0
tests/linux/up.7:9:/bin/ip link set dev eth0   up
tests/linux/up.7:19:/bin/ip addr flush dev eth0 mngtmpaddr
tests/linux/up.7:20:/bin/ip link set dev eth0  up
tests/linux/up.7:21:/bin/ip -6 addr add 3ffe:ffff:100:f101::1/64  dev eth0  nodad
tests/linux/up.7:24:if test -d /sys/class/net/eth0 -a             ! -d /sys/class/net/eth0.1 ;     then         if test -d /sys/class/net/eth0/device/infiniband; then             echo 0x1 > /sys/class/net/eth0/create_child;         else             /bin/ip link set up dev eth0;             /bin/ip link add link eth0 name eth0.1 type vlan id 1;    fi;     fi
tests/linux/up.7:33:/bin/ip link set dev eth0.1  up
tests/linux/up.7:34:/bin/ip -6 addr add 3ffe:ffff:120:f101::1/64  dev eth0.1  nodad
tests/linux/up.7:37:if test -d /sys/class/net/eth0 -a             ! -d /sys/class/net/eth0.0201 ;     then         if test -d /sys/class/net/eth0/device/infiniband; then             echo 0x0201 > /sys/class/net/eth0/create_child;         else             /bin/ip link set up dev eth0;             /bin/ip link add link eth0 name eth0.0201 type vlan id 201;         fi;     fi
tests/linux/up.7:41:/bin/ip addr add 192.168.0.1/255.255.255.128 broadcast 192.168.0.127          dev eth0.0201 label eth0.0201
tests/linux/up.7:42:/bin/ip link set dev eth0.0201   up
tests/linux/up.7:50:/bin/ip link set dev br0.0201 up 2>/dev/null || true
tests/linux/up.7:52:if test -d /sys/class/net/br0 -a             ! -d /sys/class/net/br0.0202 ;     then         if test -d /sys/class/net/br0/device/infiniband; then             echo 0x0202 > /sys/class/net/br0/create_child;         else             /bin/ip link set up dev br0;             /bin/ip link add link br0 name br0.0202 type vlan id 202;        fi;     fi
tests/linux/up.7:58:/bin/ip link set dev br0.0202 up 2>/dev/null || true
tests/linux/up.7:64:/bin/ip tunnel add tunnel mode sit remote any local 1.2.3.4
tests/linux/up.7:65:/bin/ip link set tunnel up
tests/linux/up.7:66:/bin/ip addr add 2002:0102:0304::1/16 dev tunnel
tests/linux/up.7:67:/bin/ip route add 2000::/3 via ::192.88.99.1  dev tunnel
tests/linux/up.5:8:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255     dev eth0 label eth0
tests/linux/up.5:9:/bin/ip link set dev eth0  address 00:DE:AD:00:BE:AF up
tests/linux/up.11:9:/bin/ip link set dev lo up
tests/linux/up.11:14:/bin/ip addr add 1.2.3.4/255.255.255.0 broadcast 1.2.3.255           dev eth0 label eth0
tests/linux/up.11:15:/bin/ip link set dev eth0   up
inet.defn:9:    /bin/ip link set dev %iface% up if (!iface_is_lo())
inet.defn:12:    /bin/ip link set dev %iface% down if (!iface_is_lo())
inet.defn:39:    /bin/ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \
inet.defn:41:    /bin/ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up
inet.defn:43:    [[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
inet.defn:46:    [[ /bin/ip route del default via %gateway% [[metric %metric%]] dev %iface% 2>&1 1>/dev/null || true ]]
inet.defn:47:    /bin/ip addr del %address%[[/%netmask%]] [[broadcast %broadcast%]] \
inet.defn:49:    /bin/ip link set dev %iface% down \
inet.defn:66:    [[/bin/ip link set dev %iface% mtu %mtu%]]
inet.defn:67:    [[/bin/ip link set dev %iface% address %hwaddress%]]
inet.defn:68:    /bin/ip link set dev %iface% up 2>/dev/null || true
inet.defn:71:    /bin/ip link set dev %iface% down 2>/dev/null || true \
inet.defn:96:    [[/bin/ip link set dev %iface% address %hwaddress%]]
inet.defn:122:    /bin/ip link set dev %iface% down \
inet.defn:141:    /bin/ip link set dev %iface% down \
inet.defn:161:    /bin/ip tunnel add %iface% mode %mode% remote %endpoint% [[local %local%]] \
inet.defn:163:    /bin/ip link set %iface% up [[mtu %mtu%]]
inet.defn:164:    /bin/ip addr add %address%/%netmask% dev %iface% [[peer %dstaddr%]]
inet.defn:165:    [[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
inet.defn:167:    /bin/ip tunnel del %iface%
link.c:29:            /bin/ip link set up dev %link%; \
link.c:30:            /bin/ip link add link %link% name %iface0% type vlan id %vlan_id%; \
link.c:35:  if (!execute("-/bin/ip link set up dev %iface% 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
link.c:38:  if (!execute("[[/bin/ip link set %iface0% alias \"%description%\"]]", ifd, exec) && !ignore_failures) return 0;
link.c:47:        /bin/ip link del %iface%; \
link.c:51:  if (!execute("-/bin/ip link set down dev %iface% 2>/dev/null", ifd, exec) && !ignore_failures) return 0;
hbai@pek-lpgtest5:/buildarea2/hbai/wr/10/build/tmp-glibc/work/core2-64-wrs-linux/ifupdown/0.8.16-r0/git$
=============================================================================================

We  used git://anonscm.debian.org/git/collab-maint/ifupdown.git,  this is in continuous development,  it's sure lots of this kind of code will be pull in.

3.  I have checked all the shell commands used in the current version ,  except "/bin/ip",   other commands' path are right  and same to the path in our rootfs. 

B,R
Haiqing Bai  

-----Original Message-----
From: MacLeod, Randy 
Sent: 2018年7月13日 4:19
To: Andreas Oberritter; openembedded-core@lists.openembedded.org; Bai, Haiqing
Subject: Re: [OE-core] [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2'

On 07/11/2018 04:41 AM, Andreas Oberritter wrote:
> On Wed, 11 Jul 2018 14:01:17 +0800
> Haiqing Bai <Haiqing.Bai@windriver.com> wrote:
> 
>> Some applications which depend on iproute/iproute2 need to
>> run '/sbin/ip.iproute2' through the symbol link '/bin/ip'
>> e.g ifupdown.
> 
> Update-alternatives is supposed to create this link already.

I assume that update-alternatives is creating
    /sbin/ip -> /sbin/ip.iproute2
but for some reason ipupdown is looking for
    /bin/ip

Is that right Haiqing ?

Why not fix ifupdown?

../Randy

> 
>>
>> Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
>> ---
>>   meta/recipes-connectivity/iproute2/iproute2.inc | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/meta/recipes-connectivity/iproute2/iproute2.inc b/meta/recipes-connectivity/iproute2/iproute2.inc
>> index 4fbfec6f08..71d04a1021 100644
>> --- a/meta/recipes-connectivity/iproute2/iproute2.inc
>> +++ b/meta/recipes-connectivity/iproute2/iproute2.inc
>> @@ -29,6 +29,8 @@ do_configure_append () {
>>   do_install () {
>>       oe_runmake DESTDIR=${D} install
>>       mv ${D}${base_sbindir}/ip ${D}${base_sbindir}/ip.iproute2
>> +    install -d ${D}${base_bindir}
>> +    ln -s ${base_sbindir}/ip.iproute2 ${D}${base_bindir}/ip
>>       install -d ${D}${datadir}
>>       mv ${D}/share/* ${D}${datadir}/ || true
>>       rm ${D}/share -rf || true
> 


-- 
# Randy MacLeod
# Wind River Linux

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2'
  2018-07-13  2:06     ` Bai, Haiqing
@ 2018-07-13  9:14       ` Andreas Oberritter
  0 siblings, 0 replies; 5+ messages in thread
From: Andreas Oberritter @ 2018-07-13  9:14 UTC (permalink / raw)
  To: openembedded-core

On Fri, 13 Jul 2018 02:06:41 +0000
"Bai, Haiqing" <Haiqing.Bai@windriver.com> wrote:

> Yes,  you are right.
> 
> The reasons that why not fix ifupdown like below:
> 1.  Some packages assume 'iproute' is their default dependency, not only 'ifupdown'.
> 
> 2. Of course,  the source code of 'ifupdown' is very ugly,  not only  C code but also configure files used lots of shell command with absolute path:

[...]

> 3.  I have checked all the shell commands used in the current version ,  except "/bin/ip",   other commands' path are right  and same to the path in our rootfs. 

I just noticed that Debian and Ubuntu install ip to /bin and create a symlink from /sbin/ip to /bin/ip. How do other distributions like Fedora handle it?

Where does busybox install it to?

If ip gets provided by both iproute2 and busybox, will there be conflicts? If the new symlink doesn't get handled by update-alternatives, /bin/ip might point to iproute2 and /sbin/ip to busybox at the same time.

I think that the ip binary should be moved to /bin and the symlink in /sbin should be handled by update-alternatives, too, for both busybox and iproute2.

Regards,
Andreas


> 
> B,R
> Haiqing Bai  
> 
> -----Original Message-----
> From: MacLeod, Randy 
> Sent: 2018年7月13日 4:19
> To: Andreas Oberritter; openembedded-core@lists.openembedded.org; Bai, Haiqing
> Subject: Re: [OE-core] [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2'
> 
> On 07/11/2018 04:41 AM, Andreas Oberritter wrote:
> > On Wed, 11 Jul 2018 14:01:17 +0800
> > Haiqing Bai <Haiqing.Bai@windriver.com> wrote:
> >   
> >> Some applications which depend on iproute/iproute2 need to
> >> run '/sbin/ip.iproute2' through the symbol link '/bin/ip'
> >> e.g ifupdown.  
> > 
> > Update-alternatives is supposed to create this link already.  
> 
> I assume that update-alternatives is creating
>     /sbin/ip -> /sbin/ip.iproute2
> but for some reason ipupdown is looking for
>     /bin/ip
> 
> Is that right Haiqing ?
> 
> Why not fix ifupdown?
> 
> ../Randy
> 
> >   
> >>
> >> Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
> >> ---
> >>   meta/recipes-connectivity/iproute2/iproute2.inc | 2 ++
> >>   1 file changed, 2 insertions(+)
> >>
> >> diff --git a/meta/recipes-connectivity/iproute2/iproute2.inc b/meta/recipes-connectivity/iproute2/iproute2.inc
> >> index 4fbfec6f08..71d04a1021 100644
> >> --- a/meta/recipes-connectivity/iproute2/iproute2.inc
> >> +++ b/meta/recipes-connectivity/iproute2/iproute2.inc
> >> @@ -29,6 +29,8 @@ do_configure_append () {
> >>   do_install () {
> >>       oe_runmake DESTDIR=${D} install
> >>       mv ${D}${base_sbindir}/ip ${D}${base_sbindir}/ip.iproute2
> >> +    install -d ${D}${base_bindir}
> >> +    ln -s ${base_sbindir}/ip.iproute2 ${D}${base_bindir}/ip
> >>       install -d ${D}${datadir}
> >>       mv ${D}/share/* ${D}${datadir}/ || true
> >>       rm ${D}/share -rf || true  
> >   
> 
> 



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-07-13  9:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-11  6:01 [PATCH] iproute2: create symbol link '/bin/ip' to '/sbin/ip.iproute2' Haiqing Bai
2018-07-11  8:41 ` Andreas Oberritter
2018-07-12 20:19   ` Randy MacLeod
2018-07-13  2:06     ` Bai, Haiqing
2018-07-13  9:14       ` Andreas Oberritter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.