Opened 10 years ago

Closed 10 years ago

#43614 closed update (fixed)

mupdf @1.4 update

Reported by: harciga Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: haspatch Cc: ryandesign (Ryan Carsten Schmidt), seanfarley (Sean Farley)
Port: mupdf

Description

I'd like to take ownership of this port too

Attachments (5)

Portfile (2.2 KB) - added by harciga 10 years ago.
patch-Makerules.diff (774 bytes) - added by harciga 10 years ago.
Portfile-mupdf.diff (1.4 KB) - added by harciga 10 years ago.
Portfile-mupdf.2.diff (1.4 KB) - added by harciga 10 years ago.
patch-Makerules.2.diff (726 bytes) - added by harciga 10 years ago.

Download all attachments as: .zip

Change History (18)

Changed 10 years ago by harciga

Attachment: Portfile added

Changed 10 years ago by harciga

Attachment: patch-Makerules.diff added

comment:1 Changed 10 years ago by seanfarley (Sean Farley)

Resolution: fixed
Status: newclosed

Committed in r119826. Thanks!

comment:2 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… sean@… added

In the future, please supply a unified diff of your portfile changes, instead of a complete new portfile.

Your new version removes the platform darwin 8 block. Did you verify that it builds correctly on Tiger without this block? If not, I can try it a little later on.

comment:3 Changed 10 years ago by harciga

Oops, sorry I forgot about the unified diff, been working on 3 new port submissions and I didn't think of it.

No, I didn't verify it on Tiger, I don't have access to it.

comment:4 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

So how did you decide to remove the platform darwin 8 block?

Also, you removed the code that caused the port to use -arch flags, so now it doesn't anymore. That needs to be put back. And a universal variant added, if possible.

comment:5 in reply to:  4 ; Changed 10 years ago by harciga

Resolution: fixed
Status: closedreopened

Replying to ryandesign@…:

So how did you decide to remove the platform darwin 8 block?

Should I put that block back? I removed it because I had no way to test it.

Also, you removed the code that caused the port to use -arch flags, so now it doesn't anymore. That needs to be put back. And a universal variant added, if possible.

So those are the arch flags you mentioned are required for all ports without configure? I'll put them back as well as on the other port submissions then.

I'll see what I can do about the universal variant Ryan.

comment:6 in reply to:  5 ; Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to starkhalo@…:

Replying to ryandesign@…:

So how did you decide to remove the platform darwin 8 block?

Should I put that block back? I removed it because I had no way to test it.

Well, that block was added to fix a build failure reported on Tiger in #33240. So unless something has changed, the block may still be necessary. I'll test on Tiger shortly and let you know.

Also, you removed the code that caused the port to use -arch flags, so now it doesn't anymore. That needs to be put back. And a universal variant added, if possible.

So those are the arch flags you mentioned are required for all ports without configure? I'll put them back as well as on the other port submissions then.

