Summary: | provide virtual-mysql-server Depends On to facilitate alternate mysql implementations | ||
---|---|---|---|
Product: | Koha | Reporter: | wajasu <matted-34813> |
Component: | Packaging | Assignee: | Bugs List <koha-bugs> |
Status: | CLOSED FIXED | QA Contact: | Testopia <testopia> |
Severity: | enhancement | ||
Priority: | P5 - low | CC: | chris, pablo.bianchi, robin, tomascohen |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
GIT URL: | Change sponsored?: | --- | |
Patch complexity: | --- | Documentation contact: | |
Documentation submission: | Text to go in the release notes: | ||
Version(s) released in: | Circulation function: | ||
Attachments: |
Bug 13359 - allow the packages to use virtual-mysql-*
SIGNED-OFF-Bug-13359-allow-the-packages-to-use-virtu |
Description
wajasu
2014-11-27 18:37:49 UTC
Created attachment 34009 [details] [review] Bug 13359 - allow the packages to use virtual-mysql-* Prior to this patch, the koha packages depended on mysql-client. This meant that it was tricky to use things such as the MariaDB libraries instead. This patch recommends mysql, but will accept mariadb and other things that are marked by debian as able to replace mysql. 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. 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 Patch pushed to master. Thanks Robin! Pushed to 3.18.x will be in 3.18.01 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 |