LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Linux From Scratch
User Name
Password
Linux From Scratch This Forum is for the discussion of LFS.
LFS is a project that provides you with the steps necessary to build your own custom Linux system.

Notices


Reply
  Search this Thread
Old 05-30-2017, 09:33 PM   #1
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 651
Blog Entries: 135

Rep: Reputation: 188Reputation: 188
BLFS8: seamonkey wants gtk3


Running BLFS 8. Tried to compile SeaMonkey. It fails, claiming that I need gtk3. The book says gtk2 will work. I detect an inconsistency here. Can someone clue me in?

I am using the mozconfig configuration file, created to match as it appears in the book (no changes to it).

I have all required and recommended dependencies already in.

Log of compilation attempt (showing also the commands as I pasted/type them):
Quote:
bob@artemis:~/compile/seamonkey-2.46 $ cp ../mozconfig ./
bob@artemis:~/compile/seamonkey-2.46 $ CFLAGS_HOLD=$CFLAGS &&
> CXXFLAGS_HOLD=$CXXFLAGS &&
> EXTRA_FLAGS=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2" &&
> export CFLAGS+=$EXTRA_FLAGS &&
> export CXXFLAGS+=$EXTRA_FLAGS &&
> unset EXTRA_FLAGS &&
>
> sed -e 's/256/224/' \
> -i mozilla/netwerk/protocol/http/Http2Session.cpp &&
>
> sed -e '/version=/s/:space:/[&]/' \
> -i ./mozilla/build/autoconf/icu.m4 &&
>
> sed -e s/_EVENT_SIZEOF/EVENT__SIZEOF/ \
> -i mozilla/ipc/chromium/src/base/message_pump_libevent.cc
bob@artemis:~/compile/seamonkey-2.46 $
bob@artemis:~/compile/seamonkey-2.46 $ make -f client.mk && echo "pillows"
mkdir -p '/home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/'
> /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/.mozconfig.mk
Adding client.mk options from /home/bob/compile/seamonkey-2.46/mozconfig:
FOUND_MOZCONFIG := /home/bob/compile/seamonkey-2.46/mozconfig
Generating /home/bob/compile/seamonkey-2.46/configure
sed '1,/^divert/d' /home/bob/compile/seamonkey-2.46/configure.in > /home/bob/compile/seamonkey-2.46/configure
chmod +x /home/bob/compile/seamonkey-2.46/configure
Generating /home/bob/compile/seamonkey-2.46/mozilla/configure
sed '1,/^divert/d' /home/bob/compile/seamonkey-2.46/mozilla/configure.in > /home/bob/compile/seamonkey-2.46/mozilla/configure
chmod +x /home/bob/compile/seamonkey-2.46/mozilla/configure
Generating /home/bob/compile/seamonkey-2.46/mozilla/js/src/configure
sed '1,/^divert/d' /home/bob/compile/seamonkey-2.46/mozilla/js/src/configure.in > /home/bob/compile/seamonkey-2.46/mozilla/js/src/configure
chmod +x /home/bob/compile/seamonkey-2.46/mozilla/js/src/configure
make[1]: Entering directory '/home/bob/compile/seamonkey-2.46'
cd /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu
/home/bob/compile/seamonkey-2.46/configure
Creating Python environment
New python executable in /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/_virtualenv/bin/python2.7
Also creating executable in /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/_virtualenv/bin/python
Installing setuptools, pip, wheel...done.
running build_ext
copying build/lib.linux-x86_64-2.7/psutil/_psutil_linux.so -> psutil
copying build/lib.linux-x86_64-2.7/psutil/_psutil_posix.so -> psutil

