Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Verify OSX information #24

Closed
jubalh opened this issue May 22, 2019 · 7 comments
Closed

Verify OSX information #24

jubalh opened this issue May 22, 2019 · 7 comments

Comments

@jubalh
Copy link
Member

jubalh commented May 22, 2019

@tschoonj @Growbo would you guys mind verifying the information at:
https://profanity-im.github.io/build.html
https://profanity-im.github.io/install.html

Regarding osx/macos? In case you find things that are not true (anymore) or that could be better, would you mind sending opening a pull request at https://github.com/profanity-im/profanity-im.github.io

@jubalh
Copy link
Member Author

jubalh commented May 28, 2019

For example, for https://profanity-im.github.io/install.html:

  • I'm not sure whether Macports is still a thing
  • If it is I'm not sure whether its up to date or whether people should use brew always

For https://profanity-im.github.io/build.html:
I'm not sure if

openssl is keg-only, which means it is not symlinked into /usr/local therefore pkg-config will fail when detecting the library and the build will fail. In order to fix this we need to add the openssl path to PKG_CONFIG_PATH.

export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH"

is still needed.

@jubalh
Copy link
Member Author

jubalh commented Jun 5, 2019

@optmzr since you work on osx travis maybe you also have knowledge about osx that could be useful here?

@DebXWoody
Copy link
Contributor

It seems xcode is required: xcode-select --install. I'm not sure whether it is required to build the application or for brew / git.

Based on the description on the website, I installed:

brew install autoconf autoconf-archive automake libtool pkg-config glib gnutls
gpgme libotr libstrophe openssl ossp-uuid readline terminal-notifier

For OMEMO is necessary to install libsignal-protocol-c as well

brew install libsignal-protocol-c

Added openssl and libffi to pkg-config PATH

export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:/usr/local/opt/
libffi/lib/pkgconfig:$PKG_CONFIG_PATH"

Example of the configure setup I used

./configure --enable-notifications --enable-omemo --enable-pgp

The list of installed brew formula

$ brew list
adns                    glib                    libffi
libtasn1                ossp-uuid               sqlite
autoconf                gmp                     libgcrypt               libtool
                p11-kit                 terminal-notifier
autoconf-archive        gnupg                   libgpg-error
libunistring            pcre                    unbound
automake                gnutls                  libksba                 libusb
                pinentry                xz
check                   gpgme                   libotr                  nettle
                pkg-config
gdbm                    libassuan               libsignal-protocol-c    npth
                python
gettext                 libevent                libstrophe              openssl
                readline

@wstrm
Copy link
Contributor

wstrm commented Jun 6, 2019

Thanks for the great pointers @DebXWoody!

For the Travis CI job, I ended up with:

Brewfile.travis

brew 'autoconf'
brew 'autoconf-archive'
brew 'automake'
brew 'check'
brew 'curl'
brew 'expat'
brew 'glib'
brew 'gnutls'
brew 'gpgme'
brew 'gtk+'
brew 'libffi'
brew 'libotr'
brew 'libsignal-protocol-c'
brew 'libstrophe'
brew 'libtool'
brew 'ncurses'
brew 'openssl'
brew 'ossp-uuid'
brew 'pkg-config'
brew 'readline'

Resulting in:

brew install brew autoconf autoconf-archive automake check curl expat glib gnutls gpgme \
    gtk+ libffi libotr libsignal-protocol-c libstrophe libtool ncurses openssl ossp-uuid \
    pkg-config readline

Some of these dependencies (like gnutls and readline) are redundant, but I added them for good measure.

To make sure that the "keg-only" dependencies are used instead of the system defaults, I point pkg-config in the right direction with:

PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig:$PKG_CONFIG_PATH"
PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:$PKG_CONFIG_PATH"
PKG_CONFIG_PATH="/usr/local/opt/curl/lib/pkgconfig:$PKG_CONFIG_PATH"
PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH"
PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig:$PKG_CONFIG_PATH"

Some of these aren't needed either, and the system dependencies (like curl) worked just fine, but I feel like it's better to use the latest from Homebrew instead.

@jubalh
Copy link
Member Author

jubalh commented Jun 6, 2019

So this means the website is good and I should close this? :)

@wstrm
Copy link
Contributor

wstrm commented Jun 6, 2019

I think we should add the additional PKG_CONFIG_PATHs too, just in case :)

@jubalh
Copy link
Member Author

jubalh commented Jun 6, 2019

Awesome! Thanks!

@jubalh jubalh closed this as completed Jun 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants