From ca99a7c61e383e5fa97b27d915895585c6ee259d Mon Sep 17 00:00:00 2001 From: Josh Paetzel Date: Mon, 3 Jan 2011 16:29:22 +0000 Subject: Smb4K is an SMB share browser for KDE. Its features are inspired by Komba2 by Frank Schwanz. It uses the Samba software suite for an easy access to the SMB shares of your local network neighborhood. Features so far: - Scanning for (active) workgroups, hosts, and shares - Mounting and unmounting of SMB and CIFS shares, including unmounting all shares at once - Access to the files of a mounted SMB or CIFS share using Konqueror - Auto-detection of external mounts/unmounts - Remounting of recently used shares on program start - Miscellaneous infos about the mounted SMB and CIFS shares - Network search - WINS server support - Preview of shares - Selectable look-up and search methods - Default login - Ability to execute mount and umount SUID root (using super or sudo) - Special handling of homes shares - Ability to bookmark favorite shares - And many more :) WWW: http://smb4k.berlios.de --- net/Makefile | 1 + net/smb4k-kde4/Makefile | 62 ++++++++++++++++ net/smb4k-kde4/distinfo | 2 + net/smb4k-kde4/files/README.FreeBSD | 98 +++++++++++++++++++++++++ net/smb4k-kde4/files/pkg-message.in | 22 ++++++ net/smb4k-kde4/files/smb2awk | 30 ++++++++ net/smb4k-kde4/files/smb2nsmbrc | 43 +++++++++++ net/smb4k-kde4/pkg-descr | 24 +++++++ net/smb4k-kde4/pkg-plist | 138 ++++++++++++++++++++++++++++++++++++ 9 files changed, 420 insertions(+) create mode 100644 net/smb4k-kde4/Makefile create mode 100644 net/smb4k-kde4/distinfo create mode 100644 net/smb4k-kde4/files/README.FreeBSD create mode 100644 net/smb4k-kde4/files/pkg-message.in create mode 100644 net/smb4k-kde4/files/smb2awk create mode 100644 net/smb4k-kde4/files/smb2nsmbrc create mode 100644 net/smb4k-kde4/pkg-descr create mode 100644 net/smb4k-kde4/pkg-plist diff --git a/net/Makefile b/net/Makefile index e258e6468aad..98ad02128b93 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1018,6 +1018,7 @@ SUBDIR += slirp SUBDIR += slurm SUBDIR += smb4k + SUBDIR += smb4k-kde4 SUBDIR += smbldap-tools SUBDIR += smm++ SUBDIR += sniffit diff --git a/net/smb4k-kde4/Makefile b/net/smb4k-kde4/Makefile new file mode 100644 index 000000000000..a5c548535199 --- /dev/null +++ b/net/smb4k-kde4/Makefile @@ -0,0 +1,62 @@ +# New ports collection makefile for: smb4k-kde4 +# Date created: 02 Jan 2011 +# Whom: Josh Paetzel +# +# $FreeBSD$ +# + +PORTNAME= smb4k +PORTVERSION= 0.10.9 +CATEGORIES= net kde +MASTER_SITES= ${MASTER_SITE_BERLIOS} +MASTER_SITE_SUBDIR= smb4k + +MAINTAINER= jpaetzel@FreeBSD.org +COMMENT= KDE 4.x SMB Network browser and SMB shares mounting center + +RUN_DEPENDS= sudo:${PORTSDIR}/security/sudo \ + smbstatus:${PORTSDIR}/${SAMBA_PORT} + +SAMBA_PORT?= net/samba34 + +USE_CMAKE= yes +USE_GETTEXT= yes +USE_BZIP2= yes +USE_LDCONFIG= ${PREFIX}/lib ${PREFIX}/lib/kde4 +INSTALLS_ICONS= yes +USE_KDE4= kdehier kdeprefix kdelibs automoc4 +USE_QT_VER= 4 +QT_COMPONENTS= corelib gui network opengl script svg webkit \ + qmake_build moc_build rcc_build uic_build phonon +DOCSDIR= ${PREFIX}/share/doc/HTML/en/${PORTNAME} +SUB_FILES= pkg-message + +.if defined(WITHOUT_NLS) +NLS= "@comment " +.else +NLS= "" +.endif +PLIST_SUB+= NLS=${NLS} + +.if !defined(NOPORTDOCS) +BUILD_DEPENDS+= ${LOCALBASE}/share/xml/docbook/4.2/docbookx.dtd:${PORTSDIR}/textproc/docbook-xml +.endif + +pre-configure: +.if defined(WITHOUT_NLS) + ${REINPLACE_CMD} -e 's|add_subdirectory( po )|#add_subdirectory( po )|' \ + ${WRKSRC}/CMakeLists.txt +.endif +.if defined(NOPORTDOCS) + ${REINPLACE_CMD} -e 's|add_subdirectory( doc )|#add_subdirectory( doc )|' \ + ${WRKSRC}/CMakeLists.txt +.endif + +post-install: +.for i in smb2awk smb2nsmbrc + ${INSTALL_SCRIPT} ${FILESDIR}/${i} ${PREFIX}/bin +.endfor + ${INSTALL_DATA} ${FILESDIR}/README.FreeBSD ${DOCSDIR} + @${CAT} ${PKGMESSAGE} + +.include diff --git a/net/smb4k-kde4/distinfo b/net/smb4k-kde4/distinfo new file mode 100644 index 000000000000..90c6ef508a31 --- /dev/null +++ b/net/smb4k-kde4/distinfo @@ -0,0 +1,2 @@ +SHA256 (smb4k-0.10.9.tar.bz2) = 4ea3bdcc67ae3073e08d5819098c84da02d023c234e83a939c804af51bb5c1cb +SIZE (smb4k-0.10.9.tar.bz2) = 1882944 diff --git a/net/smb4k-kde4/files/README.FreeBSD b/net/smb4k-kde4/files/README.FreeBSD new file mode 100644 index 000000000000..e5c19358022a --- /dev/null +++ b/net/smb4k-kde4/files/README.FreeBSD @@ -0,0 +1,98 @@ + SMB mounting in FreeBSD with SMB4K + ---------------------------------- + $Id: README.FreeBSD,v 1.3 2004/05/21 12:32:47 shelton Exp $ + +1. Preface +---------- + +This document describes, how to coordinate SNB4K (initially Linux-only program) +and FreeBSD implementation of SMBFS. This document assumed, that you already +have working SMBFS in your kernel (see man mount_smbfs(8), FreeBSD Handbook +chapter 9 and an sample kernel config file part below: + +# +# SMB/CIFS requester +# NETSMB enables support for SMB protocol, it requires LIBMCHAIN and LIBICONV +# options. +# NETSMBCRYPTO enables support for encrypted passwords. +options NETSMB #SMB/CIFS requester +options NETSMBCRYPTO #encrypted password support for SMB + +# mchain library. It can be either loaded as KLD or compiled into kernel +options LIBMCHAIN #mbuf management library +options SMBFS #SMB/CIFS filesystem +# Kernel side iconv library +options LIBICONV + +You need all these for working SMBFS) and /etc/nsmb.conf configured properly +(in spite of that nsmb.conf has all variables 'transparent', documentation +about SMBFS tuning in FreeBSD are very, very shy :-( You should setup at least +paremeters "workgroup" and "nbns". As nbns you should set your WINS server +(as called it in Microsoft world). + +2. After setup, but before first run +------------------------------------ + +So, you has just setup SMB4K. What should you do to properly mounting SMB +shares? You should do some things. + +a. Remember, that SMB4K didn't mount shares itself. Instead of that, it +called 'smb4k_mount' with some set of parameters: server and share path in +//server/share format, mount point in /home/dir/dir2 format and parameters string, +as expected mount_smbfs. Also, SMB4K didn't umount shares itself. Instead of +this it called 'smb4k_umount' with single parameter - mount point. + +b. Before start SMB4K first time, you should setup your .nsmbrc file +properly. For my pity, you must setup each Windows/Samba box in your network +SEPARATELY. No default usernames, no domain logons. Looks sadly, aren't you? +smb2nsmbrc script sligtly takes this job from you. You start smb2nsmbrc, it +called findsmb (of course, you should have findsmb and smbutil in your path), +parsing their output, asks you about username, password and stored file +.nsmbrctmp in current directory with pairs + +[SERVERNAME:USERNAME] +password= + +Encryption done with smbutil and ready for use with mount_smbfs. Findsmb takes +your first network interface, so, when you have a box with some network cards, +start smb2nsmbrc with two parameters - network address and broadcast address. +These parameters will passed directly to findsmb. When .nsmbrctmp file already +exist it will added, not replaced! Simply add .nsmbrctmp content to your .nsmbrc +file in your home directory + +c. You should have a 'sudo' package. SMB4K detect it and modify sudoers file + +3. Inside running SMB4K +----------------------- + +When you have done all previous steps properly (it looks quite difficult, but +PLEASE, do not ask me, ask SMBFS developers, why kernel-side support of SMBFS +in FreeBSD is extremely shy, undocumented and forgotten), you should see files in +mounted share, when you click on it in SMB4K window. When you see empty +directory (and really this directory keeps files), check these: + +- You should have SMBFS in your kernel +- You should have propelry nsmb.conf +- You should have properly .nsmbrc (keep in mind - all server and user names + in UPPER case!) with presented pairs [server:user] about EACH server and + EACH user (so, when you have two logins alice and bob and two server alpha + and beta, you should have 4 entries in .nsmbrc - [ALICE:ALPHA], [ALICE:BETA], + [BOB:ALPHA] and [BOB:BETA]). + +When all these has been done, but mount unsuccesful, try to mount this share +manually. Also you can uncomment string + +echo $@ > /tmp/somefile + +at start of smbmount script and looks, how passed a mount arguments in file +/tmp/somefile. + +4. Feedback +----------- + +All these scripts and this readme file were written by Rashid N. Achilov +(shelton@granch.ru). So, you can ask me about their working and also about +any other SMB shares mounting errors, but keep in mind - I'm NOT A SMBFS +DEVELOPER, I know nothing about internal technic of kernel-side support +of SMBFS under FreeBSD. To ask with serious problems, please mail to SMB developer: +Boris Popov . diff --git a/net/smb4k-kde4/files/pkg-message.in b/net/smb4k-kde4/files/pkg-message.in new file mode 100644 index 000000000000..49dc2214d434 --- /dev/null +++ b/net/smb4k-kde4/files/pkg-message.in @@ -0,0 +1,22 @@ +*********************************************************** + +Please, read %%PREFIX%%/share/doc/HTML/en/smb4k/README.FreeBSD +*B*E*F*O*R*E* the FIRST RUN of SMB4K! + +In order to run SMB4K properly, be sure that: + +1. Your kernel is configured properly +2. Your /etc/nsmb.conf file is configured properly +3. Your .nsmbrc file is configured properly (this means, that + the password to *ANY* server in your network is recorded in + this file. For semi-automatic creation of .nsmbrc you can use + the smb2nsmbrc script) + +Keep in mind, that: + +1. SMB4K only calls smb4k_mount and smb4k_umount programs. +2. You can use the scripts that come with the port or create + your own. +3. DO NOT DISTURB ME ABOUT FreeBSD's SMB IMPLEMENTATION! + +************************************************************ diff --git a/net/smb4k-kde4/files/smb2awk b/net/smb4k-kde4/files/smb2awk new file mode 100644 index 000000000000..cb8eec48172b --- /dev/null +++ b/net/smb4k-kde4/files/smb2awk @@ -0,0 +1,30 @@ +#!/usr/bin/awk -f +# AWK part for generating Windows/Samba boxes list in .nsmbrc format +# Incoming - findsmb output, outgoing - NetBIOS names list +# $Id: smb2awk,v 1.2 2003/10/30 09:41:10 shelton Exp $ + +{ + while ((getline nline) > 0) + { + if (substr(nline,1,1) == "-") + { + sig = 1 + continue + } + + if (sig == 0) + continue + else + { + split(nline,narray," ") + + if (narray[2] == "unknown") + next + else + if (index(narray[2],".") != 0) + next + else + print narray[2] + } + } +} diff --git a/net/smb4k-kde4/files/smb2nsmbrc b/net/smb4k-kde4/files/smb2nsmbrc new file mode 100644 index 000000000000..fd5f06e013b9 --- /dev/null +++ b/net/smb4k-kde4/files/smb2nsmbrc @@ -0,0 +1,43 @@ +#!/bin/sh +# Convert list of Windows/Samba boxes in local network to .nsmbrc format +# Args, if any passed directly to findsmb - network address and broadcast address +# $Id: smb2nsmbrc,v 1.4 2004/08/05 06:50:32 shelton Exp $ + +find="findsmb" # Script to display boxes list +util="smbutil" # Utility to convert plaintext password to hashed +outfile=".nsmbrctmp" # Generated file name + +# First, we check on presence findsmb +wfind=`whereis -b $find | awk '{print $2}'` + +if [ -z $wfind ]; then + echo FindSMB did not found in your system, please install samba package first + exit 5 +fi + +# Second, we check on presence smbutil +wutil=`whereis -b $util | awk '{print $2}'` + +if [ -z $wfind ]; then + echo SMBUtil did not found in your system, please install samba package first + exit 5 +fi + +# Now we ask username +echo -n "Please enter username (UPPER CASE!): " +read username + +# Now we ask password and crypt by smbutil +password=`$util crypt` + +# Now we detect all Windows/Samba boxes and taking their NetBIOS names +netnames=`findsmb $1 $2 | awk -f /usr/local/bin/smb2awk` + +# And at least we generating temporarly file with username, password and +# sections for all detected boxes +for netname in $netnames + do + echo "[$netname:$username]" >> $outfile + echo "password=$password" >> $outfile + echo "" >> $outfile + done diff --git a/net/smb4k-kde4/pkg-descr b/net/smb4k-kde4/pkg-descr new file mode 100644 index 000000000000..d2f765df112c --- /dev/null +++ b/net/smb4k-kde4/pkg-descr @@ -0,0 +1,24 @@ +Smb4K is an SMB share browser for KDE. Its features are inspired by Komba2 +by Frank Schwanz. It uses the Samba software suite for an easy access +to the SMB shares of your local network neighborhood. + +Features so far: + +- Scanning for (active) workgroups, hosts, and shares +- Mounting and unmounting of SMB and CIFS shares, including unmounting + all shares at once +- Access to the files of a mounted SMB or CIFS share using Konqueror +- Auto-detection of external mounts/unmounts +- Remounting of recently used shares on program start +- Miscellaneous infos about the mounted SMB and CIFS shares +- Network search +- WINS server support +- Preview of shares +- Selectable look-up and search methods +- Default login +- Ability to execute mount and umount SUID root (using super or sudo) +- Special handling of homes shares +- Ability to bookmark favorite shares +- And many more :) + +WWW: http://smb4k.berlios.de diff --git a/net/smb4k-kde4/pkg-plist b/net/smb4k-kde4/pkg-plist new file mode 100644 index 000000000000..ddbf0ace0ba0 --- /dev/null +++ b/net/smb4k-kde4/pkg-plist @@ -0,0 +1,138 @@ +bin/smb2awk +bin/smb2nsmbrc +bin/smb4k +bin/smb4k_kill +bin/smb4k_mount +bin/smb4k_sudowriter +bin/smb4k_umount + +share/applications/kde4/smb4k.desktop + +share/apps/kconf_update/authentication1.sh +share/apps/kconf_update/network1.sh +share/apps/kconf_update/network2.sh +share/apps/kconf_update/samba1.sh +share/apps/kconf_update/smb4ksettings.upd +share/apps/kconf_update/userinterface1.sh + +share/apps/smb4k/smb4knetworkbrowser_part.rc +share/apps/smb4k/smb4ksearchdialog_part.rc +share/apps/smb4k/smb4ksharesview_part.rc +share/apps/smb4k/smb4k_shell.rc + +share/config.kcfg/smb4k.kcfg + +%%PORTDOCS%%%%DOCSDIR%%/README.FreeBSD +%%PORTDOCS%%%%DOCSDIR%%/common +%%PORTDOCS%%%%DOCSDIR%%/configuration_authentication.png +%%PORTDOCS%%%%DOCSDIR%%/configuration_network.png +%%PORTDOCS%%%%DOCSDIR%%/configuration_samba.png +%%PORTDOCS%%%%DOCSDIR%%/configuration_shares.png +%%PORTDOCS%%%%DOCSDIR%%/configuration_superuser.png +%%PORTDOCS%%%%DOCSDIR%%/configuration_synchronization.png +%%PORTDOCS%%%%DOCSDIR%%/configuration_user_interface.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_authentication.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_bookmark_editor.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_config_file_removal.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_custom_options.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_manual_mount.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_question_force_unmounting.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_preview.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_print_file.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_synchronization_input.png +%%PORTDOCS%%%%DOCSDIR%%/dialog_synchronization_progress.png +%%PORTDOCS%%%%DOCSDIR%%/error_programs_missing.png +%%PORTDOCS%%%%DOCSDIR%%/index.cache.bz2 +%%PORTDOCS%%%%DOCSDIR%%/index.docbook +%%PORTDOCS%%%%DOCSDIR%%/main_window.png +%%PORTDOCS%%%%DOCSDIR%%/network_neighborhood_browser.png +%%PORTDOCS%%%%DOCSDIR%%/network_search_dialog.png +%%PORTDOCS%%%%DOCSDIR%%/plugin_full_view.png +%%PORTDOCS%%%%DOCSDIR%%/plugin_inclusion.png +%%PORTDOCS%%%%DOCSDIR%%/popup_menu_bookmarks.png +%%PORTDOCS%%%%DOCSDIR%%/popup_menu_browser.png +%%PORTDOCS%%%%DOCSDIR%%/popup_menu_network_search.png +%%PORTDOCS%%%%DOCSDIR%%/popup_menu_shares_view.png +%%PORTDOCS%%%%DOCSDIR%%/toolbar_main_window.png +%%PORTDOCS%%%%DOCSDIR%%/toolbar_network_browser.png +%%PORTDOCS%%%%DOCSDIR%%/toolbar_shares_view.png +%%PORTDOCS%%%%DOCSDIR%%/toolbar_search_dialog.png +%%PORTDOCS%%%%DOCSDIR%%/shares_list_view.png +%%PORTDOCS%%%%DOCSDIR%%/shares_icon_view.png +%%PORTDOCS%%%%DOCSDIR%%/shares_view_icons.png +%%PORTDOCS%%%%DOCSDIR%%/system_tray_icon.png +%%PORTDOCS%%%%DOCSDIR%%/system_tray_icon_popup_menu.png + +share/icons/hicolor/128x128/apps/smb4k.png +share/icons/hicolor/16x16/apps/smb4k.png +share/icons/hicolor/22x22/apps/smb4k.png +share/icons/hicolor/32x32/apps/smb4k.png +share/icons/hicolor/48x48/apps/smb4k.png +share/icons/hicolor/64x64/apps/smb4k.png + +share/icons/oxygen/128x128/apps/smb4k.png +share/icons/oxygen/16x16/apps/smb4k.png +share/icons/oxygen/22x22/apps/smb4k.png +share/icons/oxygen/32x32/apps/smb4k.png +share/icons/oxygen/48x48/apps/smb4k.png +share/icons/oxygen/64x64/apps/smb4k.png + +%%NLS%%share/locale/bg/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/cs/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/da/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/de/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/es/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/fr/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/hu/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/is/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/it/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/ja/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/nb/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/nl/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/pl/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/pt/LC_MESSAGES/pt.mo +%%NLS%%share/locale/pt_BR/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/ru/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/sk/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/sv/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/tr/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/uk/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/zh_CN/LC_MESSAGES/smb4k.mo +%%NLS%%share/locale/zh_TW/LC_MESSAGES/smb4k.mo + +lib/kde4/libsmb4kconfigdialog.so +lib/kde4/libsmb4knetworkbrowser.so +lib/kde4/libsmb4ksharesview.so +lib/kde4/libsmb4ksearchdialog.so +lib/libsmb4kcore.so.3.2.0 +lib/libsmb4kcore.so.3 +lib/libsmb4kcore.so +lib/libsmb4kdialogs.so + +@dirrmtry share/apps/kconf_update +@dirrm share/apps/smb4k +@dirrmtry share/apps +@dirrmtry share/config.kcfg +@dirrmtry share/doc/HTML/en/smb4k +@dirrmtry share/doc/HTML/en +@dirrmtry share/doc/HTML +@dirrmtry share/doc +@dirrmtry share/icons/oxygen/128x128/apps +@dirrmtry share/icons/oxygen/128x128 +@dirrmtry share/icons/oxygen/16x16/apps +@dirrmtry share/icons/oxygen/16x16 +@dirrmtry share/icons/oxygen/22x22/apps +@dirrmtry share/icons/oxygen/22x22 +@dirrmtry share/icons/oxygen/32x32/apps +@dirrmtry share/icons/oxygen/32x32 +@dirrmtry share/icons/oxygen/48x48/apps +@dirrmtry share/icons/oxygen/48x48 +@dirrmtry share/icons/oxygen/64x64/apps +@dirrmtry share/icons/oxygen/64x64 +@dirrmtry share/icons/oxygen +@dirrmtry share/icons +@dirrmtry share/locale +@dirrmtry lib/kde4 +@dirrmtry lib +@dirrmtry share +@dirrmtry bin -- cgit v1.2.3