Bug 13359 - provide virtual-mysql-server Depends On to facilitate alternate mysql implementations
Summary: provide virtual-mysql-server Depends On to facilitate alternate mysql impleme...
Status: CLOSED FIXED
Alias: None
Product: Koha
Classification: Unclassified
Component: Packaging (show other bugs)
Version: master
Hardware: All All
: P5 - low enhancement (vote)
Assignee: Bugs List
QA Contact: Testopia
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-27 18:37 UTC by wajasu
Modified: 2017-10-07 19:32 UTC (History)
4 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:


Attachments
Bug 13359 - allow the packages to use virtual-mysql-* (2.88 KB, patch)
2014-11-27 23:29 UTC, Robin Sheat
Details | Diff | Splinter Review
SIGNED-OFF-Bug-13359-allow-the-packages-to-use-virtu (2.95 KB, patch)
2014-11-28 05:21 UTC, wajasu
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description wajasu 2014-11-27 18:37:49 UTC
Adjust debian packaging to support alternate mysql server implmentations.

Refer to:
 https://wiki.debian.org/Teams/MySQL/virtual-mysql-server in our packages this time around if we haven't already. http://blog.rot13.org/2014/04/fixing-debian-depenencies-using-fake-package.html

This can aid testers of MariaDB and other production environments.
Comment 1 Robin Sheat 2014-11-27 23:29:19 UTC Comment hidden (obsolete)
Comment 2 wajasu 2014-11-28 03:36:29 UTC
OK. Robin. I will build packages with your change.

I will extract the resulting package and diff the files to see what changed makes sense and install them both from in my minimal debian squeeze docker container.  I'll do a docker diff between the containers after the installs to see the difference.

If they install fine without a hitch, we should be good.  Then on my patched install, I will try to switch out to MariaDB.  If it switches out, that is enough to enable folks to more easily test if the koha-community wants to move toward one the forks that are our there.
Comment 3 wajasu 2014-11-28 05:21:02 UTC
Created attachment 34010 [details] [review]
SIGNED-OFF-Bug-13359-allow-the-packages-to-use-virtu

I built packages from the master using my docker koha debian pkg container which has all the dependencies.  doing dpkg-buildpackage succeeded all tests and built packages.  I also did the same, but in a fresh container that had the 34009 patch installed.  I ran fresh conatiners and was able to dpkg -i koha-common_3.16.04_all.deb for the unpatched and patched without a hitch.
CONSIDER THE PATCH SUCCESSFUL AT THIS POINT
Extra:
In the container with the patched virtual-mysql-server/client stuff, I did these steps to attempt a mariadb database install without conflicts for koha-common. I did not try running koha under mariadb, but now it may be easier to work toward that goal.

root@f84b3eab5531:/tmp# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com
gpg: key 1BB943DB: public key "MariaDB Package Signing Key <package-signing-key@mariadb.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
root@f84b3eab5531:/tmp# vi /etc/apt/sources.list
root@f84b3eab5531:/tmp# vi /etc/apt/sources.list.d/mariadb.list
root@f84b3eab5531:/tmp# apt-get update
Get:1 http://security.debian.org squeeze/updates Release.gpg [836 B]
Get:2 http://ftp.osuosl.org squeeze Release.gpg [181 B]                                                              
Get:3 http://security.debian.org squeeze/updates Release [86.9 kB]                                                   
Get:4 http://ftp.osuosl.org squeeze Release [2261 B]                                                                 
Get:5 http://debian.koha-community.org squeeze-dev Release.gpg [819 B]                                               
Get:6 http://ftp.osuosl.org squeeze/main Sources [868 B]                                                             
Get:7 http://debian.koha-community.org squeeze-dev Release [3694 B]                                                  
Get:8 http://security.debian.org squeeze/updates/main amd64 Packages [455 kB]                                        
Get:9 http://debian.koha-community.org squeeze-dev/main amd64 Packages [11.2 kB]                                     
Get:10 http://ftp.indexdata.dk squeeze Release.gpg [198 B]                                                           
Get:11 http://ftp.osuosl.org squeeze/main amd64 Packages [5107 B]                                                    
Hit http://http.debian.net squeeze Release.gpg                                                                 
Get:12 http://http.debian.net squeeze-updates Release.gpg [836 B]              
Get:13 http://http.debian.net squeeze-lts Release.gpg [836 B]                             
Get:14 http://ftp.indexdata.dk squeeze Release [13.6 kB]                                  
Get:15 http://ftp.indexdata.dk squeeze/main amd64 Packages [480 kB]                     
Hit http://http.debian.net squeeze Release                                  
Get:16 http://http.debian.net squeeze-updates Release [113 kB]                   
Get:17 http://http.debian.net squeeze-lts Release [28.7 kB]                                        
Hit http://http.debian.net squeeze/main amd64 Packages                             
Get:18 http://http.debian.net squeeze-updates/main amd64 Packages [20 B]                          
Get:19 http://http.debian.net squeeze-lts/main amd64 Packages [134 kB]             
Fetched 1338 kB in 3s (412 kB/s)  
Reading package lists... Done
W: Bizarre Error - File size is not what the server reported 11191 11202
root@f84b3eab5531:/tmp# apt-get install mariadb-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libaio1 libmariadbclient18 libmysqlclient18 libreadline5 mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common
  mariadb-server-5.5 mariadb-server-core-5.5
