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?
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?
Thanks for the quick reply. I guess I should have shown the following link to the bug.
The comment by the developer makes it clear the types.h file won't be replaced. The build log is here:
Hope this helps.
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.
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
The solution is at, it's the types.h file from a previous release.
Put it in the shoes directory along with the config.h file, change the include line to #include <shoes/types.h>, and the build works (at least on my x86_64 box). I've only tested one of the sample, and it worked.
Interesting, on my Ubuntu 10.10 system:
ccoupe@twb:~$ more /usr/include/curl/types.h
/* not used */
So the file is there, just empty.
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.
Since the file contains nothing except comments we probably shouldn't include it as you did with your config.h
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.
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.
Being a pedantic a**hole I made my shoes/config.h look like this near line 46
/* #include <curl/types.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.
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.
@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...
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.
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
@ccoupe, that's only included in linux shoes anyway, so I'm applying the patch.
So sorry this took me so long.