programming-journal / programming

21 stars 14 forks source link

programming.cls not working with texlive2023? #58

Closed melkyades closed 5 months ago

melkyades commented 9 months ago

We are running a github action that builds our pdf, xu-cheng/latex-action@v2. It happens that v2 uses texlive2023, which used to just work, but we had to switch back to v2-texlive2022 because texlive2023 stopped working out of nowhere. This time again the cause seems to be a problem with hyperxmp. I don't know if this is a problem of programming.cls or something else, but as I have no clue of the whole thing works I'm just reporting it here.

I could share a full log but I don't know if it would be of any use. Here are the last lines only:

(/opt/texlive/texdir/texmf-dist/tex/generic/intcalc/intcalc.sty)
(/opt/texlive/texdir/texmf-dist/tex/latex/oberdiek/ifdraft.sty)

/opt/texlive/texdir/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty:276: Package hyp
erxmp Error: hyperref must be loaded before hyperxmp.

See the hyperxmp package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.276 }

/opt/texlive/texdir/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty:276:  ==> Fatal 
error occurred, no output PDF file produced!
Transcript written on main.log.
Latexmk: If appropriate, the -f option can be used to get latexmk
  to try to force complete processing.
Latexmk: Getting log file 'main.log'
Latexmk: Examining 'main.fls'
Latexmk: Examining 'main.log'
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
  pdflatex: Command for 'pdflatex' gave return code 1
      Refer to 'main.log' and/or above output for details
krono commented 9 months ago

OK, seems we're also hit by https://github.com/borisveytsman/acmart/issues/505

krono commented 9 months ago

Please provide a log. programming.cls already loads hyperxmp after hyperref: https://github.com/programming-journal/programming/blob/main/programming.cls#L432

So we have to see where this problem happens in the first place.

melkyades commented 9 months ago

ok, here it is logs_68.zip

krono commented 9 months ago

Thanks, but I need the file main.log

melkyades commented 9 months ago

mm, that's going to be a problem as I don't think github actions provides any ui for grabbing temp files created during builds, and I don't think I can reproduce this in my own machine

krono commented 9 months ago

Ok, got it.

Can you please add the following before \documentclass?

\PassOptionsToPackage{hyperxmp=false}{doclicense}
\AfterPackage{hyperxmp}%
 {\hypersetup%
  {pdfcopyright  = {\doclicenseLongTextForHyperref},
   pdflicenseurl = {\doclicenseURL}}}

and try again?

melkyades commented 9 months ago

just tried, it didn't get very far though:

his is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
 \write18 enabled.
entering extended mode
(./main.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-08-29>
./main.tex:5: Undefined control sequence.
l.5 \AfterPackage
                 {hyperxmp}%
./main.tex:5:  ==> Fatal error occurred, no output PDF file produced!
Transcript written on main.log.
Latexmk: If appropriate, the -f option can be used to get latexmk
Latexmk: Getting log file 'main.log'
Latexmk: Examining 'main.fls'
Latexmk: Examining 'main.log'
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
  pdflatex: Command for 'pdflatex' gave return code 1
      Refer to 'main.log' and/or above output for details

  to try to force complete processing.
krono commented 9 months ago

Yea sorry, scrlfile is missing for that.

\RequirePackage{scrlfile}
\PassOptionsToPackage{hyperxmp=false}{doclicense}
\AfterPackage{hyperxmp}%
 {\hypersetup%
  {pdfcopyright  = {\doclicenseLongTextForHyperref},
   pdflicenseurl = {\doclicenseURL}}}
melkyades commented 9 months ago

Didn't work either

Compile main.tex
Rc files read:
  NONE
Latexmk: This is Latexmk, John Collins, 4 Apr. 2023. Version 4.80.
No existing .aux file, so I'll make a simple one, and require run of *latex.
Latexmk: applying rule 'pdflatex'...
Rule 'pdflatex':  Reasons for rerun
Category 'other':
  Rerun of 'pdflatex' forced or previously required

------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex  -file-line-error -halt-on-error -interaction=nonstopmode -shell-escape -recorder  "main.tex"'
------------
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
 \write18 enabled.
entering extended mode
(./main.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-08-29>
Runaway argument?
{scrlfile] \PassOptionsToPackage {hyperxmp=false}{doclicense} \AfterPackage \ET
C.
./main.tex:12: Paragraph ended before \@fileswith@ptions was complete.
<to be read again> 
                   \par 
l.12 

./main.tex:12:  ==> Fatal error occurred, no output PDF file produced!
Transcript written on main.log.
Latexmk: If appropriate, the -f option can be used to get latexmk
  to try to force complete processing.
Latexmk: Getting log file 'main.log'
Latexmk: Examining 'main.fls'
Latexmk: Examining 'main.log'
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
  pdflatex: Command for 'pdflatex' gave return code 1
      Refer to 'main.log' and/or above output for details

I've got to go now, will be back in a few hours

krono commented 9 months ago

yes because i made a small typo in \RequirePackage{scrlfile], it should read \RequirePackage{scrlfile}

melkyades commented 9 months ago

and I had copy-pasted. That last fix just worked!