Reinstate support for OS X versions older than 10.9

2015-09-22 Thread Ryan Schmidt
Hello, I'm the maintainer of glib2 in the MacPorts package management system.

glib 2.46.0 was recently released, and attempting to configure it produces this 
error:

checking OSX version >= 10.9.0... no
configure: error: OSX version is too old!

glib 2.45.2 and earlier worked fine on older versions of OS X, but 2.45.3 and 
later claim to require 10.9.

My understanding is that the implementation of GNotification support for OS X 
[1] necessitated this increase in minimum OS version. But this huge jump in 
minimum OS version makes glib unusable on hundreds of older Mac models [2] that 
cannot be upgraded to OS X 10.9 that were previously able to use glib. I urge 
you to reconsider this action and reinstate support for older versions of OS X 
by making the GNotification support optional. Clearly, since GNotification 
support was just added, no existing apps that used glib and that already worked 
on OS X can have required this functionality.

I originally expressed this concern in the issue tracker [1] but was advised to 
bring it up on the mailing list for discussion instead.

In response to my comment in that ticket, doubt was expressed as to the 
usability of glib on older systems, even prior to this. I can at least tell you 
that Graphviz, which uses glib, worked fine all the way back to OS X 10.4, 
which is the earliest system I tested. I'm happy to run your test suite on 
older systems and report bugs for any problems found.


[1] https://bugzilla.gnome.org/show_bug.cgi?id=747146

[2] http://www.everymac.com/systems/by_capability/maximum-macos-supported.html

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Reinstate support for OS X versions older than 10.9

2015-09-22 Thread Ryan Schmidt

On Sep 22, 2015, at 6:32 PM, John Ralls wrote:

> I’m a bit conflicted about this. Yes, 10.9 is a bit new for a cutoff, but on 
> the other hand upgrades to 10.10 are free and run on any machine that can run 
> 10.7

Per the EveryMac URL I posted, in addition to older PowerPC Macs that cannot be 
upgraded past 10.4, newer PowerPC Macs that cannot be upgraded past 10.5, and 
32-bit Intel Macs that cannot be upgraded past 10.6, there are some 64-bit 
Intel Macs that cannot be upgraded past 10.7.

Further to that, there are users who do not wish to upgrade their OS, even if 
their machine can support it. They may have any number of reasons for that. For 
example, 10.6 is the last OS that can run PowerPC applications on Intel 
systems; a user may have PowerPC software they wish to continue using. Or a 
user may dislike the significant user interface changes Apple made in 10.7 or 
10.10.


> There’s always the option of sticking with the last releases of GLib and Gtk+ 
> if you want to build/run on older machines.

Considering the options we have in the MacPorts package management system, the 
possibilities I see are as follows:

- Keep glib2 at version 2.44.1 until all MacPorts users have upgraded to OS X 
10.9 or later. This will not occur for years if ever. We still have MacPorts 
users today that use OS X 10.4.

- Upgrade glib2 to version 2.46.0 now, thereby preventing users on OS X 10.8 
and earlier from using all the software in MacPorts that depends in some way on 
glib2.

- Add conditional logic to the glib2 port to use 2.46.0 on OS X 10.9 and later 
and 2.44.1 on OS X 10.8 and earlier. This might be viable. Some other MacPorts 
ports for other gnome software is already doing something like this. But it is 
more complicated for the port maintainer (me) and it might break some use 
cases. For example, it is possible to build *on* 10.9 *for* 10.8; such an 
attempt might fail with 2.46.0.

- Change glib 2.46.0 so that it can be built without GNotification support on 
older systems. This is what I'm asking for.


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Reinstate support for OS X versions older than 10.9

2015-09-23 Thread Ryan Schmidt

On Sep 23, 2015, at 1:04 AM, Nirbheek Chauhan wrote:

> Just to add to this, GStreamer 1.x currently supports OS X 10.8, so it
> would be great if GLib continued to support at least that. Support for
> older versions should, I suppose, be welcome as well since Ryan says
> he's willing to maintain it. :)

