On 25 May 2017 at 03:58, Ken Cunningham wrote:
> The same few missing glibc functions keep popping up over and over on 
> snowleopard (and earlier), so I built a library that replaces the most common 
> ones.
>
> <https://github.com/kencu/snowleopardfixes>.
>
> And a portfile to install it is here:
>
> <https://github.com/kencu/SnowLeopardPorts/tree/master/sysutils/snowleopardfixes>
>
>
> The beauty of this approach is that rather than picking through the 
> individual source files and generating patches for each required file all the 
> time, you can just add something like this directly to the Portfile:
>
> platform darwin 10 {
>         depends_lib-append port:snowleopardfixes
>         configure.ldflags-append "-lsnowleopardfixes"
>         configure.cxxflags-append -include 
> ${prefix}/include/snowleopardfixes.h
>         configure.cflags-append -include ${prefix}/include/snowleopardfixes.h
> }
>
> and it "just works" to replace the missing functions.
>
> In the build below, I used the block above in the libzzip Portfile, and no 
> patches to the source at all:
>
> $ port -v installed libzzip
> The following ports are currently installed:
>   libzzip @0.13.62_1 platform='darwin 10' archs='x86_64' 
> date='2016-08-11T10:12:43-0700'
>   libzzip @0.13.66_0 (active) platform='darwin 10' archs='x86_64' 
> date='2017-05-24T18:32:32-0700'
>
>
> Of course platform darwin 10 could be a test for os.major <= 10 and cover all 
> the older systems, but Leopard and Tiger have a few more things missing to be 
> covered, so i'm thinking of separate replacement libraries for them.
>
> It would be possible for all this to be included in a Portgroup, or even by 
> default in the Macports source.

I don't know what the cleanest approach would be, but I like the idea.
I can imagine a PortGroup, something in the spirit of:

    PortGroup legacy 1.0
    legacy.support darwin 10
    # legacy.support {darwin < 11}

which would add a dependency and append the necessary flags for darwin10.

(The library could be built statically.)

Mojca

Reply via email to