- Update to 5.2.2

* Security
    - issue        [security] Fix for a path disclosure leak in the Monitoring tab
    - issue        Prevent the user from deleting system databases
    - issue        [security] Fix an XSS vulnerability when checking tables (PMASA-2025-1)
    - issue        [security] Fix an XSS vulnerability on the Insert tab (PMASA-2025-2)
    - issue        [security] Fix a possible glibc/iconv vulnerability (CVE-2024-2961, assigned PMASA-2025-3 
                   but please note that phpMyAdmin is not vulnerable by default)
  * Bugfix
    - issue        Fix for sql-parser relating to quadratic complexity in certain queries, which could have caused long execution times.
    - issue #17851 Fix total count of rows in not accurate
    - issue #17766 Allow to open in a new tab copy and edit row actions
    - issue #17599 Fix error when handling an user that is not in privileges table
    - issue #17364 Fix error when trying to import a status monitor chart arrangement
    - issue #18106 Fix renaming database with a view
    - issue #18120 Fix bug with numerical tables during renaming database
    - issue #16851 Fix ($cfg['Order']) default column order doesn't have have any effect since phpMyAdmin 4.2.0
    - issue #18138 Fix some issues with numerical table names
    - issue #18112 Fix open base dir warning on git version class
    - issue #18211 Fix the themes route missing the server ID
    - issue        Do not show "Original length undefined" on binary hex columns
    - issue        Fix wrong time zone when handling Git information
    - issue #18195 Fix warning on non-existent table for XML export
    - issue #18196 Fix errors of import notification
    - issue #18093 Fix JS errors around "new user account" in some edge cases
    - issue #16451 Increase password characters limit to 2000 during login
    - issue #18177 Fix "IS NULL" is shown for non-nullable columns on search page
    - issue #16199 Fix dragging of tables in designer
    - issue #18268 Fix UI issue the theme manager is disabled
    - issue #18258 Speed improvements when exporting a database
    - issue #17702 Fix performance issue when handling large number of tables in a single database
    - issue #18324 Fix UI defect on tracking versions table first column
    - issue #18266 Fix disabling features (like `$cfg['Servers'][$i]['tracking'] = false;`) did not work
    - issue #18296 Fixed query time measurement - measure time only for user queries
    - issue #18235 Fix columns are misaligned for the "sys" database
    - issue #18249 Speed improvements when browsing a database with multiple tables
    - issue #18060 Fix Console height "Not a non-negative number" error
    - issue #18188 Fix issue when editing GIS data
    - issue        Fix width/height of create routines modal and width of routines/triggers/events modals
    - issue        Stop pmadb database detection when all features are disabled
    - issue        Upgrade slim/psr7 to 1.4.1 for CVE-2023-30536 - GHSA-q2qj-628g-vhfw
    - issue #17654 Fix unprivileged user cannot change password on MySQL >= 5.7.37
    - issue #18385 Add CVE MITRE link to allowed domains and use cve.org
    - issue #18330 Fix TypeError when no-datetime field is modified
    - issue #18212 Fix Query Builder doesn't replace a table name with it's alias in the `WHERE` block
    - issue #18221 Keep the criteria box collapsed by the user when un-checking the criteria checkbox
    - issue #18363 Fix colspan for actions column on database table list
    - issue        Fix double encoding on User Groups pages
    - issue        Fix list of users of an user group not showing up
    - issue        Fix duplicate query params in the SQL message card
    - issue #18314 Fix dragged row in index form
    - issue #17392 Fix the actions not being hidden in the Triggers, Routines, Events pages
    - issue #18441 Fix execute routine page not working when not in a modal
    - issue #18471 Fix SQL statement not being displayed correctly on RTL languages
    - issue        Fix state times not getting summed in the profiling table
    - issue        Fix a case where a fatal error message was not displayed
    - issue #17420 Fix profiling chart not loading when profiling is activated
    - issue #18159 Fix error when changing the number of chart columns in the monitor page
    - issue #18403 Fix Uncaught SyntaxError: JSON.parse on makegrid conditions
    - issue #17528 Fix double escaping of database group names in the navigation tree
    - issue #18473 Fix the NULL not applied after clearing nullable field
    - issue #18454 Fix date field calendar display when changing NULL state
    - issue #18481 Fix missing pagination when using SELECT DISTINCT
    - issue #18325 Allow hex representations for integers in the search box validation
    - issue #14411 Fixed double tap to edit on mobile devices
    - issue        Update documentation to reflect that Node >= 12 is required to compile the JS and CSS files
    - issue #18578 Fixed PDF export NULL values gives a type error
    - issue #18605 Fixed issue when executing a stored procedure
    - issue #18650 Fixed double escaping on foreign key relation link title
    - issue #18533 Fixed wrong count for simulated queries
    - issue #18611 Fixed an error when searching a table without conditions
    - issue #18663 Fixed case where triggers are dropped when moving a table
    - issue #17404 Fixed an error message after dropping a database
    - issue #18714 Fixed incorrect formatting of the amount of table rows
    - issue #18717 Fixed issue when deleting bookmarks
    - issue #18713 Fixed some issues with the GIS editor
    - issue #18722 Fixed generic error message in the home page
    - issue #18693 Fixed enum/set value escaping
    - issue #18769 Improved collations support for MariaDB 10.10
    - issue #17381 Fixed JS errors when editing indexes on create table
    - issue #14402 Fix the PRIMARY label still shown when using two columns for a PK on create table
    - issue #17347 Fixed JS errors when changing index settings on create table
    - issue #18762 Fixed truncating tables when a VIEW is included
    - issue        Fix BETWEEN search does not validate input because of spaces
    - issue        Fix JS number validation does not validate when the input is empty or emptied
    - issue #18561 Fix issue when adding System Monitor charts
    - issue #17363 Fix duplicate route parameter after logging in
    - issue #15670 Fix case where the data is truncated after changing a longtext column's collation
    - issue #18797 Fixed support for ampersand as a arg separator
    - issue #18834 Fixed case where column hash is empty in table relation page
    - issue #17538 Fixed error when renaming an index
    - issue #18865 Fix missing text-nowrap for timestamps columns
    - issue #18613 Fixed routine editor showing wrong parameter type
    - issue #18890 Fixed wrong row count when query has UNION
    - issue #18949 Fixed natural sorting for items in the navigation section
    - issue #18930 Fixed import of empty tables from MediaWiki
    - issue #18940 Fixed issue when creating an unique key
    - issue #19022 Fix case where tables from wrong database is loaded in navigation tree
    - issue #18782 Fixed issue with role based auth for MySQL 8
    - issue #18593 Fix drop db line included in server export if exporting only data
    - issue #18049 Also check that curl_exec is enabled for the new version check
    - issue #19023 Fixed table size for ROCKSDB engine showing as unknown
    - issue #18451 Fix when editing inline central column, Null is always preselected
    - issue #18495 Fixed database export missing routines
    - issue #19117 Allow changing the virtuality of a column without any other changes
    - issue #18566 Fixed error when importing exported view with USE INDEX hint
    - issue #17920 Fixed moving column with empty default value will replace it with ''
    - issue #18006 Fixed moving columns causes the default uuid() value to get quotes around it
    - issue #18962 Fixed move columns with ENUM() & DEFAULT causes invalid SQL
    - issue #18276 Fix on update CURRENT_TIMESTAMP doesn't show as default in attributes
    - issue #18240 Fix inserting value with UNIX_TIMESTAMP() without a parameter
    - issue #19125 Fixed CodeMirror tooltip is below modals
    - issue #18674 Fix formatted sql in browse table result has a linebreak after each token
    - issue #18210 Fixed add replica replication user on MariaDB doesn't work (SQL syntax)
    - issue #19041 Fix footer.twig gets printed to Binary File Download
    - issue #19091 Fix to stop processing queries on error
    - issue #18241 Fix copy SQL query button on error messages
    - issue #17190 Fix an error with SELECT ... FOR UPDATE queries
    - issue #19145 Remove duplicate server and lang parameters from links
    - issue #19158 Fix an issue with backticks on the query generator
    - issue #19174 Fix an issue with column alias with asterisk on the query generator
    - issue #19146 Fix column sorting with limit subquery
    - issue #19152 Fix the number of lines being ignored in GIS visualization after a search
    - issue #19189 Fix issue with column sorting when using 'group by'
    - issue #19188 Fix issue with simulated queries reporting syntax errors
    - issue #19141 Add cookie prefix '-__Secure-' to cookies to help prevent cookie smuggling
    - issue #19218 Fix textarea horizontal resizing with Bootstap theme
    - issue #19199 Add support for fractional seconds to current_timestamp()
    - issue #19221 Fix query statistics for queries with count(*)
    - issue #19203 Fix single quotes and backslashes for the query generator
    - issue #19163 Fix queries with IS NULL or IS NOT NULL for the query generator
    - issue #19181 Fix query generator support for IN() and NOT IN()
    - issue #19167 Fix criteria on column '*' for the query generator
    - issue #19213 Fix possible issue when exporting a large data set
    - issue #19217 Fix issue when editing a cell of a JSON column
    - issue #19244 Add yarn 1.22 to the package.json's packageManager field
    - issue #19185 Fix visual issue when a row has only empty cells
    - issue #19257 Fix issue when adding an index with an invalid name
    - issue #19276 Fix compatibility with Twig 3.12
    - issue #19283 Fix issue when the server starts with skip-innodb option
    - issue #19299 Fix charset in procedure's parameter type
    - issue #19316 Fix input size for hexadecimal values
    - issue #19321 Suppress deprecation message of E_STRICT constant
    - issue        Fix PHP 8.4 `str_getcsv` `$escape` parameter deprecation
    - issue #19426 Fix PHP warnings when the column is a `COMPRESSED BLOB`
    - issue        Allow opening server breadcrumb links in new tab with Ctrl/Meta key
    - issue #19500 Use `KILL` instead of `CALL mysql.rds_kill` for non super users
    - issue        Fix "copy to clipboard" was adding a blank row for each repeating header row
    - issue        Fix TCPDF translations
    - issue        Remove underline for links on Bootstrap theme
    - issue        Fix sql editor height on multi-table query
    - issue #18852 Fix notification color scheme on the Bootstrap dark theme
    - issue #14542 Show the query even if no results are found in the Table search
    - issue #16936 Fixed import (e.g. ods) doesn't respect database default collation
    - issue #19000 Disable autocomplete for the create table/db name inputs

