open-simh / simh

The Open SIMH simulators package
https://opensimh.org/
Other
471 stars 89 forks source link

zlib is an additional MacOS brew dependency #17

Open diyessi opened 2 years ago

diyessi commented 2 years ago
markpizz commented 2 years ago

What simulator(s) were you trying to build?

diyessi commented 2 years ago

I was just doing make at top-level; it was one of the first ones. I can clean and uninstall zlib and repeat tonight to find out (I'm actually surprised I didn't have it installed already).

pkoning2 commented 2 years ago

Some simulators use PNG, right? I think that uses zlib.

markpizz commented 2 years ago

Some simulators use PNG, right? I think that uses zlib.

They do.

Since you didn't provide the output of your build, it isn't clear how you got here, and what "listed brew dependencies" are.

The makefile specifically outputs:

          *** Info *** Install the HomeBrew libSDL2 package to provide this
          *** Info *** functionality for your OS X system:
          *** Info ***       $ brew install sdl2 libpng zlib
diyessi commented 2 years ago

I did install the ones listed here: https://github.com/open-simh/simh/blob/master/SIMH-V4-status.md#os-x---dependencies So I think libz should be added to that list, which could also be flattened to a single line. I don't know why brew doesn't handle the dependency itself, maybe because they don't distinguish the dev case and don't want to pull in a lot of extra stuff for people who are just running things.

markpizz commented 2 years ago

My OS X test system is offline for a few weeks. I therefore can't test any of this, but does brew want the package "zlib" or "libz"?

You didn't provide the output of the make, so the build errors that were reported would be useful to know along with any info emitted by the make.

diyessi commented 2 years ago

I think it was zlib but I'll get this info for you tonight to make sure; I'm in the world of future hardware during the day.

pkoning2 commented 2 years ago

It's zlib, I just checked on my Mac.

diyessi commented 2 years ago

Yes, it is zlib, PDP-1. I also notice that even though sdl2_ttf is installed, it's detecting it's not installed. brew has moved where it puts things different places over the years. It's in /usr/local/Cellar/sdl2_ttf/2.0.18_1/.brew/sdl2_ttf.rb for me.

*** all  Simulators being built with:
*** - compiler optimizations and no debugging support. Apple clang version 11.0.3.
*** - dynamic networking support using OSX provided libpcap components.
*** - Local LAN packet transports: PCAP VDE NAT(SLiRP)
*** - video capabilities provided by libSDL2 (Simple Directmedia Layer).
*** - Per simulator tests will be run.
***
*** git commit id is cc6f8ee8eed9f57d51f40ec6dfedabd7ff8616be.
*** git commit time is 2022-06-17T08:23:29-0700.
***
font paths are: /Library/Fonts/ /System/Library/Frameworks/JavaVM.framework/Versions/
font names are: DejaVuSans.ttf LucidaSansRegular.ttf FreeSans.ttf AppleGothic.ttf tahoma.ttf
***
*** No font file available, BESM-6 video panel disabled.
***
*** To enable the panel display please specify one of:
***          a font path with FONTPATH=path
***          a font name with FONTNAME=fontname.ttf
***          a font file with FONTFILE=path/fontname.ttf
***
*** No SDL ttf support available.  BESM-6 video panel disabled.
***
*** Info *** Install the HomeBrew sdl2_ttf package to provide this
*** Info *** functionality for your OS X system:
*** Info ***       $ brew install sdl2_ttf
gcc -std=c99 -U__STRICT_ANSI__  -O2 -fno-strict-overflow -finline-functions -DSIM_GIT_COMMIT_ID=cc6f8ee8eed9f57d51f40ec6dfedabd7ff8616be -DSIM_GIT_COMMIT_TIME=2022-06-17T08:23:29-0700  -DSIM_COMPILER="Apple clang version 11.0.3" -DSIM_BUILD_TOOL=simh-makefile -I . -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO  -DHAVE_PCRE_H -DHAVE_SYS_IOCTL -DSIM_HAVE_DLOPEN=dylib -DHAVE_UTIME -DHAVE_LIBPNG -DHAVE_GLOB -DHAVE_SHM_OPEN  ./PDP1/pdp1_lp.c ./PDP1/pdp1_cpu.c ./PDP1/pdp1_stddev.c ./PDP1/pdp1_sys.c ./PDP1/pdp1_dt.c ./PDP1/pdp1_drm.c ./PDP1/pdp1_clk.c ./PDP1/pdp1_dcs.c ./PDP1/pdp1_dpy.c ./display/display.c ./display/sim_ws.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -I ./PDP1 -DUSE_DISPLAY -DHAVE_LIBSDL -DUSE_SIM_VIDEO `/usr/local/Cellar/sdl2/2.0.22/bin/sdl2-config --cflags` -DSDL_MAIN_AVAILABLE `/usr/local/Cellar/sdl2/2.0.22/bin/sdl2-config --libs` -DDISPLAY_TYPE=DIS_TYPE30 -DPIX_SCALE=RES_HALF -o BIN/pdp1 -lpthread -lpcre -lpng -lvdeplug -L/usr/local/Cellar/vde/2.3.2_1/lib/ 
Undefined symbols for architecture x86_64:
  "_zlibVersion", referenced from:
      _vid_version in sim_video-528bb5.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [BIN/pdp1] Error 1
cyphers@Cuyamaca:~/code/simh$ brew list
==> Formulae
aom         doxygen         glib            isl         libpng          libx11          mscgen          pango           sphinx
autoconf        emacs           gmp         jansson         libpthread-stubs    libxau          mysql@5.7       pcre            sqlite
automake        flex            gnutls          jasper          librsvg         libxcb          ncurses         pixman          swig
bdw-gc          fontconfig      gobject-introspection   jemalloc        libsigsegv      libxdmcp        netpbm          pkg-config      szip
bison           freetype        gpatch          jpeg            libslirp        libxext         nettle          pylint          tcl-tk
brotli          fribidi         graphite2       jpeg-xl         libssh          libxrender      nghttp2         python@3.10     unbound
c-ares          gcc         graphviz        libavif         libtasn1        llvm            ninja           python@3.8      vde
ca-certificates     gd          gts         libev           libtiff         lzo         node            python@3.9      webp
cairo           gdbm            guile           libevent        libtool         m4          ocaml           qemu            wget
camlp5          gdk-pixbuf      harfbuzz        libffi          libunistring        mercurial       opam            readline        xorgproto
clang-format        gettext         hwloc           libidn2         libusb          mono            openexr         sdl2            xvid
clisp           ghc         icu4c           libmpc          libuv           mpdecimal       openssl@1.1     sdl2_ttf        xz
cmake           giflib          imath           libnghttp2      libvmaf         mpfr            p11-kit         snappy          zstd

==> Casks
dia julia   xquartz
pkoning2 commented 2 years ago

I noticed that some stuff I thought was installed by homebrew was in /usr/local even though a lot of other stuff is still in /opt. What the heck were they thinking?

jguillaumes commented 2 years ago

Have you got an ARM based Mac?

The path to homebrew stuff is different for each architecture, so you can have both ARM and Intel binaries.

ARM binaries are in /opt/homebrew Intel binaries are in /use/local/homebrew

If you are not careful you can end up mixing architectures.

Jordi Guillaumes Pons

El 22 juny 2022, a les 14:59, Paul Koning @.***> va escriure:

 I noticed that some stuff I thought was installed by homebrew was in /usr/local even though a lot of other stuff is still in /opt. What the heck were they thinking?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.

diyessi commented 2 years ago

2018 Intel Mac mini, intel. I know both brew and Apple have moved around where they put things over the years. I spent a little time trying to track down the fonts issue. It looks like you need to hunt them down yourself and install them, and I suspect the Makefile still might not be looking all the right places for them.

pkoning2 commented 2 years ago

The nice aspect of stuff being in /usr/local is that this is also the standard destination when you do a plain configure and build of a standard GNU package. The fact that homebrew used to put stuff in an odd place was a nuisance for those of us who just want to install the package the normal way, without going through random package managers that have their own odd notions.

diyessi commented 2 years ago

There were some inconsistencies with that between Red Hat and Debian. With Apple, you have Apple itself changing things from one OS version to the next, plus Homebrew and MacPorts staking out territory, and, if you're really unlucky, Conda also stomping all over things.

louis-chretien commented 2 years ago

The nice aspect of stuff being in /usr/local is that this is also the standard destination when you do a plain configure and build of a standard GNU package. The fact that homebrew used to put stuff in an odd place was a nuisance for those of us who just want to install the package the normal way, without going through random package managers that have their own odd notions.

But with Apple insisting on having the system disk "read-only" (specially in Monterey), de /opt directory becomes the best alternative to store packages that are not on the base Mac OS system.

louis-chretien commented 2 years ago

I would also add the "pcre" package in the requirements, as it is needed to build the vaxen emulators.

I am working on a pull request to fix some Mac OS build/requirements issues. More to come soon...

jguillaumes commented 1 year ago

Hello,

I've checked my little canned DECNET corner and I've noticed the UDP link to UPDATE is down and has probably been down for months?

Is HECNet still alive? I've checked my side and it seems to be OK... and the mailing list seems to be dead...

J.

pkoning2 commented 1 year ago

HECnet is alive and well. The list is at hecnet@lists.dfupdate.se (perhaps that has changed?). update.uu.se went through major changes perhaps half a year ago, and some of the core connectivity in Sweden has changed. You might email Johnny Billquist for details, or just send to the list. You can find a network map at http://akdesign.dyndns.org:8080/map

jguillaumes commented 1 year ago

Thanks! I'll drop a line to Johnny, let's see if I can restore my connectivity.

El 1 maig 2023, a les 22:08, Paul Koning @.***> va escriure:

HECnet is alive and well. The list is at @. @.> (perhaps that has changed?). update.uu.se went through major changes perhaps half a year ago, and some of the core connectivity in Sweden has changed. You might email Johnny Billquist for details, or just send to the list. You can find a network map at http://akdesign.dyndns.org:8080/map

— Reply to this email directly, view it on GitHub https://github.com/open-simh/simh/issues/17#issuecomment-1530149159, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAL264VDC7MS5ROK43KQXDLXEAJ3XANCNFSM5ZK67TTQ. You are receiving this because you commented.