All ports that build architecture-specific software (and don't just install text files) should use -arch flags. If a port uses an unusual build system, then you have to add code to add those flags manually, i.e. by running [get_canonical_archflags] and putting its value wherever the build system understands it.

comment:7 in reply to:  5 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to starkhalo@…:

I'll see what I can do about the universal variant Ryan.

Once you reinstate the use of [get_canonical_archflags], adding a universal variant could be as simple as adding the line variant universal {} anywhere before the first time you call [get_canonical_archflags]. Or it may be that the reason we hadn't done that before is that there is some problem with building universal.

comment:8 in reply to:  6 ; Changed 10 years ago by harciga

Replying to ryandesign@…:

Replying to starkhalo@…:

Replying to ryandesign@…:

So how did you decide to remove the platform darwin 8 block?

Should I put that block back? I removed it because I had no way to test it.

Well, that block was added to fix a build failure reported on Tiger in #33240. So unless something has changed, the block may still be necessary. I'll test on Tiger shortly and let you know.

Also, you removed the code that caused the port to use -arch flags, so now it doesn't anymore. That needs to be put back. And a universal variant added, if possible.

So those are the arch flags you mentioned are required for all ports without configure? I'll put them back as well as on the other port submissions then.

All ports that build architecture-specific software (and don't just install text files) should use -arch flags. If a port uses an unusual build system, then you have to add code to add those flags manually, i.e. by running [get_canonical_archflags] and putting its value wherever the build system understands it.

Ok, so after reading #33240 I put back the darwin 8 code, I really doubt it's going to build without it.

Also did a healthy read on Portfiles examples in the source tarballs regarding use_configure no and [get_canonical_flags], I've put them back in the patch along with an empty variant universal which built fine on my end, though I still have to look at examples on it since the documentation is severely lacking.

Also, the patch was made against r119826

Changed 10 years ago by harciga

Attachment: Portfile-mupdf.diff added

comment:9 in reply to:  8 ; Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to starkhalo@…:

Ok, so after reading #33240 I put back the darwin 8 code, I really doubt it's going to build without it.

I verified that gmake is still required for Tiger, but it still failed to build, because the build tried to use xcrun, which did not exist back then. This is probably simply solvable by editing the Makerules file. xcrun is used to find the path to command line programs when the command line tools are not installed, but MacPorts requires the command line tools to be installed, so running xcrun is pointless for us.

comment:10 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

I've tried your patch, and although the newly added universal variant succeeds to build, the resulting software is not in fact universal, so this is not sufficient.

$ port -v installed mupdf
The following ports are currently installed:
  mupdf @1.4_0+universal (active) platform='darwin 13' archs='i386 x86_64'
$ lipo -info /opt/local/bin/mutool
Non-fat file: /opt/local/bin/mutool is architecture: x86_64

comment:11 in reply to:  9 Changed 10 years ago by harciga

Replying to ryandesign@…:

Replying to starkhalo@…:

Ok, so after reading #33240 I put back the darwin 8 code, I really doubt it's going to build without it.

I verified that gmake is still required for Tiger, but it still failed to build, because the build tried to use xcrun, which did not exist back then. This is probably simply solvable by editing the Makerules file. xcrun is used to find the path to command line programs when the command line tools are not installed, but MacPorts requires the command line tools to be installed, so running xcrun is pointless for us.

I'm baffled by this. xcrun only appears twice and only in Makerules at lines 52-55 and 139-142. Both times inside an unreachable block code as ifeq "$(OS)" prevents it.

I'll take a look and see how to fix this non-universal binary issue.

comment:12 in reply to:  10 Changed 10 years ago by harciga

Replying to ryandesign@…:

I've tried your patch, and although the newly added universal variant succeeds to build, the resulting software is not in fact universal, so this is not sufficient.

$ port -v installed mupdf
The following ports are currently installed:
  mupdf @1.4_0+universal (active) platform='darwin 13' archs='i386 x86_64'
$ lipo -info /opt/local/bin/mutool
Non-fat file: /opt/local/bin/mutool is architecture: x86_64

Fixed.

$ lipo -info mudraw
Architectures in the fat file: mudraw are: x86_64 i386
$ lipo -info mujstest
Architectures in the fat file: mujstest are: x86_64 i386
$ lipo -info mupdf-x11
Architectures in the fat file: mupdf-x11 are: x86_64 i386
$ lipo -info mupdf-x11-curl
Architectures in the fat file: mupdf-x11-curl are: x86_64 i386
$ lipo -info mutool
Architectures in the fat file: mutool are: x86_64 i386

Replying to ryandesign@…:

Replying to starkhalo@…:

Ok, so after reading #33240 I put back the darwin 8 code, I really doubt it's going to build without it.

I verified that gmake is still required for Tiger, but it still failed to build, because the build tried to use xcrun, which did not exist back then. This is probably simply solvable by editing the Makerules file. xcrun is used to find the path to command line programs when the command line tools are not installed, but MacPorts requires the command line tools to be installed, so running xcrun is pointless for us.

Fixed. I missed the patchfiles declaration and xcrun is gone now, it should be working on Tiger now.

Keep in mind Portfile diff is for r119826

Thanks for all your input Ryan, let me know is there's anything left to address.

Last edited 10 years ago by harciga (previous) (diff)

Changed 10 years ago by harciga

Attachment: Portfile-mupdf.2.diff added

Changed 10 years ago by harciga

Attachment: patch-Makerules.2.diff added

comment:13 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.