ports/141802: [maintainer] databases/phpmyadmin211 -- use bsd.options.mk etc.

Matthew Seaman m.seaman at infracaninophile.co.uk
Sun Dec 20 12:10:06 UTC 2009


>Number:         141802
>Category:       ports
>Synopsis:       [maintainer] databases/phpmyadmin211 -- use bsd.options.mk etc.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Dec 20 12:10:06 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Matthew Seaman
>Release:        FreeBSD 8.0-STABLE i386
>Organization:
Infracaninophile
>Environment:
System: FreeBSD happy-idiot-talk.infracaninophile.co.uk 8.0-STABLE FreeBSD 8.0-STABLE #14: Mon Dec 14 09:19:08 GMT 2009 root@:/usr/obj/usr/src/sys/HAPPY-IDIOT-TALK i386


	
>Description:
	

Simplify the port and make better use of the general facilities provided
by the ports system:

   * Switch to using bsd.ports.options.mk -- this means that we can apply
     OPTIONS processing for suPHP support, which otherwise needs to occur
     too early.

   * Use USERS and GROUPS functionality, instead of supplying pkg-install
     scripts to create userids.

   * Drop some warnings about changes that happened a long time ago now.



>How-To-Repeat:
	
>Fix:

	

--- phpmyadmin211.diff begins here ---
diff -Nur /usr/ports/databases/phpmyadmin211/Makefile phpmyadmin211/Makefile
--- /usr/ports/databases/phpmyadmin211/Makefile	2009-10-13 23:25:02.000000000 +0100
+++ phpmyadmin211/Makefile	2009-12-20 10:43:51.000000000 +0000
@@ -20,8 +20,16 @@
 USE_PHP=	ctype mysql session
 .endif
 
-# Unfortunately can't make WITH_SUPHP part of the OPTIONS selection,
-# since it has to be processed before just about anything else.
+OPTIONS=	SUPHP	 "suPHP support" off \
+		BZ2	 "bzip2 library support" on \
+		GD	 "GD library support" on \
+		OPENSSL	 "OpenSSL support" on \
+		PDF	 "PDFlib support (implies GD)" on \
+		ZLIB	 "ZLIB support" on \
+		MCRYPT	 "MCrypt library support" on \
+		MBSTRING "Multi-byte character-set string support" on
+
+.include <bsd.port.options.mk>
 
 .if defined(WITH_SUPHP) && !defined(WITHOUT_SUPHP)
 
@@ -35,30 +43,19 @@
 
 .endif
 
-# PMA_USR is only used WITH_SUPHP
-
-PMA_GRP?=	${WWWGRP}
-PMA_GID?=	${_PMA_GID}
+# USERS is only used WITH_SUPHP
+GROUPS?=	${WWWGRP}
 CFGFILE=	config.inc.php
 
 PLIST=		${WRKDIR}/plist
-PLIST_SUB+=	PMA_GRP=${PMA_GRP}
+PLIST_SUB+=	PMA_GRP=${GROUPS}
 
 .if defined(WITH_SUPHP) && !defined(WITHOUT_SUPHP)
 
-PMA_USR?=	_pma
-PMA_UID?=	336
-PMA_GCOS?=	"phpMyAdmin Owner"
-PMA_HOME?=	/nonexistent
-PMA_SHELL?=	/sbin/nologin
-
-SUB_LIST+=	PMA_USR=${PMA_USR}    \
-		PMA_UID=${PMA_UID}    \
-		PMA_GRP=${PMA_GRP}    \
-		PMA_GID=${PMA_GID}    \
-		PMA_GCOS=${PMA_GCOS}  \
-		PMA_HOME=${PMA_HOME}  \
-		PMA_SHELL=${PMA_SHELL}
+USERS?=		_pma
+
+SUB_LIST+=	PMA_USR=${USERS} \
+		PMA_GRP=${GROUPS}
 SUB_FILES+=	pkg-install pkg-deinstall
 
 .endif