OBS-URL: https://build.opensuse.org/package/show/server:php:applications/phpMyAdmin?expand=0&rev=385
This commit is contained in:
Eric Schirra 2025-01-23 12:59:02 +00:00 committed by Git OBS Bridge
commit 9aa95454fb
14 changed files with 6516 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:373f9599dfbd96d6fe75316d5dad189e68c305f297edf42377db9dd6b41b2557
size 7461668

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEPQalns5zDrcbURwXznUvF4JZvZIFAmPixzwACgkQznUvF4JZ
vZJykhAAmYcNfeAvZQsZQxsEuihZgsSgUYy/icfTWiUlD8QByMfu+dGDXyFMv9+H
TOOoX6T/7aeY0ZbemmlthHGB34lr4EAdU4b6lyHZ4yhSqOy+b5rf7moKItXF2MRB
LDeVitsACiIS09MX54un4WOcHm2AqesT6KzykLrOhwNt3EP0oKZoTIdQObzALKAh
najxa+TC3iFVPvCGX2VItgJN7i1MTCpwJwo2yHOba9RgNaap+uyOlN30ZZ/u1ne8
+I/QZMyhtq7MQPVDpSAGHHYBmE9W4kihS7g1dzkQlgM585oqUsDmtL8Ba9gqIroV
rXVq4rReDTsx/6wyveGYci9fMDpVFPpMf7Dtay32PK6vEaKjsDR2+kuDkbJqjYlf
/8B8GWJfvsLQly1N1MYIC3BVa/oCd81mkay7d67JtbAC7neQccjn2zkHzJ2RS1Ir
7bImzAd/a5YbZHtLjKRqshWVIrbN/KmO2VwxmM5zjTVlVHZPWCiV9JJx+8PtpQTy
lHcd9Is1ZJzkdeqQaW2IakhgHj+9RDJ4lUFrSeUcl99QqUFil35C9FgcVMbzNzOr
OPBKBKTNVk3uzVYnpCXsvxdmSnyVulBE5iMV+80Cs+P70mKp6vFPGPUY2kXHGWKd
s7tHs6JHgcs2qnLEu7bpm+5/3e34vkffREsyXM322E2GpSC2gfs=
=985I
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f881819a3b11e653b0212afaf0cc105db85c767715cb3f5852670f7fc36c9669
size 7539088

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEPQalns5zDrcbURwXznUvF4JZvZIFAmePEe0ACgkQznUvF4JZ
vZL1wBAAiMguK5dZbPa7X5IsuD56DEDbv4ODitpKExHgQ84ki+Y1fwAO6MDAeuGN
qpE+wm6jcpT0nTlR7/fBjtFMkolFH202wEnTj3LfCs64KMru2k9CQvwwtfB0FCG6
DVgklOYFWU5ISGN8ma8qLhAgMBUSM/I6CUzzHtudQ+FIvfpgyYZimH9oYbguUdaU
Eh0sIf6SMDKL+qD0v7fraehUCN0ixMFeVtX7dKUs7bDHhcayApJLw+EtV6olDR7a
BSzcrmG2brDAjRnpSt2mEgcgLJbZ1jN225W86B4McgNRUtSGEp4kLDisxeVL3wmf
xYeLLg7u65n4tZaf4kYvFAgJaj0fZsRZd+mPqRkn8Oee/WkqwIyWGCgV9Ez92JH7
L3LdZU/nQV0CLfZizXuideGVU1vD56sVHmIzTF/x2xccdSgTCluea94vE2A0nU0D
TdFDFAsPEh5YCgVAI4gAN0myCQushmcS3k8gFasVkBfqLzoARVNaQOpU8nYIMK1I
Qh+/Y8+LislojgtBQ0htdjt/XDqq/9UeCIT9qwYNVXMBFJ8u6Th69aGIVdc74OZY
1BNPuzsDp4/E+Jy4bPLdZe6R3B+Zf7TWlFTqlaWFv8KNyBAQmsGGEatuYU5nHeac
XahSTcyxii6GKO55CDVj4lhkwqOr0kg0vdhWwdWebjLFwfzg9g4=
=PNiW
-----END PGP SIGNATURE-----

