| Submitter | Brad |
|---|---|
| Date | Aug. 29, 2011, 4:49 a.m. |
| Message ID | <20110829044952.GA13256@rox.home.comstyle.com> |
| Download | mbox | patch |
| Permalink | /patch/111957/ |
| State | New |
| Headers | show |
Comments
On Mon, Aug 29, 2011 at 4:49 AM, Brad <brad@comstyle.com> wrote: > Allow overriding the location of Samba's smbd. > > Pretty much every OS I look at has some means of > changing this path (patching) so lets just make > it easier for OS developers creating packages > and/or end users to override the location. > > Signed-off-by: Brad Smith <brad@comstyle.com> > > --- > Makefile.objs | 2 ++ > configure | 7 +++++++ > net.h | 5 ----- > qemu-options.hx | 6 +++--- > 4 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/Makefile.objs b/Makefile.objs > index d1f3e5d..62c03f9 100644 > --- a/Makefile.objs > +++ b/Makefile.objs > @@ -166,6 +166,8 @@ slirp-obj-y += slirp.o mbuf.o misc.o sbuf.o socket.o tcp_input.o tcp_output.o > slirp-obj-y += tcp_subr.o tcp_timer.o udp.o bootp.o tftp.o arp_table.o > common-obj-$(CONFIG_SLIRP) += $(addprefix slirp/, $(slirp-obj-y)) > > +net/slirp.o: QEMU_CFLAGS += -DSMBD_COMMAND=\"${SMBD}\" Instead of -D, please put the command to config-host.h as something like CONFIG_SMBD_COMMAND. That requires also a small change to slirp.c. > + > # xen backend driver support > common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o > common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o xenfb.o xen_disk.o xen_nic.o > diff --git a/configure b/configure > index ad60ea0..4795d05 100755 > --- a/configure > +++ b/configure > @@ -413,6 +413,7 @@ SunOS) > make="${MAKE-gmake}" > install="${INSTALL-ginstall}" > ld="gld" > + smbd="${SMBD-/usr/sfw/sbin/smbd}" > needs_libsunmath="no" > solarisrev=`uname -r | cut -f2 -d.` > # have to select again, because `uname -m` returns i86pc > @@ -481,6 +482,7 @@ fi > : ${make=${MAKE-make}} > : ${install=${INSTALL-install}} > : ${python=${PYTHON-python}} > +: ${smbd=${SMBD-/usr/sbin/smbd}} > > if test "$mingw32" = "yes" ; then > EXESUF=".exe" > @@ -525,6 +527,8 @@ for opt do > ;; > --python=*) python="$optarg" > ;; > + --smbd=*) smbd="$optarg" > + ;; > --extra-cflags=*) > ;; > --extra-ldflags=*) > @@ -941,6 +945,7 @@ echo " --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS" > echo " --make=MAKE use specified make [$make]" > echo " --install=INSTALL use specified install [$install]" > echo " --python=PYTHON use specified python [$python]" > +echo " --smbd=SMBD use specified smbd [$smbd]" > echo " --static enable static build [$static]" > echo " --mandir=PATH install man pages in PATH" > echo " --datadir=PATH install firmware in PATH" > @@ -2666,6 +2671,7 @@ echo "LDFLAGS $LDFLAGS" > echo "make $make" > echo "install $install" > echo "python $python" > +echo "smbd $smbd" > echo "host CPU $cpu" > echo "host big endian $bigendian" > echo "target list $target_list" > @@ -3093,6 +3099,7 @@ echo "OBJCOPY=$objcopy" >> $config_host_mak > echo "LD=$ld" >> $config_host_mak > echo "WINDRES=$windres" >> $config_host_mak > echo "LIBTOOL=$libtool" >> $config_host_mak > +echo "SMBD=$smbd" >> $config_host_mak Then this is not needed. > echo "CFLAGS=$CFLAGS" >> $config_host_mak > echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak > echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak > diff --git a/net.h b/net.h > index 5a7881c..9f633f8 100644 > --- a/net.h > +++ b/net.h > @@ -174,11 +174,6 @@ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data); > > #define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" > #define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" > -#ifdef __sun__ > -#define SMBD_COMMAND "/usr/sfw/sbin/smbd" > -#else > -#define SMBD_COMMAND "/usr/sbin/smbd" > -#endif > > void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd); > > diff --git a/qemu-options.hx b/qemu-options.hx > index d86815d..1db76f1 100644 > --- a/qemu-options.hx > +++ b/qemu-options.hx > @@ -1273,9 +1273,9 @@ or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000). > > Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}. > > -Note that a SAMBA server must be installed on the host OS in > -@file{/usr/sbin/smbd}. QEMU was tested successfully with smbd versions from > -Red Hat 9, Fedora Core 3 and OpenSUSE 11.x. > +Note that a SAMBA server must be installed on the host OS. > +QEMU was tested successfully with smbd versions from Red Hat 9, > +Fedora Core 3 and OpenSUSE 11.x. > > @item hostfwd=[tcp|udp]:[@var{hostaddr}]:@var{hostport}-[@var{guestaddr}]:@var{guestport} > Redirect incoming TCP or UDP connections to the host port @var{hostport} to > -- > 1.7.6 > > > -- > This message has been scanned for viruses and > dangerous content by MailScanner, and is > believed to be clean. > > >
Patch
diff --git a/Makefile.objs b/Makefile.objs index d1f3e5d..62c03f9 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -166,6 +166,8 @@ slirp-obj-y += slirp.o mbuf.o misc.o sbuf.o socket.o tcp_input.o tcp_output.o slirp-obj-y += tcp_subr.o tcp_timer.o udp.o bootp.o tftp.o arp_table.o common-obj-$(CONFIG_SLIRP) += $(addprefix slirp/, $(slirp-obj-y)) +net/slirp.o: QEMU_CFLAGS += -DSMBD_COMMAND=\"${SMBD}\" + # xen backend driver support common-obj-$(CONFIG_XEN_BACKEND) += xen_backend.o xen_devconfig.o common-obj-$(CONFIG_XEN_BACKEND) += xen_console.o xenfb.o xen_disk.o xen_nic.o diff --git a/configure b/configure index ad60ea0..4795d05 100755 --- a/configure +++ b/configure @@ -413,6 +413,7 @@ SunOS) make="${MAKE-gmake}" install="${INSTALL-ginstall}" ld="gld" + smbd="${SMBD-/usr/sfw/sbin/smbd}" needs_libsunmath="no" solarisrev=`uname -r | cut -f2 -d.` # have to select again, because `uname -m` returns i86pc @@ -481,6 +482,7 @@ fi : ${make=${MAKE-make}} : ${install=${INSTALL-install}} : ${python=${PYTHON-python}} +: ${smbd=${SMBD-/usr/sbin/smbd}} if test "$mingw32" = "yes" ; then EXESUF=".exe" @@ -525,6 +527,8 @@ for opt do ;; --python=*) python="$optarg" ;; + --smbd=*) smbd="$optarg" + ;; --extra-cflags=*) ;; --extra-ldflags=*) @@ -941,6 +945,7 @@ echo " --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS" echo " --make=MAKE use specified make [$make]" echo " --install=INSTALL use specified install [$install]" echo " --python=PYTHON use specified python [$python]" +echo " --smbd=SMBD use specified smbd [$smbd]" echo " --static enable static build [$static]" echo " --mandir=PATH install man pages in PATH" echo " --datadir=PATH install firmware in PATH" @@ -2666,6 +2671,7 @@ echo "LDFLAGS $LDFLAGS" echo "make $make" echo "install $install" echo "python $python" +echo "smbd $smbd" echo "host CPU $cpu" echo "host big endian $bigendian" echo "target list $target_list" @@ -3093,6 +3099,7 @@ echo "OBJCOPY=$objcopy" >> $config_host_mak echo "LD=$ld" >> $config_host_mak echo "WINDRES=$windres" >> $config_host_mak echo "LIBTOOL=$libtool" >> $config_host_mak +echo "SMBD=$smbd" >> $config_host_mak echo "CFLAGS=$CFLAGS" >> $config_host_mak echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak diff --git a/net.h b/net.h index 5a7881c..9f633f8 100644 --- a/net.h +++ b/net.h @@ -174,11 +174,6 @@ int do_netdev_del(Monitor *mon, const QDict *qdict, QObject **ret_data); #define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" #define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" -#ifdef __sun__ -#define SMBD_COMMAND "/usr/sfw/sbin/smbd" -#else -#define SMBD_COMMAND "/usr/sbin/smbd" -#endif void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd); diff --git a/qemu-options.hx b/qemu-options.hx index d86815d..1db76f1 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -1273,9 +1273,9 @@ or @file{C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS} (Windows NT/2000). Then @file{@var{dir}} can be accessed in @file{\\smbserver\qemu}. -Note that a SAMBA server must be installed on the host OS in -@file{/usr/sbin/smbd}. QEMU was tested successfully with smbd versions from -Red Hat 9, Fedora Core 3 and OpenSUSE 11.x. +Note that a SAMBA server must be installed on the host OS. +QEMU was tested successfully with smbd versions from Red Hat 9, +Fedora Core 3 and OpenSUSE 11.x. @item hostfwd=[tcp|udp]:[@var{hostaddr}]:@var{hostport}-[@var{guestaddr}]:@var{guestport} Redirect incoming TCP or UDP connections to the host port @var{hostport} to
Allow overriding the location of Samba's smbd. Pretty much every OS I look at has some means of changing this path (patching) so lets just make it easier for OS developers creating packages and/or end users to override the location. Signed-off-by: Brad Smith <brad@comstyle.com> --- Makefile.objs | 2 ++ configure | 7 +++++++ net.h | 5 ----- qemu-options.hx | 6 +++--- 4 files changed, 12 insertions(+), 8 deletions(-)