To clarify what I mean when I say I am the maintainer of glib2 in MacPorts: 
that title means that I have declared myself responsible for keeping glib2 in 
MacPorts updated and working, and will try to report issues to the developers 
for them to resolve. It doesn't mean that I know anything about the glib 
codebase, nor that I am even a competent C programmer.


On Sep 23, 2015, at 5:14 AM, Bastien Nocera wrote:

> I don't think that making new APIs do nothing, or ABI changing between
> OSX versions is a good idea.

I'm not familiar with what constitutes API or ABI in the context of glib, but 
the fact is that prior to 2.46.0, GNotification support did not exist in glib 
on OS X, therefore all the existing software that successfully used glib on OS 
X didn't care about that missing support.

> You might want to work on adding support
> for another notification sub-system (I don't think that OSX had one
> builtin before 10.9, or without the needed feature), such as Growl.
> Then make GNotification choose which one to use at run-time.


As I understand it, that would mean that the build system would have to be 
modified to detect if Notification Center support exists at build time (i.e. if 
the OS X 10.9 SDK or later is being used), and would weak-link to it if found. 
The code would check at runtime if the symbol exists (i.e. if we are running on 
OS X 10.9 or later), and if so it would use Notification Center. I would be in 
favor of such changes.

I also have no objection to Growl support being added as an alternative. But 
since Growl is a third-party product, I predict that most users do not have it 
installed. So glib would need to accommodate the case of neither Growl nor 
Notification Center existing.


On Sep 23, 2015, at 5:47 AM, Emmanuele Bassi wrote:

> For instance, supporting MacOS 10.8 would give us about 80% of the
> installed users base for MacOS; going back to 10.7 we'd reach about
> 90% — and after that we enter the land of diminishing returns. Those
> figures are not going to get better in the future, either. Strict
> support cut offs and free updates push OS upgrades forward. Also, I'd
> like to point out that the oldest Apple-supported OS version is 10.8
> (at least for security updates).

Citing percentages ignores the fact that there are real actual users on OS X 
10.8 and earlier currently using software that requires glib, and that these 
real actual users will not be able to use the current version of glib anymore. 
This leaves the distributors of that software (which might be a package 
management system like MacPorts, or it might be the developers of the software 
themselves, in case they distribute their own binary packages) to decide 
between staying with an older version of glib (which may contain bugs that have 
already been fixed in newer versions of glib), or else upgrading glib, thus 
alienating the users of older systems who then have to use older versions of 
the software which may itself have bugs already fixed in newer versions.


> The API for sending notifications via GApplication cannot
> programmatically fail — but the documentation helpfully says:
> 
>There is no guarantee that the notification is displayed
> immediately, or even at all.
> 
> Which at least gives us some leeway in not supporting platforms that
> do not have system notification API.

Sounds great: if Notification Center support is not available at runtime, then 
simply do nothing.


On Sep 23, 2015, at 9:53 AM, Nicolas Dufresne wrote:

> That I agree. If the supporting companies for these proprietary OS drop
> support for stuff removing and remove it devkits while making older
> devkit no longer available, it will be hard for us to keep up (and a
> waste of our time most likely).

I'm not certain what you mean. Certainly, Apple stops releasing new versions of 
Xcode for old OS X versions at some point. But there is nothing preventing a 
developer from setting up an older Mac with an old version of OS X and 
downloading the corresponding old version of Xcode from the Apple developer web 
site.

You don't even necessarily need an old Mac: you can use Parallels or VMware 
Fusion or Virtual Box on a new Mac to run a virtual machine of an older version 
of OS X.

You don't even need to go that far to test the build side of things: on a 
current Mac with the latest version of OS X (10.10.5), I can download an older 
version of Xcode (5.1.1) which contains the older 10.8 SDK. I can build glib 
2.46.0 with the 10.8 SDK in that older Xcode (thus somewhat simulating what 
would happen if you were to build on a 10.8 machine) to cause this error to 
appear:


  CC   libgio_2_0_la-gcocoanotificationba