Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Aug 2006 22:02:33 GMT
From:      Pankov Pavel <pankov_p@mail.ru>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/102406: [PATCH] Update port: net-p2p/verlihub fix plugin support, add rc(8) script, fix dependencies, modify doc set, add db_charset patch, ad installation fixes, fix portlint warnings
Message-ID:  <200608222202.k7MM2X6W051519@www.freebsd.org>
Resent-Message-ID: <200608222210.k7MMAHXj024653@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         102406
>Category:       ports
>Synopsis:       [PATCH] Update port: net-p2p/verlihub fix plugin support, add rc(8) script, fix dependencies, modify doc set, add db_charset patch, ad installation fixes, fix portlint warnings
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 22 22:10:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Pankov Pavel
>Release:        6.0-RELEASE/i386
>Organization:
MPEI
>Environment:
FreeBSD PANKOVPV.SOVIETSERVERS.COM 6.0-RELEASE-p4 FreeBSD 6.0-RELEASE-p4 #8: Mon Feb 27 09:09:25 MSK 2006     root@CRYO.SOVIETSERVERS.COM:/usr/obj/usr/src/sys/CRYO  i386
>Description:
I made this patch mostly for unbreaking plugins support, but here is the "changelist":
* fix plugin support (without patch it sigfaulted with "ss_dns.so.1 called in default nsswitch.conf but not present on system" on plugin load; idea of fixing taken from ports/75048)
* add rc(8) script
* fix dependencies
* modify doc set (remove IMHO not useful and add useful)
* add db_charset patch (fix issues for non-english hubs)
* installation fixes (missed patch in install script)
* fix portlint warnings (about %%DOCSDIR%% and %%DATADIR%%)
>How-To-Repeat:

>Fix:
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/Makefile /home/pankovpv/ports/net-p2p/verlihub/Makefile
--- /usr/ports/net-p2p/verlihub/Makefile	Sun Aug 20 22:58:56 2006
+++ /home/pankovpv/ports/net-p2p/verlihub/Makefile	Mon Aug 21 02:56:50 2006
@@ -7,7 +7,7 @@
 
 PORTNAME=	verlihub
 PORTVERSION=	0.9.8.c
-PORTREVISION=	1
+PORTREVISION=	2
 PORTEPOCH=	1
 CATEGORIES=	net-p2p
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
@@ -15,41 +15,39 @@
 DISTNAME=	verlihub-0.9.8c-RC2
 
 MAINTAINER=	hurbold@yahoo.com
-COMMENT=	Verlihub Linux/Unix Direct Connect Hub Software
+COMMENT=	A Linux/Unix Direct Connect Hub Software
 
 LIB_DEPENDS=	GeoIP.5:${PORTSDIR}/net/GeoIP \
 		pcre.0:${PORTSDIR}/devel/pcre
+# Actually, bash isn't required for building,
+# but otherwise configure script wouldn't pick the right path
+BUILD_DEPENDS=	bash:${PORTSDIR}/shells/bash2
 RUN_DEPENDS=	bash:${PORTSDIR}/shells/bash2
 
 WRKSRC=		${WRKDIR}/verlihub-0.9.8c
 
 USE_MYSQL=	yes
-USE_PERL5=	yes
-USE_GMAKE=	yes
 GNU_CONFIGURE=	yes
-INSTALLS_SHLIB=	yes
-CONFIGURE_ENV=	CPPFLAGS="${CPPFLAGS} -I${LOCALBASE}/include"
+USE_LDCONFIG=	yes
+USE_GCC=	3.4+
+USE_OPENSSL=	yes
 
-PKGMESSAGE=	${WRKDIR}/pkg-message
-PORTDOCS=	configuring.txt help.sql using.txt features.html help.html params.php verlihub.html
+SUB_FILES=	pkg-message
+USE_RC_SUBR=	${PORTNAME}
 
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} < 500000
-USE_GCC=	3.4+
-.endif
+PORTDOCS=	configuring.txt using.txt help.html verlihub.html html_manual/verlihub.css html_manual/verlihub_manual.html
 
 post-patch:
-	@${CAT} ${PKGDIR}/pkg-message | ${SED} 's|%%PREFIX%%|${PREFIX}|' > ${PKGMESSAGE}
+	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/src/verlihub.cpp
 
 post-install:
 .if !defined(NOPORTDOCS)
