Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 616640

Summary: net-misc/dhcpcd-7.0.0_beta3: options -G --nogateway no longer exist, disturbs net-misc/netifrc
Product: Gentoo Linux Reporter: Martin Dummer <martin.dummer>
Component: Current packagesAssignee: William Hubbs <williamh>
Status: RESOLVED FIXED    
Severity: normal CC: base-system, martin.dummer, roy
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Martin Dummer 2017-04-26 08:14:03 UTC
The "dhcpcd" dhcp client can be instructed to NOT set the default gateway he obtained from the dhcp server. I use this functionality with the net-misc/netifrc config file /etc/conf.d/net in config statements like 

dhcp_eth0="nogateway"

The /etc/conf.d/net example says:

# Set generic DHCP options like so
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost"

Starting with net-misc/dhcpcd-7.0.0_beta3 this is broken.

Downgrading to net-misc/dhcpcd-6.11.5 restores this functionality

Reproducible: Always
Comment 1 Martin Dummer 2017-04-26 08:15:22 UTC
bln9716w ~ # /usr/bin/emerge --info
Portage 2.3.5 (python 3.4.6-final-0, default/linux/amd64/13.0/desktop/plasma, gcc-5.4.0, glibc-2.24-r1, 4.9.16-gentoo-cel5 x86_64)
=================================================================
System uname: Linux-4.9.16-gentoo-cel5-x86_64-Intel-R-_Xeon-R-_CPU_X5680_@_3.33GHz-with-gentoo-2.3
KiB Mem:    49453612 total,  47717520 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Tue, 25 Apr 2017 08:00:01 +0000
sh bash 4.4_p12
ld GNU ld (Gentoo 2.27 p1.0) 2.27
distcc 3.2rc1 x86_64-pc-linux-gnu [disabled]
app-shells/bash:          4.4_p12::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.24.1-r1::gentoo
dev-lang/python:          2.7.13::gentoo, 3.4.6::gentoo
dev-util/cmake:           3.8.0::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.3::gentoo
sys-apps/openrc:          0.25::gentoo
sys-apps/sandbox:         2.10-r4::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r2::gentoo
sys-devel/automake:       1.11.6-r2::gentoo, 1.12.6-r1::gentoo, 1.13.4-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.27::gentoo
sys-devel/gcc:            4.8.5::gentoo, 5.4.0-r3::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r4::gentoo
sys-devel/make:           4.2.1-r1::gentoo
sys-kernel/linux-headers: 4.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.24-r1::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

bitcoin
    location: /var/lib/layman/bitcoin
    masters: gentoo
    priority: 50

md-private
    location: /var/lib/layman/md-private
    masters: gentoo
    priority: 50

telred
    location: /var/lib/layman/telred
    masters: gentoo
    priority: 50

