I have been drafting an 'Ideas' post about the following idea, but it's not done yet and this looks like as good a place as any to look for some early feedback. This might not have as much clarity as I'd like.
The general idea is to have a site that can track various projects that release their own copy of GPL (especially, but other licenses as well) software. So Apple ships their version of {bash, etc.}, and so does your router, and someone else's refrigerator. And this site ("GPL Hub?") just links to all the places that are hosting their own version of {bash, etc.}. Maybe it could even show how they've diverged, although that might not be so easy.
Recently it has become very trendy to host all code in one centralized location like GitHub. But GitHub isn't really that great at showing you the "forks graph" anyway. Many companies that ship GPL code have archives like this available on their own websites. This could help increase visibility and give users an easier time finding the source code. I'd love to know how many copies of different GPL projects are out in the wild. Maybe for the companies that don't publicly host their GPL code, someone who makes a successful GPL request could share the code on this same site.
Those are some of the ideas, I'd still love to finish the post sometime but it's a bit too vague for me to say anything concrete yet. Any direction to related works or explanations of why this is a bad (or good) idea would be much appreciated!
I really like the idea. Where free licenses are concerned, I believe this would help “cross-pollination” among projects and facilitate the progress of open source.
It could also work as a (perhaps curated) reference. Sort of like Rosetta Code, but for more high-level features – “how have projects X and Y chosen to implement this feature?”
Besides, it could serve an archival function. A quick search on the web reveals a couple of projects on this vein, but they tend to rely on storing official releases. The way I see your idea, it could be made to work in a way closer to what archive.org does for the web, archiving everything it’s permissible to, with the addition of meta information about the projects, their relationships, etc.
Not a small undertaking, but a very inspiring one!
That sounds like a pretty good idea. What about using this as a central place to track GPL violations? I have a feeling that there are quite a few products out there in the wild that use GPL software but don't confess to it. Maybe a site like this could persuade them to become compliant with the license.
They are never releasing the full source code. Apple strips the ARM architecture, blocks of code for features they do not want to be open source, and the internal documentation before throwing these dumps over the wall.
Here are some hints of what they are doing to process the original sources:
Okay, right. I was mislead as all commits use a different author (opensource-apple is only the committer), so the activity graph on the profile is mostly empty.
Avie was one of the lead developers of Mach at Carnegie Mellon as well, so his legacy extends beyond macOS and NEXTSTEP.
But I'd argue that beyond code, probably his most important Apple role was establishing a steady release schedule. After the disasters of the Pink (later spun off as Taligent), Copland and Gershwin megaprojects, Avie managed to get Apple to focus on making small steady releases.
And while MacOS X was a megaproject, it too was released in steady steps: Rhapsody, Mac OS X Server 1.0, MacOS X Public Beta and then finally Mac OS X 10.0
Long time ago, they used to also publish a bootable ISO of Darwin + all of those OSS packages.
They did publish an updated Darwin core / kernel a few releases back, but it seems to be closed again.
Too bad, I think someone with some determination could have gotten am hypervisor based container tech running on this. Of course the test would not run, but APIs shims could have made whole software compile (but not link). This in itself would have been very useful for a lot of people. Being able to compile in a container then link in the "real" macOS could also have been implemented, making this much more useful.
Both the Windows Server 2003 x86 and the Windows XP amd64 kernel source code have been available for academic purposes. They are governed under the WRT License, which forbids re-distribution outside of the academic use. But yes, MS provided that source code with full documentation on how to build and debug each kernel.
I've built the WinXP kernel a few months ago just for nostalgic purposes, here's a VM running the custom kernel with a KDBG hook on NTQSysInfo [1]. The neat thing is that you can debug on the system itself, or via a serial port.
I also know that some people had success merging the /base/ code from the above licensed kernel (but the x86 version) and the leaked WinNT4 code. One even got so far as to manage a recompile of the NT setup, building a custom NT OS from scratch. Though that's violating the WRK and NT license left and right.
You're talking about cool things, no doubt about it, but code made available for academic purposes only is still not open source.
This isn't just pedantry, we are scientists from different countries, with many of us having learned English as a second or third language (I'm from Romania, hi), so it's better to be precise in language.
And in this instance "open source" is a good term to be precise about, because the OSI definition specifies exactly what you can and cannot do with it. And in particular (1) you can use it for any purpose, even for evil ones and (2) you can fork it and modify it in any way you wish.
So when I hear "open source", I don't have to go and read the license and validate that these requirements are true, because OSI has already done that for me and they have lawyers that know how to read licenses. This saves me time, headaches and money.
And academic, non-commercial licenses do not qualify. Microsoft itself has introduced an alternative term for such academic, non-commercial licenses and I think it's a good one: Shared Source. Lets use it.
> So when I hear "open source", I don't have to go and read the license and validate that these requirements are true...... This saves me time, headaches and money.
Most of us have some vague understanding about Licenses.
Eg: MIT/X11 specifically says "...FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT..." but it is "open source"
That is, if you earn too much money from some MIT License software, the author itself is free to sue you the way he/she can (eg, patents). One example could be dotNet from M$.
So better stick to software pieces that are licensed under GNU [A]GPLv3 or Apache v2 (If you care patent issues). Also, note that you can trust "free software" guys more than "open source" ones.
edit: Also note that this can also be a reason why Apple didn't update any GNU packages once they were relicensed to GPLv3+. (The main reason could be the GPLv3 requirement that the user should be able to replace the software if [s]he wish to. Apache doesn't have this requirement, and Apple used that for swift)
> the author itself is free to sue you the way he/she can (eg, patents). One example could be dotNet from M$.
That's not actually true. In law, at least in the US, there's such a thing called Estompel [1], and licenses like BSD / MIT do have an implicit patents grant [2], unless the software is also accompanied by an explicit patents license (like Microsoft is doing), in which case that license takes precedence.
Of course, you can't be totally safe with an implicit patents grant, because its applicability depends on jurisdiction, plus it's always unclear if you can also count on it for derived works, etc. But then again, this is why GPL v2 is still safe. Remember that the Linux kernel is licensed under GPL v2? So what, are we all screwed?
> note that you can trust "free software" guys more than "open source" ones.
With all due respect, but many "free software" guys tend to be zealots and I can't take them seriously anymore. Not when the FSF starts doing stupid shit, like preventing Emacs on MacOS from supporting emoji just because the "free operating systems" would be at a disadvantage. Talk about crazy.
Also, in my opinion AGPL does not pass the OSI definition and it was probably accepted only because it would have brought out the crazy, but that's a personal opinion.
The complete disregard for any legalities has certainly resulted in some very interesting and even useful software. It reminds me of the (largely Asian) community that formed around modding/hacking/cracking Windows in various ways, and the products that resulted: CDs and DVDs with a dozen different versions of Windows on them, liveCD/USB/DVDs, and chimeric combinations of OSes. If I remember correctly, Vista and later had significantly increased the number of integrity checks in the OS, arguably for security reasons, which made this sort of experimentation more difficult; but in the 2K/XP/2K3 days, it was pretty open.
Those in the scene may recognise the names Roy and Wengier, 911cd, and the China DOS Union.
OS X and Mac OS X 10.0-10.6 _ARE_ open source. Most services (including Quartz, the display server) are not. macOS could be once there is a new code drop, if they ever bother.
I meant "open sourced". I was being sarcastic. I "absolutely love" how literal all of you are. See that? I used quotes that time. Happy F'ing Thanksgiving.
I’m similarly displeased with the disappearance of the pthread subsystem in 10.9! I had to debug quite a nasty kernel bug, and was absolutely surprised when I discovered that all pthread syscalls are now stubs into a private kext.
I have some short USB 2.0 extension cables that I use to plug between the Macbook and USB 3 devices - to reduce them to USB 2.0. Because if I for example try to copy more than a few MB to a USB 3 external HD, the Mac freezes. Every single time. So that's working well then.
Try different powered hubs. Last week I discovered a USB key that eats so much power it won't run without a powered hub! Numerous external hard drives and optical drives are in this camp, too.
'macOS' is just too much of an affectation to ask for in styling capitalization. You'll notice a lot of people resisting it, defiantly writing 'MacOS'.
I dunno, it's hard to get better search ability than what we had with "osx". Among other things, there are a lot of code bases with Mac OS 9 code hanging around in directories named "macos".
Sure, but it was nearly always just referred to as "OS X", so the official renaming in 2012 was just moving it in line with how people already referred to it.
No resistance is overstepping, as far as I remember a few had a hard time foregoing iPhone OS initially. But that's maybe not what you're talking about.
I develop Mac software and support my software via email. The problem I always had with "OS X" is that users who don't know what an "OS" is, didn't seem to parse "OS X" at all (they would reply back as though it didn't appear in the sentence). They certainly didn't associate it with their Mac – apparently thinking it was just some weird sigil that the geek in the internet computer machine had included for no reason. I always had to say "Mac OS X Lion" (or whatever the big cat name of the year was) to get any level of understanding.
"macOS", for all its initial lowercase goofiness is at least understood by most users.
I always thought it was pretty clear to say "os ecks" myself, but I've heard internally / correctly people say "oh es ten". It's hard to break the habit after 5+ years though.
It was never really meant to be "OS 10", despite what the 'correct way' to say it was. Pure marketing.
If it was really meant to be "OS 10", then they wouldn't have versions like "OS X 10.6", they'd just have "OS X.6" or "OS X.VI". How many people do you hear saying "OS ten ten point six"?
I think he meant that it was not supposed to be "Mac Oh Es Ten Ten Nine Two", but rather "Mac Oh Es Ten Nine Two" when referring to Mac OS X 10.9.2. Do you think people said "Mac Oh Es Nine Nine One", or "Mac Oh Es Nine One" for Mac OS 9.1?
I think you write (and say as /ten/) "X" as the major version if you're also using the non-numeric minor version: "Mac OS X Snow Leopard"; but you omit it when using the numeric minor version so as to also use the Arabic major version: "Mac OS 10.6". You say /ten/ either way and never twice.
People seem to quite commonly write "Mac OS X 10.6", which duplicates the 10. News articles and Wikipedia included. I don't remember what the machines themselves reported, though. I don't have anything pre-Sierra anymore.
One issue with the "OS X" name was that you have to use a non-breaking space (alt+space) between OS and X to prevent awkward line breaks in the middle of the brand, which in turn made it harder to search for "OS X" in dumb text editors.
Is there a functional, recent way to build this on VirtualBox and use it for cross-compiling command line and server apps for Mac OS (macOS/X whatever)?
No IO80211Controller (the bane of all Hackintosh developers...) either, but not surprising since Apple are probably only open-sourcing code that they are legally obligated to by license, or for which they feel the release of "doesn't negatively affect their core philosophy and business model", to use a vague yet suitable phrase that I've heard of as justification for other source releases.
Either they don't want to release it or they can't (a third-party contract/NDA), at least right now. Open sourcing is often seen by big-businesses as potentially "helping" competitors undermine, replicate, sue, make interoperable wares which may threaten the "Golden Goose." It sucks, but that's the situation... lawyers can't force them to release other code unless they're caught TiVoizing some GPL 3 code or something similar.
You'd think Apple would want to invent the next cool kids bandwagon, maybe invite some community goodwill and crowdsource maybe some new features like fixing time synchronization to have a high-precision ability or working on another actual replacement for HFS+, or adding Windows compatibility. Maybe developer pressure could sway them, and wouldn't it be a good PR move to eventually relent after a long, drawn-out public debate which buys some time for the Apple Car or whatever else is cooking next to be readied? Ive and Cook have massive shoes to fill, which they and the Apple team helped fill, but many people don't think that right now, at least not yet.
The majority of open source is crap, like 80% of it. People build what they need and forget about it. Often the code has no cohesion to the rest of the project and often it is of poor quality. Not to mention the ego's and lack of sociability of most projects.
Apple didn't become the most valuable company by following that principle. Instead it took the approach of an egotistical maniac who demanded perfection and required that all the pieces fit together as part of an elegant puzzle. No small feat and not really replicated today -- except for Tesla and SpaceX.
If I'm missing something, please name one other company today has has a "hit" product that unanimously loved (aka has insane sales and really high ratings) to the extent of the iPod, iPhone, Model S, etc..
Furthermore, I'd challenge you to name one open source project that can be shipped AS-IS as a product. Don't even say the Linux kernel, that has like what 2% market share?
No doubt the majority of HN folks are sharp but there is a huge lack of emotional intelligence. I've found this at many tech companies except Apple. Even when talking with Apple engineers I find myself talking to another HUMAN who happens to appreciate technology and understands it isn't the be all end all. Its sad to see such a company lose it soul but it was inevitable.
Disclaimer: I'm a kernel developer and contributor.
> Don't even say the Linux kernel, that has like what 2% market share?
87% on mobile. Surely majority on servers. Lots in routers etc.
I don't reslly see your point, though. If something is available for free, obviously it won't sell a lot. If that must be your definition of success, it seems you just have a preconcieved notion.
Also, ovviously 99 % of all open source is garbage. But who cares? No one is forcing me to use it all.
> Furthermore, I'd challenge you to name one open source project that can be shipped AS-IS as a product. Don't even say the Linux kernel, that has like what 2% market share?
GitLab. Postgres. Atom. Docker (debatable). I could go on, but to be fair I am a bit of a hoarder of interesting oss.
Re the Linux kernel: isn't it way higher than 2% if you count commercial and industrial usage? Also Android devices.
He was referring specifically to Android's use of the Linux kernel. He was not calling Android "Linux", though I think doing so would be fair in a general sense.
> Don't even say the Linux kernel, that has like what 2% market share?
How are you a kernel developer and then go on to only count desktop and laptop installs? Linux installs dwarf the other major kernels. Not big on desktop, but big on servers, embedded, and mobile.
Most of everything is crap including user contributed comments, fitness to be shipped as someones product is a bizarrely narrow criterion for fitness, and emotional intelligence is a nebulous term with little meaning and less relevance.
> Instead it took the approach of an egotistical maniac who demanded perfection and required that all the pieces fit together as part of an elegant puzzle. No small feat and not really replicated today -- except for Tesla and SpaceX.
Off topic, but Tesla and SpaceX are definitely not "egotistical maniac who demanded perfection and required that all the pieces fit together as part of an elegant puzzle"
> You'd think Apple would want to invent the next cool kids bandwagon
They don't care. Objective #1 is selling more iDevices. Objective #2 is selling more iDevices. Objective #3 is selling more iDevices. Everything else is a mean to that end. Take Swift: it only exists to make it easier to build iOS apps, so that they can sell more iDevices. APFS is being introduced so that flash-based systems can work better, so that they can sell more iDevices. And so on and so forth.
That's an admirable level of focus, mind; just don't expect they do anything because it sounds cool to geeks - Apple just doesn't work like that.
It's included so the there's a nice editor in Terminal by default (yes, I'm just kidding, I know vim is there). It's so old because it's the last version of Emacs released under version 2 of the gpl (and Apple hates version 3). It's the same reason the default Bash is so old.
Bash defaults to Emacs keybindings which also work throughout macOS since it began in the NeXT days. It is included because on macOS it is the universal text editor.
I am new to macOS and I was just recently surprised by that - noticed Ctrl+k worked in some un-expected places like a plain text box widget (not in emacs). I thought it was a nice touch.
Having had to gather licenses for such legal teams, in corporations that never contributed a single comma change to any of the code they take for free, I bet in around 10 years FOSS advocates will start to miss the GPL.
I originally intended to point out more how people who use and invest in Mac OS X and claim they are for FSF are, in some part, contradicting themselves.
It was the default editor of the Apple (NeXT) Darwin UNIX distribution. Given how much effort they have put in this list in the last 15 years, I guess it just wasn't curated much unless legal said to do so.
Publishing the source like this is risk management for a company. By doing this they don't risk having to receive, vet and process 100's of requests for source at a random time - which could use up their legal department's resources at the wrong moment.
No. They're distributing the binaries, so they have to provide the source code to users of the binaries on request. Publishing it like this satisfies that requirement.
I think you're mixing up the two options that GPL provides. My understanding is that you can either limit your distribution of source to the same parties to which you provide binaries (by "accompanying" the binary with the source), or you can require a request, but you must accept such requests from everyone.
I think Apple is missing out on both a lot of goodwill but also overall progress of their Unix core by being so closed.
Instead they should actively contribute source-code to the BSD-ecosystem. Apple has a lot to gain long-term from the BSD-ecosystem being healthy.
Also, the whole Hackintosh thing is completely overblown. So what if some intrepid coder gets it running on a non-apple machine. It won't affect their sales the tiniest bit.
Having seen the Apple open source pages before, it was what I expected but even so I agree; with OP title it sounds like macOS 10.12 is open source in its entirety.
I suggest editing the title to the following: "Open Source Components of macOS 10.12"
That code is not there in order to be useful to someone.
It's there to meet the liabilities that they have through the licenses for the used open source software. These licenses often say that if you use the software you also need to allow the public to retrieve it. Even more so if you make modifications to it.
That's only true of GPL'ed components shipped as part of Mac OS X/ OS X / macOS. A vast majority isn't - some are BSD and most are Apple originated software under an Apple Open Source License (APSL)
Yeah, that might be true. But if you are a big organization you probably want to have a standardized process on how to handle third party open source software (how to document it, where to store it, etc...).
You can build the code. Might take a little monkeying around with your build environment, but each program should be buildable.
I'm not sure what you think "open source" is or needs to be. We were passing around tarballs over ftp for almost all of our open source software in the past.
I would agree that there are obviously ways in which Apple could participate more in many of the open-source projects they use, but I don't really buy your point - it's literally source code which is open!
The idea is for Apple to release the source for components that are included in macOS, and the license requires publication. There is no obligation (or, I would argue, expectation) to do anything more.
Well. Okay. What I really meant to say is that Open Source - to me at least - can really call itself Open Source if there is a collaborative effort to maintain the code, ideally through a version control mechanism.
For example, Android is not Open Source to me because the code is dropped after the fact.
I find the code very useful. I've checked the Core Foundation sources numerous times when I wanted to know how something was implemented. Apple's documentation is sometimes lacking, and it's great when you run into a problem and you can just read the sources.
Unfortunately, CF is always released pretty late (it's "coming soon" for months), and it would be nice if much more was Open Source.
But I'm happy about every bit of code that's public!
You are right; I should have posted more of an explanation.
I am a longtime Mac user who has grown disenchanted and I suspect I am one of many.
After the back-toback announcements of the new Surface Book and the new Macbook Pro, I felt like maybe Microsoft was the more geek-friendly company and that their product was a higher end product that would meet my needs better.
So, I bought a Surface Book today and I am kind of nervous about the change.
This post happened to be the first thing I saw on HN while I was setting up the new machine.
That still may not be a constructive addition to THIS thread, but at least it isn't just brand religion.
Microsoft gave me one at the end of my internship.
It is ok. It feels really clunky when compared to a MacBook but overall I would give it a thumbs up. My biggest complaint is that it is really back-heavy, so it wants to fall over whenever I sit it on my lap. Also, the docking station has a lot of weird issues (e.g., it will just stop working sometimes if it goes to sleep until I unplug it from the wall).
I am a little nervous about this switch, but it is definitely a high quality machine with solid attention to detail.
Also, Windows 10 seems pretty solid.
I have a long way to go, but I am hoping that I can use the Thanksgiving break to get over the hump and be relatively productive when I get back to the office on Monday.
I am pretty committed to making the switch though. I am taking notes in case the transition is worth sharing later.
I am reluctantly thinking of jumping ship too. What is keeping me back is that, I remember, a little while after Windows 10 was released, there was a scandal because it sent users' data back to Microsoft, disregarding privacy settings. I haven't followed the story too much since, and could not find anything saying the issue was "fixed". Does anybody know how the story ended?
Just this Tuesday I could observe, what happens when Google is down (their routers were throwing away packets from Prague peering).
So, without further ado:
- obviously, services like Search, Youtube, Gmail are unavailable. That includes searching from the address bar in your browser ;)
- people, who have their DNS set to 8.8.8.8 should reconsider their settings,
- too many web pages use assets hosted on Google CDN, including analytics or fonts, and when unavailable, the pages will load very slowly, waiting for timeouts from CDN.
- Android phones will say, that Internet is unavailable, even if it is.
It doesn't contain the bug tracking, the wiki or the project sites. It doesn't include the team organization and access control. It doesn't include the bot integration. And it doesn't include the merging workflow that people are really starting to rely on.
I get really annoyed by comments like this. The comments was that there may be a systemic risk. Pointing out that there are mitigating controls available is simply not sufficient to refute the concern. To refute it you'd need to show that enough repos do have sufficient backups and are capable of recovering adequately from the loss of github.
If I asked a colleague at work if a project was properly backed up and they said 'well there's an enterprise backup solution that is appropriate for it', I'd metaphorically kick their but into next week. I'd want to know that they are actually backing it up and that the backups have been verified, not that they could be backing it up.
If you'd said something like 'there are options available to mitigate the loss of github and projects should be taking advantage of them, and here they are' that would be a good and useful comment, but I don't think a practical concern can be reasonably dismissed with a theoretical counter. I find it dismissive and lazy.
The point is the risk is the same as it's always been and the mitigation steps are the same. And that git mitigates some of the worse effects naturally.
If project sites were still mostly individually hosted using a wider variety of services and software, then a single outage wouldn't be a big deal.
Now, an outage at github would be difficult because you would not only have to get your stuff available again, but you might also have to track down a long list of dependencies that are also hosted at github.
The general idea is to have a site that can track various projects that release their own copy of GPL (especially, but other licenses as well) software. So Apple ships their version of {bash, etc.}, and so does your router, and someone else's refrigerator. And this site ("GPL Hub?") just links to all the places that are hosting their own version of {bash, etc.}. Maybe it could even show how they've diverged, although that might not be so easy.
Recently it has become very trendy to host all code in one centralized location like GitHub. But GitHub isn't really that great at showing you the "forks graph" anyway. Many companies that ship GPL code have archives like this available on their own websites. This could help increase visibility and give users an easier time finding the source code. I'd love to know how many copies of different GPL projects are out in the wild. Maybe for the companies that don't publicly host their GPL code, someone who makes a successful GPL request could share the code on this same site.
Those are some of the ideas, I'd still love to finish the post sometime but it's a bit too vague for me to say anything concrete yet. Any direction to related works or explanations of why this is a bad (or good) idea would be much appreciated!