@@ -66,25 +63,6 @@
 SUB_LIST+=	PKGNAME=${PKGNAME}
 SUB_FILES+=	pkg-message
 
-# Copy the way lang/php{4,5}-extensions deals with its OPTIONS -- avoids
-# problems with include of bsd.port.pre.mk
-
-OPTIONS=	BZ2	 "bzip2 library support" on \
-		GD	 "GD library support" on \
-		OPENSSL	 "OpenSSL support" on \
-		PDF	 "PDFlib support (implies GD)" on \
-		ZLIB	 "ZLIB support" on \
-		MCRYPT   "MCrypt library support" on \
-		MBSTRING "Multi-byte character-set string support" on
-
-PORT_DBDIR?=	/var/db/ports
-LATEST_LINK=	${PORTNAME}${PKGNAMESUFFIX}
-OPTIONSFILE?=	${PORT_DBDIR}/${LATEST_LINK}/options
-
-.if exists(${OPTIONSFILE})
-.include "${OPTIONSFILE}"
-.endif
-
 .if !defined(WITHOUT_PHP_DEPENDS)
 # Options that default to on:
 .for opt in BZ2 GD OPENSSL PDF ZLIB MCRYPT MBSTRING
@@ -100,11 +78,6 @@
 USE_PHP+=	pcre
 .endif
 
-_PMA_GID!=	${PW} group show -n ${PMA_GRP} | ${CUT} -d : -f 3
-.if empty(_PMA_GID)
-_PMA_GID=	80
-.endif
-
 .SILENT:
 
 do-build:
@@ -115,11 +88,6 @@
 	${ECHO_MSG} "This is the legacy version of phpMyAdmin that will"
 	${ECHO_MSG} "work with PHP4 and versions of MySQL older than 5.0"
 	${ECHO_MSG} ""
-	${ECHO_MSG} "You may use the following additional build option:"
-	${ECHO_MSG} ""
-	${ECHO_MSG} "    WITH_SUPHP=yes   Install appropriately for use with"
-	${ECHO_MSG} "                     the www/suphp port [default: no]"
-	${ECHO_MSG} ""
 	${ECHO_MSG} "Note that the mysqli option is not available with this"
 	${ECHO_MSG} "port.  Please use databases/phpmyadmin instead."
 	${ECHO_MSG} ""
@@ -127,15 +95,6 @@
 	${ECHO_MSG} "install lang/php4 before attempting to install"
 	${ECHO_MSG} "databases/phpmyadmin"
 	${ECHO_MSG} ""
-.if defined(WITH_SUPHP) && !defined(WITHOUT_SUPHP)
-	@if ${PW} show -n phpmyadm >/dev/null 2>&1 ; then                     \
-	    ${ECHO_MSG} "===> WARNING ******************************" ;       \
-	    ${ECHO_MSG} "The default username used by ${PKNAME} has changed"; \
-	    ${ECHO_MSG} "to ${PMA_USR} -- you should delete the old user:" ;  \
-	    ${ECHO_MSG} "  # ${PW} user del -n phpmyadm" ;                    \
-	    ${ECHO_MSG} "" ;                                                  \
-	fi
-.endif
 
 # When creating a package, empty directories will not be generated
 # from the pkg tarball.  Therefore make sure no directories are empty.
@@ -148,16 +107,11 @@
 	${CP} ${FILESDIR}/${CFGFILE}.sample ${WRKSRC}/${CFGFILE}.sample
 	cd ${WRKSRC} ; \
 	${FIND} . ! -type d ! -name ${CFGFILE}.sample | ${SORT} | \
-	    ${SED} -e "s,^\.,%%WWWDIR%%,"             >${PLIST} ; \
-	${CAT} ${PKGDIR}/pkg-plist-chunk             >>${PLIST} ; \
+	    ${SED} -e "s,^\.,%%WWWDIR%%,"	      >${PLIST} ; \
+	${CAT} ${PKGDIR}/pkg-plist-chunk	     >>${PLIST} ; \
 	${FIND} . -type d | ${SORT} -r | ${SED} \
 	     -e "s,^\.$$, at dirrmtry %%WWWDIR%%," \
