diff options
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | README.newnet | 40 | ||||
-rw-r--r-- | init.d/Makefile | 14 | ||||
-rw-r--r-- | init.d/network.in | 6 | ||||
-rw-r--r-- | init.d/staticroute.in | 5 | ||||
-rw-r--r-- | runlevels/Makefile | 12 |
7 files changed, 64 insertions, 21 deletions
@@ -4,7 +4,12 @@ include Makefile.inc -SUBDIR= conf.d doc etc init.d local.d sysctl.d man net scripts sh src +SUBDIR= conf.d etc init.d local.d man scripts sh src sysctl.d + +# Build our old net foo or not +ifeq (${MKOLDNET},yes) +SUBDIR+= net doc +endif # Build pkgconfig or not MKPKGCONFIG?= yes @@ -16,6 +16,7 @@ MKSELINUX=yes MKSTATICLIBS=no MKTERMCAP=ncurses MKTERMCAP=termcap +MKOLDNET=yes PKG_PREFIX=/usr/pkg LOCAL_PREFIX=/usr/local PREFIX=/usr/local diff --git a/README.newnet b/README.newnet new file mode 100644 index 00000000..2e157e2b --- /dev/null +++ b/README.newnet @@ -0,0 +1,40 @@ +The following applies only to the newnet stack, which is not presently +maintained in OpenRC. The oldnet stack is maintained instead. +- Robin H. Johnson <robbat2@gentoo.org>, 2011/02/21 + +OpenRC Network Ideals +--------------------- + +The new style networking for OpenRC is very simplistic - provide a basic means +of configuring static interface address and routes whilst allowing the +possibility to run any command at any point. + +In a nutshell, init.d/network is a wrapper around ifconfig(8) and +init.d/staticroute is wrapper around route(8). + +In the Perfect World (TM) ifconfig should be able to configure everything +about the interface easily * . The BSD family almost get this right and Linux +epically fails. + +* Only static configuration, including link setup. +For dynamic, static, IPv4LL, arping and per ssid IPv4 setup dhcpcd-5.x +provides your needs. + +It fails because there are many tools to do the same job and often have +vastly different syntax where they could be similar. In other words, there +is no coherence. + +OpenRC-0.4.x and older (inc Gentoo baselayout-1) had a collection of scripts +for each tool and allowed a script per interface. Over the years, this design +has proven very hard to maintain as each user has their own idea of how +things should work. Also, there were (and still are) race conditions. + +So where do we go from here? +Well, it's possible to use the new network scripts using the tools +currently available. It's just harder as you have to know them and their +documentation can be lacking at times. +The correct end goal is a BSD style ifconfig tool. +I've started work on it, but the project has stalled somewhat. +It's display only right now and the source is not yet publicly available. +If you have the skills and share the vision then contact me privately and +we'll take it from there. diff --git a/init.d/Makefile b/init.d/Makefile index 863864f2..82c73afb 100644 --- a/init.d/Makefile +++ b/init.d/Makefile @@ -4,9 +4,15 @@ SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ swclock.in sysctl.in urandom.in ${SRCS-${OS}} BIN= ${OBJS} -INSTALLAFTER= _installafter_net.lo -CLEANFILES+= net.lo -TARGETS+= net.lo +# Build our old net foo or not +ifeq (${MKOLDNET},yes) +_OLDNET= net.lo +endif +_NET_LO= ${_OLDNET} + +INSTALLAFTER= _installafter_${_NET_LO} +CLEANFILES+= ${_NET_LO} +TARGETS+= ${_NET_LO} MK= ../mk include ${MK}/os.mk @@ -39,4 +45,4 @@ include ${MK}/scripts.mk _installafter_: realinstall _installafter_net.lo: realinstall - ${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO-${OS}} + ${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO} diff --git a/init.d/network.in b/init.d/network.in index d65a6a9d..20d46f4a 100644 --- a/init.d/network.in +++ b/init.d/network.in @@ -219,12 +219,6 @@ start() eend $? fi - ewarn - ewarn "The $RC_SVCNAME script is deprecated and will be" - ewarn "removed in the future." - ewarn "Please use the net.* scripts to manage your network interfaces." - ewarn - einfo "Starting network" routeflush if [ "$RC_UNAME" = "Linux" ]; then diff --git a/init.d/staticroute.in b/init.d/staticroute.in index 7ace6591..91b61a40 100644 --- a/init.d/staticroute.in +++ b/init.d/staticroute.in @@ -93,11 +93,6 @@ do_routes() start() { - ewarn - ewarn "The $RC_SVCNAME script is deprecated and will be" - ewarn "removed in the future." - ewarn "Please use the net.* scripts to manage your network interfaces." - ewarn do_routes "Adding" "add" } diff --git a/runlevels/Makefile b/runlevels/Makefile index 468a3753..ac3796e0 100644 --- a/runlevels/Makefile +++ b/runlevels/Makefile @@ -1,5 +1,5 @@ -BOOT= bootmisc fsck hostname localmount \ - root swap swapfiles sysctl urandom ${BOOT-${OS}} +BOOT= bootmisc fsck hostname localmount network \ + root staticroute swap swapfiles sysctl urandom ${BOOT-${OS}} DEFAULT= local netmount SHUTDOWN= savecache ${SHUTDOWN-${OS}} SYSINIT= ${SYSINIT-${OS}} @@ -10,6 +10,8 @@ BOOTDIR= ${LEVELDIR}/boot DEFAULTDIR= ${LEVELDIR}/default SHUTDOWNDIR= ${LEVELDIR}/shutdown +INITDIR= ../init.d + MK= ../mk include ${MK}/sys.mk include ${MK}/os.mk @@ -22,16 +24,16 @@ SYSINIT-${OS}= BOOT-BSD= hostid newsyslog savecore syslogd swap-blk # Generic BSD stuff -BOOT-FreeBSD= hostid net.lo0 newsyslog savecore syslogd +BOOT-FreeBSD= hostid newsyslog savecore syslogd # FreeBSD specific stuff BOOT-FreeBSD+= adjkerntz dumpon syscons -BOOT-Linux= hwclock keymaps modules mtab net.lo procfs termencoding +BOOT-Linux= hwclock keymaps modules mtab procfs termencoding SHUTDOWN-Linux= killprocs mount-ro SYSINIT-Linux= devfs dmesg # Generic BSD stuff -BOOT-NetBSD= hostid net.lo0 newsyslog savecore syslogd +BOOT-NetBSD= hostid newsyslog savecore syslogd # NetBSD specific stuff BOOT-NetBSD+= devdb swap-blk ttys wscons |