Opened 7 years ago
Last modified 7 years ago
#54540 new submission
HoRNDIS
Reported by: | chicagotripp (Altoine Barker) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ndiscreet@…, ryandesign (Ryan Carsten Schmidt) | |
Port: | HoRNDIS |
Description
I am working on a port for the HoRNDIS
project but I have come across 2 problems. First problem is that I don't know how to create a port that can decide on based or whether you are on a PPC or Intel, it will pick the project to build for that architecture.
The second problem is that after Mac OSX 10.10
, the program is currently broken to work on El Capitan
or Sierra
because of the changes that broke the build. 10.11 and above no longer has IOKit/usb/IOUSBBus.h
in the kernel. That matter is being worked on now but is currently unavailable. Here is the portfile I have as it will work on 10.10 and before. In order to work on PPC the project would have to change the name from HoRDNIS to HoRNDIS_PPC
.
I will need to have this Portfile use Xcode 7 or earlier until the fix is had. I felt the PPC users and others should not have to suffer in the meantime.
Attachments (3)
Change History (8)
Changed 7 years ago by chicagotripp (Altoine Barker)
comment:1 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign added |
---|
I'm attaching a revised Portfile that among other things corrects the PowerPC issue you noted.
I haven't tested it, other than to verify that it does not build on Sierra.
I changed the advertised version from "rel8" to "8". If you don't feel that's correct, we can change 8 rel
to rel8
in the github.setup
line to put it back.
Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
Attachment: | Portfile.2 added |
---|
comment:2 Changed 7 years ago by chicagotripp (Altoine Barker)
You are my hero. I am glad to learn of another and better way to do that. I ran that new Portfile and noticed that the checksums changed. I am not sure if that is the same. I looked further and saw that the file size is different:
-rw-r--r-- 1 macports wheel 40393 Jul 28 07:22 HoRNDIS-8.tar.gz -rw-r--r-- 1 macports wheel 40379 Jul 27 22:29 HoRNDIS-rel8.tar.gz -rw-r--r-- 1 macports wheel 40379 Jul 27 19:32 horndis-rel8pre2.tar.gz
The checksum changed to:
checksums rmd160 4c7358b4ef51bf6ba07a74b1047fea677b57bab4 \ sha256 11361e2d422ce46ae9183261514459a51fe886045195f4ec2bbeb7cfd4ff0e80
I run a diff -rq jwise-HoRNDIS-920d799 jwise-HoRNDIS-7a95feb
and there is no difference: no output. Both share the same file dates of October 16, 2016 at 1:31am. I guess it is good. I am sending the updated checksum changes.
Changed 7 years ago by chicagotripp (Altoine Barker)
Attachment: | Portfile-checksum-diff added |
---|
Portfile unified diff file of checksum change.
comment:3 Changed 7 years ago by raimue (Rainer Müller)
GitHub will generate tarballs with different names (and maybe also a different top-level directory) if you give it a different commit/tag reference. The changed checksums would be expected.
Will this port be useful at all for macOS 10.11 Yosemite and above, as the resulting kernel extension will be unsigned and thus cannot be loaded in the default configuration? As an example, for this reason the osxfuse port switched to distributing the pre-compiled and signed kernel extension from upstream instead.
comment:4 Changed 7 years ago by chicagotripp (Altoine Barker)
I apologize but I didn't know how to get it to work with it signed. You only have to change the xcode-configuration
from Release-unsigned
to Release
. I couldn't figure out how to get it to be trusted in MacPorts. I had intended to find a macport that had a solution.
The problem for Yosemite
and above is that Apple rewrote the kernel for the behavior for this program to work. Now, the group has to work with the workaround until they put up new code. This same program compiled on a system before Yosemite
is able to work on Yosemite
and beyond, but you can't build from source on Yosemite
and beyond and then expect it to work. A solution should be forthcoming.
comment:5 Changed 7 years ago by raimue (Rainer Müller)
I am aware of the policy change by Apple. The problem is that a self-compiled kernel extensions will never work on macOS >= 10.11 Yosemite. There is no code to handle this in MacPorts. The only option is to use a binary signed by upstream with a Developer ID certificate, that was granted permission to distribute kernel extensions. It cannot be signed locally on users' systems.
As an example, osxfuse has an extra complicated procedure as it will build the kernel extension for older systems from source. However, as these are considered legacy systems, providing a Portfile that supports only macOS >= 10.11 Yosemite by using the binary .dmg would be okay.
Portfile for HoRNDIS (horrendous)