-	     -e "s,^\., at dirrm %%WWWDIR%%,"           >>${PLIST}
-
-pre-install:
-.if defined(WITH_SUPHP)
-	${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
-.endif
+	     -e "s,^\., at dirrm %%WWWDIR%%,"	     >>${PLIST}
 
 do-install: install-app install-conf
 
@@ -166,16 +120,16 @@
 	for src in $$( ${FIND} . ! -name .cvsignore ) ; do \
 	    dst=${WWWDIR}$${src#.} ; \
 	    if ${TEST} -d $$src ; then \
-	        ${MKDIR} $$dst ; \
+		${MKDIR} $$dst ; \
 	    else \
-	        ${INSTALL_DATA} $$src $$dst ; \
+		${INSTALL_DATA} $$src $$dst ; \
 	    fi \
 	done
 
 install-conf: install-app
 	cd ${WWWDIR} ; \
 	${CHMOD} 0640 ${CFGFILE}.sample ; \
-	${CHGRP} ${PMA_GRP} ${CFGFILE}.sample ; \
+	${CHGRP} ${WWWGRP} ${CFGFILE}.sample ; \
 	if ${TEST} ! -f ${CFGFILE} ; then \
 	    ${CP} -p ${CFGFILE}.sample ${CFGFILE} ; \
 	fi
diff -Nur /usr/ports/databases/phpmyadmin211/files/pkg-install.in phpmyadmin211/files/pkg-install.in
--- /usr/ports/databases/phpmyadmin211/files/pkg-install.in	2008-01-21 10:58:20.000000000 +0000
+++ phpmyadmin211/files/pkg-install.in	2009-12-19 19:45:22.000000000 +0000
@@ -5,103 +5,18 @@
 
 PATH=/usr/sbin:/usr/bin:/bin ; export PATH
 
-pma_dir=%%WWWDIR%%
+WWWDIR=%%WWWDIR%%
 pma_usr=%%PMA_USR%%
-pma_uid=%%PMA_UID%%
 pma_grp=%%PMA_GRP%%
-pma_gid=%%PMA_GID%%
-
-pma_gcos="%%PMA_GCOS%%"
-pma_home=%%PMA_HOME%%
-pma_shell=%%PMA_SHELL%%
-
-create_group() {
-    local user uid group gid gcos home shell
-
-    user=$1
-    uid=$2
-    group=$3
-    gid=$4
-    gcos=$5
-    home=$6
-    shell=$7
-
-
-    if pw group show -n $group >/dev/null 2>&1 ; then
-	echo "===> Using pre-existing group $group"
-    else
-	if pw groupadd -n $group -g $gid ; then
-	    echo "===> Group $group created"
-	else
-	    cat <<-EOERRORMSG
- 		*** Failed to create the $group group.
-
-		Please add the $user user and $group group
-		manually with the commands:
-
-		    pw groupadd -n $group -g $gid
-		    pw useradd -n $user -u $uid -g $group -c "$gcos" \\
-		        -d $home -s $shell -h -
-
-		and retry installing this package.
-		EOERRORMSG
-	    exit 1
-	fi
-    fi
-
-}
-
-
-create_user() {
-    local user uid group gid gcos home shell
-
-    user=$1
-    uid=$2
-    group=$3
-    gid=$4
-    gcos=$5
-    home=$6
-    shell=$7
-
-    if pw user show -n $user >/dev/null 2>&1 ; then
-	echo "===> Using pre-existing user $user"
-    else
-	if pw useradd -n $user -u $uid -g $group -c "$gcos" \
-	    -d $home -s $shell -h - ; then
-	    echo "===> Created $user user"
-	else
-	    cat <<-EOERRORMSG
-		*** Failed to create the $user user.
-
-		Please add the $user user manually with the command:
-
-		    pw useradd -n $user -u $uid -g $group -c "$gcos" \\
-		       -d $home -s $shell -h -
-
-		and retry installing this package.
-		EOERRORMSG
-	    exit 1
-	fi
-    fi
-}
-
 
 case $2 in
-    PRE-INSTALL)
-
-        # Create the pma user and group if they do not already exist
-	create_group $pma_usr $pma_uid $pma_grp $pma_gid \
-                     "$pma_gcos" $pma_home $pma_shell
-	create_user  $pma_usr $pma_uid $pma_grp $pma_gid \
-                     "$pma_gcos" $pma_home $pma_shell
-	;;
 
     POST-INSTALL)
 
     	# Change ownership of the phpMyAdm directory
 
