diff --git a/databases/adminer/Makefile b/databases/adminer/Makefile index ff0b2882185c..b8372b3a5209 100644 --- a/databases/adminer/Makefile +++ b/databases/adminer/Makefile @@ -1,31 +1,44 @@ PORTNAME= adminer DISTVERSION= 5.3.0 +PORTREVISION= 1 CATEGORIES= databases www -MASTER_SITES= https://github.com/vrana/adminer/releases/download/v${DISTVERSION}/ +MASTER_SITES= https://github.com/vrana/${PORTNAME}/releases/download/v${DISTVERSION}/ PKGNAMEPREFIX= ${PHP_PKGNAMEPREFIX} -EXTRACT_SUFX= .php -EXTRACT_ONLY= +DISTFILES= ${PORTNAME}-${DISTVERSION}.php ${PORTNAME}-${DISTVERSION}.zip +EXTRACT_ONLY= ${PORTNAME}-${DISTVERSION}.zip MAINTAINER= pkaipila@gmail.com COMMENT= Full-featured database management tool written in PHP WWW= https://www.adminer.org LICENSE= APACHE20 -USES= cpe php:flavors -USE_PHP= session +USES= cpe php:build,flavors +USE_PHP= phar session zlib NO_ARCH= yes -NO_BUILD= yes -SUB_FILES= pkg-message -SUB_LIST= PHPVER="${PHP_VER}" PLIST_SUB= WWWGRP="${WWWGRP}" \ WWWOWN="${WWWOWN}" +OPTIONS_DEFINE= MYSQL PGSQL SQLITE +OPTIONS_DEFAULT= MYSQL SQLITE + +MYSQL_DESC= MySQL and MariaDB driver +PGSQL_DESC= PostgreSQL driver +SQLITE_DESC= SQLite driver + +MYSQL_USE= PHP=mysqli +PGSQL_USE= PHP=pgsql +SQLITE_USE= PHP=sqlite3 + +do-build: + ${CP} ${DISTDIR}/${PORTNAME}-${DISTVERSION}.php ${WRKSRC}/${PORTNAME}.php + ${CP} ${FILESDIR}/makephar.php ${WRKSRC} + ${LOCALBASE}/bin/php -d phar.readonly=0 ${WRKSRC}/makephar.php + do-install: ${MKDIR} ${STAGEDIR}${WWWDIR} - ${INSTALL_DATA} ${DISTDIR}/${DISTNAME}${EXTRACT_SUFX} \ - ${STAGEDIR}${WWWDIR}/index.php + ${INSTALL_DATA} ${WRKSRC}/index.php ${STAGEDIR}${WWWDIR} .include diff --git a/databases/adminer/distinfo b/databases/adminer/distinfo index e3c273062e47..8f067ad01e51 100644 --- a/databases/adminer/distinfo +++ b/databases/adminer/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1749839680 +TIMESTAMP = 1754700167 SHA256 (adminer-5.3.0.php) = 7dcc196e941b18b74635afe1740dcd86970ab08b8eba0f00f149925aea3972ed SIZE (adminer-5.3.0.php) = 504560 +SHA256 (adminer-5.3.0.zip) = ec49d9d1faf1f22e835c73b913feb993e87e5ae7e54e8f1e0583515409a1eca8 +SIZE (adminer-5.3.0.zip) = 873271 diff --git a/databases/adminer/files/makephar.php b/databases/adminer/files/makephar.php new file mode 100644 index 000000000000..4e463e7fdc4e --- /dev/null +++ b/databases/adminer/files/makephar.php @@ -0,0 +1,104 @@ +isFile()) + { + $contents = php_strip_whitespace($file->getRealPath()); + $pharFile = 'adminer-plugins/' . $file->getFileName(); + $plugins[$pharFile] = $contents; + if (preg_match('/class\s(A[a-zA-Z]+)\sextends\sAdminer/', $contents, $m)) + { + $classMap[$m[1]] = $file->getFileName(); + } + } +} + +$phar->setStub( + sprintf( + $stub, + json_encode($classMap, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) + ) +); + +$autoLoader = <<addFromString( + 'autoload.php', + $autoLoader +); + +foreach($plugins as $file => $contents) +{ + $phar->addFromString( + $file, + $contents + ); +} + +$phar->addFromString( + 'adminer.php', + php_strip_whitespace(__DIR__ . '/adminer.php'), +); + +rename($tmpFile, __DIR__ . '/index.php'); diff --git a/databases/adminer/files/pkg-message.in b/databases/adminer/files/pkg-message.in deleted file mode 100644 index 64a90680749d..000000000000 --- a/databases/adminer/files/pkg-message.in +++ /dev/null @@ -1,8 +0,0 @@ -[ -{ type: install - message: <