Suggested packages:
  libterm-readkey-perl tinyca mariadb-test
The following packages will be REMOVED:
  mysql-client-5.1 mysql-server mysql-server-5.1 mysql-server-core-5.1
The following NEW packages will be installed:
  libaio1 libmariadbclient18 libmysqlclient18 libreadline5 mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common
  mariadb-server mariadb-server-5.5 mariadb-server-core-5.5
0 upgraded, 10 newly installed, 4 to remove and 22 not upgraded.
Need to get 31.6 MB of archives.
After this operation, 58.2 MB of additional disk space will be used.
Do you want to continue [Y/n]? 
Get:1 http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian/ squeeze/main mariadb-common all 5.5.40+maria-1~squeeze [3284 B]
Get:2 http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian/ squeeze/main libmysqlclient18 amd64 5.5.40+maria-1~squeeze [2940 B]
Get:3 http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian/ squeeze/main libmariadbclient18 amd64 5.5.40+maria-1~squeeze [827 kB]
Get:4 http://http.debian.net/debian/ squeeze/main libreadline5 amd64 5.2-7 [146 kB]
Get:5 http://http.debian.net/debian/ squeeze/main libaio1 amd64 0.3.107-7 [7928 B]
Get:6 http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian/ squeeze/main mariadb-client-core-5.5 amd64 5.5.40+maria-1~squeeze [1698 kB]
Get:7 http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian/ squeeze/main mariadb-client-5.5 amd64 5.5.40+maria-1~squeeze [5059 kB]
Get:8 http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian/ squeeze/main mariadb-server-core-5.5 amd64 5.5.40+maria-1~squeeze [5351 kB]
Get:9 http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian/ squeeze/main mariadb-server-5.5 amd64 5.5.40+maria-1~squeeze [18.5 MB]
Get:10 http://ftp.osuosl.org/pub/mariadb/repo/5.5/debian/ squeeze/main mariadb-server all 5.5.40+maria-1~squeeze [2982 B]
Fetched 31.6 MB in 40s (772 kB/s)                                                                                    
Preconfiguring packages ...
(Reading database ... 47810 files and directories currently installed.)
Removing mysql-server ...
Removing mysql-server-5.1 ...
invoke-rc.d: policy-rc.d denied execution of stop.
Processing triggers for man-db ...
Selecting previously deselected package mariadb-common.
(Reading database ... 47727 files and directories currently installed.)
Unpacking mariadb-common (from .../mariadb-common_5.5.40+maria-1~squeeze_all.deb) ...
Selecting previously deselected package libmysqlclient18.
Unpacking libmysqlclient18 (from .../libmysqlclient18_5.5.40+maria-1~squeeze_amd64.deb) ...
Selecting previously deselected package libmariadbclient18.
Unpacking libmariadbclient18 (from .../libmariadbclient18_5.5.40+maria-1~squeeze_amd64.deb) ...
Selecting previously deselected package libreadline5.
Unpacking libreadline5 (from .../libreadline5_5.2-7_amd64.deb) ...
dpkg: mysql-client-5.1: dependency problems, but removing anyway as you requested:
 koha-common depends on mysql-client | virtual-mysql-client; however:
  Package mysql-client is not installed.
  Package mysql-client-5.1 which provides mysql-client is to be removed.
  Package virtual-mysql-client is not installed.
  Package mysql-client-5.1 which provides virtual-mysql-client is to be removed.
 koha-common depends on mysql-client | virtual-mysql-client; however:
  Package mysql-client is not installed.
  Package mysql-client-5.1 which provides mysql-client is to be removed.
  Package virtual-mysql-client is not installed.
  Package mysql-client-5.1 which provides virtual-mysql-client is to be removed.