Reexecuting in the virtualenv
Adding configure options from /home/bob/compile/seamonkey-2.46/mozconfig
--disable-dbus
--disable-necko-wifi
--enable-startup-notification
--disable-pulseaudio
--disable-gconf
--enable-system-sqlite
--with-system-libevent
--with-system-libvpx
--with-system-nspr
--with-system-nss
--prefix=/usr
--enable-application=suite
--disable-crashreporter
--disable-updater
--disable-tests
--enable-optimize
--enable-strip
--enable-install-strip
--enable-gio
--enable-official-branding
--enable-safe-browsing
--enable-url-classifier
--enable-system-ffi
--enable-system-pixman
--with-pthreads
--with-system-bz2
--with-system-jpeg
--with-system-png
--with-system-zlib
checking for a shell... /bin/sh
checking for host system type... x86_64-pc-linux-gnu
checking for target system type... x86_64-pc-linux-gnu
checking whether cross compiling... no
checking for pkg_config... /usr/bin/pkg-config
checking for pkg-config version... 0.29.1
checking for tar... /bin/tar
checking for unzip... /usr/bin/unzip
checking for zip... /usr/bin/zip
checking for yasm... /usr/bin/yasm
checking yasm version... 1.3.0
checking for the target C compiler... /usr/bin/gcc
checking whether the target C compiler can be used... yes
checking the target C compiler version... 6.3.0
checking for the target C++ compiler... /usr/bin/g++
checking whether the target C++ compiler can be used... yes
checking the target C++ compiler version... 6.3.0
checking for the host C compiler... /usr/bin/gcc
checking whether the host C compiler can be used... yes
checking the host C compiler version... 6.3.0
checking for the host C++ compiler... /usr/bin/g++
checking whether the host C++ compiler can be used... yes
checking the host C++ compiler version... 6.3.0
checking for awk... /usr/bin/gawk
checking for perl... /usr/bin/perl
checking for minimum required perl version >= 5.006... 5.024001
checking for full perl installation... yes
checking for doxygen... /usr/bin/doxygen
checking for xargs... /usr/bin/xargs
checking for rpmbuild... not found
checking for autoconf... /usr/bin/autoconf2.13
Refreshing /home/bob/compile/seamonkey-2.46/mozilla/old-configure with /usr/bin/autoconf2.13
creating cache ./config.cache
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking build system type... x86_64-pc-linux-gnu
checking for objcopy... /usr/bin/objcopy
checking for gcc... /usr/bin/gcc -std=gnu99
checking whether the C compiler (/usr/bin/gcc -std=gnu99 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 ) works... yes
checking whether the C compiler (/usr/bin/gcc -std=gnu99 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether /usr/bin/gcc -std=gnu99 accepts -g... yes
checking for c++... /usr/bin/g++ -std=gnu++11
checking whether the C++ compiler (/usr/bin/g++ -std=gnu++11 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 ) works... yes
checking whether the C++ compiler (/usr/bin/g++ -std=gnu++11 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 ) is a cross-compiler... no
checking whether we are using GNU C++... yes
checking whether /usr/bin/g++ -std=gnu++11 accepts -g... yes
checking for ranlib... ranlib
checking for as... /usr/bin/as
checking for ar... ar
checking for ld... ld
checking for strip... strip
checking for windres... no
checking for otool... no
checking for rustc... no
checking how to run the C preprocessor... /usr/bin/gcc -std=gnu99 -E
checking how to run the C++ preprocessor... /usr/bin/g++ -std=gnu++11 -E
checking for make... /usr/bin/make
checking for X... libraries , headers
checking for dnet_ntoa in -ldnet... no
checking for dnet_ntoa in -ldnet_stub... no
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking that static assertion macros used in autoconf tests work... yes
checking for --noexecstack option to as... yes
checking for -z noexecstack option to ld... yes
checking for -z text option to ld... yes
checking for --build-id option to ld... yes
checking for --ignore-unresolved-symbol option to ld... yes
checking if toolchain supports -mssse3 option... yes
checking if toolchain supports -msse4.1 option... yes
checking for x86 AVX2 asm support in compiler... yes
checking whether the C compiler supports -Wclass-varargs... no
checking whether the C compiler supports -Wloop-analysis... no
checking whether the C compiler supports -Wthread-safety... no
checking whether the C compiler supports -Wno-error=maybe-uninitialized... yes
checking whether the C compiler supports -Wno-error=deprecated-declarations... yes
checking whether the C compiler supports -Wno-error=array-bounds... yes
checking whether the C++ compiler supports -Wc++11-compat-pedantic... no
checking whether the C++ compiler supports -Wc++14-compat... yes
checking whether the C++ compiler supports -Wc++14-compat-pedantic... no
checking whether the C++ compiler supports -Wc++1z-compat... no
checking whether the C++ compiler supports -Wclass-varargs... no
checking whether the C++ compiler supports -Wimplicit-fallthrough... no
checking whether the C++ compiler supports -Wloop-analysis... no
checking whether the C++ compiler supports -Wthread-safety... no
checking whether the C++ compiler supports -Wno-inline-new-delete... no
checking whether the C++ compiler supports -Wno-error=maybe-uninitialized... yes
checking whether the C++ compiler supports -Wno-error=deprecated-declarations... yes
checking whether the C++ compiler supports -Wno-error=array-bounds... yes
checking for 64-bit OS... yes
checking whether the C++ compiler (/usr/bin/g++ -std=gnu++11 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-exceptions -fno-strict-aliasing -fno-rtti -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id) actually is a C++ compiler... yes
checking for ANSI C header files... yes
checking for working const... yes
checking for mode_t... yes
checking for off_t... yes
checking for pid_t... yes
checking for size_t... yes
checking whether 64-bits std::atomic requires -latomic... no
checking for dirent.h that defines DIR... yes
checking for opendir in -ldir... no
checking for sys/byteorder.h... no
checking for compat.h... no
checking for getopt.h... yes
checking for sys/bitypes.h... yes
checking for memory.h... yes
checking for unistd.h... yes
checking for gnu/libc-version.h... yes
checking for nl_types.h... yes
checking for malloc.h... yes
checking for X11/XKBlib.h... yes
checking for io.h... no
checking for cpuid.h... yes
checking for sys/statvfs.h... yes
checking for sys/statfs.h... yes
checking for sys/vfs.h... yes
checking for sys/mount.h... yes
checking for sys/quota.h... yes
checking for sys/sysmacros.h... yes
checking for linux/quota.h... yes
checking for linux/if_addr.h... yes
checking for linux/rtnetlink.h... yes
checking for sys/queue.h... yes
checking for sys/types.h... yes
checking for netinet/in.h... yes
checking for byteswap.h... yes
checking for sockaddr_in.sin_len... false
checking for sockaddr_in6.sin6_len... false
checking for sockaddr.sa_len... false
checking for linux/perf_event.h... yes
checking for perf_event_open system call... yes
checking for gethostbyname_r in -lc_r... no
checking for library containing dlopen... -ldl
checking for dlfcn.h... yes
checking for dladdr... yes
checking for memmem... yes
checking for socket in -lsocket... no
checking for XDrawLines in -lX11... yes
checking for XextAddDisplay in -lXext... yes
checking for XtFree in -lXt... yes
checking for XShmCreateImage in -lXext... yes
checking for X11/extensions/scrnsaver.h... yes
checking for XScreenSaverQueryInfo in -lXss... yes
checking for pthread_create in -lpthreads... no
checking for pthread_create in -lpthread... yes
checking whether /usr/bin/gcc -std=gnu99 accepts -pthread... yes
checking for pthread.h... yes
checking whether /usr/bin/gcc -std=gnu99 needs -traditional... no
checking for 8-bit clean memcmp... yes
checking for stat64... yes
checking for lstat64... yes
checking for truncate64... yes
checking for statvfs64... yes
checking for statvfs... yes
checking for statfs64... yes
checking for statfs... yes
checking for getpagesize... yes
checking for gmtime_r... yes
checking for localtime_r... yes
checking for arc4random... no
checking for arc4random_buf... no
checking for mallinfo... yes
checking for gettid... no
checking for lchown... yes
checking for setpriority... yes
checking for strerror... yes
checking for syscall... yes
checking for clock_gettime(CLOCK_MONOTONIC)...
checking for wcrtomb... yes
checking for mbrtowc... yes
checking for res_ninit()... yes
checking for iconv in -lc... yes
checking for iconv()... yes
checking for iconv() with const input... no
checking for nl_langinfo and CODESET... yes
checking for an implementation of va_copy()... yes
checking whether va_list can be copied by value... no
checking whether the C++ "using" keyword resolves ambiguity... yes
checking for C++ dynamic_cast to void*... yes
checking for __thread keyword for TLS variables... yes
checking for __attribute__((always_inline))... yes
checking for LC_MESSAGES... yes
checking for localeconv... yes
checking for malloc.h... (cached) yes
checking for alloca.h... yes
checking for strndup... yes
checking for posix_memalign... yes
checking for memalign... yes
checking for malloc_usable_size... yes
checking for malloc.h... (cached) yes
checking whether malloc_usable_size definition can use const argument... no
checking for valloc in malloc.h... yes
checking for valloc in unistd.h... no
checking NSPR selection... system
checking for nspr-config... /usr/bin/nspr-config
checking for NSPR - version >= 4.12... yes
checking for libevent... yes
checking MOZ_LIBEVENT_CFLAGS...
checking MOZ_LIBEVENT_LIBS... -levent
checking for nss-config... /usr/bin/nss-config
checking for NSS - version >= 3.25... yes
checking for jpeg_destroy_compress in -ljpeg... yes
checking for gzread in -lz... yes
checking for BZ2_bzread in -lbz2... yes
checking for png_get_valid in -lpng... yes
checking for png_get_acTL in -lpng... yes
checking for libffi >= 3.0.9... yes
checking MOZ_FFI_CFLAGS...
checking MOZ_FFI_LIBS... -L/usr/lib/../lib -lffi
checking if app-specific confvars.sh exists... /home/bob/compile/seamonkey-2.46/mozilla/../suite/confvars.sh
checking for gtk+-3.0 >= 3.4.0 gtk+-unix-print-3.0 glib-2.0 gobject-2.0 ... Package gtk+-3.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-3.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-3.0' found Package gtk+-unix-print-3.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-unix-print-3.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-unix-print-3.0' found
configure: error: Library requirements (gtk+-3.0 >= 3.4.0 gtk+-unix-print-3.0 glib-2.0 gobject-2.0 ) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
DEBUG: <truncated - see config.log for full output>
DEBUG: configure:13700: checking for NSS - version >= 3.25
DEBUG: configure:13781: checking for jpeg_destroy_compress in -ljpeg
DEBUG: configure:13800: /usr/bin/gcc -std=gnu99 -o conftest -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -fno-math-errno -pthread -lpthread -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -B /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/build/unix/gold conftest.c -ljpeg -ldl 1>&5
DEBUG: configure:13840: /usr/bin/gcc -std=gnu99 -c -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -fno-math-errno -pthread conftest.c 1>&5
DEBUG: configure:13887: checking for gzread in -lz
DEBUG: configure:13906: /usr/bin/gcc -std=gnu99 -o conftest -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -fno-math-errno -pthread -lpthread -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -B /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/build/unix/gold conftest.c -lz -ldl 1>&5
DEBUG: configure:13941: /usr/bin/gcc -std=gnu99 -c -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -fno-math-errno -pthread conftest.c 1>&5
DEBUG: configure:13989: checking for BZ2_bzread in -lbz2
DEBUG: configure:14008: /usr/bin/gcc -std=gnu99 -o conftest -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -fno-math-errno -pthread -lpthread -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -B /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/build/unix/gold conftest.c -lbz2 -ldl 1>&5
DEBUG: configure:14057: checking for png_get_valid in -lpng
DEBUG: configure:14076: /usr/bin/gcc -std=gnu99 -o conftest -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -fno-math-errno -pthread -lpthread -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -B /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/build/unix/gold conftest.c -lpng -ldl 1>&5
DEBUG: configure:14098: checking for png_get_acTL in -lpng
DEBUG: configure:14117: /usr/bin/gcc -std=gnu99 -o conftest -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -fno-math-errno -pthread -lpthread -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -B /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/build/unix/gold conftest.c -lpng -ldl 1>&5
DEBUG: configure:14165: /usr/bin/gcc -std=gnu99 -c -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -fno-math-errno -pthread conftest.c 1>&5
DEBUG: configure:14293: checking for libffi >= 3.0.9
DEBUG: configure:14300: checking MOZ_FFI_CFLAGS
DEBUG: configure:14305: checking MOZ_FFI_LIBS
DEBUG: configure:14543: checking if app-specific confvars.sh exists
DEBUG: configure:15475: checking for gtk+-3.0 >= 3.4.0 gtk+-unix-print-3.0 glib-2.0 gobject-2.0
DEBUG: configure: error: Library requirements (gtk+-3.0 >= 3.4.0 gtk+-unix-print-3.0 glib-2.0 gobject-2.0 ) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
ERROR: old-configure failed
*** Fix above errors and then restart with\
"make -f client.mk build"
make[1]: *** [/home/bob/compile/seamonkey-2.46/client.mk:353: configure] Error 1
make[1]: Leaving directory '/home/bob/compile/seamonkey-2.46'
make: *** [client.mk:365: /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/Makefile] Error 2
bob@artemis:~/compile/seamonkey-2.46 $
 
Old 05-30-2017, 10:30 PM   #2
Luridis
Member
 
Registered: Mar 2014
Location: Texas
Distribution: LFS 9.0 Custom, Merged Usr, Linux 4.19.x
Posts: 616

Rep: Reputation: 167Reputation: 167
Recent package changes are sometimes overlooked in the books. When last I looked, they were in the process of porting Seamonkey to GTK3. Other packages are too, like Mate. So, I imagine at some point it will become required and maybe the current version has reached that point.

If that isn't the case, the other options are: You enabled something that requires GTK3. You missed something in the instructions. Or, you installed something that was picked up by the build scripts that needs GTK3. I would start by attempting to run confvars.sh by hand and then looking in the script to see if it just checks for GTK3, or checks for it conditionally if something else was found or requested by the build.

Last edited by Luridis; 05-30-2017 at 10:32 PM.
 
Old 05-31-2017, 01:52 PM   #3
ondoho
LQ Addict
 
Registered: Dec 2013
Posts: 19,872
Blog Entries: 12

Rep: Reputation: 6053Reputation: 6053Reputation: 6053Reputation: 6053Reputation: 6053Reputation: 6053Reputation: 6053Reputation: 6053Reputation: 6053Reputation: 6053Reputation: 6053
seamonkey nowadays defaults to gtk3, but it seems it's still possible to compile it with gtk2.
here's an archlinux PKGBUILD that should help you figure it out:
Code:
pkgname=seamonkey-gtk2
_pkgname=seamonkey
pkgver=2.46
pkgrel=2
pkgdesc="SeaMonkey internet suite (GTK2 version)"
arch=('i686' 'x86_64')
license=('MPL')
depends=('alsa-lib'  'dbus-glib'  'desktop-file-utils'  'gtk2' 'hunspell'  'libevent'  'libnotify'  '$
makedepends=('unzip' 'zip' 'pkg-config'  'python2' 'yasm' 'wireless_tools' 'mesa' 'autoconf2.13' 'ima$
optdepends=('gst-plugins-base: vorbis decoding, ogg demuxing'
            'gst-plugins-bad: aac, vp8 and opus decoding'
            'gst-plugins-good: webm and mp4 demuxing'
            'gst-plugins-ugly: h.264 decoding')
url="http://www.seamonkey-project.org/"
provides=("$_pkgname=$pkgver.$pkgrel")
conflicts=("$_pkgname")
source=(https://archive.mozilla.org/pub/mozilla.org/seamonkey/releases/$pkgver/source/seamonkey-$pkgv$
        mozconfig
        seamonkey-2.0-lang.patch
        rhbz-966424.patch
        mozbug1323209.patch
        mozbug1329272.patch)
sha256sums=('39c84ce6fa1ed7c30152473e0dcd858df07437e84b29e5a18973db437a28a912'
            '9a730ec71744e9e674a7922cd573fe2428f39ee53b0c3c8912053a910975f1d8'
            'ab19d10fbd6258aec37ab5e5efb12429814b2c24a1193284a48dd654311b4e2e'
            '746cb474c5a2c26fc474256e430e035e604b71b27df1003d4af85018fa263f4a'
            '87fb92e45f161d47b9e3ca31bcce60555bc33d633116dab4baa3bfba6ad965c4'
            '33c7031781357faf5fba7140d7723bf301c1569068922477742ac958ee82e62b')

prepare() {
  cd "$_pkgname-$pkgver"
  cp ../mozconfig .mozconfig
  echo "ac_add_options --enable-default-toolkit=cairo-gtk2" >>.mozconfig
  #patch -Np1 -i ../seamonkey-2.0-lang.patch

  # FS#48404
  #echo "ac_add_options --enable-gstreamer=1.0" >> .mozconfig

  # https://bugs.archlinux.org/task/mozbug1329272.patch

  # Don't exit with error when some libs are missing which we have in
  # system.
  sed -i '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' suite/installer/Makefile.in

  # configure script misdetects the preprocessor without an optimization level
  sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure

  # 2.26 build fix from wgnie (blfs ch 37)
  sed -i 's/$(MOZ_ZLIB_CFLAGS)/& $(MOZ_PIXMAN_CFLAGS)/' config/config.mk
}

build() {
  cd "$_pkgname-$pkgver"
  export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/seamonkey-$pkgver"
  export MOZ_MAKE_FLAGS="$MAKEFLAGS"
  unset MAKEFLAGS
  unset CPPFLAGS

  # GCC 6
  CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
  CXXFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"

  make -j1 -f client.mk build
}

package() {
  cd "$_pkgname-$pkgver"

  make -j1 -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install

  rm -rf "$pkgdir"/usr/lib/seamonkey-$pkgver/{dictionaries,hyphenation}
  ln -s /usr/share/hunspell "$pkgdir/usr/lib/seamonkey-$pkgver/dictionaries"
  ln -s /usr/share/hyphen "$pkgdir/usr/lib/seamonkey-$pkgver/hyphenation"

  install -Dm644 suite/branding/nightly/icons/gtk/seamonkey.png \
                "$pkgdir/usr/share/pixmaps/seamonkey.png"

  install -Dm644 mozilla/toolkit/mozapps/installer/linux/rpm/mozilla.desktop \
                "$pkgdir/usr/share/applications/seamonkey.desktop"
  sed -i 's/@MOZ_APP_DISPLAYNAME@/SeaMonkey internet suite/' \
                "$pkgdir/usr/share/applications/seamonkey.desktop"
  sed -i 's/@MOZ_APP_NAME@/seamonkey/' "$pkgdir/usr/share/applications/seamonkey.desktop"

  rm -f "$pkgdir/usr/lib/pkgconfig/"seamonkey-ns{s,pr}.pc
  #rm -r "$pkgdir"/usr/{include,lib/seamonkey-devel-$pkgver,share/idl}
}
 
Old 05-31-2017, 07:47 PM   #4
Keith Hedger
Senior Member
 
Registered: Jun 2010
Location: Wiltshire, UK
Distribution: Void, Linux From Scratch, Slackware64
Posts: 3,152

Rep: Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856
Found a similar problem with chromium, it wont build the tools without gtk3, even though gtk2 is specifed, after building ldd on the chromium binarys says that they are linked against gtk2, personally i detest gtk3 its the biggest peice of broken crap i' e ever had to use.
 
Old 05-31-2017, 09:32 PM   #5
Luridis
Member
 
Registered: Mar 2014
Location: Texas
Distribution: LFS 9.0 Custom, Merged Usr, Linux 4.19.x
Posts: 616

Rep: Reputation: 167Reputation: 167
Quote:
Originally Posted by Keith Hedger View Post
personally i detest gtk3 its the biggest peice of broken crap i' e ever had to use.


Sometimes, I think those developers don't know if they're coming or going...

Quote:
The new release of Gtk is going to be fully parallel-installable with the old one. Gtk 4 and Gtk 3 will install alongside each other in exactly the same way as Gtk 2 and Gtk 3 ... (Note how this person says this as if the GTK2/3 divide did not cause an explosion of necessary problems that lasted for years.)

(Later in same post)
Meanwhile, Gtk 4.0 will not be the final stable API of what we would call “Gtk 4”. Each 6 months, the new release (Gtk 4.2, Gtk 4.4, Gtk 4.6) will break API and ABI vs. the release that came before it. These incompatible minor versions will not be fully parallel installable; they will use the same pkg-config name and the same header file directory... (SOURCE)
Emphasis mine. I read sh..stuff like that and say to myself, "This person cannot possibly have an engineering degree. This is how children build 'forts' in the woods or sandcastles on a beach." What moron would put people with that kind of ineptitude for vision and forethought in charge of a software library? Between that and the horrid idea they call "introspection", I have to believe someone is either asleep at the wheel or on drugs on the Gnome team.

Qt and EFL aren't perfect either, but it appears they at least try to be consistent. The GTK people are basically saying that they're planning to change their mind at regular intervals.

Last edited by Luridis; 05-31-2017 at 09:36 PM.
 
Old 06-01-2017, 05:04 AM   #6
Keith Hedger
Senior Member
 
Registered: Jun 2010
Location: Wiltshire, UK
Distribution: Void, Linux From Scratch, Slackware64
Posts: 3,152

Rep: Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856
+1000
Alas as a small developer I have to put up with all the breakages caused by gtk3, I am slowly transferring all my projects to QT but it's sllooooowww.

Anyway rant over back to the subject at hand ...
 
Old 06-01-2017, 07:29 AM   #7
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 651

Original Poster
Blog Entries: 135

Rep: Reputation: 188Reputation: 188
The md5sum of the source tar matches what is in the BLFS8 book. This means that the version I downloaded is the version that was used/tested/tried at the time before this version of the book was released. So in order for me to have downloaded a version that fails to compile as instructed in the book, the authors of said book would have failed to actually check that the package compiles as per their instructions. Either that or the md5sum was deliberately fudged later on by the mozilla developers. Possible, but unlikely: why would they bother?

Here is a quote from the BLFS8 book, with regard to
SeaMonkey's dependencies:
Quote:
SeaMonkey Dependencies

Required

alsa-lib-1.1.3, Autoconf-2.13, GTK+-2.24.31, UnZip-6.0, yasm-1.3.0, and
Zip-3.0

Recommended

ICU-58.2, libevent-2.1.8, libvpx-1.6.1, NSPR-4.13.1, NSS-3.29, and
SQLite-3.17.0
Now maybe my eyesight is failing, but I am sure that I see a "GTK+-2" in there, and do not see a "GTK 3". Again, I would think that the developers of BLFS would have checked something like that before commiting the book for stable release.

There are multiple confvars.sh files. The one in the suite directory seemed likely to be the one most likely to be relavent. Looking thruogh that, and then some trial and error, proved to be a waste of time.

Deciding to use the mozconfig file to nudge the compile process towards gtk2 and away
from gtk3, I added the following line:

Code:
ac_add_options --enable-default-toolkit-cairo-gtk2
Aside from that, my mozconfig is still as it is in the book. Unfortunately, that did not fix anything and did not change the error message.

@ondoho: i will see if I can give that a try. Thank you.

Thank you, all, for the replies. This stuff is rocket science, so I need all the advice I can get.

p.s. Honestly, my impression was the the unix community at large was simply ignoring gtk3 and going about their business as if gtk2 was the one-and-only version. Whatever. Now if gtk3 had a built in compatibility layer for gtk2 and gtk, analogous to how alsa has one for oss, that would be a different story.

p.p.s. @Keith Hedger: Oh, I agree, totally ... it's just that I've made some nice themes for gtk2. Sigh. :/

Last edited by jr_bob_dobbs; 06-01-2017 at 07:31 AM.
 
Old 06-01-2017, 02:29 PM   #8
Keith Hedger
Senior Member
 
Registered: Jun 2010
Location: Wiltshire, UK
Distribution: Void, Linux From Scratch, Slackware64
Posts: 3,152

Rep: Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856Reputation: 856
If you like gtk 2 themes have a look here:

http://khapplications.darktech.org/pages/themes.html

 
Old 06-05-2017, 05:06 PM   #9
jr_bob_dobbs
Member
 
Registered: Mar 2009
Distribution: Bedrock, Devuan, Slackware, Linux From Scratch, Void
Posts: 651

Original Poster
Blog Entries: 135

Rep: Reputation: 188Reputation: 188
Messed around a bit more.

Log of the session, showing what I typed:
Code:
bob@artemis:~/compile/seamonkey-2.46 $ ../compile_seamonkey.sh
mkdir -p '/home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/'
> /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/.mozconfig.mk
Generating /home/bob/compile/seamonkey-2.46/configure
sed '1,/^divert/d' /home/bob/compile/seamonkey-2.46/configure.in > /home/bob/compile/seamonkey-2.46/configure
chmod +x /home/bob/compile/seamonkey-2.46/configure
Generating /home/bob/compile/seamonkey-2.46/mozilla/configure
sed '1,/^divert/d' /home/bob/compile/seamonkey-2.46/mozilla/configure.in > /home/bob/compile/seamonkey-2.46/mozilla/configure
chmod +x /home/bob/compile/seamonkey-2.46/mozilla/configure
Generating /home/bob/compile/seamonkey-2.46/mozilla/js/src/configure
sed '1,/^divert/d' /home/bob/compile/seamonkey-2.46/mozilla/js/src/configure.in > /home/bob/compile/seamonkey-2.46/mozilla/js/src/configure
chmod +x /home/bob/compile/seamonkey-2.46/mozilla/js/src/configure
make[1]: Entering directory '/home/bob/compile/seamonkey-2.46'
cd /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu
/home/bob/compile/seamonkey-2.46/configure
Creating Python environment
New python executable in /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/_virtualenv/bin/python2.7
Also creating executable in /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/_virtualenv/bin/python
Installing setuptools, pip, wheel...done.
running build_ext
copying build/lib.linux-x86_64-2.7/psutil/_psutil_linux.so -> psutil
copying build/lib.linux-x86_64-2.7/psutil/_psutil_posix.so -> psutil

Reexecuting in the virtualenv
ERROR: Cannot find project browser
*** Fix above errors and then restart with\
               "make -f client.mk build"
make[1]: *** [/home/bob/compile/seamonkey-2.46/client.mk:353: configure] Error 1
make[1]: Leaving directory '/home/bob/compile/seamonkey-2.46'
make: *** [client.mk:365: /home/bob/compile/seamonkey-2.46/obj-x86_64-pc-linux-gnu/Makefile] Error 2
bob@artemis:~/compile/seamonkey-2.46 $
contents of my mozconfig:
Code:
# my additions:

#ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-default-toolkit=cairo-gtk2-x11
ac_add_options --enable-application=browser

#end my additions


# as per the blfs8 book:

# If you have a multicore machine, all cores will be used by default.
# If desired, you can reduce the number of cores used, e.g. to 1, by
# uncommenting the next line and setting a valid number of CPU cores.
#mk_add_options MOZ_MAKE_FLAGS="-j1"

# If you have installed DBus-Glib comment out this line:
ac_add_options --disable-dbus

# If you have installed dbus-glib, and you have installed (or will install)
# wireless-tools, and you wish to use geolocation web services, comment out
# this line
ac_add_options --disable-necko-wifi

# Uncomment these two lines if you have installed optional dependencies:
#ac_add_options --enable-system-hunspell
#ac_add_options --enable-startup-notification

# Comment out the following option if you have PulseAudio installed
ac_add_options --disable-pulseaudio

# Comment out following option if you have gconf installed
ac_add_options --disable-gconf

# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --enable-system-sqlite
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss

# Us the internal version of icu due to execution problems
#ac_add_options --with-system-icu

# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=suite

ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests

ac_add_options --enable-optimize
ac_add_options --enable-strip
ac_add_options --enable-install-strip

ac_add_options --enable-gio
ac_add_options --enable-official-branding
ac_add_options --enable-safe-browsing
ac_add_options --enable-url-classifier

# Use internal cairo due to reports of unstable execution with
# system cairo
#ac_add_options --enable-system-cairo
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman

ac_add_options --with-pthreads

ac_add_options --with-system-bz2
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib

# actual end of this file
compile_mozzilla.sh is a simple script to do the copy-in sed and ../configure as in the book. Here are the relavent lines:
Code:
# pre-configure tweaks
CFLAGS_HOLD=$CFLAGS
CXXFLAGS_HOLD=$CXXFLAGS
EXTRA_FLAGS=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
export CFLAGS+=$EXTRA_FLAGS
export CXXFLAGS+=$EXTRA_FLAGS
unset EXTRA_FLAGS

sed -e 's/256/224/'                                   \
    -i mozilla/netwerk/protocol/http/Http2Session.cpp &&

sed -e '/version=/s/:space:/[&]/' \
    -i ./mozilla/build/autoconf/icu.m4 &&

sed -e s/_EVENT_SIZEOF/EVENT__SIZEOF/ \
    -i mozilla/ipc/chromium/src/base/message_pump_libevent.cc

make -f client.mk
The original error of the gtk3 is gone. In that regard, I suppose the original topic of this thread is solved. Problem is, a new problem. And it is not like the error message has any hint as to what the problem is. Whatever.

Thanks everyone for the replies, though.
 
Old 01-12-2018, 09:59 AM   #10
ordealbyfire83
Member
 
Registered: Oct 2006
Location: Leiden, Netherlands
Distribution: LFS, Ubuntu Hardy
Posts: 302

Rep: Reputation: 89
A couple things for those who want to build SeaMonkey with gtk2...

The relevant option should be

Code:
ac_add_options --enable-default-toolkit=cairo-gtk2
(an equals sign before cairo-gtk). The configure script for 2.49.1 doesn't output all of the available configure options when "--help" is passed so that may be hard to figure out.

For the last post, ac_add_options --enable-application=suite should be used for SeaMonkey instead of ...=browser. I'm not sure that option even needs to be passed at all with recent versions.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
BLFS8: dbus, deciding if I want it or not jr_bob_dobbs Linux From Scratch 9 06-12-2017 11:47 PM
blfs8: first xorg package: possible failure jr_bob_dobbs Linux From Scratch 7 05-24-2017 10:19 PM
[BUG] in seamonkey 2.9 slackbuild; does not create usr/include/seamonkey-2.9/nss -> . zerouno Slackware 5 05-02-2012 03:21 AM
Seamonkey and Seamonkey libs update for Slackware 13.1? Lufbery Slackware 7 08-05-2011 03:00 AM
LXer: SeaMonkey 1.0.6 and SeaMonkey 1.1 Beta Released LXer Syndicated Linux News 0 11-09-2006 02:33 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Linux From Scratch

All times are GMT -5. The time now is 12:27 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration