Bug 1764401 - Please back-port MySQL 8 build support for proftpd in EPEL
Summary: Please back-port MySQL 8 build support for proftpd in EPEL
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: proftpd
Version: epel7
Hardware: x86_64
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: Paul Howarth
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-10-23 01:02 UTC by Shailen
Modified: 2019-11-20 00:29 UTC (History)
4 users (show)

Fixed In Version: proftpd-1.3.3g-12.el6 proftpd-1.3.5e-7.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-11-20 00:25:03 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Shailen 2019-10-23 01:02:01 UTC
Description of problem: Currently with EPEL7 the proftpd version found is 1.3.5e. However the proftpd version 1.3.5e is not compatible with MYSQL 8. Recently proftpd made a new release 1.3.6b which is compatible with MYSQL 8. Thus requesting  to build proftpd version 1.3.6b.


Version-Release number of selected component (if applicable): proftpd v 1.3.6b


How reproducible: Reproducible with proftpd version 1.3.5e using MYSQL 8


Steps to Reproduce:
1. Upgrade MySQL to version 8
2. 
3.

Actual results: Throws an error related to MySQL data type my_bool


Expected results: No errors 


Additional info:

Comment 1 Paul Howarth 2019-10-23 07:16:56 UTC
How does this issue manifest? The only references I can find related to compile-time issues (https://github.com/proftpd/proftpd/issues/824) rather than run-time ones.

It looks like you reported the same issue upstream (https://github.com/proftpd/proftpd/issues/841). Is that what you're referring to?

I'm very reluctant to do a major version upgrade in EPEL but would much rather backport any necessary fix to 1.3.5e in EPEL-7.

Comment 2 Shailen 2019-10-23 11:58:23 UTC
Thanks for looking into this.

I am referring https://github.com/proftpd/proftpd/issues/841

I am fine with backporting  MYSQL 8 fix to 1.3.5e in EPEL-7  ( https://github.com/proftpd/proftpd/commit/5736774e9efa736dfaed991d9223710a1261e14a )

Also could you please backport MYSQL 8 fix to 1.3.3g in EPEL-6.

Thanks,
Shailendra

Comment 3 Paul Howarth 2019-10-23 12:28:45 UTC
The backport shouldn't be an issue, although there is a security update currently in epel-testing that I would want to see pushed to stable before issuing another update.

What I don't understand is how this is affecting you, since the my_bool problem crops up when compiling proftpd's mysql support module, not when using it. Or am I wrong?

Comment 4 Shailen 2019-10-23 13:15:37 UTC
When MYSQL was upgraded to version 8, the proftpd (version 1.3.3g) failed to run in red hat 6. When I looked at the log, I could find the an error stating - unrecoverable backend error’.  

Later tried compiling proftpd with MYSQL 8 (mysql.h and libmysqlclient.a ) the error related to my_bool popped up.

Can you please advise when will the MYSQL 8 fix be available in EPEL-6 and EPEL-7 ?

Thanks,
Shailendra

Comment 5 Paul Howarth 2019-10-23 14:32:31 UTC
Try this scratch build (for EL-7):
https://koji.fedoraproject.org/koji/taskinfo?taskID=38504022

You'll still need to recompile it with MYSQL 8. Anything that goes in EPEL-6 or EPEL-7 is unlikely to work out-of-the-box with MYSQL 8 as they're built against older versions of MySQL.

Comment 6 Shailen 2019-10-23 14:50:07 UTC
Can you please share the scratch build for EPEL-6 as well?

Comment 7 Paul Howarth 2019-10-23 15:45:54 UTC
(In reply to Shailen from comment #6)
> Can you please share the scratch build for EPEL-6 as well?

https://koji.fedoraproject.org/koji/taskinfo?taskID=38505177

Comment 8 Shailen 2019-10-23 17:13:43 UTC
I will test and keep you posted

Comment 9 Shailen 2019-10-24 01:52:31 UTC
1) Used the following command to download the EPEL7 scratch build 

    koji download-task 38504022

2) Ran the below command to get the source

   rpm -vv -Uvh proftpd-1.3.5e-7.el7.src.rpm

3) Under SOURCES directory, found the below files

-rw-rw-r--. 1 root root     1144 Oct 23 09:45 459693c7.patch
-rw-rw-r--. 1 root root     1292 Oct 23 09:45 d800ece1.patch
-rw-rw-r--. 1 root root      421 Oct 23 09:45 proftpd-1.3.4rc1-mod_vroot-test.patch
-rw-rw-r--. 1 root root     2518 Oct 23 09:45 proftpd-1.3.5e-CVE-2019-12815.patch
-rw-rw-r--. 1 root root     8170 Oct 23 09:45 proftpd-1.3.5e-insecure-sftp-host-key.patch
-rw-rw-r--. 1 root root      916 Oct 23 09:45 proftpd-1.3.5e-issue-846.patch
-rw-r--r--. 1 root root      811 Oct 23 09:51 proftpd-1.3.5e-mysql8.patch
-rw-rw-r--. 1 root root     1167 Oct 23 09:45 proftpd-1.3.5e-shellbang.patch
-rw-rw-r--. 1 root root 29968142 Apr  9  2017 proftpd-1.3.5e.tar.gz
-rw-rw-r--. 1 root root    15793 Oct 23 09:45 proftpd.conf
-rw-rw-r--. 1 root root      518 Oct 23 09:45 proftpd.conf-no-memcached.patch
-rw-rw-r--. 1 root root     2997 Oct 23 09:45 proftpd-mod-vroot-0.9.2-bug3841.patch
-rw-r--r--. 1 root root    22438 Jan 11  2011 proftpd-mod-vroot-0.9.2.tar.gz
-rw-rw-r--. 1 root root      532 Oct 23 03:26 proftpd.sysconfig
-rw-rw-r--. 1 root root      224 Oct 12 14:24 proftpd-welcome.msg
-rw-r--r--. 1 root root    45591 Dec 24  2010 Test-Unit-0.14.tar.gz

4) Extracted proftpd-1.3.5e.tar.gz to get the source code