(Reading database ... 47758 files and directories currently installed.)
Removing mysql-client-5.1 ...
Processing triggers for man-db ...
Selecting previously deselected package mariadb-client-core-5.5.
(Reading database ... 47697 files and directories currently installed.)
Unpacking mariadb-client-core-5.5 (from .../mariadb-client-core-5.5_5.5.40+maria-1~squeeze_amd64.deb) ...
Selecting previously deselected package mariadb-client-5.5.
Unpacking mariadb-client-5.5 (from .../mariadb-client-5.5_5.5.40+maria-1~squeeze_amd64.deb) ...
Processing triggers for man-db ...
Setting up mariadb-common (5.5.40+maria-1~squeeze) ...
Setting up libreadline5 (5.2-7) ...
Setting up libmysqlclient18 (5.5.40+maria-1~squeeze) ...
Setting up libmariadbclient18 (5.5.40+maria-1~squeeze) ...
Setting up mariadb-client-core-5.5 (5.5.40+maria-1~squeeze) ...
Setting up mariadb-client-5.5 (5.5.40+maria-1~squeeze) ...
(Reading database ... 47745 files and directories currently installed.)
Removing mysql-server-core-5.1 ...
Processing triggers for man-db ...
Selecting previously deselected package libaio1.
(Reading database ... 47664 files and directories currently installed.)
Unpacking libaio1 (from .../libaio1_0.3.107-7_amd64.deb) ...
Selecting previously deselected package mariadb-server-core-5.5.
Unpacking mariadb-server-core-5.5 (from .../mariadb-server-core-5.5_5.5.40+maria-1~squeeze_amd64.deb) ...
Selecting previously deselected package mariadb-server-5.5.
Unpacking mariadb-server-5.5 (from .../mariadb-server-5.5_5.5.40+maria-1~squeeze_amd64.deb) ...
invoke-rc.d: policy-rc.d denied execution of stop.
Selecting previously deselected package mariadb-server.
Unpacking mariadb-server (from .../mariadb-server_5.5.40+maria-1~squeeze_all.deb) ...
Processing triggers for man-db ...
Setting up libaio1 (0.3.107-7) ...
Setting up mariadb-server-core-5.5 (5.5.40+maria-1~squeeze) ...
Setting up mariadb-server-5.5 (5.5.40+maria-1~squeeze) ...
Installing new version of config file /etc/init.d/mysql ...
Installing new version of config file /etc/mysql/debian-start ...
invoke-rc.d: policy-rc.d denied execution of stop.
configured to not write apport reports
                                      configured to not write apport reports
                                                                            dpkg: error processing mariadb-server-5.5 (--configure):
 subprocess installed post-installation script returned error exit status 7
dpkg: dependency problems prevent configuration of mariadb-server:
 mariadb-server depends on mariadb-server-5.5 (= 5.5.40+maria-1~squeeze); however:
  Package mariadb-server-5.5 is not configured yet.