vdr-devel
    location: /var/lib/layman/vdr-devel
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA dlj-1.1 AdobeFlash-11.x googleearth Oracle-BCLA-JavaSE TeamViewer NVIDIA-CUDA RAR"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=core2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.6/ext-active/ /etc/php/apache2-php7.0/ext-active/ /etc/php/apache2-php7.1/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cgi-php7.1/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/php/cli-php7.0/ext-active/ /etc/php/cli-php7.1/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=core2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --ask-enter-invalid --quiet-build=y --jobs=5"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg compressdebug config-protect-if-modified distlocks ebuild-locks fakeroot fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="C"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j16"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac aalib acl acpi akonadi alsa amd64 ao apache2 apng audiofile bash-completion berkdb bluetooth branding bzip2 cairo captury cardbus cdda cdr cisco cli clucene consolekit cracklib cron crypt css cuda cups curl cxx dbus declarative device-mapper dhcpcd disk-partition dri dts dvb dvd dvdr ebook embedded emboss emerald enca encode exif extras fam ffmpeg firefox flac fontconfig fortran g3dvl gd gdbm geolocation gif gimp git glade glamor glitz gnutls gphoto2 gpm gstreamer gtk httpd hybrid-auth iconv icu id3tag ieee1394 ipod ipv6 java javafx jpeg kde kerberos kipi kvm kwallet lame laptop lcms ldap lensfun libass libkms libnotify libproxy live lm_sensors logrotate lzo macvtap mad mikmod minizip mjpeg mmap mmx mmxext mng mod modules mp3 mp4 mpeg mtp multilib musicbrainz mysql ncurses networkmanager nfsv3 nfsv4 nls nptl nptlonly nsplugin ntlm ntp nvidia ogg old-daemons opencl openexr opengl openipmi openmp pam pango pcre pdf phonon plasma pm-utils png policykit ppds pulseaudio python qemu qml qt3support qt4 qt5 rdesktop rdp readline real resolvconf rss samba sasl sdl seccomp semantic-desktop session smi smp sndfile snmp spell sql sqlite sse sse2 sse3 ssl ssse3 startup-notification stl svg symlink tcpd threads threadsafe thumbnail tiff truetype udev udisks unicode upcall upower usb usbredir utils v4l v4l2 vaapi vcd vdpau vim-syntax vnc vorbis webkit widgets wifi wxwidgets x264 xattr xcb xcomposite xinerama xml xscreensaver xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="canon ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" L10N="en de" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de de_DE" LIRC_DEVICES="userspace" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4" QEMU_SOFTMMU_TARGETS="i386 x86_64 arm" QEMU_USER_TARGETS="i386 x86_64 arm" RUBY_TARGETS="ruby21 ruby22" SANE_BACKENDS="epson epson2" USERLAND="GNU" VIDEO_CARDS="nvidia nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 2 Martin Dummer 2017-04-26 08:44:51 UTC
A more clear explanation:

when a network interface 
- is set to "dhcp" 
- and the dhcp client "dhcpcd" is used 
- and the option "nogateway" is requested 

the start of the service "net.<interfacename>" looks this way:

== snip =============================
bln9716w ~ # service net.br0 start
 * Bringing up interface br0
 *   Creating bridge br0 ...
 *   Adding ports to br0
 *     eth0 ...
       [ ok ] *   dhcp ...
 *     Running dhcpcd ...
dhcpcd: invalid option -- 'G'
usage: dhcpcd   [-46ABbDdEGgHJKkLnPpqTVw]
                [-C, --nohook hook] [-c, --script script]
                [-e, --env value] [-F, --fqdn FQDN] [-f, --config file]
                [-h, --hostname hostname] [-I, --clientid clientid]
                [-i, --vendorclassid vendorclassid] [-l, --leasetime seconds]
                [-m, --metric metric] [-O, --nooption option]
                [-o, --option option] [-Q, --require option]
                [-r, --request address] [-S, --static value]
                [-s, --inform address[/cidr]] [-t, --timeout seconds]
                [-u, --userclass class] [-v, --vendor code, value]
                [-W, --whitelist address[/cidr]] [-y, --reboot seconds]
                [-X, --blacklist address[/cidr]] [-Z, --denyinterfaces pattern]
                [-z, --allowinterfaces pattern] [interface] [...]
       dhcpcd   -k, --release [interface]
       dhcpcd   -U, --dumplease interface
       dhcpcd   --version
       dhcpcd   -x, --exit [interface]
[ !! ] * ERROR: net.br0 failed to start
== snip =============================

so the result is an interface without ip address.
Comment 3 Roy Marples 2017-05-02 20:06:40 UTC
You can get equivalent functionality by removing options from the DHCP response.

For example:
nooption routers
Comment 4 Roy Marples 2017-05-09 11:18:08 UTC
Change reverted upstream here:
https://dev.marples.name/rDHC7921378657f6a40365cedac083a97fc1d7e44540

Tracking task summarizing why it's been reverted and what needs to be changed before it's considered for the drop again:
https://dev.marples.name/T116
Comment 5 William Hubbs gentoo-dev 2017-05-10 20:52:59 UTC
This is fixed in 7.0.0-rc1.