pasky / pachi

A fairly strong Go/Baduk/Weiqi playing program
http://pachi.or.cz/
GNU General Public License v2.0
505 stars 117 forks source link

pachi 12.70 build failure #153

Open chenrui333 opened 1 year ago

chenrui333 commented 1 year ago

👋 trying to build the latest release, but run into some build issue. The error log is as below:

error build log ``` josekifix/sgfdump: SGF perl module is missing, try: $ cpan cpan[1]> install Games::SGF::Go ```

full build log, https://github.com/Homebrew/homebrew-core/actions/runs/4150781860/jobs/7180684514 relates to Homebrew/homebrew-core#122989

lemonsqueeze commented 1 year ago

Hi, It's trying to process the josekifix SGF files but a perl module is missing.

You can either:

lemonsqueeze commented 1 year ago

If it makes life easier for homebrew i could add this file to the repository, this way it won't have to be regenerated on git-clone builds. Let me know what works best for you.

chenrui333 commented 1 year ago
  • Install the missing perl module (for example using cpan like the error suggests),

I was trying this route by installing the perl module, but somehow it seems did not get picked up.

I can also certainly ignore the joseki fixes, but not sure what would be the impact there.

lemonsqueeze commented 1 year ago

Don't worry about it, I'll re-release Pachi 12.70 with this file added. That should make your issue go away. This is bound to affect other automated build systems as well ...

lemonsqueeze commented 1 year ago

Try now, as long as https://github.com/pasky/pachi/archive/pachi-12.60.tar.gz gets downloaded again it should work.

Btw, I took a look at Homebrew pachi.rb : Parts of it look outdated. The "patterns" section downloads a huge pattern file which was used by old versions of Pachi, but isn't used by recent versions anymore (replaced by patterns_mm.spat, patterns_mm.prob which are really small).

Also looks like it's doing a nodcnn build (inreplace "Makefile", "DCNN=1", "DCNN=0"). This is really unfortunate, Pachi without dcnn loses a lot of value. Looks like Homebrew already builds caffe, so getting a dcnn build should be easy (building caffe is usually the hard part). I'm happy to help resolve issues with this if someone wants to try a more modern build.

There's also a comment about data files near the end :

At present, pachi cannot be pointed to external files, so make sure to set the working directory to #{opt_pkgshare} if you want pachi to take advantage of these additional files.

This has been fixed for a while, Pachi will look for its datafiles in DATADIR directory which can be set at build time (Makefile). On linux it defaults to /usr/share/pachi-go/ for example. Homebrew should take advantage of this.

chenrui333 commented 1 year ago

Try now, as long as https://github.com/pasky/pachi/archive/pachi-12.60.tar.gz gets downloaded again it should work.

Btw, I took a look at Homebrew pachi.rb : Parts of it look outdated. The "patterns" section downloads a huge pattern file which was used by old versions of Pachi, but isn't used by recent versions anymore (replaced by patterns_mm.spat, patterns_mm.prob which are really small).

I see, I can update the linked PR to remove that pattern file.

Also looks like it's doing a nodcnn build (inreplace "Makefile", "DCNN=1", "DCNN=0"). This is really unfortunate, Pachi without dcnn loses a lot of value. Looks like Homebrew already builds caffe, so getting a dcnn build should be easy (building caffe is usually the hard part). I'm happy to help resolve issues with this if someone wants to try a more modern build.

We actually deprecated caffe recently due to some build issue, but happy to try out building dcnn in the homebrew side.

There's also a comment about data files near the end :

At present, pachi cannot be pointed to external files, so make sure to set the working directory to #{opt_pkgshare} if you want pachi to take advantage of these additional files.

This has been fixed for a while, Pachi will look for its datafiles in DATADIR directory which can be set at build time (Makefile). On linux it defaults to /usr/share/pachi-go/ for example. Homebrew should take advantage of this.

make sense, I will also remove it.

That is pretty awesome comment, do you mind filing a PR to improve the formula, it would be much appreciated

lemonsqueeze commented 1 year ago

That is pretty awesome comment, do you mind filing a PR to improve the formula, it would be much appreciated

Sure, where should i file it ? I'm not super familiar with Homebrew issue workflow.

I tried homebrew-core, but it only lets me open a "New issue for Reproducible Bug", and the template for that doesn't seem like a terribly good fit...

chenrui333 commented 1 year ago

you don't have to file a bug, you can just directly file a PR. There is a PR template on this too. Let me wrap up this 12.70 first.

lemonsqueeze commented 1 year ago

Ok, just filed PR 123060. Looks like it doesn't want to build though because caffe is deprecated. Maybe there's a way to get around it, but we can continue talking about it there.