From 85519b003ada2a5da1e30e333332b15afadcb563 Mon Sep 17 00:00:00 2001 From: Sheldon Hearn Date: Fri, 14 Dec 2001 11:41:22 +0000 Subject: [PATCH] Add bmake glue for src/contrib/smbfs and connect userland smbfs support to the build. The MFC reminder below is subject to approval prior to 4.5-RELEASE. Reviewed by: bp, fjoe MFC: 1 week --- etc/Makefile | 2 +- etc/nsmb.conf | 55 +++++++++++++++++++++++++++++++++++ include/Makefile | 7 +++++ lib/Makefile | 2 +- lib/libsmb/Makefile | 19 ++++++++++++ sbin/Makefile | 1 + sbin/mount_smbfs/Makefile | 23 +++++++++++++++ usr.bin/Makefile | 1 + usr.bin/smbutil/Makefile | 14 +++++++++ usr.sbin/mount_smbfs/Makefile | 23 +++++++++++++++ 10 files changed, 145 insertions(+), 2 deletions(-) create mode 100644 etc/nsmb.conf create mode 100644 lib/libsmb/Makefile create mode 100644 sbin/mount_smbfs/Makefile create mode 100644 usr.bin/smbutil/Makefile create mode 100644 usr.sbin/mount_smbfs/Makefile diff --git a/etc/Makefile b/etc/Makefile index c693a1a0cb46..6787fd912286 100644 --- a/etc/Makefile +++ b/etc/Makefile @@ -10,7 +10,7 @@ BIN1= amd.map apmd.conf auth.conf \ dhclient.conf dm.conf fbtab ftpusers gettytab group \ hosts hosts.allow hosts.equiv hosts.lpd \ inetd.conf login.access login.conf \ - motd modems netconfig networks newsyslog.conf \ + motd modems netconfig networks newsyslog.conf nsmb.conf \ phones printcap profile protocols \ rc rc.atm rc.devfs rc.diskless1 rc.diskless2 rc.firewall rc.firewall6 \ rc.network rc.network6 rc.pccard rc.serial rc.shutdown \ diff --git a/etc/nsmb.conf b/etc/nsmb.conf new file mode 100644 index 000000000000..9bf26f383aba --- /dev/null +++ b/etc/nsmb.conf @@ -0,0 +1,55 @@ +# $FreeBSD$ +# +# smbfs lookups configuration files in next order: +# 1. ~/.nsmbrc +# 2. /usr/local/etc/nsmb.conf - if this file found it will +# override values with same keys from user files. +# +# +# This file consist from a set of sections. Each section started by section name +# surrounded with square brackets: +# [section_name] +# +# End of the section marked either by new section or by the end of file. +# Each section can contain zero or more parameters: +# [section_name] +# key=value +# +# where 'key' represents parameter name and 'value' a value assigned +# to this parameter. +# +# SMB library uses next forms of section names: +# A) [default] +# B) [SERVER] +# C) [SERVER:USER] +# D) [SERVER:USER:SHARE] +# +# Here is the map of possible keywords: +# +# keyword/section A B C D Comment +# +# addr - + - - IP or IPX address of SMB server +# charsets - + + + local:remote charset pair +# nbns + + - - address of NetBIOS name server (WINS) +# nbscope + + - - NetBIOS scope +# nbtimeout + + - - timeout for NetBIOS name servers +# password - - + + a plain text password used to access to the given share +# retry_count + + - - number of retries before connection marked as broken +# timeout + + - - SMB request timeout +# workgroup + + + + name of workgroup +# + +# A simple configuration example: + +# First, define a workgroup. +#[default] +#workgroup=SALES + +# The 'FSERVER' is an NT server. +#[FSERVER] +#charsets=koi8-r:cp866 +#addr=fserv.coolcorp.com + +[FSERVER:JOE] +# use persistent password cache for user 'joe' +#password=$$1767877DF diff --git a/include/Makefile b/include/Makefile index 3d7b14604f34..01dfc0026611 100644 --- a/include/Makefile +++ b/include/Makefile @@ -26,6 +26,8 @@ ARPAFILES= ftp.h inet.h nameser.h nameser_compat.h telnet.h tftp.h PROTOFILES= dumprestore.h routed.h rwhod.h talkd.h timed.h +NETSMBFILES= nb_lib.h smb_lib.h smb_rap.h + MFILES= float.h floatingpoint.h stdarg.h varargs.h # posix4/aio.h conflicts with dysons and isn't installed: @@ -116,6 +118,11 @@ copies: ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ ${DESTDIR}/usr/include/netinet .endif +.if exists(${.CURDIR}/../sys/contrib/netsmb/include/netsmb) + cd ${.CURDIR}/../sys/contrib/netsmb/include/netsmb; \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ${NETSMBFILES} \ + ${DESTDIR}/usr/include/netsmb +.endif .if exists(${.CURDIR}/../sys/security/lomac) cd ${.CURDIR}/../sys/security/lomac; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 lomac.h \ diff --git a/lib/Makefile b/lib/Makefile index ca8ad9abd44c..23066c56a6c4 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -27,7 +27,7 @@ SUBDIR= ${_csu} libcom_err libcrypt libkvm msun libmd \ libedit libfetch libform libftpio ${_libgnumalloc} ${_libio} libipsec \ libipx libisc libmenu ${_libmp} ${_libncp} \ libnetgraph libopie libpam libpanel libpcap \ - ${_libresolv} ${_libsmdb} ${_libsmutil} \ + ${_libresolv} libsmb ${_libsmdb} ${_libsmutil} \ libstand ${_libtelnet} libusb ${_libvgl} libwrap libxpg4 liby libz .if exists(${.CURDIR}/csu/${MACHINE_ARCH}-${OBJFORMAT}) diff --git a/lib/libsmb/Makefile b/lib/libsmb/Makefile new file mode 100644 index 000000000000..f13595c6d27c --- /dev/null +++ b/lib/libsmb/Makefile @@ -0,0 +1,19 @@ +# $FreeBSD$ + +LIB= smb + +SHLIB_MAJOR= 1 +SHLIB_MINOR= 0 + +NOMAN= + +SRCS= rcfile.c ctx.c cfopt.c subr.c nls.c rap.c mbuf.c rq.c file.c \ + print.c \ + kiconv.c \ + nb.c nb_name.c nb_net.c nbns_rq.c +CONTRIBDIR= ${.CURDIR}/../../contrib/smbfs +CFLAGS+= -I${CONTRIBDIR}/include + +.PATH: ${CONTRIBDIR}/lib/smb + +.include diff --git a/sbin/Makefile b/sbin/Makefile index 7fd49dd52934..16c31c0155b9 100644 --- a/sbin/Makefile +++ b/sbin/Makefile @@ -53,6 +53,7 @@ SUBDIR= adjkerntz \ mount_ntfs \ mount_nullfs \ mount_portalfs \ + mount_smbfs \ mount_std \ mount_umapfs \ mount_unionfs \ diff --git a/sbin/mount_smbfs/Makefile b/sbin/mount_smbfs/Makefile new file mode 100644 index 000000000000..01252fe81873 --- /dev/null +++ b/sbin/mount_smbfs/Makefile @@ -0,0 +1,23 @@ +# $FreeBSD$ + +PROG= mount_smbfs +SRCS= mount_smbfs.c getmntopts.c +WARNS?= 2 +NO_WERROR= yes +MAN= mount_smbfs.8 + +MOUNTDIR= ${.CURDIR}/../mount +CONTRIBDIR= ${.CURDIR}/../../contrib/smbfs +CFLAGS+= -DSMBFS -I${MOUNTDIR} -I${CONTRIBDIR}/include + +LDADD+= -lsmb +DPADD+= ${LIBSMB} + +# Needs to be dynamically linked for optional dlopen() access to +# userland libiconv (see the -E option). +# +NOSHARED?= NO + +.PATH: ${CONTRIBDIR}/mount_smbfs + +.include diff --git a/usr.bin/Makefile b/usr.bin/Makefile index c003525dcf5e..1498784772b2 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -134,6 +134,7 @@ SUBDIR= apply \ sed \ shar \ showmount \ + smbutil \ sockstat \ soelim \ split \ diff --git a/usr.bin/smbutil/Makefile b/usr.bin/smbutil/Makefile new file mode 100644 index 000000000000..8db8db755535 --- /dev/null +++ b/usr.bin/smbutil/Makefile @@ -0,0 +1,14 @@ +# $FreeBSD$ + +PROG= smbutil +SRCS= smbutil.c dumptree.c login.c lookup.c view.c print.c + +DPADD= ${LIBSMB} +LDADD= -lsmb + +CONTRIBDIR= ${.CURDIR}/../../contrib/smbfs +CFLAGS+= -I${CONTRIBDIR}/include + +.PATH: ${CONTRIBDIR}/smbutil + +.include diff --git a/usr.sbin/mount_smbfs/Makefile b/usr.sbin/mount_smbfs/Makefile new file mode 100644 index 000000000000..01252fe81873 --- /dev/null +++ b/usr.sbin/mount_smbfs/Makefile @@ -0,0 +1,23 @@ +# $FreeBSD$ + +PROG= mount_smbfs +SRCS= mount_smbfs.c getmntopts.c +WARNS?= 2 +NO_WERROR= yes +MAN= mount_smbfs.8 + +MOUNTDIR= ${.CURDIR}/../mount +CONTRIBDIR= ${.CURDIR}/../../contrib/smbfs +CFLAGS+= -DSMBFS -I${MOUNTDIR} -I${CONTRIBDIR}/include + +LDADD+= -lsmb +DPADD+= ${LIBSMB} + +# Needs to be dynamically linked for optional dlopen() access to +# userland libiconv (see the -E option). +# +NOSHARED?= NO + +.PATH: ${CONTRIBDIR}/mount_smbfs + +.include