Personal notes and recipes, views and opinions.
If it must run, it runs on Solaris!
Showing posts with label App. Show all posts
Showing posts with label App. Show all posts
Thursday, June 7, 2018
Building libxslt 1.1.32
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libxslt-1.1.32.tar.gz
...
$ cd libxml2/libxslt-1.1.32-32
$ source ../setenv-1.1.32 32
Configuration file [version 4]: /stage/build/libxslt/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/libxslt/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/libxslt/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu99
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-1.1.32 32
For IPS package:
# gmake DESTDIR=/stage/prototype/libxslt/1.1.32/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@libxslt-1.1.32
Building libxml2 2.98
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libxml2-2.9.8.tar.gz
...
$ cd libxml2/libxml2-2.9.8-32
$ source ../setenv-2.9.8 32
Configuration file [version 4]: /stage/build/libxml2/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/libxml2/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/libxml2/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu99
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-2.9.8 32
For IPS package:
# gmake DESTDIR=/stage/prototype/libxml2/2.9.8/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@libxml2-2.9.8
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libxml2-2.9.8.tar.gz
...
$ cd libxml2/libxml2-2.9.8-32
$ source ../setenv-2.9.8 32
Configuration file [version 4]: /stage/build/libxml2/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/libxml2/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/libxml2/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu99
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-2.9.8 32
For IPS package:
# gmake DESTDIR=/stage/prototype/libxml2/2.9.8/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@libxml2-2.9.8
Building GNU libunistring 0.9.10
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libunistring-0.9.10.tar.gz
...
$ cd libunistring/libunistring-0.9.10-32
$ source ../setenv-0.9.10 32
Configuration file [version 4]: /stage/build/libunistring/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/libunistring/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/libunistring/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-0.9.10 32
For IPS package:
# gmake DESTDIR=/stage/prototype/libunistring/0.9.10/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@libunistring-0.9.10
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libunistring-0.9.10.tar.gz
...
$ cd libunistring/libunistring-0.9.10-32
$ source ../setenv-0.9.10 32
Configuration file [version 4]: /stage/build/libunistring/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/libunistring/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/libunistring/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-0.9.10 32
For IPS package:
# gmake DESTDIR=/stage/prototype/libunistring/0.9.10/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@libunistring-0.9.10
Building GNU libiconv 1.15
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libiconv-1.15.tar.gz
...
$ cd libiconv/libiconv-1.15-32
$ source ../setenv-1.15 32
Configuration file [version 4]: /stage/build/libiconv/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/libiconv/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/libiconv/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-1.15 32
For IPS package:
# gmake DESTDIR=/stage/prototype/libiconv/1.15/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@libiconv-1.15
NOTE
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libiconv-1.15.tar.gz
...
$ cd libiconv/libiconv-1.15-32
$ source ../setenv-1.15 32
Configuration file [version 4]: /stage/build/libiconv/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/libiconv/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/libiconv/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-1.15 32
For IPS package:
# gmake DESTDIR=/stage/prototype/libiconv/1.15/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@libiconv-1.15
NOTE
This build is somewhat tricky because it has a cyclic dependency on GNU gettext, which depends back on GNU libiconv. One way to solve the issue is to build GNU libiconv first using --without-libintl-prefix, then GNU gettext and finally GNU libiconv once more using --with-libintl-prefix=/opt/gnu. But before getting to GNU gettext, one should pass by GNU libunistring, GNU libxml2 and perhaps ncurses.
Building GNU gperf 3.1
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../gperf-3.1.tar.gz
...
$ cd gperf/gperf-3.1-32
$ source ../setenv-3.1 32
Configuration file [version 4]: /stage/build/gperf/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/gperf/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/gperf/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-3.1 32
For IPS package:
# gmake DESTDIR=/stage/prototype/gperf/3.1/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@gperf-3.1
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../gperf-3.1.tar.gz
...
$ cd gperf/gperf-3.1-32
$ source ../setenv-3.1 32
Configuration file [version 4]: /stage/build/gperf/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/gperf/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/gperf/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-3.1 32
For IPS package:
# gmake DESTDIR=/stage/prototype/gperf/3.1/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@gperf-3.1
Buidling GNU readline 5.1
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../readline-5.1.tar.gz
...
$ cd readline/readline-5.1-32
$ source ../setenv-5.1 32
Configuration file [version 4]: /stage/build/readline/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/readline/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/readline/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-5.1 32
For IPS package:
# gmake DESTDIR=/stage/prototype/readline/5.1/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@readline-5.1
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../readline-5.1.tar.gz
...
$ cd readline/readline-5.1-32
$ source ../setenv-5.1 32
Configuration file [version 4]: /stage/build/readline/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/readline/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/readline/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-5.1 32
For IPS package:
# gmake DESTDIR=/stage/prototype/readline/5.1/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@readline-5.1
Tuesday, June 5, 2018
Building SQLite 3.24.0
I'm updating my SQLite to the latest version as by the time of this writing. The last time I did that (on July 2017, hence almost 1 year ago) I was able to build version 3.19.3. This time I'm building version 3.24.0. Just to make things more interesting I'm building it on an even older system, a 32-bits Solaris 11 Express SRU-14, wow!
Roughly speaking the procedure is virtually the same, but there were minor hurdles which I still don't know if they are due to new version or the older system. Anyway, I document the workarounds so that it shall help build some knowledge on the matter for future attempts on building newer versions.
Roughly speaking the procedure is virtually the same, but there were minor hurdles which I still don't know if they are due to new version or the older system. Anyway, I document the workarounds so that it shall help build some knowledge on the matter for future attempts on building newer versions.
Thursday, May 31, 2018
Building Mercurial 4.6
On a world where the popular way is to adopt Linux and Git I still would select Solaris and Mercurial as more specific and powerful alternatives.
Solaris 11.3 GA offers Mercurial 3.4 (still straight through from Selenic Consulting) while Solaris 11 Express offered the even older ancient version 1.3.1. Of course, that's crazy for the present time as they both can be considered relics! So I set to instate an upgraded version all by myself instead of waiting or relying on the official distribution of Solaris, which understandably is not strongly focused on this particular matter.
My goal is to achieve the following even under a legacy Solaris 11 Express 32-bits!
$ hg --version
Mercurial Distributed SCM (version 4.6)
(see https://mercurial-scm.org for more information)
Copyright (C) 2005-2018 Matt Mackall and others
This is free software; see the source for copying conditions.
There is NO warranty; not even for ... A PARTICULAR PURPOSE. (Wow!)
As usual, I begin by downloading the source-code tarball from the official web site and, once more, I perform the basic building strategy and general assumptions already detailed on one of my previous posts: Staged Building.
Solaris 11.3 GA offers Mercurial 3.4 (still straight through from Selenic Consulting) while Solaris 11 Express offered the even older ancient version 1.3.1. Of course, that's crazy for the present time as they both can be considered relics! So I set to instate an upgraded version all by myself instead of waiting or relying on the official distribution of Solaris, which understandably is not strongly focused on this particular matter.
My goal is to achieve the following even under a legacy Solaris 11 Express 32-bits!
$ hg --version
Mercurial Distributed SCM (version 4.6)
(see https://mercurial-scm.org for more information)
Copyright (C) 2005-2018 Matt Mackall and others
This is free software; see the source for copying conditions.
There is NO warranty; not even for ... A PARTICULAR PURPOSE. (Wow!)
As usual, I begin by downloading the source-code tarball from the official web site and, once more, I perform the basic building strategy and general assumptions already detailed on one of my previous posts: Staged Building.
Wednesday, May 30, 2018
Installing Docutils 0.14
I've recently built and installed Python version 2.7.15 on Solaris 11 Express. Soon after I was trying to install the latest version of Mercurial (4.6 at the time of this writing), but on the last moments I've got to know the required dependency on Docutils, a Python utility which positions itself as:
"Docutils is an open-source text processing system for processing plaintext documentation into useful formats, such as HTML, LaTeX, man-pages, open-document or XML. It includes reStructuredText, the easy to read, easy to use, what-you-see-is-what-you-get plaintext markup language."People seem to prefer, for obvious reasons I presume, the acronym ReST instead of the very long name ReStructuredText and I've visited the ReST Primer in order to know a little something about it and, well, OK, thank you. Anyway:
"This primer introduces the most common features of reStructuredText, but there are a lot more to explore. The Quick reStructuredText user reference is a good place to go next. For complete details, the reStructuredText Markup Specification is the place to go [1]."To install it:
Tuesday, May 29, 2018
Building Python 2.7.15
On this post I'll document how to build the (up to this writing) latest version of Python version 2 series. But instead of doing it under a 64-bits Solaris 11.3 GA, this time I'll do it under a 32-bits Solaris 11 Express SRU-14. I'll do so because Python has become an important technology upon which many other depend and because running 32-bits software is still important in the 3rd world where most of people remain on a deprived situation and there's not enough discarded 64-bits hardware for them to reuse. Running a 32-bits Solaris on these legacy hardware is pure gold them. This way deprived people have a chance of getting latest Python on legacy hardware they can afford. It's true one could argue, for instance, that running FreeBSD or even Linux could be more appealing to this scenario, but that's not Solaris, which IMO still is overall better than both of them.
$ python
Python 2.7.15 (default, May 27 2018, 21:38:19)
[GCC 3.4.3 (csl-sol210-3_4-20050802)] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ cat /etc/release
Oracle Solaris 11 Express snv_151a X86
Copyright (c) 2010, Oracle ... All rights reserved.
Assembled 04 November 2010
$ pkg info entire |grep Summary |sed 's/.*[\(]\(.*\)[\)].*/\1/'
Oracle Solaris 11 Express 2010.11 SRU 14
$ isainfo -v
32-bit i386 applications
ssse3 ahf sse3 sse2 sse fxsr mmx cmov sep cx8 tsc fpu
$ python
Python 2.7.15 (default, May 27 2018, 21:38:19)
[GCC 3.4.3 (csl-sol210-3_4-20050802)] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ cat /etc/release
Oracle Solaris 11 Express snv_151a X86
Copyright (c) 2010, Oracle ... All rights reserved.
Assembled 04 November 2010
$ pkg info entire |grep Summary |sed 's/.*[\(]\(.*\)[\)].*/\1/'
Oracle Solaris 11 Express 2010.11 SRU 14
$ isainfo -v
32-bit i386 applications
ssse3 ahf sse3 sse2 sse fxsr mmx cmov sep cx8 tsc fpu
Thursday, May 24, 2018
The Java Archive
One may get to the official The Java Archive (as I call it) download page which link is found to the bottom of the official Java SE Downloads page. As dully warned by Oracle the legacy artifacts are unsupported and security flawed:
"The Java Archive offers access to some of our historical Java releases. WARNING: These older versions of the JRE and JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production."
Wednesday, April 11, 2018
Building zlib 1.2.11
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building.
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../zlib-1.2.11.tar.xz
...
$ cd zlib/zlib-1.2.11-64
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j3
For IPS package:
$ gmake DESTDIR=/stage/prototype/zlib/1.2.11/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@zlib-1.2.11
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../zlib-1.2.11.tar.xz
...
$ cd zlib/zlib-1.2.11-64
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j3
For IPS package:
$ gmake DESTDIR=/stage/prototype/zlib/1.2.11/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@zlib-1.2.11
Building GNU make 4.2.1
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../make-4.2.1.tar.bz2
...
$ cd make/make-4.2.1-64
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j3
For IPS package:
$ gmake DESTDIR=/stage/prototype/make/4.2.1/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@make-4.2.1
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../make-4.2.1.tar.bz2
...
$ cd make/make-4.2.1-64
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j3
For IPS package:
$ gmake DESTDIR=/stage/prototype/make/4.2.1/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@make-4.2.1
Sunday, March 25, 2018
Building GNU automake 1.16.1
I start with the same considerations from the post Building autoconf 2.69. The GNU automake library is sometimes used on GNU buildings so I add it to my crazy list
of GNU software to manually build.
NOTE
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../automake-1.16.1.tar.xz
...
$ cd automake/automake-1.16.1-64
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j3
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/automake/1.16.1/64 install
For immediate use:
$ sudo gmake install
$ sudo snapshot -r .../opt/...@automake-1.16.1
NOTE
On this post I'm using the lastest GNU automake verion at the time of this writing. But sometimes one particular version simply doesn't work. For instance, version 1.16 fails building, but version 1.16.1 succeeds.
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../automake-1.16.1.tar.xz
...
$ cd automake/automake-1.16.1-64
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j3
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/automake/1.16.1/64 install
For immediate use:
$ sudo gmake install
$ sudo snapshot -r .../opt/...@automake-1.16.1
Monday, March 19, 2018
Building GNU autoconf 2.69
I start with the same considerations from the post Building GNU m4. The GNU autoconf library is sometimes used on GNU buildings so I add it to my crazy list
of GNU software to manually build.
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../autoconf-2.69.tar.xz
...
$ cd autoconf/autoconf-2.69-64
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j4
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/autoconf/2.69/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@autoconf-2.69
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../autoconf-2.69.tar.xz
...
$ cd autoconf/autoconf-2.69-64
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j4
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/autoconf/2.69/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@autoconf-2.69
Building GNU m4 1.4.18
I start with the same considerations from the post Building GNU libtool 2.4.6. The GNU m4 library is sometimes used on GNU buildings so I add it to my crazy list
of GNU software to manually build.
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../m4-1.4.18.tar.xz
...
$ cd m4/m4-1.4.18
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j3
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/m4/1.4.18/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@m4-1.4.18
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../m4-1.4.18.tar.xz
...
$ cd m4/m4-1.4.18
$ source ../setenv 64
CONFIG_SHELL=/usr/bin/bash
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/opt/gnu/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j3
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/m4/1.4.18/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@m4-1.4.18
Saturday, March 17, 2018
Building GNU libtool 2.4.6
I start with the same considerations from the post Building GNU libsigsegv 2.12. The GNU libtool library is sometimes used on GNU buildings so I add it to my crazy list
of GNU software to manually build.
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libtool-2.4.6.tar.xz
Processing /stage/source/.../libtool-2.4.6.tar.xz
------------------------------------
App: libtool
Ver: 2.4.6
------------------------------------
In the process, the following ZFS datasets will be created:
rpool/stage/build/libtool
rpool/stage/build/libtool/libtool-2.4.6
rpool/stage/build/libtool/libtool-2.4.6-32
rpool/stage/build/libtool/libtool-2.4.6-64
rpool/stage/prototype/libtool
rpool/stage/prototype/libtool/libtool-2.4.6
rpool/stage/prototype/libtool/libtool-2.4.6/32
rpool/stage/prototype/libtool/libtool-2.4.6/64
Enter "y" to proceed: y
Creating rpool/stage/build/libtool...
Creating rpool/stage/build/libtool/libtool-2.4.6...
rpool/stage/build/libtool
rpool/stage/build/libtool/libtool-2.4.6
rpool/stage/build/libtool/libtool-2.4.6@source
rpool/stage/build/libtool/libtool-2.4.6-32
rpool/stage/build/libtool/libtool-2.4.6-32@start
rpool/stage/build/libtool/libtool-2.4.6-64
rpool/stage/build/libtool/libtool-2.4.6-64@start
Creating data-0/stage/prototype/libtool subtree.
rpool/stage/prototype/libtool
rpool/stage/prototype/libtool/2.4.6
rpool/stage/prototype/libtool/2.4.6/32
rpool/stage/prototype/libtool/2.4.6/64
Creating pre-configuration script.
$ cd libtool/libtool-2.4.6-64
$ source ../setenv 64
...
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libtool-2.4.6.tar.xz
Processing /stage/source/.../libtool-2.4.6.tar.xz
------------------------------------
App: libtool
Ver: 2.4.6
------------------------------------
In the process, the following ZFS datasets will be created:
rpool/stage/build/libtool
rpool/stage/build/libtool/libtool-2.4.6
rpool/stage/build/libtool/libtool-2.4.6-32
rpool/stage/build/libtool/libtool-2.4.6-64
rpool/stage/prototype/libtool
rpool/stage/prototype/libtool/libtool-2.4.6
rpool/stage/prototype/libtool/libtool-2.4.6/32
rpool/stage/prototype/libtool/libtool-2.4.6/64
Enter "y" to proceed: y
Creating rpool/stage/build/libtool...
Creating rpool/stage/build/libtool/libtool-2.4.6...
rpool/stage/build/libtool
rpool/stage/build/libtool/libtool-2.4.6
rpool/stage/build/libtool/libtool-2.4.6@source
rpool/stage/build/libtool/libtool-2.4.6-32
rpool/stage/build/libtool/libtool-2.4.6-32@start
rpool/stage/build/libtool/libtool-2.4.6-64
rpool/stage/build/libtool/libtool-2.4.6-64@start
Creating data-0/stage/prototype/libtool subtree.
rpool/stage/prototype/libtool
rpool/stage/prototype/libtool/2.4.6
rpool/stage/prototype/libtool/2.4.6/32
rpool/stage/prototype/libtool/2.4.6/64
Creating pre-configuration script.
$ cd libtool/libtool-2.4.6-64
$ source ../setenv 64
...
Friday, March 16, 2018
Building GNU libsigsegv 2.12
In a crazy effort to gather an ever growing set of up-to-date GNU tools and utilities built my myself I proceed little by little on each GNU software, getting its source code and attempting the build. At first I'm concerned in just successfully building the software. But I'll try to figure out how to reference the new artifacts in a sort of side-by-side installation that could co-exist with the standard Solaris packages without mixing stuffs.
The GNU libsigsegv library is sometimes used on GNU buildings so I add it to my crazy list of GNU software to manually build. For now, it seems that later on I would have to adjust my GNU m4 macros in order to take into account this new libsigsegv version. Fortunately, later on when I build an updated version of GNU m4 I'll have the option (--with-libsigsegv-prefix) to automatically do that.
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libsigegv-2.12.tar.gz
Processing /stage/source/.../libsigsegv-2.12.tar.gz
------------------------------------
App: libsigsegv
Ver: 2.12
------------------------------------
In the process, the following ZFS datasets will be created:
rpool/stage/build/libsigsegv
rpool/stage/build/libsigsegv/libsigsegv-2.12
rpool/stage/build/libsigsegv/libsigsegv-2.12-32
rpool/stage/build/libsigsegv/libsigsegv-2.12-64
rpool/stage/prototype/libsigsegv
rpool/stage/prototype/libsigsegv/libsigsegv-2.12
rpool/stage/prototype/libsigsegv/libsigsegv-2.12/32
rpool/stage/prototype/libsigsegv/libsigsegv-2.12/64
Enter "y" to proceed: y
Creating rpool/stage/build/libsigsegv...
Creating rpool/stage/build/libsigsegv/libsigsegv-2.12...
rpool/stage/build/libsigsegv
rpool/stage/build/libsigsegv/libsigsegv-2.12
rpool/stage/build/libsigsegv/libsigsegv-2.12@source
rpool/stage/build/libsigsegv/libsigsegv-2.12-32
rpool/stage/build/libsigsegv/libsigsegv-2.12-32@start
rpool/stage/build/libsigsegv/libsigsegv-2.12-64
rpool/stage/build/libsigsegv/libsigsegv-2.12-64@start
Creating rpool/stage/prototype/libsigsegv subtree.
rpool/stage/prototype/libsigsegv
rpool/stage/prototype/libsigsegv/2.12
rpool/stage/prototype/libsigsegv/2.12/32
rpool/stage/prototype/libsigsegv/2.12/64
Creating pre-configuration script.
$ cd libsigsegv/libsigsegv-2.12-64
$ source ../setenv 64
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j4
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/libsigsegv/2.12/64 install
For immediate use:
$ sudo gmake install
$ zfs snapshot -r .../opt/...@libsigsegv-2.12
The GNU libsigsegv library is sometimes used on GNU buildings so I add it to my crazy list of GNU software to manually build. For now, it seems that later on I would have to adjust my GNU m4 macros in order to take into account this new libsigsegv version. Fortunately, later on when I build an updated version of GNU m4 I'll have the option (--with-libsigsegv-prefix) to automatically do that.
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libsigegv-2.12.tar.gz
Processing /stage/source/.../libsigsegv-2.12.tar.gz
------------------------------------
App: libsigsegv
Ver: 2.12
------------------------------------
In the process, the following ZFS datasets will be created:
rpool/stage/build/libsigsegv
rpool/stage/build/libsigsegv/libsigsegv-2.12
rpool/stage/build/libsigsegv/libsigsegv-2.12-32
rpool/stage/build/libsigsegv/libsigsegv-2.12-64
rpool/stage/prototype/libsigsegv
rpool/stage/prototype/libsigsegv/libsigsegv-2.12
rpool/stage/prototype/libsigsegv/libsigsegv-2.12/32
rpool/stage/prototype/libsigsegv/libsigsegv-2.12/64
Enter "y" to proceed: y
Creating rpool/stage/build/libsigsegv...
Creating rpool/stage/build/libsigsegv/libsigsegv-2.12...
rpool/stage/build/libsigsegv
rpool/stage/build/libsigsegv/libsigsegv-2.12
rpool/stage/build/libsigsegv/libsigsegv-2.12@source
rpool/stage/build/libsigsegv/libsigsegv-2.12-32
rpool/stage/build/libsigsegv/libsigsegv-2.12-32@start
rpool/stage/build/libsigsegv/libsigsegv-2.12-64
rpool/stage/build/libsigsegv/libsigsegv-2.12-64@start
Creating rpool/stage/prototype/libsigsegv subtree.
rpool/stage/prototype/libsigsegv
rpool/stage/prototype/libsigsegv/2.12
rpool/stage/prototype/libsigsegv/2.12/32
rpool/stage/prototype/libsigsegv/2.12/64
Creating pre-configuration script.
$ cd libsigsegv/libsigsegv-2.12-64
$ source ../setenv 64
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j4
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/libsigsegv/2.12/64 install
For immediate use:
$ sudo gmake install
$ zfs snapshot -r .../opt/...@libsigsegv-2.12
Thursday, March 15, 2018
Building GNU Screen 4.6.2
Working on the command line interface is a typical UNIX administrator routine. GNU screen offers one interesting alternative for working with multiple terminals within a single text-mode display or X (or other GUI environment) window. But the whole set of functionalities are far more extensive. GNU screen delves into a lot of terminal complexities which can become quite difficult to master, specially nowadays where one usually surf many layers above the bare-bones foundations.
Of course there are alternatives to GNU Screen. Some are roughly equivalent, such as tmux, while others, such as Terminator (blog) just specializes in splitting one X window into multiple terminals each running an independent shell session. What seems more interesting is combining the facilities of Terminator and Screen.
Solaris 11.3 GA offers a rather outdated versions, 4.0.3, while Solaris 11.4 Beta is packaging version 4.6.1. Perhaps, until Solaris 11.4 official launch that gets better; we'll see. But for now I'm going to build myself version 4.6.2, the latest. By doing this I hope to empower me on building later versions as I please.
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../screen-4.6.2.tar.gz
...
$ cd screen/screen-4.6.2-64
$ source ../setenv 64
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
--enable-pam \
--enable-colors256
$ gmake -j3
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/screen/4.6.2/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@screen-4.6.2
Of course there are alternatives to GNU Screen. Some are roughly equivalent, such as tmux, while others, such as Terminator (blog) just specializes in splitting one X window into multiple terminals each running an independent shell session. What seems more interesting is combining the facilities of Terminator and Screen.
Solaris 11.3 GA offers a rather outdated versions, 4.0.3, while Solaris 11.4 Beta is packaging version 4.6.1. Perhaps, until Solaris 11.4 official launch that gets better; we'll see. But for now I'm going to build myself version 4.6.2, the latest. By doing this I hope to empower me on building later versions as I please.
The basic building strategy and general assumptions have been detailed on a previous post: Staged Building, so I'll (hopefully) get more straight to the point:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../screen-4.6.2.tar.gz
...
$ cd screen/screen-4.6.2-64
$ source ../setenv 64
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m64 -march=core2 -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m64 -march=core2 -std=gnu++03
LD=/usr/bin/ld LDFLAGS=-m64 -march=core2
PATH=/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=
Suggested build sequence:
$ ./configure \
--build=x86_64-pc-solaris2.11 \
--prefix=/opt/... \
--enable-pam \
--enable-colors256
$ gmake -j3
For IPS package:
$ sudo gmake DESTDIR=/stage/prototype/screen/4.6.2/64 install
For immediate use:
$ sudo gmake install
$ sudo zfs snapshot -r .../opt/...@screen-4.6.2
Wednesday, March 14, 2018
Building Node.js 8.10.0
This post is more of a continuous effort in order to learn how to build by myself some more up-to-date artifacts, this time Node.js 8.10.0 (LTS), to my preferred software platform: Solaris 11. In particular, I'm still considering Solaris 11.3 GA, which by the time
of this writing is about 3 years old with GCC 4.8.2. Solaris 11.4 GA is
expected to arrive late this year (2018).
To partially quote Node.js:
Node.js is a typical case for a Solaris back-end system, where its cloud-ready infrastructure would be typically very well-suited to the task: SMF, ZFS, zones, higher threading count and advanced networking capabilities.
The version used in this post, Node.js 8.10.0 (LTS), is a March 2018 security update. I've chosen the LTS 8.x series because it's the latest branch that better aligns to the Solaris way-of-things. It's expected to live until Dec 2019 and not beyond because it's aligning to OpenSSL 1.0.2 life-cycle to which it depends.
This post's (at the time of this writing) up-to-date custom build is relevant not only because of the security side, but because the software isn't available in the official repositories and, even if it could be one day, it would be uncertain if the update pace of the support repository would be acceptable. Furthermore, by performing a custom build instead of just downloading pre-built binaries one ensures getting more exactly what's needed and optimized for a particular machine as per specific compiler (CPU) options and source-code modules selection.
Right from the start I was able to build a 64-bits Node.JS 8.10.0 (LTS) in Solaris 11.4 Beta (already available) with GCC 5.5.0, but at first I wasn't able to repeat the task under Solaris 11.3 GA and I was somewhat settled with it as the "build instructions" stated a more updated (4.9.4 - Aug 3, 2016) GCC was required and I only had an almost 3-years old 4.8.2 (from Oct 16, 2013) in Solaris 11.3. Although a newer GCC is generally better, by inspecting the initial build failures in Solaris 11.3 GA I've noticed that there weren't that many changes that could render the task impossible. This motivated me to take some time to further investigate a way of trying to accomplish the task.
To partially quote Node.js:
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. ... .
Node.js is a typical case for a Solaris back-end system, where its cloud-ready infrastructure would be typically very well-suited to the task: SMF, ZFS, zones, higher threading count and advanced networking capabilities.
The version used in this post, Node.js 8.10.0 (LTS), is a March 2018 security update. I've chosen the LTS 8.x series because it's the latest branch that better aligns to the Solaris way-of-things. It's expected to live until Dec 2019 and not beyond because it's aligning to OpenSSL 1.0.2 life-cycle to which it depends.
This post's (at the time of this writing) up-to-date custom build is relevant not only because of the security side, but because the software isn't available in the official repositories and, even if it could be one day, it would be uncertain if the update pace of the support repository would be acceptable. Furthermore, by performing a custom build instead of just downloading pre-built binaries one ensures getting more exactly what's needed and optimized for a particular machine as per specific compiler (CPU) options and source-code modules selection.
Right from the start I was able to build a 64-bits Node.JS 8.10.0 (LTS) in Solaris 11.4 Beta (already available) with GCC 5.5.0, but at first I wasn't able to repeat the task under Solaris 11.3 GA and I was somewhat settled with it as the "build instructions" stated a more updated (4.9.4 - Aug 3, 2016) GCC was required and I only had an almost 3-years old 4.8.2 (from Oct 16, 2013) in Solaris 11.3. Although a newer GCC is generally better, by inspecting the initial build failures in Solaris 11.3 GA I've noticed that there weren't that many changes that could render the task impossible. This motivated me to take some time to further investigate a way of trying to accomplish the task.
Subscribe to:
Posts (Atom)