crosswire / xiphos

Xiphos is a Bible study tool written for Linux, UNIX, and Windows using GTK, offering a rich and featureful environment for reading, study, and research using modules from The SWORD Project and elsewhere.
http://xiphos.org
GNU General Public License v2.0
208 stars 51 forks source link

Feature Request: Mac OS X Port #760

Open engineervix opened 8 years ago

engineervix commented 8 years ago

It would be cool to have this application run on mac OS X as well. Are there any plans to port this to mac OS X? Thanks

ghost commented 8 years ago

I personally think this would be cool too. :)

I think @greg-hellings tried doing it a while ago, don't know where he got to though.

If this is done, I don't think we should do it until after rewriting the GTK3 port. See issue #761

DavidHaslam commented 8 years ago

Has Victor considered using Eloquent?

https://crosswire.org/wiki/Frontends:Eloquent

ghost commented 8 years ago

There is also Bibletime for OS X.

engineervix commented 8 years ago

@DavidHaslam I'm just from installing it and observing it a couple of minutes ago. It seems pretty good, though was crashing unexpectedly. @cjbayliss BibleTime was the one I initially tried out, but it was also throwing exceptions and freezing. I'm running the latest OS X El Captitan. I use Xiphos on my Ubuntu Gnome and on Windows 7, so I wanted to maintain the same application everywhere!

dmsmith commented 8 years ago

And Bible Desktop, STEP, and Alkitab.

Cent from my fone so theer mite be tipos. ;)

On May 24, 2016, at 5:11 AM, Christopher Bayliss notifications@github.com wrote:

There is also Bibletime for OS X.

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

engineervix commented 8 years ago

Thanks @dmsmith, will check those out as well 👍

DavidHaslam commented 8 years ago

I'm not one of the Eloquent developers. I merely assumed that you might not be aware of all the SWORD / JSword based apps. That's all.

If you have any iOS devices, check out the SWORD app called PocketSword, albeit there are now several issues that need fixing since iOS 9.x was released. The PS developers also need help.

engineervix commented 8 years ago

Thanks @DavidHaslam 👍

ray13z commented 7 years ago

If I could help with this - how would I go about it?

karlkleinpaste commented 7 years ago

in principle, all that's needed is packaging. a few years ago, another person now no longer participating in xiphos development got to a working build using straightforwardly-installed X compatibility packages, but could never devote the time to produce an actual redistributable package.

ray13z commented 7 years ago

Sure I can give it a shot; does it make sense to open a new issue thread for compiling issues?

karlkleinpaste commented 7 years ago

sorry for delay in responding. no, there's no need for another issue. in fact, i'd rather not have another cluttering up a single question.

once upon a time, the person who previously made this fly, without packaging, created this proof-of-concept screenshot: https://surgut.wordpress.com/2009/12/27/xiphos-on-mac-os/ http://blog.surgut.co.uk/2009/12/xiphos-on-mac-os_2742.html the only useful reference i see in those is gtk-osx. i hope that's a clue you can use.

not having a mac, not knowing a thing about packing for macos, i won't have much to offer in how this works out.

MC1171611 commented 6 years ago

Hi, has there been any progress on this? I use Eloquent almost exclusively, but I am always looking for more tools to add to my toolbag. I'm macOS exclusive right now, and while I'm not a programmer, I've compiled a few things from source, so I may be able to help test if someone gives me some direction.

karlkleinpaste commented 6 years ago

sorry, no. as has been our experience for more than 10 years, many people want it, no one wants to help produce it.

engineervix commented 2 years ago

Hello, I'm back, looks like this issue has been pending for a while! I haven't been using a mac for a while, until now.

I'll try and see if I can build the project, and provide feedback ...

engineervix commented 2 years ago

Hello, I'm back, looks like this issue has been pending for a while! I haven't been using a mac for a while, until now.

I'll try and see if I can build the project, and provide feedback ...

I started with trying to get all dependencies sorted out. However, I'm having trouble building biblesync. I followed the Linux INSTALL instructions, making the following modification, based on this stackoverflow post

cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/homebrew.cmake -DBUILD_SHARED_LIBS=TRUE -DCMAKE_PREFIX_PATH=/opt/homebrew -DCMAKE_INSTALL_PREFIX=/opt/homebrew -DLIBDIR=/opt/homebrew/lib64 ../..

My homebrew.cmake file is as follows:

set(HOMEBREW_PREFIX "/usr/local"
    CACHE PATH "Path to Homebrew installation")

set(CMAKE_C_COMPILER "${HOMEBREW_PREFIX}/bin/gcc-11")
set(CMAKE_CXX_COMPILER "${HOMEBREW_PREFIX}/bin/g++-11")

set(CMAKE_PREFIX_PATH
    "${HOMEBREW_PREFIX}"
    # These libraries are keg-only and not loaded into
    # the root prefix by default (to avoid clashes).
    "${HOMEBREW_PREFIX}/opt/util-linux"
    "${HOMEBREW_PREFIX}/opt/gcc/lib/gcc@11"
)

list(TRANSFORM CMAKE_PREFIX_PATH APPEND "/include"
     OUTPUT_VARIABLE CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES "${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}")

set(CMAKE_FIND_FRAMEWORK NEVER)
set(CMAKE_FIND_APPBUNDLE NEVER)

set(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH FALSE)
set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH FALSE)

The result of running the cmake command:

-- The CXX compiler identification is GNU 11.3.0
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/local/bin/g++-11 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:11 (CMAKE_MINIMUM_REQUIRED):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- Found UUID: /usr/local/lib/libuuid.dylib
-- Will install to: /opt/homebrew
-- Setting SOVERSION to 2.1.0
-- Configuring done
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   biblesync

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /Users/somebody/projects/biblesync/build/linux

Then, when I run make:

[ 50%] Building CXX object CMakeFiles/biblesync.dir/src/biblesync.cc.o
[100%] Linking CXX shared library libbiblesync.dylib
Undefined symbols for architecture x86_64:
  "_libintl_gettext", referenced from:
      __ZN9BibleSync7setModeE15_BibleSync_modePFvcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_S6_S6_S6_S6_S6_ES6_ in biblesync.cc.o
      __ZN9BibleSync5SetupB5cxx11Ev in biblesync.cc.o
      __ZN9BibleSync15ReceiveInternalEv in biblesync.cc.o
      __ZN9BibleSync14InitSelectReadEPcP11sockaddr_inPNS_17_BibleSyncMessageE in biblesync.cc.o
      __ZN9BibleSync16TransmitInternalEcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_S5_S5_S5_ in biblesync.cc.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/biblesync.dir/build.make:98: libbiblesync.2.1.0.dylib] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/biblesync.dir/all] Error 2
make: *** [Makefile:124: all] Error 2

Any help on how to fix this?

engineervix commented 2 years ago

biblesync

I'm running Mac OS 12.4 (Monterey), here's the system info

❯ neofetch
                    'c.          user@Users-MBP
                 ,xNMM.          ------------------
               .OMMMMo           OS: macOS 12.4 21F79 x86_64
               OMMM0,            Host: MacBookPro12,1
     .;loddo:' loolloddol;.      Kernel: 21.5.0
   cKMMMMMMMMMMNWMMMMMMMMMM0:    Uptime: 6 hours, 5 mins
 .KMMMMMMMMMMMMMMMMMMMMMMMWd.    Packages: 247 (brew)
 XMMMMMMMMMMMMMMMMMMMMMMMX.      Shell: zsh 5.8.1
;MMMMMMMMMMMMMMMMMMMMMMMM:       Resolution: 1280x800@2x
:MMMMMMMMMMMMMMMMMMMMMMMM:       DE: Aqua
.MMMMMMMMMMMMMMMMMMMMMMMMX.      WM: Quartz Compositor
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.    WM Theme: Blue (Dark)
 .XMMMMMMMMMMMMMMMMMMMMMMMMMMk   Terminal: iTerm2
  .XMMMMMMMMMMMMMMMMMMMMMMMMK.   Terminal Font: MesloLGS-NF-Regular 17
    kMMMMMMMMMMMMMMMMMMMMMMd     CPU: Intel i5-5287U (4) @ 2.90GHz
     ;KMMMMMMMWXXWMMMMMMMk.      GPU: Intel Iris Graphics 6100
       .cooc,.    .,coo:.        Memory: 10288MiB / 16384MiB

and here's the list of homebrew installed packages:

❯ brew list
==> Formulae
aom             leptonica           ntfs-3g-mac
appstream-glib          libaec              numpy
atk             libarchive          ocrmypdf
atkmm@2.28          libass              oniguruma
autoconf            libassuan           openblas
automake            libb2               opencore-amr
bdw-gc              libbluray           openexr
brotli              libcbor             openjdk
c-ares              libdap              openjpeg
ca-certificates         libde265            openssl@1.1
cairo               libepoxy            openssl@3
cairomm@1.14            libevent            opus
cask                libffi              ossp-uuid
cfitsio             libfido2            p11-kit
cjson               libgcrypt           pandoc
cmake               libgeotiff          pango
cmocka              libgpg-error            pangomm@2.46
coreutils           libgsf              pcre
dav1d               libheif             pcre2
dbus                libidn              pillow
dbus-glib           libidn2             pinentry
desktop-file-utils      libimagequant           pinentry-mac
docbook             libksba             pixman
docbook-xsl         liblqr              pkg-config
emacs               libmpc              pngquant
epsilon             libnghttp2          poppler-qt5
expat               libogg              popt
ffmpeg              libomp              postgresql
flac                libpng              proj
fontconfig          libpq               pybind11
fpc             libpsl              pyenv
freetype            libpthread-stubs        python@3.10
freexl              libraqm             python@3.9
frei0r              libraw              qpdf
fribidi             librist             qt@5
gcc             librttopo           railway
gdal                libsamplerate           rav1e
gdbm                libsigc++@2         rbenv
gdk-pixbuf          libsndfile          rbenv-default-gems
geos                libsodium           rbenv-gemset
gettext             libsoup@2           readline
ghostscript         libsoxr             rubberband
giflib              libspatialite           ruby-build
gitea               libtasn1            screenfetch
glib                libtermkey          screenresolution
glib-networking         libtiff             sdl2
glibmm@2.66         libtool             shared-mime-info
gmp             libunistring            shellcheck
gnu-getopt          libusb              six
gnupg               libuv               snappy
gnutls              libvidstab          speex
gobject-introspection       libvmaf             sqlite
graphite2           libvorbis           srt
grep                libvpx              sword
gsettings-desktop-schemas   libx11              tcl-tk
gtk+                libxau              tesseract
gtk+3               libxcb              theora
gtkmm               libxdmcp            tree-sitter
guile               libxext             unbound
harfbuzz            libxml2             unibilium
hdf5                libxrender          unixodbc
heroku              libyaml             unpaper
heroku-node         little-cms2         util-linux
hicolor-icon-theme      luajit              virtualenv
icu4c               luv             virtualenvwrapper
imagemagick         lz4             webp
imath               lzo             x264
intltool            m4              x265
isl             make                xerces-c
itstool             mbedtls             xml2
jansson             minizip             xmlstarlet
jasper              mpdecimal           xmlto
jbig2dec            mpfr                xorgproto
jbig2enc            msgpack             xvid
jpeg                ncurses             xz
jpeg-turbo          neofetch            yarn
jpeg-xl             neovim              yelp-tools
jq              netcdf              zeromq
json-c              nettle              zimg
json-glib           node                zsh
krb5                npth                zstd
lame                nspr
ldns                nss

==> Casks
beekeeper-studio    macfuse         macvim          meld            virtualbox
engineervix commented 2 years ago

@xnox, saw your blog post at https://blog.surgut.co.uk/2009/12/xiphos-on-mac-os_2742.html. I know that's like ~13years ago 😄, but would you recall the details of how you managed to build the project on Mac OS?