Bug 690346

Summary: pure-ftpd FTBFS because of mysql changes
Product: [Fedora] Fedora Reporter: Tom Lane <tgl>
Component: pure-ftpdAssignee: Michal Ingeli <mi>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 15CC: hhorak, mi, paul, tomboland
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pure-ftpd-1.0.30-2.fc15 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-04-02 05:57:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
suggested patch none

Description Tom Lane 2011-03-24 01:24:11 UTC
Created attachment 487171 [details]
suggested patch

Description of problem:
pure-ftpd failed to build during the F15 mass rebuild, and is still failing to build, because it depends on the deprecated mysql routine make_scrambled_password().  As of F15 I've prevented libmysqlclient.so from exposing that function, because it's (a) deprecated and (b) an intrusion on application global namespace.  So pure-ftpd needs to be fixed to use the recommended function my_make_scrambled_password() instead.

Version-Release number of selected component (if applicable):
pure-ftpd-1.0.29-2

How reproducible:
100%

Steps to Reproduce:
1.  fedpkg build

Additional info:
Suggest the attached patch; I haven't really tested it though.

This is broken in both rawhide and F15.  In F15, please build with "fedpkg build --target=dist-f15-mysql" since we need to consolidate the updates for the recent libmysqlclient soname bump.
http://lists.fedoraproject.org/pipermail/devel/2011-March/149784.html

Comment 1 Tom Lane 2011-03-24 20:00:51 UTC
Note --- the temporary dist-f15-mysql tag is history.  Just build in F15 normally when you fix this.

Comment 2 Michal Ingeli 2011-03-28 12:49:45 UTC
Thanks for reporting and also for the patch. Fixed and rebuilt in both F15 and rawhide.

Comment 3 Fedora Update System 2011-03-28 13:03:41 UTC
pure-ftpd-1.0.30-2.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/pure-ftpd-1.0.30-2.fc15

Comment 4 Fedora Update System 2011-03-29 03:31:30 UTC
Package pure-ftpd-1.0.30-2.fc15:
* should fix your issue,
* was pushed to the Fedora 15 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing pure-ftpd-1.0.30-2.fc15'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/pure-ftpd-1.0.30-2.fc15
then log in and leave karma (feedback).

Comment 5 Fedora Update System 2011-04-02 05:57:15 UTC
pure-ftpd-1.0.30-2.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 6 Tom Boland 2011-06-09 02:01:04 UTC
I loaded the fix. Apache now loads without error. Will test it further. Thanks. Should I put in a bugzilla for pam_mysql.so for same problem?

Comment 7 Michal Ingeli 2011-06-09 10:09:13 UTC
(In reply to comment #6)
> I loaded the fix. Apache now loads without error. Will test it further. Thanks.

Apache?

> Should I put in a bugzilla for pam_mysql.so for same problem?

Is it the same problem, pam_mysql depending on deprecated and now private API of mysql?

btw, pure-ftpd fixed this in current version.

Comment 8 Tom Boland 2011-06-09 15:12:09 UTC
My mistake. delete the comment. Had wrong bug open. This was a reference for another bug I was looking into.

Comment 9 Paul Howarth 2011-07-07 21:09:29 UTC
(In reply to comment #0)
> Created attachment 487171 [details]
> suggested patch
> 
> Description of problem:
> pure-ftpd failed to build during the F15 mass rebuild, and is still failing to
> build, because it depends on the deprecated mysql routine
> make_scrambled_password().  As of F15 I've prevented libmysqlclient.so from
> exposing that function, because it's (a) deprecated and (b) an intrusion on
> application global namespace.  So pure-ftpd needs to be fixed to use the
> recommended function my_make_scrambled_password() instead.

I've just come across this issue with proftpd (Bug #718327); it was only noticed as runtime because (a) the mysql headers still include a declaration for make_scrambled_password (hence the compiler is happy) but there is no implementation, and (b) proftpd's mysql support is done as a dynamically-loaded module so the resulting linking problem is only noticed when someone actually tries to use the mysql module.

I think mysql upstream needs to remove the declaration from the headers so that any further issues like this show up at build time.

Comment 10 Tom Lane 2011-07-07 21:22:59 UTC
Just to be clear, upstream has only deprecated the function; the choice to make it inaccessible is Fedora-specific.  I agree that it'd be better to remove it from the headers, and will see about doing that next turn.

But if you managed to build without getting a link failure, removing it from the headers is not going to be enough to cause you to get a build failure, merely a warning you might or might not notice.  You might be better advised to revisit the linker switches you're using.