-	${MKDIR} ${DOCSDIR}
+	@${MKDIR} ${DOCSDIR}
+	@${MKDIR} ${DOCSDIR}/html_manual
 .for i in ${PORTDOCS}
 	${INSTALL_DATA} ${WRKSRC}/docs/${i} ${DOCSDIR}
 .endfor
 .endif
-
 	@${CAT} ${PKGMESSAGE}
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/patch-cserverdc.cpp /home/pankovpv/ports/net-p2p/verlihub/files/patch-cserverdc.cpp
--- /usr/ports/net-p2p/verlihub/files/patch-cserverdc.cpp	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/patch-cserverdc.cpp	Mon Aug 21 00:30:56 2006
@@ -0,0 +1,11 @@
+--- src/cserverdc.cpp-orig	Tue Mar  8 12:27:21 2005
++++ src/cserverdc.cpp	Mon Aug 21 00:22:10 2006
+@@ -151,7 +151,7 @@
+ 		mOpChat->mMyINFO_basic = mOpChat->mMyINFO;
+ 		AddRobot((cMainRobot*)mOpChat);
+ 	}
+-	mNetOutLog.open("./net_out.log",ios::out);
++	mNetOutLog.open("/var/log/verlihub_net_out.log",ios::out);
+ 	mTotalShare = 0;
+ 
+ 	mFactory = new cDCConnFactory(this);
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/patch-db_charset /home/pankovpv/ports/net-p2p/verlihub/files/patch-db_charset
--- /usr/ports/net-p2p/verlihub/files/patch-db_charset	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/patch-db_charset	Mon Aug 21 01:40:47 2006
@@ -0,0 +1,83 @@
+diff -ruN src-orig/cdbconf.cpp src/cdbconf.cpp
+--- src-orig/cdbconf.cpp	Thu Apr  8 02:16:21 2004
++++ src/cdbconf.cpp	Mon Aug 21 01:39:14 2006
+@@ -20,6 +20,7 @@
+ 	Add("db_data",db_data,string("verlihub"));
+ 	Add("config_name",config_name,string("config"));
+ 	Add("lang_name",lang_name,string("lang_en"));
++	Add("db_charset",db_charset,string("utf8"));
+ 	Load();
+ }
+ 
+diff -ruN src-orig/cdbconf.h src/cdbconf.h
+--- src-orig/cdbconf.h	Thu Apr  8 02:16:21 2004
++++ src/cdbconf.h	Mon Aug 21 01:38:59 2006
+@@ -31,6 +31,7 @@
+ 	string db_user;
+ 	string db_pass;
+ 	string db_data;
++	string db_charset;
+ 	string config_name;
+ 	string lang_name;
+ 
+diff -ruN src-orig/cmysql.cpp src/cmysql.cpp
+--- src-orig/cmysql.cpp	Fri Oct  1 15:19:44 2004
++++ src/cmysql.cpp	Mon Aug 21 01:38:59 2006
+@@ -19,10 +19,10 @@
+ /*!
+     \fn nMySQL::cMySQL::cMySQL(string&host,string&user,string&pass,string&data)
+  */
+-cMySQL::cMySQL(string&host,string&user,string&pass,string&data) : cObj("cMySQL")
++cMySQL::cMySQL(string&host,string&user,string&pass,string&data,string&charset) : cObj("cMySQL")
+ {
+     Init();
+-    if(!Connect(host,user,pass,data))
++    if(!Connect(host,user,pass,data,charset))
+     {
+     	throw "Mysql connection error.";
+     }
+@@ -40,12 +40,13 @@
+ 	if(!mDBHandle) Error(0, string("Can't init mysql structure :(.: "));
+ }
+ 
+-bool cMySQL::Connect(string &host, string &user, string &pass, string &data)
++bool cMySQL::Connect(string &host, string &user, string &pass, string &data, string &charset)
+ {
+ 	if(Log(1)) LogStream() << "Connecting to mysql server: "
+-			<< user << "@" << host << "/" << data << endl;
++			<< user << "@" << host << "/" << data << "with charset " << charset << endl;
+ 
+ 	mysql_options(mDBHandle,MYSQL_OPT_COMPRESS,0);
++	mysql_options(mDBHandle,MYSQL_SET_CHARSET_NAME,charset.c_str());
+ 	if(!mysql_real_connect(
+ 		mDBHandle,
+ 		host.c_str(),
+diff -ruN src-orig/cmysql.h src/cmysql.h
+--- src-orig/cmysql.h	Mon Mar  8 18:59:56 2004
++++ src/cmysql.h	Mon Aug 21 01:38:59 2006
+@@ -34,10 +34,10 @@
+ friend class cQuery;
+ public:
+ 	cMySQL();
+-	cMySQL(string&host,string&user,string&pass,string&data);
++	cMySQL(string&host,string&user,string&pass,string&data,string&charset);
+ 	~cMySQL();
+ 	void Init();
+-	bool Connect(string &host, string &user, string &passwd, string &db);
++	bool Connect(string &host, string &user, string &passwd, string &db, string &charset);
+ 	public: void Error(int level, string text);
+ 
+ private:
+diff -ruN src-orig/cserverdc.cpp src/cserverdc.cpp
+--- src-orig/cserverdc.cpp	Tue Mar  8 12:27:21 2005
++++ src/cserverdc.cpp	Mon Aug 21 01:38:59 2006
+@@ -66,7 +66,8 @@
+ 		mDBConf.db_host,
+ 		mDBConf.db_user,
+ 		mDBConf.db_pass,
+-		mDBConf.db_data), // connect to mysql
++		mDBConf.db_data,
++		mDBConf.db_charset), // connect to mysql
+ 	mC(*this), // create the config object
+ 	mL(*this),
+ 	mSetupList(mMySQL),
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/patch-scripts-vh_install.in /home/pankovpv/ports/net-p2p/verlihub/files/patch-scripts-vh_install.in
--- /usr/ports/net-p2p/verlihub/files/patch-scripts-vh_install.in	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/patch-scripts-vh_install.in	Sun Aug 20 20:20:30 2006
@@ -0,0 +1,16 @@
+--- scripts/vh_install.in-orig	Sat Mar  5 04:24:59 2005
++++ scripts/vh_install.in	Sun Aug 20 20:18:09 2006
+@@ -210,10 +210,13 @@
+ 		echo "FYI: original configuration has been moved to $cfg_dir/_backup"
+ 	fi
+ 
++	$old_umask=`umask`
++	umask 77
+ 	echo "db_host = $mysql_host" >  $cfg_dbconfig
+ 	echo "db_data = $mysql_data" >> $cfg_dbconfig
+ 	echo "db_user = $mysql_user" >> $cfg_dbconfig
+ 	echo "db_pass = $mysql_pass" >> $cfg_dbconfig
++	umask $old_umask
+ 
+ 	echo "Written: $cfg_dbconfig"
+ 
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/patch-scripts-vh_runhub.in /home/pankovpv/ports/net-p2p/verlihub/files/patch-scripts-vh_runhub.in
--- /usr/ports/net-p2p/verlihub/files/patch-scripts-vh_runhub.in	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/patch-scripts-vh_runhub.in	Sun Aug 20 23:28:28 2006
@@ -0,0 +1,15 @@
+--- scripts/vh_runhub.in-orig	Sat Mar  5 03:52:33 2005
++++ scripts/vh_runhub.in	Sun Aug 20 23:25:45 2006
+@@ -14,9 +14,9 @@
+ 
+ confdir=`$bindir/vh_getcfg` || die "fix your problem with vh_getcfg, maybe just run vh_install first"
+ exepath=$bindir/ # default location for the hub config directory
+-pidfile=$confdir/pid
+-logfile=$confdir/log
+-errfile=$confdir/err
++pidfile=/var/run/verlihub.pid
++logfile=/var/log/verlihub.log
++errfile=/var/log/verlihub.err
+ psname=vh_restart
+ launcher=$bindir/$psname
+ killsig=
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/patch-src-cpluginloader.cpp /home/pankovpv/ports/net-p2p/verlihub/files/patch-src-cpluginloader.cpp
--- /usr/ports/net-p2p/verlihub/files/patch-src-cpluginloader.cpp	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/patch-src-cpluginloader.cpp	Mon Aug 21 02:40:52 2006
@@ -0,0 +1,28 @@
+--- src/cpluginloader.cpp.orig	Fri Oct  1 15:19:44 2004
++++ src/cpluginloader.cpp	Mon Aug 21 02:39:33 2006
+@@ -40,6 +40,12 @@
+  */
+ bool nPlugin::cPluginLoader::Open()
+ {
++	/*
++	 * Reset dlerror() since it can contain error from previous
++	 * call to dlopen()/dlsym().
++	 */
++	dlerror();
++
+ 	mHandle = dlopen(mFileName.c_str(), RTLD_NOW);
+ 	if(!mHandle || IsError()) // NOTE hte OR (||) operator evaluates only the first statement if that one is true
+ 	{
+@@ -99,6 +105,12 @@
+  */
+ void * nPlugin::cPluginLoader::LoadSym(const char *name)
+ {
++	/*
++	 * Reset dlerror() since it can contain error from previous
++	 * call to dlopen()/dlsym().
++	 */
++	dlerror();
++	
+ 	void *func = dlsym( mHandle, name);
+ 	if(IsError())
+ 	{
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/patch-src-tpluginbase.cpp /home/pankovpv/ports/net-p2p/verlihub/files/patch-src-tpluginbase.cpp
--- /usr/ports/net-p2p/verlihub/files/patch-src-tpluginbase.cpp	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/patch-src-tpluginbase.cpp	Mon Aug 21 01:59:54 2006
@@ -0,0 +1,15 @@
+--- src/tpluginbase.cpp-orig	Fri Oct  1 15:19:44 2004
++++ src/tpluginbase.cpp	Mon Aug 21 01:56:22 2006
+@@ -34,6 +34,12 @@
+  */
+ bool nPlugin::tPluginBase::Open()
+ {
++	/*
++	 * Reset dlerror() since it can contain error from previous
++	 * call to dlopen()/dlsym().
++	*/
++	dlerror();
++	
+ 	mHandle = dlopen(mFileName.c_str(), RTLD_NOW);
+ 	if(!mHandle)
+ 	{
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/patch-src-verlihub.cpp /home/pankovpv/ports/net-p2p/verlihub/files/patch-src-verlihub.cpp
--- /usr/ports/net-p2p/verlihub/files/patch-src-verlihub.cpp	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/patch-src-verlihub.cpp	Sun Aug 20 18:36:48 2006
@@ -0,0 +1,11 @@
+--- src/verlihub.cpp-orig	Tue Dec 21 15:48:46 2004
++++ src/verlihub.cpp	Sun Aug 20 18:22:29 2006
+@@ -81,6 +81,8 @@
+ 	{
+ 		string ConfigBase;
+ 		const char *DirName = NULL;
++		DirName = "%%PREFIX%%/etc/verlihub";
++		if ((DirName != NULL) && DirExists(DirName)) ConfigBase = DirName;
+ 		char *HomeDir = getenv("HOME");
+ 		string tmp;
+ 		if (HomeDir)
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/pkg-message.in /home/pankovpv/ports/net-p2p/verlihub/files/pkg-message.in
--- /usr/ports/net-p2p/verlihub/files/pkg-message.in	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/pkg-message.in	Mon Aug 21 02:55:50 2006
@@ -0,0 +1,18 @@
+--------------------------------------------------------------------
+
+Documentation has been installed in %%DOCSDIR%%
+
+This port requires a working mysql server installation, either
+locally or remotely. Once you have a properly-running mysql server, 
+please run the install script:
+
+%%PREFIX%%/bin/vh_install
+
+Follow the instructions given. After it verlihub can be controlled 
+through the rc(8) script %%PREFIX%%/etc/rc.d/%%PORTNAME%%.sh
+
+Visit http://www.verlihub.net for the project's homepage
+or http://www.verlihubforums.com for the project's forums. The verlihub
+manual is available online at http://www.danomac.org/verlihub/
+
+-------------------------------------------------------------------
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/files/verlihub.in /home/pankovpv/ports/net-p2p/verlihub/files/verlihub.in
--- /usr/ports/net-p2p/verlihub/files/verlihub.in	Thu Jan  1 03:00:00 1970
+++ /home/pankovpv/ports/net-p2p/verlihub/files/verlihub.in	Wed Aug 23 01:43:41 2006
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# PROVIDE: verlihub
+# REQUIRE: DAEMON
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# verlihub_enable (bool):   Set to NO by default.
+#               Set it to YES to enable verlihub.
+#
+
+. "%%RC_SUBR%%"
+
+name="verlihub"
+rcvar=${name}_enable
+
+command=%%PREFIX%%/bin/${name}
+pidfile=/var/run/${name}.pid
+
+logfile=/var/log/${name}.log
+errfile=/var/log/${name}.err
+command_args="> $logfile 2> $errfile &"
+
+: ${verlihub_configdir="`%%PREFIX%%/bin/vh_getcfg`"}
+required_dirs="$verlihub_configdir"
+required_files="$verlihub_configdir/dbconfig $verlihub_configdir/motd $verlihub_configdir/help_usr $verlihub_configdir/faq $verlihub_configdir/rules"
+
+load_rc_config $name
+
+: ${verlihub_enable="NO"}
+
+start_postcmd="echo \$! > $pidfile"
+stop_postcmd="rm $pidfile"
+
+run_rc_command "$1"
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/pkg-descr /home/pankovpv/ports/net-p2p/verlihub/pkg-descr
--- /usr/ports/net-p2p/verlihub/pkg-descr	Thu Jun 24 18:54:02 2004
+++ /home/pankovpv/ports/net-p2p/verlihub/pkg-descr	Mon Aug 21 03:01:15 2006
@@ -4,7 +4,7 @@
 Additional functionality is available through a versatile
 'plugin' system.
  
-WWW: http://verlihub.sourceforge.net
+WWW: http://www.verlihub.net
 
 -Hurbold
 hurbold@yahoo.com
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/pkg-message /home/pankovpv/ports/net-p2p/verlihub/pkg-message
--- /usr/ports/net-p2p/verlihub/pkg-message	Sun Aug 29 14:42:11 2004
+++ /home/pankovpv/ports/net-p2p/verlihub/pkg-message	Thu Jan  1 03:00:00 1970
@@ -1,21 +0,0 @@
---------------------------------------------------------------------
-
-Documentation has been installed in %%PREFIX%%/share/doc
-
-Scripts and the executable have been installed in %%PREFIX%%/bin
-
-This port requires a working mysql server installation, either
-locally or remotely.
-
-Once you have a properly-running mysql server, please run the install
-script:
-
-%%PREFIX%%/bin/vh_install
-
-Follow the instructions given.
-
-Visit http://verlihub.sourceforge.net for the project's homepage
-or http://verlihub.no-ip.com for the project's forums. The verlihub
-manual is available online at http://www.danomac.org/verlihub
-
--------------------------------------------------------------------
diff -ruN --exclude=CVS /usr/ports/net-p2p/verlihub/pkg-plist /home/pankovpv/ports/net-p2p/verlihub/pkg-plist
--- /usr/ports/net-p2p/verlihub/pkg-plist	Sat Oct  8 19:41:31 2005
+++ /home/pankovpv/ports/net-p2p/verlihub/pkg-plist	Mon Aug 21 01:04:35 2006
@@ -101,21 +101,21 @@
 lib/libvhapi.la
 lib/libvhapi.so
 lib/libvhapi.so.0
-share/verlihub/config/faq
-share/verlihub/config/help_admin
-share/verlihub/config/help_cheef
-share/verlihub/config/help_master
-share/verlihub/config/help_op
-share/verlihub/config/help_reg
-share/verlihub/config/help_usr
-share/verlihub/config/help_vip
-share/verlihub/config/motd
-share/verlihub/config/rules
-share/verlihub/sql/default_pi_plug.sql
-share/verlihub/sql/default_conn_types.sql
-share/verlihub/sql/default_file_trigger.sql
-share/verlihub/sql/default_reglist.sql
+%%DATADIR%%/config/faq
+%%DATADIR%%/config/help_admin
+%%DATADIR%%/config/help_cheef
+%%DATADIR%%/config/help_master
+%%DATADIR%%/config/help_op
+%%DATADIR%%/config/help_reg
+%%DATADIR%%/config/help_usr
+%%DATADIR%%/config/help_vip
+%%DATADIR%%/config/motd
+%%DATADIR%%/config/rules
+%%DATADIR%%/sql/default_pi_plug.sql
+%%DATADIR%%/sql/default_conn_types.sql
+%%DATADIR%%/sql/default_file_trigger.sql
+%%DATADIR%%/sql/default_reglist.sql
 @dirrm include/verlihub
-@dirrm share/verlihub/config
-@dirrm share/verlihub/sql
-@dirrm share/verlihub
+@dirrm %%DATADIR%%/config
+@dirrm %%DATADIR%%/sql
+@dirrm %%DATADIR%%
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200608222202.k7MM2X6W051519>