dpkg: error processing mariadb-server (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mariadb-server-5.5
 mariadb-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@f84b3eab5531:/tmp# mysql -ukohaadmin -pkatikoan koha
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 143
Server version: 5.1.73-1+deb6u1 (Debian)

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [koha]> show tables;
+----------------------------------------+
| Tables_in_koha                         |
+----------------------------------------+
| accountlines                           |
| accountoffsets                         |
| action_logs                            |
| alert                                  |
| aqbasket                               |
| aqbasketgroups                         |
| aqbasketusers                          |
| aqbooksellers                          |
| aqbudgetborrowers                      |
| aqbudgetperiods                        |
| aqbudgets                              |
| aqbudgets_planning                     |
| aqcontacts                             |
| aqcontract                             |
| aqinvoices                             |
| aqorders                               |
| aqorders_items                         |
| aqorders_transfers                     |
| auth_header                            |
| auth_subfield_structure                |
| auth_tag_structure                     |
| auth_types                             |
| authorised_values                      |
| authorised_values_branches             |
| biblio                                 |
| biblio_framework                       |
| biblioimages                           |
| biblioitems                            |
| borrower_attribute_types               |
| borrower_attribute_types_branches      |
| borrower_attributes                    |
| borrower_debarments                    |
| borrower_files                         |
| borrower_message_preferences           |
| borrower_message_transport_preferences |
| borrower_modifications                 |
| borrowers                              |
| branch_borrower_circ_rules             |
| branch_item_rules                      |
| branch_transfer_limits                 |
| branchcategories                       |
| branches                               |
| branchrelations                        |
| branchtransfers                        |
| browser                                |
| categories                             |
| categories_branches                    |
| cities                                 |
| class_sort_rules                       |
| class_sources                          |
| collections                            |
| collections_tracking                   |
| columns_settings                       |
| course_instructors                     |
| course_items                           |
| course_reserves                        |
| courses                                |
| creator_batches                        |
| creator_images                         |
| creator_layouts                        |
| creator_templates                      |
| currency                               |
| default_borrower_circ_rules            |
| default_branch_circ_rules              |
| default_branch_item_rules              |
| default_circ_rules                     |
| deletedbiblio                          |
| deletedbiblioitems                     |
| deletedborrowers                       |
| deleteditems                           |
| ethnicity                              |
| export_format                          |
| fieldmapping                           |
| hold_fill_targets                      |
| import_auths                           |
| import_batches                         |
| import_biblios                         |
| import_items                           |
| import_record_matches                  |
| import_records                         |
| issues                                 |
| issuingrules                           |
| item_circulation_alert_preferences     |
| items                                  |
| items_search_fields                    |
| itemtypes                              |
| language_descriptions                  |
| language_rfc4646_to_iso639             |
| language_script_bidi                   |
| language_script_mapping                |
| language_subtag_registry               |
| letter                                 |
| linktracker                            |
| marc_matchers                          |
| marc_modification_template_actions     |
| marc_modification_templates            |
| marc_subfield_structure                |
| marc_tag_structure                     |
| matchchecks                            |
| matcher_matchpoints                    |
| matchpoint_component_norms             |
| matchpoint_components                  |
| matchpoints                            |
| message_attributes                     |
| message_queue                          |
| message_transport_types                |
| message_transports                     |
| messages                               |
| misc_files                             |
| need_merge_authorities                 |
| notifys                                |
| oai_sets                               |
| oai_sets_biblios                       |
| oai_sets_descriptions                  |
| oai_sets_mappings                      |
| old_issues                             |
| old_reserves                           |
| opac_news                              |
| overduerules                           |
| overduerules_transport_types           |
| patron_list_patrons                    |
| patron_lists                           |
| patroncards                            |
| patronimage                            |
| pending_offline_operations             |
| permissions                            |
| plugin_data                            |
| printers                               |
| printers_profile                       |
| quotes                                 |
| ratings                                |
| repeatable_holidays                    |
| reports_dictionary                     |
| reserveconstraints                     |
| reserves                               |
| reviews                                |
| saved_reports                          |
| saved_sql                              |
| search_history                         |
| serial                                 |
| serialitems                            |
| services_throttle                      |
| sessions                               |
| social_data                            |
| special_holidays                       |
| statistics                             |
| stopwords                              |
| subscription                           |
| subscription_frequencies               |
| subscription_numberpatterns            |
| subscriptionhistory                    |
| subscriptionroutinglist                |
| suggestions                            |
| systempreferences                      |
| tags                                   |
| tags_all                               |
| tags_approval                          |
| tags_index                             |
| tmp_holdsqueue                         |
| transport_cost                         |
| user_permissions                       |
| userflags                              |
| virtualshelfcontents                   |
| virtualshelfshares                     |
| virtualshelves                         |
| z3950servers                           |
| zebraqueue                             |
+----------------------------------------+
167 rows in set (0.01 sec)

MySQL [koha]> quit
Bye
root@f84b3eab5531:/tmp# 

I read over the code changes and they look reasonable according to the Dobrica P's weblog mentioned above.

I just tested building packages (under my experimental docker build container, not pbuilder), and a tested koha-common package installing into a fresh debian container.
 wajasu
Comment 4 Tomás Cohen Arazi 2014-12-01 13:00:37 UTC
Patch pushed to master.

Thanks Robin!
Comment 5 Chris Cormack 2014-12-01 19:21:18 UTC
Pushed to 3.18.x will be in 3.18.01
Comment 6 Pablo AB 2017-10-07 19:32:09 UTC
JFTR, on Koha 17.05 over Ubuntu 16.04 is a good idea to use mariadb-server instead of mysql[0]. apt-cache depends koha-common | grep mysql  pipe flag (OR) reveals is a good idea to install mariadb-server *before* koha-common (thanks wizzyrea!).

[0] https://wiki.koha-community.org/wiki/Koha_on_ubuntu_-_packages#Ubuntu_16.04_and_MySQL_5.7