Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#63962 closed defect (invalid)

asymptote @2.70_1 doesn't build on monterey

Reported by: baikel Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: monterey Cc: drkp (Dan Ports), ballapete (Peter "Pete" Dyballa)
Port: asymptote

Description

build fails with

--->  Building asymptote                                 
Error: Failed to build asymptote: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_asymptote/asymptote/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port asymptote failed

main.log attached

Attachments (2)

main.log (262.3 KB) - added by baikel 3 years ago.
ifxetex.sty (488 bytes) - added by ballapete (Peter "Pete" Dyballa) 3 years ago.
The missing style file

Download all attachments as: .zip

Change History (21)

Changed 3 years ago by baikel

Attachment: main.log added

comment:1 Changed 3 years ago by jmroot (Joshua Root)

Cc: mojca removed
Owner: set to mojca
Status: newassigned

comment:2 Changed 3 years ago by mojca (Mojca Miklavec)

Cc: drkp added

I'm puzzled. This fails while typesetting TeXShopAndAsymptote.tex, not while building the sources. TeX is more stable than "anything else on the planet" ;), I have no clue what's so special on Monterey to make that break (I didn't upgrade yet).

Unless this is broken for everyone with partial installation of TeX Live 2021 and just nobody noticed because the packages were build with TeX Live 2020. I'll check if I can reproduce the problem on an older macOS.

(/opt/local/share/texmf-local/tex/generic/ifxetex/ifxetex.sty)
! Incomplete \ifx; all text was ignored after line 29.
<inserted text>
                \fi
l.53 \IfFileExists
                  {catchfile.sty}{
?
! Emergency stop.
<inserted text>
                \fi
l.53 \IfFileExists
                  {catchfile.sty}{
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on latexusage.log.
make[1]: *** [latexusage.pdf] Error 1
make[1]: *** Waiting for unfinished jobs....

comment:3 Changed 3 years ago by baikel

I recently built asymptote on Big Sur with TeX Live 2021. And I have the same catchfile.sty on a Monterey computer.

comment:4 Changed 3 years ago by mojca (Mojca Miklavec)

I also double-checked on an older OS and I don't seem to be able to reproduce the problem there.

I don't think it matters, but which processor are you using?

comment:5 Changed 3 years ago by baikel

2.6 GHz 6-Core Intel Core i7

comment:6 Changed 3 years ago by baikel

Ugh, I finally managed to compile asymptote. This required to comment out the following part of "asymptote.sty" in its doc part:

\IfFileExists{ifxetex.sty}{
  \RequirePackage{ifxetex}
}{
  \expandafter\newif\csname ifxetex\endcsname
  \ifx\XeTeXversion\@undefined\else
    \xetextrue
  \fi
}

Dunno what this "ifxetex" is about there…

comment:7 in reply to:  6 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Replying to baikel:

In complete TeX Live it's here: /usr/local/texlive/2021/texmf-dist/tex/generic/iftex/ifxetex.sty.

comment:8 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Cc: ballapete added

Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: ifxetex.sty added

The missing style file

comment:9 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

The contents of the file is simple, meaning to update the document that is including it:

  1 % Compatibility stub package for ifxetex
  2 
  3 %% LaTeX3 Project
  4 %%
  5 %% This work may be distributed and/or modified under the
  6 %% conditions of the LaTeX Project Public License, either
  7 %% version 1.3c of this license or (at your option) any later
  8 %% version.
  9 
 10 % The original ifxetex package was written by Will Robertson
 11 
 12 \ifx\RequirePackage\undefined
 13   \input iftex.sty
 14 \else
 15   \ProvidesPackage{ifxetex}[2019/10/25 v0.7 ifxetex legacy package. Use iftex instead.]
 16   \RequirePackage{iftex}
 17 \fi

comment:10 Changed 3 years ago by drkp (Dan Ports)

This file exists in texlive-basic:

> port provides `kpsewhich ifxetex.sty`
/opt/local/share/texmf-texlive/tex/generic/iftex/ifxetex.sty is provided by: texlive-basic

comment:11 in reply to:  10 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Replying to drkp:

This file exists in texlive-basic:

Right! It's there, I overlooked it first (used locate since I am using TeX Live).

comment:12 Changed 3 years ago by baikel

Weird, in my case the file exists, but the command returns

port provides `kpsewhich ifxetex.sty`
/opt/local/share/texmf-local/tex/generic/ifxetex/ifxetex.sty is not provided by a MacPorts port.

comment:13 Changed 3 years ago by mojca (Mojca Miklavec)

I could have noticed from the error log that it was loading a file from /opt/local/share/texmf-local rather than from the location where this file was supposed to be. Do you have any clue how that file ended up there?

Can you please try to create a backup of /opt/local/share/texmf-local, completely remove the contents, run sudo mktexlsr and try building asymptote again? I assume that should work then.

If that works, I'll close the ticket as invalid. But as Peter pointed out, maybe we could ask upstream to use iftex rather than the obsolete ifxetex instead.

comment:14 Changed 3 years ago by baikel

Indeed, I have xetex files in my texmf-local part, don't already remember why (their date is 2008). Once I removed everything associated with xetex from it, asymptote build smoothly. Thanks.

Still, I have the very same texmf-local tree on my Big Sure computer and it built smoothly there (and before that on older systems).

comment:15 Changed 3 years ago by mojca (Mojca Miklavec)

Resolution: invalid
Status: assignedclosed

Thanks for confirming that it builds. I'll close the ticket then.

Maybe the files inside texmf-local are different enough to lead to this discrepancy.

comment:16 in reply to:  12 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Replying to baikel:

Weird, in my case the file exists, but the command returns

Could you check the file's date? I noticed a few times that old files from Python packages or applications with a lot of manual entries which in reality are just symbolic links, or that changed from plain to compressed in a new release, survived the port upgrade process. Could be this is just another such relic…

comment:17 Changed 3 years ago by baikel

The one that I had in texmf-local is "2006/08/12 v0.2"

comment:18 in reply to:  17 Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Replying to baikel: I meant the file date, as seen in Finder or in Terminal (ls -l <file>), but OK: The recent version in MacPorts from the LaTeX3 project has:

\ProvidesPackage{ifxetex}[2019/10/25 v0.7 ifxetex legacy package. Use iftex instead.]

comment:19 Changed 3 years ago by baikel

Didn't understand your question. My original problem was apparently associated with the use of a very old ifxetex from texmf-local (apparently, because I did manage to build asymptote on Big Sur with it recently). Once I removed it, as well as everything associated with xetex, from texmf-local, the new files from texmf-texlive was used and asymptote was built. That file has exactly the line that you described and was created on March 8 2020 at 3:57.

Note: See TracTickets for help on using tickets.