Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Building on Arch linux #117

Closed
myra opened this Issue · 16 comments

4 participants

@myra

The latest version of curl dropped types.h in the /usr/include/curl directory. I've checked the curl bugtracker and the issue is closed as "won't fix". The previous version of curl had a serious bug according to the curl development website. What needs to be done to resolve this issue, or can it be resolved?

@steveklabnik

Hi Myra-

I'm not sure off the top of my head, to be honest. I'm an Arch user, so this issue is really important to me, but due to a few deadlines, won't be able to look into it for a couple of days. :/

Maybe @ccoupe has some thoughts?

@myra

Thanks for the quick reply. I guess I should have shown the following link to the bug.

http://sourceforge.net/tracker/?func=detail&aid=3357929&group_id=976&atid=100976

The comment by the developer makes it clear the types.h file won't be replaced. The build log is here:

http://pastebin.com/i8c3dUrR

Hope this helps.

Myra

@myra

One more thing. The build log was after commenting out types.h in /shoes-git/src/shoes/shoes/config.h. I don't use an AUR helper. I download the tarball, extract it, and run makepkg.

@steveklabnik

Awesome, thanks.

If that header is 'blanked out' as he says, then maybe it won't be such a bad fix. I just have no time to look into it because of work. :/

At least, as of next week, Shoes is my job. :D

@myra

The solution is at, it's the types.h file from a previous release.

http://pastebin.com/vcmshQGS

Put it in the shoes directory along with the config.h file, change the include line to #include , and the build works (at least on my x86_64 box). I've only tested one of the sample, and it worked.

@ccoupe
Owner

Interesting, on my Ubuntu 10.10 system:

ccoupe@twb:~$ more /usr/include/curl/types.h
/* not used */

So the file is there, just empty.

@myra

The difference is due to Arch Linux. The rolling release model keeps everything up to date with the lateset releases. The file existed but was empty until curl version 7.21.7-1 which was just released. If you look at the pastebin I posted, the original file didn't contain much. I just used the file from a previous release instead of an empty file.

This problem won't affect other distros until the update curl to version 7.21.7-1. Including it with the shoes files seems to cure the problem and it could be an empty file like the one on your Ubuntu box.

Myra

@ccoupe
Owner

Since the file contains nothing except comments we probably shouldn't include it as you did with your config.h

@myra

Then the build fails as the build log here shows http://pastebin.com/i8c3dUrR . Thats why I started my search for the problem. I suppose rewriting shoes to eliminate the problem is also an option, I was just trying to determine the problem and find a solution so I could try out shoes.

As I said, it won't be a problem until distros upgrade curl to version 7.21.7-1 when the empty file is dropped from curl and won't be replaced as per the bug report here http://sourceforge.net/tracker/?func=detail&aid=3357929&group_id=976&atid=100976 .

The app belongs to y'all, I was just trying to solve my immediate problem.

Myra

@ccoupe
Owner

Oh, a problem I can help with!

What your log shows is that you did not comment out line 46 of config.h according to the C (not C++) rules of your gcc. Use /* #include .... */ to comment out a C preprocessor directive. In C, a line starting with # is not a comment, it is a macro #ifdef #define...

You may still find build errors (or not) and the vanishing curl types.h is still something to needs to be fixed in Shoes config.h (or however config.h is created) so the bug report can't be closed.

@ccoupe
Owner

Being a pedantic a**hole I made my shoes/config.h look like this near line 46

#include <curl/curl.h>
/* #include <curl/types.h> */
#include <curl/easy.h>

I did a 'rake clean' and 'rake'. Shoes built fine (with the normal warning errors we learn to expect). './dist shoes -m' brings up the manual so it's correct. Whether MingW or OSX will fail to build w/o curl/types.h is not something I can test.

@myra

No such thing as a pedantic a**hole. This was my bad. Software needs to be done correctly, at least that's what I've come to believe over the last 40+ years. I'm not a C programmer and prone to make such mistakes when I occassionally slip off into that bad habit. Thanks for pointing out my error. I had a manager once who said "if your not screwing up ocassionally, you're not doing anything". I must be really busy.

@steveklabnik
Owner

@ccoupe awesome, glad it turns out it can be removed there. Still leaving this open, as you said, gotta try on Mac and Windows first...

@ccoupe
Owner

Actually, you don't have to wait. That part of the code is GTK (linux) only. The line can be deleted from config.h
And the issue closed.

@gerbra

I use this patch:

Sorry, patch syntax break this comment boxes...
#if LIBCURL_VERSION_NUM < 0x071503
// types.h has been removed in libcurl 7.21.7.
// ToDo: Check if curl/types.h is deprecated and could be removed
// or is needed in older libcurl versions
#include
#endif

Regards Gerhard

@steveklabnik
Owner

@ccoupe, that's only included in linux shoes anyway, so I'm applying the patch.

So sorry this took me so long.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.