Unleashed v1.4
[unleashed.git] / FEATURES.txt
blob695394db4f2e6dce6f81881e28f9ee04b866af39
1 Features
2 ========
4 This file documents feature changes at a very high level.
6 A '-' means that the support for that feature was removed, a '+' means that
7 the support for that feature was added, and a '*' means that the behavior
8 was changed.
10 1.4 release
11 -----------
12  + native compiler support:
13    * all provided compilers and binutils generate 64-bit output by default.
14      -m32 is required for 32-bit.
15    * gcc 4.9 has been removed. gcc 6.4.0 is now the default compiler
16      /usr/bin/cc, and it is used to build userland and the bmake part of base.
17    * gcc 4.4.4 aka. illumos-gcc is provided in /opt/gcc/4.4.4/bin/gcc, and it
18      is used to build itself as well as the dmake part of base.
19    * the default compiler uses GNU binutils ld.bfd as the linker. gcc 4.4.4
20      stays with sunld for compatibility.
21    * the default compiler does not support Solaris-specific features (eg.
22      #pragma init/fini, cmn_err format checking, startfile selection from
23      values-{Xa,Xc,Xs,Xt,xpg4,xpg6} based on -std)
24    * the default compiler does not define sun/__sun/__sun___ or
25      __svr4__/__SVR4. gcc 4.4.4 still does, for compatibility reasons.
26    * __unleashed__ is automatically defined by all provided compilers.
27  - multiarch support from python removed; it's now 64-bit only
28  - /etc/log symlink & /var/adm/log directory
29  - /etc/[uw]tmpx symlink
30  - /usr/adm symlink
31  - legacy accounting and reporting
32  * 32-bit libraries moved to i386 subdir of /lib and /usr/lib, and 64-bit
33    libraries moved from the amd64 subdir to the top level of /lib and /usr/lib.
34    in subdirectories not directly handled by the default ld.so configuration,
35    the old style of amd64 subdir is still (mostly) used.
36  * moved all /var/adm files to /var/log
37  * moved /var/svc/log to /var/log/svc
38  * ntp has been replaced with openntpd 6.2p3
39  * bash 5.0.3
40  * zsh 5.7.1
42 1.3 release
43 -----------
44  - ksh93 (/sbin/sh, /bin/ksh93, /bin/rksh93) and related libraries (libast,
45    libcmd, libdll, libpp, libshell, libsum) are no more.
46  - nonstandard getgrent_r, fgetgrent_r removed from libc
47  - wordexp & wordfree removed from libc
48  - sgtty.h removed, including stty() and gtty()
49  - nightly.sh is no more; see README.md for updated build instructions
50  * removed posix.1c draft versions, and made default the standard versions, of
51    the libc functions getgrgid_r, getgrnam_r, ttyname_r, getlogin_r
52  * removed non-posix versions of the libc functions shmdt, sigwait,
53    gethostname, putmsg, putpmsg, getaddrinfo
54  + _XOPEN_SOURCE=700 and __EXTENSIONS__ are defined by default, if not
55    specified. most third-party software already uses these on Solarises in an
56    attempt to get a somewhat sane compilation environment
57  + all applications automatically use 64-bit files. using the LFS/"large file"
58    interfaces _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE and _FILE_OFFSET_BITS is
59    no longer necessary.
60  + various improvements have been made to shorten the build time.
61  + the installer user interface has been simplified considerably.
63 1.2 release
64 -----------
65  - libfruraw, libnvfru, libfru, libfrureg, libfruutils
66  - libpicl, libpicltree, picld(8), etc.
67  - pyzfs & pysolaris
68  - locator(8)
69  - auditing support and libbsm
70  + ship ctfconvert & ctfmerge in /usr/bin
71  * hwdata updated to 2018.11.29
72  * tzdata updated to 2018g
73  * libressl 2.8.2
74  * uname(1) returns "amd64" for -m and -p
75  * sysinfo(SI_ARCHITECTURE) returns "amd64" (or "i386" when UNAME_LEGACY is
76    in the environment)
77  * rename vnode interface's AT_* to VATTR_*
79 1.1 release
80 -----------
81  - hsfs-formatted boot archive support
82  - libc compat symbols: _nuname, __posix_readdir_r, __threaded
83  - binary compatibility bread/bwrite/bwrite2/getblk kernel symbols
84  - libxnet and libsocket filter libraries
85  - libm.so.1 (legacy libm)
86  - shcomp(1) and the ability to run "compiled" ksh93 shell scripts (shbinexec)
87  - useless ksh93 /usr/bin builtins: cd, command, history, jobs, limit,
88    print, read, type, umask, wait
89  - jsh & jsh93
90  + ship libcmdutils.so & libuutil.so compilation symlinks
91  * ship openbsd ksh as /bin/sh (/bin/ksh93, /bin/rksh93, and /sbin/sh remain
92    ksh93)
93  * convert BREAD/BWRITE/BWRITE2/GETBLK macros to bread/bwrite/bwrite2/getblk
94    static inlines
95  * collapse driver packages into system/kernel
96  * replace ksh93 /usr/bin builtins with real programs imported from OpenBSD:
97    comm, cut, join, kill, logname, paste, rev, sleep, tee, test, uniq, wc
98  * autofs is disabled by default
99  * zoneinfo data moved from /usr/share/lib/zoneinfo to /usr/share/zoneinfo
101 1.0 release
102 -----------
103  - 32-bit x86 kernel support (32-bit x86 applications are still supported)
104  - sparc support
105  - xen domU and dom0 support
106  - Trusted Solaris aka. Trusted Extensions
107  - SVR4 pkg support & code
108  - solaris10 zone brand
109  - GRUB
110  - ndd(8) (use ipadm(8) and dladm(8) instead)
111  - closed source components were removed, including:
112    - in.iked(8) and related utilities
113    - kmdb modules: mpt and nfs
114    - kernel drivers: atiatom, bnx, ixgb, sdpib, usbser_edge, glm, mpt, adpu320,
115      bcm_sata, lsimega, marvel88sx, acpi_toshiba, intel_nhmex
116  - avs ("Sun StorageTek Availability Suite")
117  - tcopy(1)
118  - /usr/ucb and libbc ("SunOS/BSD Compatibility Package")
119  - rdist(1), rcp(1), rlogin(1), rlogind(1m), rsh(1), rshd(1m)
120  - uucp services (uuencode and uudecode are still present)
121  - libslp, slpd ("Service Location Protocol daemon")
122  - Java bits: poold(8), libzfs_jni, libadt_jni, libdtrace_jni,  DTrace Java
123    support, parts of libdns_sd
124  - Sun Studio and lint build support
125  - getpwent_r(3c), fgetpwent_r(3c), which are non-standard and were different
126    from other OSes
127  - getpw(3c)
128  - POSIX.1c Draft versions of several reentrant functions were removed.
129    Applications using the draft versions have to be modified; users of the
130    standard versions are unaffected.
131     - readdir_r
132     - getpwuid_r
133     - getpwnam_r
134  - c_synonyms.so
135  - drop support for Riyadh87, Riyadh88, and Riyadh89 timezones
136  - routeadm(1m), svc:/network/routing/legacy-routing,
137    svc:/network/ipv[46]-forwarding removed. use ipadm to manage forwarding and
138    smf to manage the routing-related daemons.
139  - xpg4, xpg6 directories were removed, utilities moved to /usr/bin.
140  - troff(1), nroff(1), addbib(1), checknr(1), deroff(1), diffmk(1), eqn(1),
141    indxbib(1), lookbib(1), refer(1), roffbib(1), soelim(1), tbl(1), ul(1),
142    vgrind(1), /usr/bin/makedev /usr/bin/ta removed -- made obsolete by mandoc
143  - pre-XPG5 behavior: ungetwc(3c), putwchar(3c), putwc(3c), fputwc(3c),
144    fputws(3c), fgetwc(3c), getwc(3c), getwchar(3c), fgetws(3c)
145  - C89 behavior: fprintf(3c), fscanf(3c), fwprintf(3c), fwscanf(3c),
146    printf(3c), scanf(3c), snprintf(3c), sprintf(3c), sscanf(3c),
147    swprintf(3c), swscanf(3c), vfprintf(3c), vfscanf(3c), vfwprintf(3c),
148    vfwscanf(3c), vprintf(3c), vscanf(3c), vsnprintf(3c), vsprintf(3c),
149    vsscanf(3c), vswprintf(3c), vswscanf(3c), vwprintf(3c), vwscanf(3c),
150    wprintf(3c), wscanf(3c)
151  + awk(1) replaced with a version imported from FreeBSD
152  + libcurses, libxcurses, libxcurses2, terminfo were replaced by ncurses
153  + grep(1) replaced with a version imported from FreeBSD
154  + errc(3), warnc(3) were added to libc
155  + fts(3) added to libc
156  + reallocarray(3) added to libc
157  + LibreSSL (libcrypto, libssl, libtls, openssl(1), nc(1)) added
158  + cpio-formatted boot archives
159  * man(1) is mandoc. mandoc.db support added, eliminating the need for
160    manpage symlinks.
161  * socket interfaces are now in libc. libsocket, libxnet and libnsl remain as
162    filter libraries.
163  * socket implementation was modified to be more reasonable by default, and it
164    is no longer possible to choose an alternate socket implementation.
165    msg_accrights was removed and msg_control members are now always visible in
166    struct msghdr.
167    Documentation was updated and moved to section 2: accept(2), bind(2),
168    connect(2), getpeername(2), getsockname(2), getsockopt(2), listen(2),
169    recv(2), send(2), shutdown(2), socket(2), socketpair(2), and the new
170    sockatmark(2) and CMSG_DATA(3)
171  * make(1) is bmake(1) instead of dmake(1)
172  * sed(1) replaced with a version imported from FreeBSD
173  * locale data has been updated to CLDR v28; tools to generate it were imported
174    from FreeBSD. This fixes many character classification errors.
175  * install(1m) was replaced by install(1) from OpenBSD.
176  * all process security flags are on by default
177  * putwchar(3c), putwc(3c), fputwc(3c), and fputws(3c) have only XPG5 behavior
178  * man pages from section 1M have been moved to section 8; third party code
179    (libncurses, namely) is not affected