Question 1: Do I need to apply the patch proftpd-1.3.5e-mysql8.patch manually ?

Queston  2: How to build proftpd binary using the patch proftpd-1.3.5e-mysql8.patch ?

Thanks,
Shailendra

Comment 10 Paul Howarth 2019-10-24 05:44:37 UTC
You don't need to extract the contents of the SRPM. You should just be able to do:

$ rpmbuild --rebuild proftpd-1.3.5e-7.el7.src.rpm

It should work as long as you have all the necessary build dependencies installed, and it'll tell you what's missing if you don't have it.

Comment 11 Shailen 2019-10-24 12:01:54 UTC
The steps followed for the previous build were

1. Install the proftpd rpm with default module list.

2. Use the below commands to add required modules by extracting the contents of the SRPM

a) ./confgure --enable-openssl --wth-modules=mod_sftp:mod_sql:mod_sftp_sql:modsftp_pam

b) make

c) make install

If you could make the mysql8 fix part of SRPM, then I could follow the above steps to build the required functionalities into proftpd.


Thank You !
Shaiilendra

Comment 12 Shailen 2019-10-24 12:06:05 UTC
I tried the command 'rpmbuild --rebuild proftpd-1.3.5e-7.el7.src.rpm'

Looks like I need to install few other packages.


error: Failed build dependencies:
	GeoIP-devel is needed by proftpd-1.3.5e-7.el7.x86_64
	libacl-devel is needed by proftpd-1.3.5e-7.el7.x86_64
	libcap-devel is needed by proftpd-1.3.5e-7.el7.x86_64
	libmemcached-devel >= 0.41 is needed by proftpd-1.3.5e-7.el7.x86_64
	mysql-devel is needed by proftpd-1.3.5e-7.el7.x86_64
	openldap-devel is needed by proftpd-1.3.5e-7.el7.x86_64
	pam-devel is needed by proftpd-1.3.5e-7.el7.x86_64
	perl-generators is needed by proftpd-1.3.5e-7.el7.x86_64
	tcp_wrappers-devel is needed by proftpd-1.3.5e-7.el7.x86_64
	check-devel is needed by proftpd-1.3.5e-7.el7.x86_64
	perl(Crypt::Cracklib) is needed by proftpd-1.3.5e-7.el7.x86_64


Will it be possible to include mysql8 fix into SRPM (instead of giving a separate patch ) so I can follow the conventional steps to build proftpd with required functionalities ?

Thanks,
Shailendra

Comment 13 Paul Howarth 2019-10-24 12:53:34 UTC
OK, if you have already extracted the src.rpm, you can get rpmbuild to apply the patches for you:

$ rpmbuild -bp SPECS/proftpd.spec

That should unpack the sources and apply the patches from the SOURCES directory, and the unpacked and patched code will be in the BUILD directory.
You can then try configuring and building it from there as you would do normally.

Comment 14 Shailen 2019-10-24 13:04:13 UTC
Thanks for the details.

