New plugins for Linux

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

New plugins for Linux

Bert Freudenberg
 
Hi Ian,

here are 4 new plugins for Linux, taken from Scratch (MIT licensed, inside the GPL release), moved into the unix source layout, with added cmake files (also did one for VideoForLinuxPlugin).

I did comment out the system() call in ScratchPlugin, since that is too dangerous to compile in by default, for my taste.

I also added the new plugins (along with the missing OggPlugin and VideoForLinuxPlugin) to plugins.ext, and edited CMakeLists.txt to use "PROJECT (squeak C)" because otherwise CMake would insist to want both C and C++ compilers.

I noticed by default it builds and installs vm-display-custom and vm-sound-custom, but I did nothing about that yet.

The attached tarball contains the files differing from your Squeak-4.4.7.2357-src.tar.gz release (SVN head didn't build for me).

I verified the Camera, Unicode, and Scratch plugins do work. Cannot test WeDo.

When you do a new release, it would be nicer to exclude the old autotools stuff, I think. I did:

        rm -r unix/config
        find unix/ -name acinclude.m4 -o -name Makefile.in -o -name Makefile.inc | xargs rm

and things seemed to work fine.

And maybe for some it would be helpful to list the build requirements to have all modules and features get built?

On Ubuntu 12 I had to install these additional packages:

cmake libx11-dev libxext-dev libxrender-dev libfreetype6-dev libpulse-dev libasound-dev libaudio-dev libogg-dev libvorbis-dev libspeex-dev uuid-dev libdbus-1-dev libpango1.0-dev libgstreamer0.10-dev libgl1-mesa-dev

On Fedora 14 (here I started without any dev tools):

make gcc cmake pulseaudio-libs-devel alsa-lib-devel nas-devel libogg-devel libvorbis-devel speex-devel uuid-devel dbus-devel pango-devel gstreamer-devel mesa-libGL-devel

(where pango-devel loads in libX11-devel, libXext-devel, libXrender-devel, and freetype-devel to be loaded, amongst others)

(and UUID compiling gives up with an error that the storage size of 'uuid' is unknown, I ignored that)

Maybe you could quickly make a Squeak-4.4.8.2357 release by just adding these files and removing the autotools junk? I want the Fedora guys to package a 4.x VM (one for ARM is needed in particular) but it would be good to get all the stuff in first.

Thanks!

- Bert -

NewPlugins-4.4.7.2357-src.tar.gz (35K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New plugins for Linux

Bert Freudenberg


On 19.05.2012, at 20:39, Bert Freudenberg wrote:

> And maybe for some it would be helpful to list the build requirements to have all modules and features get built?
>
> On Ubuntu 12 I had to install these additional packages:
>
> cmake libx11-dev libxext-dev libxrender-dev libfreetype6-dev libpulse-dev libasound-dev libaudio-dev libogg-dev libvorbis-dev libspeex-dev uuid-dev libdbus-1-dev libpango1.0-dev libgstreamer0.10-dev libgl1-mesa-dev
>
> On Fedora 14 (here I started without any dev tools):
>
> make gcc cmake pulseaudio-libs-devel alsa-lib-devel nas-devel libogg-devel libvorbis-devel speex-devel uuid-devel dbus-devel pango-devel gstreamer-devel mesa-libGL-devel

This should have been libuuid-devel, not uuid-devel.

> (where pango-devel loads in libX11-devel, libXext-devel, libXrender-devel, and freetype-devel to be loaded, amongst others)
>
> (and UUID compiling gives up with an error that the storage size of 'uuid' is unknown, I ignored that)


We actually need libuuid-devel (not uuid-devel as I wrote above) and we need to include <uuid/uuid.h> instead of <uuid.h> and config.cmake needs to check for uuid/uuid.h not uuid.h. At least on Linux. Not sure about others ...

- Bert -

Reply | Threaded
Open this post in threaded view
|

Re: New plugins for Linux

David T. Lewis
 
On Fri, Jun 01, 2012 at 01:37:15PM +0200, Bert Freudenberg wrote:

>
>
> On 19.05.2012, at 20:39, Bert Freudenberg wrote:
>
> > And maybe for some it would be helpful to list the build requirements to have all modules and features get built?
> >
> > On Ubuntu 12 I had to install these additional packages:
> >
> > cmake libx11-dev libxext-dev libxrender-dev libfreetype6-dev libpulse-dev libasound-dev libaudio-dev libogg-dev libvorbis-dev libspeex-dev uuid-dev libdbus-1-dev libpango1.0-dev libgstreamer0.10-dev libgl1-mesa-dev
> >
> > On Fedora 14 (here I started without any dev tools):
> >
> > make gcc cmake pulseaudio-libs-devel alsa-lib-devel nas-devel libogg-devel libvorbis-devel speex-devel uuid-devel dbus-devel pango-devel gstreamer-devel mesa-libGL-devel
>
> This should have been libuuid-devel, not uuid-devel.
>
> > (where pango-devel loads in libX11-devel, libXext-devel, libXrender-devel, and freetype-devel to be loaded, amongst others)
> >
> > (and UUID compiling gives up with an error that the storage size of 'uuid' is unknown, I ignored that)
>
>
> We actually need libuuid-devel (not uuid-devel as I wrote above) and we need to include <uuid/uuid.h> instead of <uuid.h> and config.cmake needs to check for uuid/uuid.h not uuid.h. At least on Linux. Not sure about others ...
>
> - Bert -

The "uuid/uuid.h" versus "uuid.h" annoyance is something that varies on
different unices. I think that as of about 2009 Ian had come up with a
cmake configuration that handles the differences. Is this not working now?

Dave

Reply | Threaded
Open this post in threaded view
|

Re: New plugins for Linux

Bert Freudenberg


On 01.06.2012, at 14:38, David T. Lewis wrote:

>
> On Fri, Jun 01, 2012 at 01:37:15PM +0200, Bert Freudenberg wrote:
>>
>>
>> On 19.05.2012, at 20:39, Bert Freudenberg wrote:
>>
>>> And maybe for some it would be helpful to list the build requirements to have all modules and features get built?
>>>
>>> On Ubuntu 12 I had to install these additional packages:
>>>
>>> cmake libx11-dev libxext-dev libxrender-dev libfreetype6-dev libpulse-dev libasound-dev libaudio-dev libogg-dev libvorbis-dev libspeex-dev uuid-dev libdbus-1-dev libpango1.0-dev libgstreamer0.10-dev libgl1-mesa-dev
>>>
>>> On Fedora 14 (here I started without any dev tools):
>>>
>>> make gcc cmake pulseaudio-libs-devel alsa-lib-devel nas-devel libogg-devel libvorbis-devel speex-devel uuid-devel dbus-devel pango-devel gstreamer-devel mesa-libGL-devel
>>
>> This should have been libuuid-devel, not uuid-devel.
>>
>>> (where pango-devel loads in libX11-devel, libXext-devel, libXrender-devel, and freetype-devel to be loaded, amongst others)
>>>
>>> (and UUID compiling gives up with an error that the storage size of 'uuid' is unknown, I ignored that)
>>
>>
>> We actually need libuuid-devel (not uuid-devel as I wrote above) and we need to include <uuid/uuid.h> instead of <uuid.h> and config.cmake needs to check for uuid/uuid.h not uuid.h. At least on Linux. Not sure about others ...
>>
>> - Bert -
>
> The "uuid/uuid.h" versus "uuid.h" annoyance is something that varies on
> different unices. I think that as of about 2009 Ian had come up with a
> cmake configuration that handles the differences. Is this not working now?
>
> Dave

Nope. In sqUnixUUID.c I see <sys/uuid.h> and <uuid.h> but not <uuid/uuid.h>. Same for config.cmake.

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: New plugins for Linux

David T. Lewis
 
On Fri, Jun 01, 2012 at 02:45:22PM +0200, Bert Freudenberg wrote:

>
>
> On 01.06.2012, at 14:38, David T. Lewis wrote:
>
> >
> > On Fri, Jun 01, 2012 at 01:37:15PM +0200, Bert Freudenberg wrote:
> >>
> >>
> >> On 19.05.2012, at 20:39, Bert Freudenberg wrote:
> >>
> >>> And maybe for some it would be helpful to list the build requirements to have all modules and features get built?
> >>>
> >>> On Ubuntu 12 I had to install these additional packages:
> >>>
> >>> cmake libx11-dev libxext-dev libxrender-dev libfreetype6-dev libpulse-dev libasound-dev libaudio-dev libogg-dev libvorbis-dev libspeex-dev uuid-dev libdbus-1-dev libpango1.0-dev libgstreamer0.10-dev libgl1-mesa-dev
> >>>
> >>> On Fedora 14 (here I started without any dev tools):
> >>>
> >>> make gcc cmake pulseaudio-libs-devel alsa-lib-devel nas-devel libogg-devel libvorbis-devel speex-devel uuid-devel dbus-devel pango-devel gstreamer-devel mesa-libGL-devel
> >>
> >> This should have been libuuid-devel, not uuid-devel.
> >>
> >>> (where pango-devel loads in libX11-devel, libXext-devel, libXrender-devel, and freetype-devel to be loaded, amongst others)
> >>>
> >>> (and UUID compiling gives up with an error that the storage size of 'uuid' is unknown, I ignored that)
> >>
> >>
> >> We actually need libuuid-devel (not uuid-devel as I wrote above) and we need to include <uuid/uuid.h> instead of <uuid.h> and config.cmake needs to check for uuid/uuid.h not uuid.h. At least on Linux. Not sure about others ...
> >>
> >> - Bert -
> >
> > The "uuid/uuid.h" versus "uuid.h" annoyance is something that varies on
> > different unices. I think that as of about 2009 Ian had come up with a
> > cmake configuration that handles the differences. Is this not working now?
> >
> > Dave
>
> Nope. In sqUnixUUID.c I see <sys/uuid.h> and <uuid.h> but not <uuid/uuid.h>. Same for config.cmake.

Ah, I see. The fix went in after SVN r2357, so it's not in the tarball.
So we need a fresh build and tarball, as you have previously noted.

In the bleeding edge SVN, the platforms/unix/plugins/UUIDPlugin/config.cmake
handles the issue with "PLUGIN_FIND_INCLUDE (UUID uuid.h /usr/include/uuid)"

Dave

Reply | Threaded
Open this post in threaded view
|

[Unix] UUID (was: New plugins for Linux)

Bert Freudenberg


On 02.06.2012, at 02:08, David T. Lewis wrote:

>
> On Fri, Jun 01, 2012 at 02:45:22PM +0200, Bert Freudenberg wrote:
>>
>>
>> On 01.06.2012, at 14:38, David T. Lewis wrote:
>>
>>>
>>> On Fri, Jun 01, 2012 at 01:37:15PM +0200, Bert Freudenberg wrote:
>>>>
>>>>
>>>> On 19.05.2012, at 20:39, Bert Freudenberg wrote:
>>>>
>>>>> And maybe for some it would be helpful to list the build requirements to have all modules and features get built?
>>>>>
>>>>> On Ubuntu 12 I had to install these additional packages:
>>>>>
>>>>> cmake libx11-dev libxext-dev libxrender-dev libfreetype6-dev libpulse-dev libasound-dev libaudio-dev libogg-dev libvorbis-dev libspeex-dev uuid-dev libdbus-1-dev libpango1.0-dev libgstreamer0.10-dev libgl1-mesa-dev
>>>>>
>>>>> On Fedora 14 (here I started without any dev tools):
>>>>>
>>>>> make gcc cmake pulseaudio-libs-devel alsa-lib-devel nas-devel libogg-devel libvorbis-devel speex-devel uuid-devel dbus-devel pango-devel gstreamer-devel mesa-libGL-devel
>>>>
>>>> This should have been libuuid-devel, not uuid-devel.
>>>>
>>>>> (where pango-devel loads in libX11-devel, libXext-devel, libXrender-devel, and freetype-devel to be loaded, amongst others)
>>>>>
>>>>> (and UUID compiling gives up with an error that the storage size of 'uuid' is unknown, I ignored that)
>>>>
>>>>
>>>> We actually need libuuid-devel (not uuid-devel as I wrote above) and we need to include <uuid/uuid.h> instead of <uuid.h> and config.cmake needs to check for uuid/uuid.h not uuid.h. At least on Linux. Not sure about others ...
>>>>
>>>> - Bert -
>>>
>>> The "uuid/uuid.h" versus "uuid.h" annoyance is something that varies on
>>> different unices. I think that as of about 2009 Ian had come up with a
>>> cmake configuration that handles the differences. Is this not working now?
>>>
>>> Dave
>>
>> Nope. In sqUnixUUID.c I see <sys/uuid.h> and <uuid.h> but not <uuid/uuid.h>. Same for config.cmake.
>
> Ah, I see. The fix went in after SVN r2357, so it's not in the tarball.
> So we need a fresh build and tarball, as you have previously noted.
>
> In the bleeding edge SVN, the platforms/unix/plugins/UUIDPlugin/config.cmake
> handles the issue with "PLUGIN_FIND_INCLUDE (UUID uuid.h /usr/include/uuid)"
>
> Dave

Maybe it tries, but the SVN head version doesn't work either. I think it needs something like:

        PLUGIN_FIND_INCLUDE (UUID_UUID uuid/uuid.h)

and
        #if defined(HAVE_UUID_UUID_H)
          #include <uuid/uuid.h>
        #endif

in the C file.

Not quite sure how to make the detection fail and disable the plugin if uuid/uuid.h is not found.

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: [Unix] UUID (was: New plugins for Linux)

David T. Lewis
 
On Sat, Jun 02, 2012 at 06:08:56PM +0200, Bert Freudenberg wrote:

>
>
> On 02.06.2012, at 02:08, David T. Lewis wrote:
>
> >
> > On Fri, Jun 01, 2012 at 02:45:22PM +0200, Bert Freudenberg wrote:
> >>
> >>
> >> On 01.06.2012, at 14:38, David T. Lewis wrote:
> >>
> >>>
> >>> On Fri, Jun 01, 2012 at 01:37:15PM +0200, Bert Freudenberg wrote:
> >>>>
> >>>>
> >>>> On 19.05.2012, at 20:39, Bert Freudenberg wrote:
> >>>>
> >>>>> And maybe for some it would be helpful to list the build requirements to have all modules and features get built?
> >>>>>
> >>>>> On Ubuntu 12 I had to install these additional packages:
> >>>>>
> >>>>> cmake libx11-dev libxext-dev libxrender-dev libfreetype6-dev libpulse-dev libasound-dev libaudio-dev libogg-dev libvorbis-dev libspeex-dev uuid-dev libdbus-1-dev libpango1.0-dev libgstreamer0.10-dev libgl1-mesa-dev
> >>>>>
> >>>>> On Fedora 14 (here I started without any dev tools):
> >>>>>
> >>>>> make gcc cmake pulseaudio-libs-devel alsa-lib-devel nas-devel libogg-devel libvorbis-devel speex-devel uuid-devel dbus-devel pango-devel gstreamer-devel mesa-libGL-devel
> >>>>
> >>>> This should have been libuuid-devel, not uuid-devel.
> >>>>
> >>>>> (where pango-devel loads in libX11-devel, libXext-devel, libXrender-devel, and freetype-devel to be loaded, amongst others)
> >>>>>
> >>>>> (and UUID compiling gives up with an error that the storage size of 'uuid' is unknown, I ignored that)
> >>>>
> >>>>
> >>>> We actually need libuuid-devel (not uuid-devel as I wrote above) and we need to include <uuid/uuid.h> instead of <uuid.h> and config.cmake needs to check for uuid/uuid.h not uuid.h. At least on Linux. Not sure about others ...
> >>>>
> >>>> - Bert -
> >>>
> >>> The "uuid/uuid.h" versus "uuid.h" annoyance is something that varies on
> >>> different unices. I think that as of about 2009 Ian had come up with a
> >>> cmake configuration that handles the differences. Is this not working now?
> >>>
> >>> Dave
> >>
> >> Nope. In sqUnixUUID.c I see <sys/uuid.h> and <uuid.h> but not <uuid/uuid.h>. Same for config.cmake.
> >
> > Ah, I see. The fix went in after SVN r2357, so it's not in the tarball.
> > So we need a fresh build and tarball, as you have previously noted.
> >
> > In the bleeding edge SVN, the platforms/unix/plugins/UUIDPlugin/config.cmake
> > handles the issue with "PLUGIN_FIND_INCLUDE (UUID uuid.h /usr/include/uuid)"
> >
> > Dave
>
> Maybe it tries, but the SVN head version doesn't work either. I think it needs something like:
>
> PLUGIN_FIND_INCLUDE (UUID_UUID uuid/uuid.h)
>
> and
> #if defined(HAVE_UUID_UUID_H)
>  #include <uuid/uuid.h>
> #endif
>
> in the C file.
>
> Not quite sure how to make the detection fail and disable the plugin if uuid/uuid.h is not found.

It's working for me. The header is /usr/include/uuid/uuid.h and CMake is
generating a Makefile with the necessary "-I/usr/include/uuid" that allows
the header to be found.

I'm not entirely sure how the CMake part works, I just know that it's working
on my PC. The macro is implemented in platforms/unix/cmake/Plugins.cmake, so
check to make sure that file is up to date also.

Dave

Reply | Threaded
Open this post in threaded view
|

Re: [Unix] UUID

Bert Freudenberg

On 03.06.2012, at 04:54, David T. Lewis wrote:

> It's working for me. The header is /usr/include/uuid/uuid.h and CMake is
> generating a Makefile with the necessary "-I/usr/include/uuid" that allows
> the header to be found.
>
> I'm not entirely sure how the CMake part works, I just know that it's working
> on my PC. The macro is implemented in platforms/unix/cmake/Plugins.cmake, so
> check to make sure that file is up to date also.
>
> Dave

The problem is, at least on Fedora 14 (which OLPC's stable release is based on), if you install uuid-devel, there actually *is* a /usr/include/uuid.h. With the old config.cmake, at least the plugin was disabled. With the latest in SVN, the plugin is *not* disabled:

$ sudo yum install uuid-devel
...
$ ../unix/cmake/configure
-- UUIDPlugin: /usr/include/uuid.h
-- UUIDPlugin: sys/uuid.h not found
-- UUIDPlugin: libuuid not found
-- Looking for uuidgen
-- Looking for uuidgen - not found
-- Looking for uuid_generate
-- Looking for uuid_generate - not found

I think this is because CMake looks for any uuid.h, not specifically uuid/uuid.h. Consequently, compilation fails with an error, because it ends up using the wrong uuid.h:

$ make UUIDPlugin
Scanning dependencies of target UUIDPlugin
Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/src/plugins/UUIDPlugin/UUIDPlugin.c.o
Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o
/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c: In function ‘MakeUUID’:
/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c:16:10: error: storage size of ‘uuid’ isn’t known
/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c: In function ‘sqUUIDInit’:
/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c:46:10: error: storage size of ‘uuid’ isn’t known
make[3]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o] Error 1
make[2]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/all] Error 2
make[1]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/rule] Error 2
make: *** [UUIDPlugin] Error 2