-        echo "===> Adjusting file ownership in $pma_dir"
-        chown -R $pma_usr:$pma_grp $pma_dir || exit 1
+        echo "===> Adjusting file ownership in $WWWDIR"
+        chown -R $pma_usr:$pma_grp $WWWDIR || exit 1
 	;;
 esac
 
diff -Nur /usr/ports/databases/phpmyadmin211/pkg-descr phpmyadmin211/pkg-descr
--- /usr/ports/databases/phpmyadmin211/pkg-descr	2008-10-15 15:46:57.000000000 +0100
+++ phpmyadmin211/pkg-descr	2009-12-19 19:45:22.000000000 +0000
@@ -2,35 +2,25 @@
    phpMyAdmin handles the administration of MySQL over the Web. It can
    manage a whole MySQL server as well as a single database.
 
-   Currently phpMyAdmin can:
-     - easily browse through databases and tables
-     - create, copy, rename, alter and drop databases
-     - create, copy, rename, alter and drop tables
-     - do table maintenance
-     - add, edit and drop fields
-     - execute any SQL-statement, even multiple queries
-     - create, alter and drop indexes
-     - load text files into tables
-     - create (*) and read dumps of tables or databases
-     - export (*) data to SQL, CSV, XML, Word, Excel, PDF and Latex
-       formats
-     - administer multiple servers
-     - manage MySQL users and privileges
-     - check server settings and runtime information with
-       configuration hints
-     - check referential integrity in MyISAM tables
-     - using Query-by-example (QBE), create complex queries
-       automatically connecting required tables
-     - create PDF graphics of your Database layout
-     - search globally in a database or a subset of it
-     - transform stored data into any format using a set of predefined
-       functions, like displaying BLOB-data as image or download-link
-     - support InnoDB tables and foreign keys (see FAQ 3.6)
-     - support mysqli, the improved MySQL extension (see FAQ 1.17)
-     - communicate in 50 different languages
-
-   (*) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats)
-   dumps and CSV exports if you use PHP4 >= 4.0.4 with Zlib support
-   (--with-zli b) and/or Bzip2 support (--with-bz2).
+    * Intuitive web interface
+    * Support for most MySQL features:
+          o browse and drop databases, tables, views, fields and indexes
+          o create, copy, drop, rename and alter databases, tables, fields
+	    and indexes
+          o maintenance of server, databases and tables, with proposals on
+	    server configuration
+          o execute, edit and bookmark any SQL-statement, even batch-queries
+          o manage MySQL users and privileges
+          o manage stored procedures and triggers
+    * Import data from CSV and SQL
+    * Export data to various formats: CSV, SQL, XML, PDF, ISO/IEC 26300 -
+      OpenDocument Text and Spreadsheet, Word, Excel, LATEX and others
+    * Administering multiple servers
+    * Creating PDF graphics of your database layout
+    * Creating complex queries using Query-by-example (QBE)
+    * Searching globally in a database or a subset of it
+    * Transforming stored data into any format using a set of predefined
+      functions, like displaying BLOB-data as image or download-link
+    * And much more...
 
 WWW: http://www.phpmyadmin.net/
--- phpmyadmin211.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list