summaryrefslogtreecommitdiff
path: root/net-fs
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2006-05-22 22:39:25 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2006-05-22 22:39:25 +0000
commit254e6d73eeee0bdc8ee4835317d8ef9a8c7be11f (patch)
tree16822898c3fe9ac98d85f2ab021d039e243b0784 /net-fs
parentMasked games-mud/kmc for removal, bug #132540 (diff)
downloadhistorical-254e6d73eeee0bdc8ee4835317d8ef9a8c7be11f.tar.gz
historical-254e6d73eeee0bdc8ee4835317d8ef9a8c7be11f.tar.bz2
historical-254e6d73eeee0bdc8ee4835317d8ef9a8c7be11f.zip
Add smbfs ebuild from gentoo-alt overlay for Samba support on FreeBSD.
Package-Manager: portage-2.1_rc2
Diffstat (limited to 'net-fs')
-rw-r--r--net-fs/smbfs/ChangeLog11
-rw-r--r--net-fs/smbfs/Manifest34
-rw-r--r--net-fs/smbfs/files/digest-smbfs-1.4.53
-rw-r--r--net-fs/smbfs/files/smbfs-1.4.5-freebsd5.patch294
-rw-r--r--net-fs/smbfs/files/smbfs-1.4.5-gentoo.patch23
-rw-r--r--net-fs/smbfs/metadata.xml5
-rw-r--r--net-fs/smbfs/smbfs-1.4.5.ebuild38
7 files changed, 408 insertions, 0 deletions
diff --git a/net-fs/smbfs/ChangeLog b/net-fs/smbfs/ChangeLog
new file mode 100644
index 000000000000..4e5b32ea8d63
--- /dev/null
+++ b/net-fs/smbfs/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for net-fs/smbfs
+# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-fs/smbfs/ChangeLog,v 1.1 2006/05/22 22:39:25 flameeyes Exp $
+
+*smbfs-1.4.5 (22 May 2006)
+
+ 22 May 2006; Diego Pettenò <flameeyes@gentoo.org>
+ +files/smbfs-1.4.5-freebsd5.patch, +files/smbfs-1.4.5-gentoo.patch,
+ +metadata.xml, +smbfs-1.4.5.ebuild:
+ Add smbfs ebuild from gentoo-alt overlay for Samba support on FreeBSD.
+
diff --git a/net-fs/smbfs/Manifest b/net-fs/smbfs/Manifest
new file mode 100644
index 000000000000..bc5f5b20afb4
--- /dev/null
+++ b/net-fs/smbfs/Manifest
@@ -0,0 +1,34 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+AUX smbfs-1.4.5-freebsd5.patch 8651 RMD160 fa02a0bb963506f8db3391d7745085af44a25306 SHA1 4d04bb7d4b2e9ae63f461e636182af6a37c7a17d SHA256 c6a85518f6f45d0f45e60bc1ac3574c1c9454bab47754d9b7894e695876fe529
+MD5 9fdb52fa2e3f879db2c12e2c02254d4a files/smbfs-1.4.5-freebsd5.patch 8651
+RMD160 fa02a0bb963506f8db3391d7745085af44a25306 files/smbfs-1.4.5-freebsd5.patch 8651
+SHA256 c6a85518f6f45d0f45e60bc1ac3574c1c9454bab47754d9b7894e695876fe529 files/smbfs-1.4.5-freebsd5.patch 8651
+AUX smbfs-1.4.5-gentoo.patch 726 RMD160 000e53d1951ab01d875dca495d85420a50c3ee23 SHA1 50e1058fa3e1feccd8d0810c429b850cc75a1c15 SHA256 6daa18a5da8ed94519608ac8c2ba7d470c818e2a8e73381108f18ce8c8e744de
+MD5 ff43cb3937f2e9103aadb6b785e18855 files/smbfs-1.4.5-gentoo.patch 726
+RMD160 000e53d1951ab01d875dca495d85420a50c3ee23 files/smbfs-1.4.5-gentoo.patch 726
+SHA256 6daa18a5da8ed94519608ac8c2ba7d470c818e2a8e73381108f18ce8c8e744de files/smbfs-1.4.5-gentoo.patch 726
+DIST smbfs-1.4.5.tar.gz 137719 RMD160 7e9d192fe2e5a1f3b8bb34454cf5b8bcf1509dd0 SHA1 4ebd188cc62df9d0ecad564b115d77c1dabebe1c SHA256 d62e79f91d4aa6bedda4797c2e0335f3f232def4c3fd4898988c6bb75b38a630
+EBUILD smbfs-1.4.5.ebuild 844 RMD160 9923ede94ceec41ec5ab6e027a3161c4e3336560 SHA1 fcada581c809f7f9b040e0e81438c1f8fbd2e91a SHA256 1e807ba2341980dc4e75bc2362f277302bbbae145a274c8352acd7c6d1c46534
+MD5 8875833f39283ac8a9b6f36c8d98f0f2 smbfs-1.4.5.ebuild 844
+RMD160 9923ede94ceec41ec5ab6e027a3161c4e3336560 smbfs-1.4.5.ebuild 844
+SHA256 1e807ba2341980dc4e75bc2362f277302bbbae145a274c8352acd7c6d1c46534 smbfs-1.4.5.ebuild 844
+MISC ChangeLog 463 RMD160 19b8b47cc7ba4b7f063374d140ca2e62a6b5d4fe SHA1 22440c5d76c26c30192c1244029d51766ceeec71 SHA256 fc46e84e002744f63f869b0d25ec261d6ccc69490b81b8201206af6a3c653dc9
+MD5 cb60964dd1d6b3e5a96901c8eda51904 ChangeLog 463
+RMD160 19b8b47cc7ba4b7f063374d140ca2e62a6b5d4fe ChangeLog 463
+SHA256 fc46e84e002744f63f869b0d25ec261d6ccc69490b81b8201206af6a3c653dc9 ChangeLog 463
+MISC metadata.xml 156 RMD160 60b5820a08275f307e5bd936d78f5afd1f141086 SHA1 d9d9d4f2b5afc58339ea3e562fca490156935f1f SHA256 30ab515d6ac492d3d6c36ac3c675511742c2149e56a6b3228c8d22ab8edb3ff7
+MD5 2bd48a5ae413433cbb36110b219ce97c metadata.xml 156
+RMD160 60b5820a08275f307e5bd936d78f5afd1f141086 metadata.xml 156
+SHA256 30ab515d6ac492d3d6c36ac3c675511742c2149e56a6b3228c8d22ab8edb3ff7 metadata.xml 156
+MD5 e1a3c5c924be49f3f7f415cfec8bd60f files/digest-smbfs-1.4.5 235
+RMD160 202eb416bf9e0d56c9c17d2745e44248d64e8228 files/digest-smbfs-1.4.5 235
+SHA256 9249e3cf0a5bd86a54d627277acf77f696c5a312c7747319f44d425316bbe23a files/digest-smbfs-1.4.5 235
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.3 (GNU/Linux)
+
+iD8DBQFEcj2kAiZjviIA2XgRAsHjAKDBRCl118nv+aDJPSqO1kUF1wjHFQCfddRf
+I09l6SoRN8o9xSCcWxKZrp8=
+=N8aJ
+-----END PGP SIGNATURE-----
diff --git a/net-fs/smbfs/files/digest-smbfs-1.4.5 b/net-fs/smbfs/files/digest-smbfs-1.4.5
new file mode 100644
index 000000000000..6a8d43ebad90
--- /dev/null
+++ b/net-fs/smbfs/files/digest-smbfs-1.4.5
@@ -0,0 +1,3 @@
+MD5 5a89d33236993a415fae55516b921547 smbfs-1.4.5.tar.gz 137719
+RMD160 7e9d192fe2e5a1f3b8bb34454cf5b8bcf1509dd0 smbfs-1.4.5.tar.gz 137719
+SHA256 d62e79f91d4aa6bedda4797c2e0335f3f232def4c3fd4898988c6bb75b38a630 smbfs-1.4.5.tar.gz 137719
diff --git a/net-fs/smbfs/files/smbfs-1.4.5-freebsd5.patch b/net-fs/smbfs/files/smbfs-1.4.5-freebsd5.patch
new file mode 100644
index 000000000000..f71df7cdb044
--- /dev/null
+++ b/net-fs/smbfs/files/smbfs-1.4.5-freebsd5.patch
@@ -0,0 +1,294 @@
+Only in smbfs-1.4.5-freebsd5/examples: dot.nsmbrc.orig
+Only in smbfs-1.4.5-freebsd5/examples: dot.nsmbrc.orig~
+Only in smbfs-1.4.5-freebsd5/examples: dot.nsmbrc.rej
+diff -ur smbfs-1.4.5/lib/smb/ctx.c smbfs-1.4.5-freebsd5/lib/smb/ctx.c
+--- smbfs-1.4.5/lib/smb/ctx.c 2002-04-13 16:35:28.000000000 +0200
++++ smbfs-1.4.5-freebsd5/lib/smb/ctx.c 2005-07-09 22:01:28.417742992 +0200
+@@ -274,7 +274,7 @@
+ int
+ smb_ctx_setserver(struct smb_ctx *ctx, const char *name)
+ {
+- if (strlen(name) >= SMB_MAXSRVNAMELEN) {
++ if (strlen(name) > SMB_MAXSRVNAMELEN) {
+ smb_error("server name '%s' too long", 0, name);
+ return ENAMETOOLONG;
+ }
+@@ -285,7 +285,7 @@
+ int
+ smb_ctx_setuser(struct smb_ctx *ctx, const char *name)
+ {
+- if (strlen(name) >= SMB_MAXUSERNAMELEN) {
++ if (strlen(name) > SMB_MAXUSERNAMELEN) {
+ smb_error("user name '%s' too long", 0, name);
+ return ENAMETOOLONG;
+ }
+@@ -296,7 +296,7 @@
+ int
+ smb_ctx_setworkgroup(struct smb_ctx *ctx, const char *name)
+ {
+- if (strlen(name) >= SMB_MAXUSERNAMELEN) {
++ if (strlen(name) > SMB_MAXUSERNAMELEN) {
+ smb_error("workgroup name '%s' too long", 0, name);
+ return ENAMETOOLONG;
+ }
+@@ -309,7 +309,7 @@
+ {
+ if (passwd == NULL)
+ return EINVAL;
+- if (strlen(passwd) >= SMB_MAXPASSWORDLEN) {
++ if (strlen(passwd) > SMB_MAXPASSWORDLEN) {
+ smb_error("password too long", 0);
+ return ENAMETOOLONG;
+ }
+@@ -324,7 +324,7 @@
+ int
+ smb_ctx_setshare(struct smb_ctx *ctx, const char *share, int stype)
+ {
+- if (strlen(share) >= SMB_MAXSHARENAMELEN) {
++ if (strlen(share) > SMB_MAXSHARENAMELEN) {
+ smb_error("share name '%s' too long", 0, share);
+ return ENAMETOOLONG;
+ }
+@@ -408,7 +408,7 @@
+ &ctx->ct_sh.ioc_group);
+ }
+ if (*p && error == 0) {
+- error = smb_parse_owner(cp, &ctx->ct_ssn.ioc_owner,
++ error = smb_parse_owner(p, &ctx->ct_ssn.ioc_owner,
+ &ctx->ct_ssn.ioc_group);
+ }
+ free(p);
+diff -ur smbfs-1.4.5/lib/smb/file.c smbfs-1.4.5-freebsd5/lib/smb/file.c
+--- smbfs-1.4.5/lib/smb/file.c 2001-04-16 06:33:01.000000000 +0200
++++ smbfs-1.4.5-freebsd5/lib/smb/file.c 2005-07-09 22:01:28.417742992 +0200
+@@ -71,7 +71,7 @@
+ struct smbioc_rw rwrq;
+
+ rwrq.ioc_fh = fh;
+- (const char*)rwrq.ioc_base = src;
++ rwrq.ioc_base = (char *)src;
+ rwrq.ioc_cnt = count;
+ rwrq.ioc_offset = offset;
+ if (ioctl(ctx->ct_fd, SMBIOC_WRITE, &rwrq) == -1)
+diff -ur smbfs-1.4.5/lib/smb/kiconv.c smbfs-1.4.5-freebsd5/lib/smb/kiconv.c
+--- smbfs-1.4.5/lib/smb/kiconv.c 2001-08-22 05:31:36.000000000 +0200
++++ smbfs-1.4.5-freebsd5/lib/smb/kiconv.c 2005-07-09 22:01:28.418742840 +0200
+@@ -48,7 +48,7 @@
+ {
+ struct iconv_add_in din;
+ struct iconv_add_out dout;
+- int olen;
++ size_t olen;
+
+ if (strlen(from) > ICONV_CSNMAXLEN || strlen(to) > ICONV_CSNMAXLEN)
+ return EINVAL;
+diff -ur smbfs-1.4.5/lib/smb/nb_net.c smbfs-1.4.5-freebsd5/lib/smb/nb_net.c
+--- smbfs-1.4.5/lib/smb/nb_net.c 2001-02-16 03:46:12.000000000 +0100
++++ smbfs-1.4.5-freebsd5/lib/smb/nb_net.c 2005-07-09 22:01:28.418742840 +0200
+@@ -45,6 +45,7 @@
+ #include <string.h>
+ #include <stdio.h>
+ #include <unistd.h>
++#include <ifaddrs.h>
+
+ #include <netsmb/netbios.h>
+ #include <netsmb/smb_lib.h>
+@@ -101,68 +102,46 @@
+ int
+ nb_enum_if(struct nb_ifdesc **iflist, int maxif)
+ {
+- struct ifconf ifc;
+- struct ifreq *ifrqp;
+ struct nb_ifdesc *ifd;
+- struct in_addr iaddr, imask;
+- char *ifrdata, *iname;
+- int s, rdlen, ifcnt, error, iflags, i;
++ struct ifaddrs *ifp, *p;
++ int i;
+
+- *iflist = NULL;
+- s = socket(AF_INET, SOCK_DGRAM, 0);
+- if (s == -1)
++ if (getifaddrs(&ifp) < 0)
+ return errno;
+
+- rdlen = maxif * sizeof(struct ifreq);
+- ifrdata = malloc(rdlen);
+- if (ifrdata == NULL) {
+- error = ENOMEM;
+- goto bad;
+- }
+- ifc.ifc_len = rdlen;
+- ifc.ifc_buf = ifrdata;
+- if (ioctl(s, SIOCGIFCONF, &ifc) != 0) {
+- error = errno;
+- goto bad;
+- }
+- ifrqp = ifc.ifc_req;
+- ifcnt = ifc.ifc_len / sizeof(struct ifreq);
+- error = 0;
+- for (i = 0; i < ifcnt; i++, ifrqp++) {
+- if (ioctl(s, SIOCGIFFLAGS, ifrqp) != 0)
+- continue;
+- iflags = ifrqp->ifr_flags;
+- if ((iflags & IFF_UP) == 0 || (iflags & IFF_BROADCAST) == 0)
+- continue;
++ *iflist = NULL;
++ i = 0;
++ for (p = ifp; p; p = p->ifa_next) {
+
+- if (ioctl(s, SIOCGIFADDR, ifrqp) != 0 ||
+- ifrqp->ifr_addr.sa_family != AF_INET)
+- continue;
+- iname = ifrqp->ifr_name;
+- if (strlen(iname) >= sizeof(ifd->id_name))
+- continue;
+- iaddr = (*(struct sockaddr_in *)&ifrqp->ifr_addr).sin_addr;
++ if (i >= maxif)
++ break;
+
+- if (ioctl(s, SIOCGIFNETMASK, ifrqp) != 0)
++ if ((p->ifa_addr->sa_family != AF_INET) ||
++ ((p->ifa_flags & (IFF_UP|IFF_BROADCAST))
++ != (IFF_UP|IFF_BROADCAST)))
++ continue;
++ if (strlen(p->ifa_name) >= sizeof(ifd->id_name))
+ continue;
+- imask = ((struct sockaddr_in *)&ifrqp->ifr_addr)->sin_addr;
+
+ ifd = malloc(sizeof(struct nb_ifdesc));
+- if (ifd == NULL)
++ if (ifd == NULL) {
++ freeifaddrs(ifp);
++ /* XXX should free stuff already in *iflist */
+ return ENOMEM;
++ }
+ bzero(ifd, sizeof(struct nb_ifdesc));
+- strcpy(ifd->id_name, iname);
+- ifd->id_flags = iflags;
+- ifd->id_addr = iaddr;
+- ifd->id_mask = imask;
++ strcpy(ifd->id_name, p->ifa_name);
++ ifd->id_flags = p->ifa_flags;
++ ifd->id_addr = ((struct sockaddr_in *)p->ifa_addr)->sin_addr;
++ ifd->id_mask = ((struct sockaddr_in *)p->ifa_netmask)->sin_addr;
+ ifd->id_next = *iflist;
+ *iflist = ifd;
++ i++;
+ }
+-bad:
+- free(ifrdata);
+- close(s);
+- return error;
+-}
++
++ freeifaddrs(ifp);
++ return 0;
++}
+
+ /*ARGSUSED*/
+ /*int
+@@ -198,4 +177,4 @@
+ nb_snbfree(snb);
+ return error;
+ }
+-*/
+\ No newline at end of file
++*/
+diff -ur smbfs-1.4.5/lib/smb/rap.c smbfs-1.4.5-freebsd5/lib/smb/rap.c
+--- smbfs-1.4.5/lib/smb/rap.c 2001-02-24 16:56:05.000000000 +0100
++++ smbfs-1.4.5-freebsd5/lib/smb/rap.c 2005-07-09 22:01:28.419742688 +0200
+@@ -40,7 +40,7 @@
+ #include <err.h>
+ #include <stdio.h>
+ #include <unistd.h>
+-#include <strings.h>
++#include <string.h>
+ #include <stdlib.h>
+ #include <sysexits.h>
+
+@@ -198,7 +198,7 @@
+
+ rap = malloc(sizeof(*rap));
+ if (rap == NULL)
+- return NULL;
++ return ENOMEM;
+ bzero(rap, sizeof(*rap));
+ p = rap->r_sparam = rap->r_nparam = strdup(param);
+ rap->r_sdata = rap->r_ndata = strdup(data);
+diff -ur smbfs-1.4.5/lib/smb/rq.c smbfs-1.4.5-freebsd5/lib/smb/rq.c
+--- smbfs-1.4.5/lib/smb/rq.c 2001-04-16 06:33:01.000000000 +0200
++++ smbfs-1.4.5-freebsd5/lib/smb/rq.c 2005-07-09 22:01:28.419742688 +0200
+@@ -162,7 +162,7 @@
+ bzero(&krq, sizeof(krq));
+ krq.ioc_setup[0] = setup;
+ krq.ioc_setupcnt = setupcount;
+- (const char*)krq.ioc_name = name;
++ krq.ioc_name = (char *)name;
+ krq.ioc_tparamcnt = tparamcnt;
+ krq.ioc_tparam = tparam;
+ krq.ioc_tdatacnt = tdatacnt;
+diff -ur smbfs-1.4.5/mount_smbfs/mount_smbfs.8 smbfs-1.4.5-freebsd5/mount_smbfs/mount_smbfs.8
+--- smbfs-1.4.5/mount_smbfs/mount_smbfs.8 2002-04-16 04:47:41.000000000 +0200
++++ smbfs-1.4.5-freebsd5/mount_smbfs/mount_smbfs.8 2005-07-09 22:01:28.420742536 +0200
+@@ -127,7 +127,7 @@
+ .It Pa ~/.nsmbrc
+ Keeps static parameters for connections and other information.
+ See
+-.Pa ./examples/dot.nsmbrc
++.Pa /usr/share/examples/smbfs/dot.nsmbrc
+ for details.
+ .El
+ .Sh EXAMPLES
+diff -ur smbfs-1.4.5/mount_smbfs/mount_smbfs.c smbfs-1.4.5-freebsd5/mount_smbfs/mount_smbfs.c
+--- smbfs-1.4.5/mount_smbfs/mount_smbfs.c 2002-04-10 06:17:51.000000000 +0200
++++ smbfs-1.4.5-freebsd5/mount_smbfs/mount_smbfs.c 2005-07-09 22:01:28.425741776 +0200
+@@ -75,15 +75,15 @@
+ extern void dropsuid();
+ extern int loadsmbvfs();
+ #else
+- struct vfsconf vfc;
+-#endif /* APPLE */
++ struct xvfsconf vfc;
++#endif
+ char *next;
+ int opt, error, mntflags, caseopt;
+
+
+ #ifdef APPLE
+ dropsuid();
+-#endif /* APPLE */
++#endif
+ if (argc == 2) {
+ if (strcmp(argv[1], "-h") == 0) {
+ usage();
+@@ -100,13 +100,12 @@
+ error = loadsmbvfs();
+ #else
+ error = getvfsbyname(SMBFS_VFSNAME, &vfc);
+- if (error && vfsisloadable(SMBFS_VFSNAME)) {
+- if(vfsload(SMBFS_VFSNAME))
+- err(EX_OSERR, "vfsload("SMBFS_VFSNAME")");
+- endvfsent();
++ if (error) {
++ if (kldload(SMBFS_VFSNAME) < 0)
++ err(EX_OSERR, "kldload("SMBFS_VFSNAME")");
+ error = getvfsbyname(SMBFS_VFSNAME, &vfc);
+ }
+-#endif /* APPLE */
++#endif
+ if (error)
+ errx(EX_OSERR, "SMB filesystem is not available");
+
+diff -ur smbfs-1.4.5/smbutil/common.h smbfs-1.4.5-freebsd5/smbutil/common.h
+--- smbfs-1.4.5/smbutil/common.h 2001-08-22 05:33:38.000000000 +0200
++++ smbfs-1.4.5-freebsd5/smbutil/common.h 2005-07-09 22:01:28.426741624 +0200
+@@ -1,6 +1,7 @@
++/* $FreeBSD: src/contrib/smbfs/smbutil/common.h,v 1.3 2003/08/23 13:05:13 tjr Exp $ */
+
+ #define iprintf(ident,args...) do { printf("%-" # ident "s", ""); \
+- printf(## args);}while(0)
++ printf(args);}while(0)
+
+ extern int verbose;
+
diff --git a/net-fs/smbfs/files/smbfs-1.4.5-gentoo.patch b/net-fs/smbfs/files/smbfs-1.4.5-gentoo.patch
new file mode 100644
index 000000000000..f6e1b4e372bd
--- /dev/null
+++ b/net-fs/smbfs/files/smbfs-1.4.5-gentoo.patch
@@ -0,0 +1,23 @@
+diff -ur smbfs-1.4.5/mount_smbfs/Makefile smbfs-1.4.5-gentoo/mount_smbfs/Makefile
+--- smbfs-1.4.5/mount_smbfs/Makefile 2001-04-16 04:34:26 +0000
++++ smbfs-1.4.5-gentoo/mount_smbfs/Makefile 2005-06-08 18:10:50 +0000
+@@ -12,7 +12,7 @@
+
+ .PATH: ${MOUNT}
+
+-LDADD+= -lsmb
++LDADD+= -L${.CURDIR}/../lib/smb -lsmb
+ DPADD+= ${LIBSMB}
+
+ .include <bsd.prog.mk>
+diff -ur smbfs-1.4.5/smbutil/Makefile smbfs-1.4.5-gentoo/smbutil/Makefile
+--- smbfs-1.4.5/smbutil/Makefile 2001-04-16 04:34:26 +0000
++++ smbfs-1.4.5-gentoo/smbutil/Makefile 2005-06-08 18:12:29 +0000
+@@ -4,6 +4,6 @@
+ SRCS= smbutil.c dumptree.c login.c lookup.c view.c print.c
+
+ DPADD= ${LIBSMB}
+-LDADD= -lsmb
++LDADD= -L${.CURDIR}/../lib/smb -lsmb
+
+ .include <bsd.prog.mk>
diff --git a/net-fs/smbfs/metadata.xml b/net-fs/smbfs/metadata.xml
new file mode 100644
index 000000000000..ecedda4aa2cc
--- /dev/null
+++ b/net-fs/smbfs/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>bsd</herd>
+</pkgmetadata>
diff --git a/net-fs/smbfs/smbfs-1.4.5.ebuild b/net-fs/smbfs/smbfs-1.4.5.ebuild
new file mode 100644
index 000000000000..228c1e104c4e
--- /dev/null
+++ b/net-fs/smbfs/smbfs-1.4.5.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-fs/smbfs/smbfs-1.4.5.ebuild,v 1.1 2006/05/22 22:39:25 flameeyes Exp $
+
+inherit bsdmk eutils
+
+DESCRIPTION="Mount SMB/CIFS share on FreeBSD and derived"
+HOMEPAGE="https://sourceforge.net/projects/smbfs"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~x86-fbsd"
+IUSE=""
+
+DEPEND="dev-libs/libiconv"
+
+pkg_setup() {
+ mymakeopts="${mymakeopts} COMPLETEBUIlD="
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ epatch ${FILESDIR}/${P}-freebsd5.patch
+ epatch ${FILESDIR}/${P}-gentoo.patch
+}
+
+src_compile() {
+ mkmake configure || die "mkmake configure failed"
+ mkmake || die "mkmake failed"
+}
+
+src_install() {
+ mkinstall DESTDIR="${D}/usr/" PREFIX="" || die "mkinstall failed"
+}
+