After I install libuuid-devel, it *still* uses the wrong uuid.h:

$ sudo yum install libuuid-devel
$ ../unix/cmake/configure
-- UUIDPlugin: /usr/include/uuid.h
-- UUIDPlugin: sys/uuid.h not found
-- UUIDPlugin: /usr/lib/libuuid.so
$ make UUIDPlugin
Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o
/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c: In function ‘MakeUUID’:
/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c:16:10: error: storage size of ‘uuid’ isn’t known
/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c: In function ‘sqUUIDInit’:
/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c:46:10: error: storage size of ‘uuid’ isn’t known
make[3]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o] Error 1
make[2]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/all] Error 2
make[1]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/rule] Error 2
make: *** [UUIDPlugin] Error 2

Only if I remove the other uuid.h, CMake and C picks up the right one:

$ sudo rpm -e uuid-devel
$ ../unix/cmake/configure
-- UUIDPlugin: /usr/include/uuid/uuid.h
-- UUIDPlugin: sys/uuid.h not found
-- UUIDPlugin: /usr/lib/libuuid.so
$ make UUIDPlugin
Scanning dependencies of target UUIDPlugin
Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/src/plugins/UUIDPlugin/UUIDPlugin.c.o
Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o
Linking C shared module so.UUIDPlugin
Built target UUIDPlugin