298
phpMyAdmin-config.patch Normal file
View File

@ -0,0 +1,298 @@
Index: config.sample.inc.php
===================================================================
--- config.sample.inc.php.orig
+++ config.sample.inc.php
@@ -10,13 +10,56 @@
declare(strict_types=1);
/**
+ * Disable the default warning that is displayed on the DB Details Structure
+ * page if any of the required Tables for the relationfeatures could not be
+ * found
+ *
+ * Default: false
+ */
+/* $cfg['PmaNoRelation_DisableWarning'] = true;
+
+/**
+ * Zero Configuration mode.
+ *
+ * Enables Zero Configuration mode in which the user will be offered a choice
+ * to create phpMyAdmin configuration storage in the current database or use
+ * the existing one, if already present.
+ *
+ * Note: If there is no central configuration storage defined then you may end
+ * up with different set of phpMyAdmin configuration storage tables for
+ * different databases.
+ *
+ * Default: true
+ */
+$cfg['ZeroConf'] = false;
+
+/**
+ * Disable the default warning that is displayed if Suhosin is detected
+ *
+ * Default: false
+ */
+/* $cfg['SuhosinDisableWarning'] = true;
+
+/**
+ * Default language to use, if not browser-defined or user-defined
+ *
+ * Default: en
+ */
+/* $cfg['DefaultLang'] = 'de';
+
+/**
* This is needed for cookie based authentication to encrypt the cookie.
* Needs to be a 32-bytes long string of random bytes. See FAQ 2.10.
+ *
+ * YOU MUST FILL IN THIS FOR COOKIE AUTH!
*/
-$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
+$cfg['blowfish_secret'] = '';
/**
* Servers configuration
+ *
+ * for more info/explanation about these VARS have look at
+ * libraries/config.default.php
*/
$i = 0;
@@ -24,44 +67,153 @@ $i = 0;
* First server
*/
$i++;
-/* Authentication type */
-$cfg['Servers'][$i]['auth_type'] = 'cookie';
-/* Server parameters */
-$cfg['Servers'][$i]['host'] = 'localhost';
-$cfg['Servers'][$i]['compress'] = false;
-$cfg['Servers'][$i]['AllowNoPassword'] = false;
+
+$cfg['Servers'][$i]['host'] = 'localhost';
+$cfg['Servers'][$i]['port'] = '';
+$cfg['Servers'][$i]['socket'] = '';
+$cfg['Servers'][$i]['ssl'] = false;
+$cfg['Servers'][$i]['connect_type'] = 'socket';
+$cfg['Servers'][$i]['extension'] = 'mysqli';
+$cfg['Servers'][$i]['compress'] = false;
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+$cfg['Servers'][$i]['user'] = 'root';
+$cfg['Servers'][$i]['password'] = '';
+$cfg['Servers'][$i]['AllowNoPassword'] = false;
+$cfg['Servers'][$i]['AllowRoot'] = true;
+$cfg['Servers'][$i]['SignonSession'] = '';
+$cfg['Servers'][$i]['SignonURL'] = '';
+$cfg['Servers'][$i]['LogoutURL'] = '';
+$cfg['Servers'][$i]['only_db'] = '';
+$cfg['Servers'][$i]['verbose'] = '';
+$cfg['Servers'][$i]['verbose_check'] = true;
+$cfg['Servers'][$i]['AllowDeny']['order'] = '';
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array();
/**
* phpMyAdmin configuration storage settings.
+ *
+ * for more info/explanation about these VARS have look at
+ * libraries/config.default.php
*/
/* User used to manipulate with storage */
-// $cfg['Servers'][$i]['controlhost'] = '';
-// $cfg['Servers'][$i]['controlport'] = '';
-// $cfg['Servers'][$i]['controluser'] = 'pma';
-// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
-
-/* Storage database and tables */
-// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
-// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
-// $cfg['Servers'][$i]['relation'] = 'pma__relation';
-// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
-// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
-// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
-// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
-// $cfg['Servers'][$i]['history'] = 'pma__history';
-// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
-// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
-// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
-// $cfg['Servers'][$i]['recent'] = 'pma__recent';
-// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
-// $cfg['Servers'][$i]['users'] = 'pma__users';
-// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
-// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
-// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
-// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
-// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
-// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
+$cfg['Servers'][$i]['controlhost'] = 'localhost';
+$cfg['Servers'][$i]['controlport'] = '';
+/*
+$cfg['Servers'][$i]['controluser'] = 'pma';
+$cfg['Servers'][$i]['controlpass'] = 'pmapass';
+
+/**
+ * The name of the database containing the phpMyAdmin configuration storage.
+ *
+ * For a whole set of additional features (bookmarks, comments, SQL-history,
+ * tracking mechanism, PDF-generation, column contents transformation, etc.)
+ * you need to create a set of special tables. Those tables can be located in
+ * your own database, or in a central database for a multi-user installation
+ * (this database would then be accessed by the controluser, so no other user
+ * should have rights to it).
+ *
+ * Default: ''
+ *
+ */
+/* $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
+
+/* Other Storage tables */
+
+$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
+$cfg['Servers'][$i]['relation'] = 'pma__relation';
+$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
+$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
+$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
+$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
+$cfg['Servers'][$i]['history'] = 'pma__history';
+$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
+$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
+$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
+$cfg['Servers'][$i]['recent'] = 'pma__recent';
+$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
+$cfg['Servers'][$i]['users'] = 'pma__users';
+$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
+$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
+$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
+$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
+$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
+$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
+/* $cfg['Servers'][$i]['auth_swekey_config'] = '';
+
+
+
+/**
+ * Second Server
+ */
+
+/*
+$i++;
+$cfg['Servers'][$i]['host'] = 'localhost';
+$cfg['Servers'][$i]['port'] = '';
+$cfg['Servers'][$i]['socket'] = '';
+$cfg['Servers'][$i]['ssl'] = false;
+$cfg['Servers'][$i]['connect_type'] = 'socket';
+$cfg['Servers'][$i]['extension'] = 'mysqli';
+$cfg['Servers'][$i]['compress'] = false;
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+$cfg['Servers'][$i]['user'] = 'root';
+$cfg['Servers'][$i]['password'] = '';
+$cfg['Servers'][$i]['AllowNoPassword'] = false;
+$cfg['Servers'][$i]['AllowRoot'] = true;
+$cfg['Servers'][$i]['SignonSession'] = '';
+$cfg['Servers'][$i]['SignonURL'] = '';
+$cfg['Servers'][$i]['LogoutURL'] = '';
+$cfg['Servers'][$i]['only_db'] = '';
+$cfg['Servers'][$i]['verbose'] = '';
+$cfg['Servers'][$i]['verbose_check'] = true;
+$cfg['Servers'][$i]['AllowDeny']['order'] = '';
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array();
+*/
+
+/*
+ * phpMyAdmin configuration storage settings.
+ */
+
+/*
+$cfg['Servers'][$i]['controlhost'] = 'localhost';
+$cfg['Servers'][$i]['controlport'] = '';
+$cfg['Servers'][$i]['controluser'] = 'pma';
+$cfg['Servers'][$i]['controlpass'] = 'pmapass';
+$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
+$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
+$cfg['Servers'][$i]['relation'] = 'pma__relation';
+$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
+$cfg['Servers'][$i]['table_coords'] = 'pma__table_cords';
+$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
+$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
+$cfg['Servers'][$i]['history'] = 'pma__history';
+$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
+$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
+$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
+$cfg['Servers'][$i]['recent'] = 'pma__recent';
+$cfg['Servers'][$i]['users'] = 'pma__users';
+$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
+$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
+$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
+$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
+$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
+$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
+$cfg['Servers'][$i]['auth_swekey_config'] = '';
+*/
+
+/**
+ * If you have more than one server configured, you can set $cfg['ServerDefault']
+ * to any one of them to autoconnect to that server when phpMyAdmin is started,
+ * or set it to 0 to be given a list of servers without logging in
+ * If you have only one server configured, $cfg['ServerDefault'] *MUST* be
+ * set to that server.
+ *
+ * Default server (0 = no default server)
+ */
+$cfg['ServerDefault'] = 1;
+$cfg['Server'] = '0';
+unset($cfg['Servers'][0]);
/**
* End of servers configuration
Index: libraries/vendor_config.php
===================================================================
--- libraries/vendor_config.php.orig
+++ libraries/vendor_config.php
@@ -22,38 +22,38 @@ return [
/**
* Directory where cache files are stored.
*/
- 'tempDir' => ROOT_PATH . 'tmp' . DIRECTORY_SEPARATOR,
+ 'tempDir' => '@tmpdir@' . DIRECTORY_SEPARATOR,
/**
* Path to changelog file, can be gzip compressed.
* Useful when you want to have documentation somewhere else, e.g. /usr/share/doc.
*/
- 'changeLogFile' => ROOT_PATH . 'ChangeLog',
+ 'changeLogFile' => '@docdir@' . DIRECTORY_SEPARATOR . 'ChangeLog',
/**
* Path to license file. Useful when you want to have documentation somewhere else, e.g. /usr/share/doc.
*/
- 'licenseFile' => ROOT_PATH . 'LICENSE',
+ 'licenseFile' => '@docdir@' . DIRECTORY_SEPARATOR . 'LICENSE',
/**
* Directory where SQL scripts to create/upgrade configuration storage reside.
*/
- 'sqlDir' => ROOT_PATH . 'sql' . DIRECTORY_SEPARATOR,
+ 'sqlDir' => '@docdir@' . DIRECTORY_SEPARATOR . 'sql' . DIRECTORY_SEPARATOR,
/**
* Filename of a configuration file.
*/
- 'configFile' => ROOT_PATH . 'config.inc.php',
+ 'configFile' => '@sysconfdir@' . DIRECTORY_SEPARATOR . 'config.inc.php',
/**
* Filename of custom header file.
*/
- 'customHeaderFile' => ROOT_PATH . 'config.header.inc.php',
+ 'customHeaderFile' => '@sysconfdir@' . DIRECTORY_SEPARATOR . 'config.header.inc.php',
/**
* Filename of custom footer file.
*/
- 'customFooterFile' => ROOT_PATH . 'config.footer.inc.php',
+ 'customFooterFile' => '@sysconfdir@' . DIRECTORY_SEPARATOR . 'config.footer.inc.php',
/**
* Default value for check for version upgrades.

27
phpMyAdmin-pma.patch Normal file
View File

@ -0,0 +1,27 @@
Index: sql/create_tables.sql
===================================================================
--- sql/create_tables.sql.orig
+++ sql/create_tables.sql
@@ -27,8 +27,8 @@ USE phpmyadmin;
-- Privileges
--
-- (activate this statement if necessary)
--- GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
--- 'pma'@localhost;
+GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
+ 'pma'@localhost IDENTIFIED BY 'pmapass';
-- --------------------------------------------------------
Index: config.sample.inc.php
===================================================================
--- config.sample.inc.php.orig
+++ config.sample.inc.php
@@ -199,7 +199,6 @@ $cfg['Servers'][$i]['savedsearches']
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
-$cfg['Servers'][$i]['auth_swekey_config'] = '';
*/
/**

3
phpMyAdmin-rpmlintrc Normal file
View File

@ -0,0 +1,3 @@
addFilter("files-duplicated-waste")
addFilter("files-duplicate")
addFilter("pem-certificate")

5204
phpMyAdmin.changes Normal file

File diff suppressed because it is too large Load Diff

103
phpMyAdmin.http Normal file
View File

@ -0,0 +1,103 @@
# By default the /@name@ Alias is enabled for all vhosts.
# To disable the /@name@ Alias, run
# a2enflag -d @name@ && rcapache2 restart
# This will make /@name@ unavailable on any vhosts.
#
# If you want to have the /@name@ Alias only on a specific
# vhost, add the Alias to the config of that vhost.
<IfDefine @name@>
<IfModule mod_alias.c>
Alias /@name@ @ap_docroot@/@name@
</IfModule>
</IfDefine>
<Directory @ap_docroot@/@name@>
Options FollowSymLinks
AllowOverride None
<IfVersion < 2.4>
Order Allow,Deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
<IfModule !mod_access_compat.c>
Require all granted
</IfModule>
<IfModule mod_access_compat.c>
Order Allow,Deny
Allow from all
</IfModule>
</IfVersion>
# php7
<IfModule mod_php7.c>
Include @ap_sysconfdir@/conf.d/@name@.inc
php_admin_value open_basedir "@ap_docroot@/@name@:@ap_tmpdir@:/var/lib/php7:/tmp:@docdir@/@name@:/etc/@name@:/proc/meminfo:/proc/stat"
</IfModule>
# php8
<IfModule mod_php.c>
Include @ap_sysconfdir@/conf.d/@name@.inc
php_admin_value open_basedir "@ap_docroot@/@name@:@ap_tmpdir@:/var/lib/php8:/tmp:@docdir@/@name@:/etc/@name@:/proc/meminfo:/proc/stat"
</IfModule>
</Directory>
<Directory @ap_docroot@/@name@/libraries>
<IfVersion < 2.4>
Order allow,deny
Deny from all
</IfVersion>
<IfVersion >= 2.4>
<IfModule !mod_access_compat.c>
Require all denied
</IfModule>
<IfModule mod_access_compat.c>
Order deny,allow
Deny from all
</IfModule>
</IfVersion>
</Directory>
<Directory @ap_docroot@/@name@/templates>
<IfVersion < 2.4>
Order allow,deny
Deny from all
</IfVersion>
<IfVersion >= 2.4>
<IfModule !mod_access_compat.c>
Require all denied
</IfModule>
<IfModule mod_access_compat.c>
Order deny,allow
Deny from all
</IfModule>
</IfVersion>
</Directory>
<Directory @ap_tmpdir@>
<IfVersion < 2.4>
Order allow,deny
Deny from all
</IfVersion>
<IfVersion >= 2.4>
<IfModule !mod_access_compat.c>
Require all denied
</IfModule>
<IfModule mod_access_compat.c>
Order deny,allow
Deny from all
</IfModule>
</IfVersion>
</Directory>

13
phpMyAdmin.http.inc Normal file
View File

@ -0,0 +1,13 @@
php_admin_flag register_globals off
php_admin_flag magic_quotes_gpc off
php_admin_flag allow_url_include off
php_admin_flag allow_url_fopen off
php_admin_flag zend.ze1_compatibility_mode off
php_admin_flag safe_mode Off
# customize suhosin
php_admin_value suhosin.post.max_array_index_length 256
php_admin_value suhosin.post.max_totalname_length 8192
php_admin_value suhosin.post.max_vars 2048
php_admin_value suhosin.request.max_array_index_length 256
php_admin_value suhosin.request.max_totalname_length 8192
php_admin_value suhosin.request.max_vars 2048

530
phpMyAdmin.keyring Normal file
View File

@ -0,0 +1,530 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
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
eBSXxBqkCxwoDujCb11Pxrgn0sKI8zAmokL1oFc=
=PdQl
-----END PGP PUBLIC KEY BLOCK-----

276
phpMyAdmin.spec Normal file
View File

@ -0,0 +1,276 @@
#
# spec file for package phpMyAdmin
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define ap_docroot_old /srv/www/htdocs
%define ap_docroot %{_datadir}
%define ap_tmpdir %{_localstatedir}/cache/%{name}
%define pma_config %{_sysconfdir}/%{name}/config.inc.php
%if !0%{?suse_version}
%define apache_user nobody
%define apache_group nogroup
%endif
Name: phpMyAdmin
Version: 5.2.2
Release: 0
Summary: Administration of MySQL over the web
License: GPL-2.0-or-later
Group: Productivity/Networking/Web/Frontends
URL: https://www.phpMyAdmin.net/
Source0: https://files.phpmyadmin.net/phpMyAdmin/%{version}/%{name}-%{version}-all-languages.tar.xz
Source1: https://files.phpmyadmin.net/phpMyAdmin/%{version}/%{name}-%{version}-all-languages.tar.xz.asc
# http://docs.phpmyadmin.net/en/latest/setup.html#verifying-phpmyadmin-releases
Source2: https://files.phpmyadmin.net/phpmyadmin.keyring#/%{name}.keyring
Source3: %{name}.http
Source4: %{name}.http.inc
Source100: %{name}-rpmlintrc
# Fix-SuSE: provide useful default config
Patch0: %{name}-config.patch
# Fix-SUSE: auto config for pma storage
Patch1: %{name}-pma.patch
BuildArch: noarch
BuildRequires: apache-rpm-macros
BuildRequires: fdupes
#
Requires: php-bz2
Requires: php-ctype
Requires: php-gd
Requires: php-gettext
Requires: php-iconv
Requires: php-json
Requires: php-mbstring
Requires: php-mysql
Requires: php-openssl
Requires: php-session
Recommends: php-curl
Recommends: php-zip
%description
phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as a
single database. To accomplish the latter you'll need a properly set up MySQL
user who can read/write only the desired database. It's up to you to look up
the appropriate part in the MySQL manual.
Currently phpMyAdmin can:
* browse and drop databases, tables, views, fields and indexes
* create, copy, drop, rename and alter databases, tables, fields and indexes
* maintenance server, databases and tables, with proposals on server
configuration
* execute, edit and bookmark any SQL-statement, even batch-queries
* load text files into tables
* create^1 and read dumps of tables
* export^1 data to various formats: CSV, XML, PDF, ISO/IEC 26300 -
OpenDocument Text and Spreadsheet, Word, Excel and L^AT[E]X formats
* import data and MySQL structures from Microsoft Excel and OpenDocument
spreadsheets, as well as XML, CSV, and SQL files
* administer multiple servers
* manage MySQL users and privileges
* 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
* track changes on databases, tables and views
* support InnoDB tables and foreign keys (see FAQ 3.6)
* support mysqli, the improved MySQL extension (see FAQ 1.17)
* communicate in 57 different languages
* synchronize two databases residing on the same as well as remote servers
(see FAQ 9.1)
%package apache
Summary: Apache configuration for %{name}
Group: Productivity/Networking/Web/Utilities
BuildRequires: apache-rpm-macros-control
BuildRequires: apache2
Requires: %{name}
Requires: apache2
Requires(post): %{_sbindir}/a2enmod
Requires(post): %{_sbindir}/a2enflag
Requires(post): php
Requires(postun):%{_sbindir}/a2enflag
Requires: mod_php_any >= 7.4
Supplements: packageand(apache2:%name)
%description apache
This subpackage contains the Apache configuration files
%lang_package
%prep
%setup -q -n %{name}-%{version}-all-languages
## rpmlint:
# wrong-file-end-of-line-encoding
perl -p -i -e 's|\r\n|\n|' examples/config.manyhosts.inc.php
%patch -P 0
%patch -P 1
# clean up
find . -name .github -type d -prune -exec rm -r {} \;
for file in *.orig .buildinfo .gitkeep .travis.yml .weblate .jshintrc .eslintrc.json \
.php_cs.dist .scrutinizer.yml .editorconfig php_twig.h twig.c; do
find . -type f -name $file -delete
done
# permissions
find . -type d -exec chmod 755 {} \;
find . ! -name '*.sh' ! -name '*-query' -type f -exec chmod 644 {} \;
%build
%install
#%%{__install} -d -m0750 $RPM_BUILD_ROOT%%{_sysconfdir}/%%{name}
install -d -m0755 %{buildroot}%{ap_docroot}/%{name}
cp -dR *.php *.ico *.txt js libraries locale themes templates vendor \
%{buildroot}%{ap_docroot}/%{name}
# install config to config dir
install -D -m0640 %{buildroot}%{ap_docroot}/%{name}/config.sample.inc.php \
%{buildroot}%{_sysconfdir}/%{name}/config.inc.php
# install TempDir (now in cache)
install -d -m0770 %{buildroot}%{ap_tmpdir}
# fix libraries/vendor_config.php
sed -i -e "s,@docdir@,%{_docdir}/%{name},g" -e "s,@sysconfdir@,%{_sysconfdir}/%{name},g" -e "s,@tmpdir@,%{ap_tmpdir},g" \
%{buildroot}%{ap_docroot}/%{name}/libraries/vendor_config.php
# fix libraries/common.inc.php
#%%{__sed} -i -e "s,@PMA_Config@,%%{_sysconfdir}/%%{name}/config.inc.php,g" \
# $RPM_BUILD_ROOT%%{ap_docroot}/%%{name}/libraries/common.inc.php
# generate file list
find %{buildroot}%{ap_docroot}/%{name} -mindepth 1 -maxdepth 1 -type d | sed -e "s@$RPM_BUILD_ROOT@@" > FILELIST
find %{buildroot}%{ap_docroot}/%{name} -maxdepth 1 -type f | grep -v 'config.inc.php' | sed -e "s@$RPM_BUILD_ROOT@@" >> FILELIST
install -D -m0644 %{SOURCE3} %{buildroot}%{apache_sysconfdir}/conf.d/%{name}.conf
install -D -m0644 %{SOURCE4} %{buildroot}%{apache_sysconfdir}/conf.d/%{name}.inc
# fix paths in http config
sed -i -e "s,@ap_docroot@,%{ap_docroot},g" -e "s,@name@,%{name},g" \
-e "s,@docdir@,%{_docdir},g" -e "s,@ap_sysconfdir@,%{apache_sysconfdir},g" -e "s,@ap_tmpdir@,%{ap_tmpdir},g" %{buildroot}%{apache_sysconfdir}/conf.d/%{name}.conf
# rpmlint stuff
%fdupes %{buildroot}%{ap_docroot}/%{name}
# find language files
%find_lang %{name} --all-name
%post
# generate blowfish secret only on install, not on upgrade
if [ $1 -eq 1 ]; then
sed -i -e "s|^\(\$cfg\['blowfish_secret'\] = '\)\(';\).*|\1$(head -c 32 /dev/urandom | base64)\2|" %{pma_config}
fi
%preun
# only on uninstall, not on upgrade
if [ $1 -eq 0 ]; then
echo "info: empty %{ap_tmpdir}/* for clean uninstall"
rm -rf %{ap_tmpdir}/* || :
fi
%postun
# only on upgrade, not on install
if [ $1 -ge 1 ]; then
echo "info: empty %{ap_tmpdir}/* for clean upgrade"
rm -rf %{ap_tmpdir}/* || :
fi
%post apache
# only do on install, not on upgrade
if [ $1 -eq 1 ]; then
# enable required apache modules
a2enmod version >/dev/null || :
# enable mod_php if preform MPM is used
if start_apache2 -V | grep -q prefork; then
mod_php=$(php -r "echo 'php' . PHP_MAJOR_VERSION;")
echo "info: adding ${mod_php} to APACHE_MODULES"
a2enmod ${mod_php} >/dev/null || :
fi
# enable phpMyAdmin flag
echo "info: adding %{name} to APACHE_SERVER_FLAGS"
a2enflag %{name} >/dev/null || :
fi
# on upgrade, check if new cache directory is in config
if [ $1 -gt 1 ] && ! grep -q %{ap_tmpdir} %{apache_sysconfdir}/conf.d/%{name}.conf; then
# not found, create backup first
cp --backup=t --preserve %{apache_sysconfdir}/conf.d/%{name}.conf{,.bak}
# add cache directory /var/cache/phpMyAdmin
echo "info: new cache directory added to %{apache_sysconfdir}/conf.d/%{name}.conf"
sed -i "s|\(php_admin_value open_basedir[^:]*\)|\1:%{ap_tmpdir}|" %{apache_sysconfdir}/conf.d/%{name}.conf
cat >> %{apache_sysconfdir}/conf.d/%{name}.conf << EOF
<Directory %{ap_tmpdir}>
<IfVersion < 2.4>
Order allow,deny
Deny from all
</IfVersion>
<IfVersion >= 2.4>
<IfModule !mod_access_compat.c>
Require all denied
</IfModule>
<IfModule mod_access_compat.c>
Order deny,allow
Deny from all
</IfModule>
</IfVersion>
</Directory>
EOF
# boo#1092345: change ap_docroot from /srv/www/htdocs to /usr/share
if grep -q %{ap_docroot_old} %{apache_sysconfdir}/conf.d/%{name}.conf; then
echo "info: changed %{ap_docroot_old} to %{ap_docroot} in %{apache_sysconfdir}/conf.d/%{name}.conf"
sed -i "s|%{ap_docroot_old}|%{ap_docroot}|g" %{apache_sysconfdir}/conf.d/%{name}.conf
fi
fi
%postun apache
# only do on uninstall, not on upgrade
if [ $1 -eq 0 ]; then
# disable phpMyAdmin flag
echo "info: removing %{name} from APACHE_SERVER_FLAGS"
a2enflag -d %{name} >/dev/null || :
fi
%apache_request_restart
%posttrans apache
# restart apache instances after zypper or rpm transaction, if not have restarted already
%apache_restart_if_needed
%files -f FILELIST
%defattr(644,root,root,755)
%doc ChangeLog
%license LICENSE
%doc README RELEASE-DATE*
%doc examples doc sql
%dir %attr(0750,root,%{apache_group}) %{_sysconfdir}/%{name}
%dir %attr(0770,root,%{apache_group}) %{ap_tmpdir}
%config(noreplace) %{_sysconfdir}/%{name}/config.inc.php
%dir %{ap_docroot}/%{name}
%exclude %{ap_docroot}/%{name}/locale/*/LC_MESSAGES/phpmyadmin.mo
%exclude %{ap_docroot}/%{name}/vendor/phpmyadmin/sql-parser/locale/*/LC_MESSAGES/sqlparser.mo
%files apache
%config(noreplace) %{apache_sysconfdir}/conf.d/%{name}.conf
%config(noreplace) %{apache_sysconfdir}/conf.d/%{name}.inc
%files lang -f %{name}.lang
%changelog