diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cbb3a13
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.rpm
+*.log
+*spec-20*
+*.tar.gz
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..7aba0eb
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,21 @@
+# Makefile for source rpm: smeserver-phpmyadmin
+# $Id: Makefile,v 1.1 2020/04/13 11:23:29 jpp Exp $
+NAME := smeserver-phpmyadmin
+SPECFILE = $(firstword $(wildcard *.spec))
+
+define find-makefile-common
+for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
+endef
+
+MAKEFILE_COMMON := $(shell $(find-makefile-common))
+
+ifeq ($(MAKEFILE_COMMON),)
+# attept a checkout
+define checkout-makefile-common
+test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
+endef
+
+MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
+endif
+
+include $(MAKEFILE_COMMON)
diff --git a/README.md b/README.md
index 001a538..4147f89 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,15 @@
-# smeserver-phpmyadmin
+# smeserver-phpmyadmin
-SMEServer Koozali developed git repo for smeserver-phpmyadmin smecontribs
\ No newline at end of file
+SMEServer Koozali developed git repo for smeserver-phpmyadmin smecontribs
+
+## Wiki
+
https://wiki.koozali.org/PHPMyAdmin
+
+## Bugzilla
+Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-phpmyadmin&product=SME%20Contribs&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)
+
+## Description
+
+
*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
+*Once it has been checked, then this comment will be deleted*
+
diff --git a/additional/CHANGELOG.git b/additional/CHANGELOG.git
new file mode 100644
index 0000000..92b89bc
--- /dev/null
+++ b/additional/CHANGELOG.git
@@ -0,0 +1,206 @@
+commit 5d981280e523b46482b803789acd271096e42773
+Author: Stephane de Labrusse
+Date: Fri Oct 3 22:31:08 2014 +0200
+
+ * Sun Sep 28 2014 stephane de labrusse 4.0.10.2-2.sme
+ - added a tmp folder other that the /tmp [SME:8577]
+ - added some db values to adjust php limits (PostMaxSize,UploadMaxSize,MemoryLimit)
+
+commit 72a13ec2c8ea3fa549a5102002e6bc1f3656860a
+Author: Stephane de Labrusse
+Date: Sun Sep 28 21:42:11 2014 +0200
+
+ spec work
+
+commit 501de9db9157a84e49597ba6fd359da06a127d3b
+Author: Stephane de Labrusse
+Date: Sun Sep 28 21:24:52 2014 +0200
+
+ spec work
+
+commit 4be1acae8a21eb669eb8692f0f7ab86883c104f5
+Author: Stephane de Labrusse
+Date: Sun Sep 28 21:05:19 2014 +0200
+
+ Near to release
+
+commit 550e9618324b6e53a4698e924c254e5f21e8ccb2
+Author: Stephane de Labrusse
+Date: Sun Sep 28 20:11:58 2014 +0200
+
+ Revert "wip"
+
+ This reverts commit ef0e85e07496df5998703c5deef62ce3fb59761f.
+
+commit ef0e85e07496df5998703c5deef62ce3fb59761f
+Author: Stephane de Labrusse
+Date: Sun Sep 28 19:31:28 2014 +0200
+
+ wip
+
+commit 6f46ba191e6b4820c35080b31021ea69bae487eb
+Author: Stephane de Labrusse
+Date: Sun Sep 28 19:15:34 2014 +0200
+
+ wip
+
+commit b94b589280793958ba8d5c77b4409bf0ac7f8696
+Author: Stephane de Labrusse
+Date: Sun Sep 28 19:00:57 2014 +0200
+
+ createlinks
+
+commit c6b4ada66578e8210a70b9b956dfefbbd60e25e3
+Author: Stephane de Labrusse
+Date: Sun Sep 28 18:48:04 2014 +0200
+
+ wip
+
+commit f9044a273e275862b82298c53b64ee32bdd4af5f
+Author: Stephane de Labrusse
+Date: Sun Sep 28 18:13:36 2014 +0200
+
+ mysqli
+
+commit c3dd4c8483a55cd71315d11c1d9da4eaeea7a88f
+Author: Stephane de Labrusse
+Date: Sun Sep 28 18:11:23 2014 +0200
+
+ mysqli
+
+commit 3f8ee16f2323d089819aae9451a5b6f8b6c45fc7
+Author: Stephane de Labrusse
+Date: Sun Sep 28 16:34:10 2014 +0200
+
+ spec work on phpmyadmin template
+
+commit f0650af79f28b1d86cbc0fcd3312d98511abac97
+Author: Stephane de Labrusse
+Date: Sun Sep 28 16:08:56 2014 +0200
+
+ spec work for sql init
+
+commit 8b14a90e3df00d76789ca9f00bc38ceb3ed3d8c7
+Author: Stephane de Labrusse
+Date: Sun Sep 28 16:06:12 2014 +0200
+
+ spec work for sql init
+
+commit b41fb7e06b86cfff25f6e451b16e655bc0872c21
+Author: Stephane de Labrusse
+Date: Sun Sep 28 15:55:08 2014 +0200
+
+ spec work for sql init
+
+commit 6b2e2c06dae2a9dfe77fff229621aa3de81353e1
+Author: Stephane de Labrusse
+Date: Sun Sep 28 15:50:58 2014 +0200
+
+ spec work for sql init
+
+commit 24bfd34914a9f839d334355052d2da4e56e94f08
+Author: Stephane de Labrusse
+Date: Sun Sep 28 15:42:16 2014 +0200
+
+ spec work for sql init
+
+commit 31c7d61ac8c355e436d6d1f95ff5be4b4891da21
+Author: Stephane de Labrusse
+Date: Sun Sep 28 15:15:35 2014 +0200
+
+ added new Pma users and work on httpd template
+
+commit 461d5918e92a6e8fcd6f229de75365b4fd2dfa5b
+Author: Stephane de Labrusse
+Date: Wed Sep 24 22:10:58 2014 +0200
+
+ devel
+
+commit d0ff6302e0d502f6475eaaf05458f98baff8b70e
+Author: Stephane de Labrusse
+Date: Wed Sep 24 18:46:46 2014 +0200
+
+ * Wed Sep 24 2014 stephane de labrusse 4.0.10.1-1.sme
+ - add memory value up to 500M
+ - add php upload/post up to 100M
+ - add session.use_trans_sid 0
+ - directory scripts removed of httpd templates
+ - VersionCheck is off now
+
+commit 68eb9c29c19d63ec5dba51930efb45de5da83049
+Author: Stephane de Labrusse
+Date: Mon Aug 4 21:45:43 2014 +0200
+
+ readme
+
+commit 1c7baf13b941928ce5faaee94b5e2276ffcc3a30
+Author: Stephane de Labrusse
+Date: Thu Jun 19 22:56:34 2014 +0200
+
+ change path of templates.metadata
+
+commit c13f6c4868c48c2e357860c565d5558075c5a6bd
+Author: Stephane de Labrusse
+Date: Thu Jun 19 22:49:21 2014 +0200
+
+ added event console-save
+
+commit 86bc12d61ab1ff36651e99c4852a5e1f12479043
+Author: Stephane de Labrusse
+Date: Wed May 28 12:03:06 2014 +0200
+
+ modified version accordingly to phpmyadmin version
+
+commit 369dc22d1bd77a31f0145715c13f0ec75eede473
+Author: Stephane de Labrusse
+Date: Wed May 28 11:49:53 2014 +0200
+
+ added some http denial access
+
+commit c3c3f7dfc1f58216bf4e833e249c9fe9d128b0d5
+Author: Stephane de Labrusse
+Date: Sun May 25 14:17:14 2014 +0200
+
+ Update createlinks
+
+commit 36d93e9816a00cd84f67c91892c91afa227471a7
+Author: Stephane de Labrusse
+Date: Mon May 19 10:17:36 2014 +0200
+
+ removing patchs
+
+commit 3da6bb4b509bc4ad7b3c735405b4fd17724e870d
+Author: Stephane de Labrusse
+Date: Mon May 19 10:14:04 2014 +0200
+
+ first release to sme9
+
+commit 66d72d7f8a22a1bb043e2d284c6a2eb94088718c
+Author: Stephane de Labrusse
+Date: Fri May 2 14:51:28 2014 -0700
+
+ Initial commit
+
+commit 2d32d391adef317e717a2202676b9e064c408139
+Author: Stephane de Labrusse
+Date: Fri May 2 23:30:18 2014 +0200
+
+ specfile modification
+
+commit 31ee0bddca6bfadb3c9dba2d3a5abe76e1a54f1d
+Author: Stephane de Labrusse
+Date: Fri May 2 23:09:50 2014 +0200
+
+ specfile modification
+
+commit f608d3e29c4ef2d4f222becbd89b7af6c5f3c502
+Author: Stephane de Labrusse
+Date: Fri May 2 23:06:09 2014 +0200
+
+ specfile modification
+
+commit 3d833f0a8338370120be9551b988a3f0577965d1
+Author: Stephane de Labrusse
+Date: Fri May 2 22:58:25 2014 +0200
+
+ initial release
diff --git a/additional/README.md b/additional/README.md
new file mode 100644
index 0000000..0009bc7
--- /dev/null
+++ b/additional/README.md
@@ -0,0 +1,3 @@
+smeserver-phpmyadmin
+====================
+a contrib for sme9
diff --git a/additional/phpmyadmin.sql b/additional/phpmyadmin.sql
new file mode 100644
index 0000000..b85b153
--- /dev/null
+++ b/additional/phpmyadmin.sql
@@ -0,0 +1,241 @@
+-- --------------------------------------------------------
+-- SQL Commands to set up the pmadb as described in Documentation.html.
+--
+-- This file is meant for use with MySQL 5 and above!
+--
+-- This script expects the user pma to already be existing. If we would put a
+-- line here to create him too many users might just use this script and end
+-- up with having the same password for the controluser.
+--
+-- This user "pma" must be defined in config.inc.php (controluser/controlpass)
+--
+-- Please don't forget to set up the tablenames in config.inc.php
+--
+
+-- --------------------------------------------------------
+
+-- --------------------------------------------------------
+
+--
+-- Privileges
+--
+-- (activate this statement if necessary)
+-- GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
+-- 'pma'@localhost;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_bookmark`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_bookmark` (
+ `id` int(11) NOT NULL auto_increment,
+ `dbase` varchar(255) NOT NULL default '',
+ `user` varchar(255) NOT NULL default '',
+ `label` varchar(255) COLLATE utf8_general_ci NOT NULL default '',
+ `query` text NOT NULL,
+ PRIMARY KEY (`id`)
+)
+ ENGINE=MyISAM COMMENT='Bookmarks'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_column_info`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_column_info` (
+ `id` int(5) unsigned NOT NULL auto_increment,
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `column_name` varchar(64) NOT NULL default '',
+ `comment` varchar(255) COLLATE utf8_general_ci NOT NULL default '',
+ `mimetype` varchar(255) COLLATE utf8_general_ci NOT NULL default '',
+ `transformation` varchar(255) NOT NULL default '',
+ `transformation_options` varchar(255) NOT NULL default '',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
+)
+ ENGINE=MyISAM COMMENT='Column information for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_history`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_history` (
+ `id` bigint(20) unsigned NOT NULL auto_increment,
+ `username` varchar(64) NOT NULL default '',
+ `db` varchar(64) NOT NULL default '',
+ `table` varchar(64) NOT NULL default '',
+ `timevalue` timestamp NOT NULL,
+ `sqlquery` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `username` (`username`,`db`,`table`,`timevalue`)
+)
+ ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_pdf_pages`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_pdf_pages` (
+ `db_name` varchar(64) NOT NULL default '',
+ `page_nr` int(10) unsigned NOT NULL auto_increment,
+ `page_descr` varchar(50) COLLATE utf8_general_ci NOT NULL default '',
+ PRIMARY KEY (`page_nr`),
+ KEY `db_name` (`db_name`)
+)
+ ENGINE=MyISAM COMMENT='PDF relation pages for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_recent`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_recent` (
+ `username` varchar(64) NOT NULL,
+ `tables` text NOT NULL,
+ PRIMARY KEY (`username`)
+)
+ ENGINE=MyISAM COMMENT='Recently accessed tables'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_table_uiprefs`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_table_uiprefs` (
+ `username` varchar(64) NOT NULL,
+ `db_name` varchar(64) NOT NULL,
+ `table_name` varchar(64) NOT NULL,
+ `prefs` text NOT NULL,
+ `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`username`,`db_name`,`table_name`)
+)
+ ENGINE=MyISAM COMMENT='Tables'' UI preferences'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_relation`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_relation` (
+ `master_db` varchar(64) NOT NULL default '',
+ `master_table` varchar(64) NOT NULL default '',
+ `master_field` varchar(64) NOT NULL default '',
+ `foreign_db` varchar(64) NOT NULL default '',
+ `foreign_table` varchar(64) NOT NULL default '',
+ `foreign_field` varchar(64) NOT NULL default '',
+ PRIMARY KEY (`master_db`,`master_table`,`master_field`),
+ KEY `foreign_field` (`foreign_db`,`foreign_table`)
+)
+ ENGINE=MyISAM COMMENT='Relation table'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_table_coords`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_table_coords` (
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `pdf_page_number` int(11) NOT NULL default '0',
+ `x` float unsigned NOT NULL default '0',
+ `y` float unsigned NOT NULL default '0',
+ PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)
+)
+ ENGINE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_table_info`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_table_info` (
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `display_field` varchar(64) NOT NULL default '',
+ PRIMARY KEY (`db_name`,`table_name`)
+)
+ ENGINE=MyISAM COMMENT='Table information for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_designer_coords`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_designer_coords` (
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `x` INT,
+ `y` INT,
+ `v` TINYINT,
+ `h` TINYINT,
+ PRIMARY KEY (`db_name`,`table_name`)
+)
+ ENGINE=MyISAM COMMENT='Table coordinates for Designer'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_tracking`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_tracking` (
+ `db_name` varchar(64) NOT NULL,
+ `table_name` varchar(64) NOT NULL,
+ `version` int(10) unsigned NOT NULL,
+ `date_created` datetime NOT NULL,
+ `date_updated` datetime NOT NULL,
+ `schema_snapshot` text NOT NULL,
+ `schema_sql` text,
+ `data_sql` longtext,
+ `tracking` set('UPDATE','REPLACE','INSERT','DELETE','TRUNCATE','CREATE DATABASE','ALTER DATABASE','DROP DATABASE','CREATE TABLE','ALTER TABLE','RENAME TABLE','DROP TABLE','CREATE INDEX','DROP INDEX','CREATE VIEW','ALTER VIEW','DROP VIEW') default NULL,
+ `tracking_active` int(1) unsigned NOT NULL default '1',
+ PRIMARY KEY (`db_name`,`table_name`,`version`)
+)
+ ENGINE=MyISAM ROW_FORMAT=COMPACT COMMENT='Database changes tracking for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_userconfig`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_userconfig` (
+ `username` varchar(64) NOT NULL,
+ `timevalue` timestamp NOT NULL,
+ `config_data` text NOT NULL,
+ PRIMARY KEY (`username`)
+)
+ ENGINE=MyISAM COMMENT='User preferences storage for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+
diff --git a/additional/smeserver-phpmyadmin.spec b/additional/smeserver-phpmyadmin.spec
new file mode 100644
index 0000000..fb38320
--- /dev/null
+++ b/additional/smeserver-phpmyadmin.spec
@@ -0,0 +1,131 @@
+# $Id: smeserver-phpmyadmin.spec,v 1.8 2013/06/23 00:20:28 unnilennium Exp $
+# Authority: darrellmay
+# Name: Darrell May
+
+Summary: phpMyAdmin for SME Server
+%define name smeserver-phpmyadmin
+Name: %{name}
+%define version 4.0.10.2
+%define release 2
+Version: %{version}
+Release: %{release}%{?dist}
+License: GPL
+Group: Mitel/addon
+Source: %{name}-%{version}.tar.gz
+URL: http://www.phpmyadmin.net/
+BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
+BuildArchitectures: noarch
+Requires: e-smith-base
+Requires: phpMyAdmin >= 4.0.10.1
+Requires: e-smith-release >= 9.0
+Obsoletes: phpmyadmin,phpMyAdmin3
+BuildRequires: e-smith-devtools
+Obsoletes: e-smith-phpmyadmin
+Obsoletes: smeserver-phpmyadmin <= 3.5.2.2-1
+Obsoletes: smeserver-phpmyadmin-multiuser
+
+%description
+Implementation of phpMyAdmin for SME Server.
+Access with admin username/password via: https://yourdomain/phpmyadmin.
+
+%changelog
+* Sun Sep 28 2014 stephane de labrusse 4.0.10.2-2.sme
+- added a tmp folder other that the /tmp [SME:8577]
+- added some db values to adjust php limits (PostMaxSize,UploadMaxSize,MemoryLimit)
+
+* Sun Sep 28 2014 stephane de labrusse 4.0.10.2-1.sme
+- added an event template on 'phpmyadmin-update'
+- added a phpmyadmin.sql db to save settings in db
+- new cool features (bookmarktable,relation,userconfig,table_info,column_info,history,
+- recent,table_uiprefs,tracking,table_coords,pdf_pages,designer_coords)
+- the http://url/setup page is now forbidden by apache
+- a db 'status' exists now to disable simply phpmyadmin in httpd.conf
+- removed the openbasedir of /tmp to /var/lib/phpMyAdmin/tmp
+
+* Wed Sep 24 2014 stephane de labrusse 4.0.10.1-1.sme
+- add memory value up to 500M
+- add php upload/post up to 100M
+- add session.use_trans_sid 0
+- directory 'scripts' removed of httpd templates
+- VersionCheck is off now
+
+* Mon May 19 2014 stephane de labrusse 3.5.8.2-2
+-first release to sme9
+-added an event template on 'signal-event console-save'
+
+* Sat Jun 22 2013 JP Pialasse 3.5.2.2-6
+- Obsolete multiuser [SME: 7685]
+
+* Tue Jun 18 2013 JP Pialasse 3.5.2.2-5
+- added full 3.5 configuration to avoid errors [SME: 7153] [SME: 7194]
+- incorporated multiuser contrib in this package [SME: 7628 7627 ]
+- increased security [SME: 5007]
+- configext.patch
+- release bump to 4 to fix spec file
+- patch1 to fix config.inc.php syntax error
+
+* Thu Aug 06 2012 JP Pialasse aka Unnilennium 3.5.2.2-2
+- first version for SME 8
+- adaptation for phpMyAdmin3 3.5.2.2
+
+* Thu May 15 2008 Jonathan Martens 2.11.1.2-3
+- Protect sensible data and prevent access error by setting
+ proper permissions to config.inc.php template [SME: 4343]
+
+* Wed May 14 2008 Jonathan Martens
+- Converted RPM to be an integrational RPM [SME: 4298]:
+- Convert and move templates to RPMForge (Dag) install location [SME: 4339]
+- Automatically expand phpmyadmin configuation file (config.php.inc) [SME: 4340]
+- Remove PHPMyAdmin core [SME: 4341]
+
+* Mon Apr 21 2008 Shad L. Lords
+- Prep for import into buildsys
+- Clean up spec
+
+* Fri Oct 19 2007 Darrell May
+- accounts and configuration db phpmyadmin defaults added
+- default access restricted to private (private|public)
+- phpMyAdmin 2.11.1.2
+- [ 2.11.1.2-0]
+* Fri Mar 09 2007 Darrell May
+- phpMyAdmin 2.10.0.2
+- [ 2.10.0.2-0]
+* Thu Oct 12 2006 Darrell May
+- phpMyAdmin 2.9.0.2
+- [ 2.9.0.2-0]
+* Thu Dec 15 2005 Darrell May
+- phpMyAdmin 2.6.4-pl4
+- [ 2.6.4-pl4]
+* Fri Apr 22 2005 Darrell May
+- added support for SME 7.x
+- [ 2.6.2-2]
+* Mon Apr 18 2005 Darrell May
+- Release 2.6.2 of phpMyAdmin
+- change rpm name to smeserver-phpmyadmin
+- change install dir to /opt/phpmyadmin
+- [ 2.6.2-1]
+
+%prep
+%setup
+
+%build
+%{__mkdir_p} root/var/lib/phpMyAdmin/tmp
+perl createlinks
+
+%install
+/bin/rm -rf $RPM_BUILD_ROOT
+rm -f %{name}-%{version}-filelist
+(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT)
+/bin/rm -f %{name}-%{version}-filelist
+/sbin/e-smith/genfilelist \
+ --dir /var/lib/phpMyAdmin/tmp 'attr(0770,root,www)' \
+ $RPM_BUILD_ROOT > %{name}-%{version}-filelist
+echo "%doc CHANGELOG.git" >> %{name}-%{version}-filelist
+echo "%doc phpmyadmin.sql" >> %{name}-%{version}-filelist
+
+%files -f %{name}-%{version}-filelist
+%defattr(-,root,root)
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
diff --git a/contriborbase b/contriborbase
new file mode 100644
index 0000000..9b7fd51
--- /dev/null
+++ b/contriborbase
@@ -0,0 +1 @@
+contribs10
diff --git a/createlinks b/createlinks
new file mode 100644
index 0000000..242b997
--- /dev/null
+++ b/createlinks
@@ -0,0 +1,31 @@
+#!/usr/bin/perl -w
+
+use esmith::Build::CreateLinks qw(:all);
+
+for my $event (qw(
+ bootstrap-console-save
+ console-save
+ ))
+{
+ templates2events("/etc/phpMyAdmin/config.inc.php", $event);
+ templates2events("/etc/e-smith/sql/init/phpmyadmin", $event);
+}
+
+for my $event (qw(
+ phpmyadmin-update
+ smeserver-phpmyadmin-update
+ ))
+{
+ templates2events("/etc/httpd/conf/httpd.conf", $event);
+ templates2events("/etc/phpMyAdmin/config.inc.php", $event);
+ templates2events("/etc/e-smith/sql/init/phpmyadmin", $event);
+ templates2events("/etc/opt/remi/php74/php-fpm.d/www.conf", $event);
+ safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/mysql.init");;
+ safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith");
+ safe_symlink("reload-or-restart", "root/etc/e-smith/events/$event/services2adjust/php74-php-fpm");
+}
+# PHP header and footer
+ safe_symlink("/etc/e-smith/templates-default/template-begin-php", "root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/template-begin");
+ safe_symlink("/etc/e-smith/templates-default/template-end-php", "root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/template-end");
+
+
diff --git a/root/etc/e-smith/db/accounts/defaults/phpmyadmin/type b/root/etc/e-smith/db/accounts/defaults/phpmyadmin/type
new file mode 100644
index 0000000..123f60c
--- /dev/null
+++ b/root/etc/e-smith/db/accounts/defaults/phpmyadmin/type
@@ -0,0 +1 @@
+reserved
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/DbName b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/DbName
new file mode 100644
index 0000000..a10e9c4
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/DbName
@@ -0,0 +1 @@
+phpmyadmin
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/DbUser b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/DbUser
new file mode 100644
index 0000000..a10e9c4
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/DbUser
@@ -0,0 +1 @@
+phpmyadmin
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/MemoryLimit b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/MemoryLimit
new file mode 100644
index 0000000..2b7303a
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/MemoryLimit
@@ -0,0 +1 @@
+500M
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/PostMaxSize b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/PostMaxSize
new file mode 100644
index 0000000..c27ad19
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/PostMaxSize
@@ -0,0 +1 @@
+100M
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/UploadMaxSize b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/UploadMaxSize
new file mode 100644
index 0000000..c27ad19
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/UploadMaxSize
@@ -0,0 +1 @@
+100M
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/access b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/access
new file mode 100644
index 0000000..3e18ebf
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/access
@@ -0,0 +1 @@
+private
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/adminaccess b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/adminaccess
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/adminaccess
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/multiaccess b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/multiaccess
new file mode 100644
index 0000000..7a68b11
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/multiaccess
@@ -0,0 +1 @@
+disabled
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/status b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/status
new file mode 100644
index 0000000..86981e6
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/status
@@ -0,0 +1 @@
+enabled
diff --git a/root/etc/e-smith/db/configuration/defaults/phpmyadmin/type b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/type
new file mode 100644
index 0000000..f92f363
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/defaults/phpmyadmin/type
@@ -0,0 +1 @@
+configuration
diff --git a/root/etc/e-smith/db/configuration/migrate/addBlowfishSecret b/root/etc/e-smith/db/configuration/migrate/addBlowfishSecret
new file mode 100644
index 0000000..fe08d75
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/migrate/addBlowfishSecret
@@ -0,0 +1,32 @@
+{
+ my $rec = $DB->get('phpmyadmin')
+ || $DB->new_record('phpmyadmin', {type => 'configuration'});
+ my $pw = $rec->prop('BlowfishSecret');
+ if (not $pw or length($pw) < 57){
+ my $pw = gen_pw();
+ $rec->set_prop('BlowfishSecret', $pw);
+ }
+
+ sub gen_pw {
+ use MIME::Base64 qw(encode_base64);
+ my $p = "not set due to error";
+ if ( open( RANDOM, "/dev/urandom" ) ){
+ my $buf;
+ # 57 bytes is a full line of Base64 coding, and contains
+ # 456 bits of randomness - given a perfectly random /dev/random
+ if ( read( RANDOM, $buf, 57 ) != 57 ){
+ warn("Short read from /dev/random: $!");
+ }
+ else{
+ $p = encode_base64($buf);
+ chomp $p;
+ }
+ close RANDOM;
+ }
+ else{
+ warn "Could not open /dev/urandom: $!";
+ }
+ return $p;
+ }
+}
+
diff --git a/root/etc/e-smith/db/configuration/migrate/phpmyadmin b/root/etc/e-smith/db/configuration/migrate/phpmyadmin
new file mode 100644
index 0000000..12c6655
--- /dev/null
+++ b/root/etc/e-smith/db/configuration/migrate/phpmyadmin
@@ -0,0 +1,37 @@
+{
+ my $rec = $DB->get('phpmyadmin')
+ || $DB->new_record('phpmyadmin', {type => 'configuration'});
+ my $pw = $rec->prop('DbPassword');
+ if (not $pw or length($pw) < 57){
+ my $pw = gen_pw();
+ $rec->set_prop('DbPassword', $pw);
+ }
+ $pw = $rec->prop('sqladminPassword');
+ if (not $pw or length($pw) < 57){
+ my $pw = gen_pw();
+ $rec->set_prop('sqladminPassword', $pw);
+ }
+
+ sub gen_pw {
+ use MIME::Base64 qw(encode_base64);
+ my $p = "not set due to error";
+ if ( open( RANDOM, "/dev/urandom" ) ){
+ my $buf;
+ # 57 bytes is a full line of Base64 coding, and contains
+ # 456 bits of randomness - given a perfectly random /dev/random
+ if ( read( RANDOM, $buf, 57 ) != 57 ){
+ warn("Short read from /dev/random: $!");
+ }
+ else{
+ $p = encode_base64($buf);
+ chomp $p;
+ }
+ close RANDOM;
+ }
+ else{
+ warn "Could not open /dev/urandom: $!";
+ }
+ return $p;
+ }
+}
+
diff --git a/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/phpmyadmin b/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/phpmyadmin
new file mode 100644
index 0000000..940dcf3
--- /dev/null
+++ b/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/phpmyadmin
@@ -0,0 +1 @@
+PERMS=0750
diff --git a/root/etc/e-smith/templates.metadata/etc/phpMyAdmin/config.inc.php b/root/etc/e-smith/templates.metadata/etc/phpMyAdmin/config.inc.php
new file mode 100644
index 0000000..b916d35
--- /dev/null
+++ b/root/etc/e-smith/templates.metadata/etc/phpMyAdmin/config.inc.php
@@ -0,0 +1,3 @@
+UID="root"
+GID="www"
+PERMS=0640
diff --git a/root/etc/e-smith/templates/etc/e-smith/sql/init/phpmyadmin b/root/etc/e-smith/templates/etc/e-smith/sql/init/phpmyadmin
new file mode 100644
index 0000000..5d9e541
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/e-smith/sql/init/phpmyadmin
@@ -0,0 +1,51 @@
+{
+my $db = $phpmyadmin{'DbName'} || 'phpmyadmin';
+my $user = $phpmyadmin{'DbUser'} || 'phpmyadmin';
+my $pass = $phpmyadmin{'DbPassword'} || 'phpmyadmin';
+my $admpass = $phpmyadmin{'sqladminPassword'} || 'adminpass';
+
+my $dbstruct = `rpm -qd smeserver-phpmyadmin | grep phpmyadmin.sql`;
+
+$OUT .= <<"END";
+#! /bin/sh
+if [ ! -d /var/lib/mysql/$db ]; then
+ /usr/bin/mysql -e 'create database $db'
+ /usr/bin/mysql $db < $dbstruct
+fi
+
+/usr/bin/mysql <
+ AuthName "phpmyadmin"
+ AuthType Basic
+ AuthBasicProvider external
+ AuthExternal pwauth
+
+ require user admin
+ );
+ $OUT .= (($phpmyadmin{access} || 'private' ) eq "public" ) ? " Require all granted": " Require ip $localAccess $externalSSLAccess";
+ $OUT .= qq(
+
+) if "$adminaccess" eq "enabled";
+
+ $OUT .= qq(
+
+ SSLRequireSSL
+ Options -Indexes
+ AllowOverride None
+
+ );
+ $OUT .= (($phpmyadmin{access} || 'private' ) eq "public" ) ? " Require all granted": " Require ip $localAccess $externalSSLAccess";
+ $OUT .= qq(
+
+ );
+
+ # we do not want people to mess with this for the moment
+ my $version = '74';
+
+ $OUT .= qq(
+ AddType application/x-httpd-php .php
+
+ SetHandler "proxy:unix:/var/run/php-fpm/php$version-phpmyadmin.sock|fcgi://localhost"
+
+ SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=\$1
+
+
+
+# These directories do not require access over HTTP - taken from the original
+# phpMyAdmin upstream tarball
+#
+
+ Require all denied
+
+
+
+
+ Require all denied
+
+
+
+ Require all denied
+
+
+
+ Require all denied
+);
+
+ }
+ else
+ {
+ $OUT .= "# phpmyadmin is disabled";
+ }
+}
+
diff --git a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/30PhpmyadminAlias b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/30PhpmyadminAlias
new file mode 100644
index 0000000..ed58d8e
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/30PhpmyadminAlias
@@ -0,0 +1,21 @@
+#
+# 30phpmyadmin
+#
+
+{
+ $haveSSL = (exists ${modSSL}{status} and ${modSSL}{status} eq "enabled") ? 'yes' : 'no';
+ my $adminaccess = ($phpmyadmin{'adminaccess'} || 'enabled');
+ my $multiaccess = ($phpmyadmin{'multiaccess'} || 'disabled');
+
+ if (($port eq $httpPort) && ($haveSSL eq 'yes') && ("$adminaccess" eq "enabled" || "$multiaccess" eq "enabled"))
+ {
+ $OUT .= " RewriteRule ^/phpmyadmin(/.*|\$) https://%{HTTP_HOST}/phpmyadmin\$1 [L,R]\n";
+ }
+
+
+ if (($port eq $httpPort) && ($haveSSL eq 'yes') && ( "$multiaccess" eq "enabled"))
+ {
+ $OUT .= " RewriteRule ^/phpmyadmin-multi(/.*|\$) https://%{HTTP_HOST}/phpmyadmin-multi\$1 [L,R]\n";
+ }
+}
+
diff --git a/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpmyadmin b/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpmyadmin
new file mode 100644
index 0000000..ef9432f
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15phpmyadmin
@@ -0,0 +1,74 @@
+{
+
+if ($PHP_VERSION eq '74'){
+ if (($phpmyadmin{'status'} || 'disabled') eq 'enabled'){
+ my $max_upload_size = ($phpmyadmin{MaxUploadSize} || '100M');# 104857600 bytes
+ $max_upload_size .= 'M' if ($max_upload_size =~ m/^\d+$/);
+ my $memory_limit = ($phpmyadmin{MemoryLimit} || '512M');
+ $memory_limit .= 'M' if ($memory_limit =~ m/^\d+$/);
+ my $open_basedir= $phpmyadmin{PHPBaseDir} || '';
+ $open_basedir = "/etc/phpMyAdmin/:/usr/share/phpMyAdmin:/var/lib/php/phpmyadmin:".
+"/var/lib/phpMyAdmin/temp:/var/lib/phpMyAdmin/save/:/var/lib/phpMyAdmin/upload:/var/lib/phpMyAdmin/cache/:".
+"/usr/share/php/:/usr/share/php-williamdes-mariadb-mysql-kbs:".
+"/usr/share/phpMyAdmin/doc:".
+"/var/log/php/phpmyadmin:/usr/share/php/gettext/:/dev/urandom:/proc/meminfo:$open_basedir";
+ my $max_children = $phpmyadmin{'PHPmaxChildren'} || 20;
+ my $min_spare_servers = $phpmyadmin{'PHPminServers'} || 4;
+ my $start_servers = $phpmyadmin{'PHPstartServers'} || 6;
+ my $max_spare_servers = $phpmyadmin{'PHPmaxServers'} || 8;
+ my $max_requests = $phpmyadmin{'PHPmaxRequests'} || 1000;
+ $min_spare_servers = ( $min_spare_servers > $max_spare_servers ) ? printf("%.0f",$max_spare_servers/2) : $min_spare_servers;
+ $start_servers = ( $start_servers > $max_spare_servers ) ? printf("%.0f", $max_spare_servers /2 + $min_spare_servers/2 ) : $start_servers;
+ my $id = 'phpmyadmin'; # Note the package is phpMyAdmin
+ $OUT .=<<"_EOF";
+
+[php$PHP_VERSION-$id]
+user = www
+group = www
+listen.owner = root
+listen.group = www
+listen.mode = 0660
+listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock
+pm = dynamic
+pm.max_children = $max_children
+pm.start_servers = $start_servers
+pm.min_spare_servers = $min_spare_servers
+pm.max_spare_servers = $max_spare_servers
+pm.max_requests = $max_requests
+; Used in nextcloud
+php_admin_value[session.save_path] = /var/lib/php/$id/session
+php_admin_value[session.gc_maxlifetime] = 86400
+php_admin_value[opcache.file_cache] = /var/lib/php/$id/opcache
+php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp
+php_admin_value[sys_temp_dir] = /var/lib/php/$id/tmp
+php_admin_value[error_log] = /var/log/php/$id/error.log
+slowlog = /var/log/php/$id/slow.log
+php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName }
+php_admin_flag[display_errors] = off
+php_admin_flag[log_errors] = on
+php_admin_value[memory_limit] = $memory_limit
+php_admin_value[max_execution_time] = 3600
+php_admin_value[post_max_size] = $max_upload_size
+php_admin_value[upload_max_filesize] = $max_upload_size
+php_admin_value[disable_functions] = system, show_source, symlink, exec, dl, shell_exec, passthru, phpinfo, escapeshellarg, escapeshellcmd
+php_admin_value[open_basedir] = $open_basedir
+php_admin_flag[allow_url_fopen] = on
+php_admin_flag[file_upload] = on
+php_admin_flag[session.cookie_httponly] = on
+php_admin_flag[allow_url_include] = off
+php_admin_value[session.save_handler] = files
+php_admin_flag[output_buffering] = off
+php_admin_value[auto_prepend_file] = /usr/share/php/auth_translation.php
+php_flag[session.use_trans_sid] = off
+php_flag[track_vars] = on
+php_flag[magic_quotes_gpc] = off
+
+_EOF
+
+ }
+ else{
+ $OUT .= '; phpmyadmin is disabled';
+ }
+}
+}
+
diff --git a/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/10config b/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/10config
new file mode 100644
index 0000000..5255710
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/10config
@@ -0,0 +1,122 @@
+
+
+/* Servers configuration */
+$i = 0;
+
+/* Server localhost (config:root) [1] */
+$i++;
+$cfg['Servers'][$i]['host'] = 'localhost';
+$cfg['Servers'][$i]['extension'] = 'mysqli';
+$cfg['Servers'][$i]['port'] = '';
+$cfg['Servers'][$i]['socket'] = '/var/lib/mysql/mysql.sock';
+$cfg['Servers'][$i]['connect_type'] = 'socket';
+$cfg['Servers'][$i]['compress'] = false;
+
+# standalone or login mode
+$scriptname=end(explode('/',$_SERVER['PHP_SELF']));
+$scriptpath=str_replace($scriptname,'',$_SERVER['PHP_SELF']);
+
+
+# standalone login part
+{
+my $adminaccess = ($phpmyadmin{'adminaccess'} || 'enabled');
+my $multiaccess = ($phpmyadmin{'multiaccess'} || 'disabled');
+
+# this one could be tricky, with fpm we need to translate the auth from httpd
+# we need to have this in httpd.conf in the directory of phpmyadmin :
+# SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=\$1
+# also need in the fpm pool this (and the file in the open base dir )
+# php_admin_value[auto_prepend_file] = /usr/share/php/auth_translation.php
+# the line here could help debug :
+# error_log("current user: REDIRECT". $_SERVER['REDIRECT_REMOTE_USER'] ."REMOTE". $_SERVER['REMOTE_USER'] . " PHP_AUTH_USER". $_SERVER['PHP_AUTH_USER'] );
+if (("$adminaccess" eq "enabled"))
+ {
+ $OUT .="if (\$scriptpath==\"/phpmyadmin/\" && \$_SERVER['PHP_AUTH_USER']=='admin')\n";
+ $OUT .="{\n";
+ $OUT .="\$cfg['Servers'][\$i]['auth_type'] = 'config';\n";
+ $OUT .="\$cfg['Servers'][\$i]['user'] = 'root';\n";
+ open (PW, "/etc/openldap/ldap.pw")
+ || die "Could not read LDAP password.\n";
+ my $pw = ;
+ chomp ($pw);
+ close PW;
+ $OUT .="\$cfg['Servers'][\$i]['password'] = '$pw';\n";
+ $OUT .="}";
+ }
+else
+ {
+ $OUT .="# standalone admin configuration disabled";
+ }
+}
+# end of standalone login part
+
+
+# multiuser login part
+{
+my $adminaccess = ($phpmyadmin{'adminaccess'} || 'enabled');
+my $multiaccess = ($phpmyadmin{'multiaccess'} || 'disabled');
+
+ $OUT .="\n";
+if (("$multiaccess" eq "enabled") && ("$adminaccess" eq "enabled"))
+ {
+ $OUT .="if (\$scriptpath==\"/phpmyadmin-multi/\")\n";
+ $OUT .="{\n";
+ }
+if (("$multiaccess" eq "enabled"))
+ {
+ $OUT .="\$cfg['Servers'][\$i]['auth_type'] = 'cookie';\n";
+ my $secret = ${'httpd-admin'}{TKTAuthSecret} || "34322500-7330-4400-423A-3A00434F5245";
+ $OUT .="\$cfg['blowfish_secret'] = '$secret';\n";
+ }
+else
+ {
+ $OUT .="# multiuser disabled\n";
+ }
+if (("$multiaccess" eq "enabled") && ("$adminaccess" eq "enabled"))
+ {
+ $OUT .="}\n";
+ }
+
+}
+# end of multiuser login part
+
+
+{
+use esmith::util;
+#we retrieve values for settings options below
+our $dbname = $phpmyadmin{'DbName'} || 'phpmyadmin';
+our $dbuser = $phpmyadmin{'DbUser'} || 'phpmyadmin';
+our $dbpass = $phpmyadmin{'DbPassword'} || 'phpmyadmin';
+
+$OUT .= '';
+
+}
+
+
+/* enhanced servers configuration */
+
+$cfg['Servers'][$i]['pmadb'] = '{$dbname}';
+$cfg['Servers'][$i]['controluser'] = '{$dbuser}';
+$cfg['Servers'][$i]['controlpass'] = '{$dbpass}';
+$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
+$cfg['Servers'][$i]['relation'] = 'pma_relation';
+$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
+$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
+$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
+$cfg['Servers'][$i]['history'] = 'pma_history';
+$cfg['Servers'][$i]['recent'] = 'pma_recent';
+$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
+$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
+$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
+$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
+$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
+$cfg['Servers'][$i]['AllowRoot'] = TRUE;
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array();
+$cfg['Servers'][$i]['AllowNoPassword'] = FALSE;
+$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
+$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
+$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
+$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';
+
+/* End of servers configuration */
+
diff --git a/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/20Directory b/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/20Directory
new file mode 100644
index 0000000..e56dfe0
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/20Directory
@@ -0,0 +1,19 @@
+/*
+ * Directories for saving/loading files from server
+ */
+$cfg['UploadDir'] = '/var/lib/phpMyAdmin/upload';
+$cfg['SaveDir'] = '/var/lib/phpMyAdmin/save';
+$cfg['SessionSavePath'] = '/var/lib/php/phpmyadmin/session';
+$cfg['VersionCheck'] = false;
+$cfg['RetainQueryBox'] = true;
+$cfg['ServerDefault'] = 1;
+
+/*
+ * Disable the default warning that is displayed on the DB Details Structure
+ * page if any of the required Tables for the relation features is not found
+ */
+$cfg['PmaNoRelation_DisableWarning'] = TRUE;
+
+{
+ $OUT .= "\$cfg['blowfish_secret'] = '$phpmyadmin{'BlowfishSecret'}';/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */\n"
+}
diff --git a/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/template-begin b/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/template-begin
new file mode 100644
index 0000000..6270cb3
--- /dev/null
+++ b/root/etc/e-smith/templates/etc/phpMyAdmin/config.inc.php/template-begin
@@ -0,0 +1,14 @@
+{
+ $OUT = <
diff --git a/root/usr/share/phpMyAdmin/.unit.ini b/root/usr/share/phpMyAdmin/.unit.ini
new file mode 100644
index 0000000..025a3c7
--- /dev/null
+++ b/root/usr/share/phpMyAdmin/.unit.ini
@@ -0,0 +1,11 @@
+#Moved to php pool
+#magic_quotes_gpc= on
+#track_vars= on
+#open_basedir=/usr/share/php:/usr/share/phpMyAdmin:/etc/phpMyAdmin:/var/lib/phpMyAdmin
+#session.save_path=/var/lib/phpMyAdmin/tmp
+#post_max_size=100M
+#upload_max_filesize=100M
+#memory_limit=500M
+#session.use_trans_sid=0
+#upload_tmp_dir=/var/lib/phpMyAdmin/tmp
+
diff --git a/smeserver-phpmyadmin.spec b/smeserver-phpmyadmin.spec
new file mode 100644
index 0000000..3c4ccf4
--- /dev/null
+++ b/smeserver-phpmyadmin.spec
@@ -0,0 +1,180 @@
+# $Id: smeserver-phpmyadmin.spec,v 1.18 2023/10/25 19:47:08 jpp Exp $
+# Authority: darrellmay
+# Name: Darrell May
+
+Summary: phpMyAdmin for SME Server
+%define name smeserver-phpmyadmin
+Name: %{name}
+%define version 4.0.10.2
+%define release 15
+Version: %{version}
+Release: %{release}%{?dist}
+License: GPL
+Group: Mitel/addon
+Source: %{name}-%{version}.tar.xz
+URL: http://www.phpmyadmin.net/
+BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
+BuildArchitectures: noarch
+Requires: e-smith-base
+Requires: phpMyAdmin >= 4.4.15.10
+Requires: e-smith-release >= 10.0
+Requires: e-smith-apache >= 2.6.0-19
+Obsoletes: phpmyadmin,phpMyAdmin3
+BuildRequires: e-smith-devtools
+Obsoletes: e-smith-phpmyadmin
+Obsoletes: smeserver-phpmyadmin <= 3.5.2.2-1
+Obsoletes: smeserver-phpmyadmin-multiuser
+
+
+%description
+Implementation of phpMyAdmin for SME Server.
+Access with admin username/password via: https://yourdomain/phpmyadmin.
+
+%changelog
+* Sat Sep 07 2024 cvs2git.sh aka Brian Read 4.0.10.2-15.sme
+- Roll up patches and move to git repo [SME: 12338]
+
+* Sat Sep 07 2024 BogusDateBot
+- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
+ by assuming the date is correct and changing the weekday.
+ Thu Aug 06 2012 --> Thu Aug 02 2012 or Mon Aug 06 2012 or Thu Aug 09 2012 or ....
+
+* Wed Oct 25 2023 Jean-Philippe Pialasse 4.0.10.2-14.sme
+- fix private access not respected for admin [SME: 12343]
+
+* Sun Jul 31 2022 Jean-Philippe Pialasse 4.0.10.2-13.sme
+- update to httpd 2.4 access syntax [SME: 12056]
+
+* Sat Jul 23 2022 Jean-Philippe Pialasse 4.0.10.2-12.sme
+- use $httpPort in place of hardcoded port 80 [SME: 11408]
+- update to httpd 2.4 access syntax [SME: 12056]
+
+* Sun Feb 28 2021 Jean-Philipe Pialasse 4.0.10.2-11.sme
+- finish php74 pool integration [SME: 11043]
+ fixed dir perms
+
+* Fri Dec 18 2020 John Crisp 4.0.10.2-8.sme
+- add php pool template and remove disable unit.ini
+
+* Thu Dec 17 2020 John Crisp 4.0.10.2-7.sme
+- fix BlowfishSecret [SME: 11043]
+- Update minimum e-smith release version
+
+* Wed Dec 16 2020 John Crisp 4.0.10.2-6.sme
+- fix patch file typo [SME: 11043]
+
+* Sun Nov 29 2020 Brian Read 4.0.10.2-5.sme
+- Change httpd frament to php-fpw and add in .user.ini to set php vars [SME: 11043]
+
+* Mon Apr 13 2020 Jean-Philipe Pialasse 4.0.10.2-4.sme
+- first import for contribs10
+
+* Sat Aug 22 2015 stephane de Labrusse 4.0.10.2-3.sme
+- Initial release to contribs9
+
+* Sun Sep 28 2014 stephane de labrusse 4.0.10.2-2.sme
+- added a tmp folder other that the /tmp [SME:8577]
+- added some db values to adjust php limits (PostMaxSize,UploadMaxSize,MemoryLimit)
+
+* Sun Sep 28 2014 stephane de labrusse 4.0.10.2-1.sme
+- added an event template on 'phpmyadmin-update'
+- added a phpmyadmin.sql db to save settings in db
+- new cool features (bookmarktable,relation,userconfig,table_info,column_info,history,
+- recent,table_uiprefs,tracking,table_coords,pdf_pages,designer_coords)
+- the http://url/setup page is now forbidden by apache
+- a db 'status' exists now to disable simply phpmyadmin in httpd.conf
+- removed the openbasedir of /tmp to /var/lib/phpMyAdmin/tmp
+
+* Wed Sep 24 2014 stephane de labrusse 4.0.10.1-1.sme
+- add memory value up to 500M
+- add php upload/post up to 100M
+- add session.use_trans_sid 0
+- directory 'scripts' removed of httpd templates
+- VersionCheck is off now
+
+* Mon May 19 2014 stephane de labrusse 3.5.8.2-2
+-first release to sme9
+-added an event template on 'signal-event console-save'
+
+* Sat Jun 22 2013 JP Pialasse 3.5.2.2-6
+- Obsolete multiuser [SME: 7685]
+
+* Tue Jun 18 2013 JP Pialasse 3.5.2.2-5
+- added full 3.5 configuration to avoid errors [SME: 7153] [SME: 7194]
+- incorporated multiuser contrib in this package [SME: 7628 7627 ]
+- increased security [SME: 5007]
+- configext.patch
+- release bump to 4 to fix spec file
+- patch1 to fix config.inc.php syntax error
+
+* Thu Aug 06 2012 JP Pialasse aka Unnilennium 3.5.2.2-2
+- first version for SME 8
+- adaptation for phpMyAdmin3 3.5.2.2
+
+* Thu May 15 2008 Jonathan Martens 2.11.1.2-3
+- Protect sensible data and prevent access error by setting
+ proper permissions to config.inc.php template [SME: 4343]
+
+* Wed May 14 2008 Jonathan Martens
+- Converted RPM to be an integrational RPM [SME: 4298]:
+- Convert and move templates to RPMForge (Dag) install location [SME: 4339]
+- Automatically expand phpmyadmin configuation file (config.php.inc) [SME: 4340]
+- Remove PHPMyAdmin core [SME: 4341]
+
+* Mon Apr 21 2008 Shad L. Lords
+- Prep for import into buildsys
+- Clean up spec
+
+* Fri Oct 19 2007 Darrell May
+- accounts and configuration db phpmyadmin defaults added
+- default access restricted to private (private|public)
+- phpMyAdmin 2.11.1.2
+- [ 2.11.1.2-0]
+* Fri Mar 09 2007 Darrell May
+- phpMyAdmin 2.10.0.2
+- [ 2.10.0.2-0]
+* Thu Oct 12 2006 Darrell May
+- phpMyAdmin 2.9.0.2
+- [ 2.9.0.2-0]
+* Thu Dec 15 2005 Darrell May
+- phpMyAdmin 2.6.4-pl4
+- [ 2.6.4-pl4]
+* Fri Apr 22 2005 Darrell May
+- added support for SME 7.x
+- [ 2.6.2-2]
+* Mon Apr 18 2005 Darrell May
+- Release 2.6.2 of phpMyAdmin
+- change rpm name to smeserver-phpmyadmin
+- change install dir to /opt/phpmyadmin
+- [ 2.6.2-1]
+
+%prep
+%setup
+
+%build
+%{__mkdir_p} root/var/lib/php/phpmyadmin/{tmp,session,opcache,wsdlcache}
+%{__mkdir_p} root/var/log/php/phpmyadmin
+perl createlinks
+
+%install
+/bin/rm -rf $RPM_BUILD_ROOT
+rm -f %{name}-%{version}-filelist
+(cd root ; /usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT)
+/bin/rm -f %{name}-%{version}-filelist
+/sbin/e-smith/genfilelist \
+ --dir /var/lib/php/phpmyadmin/ 'attr(0755,root,www)' \
+ --dir /var/lib/php/phpmyadmin/tmp 'attr(0770,www,www)' \
+ --dir /var/lib/php/phpmyadmin/opcache 'attr(0770,www,www)' \
+ --dir /var/lib/php/phpmyadmin/session 'attr(0770,www,www)' \
+ --dir /var/lib/php/phpmyadmin/wsdlcache 'attr(0770,www,www)' \
+ --dir /var/log/php/phpmyadmin 'attr(0770,root,www)' \
+ $RPM_BUILD_ROOT > %{name}-%{version}-filelist
+echo "%doc CHANGELOG.git" >> %{name}-%{version}-filelist
+echo "%doc phpmyadmin.sql" >> %{name}-%{version}-filelist
+
+%files -f %{name}-%{version}-filelist
+%defattr(-,root,root)
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+