Therefore, IMHO, it is essential that CMake looks for uuid/uuid.h, not just uuid.h, and that the C file includes uuid/uuid.h, not uuid.h.

Possibly you could simulate the problem by creating an empty /usr/include/uuid.h on your system?

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: [Unix] UUID

David T. Lewis
 
On Sun, Jun 03, 2012 at 09:20:07PM +0200, Bert Freudenberg wrote:

>
> On 03.06.2012, at 04:54, David T. Lewis wrote:
>
> > It's working for me. The header is /usr/include/uuid/uuid.h and CMake is
> > generating a Makefile with the necessary "-I/usr/include/uuid" that allows
> > the header to be found.
> >
> > I'm not entirely sure how the CMake part works, I just know that it's working
> > on my PC. The macro is implemented in platforms/unix/cmake/Plugins.cmake, so
> > check to make sure that file is up to date also.
> >
> > Dave
>
> The problem is, at least on Fedora 14 (which OLPC's stable release is based on), if you install uuid-devel, there actually *is* a /usr/include/uuid.h. With the old config.cmake, at least the plugin was disabled. With the latest in SVN, the plugin is *not* disabled:
>
> $ sudo yum install uuid-devel
> ...
> $ ../unix/cmake/configure
> -- UUIDPlugin: /usr/include/uuid.h
> -- UUIDPlugin: sys/uuid.h not found
> -- UUIDPlugin: libuuid not found
> -- Looking for uuidgen
> -- Looking for uuidgen - not found
> -- Looking for uuid_generate
> -- Looking for uuid_generate - not found
>
> I think this is because CMake looks for any uuid.h, not specifically uuid/uuid.h. Consequently, compilation fails with an error, because it ends up using the wrong uuid.h:
>
> $ make UUIDPlugin
> Scanning dependencies of target UUIDPlugin
> Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/src/plugins/UUIDPlugin/UUIDPlugin.c.o
> Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o
> /home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c: In function ?MakeUUID?:
> /home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c:16:10: error: storage size of ?uuid? isn?t known
> /home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c: In function ?sqUUIDInit?:
> /home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c:46:10: error: storage size of ?uuid? isn?t known
> make[3]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o] Error 1
> make[2]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/all] Error 2
> make[1]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/rule] Error 2
> make: *** [UUIDPlugin] Error 2
>
> After I install libuuid-devel, it *still* uses the wrong uuid.h:
>
> $ sudo yum install libuuid-devel
> $ ../unix/cmake/configure
> -- UUIDPlugin: /usr/include/uuid.h
> -- UUIDPlugin: sys/uuid.h not found
> -- UUIDPlugin: /usr/lib/libuuid.so
> $ make UUIDPlugin
> Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o
> /home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c: In function ?MakeUUID?:
> /home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c:16:10: error: storage size of ?uuid? isn?t known
> /home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c: In function ?sqUUIDInit?:
> /home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c:46:10: error: storage size of ?uuid? isn?t known
> make[3]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o] Error 1
> make[2]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/all] Error 2
> make[1]: *** [UUIDPlugin/CMakeFiles/UUIDPlugin.dir/rule] Error 2
> make: *** [UUIDPlugin] Error 2
>
> Only if I remove the other uuid.h, CMake and C picks up the right one:
>
> $ sudo rpm -e uuid-devel
> $ ../unix/cmake/configure
> -- UUIDPlugin: /usr/include/uuid/uuid.h
> -- UUIDPlugin: sys/uuid.h not found
> -- UUIDPlugin: /usr/lib/libuuid.so
> $ make UUIDPlugin
> Scanning dependencies of target UUIDPlugin
> Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/src/plugins/UUIDPlugin/UUIDPlugin.c.o
> Building C object UUIDPlugin/CMakeFiles/UUIDPlugin.dir/home/olpc/Squeak-4.4.7.2357-src/unix/plugins/UUIDPlugin/sqUnixUUID.c.o
> Linking C shared module so.UUIDPlugin
> Built target UUIDPlugin
>
> Therefore, IMHO, it is essential that CMake looks for uuid/uuid.h, not just uuid.h, and that the C file includes uuid/uuid.h, not uuid.h.
>
> Possibly you could simulate the problem by creating an empty /usr/include/uuid.h on your system?

Confirmed. If I make an empty /usr/include/uuid.h, the build attempts to use it
rather than /usr/include/uuid/uuid.h, and the build fails.

Dave