I will try this and keep you updated

Comment 15 Shailen 2019-10-26 19:48:33 UTC
Built rpms as below

3835892 Oct 26 20:34 proftpd-1.3.5e-7.el7.x86_64.rpm
2754292 Oct 26 20:34 proftpd-debuginfo-1.3.5e-7.el7.x86_64.rpm
121036 Oct 26 20:34 proftpd-devel-1.3.5e-7.el7.x86_64.rpm
70976 Oct 26 20:34 proftpd-ldap-1.3.5e-7.el7.x86_64.rpm
51212 Oct 26 20:34 proftpd-mysql-1.3.5e-7.el7.x86_64.rpm
50792 Oct 26 20:34 proftpd-postgresql-1.3.5e-7.el7.x86_64.rpm
50440 Oct 26 20:34 proftpd-sqlite-1.3.5e-7.el7.x86_64.rpm
88976 Oct 26 20:34 proftpd-utils-1.3.5e-7.el7.x86_64.rpm

Installed the rpms proftpd-1.3.5e-7.el7.x86_64.rpm proftpd-mysql-1.3.5e-7.el7.x86_64.rpm 

[@localhost x86_64]$ rpm -qa | grep proftpd                                                                                                               
proftpd-1.3.5e-7.el7.x86_64
proftpd-mysql-1.3.5e-7.el7.x86_64

Comment 16 Paul Howarth 2019-10-27 12:29:31 UTC
(In reply to Shailen from comment #15)
> Built rpms as below
> 
> 3835892 Oct 26 20:34 proftpd-1.3.5e-7.el7.x86_64.rpm
> 2754292 Oct 26 20:34 proftpd-debuginfo-1.3.5e-7.el7.x86_64.rpm
> 121036 Oct 26 20:34 proftpd-devel-1.3.5e-7.el7.x86_64.rpm
> 70976 Oct 26 20:34 proftpd-ldap-1.3.5e-7.el7.x86_64.rpm
> 51212 Oct 26 20:34 proftpd-mysql-1.3.5e-7.el7.x86_64.rpm
> 50792 Oct 26 20:34 proftpd-postgresql-1.3.5e-7.el7.x86_64.rpm
> 50440 Oct 26 20:34 proftpd-sqlite-1.3.5e-7.el7.x86_64.rpm
> 88976 Oct 26 20:34 proftpd-utils-1.3.5e-7.el7.x86_64.rpm
> 
> Installed the rpms proftpd-1.3.5e-7.el7.x86_64.rpm
> proftpd-mysql-1.3.5e-7.el7.x86_64.rpm 
> 
> [@localhost x86_64]$ rpm -qa | grep proftpd                                 
> 
> proftpd-1.3.5e-7.el7.x86_64
> proftpd-mysql-1.3.5e-7.el7.x86_64

Did it fix the issue you described in Comment #4?

Comment 17 Shailen 2019-10-28 00:12:30 UTC
Yes it did.

Thanks for all your help !

Can you please advise when will the fix be available in EPEL-6 and EPEL-7?

Thanks,
Shailendra

Comment 18 Paul Howarth 2019-10-28 11:15:26 UTC
(In reply to Shailen from comment #17)
> Yes it did.
> 
> Thanks for all your help !
> 
> Can you please advise when will the fix be available in EPEL-6 and EPEL-7?

When these updates are pushed to stable I'll do further updates to address this issue:

https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-5dfb2dbe75
https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-2108222740

This is likely to be a little over a week from now.

It will then take another two weeks or so for those updates to go from epel-testing to epel itself.

Comment 19 Shailen 2019-10-28 13:29:36 UTC
Thanks for the update

Comment 20 Fedora Update System 2019-11-04 09:11:18 UTC
FEDORA-EPEL-2019-c4ac108f8d has been submitted as an update to Fedora EPEL 6. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-c4ac108f8d

Comment 21 Fedora Update System 2019-11-05 01:08:17 UTC
proftpd-1.3.5e-7.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-85dcdba126

Comment 22 Fedora Update System 2019-11-05 01:31:34 UTC
proftpd-1.3.3g-12.el6 has been pushed to the Fedora EPEL 6 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-c4ac108f8d

Comment 23 Fedora Update System 2019-11-20 00:25:03 UTC
proftpd-1.3.3g-12.el6 has been pushed to the Fedora EPEL 6 stable repository. If problems still persist, please make note of it in this bug report.

Comment 24 Fedora Update System 2019-11-20 00:29:42 UTC
proftpd-1.3.5e-7.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.