[OT] Apple + OpenSource (Was Re: [PATCH] More cleanup + bugfixes)
[OT] Apple + OpenSource (Was Re: [PATCH] More cleanup + bugfixes)
- Subject: [OT] Apple + OpenSource (Was Re: [PATCH] More cleanup + bugfixes)
- From: Jeremy Huddleston <email@hidden>
- Date: Fri, 16 Nov 2007 11:26:25 -0800
I just wanted to make a quick response to Rich's statement as both
someone who doesn't get paid by Apple* and someone who's been an open-
source user for over 12 years and open-source developer for over 7.
I am very grateful for Apple opening up its development of Xquartz to
the community. Previously with X11 and still with other open-source
components of OS-X, the development was all done internally and just
released as tarballs full of upstream distfiles and apple patches.
This is quite annoying as we can't track individual changes (even now,
I wish the old X11 was available to me via cvs or similar, so I could
dig through changes). Apple *HAS* been good about pushing their
changes into upstream, and for that, I am grateful... and to be
honest, most of the upstream code runs as-is on OS-X now, so the
volume of Apple-specific patches is pretty small.
Now, on the flip side lies Apple's proprietary applications like
iLife, iWork, QuickTime, Mail.app, etc. These are why you pay for OS-
X, and if they were open-sourced, let's face it, we wouldn't pay for
them. Apple has made it fairly easy for a developer to extend many of
its applications (like with Mail.app's common PGP plugin). I think
Apple is doing a great job at blending proprietary components with
existing open-source technology.
--Jeremy
*: <shameless_plug>I'm a graduate student (read: poor). Donations are
greatly appreciated (paypal to email@hidden) and affect what
I spend my time on. If you really want something fixed, you can wait
for someone to get to it, send a donation to persuade me to work on
it, or contract me outright (contact me offlist).</shameless_plug>
On Nov 16, 2007, at 10:26 AM, Rich Cook wrote:
And kudos to Apple for allowing at least this project to proceed
like this. The more open Apple can become, the more its
technologies can grow. For example, if they would open-source
Mail.app, Safari, etc. they might really become awesome. As it is,
they are very stagnant. But X11, look at it go! Whoopie! :-)
On Nov 16, 2007, at 12:46 AM, Jordan K. Hubbard wrote:
I just wanted to jump in here really quick and give Jeremy some
much-deserved kudos for stepping up and helping like this - it is
precisely what I was referring to when I said that community
involvement could and would make a real difference vs simply
expecting Ben to do everything. Already, we have a number of
fixes that we wouldn't have otherwise and Jeremy has also provided
some tools to help people track and install Ben's unofficial
updates, which is great.
Thanks, Jeremy!
- Jordan
On Nov 16, 2007, at 12:09 AM, Jeremy Huddleston wrote:
Here's another patch to further the codebase cleanup.
1) Fixed a bug where XQUARTZ was #defined when auto but not when --
enable-xquartz
2) Cleaned up missing #includes and function prototypes.
3) Fixed some invalid C syntax problems
4) Removed a bunch of dead code
5) Cleaned up code to prevent some warnings
6) Bugfix in xpr/x-hook.c - looks like someone just forgot to
finish writing code for hook_remove()... I only noticed it because
gcc -Wall complained about reaching the end of a non-void
function... lucky for us gcc is smarter than we are.
http://cloud.cs.berkeley.edu/~jeremy/X11/X11-XDarwin-Cleanup.patch
There are two compile warnings remaining that actually concern me
as potentially bug-causing, but I haven't looked into them enough
to fix them. Here they are if someone cares to investigate:
quartz.c: In function ‘DarwinModeInitOutput’:
quartz.c:168: warning: passing argument 1 of
‘RegisterBlockAndWakeupHandlers’ from incompatible pointer type
quartz.c: In function ‘DarwinModeProcessEvent’:
quartz.c:467: warning: passing argument 1 of
‘RootlessNativeWindowMoved’ makes pointer from integer without
a cast
---
The RegisterBlockAndWakeupHandlers warning is weird. Here's the
offending call:
if (!RegisterBlockAndWakeupHandlers(QuartzBlockHandler,
QuartzWakeupHandler,
NULL))
Looking at include/scrnintstr.h, we see the types need to be:
typedef void (* ScreenBlockHandlerProcPtr)(
int /*screenNum*/,
pointer /*blockData*/,
pointer /*pTimeout*/,
pointer /*pReadmask*/);
typedef void (* ScreenWakeupHandlerProcPtr)(
int /*screenNum*/,
pointer /*wakeupData*/,
unsigned long /*result*/,
pointer /*pReadMask*/);
but BOTH are the wrong type as we look in quartzCommon.h:
void QuartzBlockHandler(void *blockData, void *pTimeout, void
*pReadmask);
void QuartzWakeupHandler(void *blockData, int result, void
*pReadmask);
They don't have ScreenNum. Changing the prototypes to match
scrnintstr.h (by adding int as the first arg and changing int
result to unsigned in wakeup) causes the compiler to complain
about BOTH arguments. I am befuddled and give up for now.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list (email@hidden)
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list (email@hidden)
This email sent to email@hidden
--
✐Richard Cook
✇ Lawrence Livermore National Security
Bldg-453 Rm-4037, Mail Stop L-557
7000 East Avenue, Livermore, CA, 94550, USA
☎ (office) (925) 423-9605
☎ (fax) (925) 423-6961
---
Information Management & Graphics Grp., Services & Development Div.,
Integrated Computing & Communications Dept.
(opinions expressed herein are mine and not those of LLNS)
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list (email@hidden)
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list (email@hidden)
This email sent to email@hidden