Ports using USE_PYTHON=distutils are now flavored. They will
automatically get flavors (py27, py34, py35, py36) depending on what
versions they support.
There is also a USE_PYTHON=flavors for ports that do not use distutils
but need FLAVORS to be set. A USE_PYTHON=noflavors can be set if
using distutils but flavors are not wanted.
A new USE_PYTHON=optsuffix that will add PYTHON_PKGNAMESUFFIX has been
added to cope with Python ports that did not have the Python
PKGNAMEPREFIX but are flavored.
USES=python now also exports a PY_FLAVOR variable that contains the
current python flavor. It can be used in dependency lines when the
port itself is not python flavored. For example, deskutils/calibre.
By default, all the flavors are generated. To only generate flavors
for the versions in PYTHON2_DEFAULT and PYTHON3_DEFAULT, define
BUILD_DEFAULT_PYTHON_FLAVORS in your make.conf.
In all the ports with Python dependencies, the *_DEPENDS entries MUST
end with the flavor so that the framework knows which to build/use.
This is done by appending '@${PY_FLAVOR}' after the origin (or
@${FLAVOR} if in a Python module with Python flavors, as the content
will be the same). For example:
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
PR: 223071
Reviewed by: portmgr, python
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D12464
Before the patch, the default behavior of the compiler was to omit frame
pointers. However, even though it looks fine for the code produced
by the compiler, the compiler itself was broken. When there was a
compilation error, rustc panics to report that error. While handling
that panic, it tries to unwind the stack but fails to do so, which
results in an abort(3).
Here is an example:
$ rustc hello.rs
error: invalid reference to argument `0` (no arguments given)
--> hello.rs:2:5
|
2 | println!("Hello {}")
| ^^^^^^^^^^^^^^^^^^^^
|
= note: this error originates in a macro outside of the current crate
error: aborting due to previous error
fatal runtime error: failed to initiate panic, error 5
Abort trap (core dumped)
The problem also exists on other systems such as OpenBSD and
i686-unknown-linux-musl. "omit frame pointers" was already disabled for
i686-unknown-linux-musl:
88a28ff602/src/librustc_back/target/i686_unknown_linux_musl.rs (L22)
The patch does the same for *-unknown-freebsd.
See the upstream bug for more informations:
https://github.com/rust-lang/rust/issues/43575
Unfortanately it didn't build for me on armv7: perhaps it is a difference
in compiler. (It currently builds on armv6 on the freebsd.org cluster.)
So, this is a necessary but insufficient step.
Approved by: portmgr (tier-2 blanket)
armv7, mark them so.
This is part two of a multipart commit to bring armv7 ports to parity
with armv6.
Approved by: portmgr (tier-2 blanket)
Obtained from: lonesome.com -exp run
This requires two temporary patches to allow for building with
clang 3.4.1 (on FreeBSD 10.4) and trimming down an overeager check
that breaks Wine, for example.
Forward port revision 454177 from lang/gcc7: [1]
Make sure what we install is stripped (i.e., debug info is removed).
The straightforward way is setting INSTALL_TARGET to install-strip,
which is supported by the upstream GCC build machinery.
Unfortunately this fails when running as regular user (non-root)
since strip requires write permission to the files in question,
and we install binaries as r-xr-xr-x by default. To work around
that we need to set BINMODE to allow for write access by the user,
something that's common on GNU/Linux (which is why this probably
has not been noticed there). This is not necessary when running
as root.
(A different approach suggested was to set STRIP=true, alas that
leads to many files actually not being stripped. This is due to
GCC using its own script install-sh that in turn uses cp, chmod,
strip,... instead of our own install-* tools in many cases.)
Reported by: Ports QA Framework, miwi, sobomax [1]
Discussed with: tijl, miwi [1]
Differential Revision: https://reviews.freebsd.org/D10357 [1]
This may help ports like textproc/ripgrep to run on old hardware.
Rust itself still requires SSE2 until bootstrap is regenerated.
PR: 223415
Approved by: rust (dumbbell)
FTR, this option allowed to used LLVM from ports instead of building the
bundled copy.
The problem is that this combination isn't really tested upstream. This
led to regressions which are difficult to diagnose. For instance, in
Rust 1.21.0, the bundled LLVM provided a new API to query the features
supported by the target arch. The equivalent code inside Rust was
removed to use that new API. Unfortunately, building Rust 1.21.0+ with a
copy of LLVM not providing this API didn't failed but instead made that
list of CPU features empty. This resulted in the following obscure build
failure in Firefox:
error[E0432]: unresolved import `x86::sse2`
To avoid future pain for both end users and maintainers, we decided to
remove that option. Yes, it will increase the (already long) time to
build Rust, but it should save time wasted on debugging what is not
really supported anyway.
PR: 223342, 223300
Reported by: Many users
Support for LibreSSL up-to 2.6.3 is now included, thus we can remove the
patches to the `openssl` and `openssl-sys` crates.
The renewed bootstrap for aarch64 was created on 11.0-RELEASE, instead
of 11.1-STABLE. It should allow it to run on all 11.x and thus fix the
build on 11.0-RELEASE. [1]
PR: 223009 [1]
of that language, with supporting tools and documentation.
As a superset of the language described in the
[Revised<sup>6</sup> Report on the Algorithmic Language Scheme]
(http://www.r6rs.org)(R6RS), Chez Scheme supports all standard
features of Scheme, including first-class procedures, proper treatment
of tail calls, continuations, user-defined records, libraries,
exceptions, and hygienic macro expansion.
Chez Scheme also includes extensive support for interfacing with C
and other languages, support for multiple threads possibly running
on multiple cores, non-blocking I/O, and many other features.
WWW: https://cisco.github.io/ChezScheme
Thanks to jrm for helping with testing.
using .elif instead of distinct .if sequences, similar to most of the
other lang/gcc* ports by now. (This being the default port we usually
let changes settle elsewhere first.)
Remove special code handling armv6 (which for GCC 6 and 5-based
ports is necessary for aarch64, armv6 and armv7, but that we never
had for aarch64 or armv7 here).
Consulted with: andreast
info is removed) from lang/gcc7 to lang/gcc47, lang/gcc48 and lang/gcc49.
(For more background see revisions 454177 and 454422.)
Reported by: Ports QA Framework, miwi, sobomax
Discussed with: tijl, miwi
Differential Revision: https://reviews.freebsd.org/D10357
While here to some improvements:
- Remove CONFLICTS of no longer existing PHP 5.5
- Add CONFLICTS to PHP 7.2
- Remove IPV6_DESC in order to use default one
PR: 219321
Submitted by: Karsten Schmidt <bsd@guggemand.dk>
On the way, rework the architecture-specific special settings, sorting
and using .elif instead of distinct .if sequences.
Add a workaround for armv7. [1]
Tested by: andreast [1]
2017-11-20 news/brag: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 textproc/srilm: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 x11-toolkits/tk84: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 devel/tkinspect: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 games/bogged: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 games/ttraffic: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 games/ifm: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 games/tksol: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 lang/tcl84: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 mail/tkrat2: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 multimedia/dtv: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
2017-11-20 net-mgmt/netwag: Tcl/Tk 8.4 is no longer maintained, please use 8.5+
Add missing file zend_smart_string.h to pkg-plist.
The allows building many more of the pecl-* ports.
PR: 223766
Submitted by: Raivo Hool <raivo.hool@gmail.com>
Reported by: Raivo Hool <raivo.hool@gmail.com>, Daniel Ylitalo <daniel@blodan.se>
Remove the setting of CXXFLAGS / STAGE1_CXXFLAGS to -fbracket-depth=512
for armv6 which should not be required here (and is not for armv7 and
aarch64 according to tests done by andreast@).
Use .elif instead of distinct .if sequences for architecture-specific
settings, something I plan on rolling out throughout all lang/gcc* ports.
[1] Make sure what we install is stripped (i.e., debug info is removed).
(For more background see revisions 454177 and 454422.)
[2] Add a patch that we pulled into gcc6-devel via upstream a week ago
that addresses a real-world issue around threading and unwinding as
files/patch-freebsd-unwind.h .
Bump PORTREVISION since [2] is a functional change and [1] changes the
package.
Reported by: Ports QA Framework, miwi, sobomax [1]
Discussed with: tijl, miwi [1]
Tested by: sobomax [1]
Differential Revision: https://reviews.freebsd.org/D10357 [1]
current default GCC port:
Make sure what we install is stripped (i.e., debug info is removed).
The straightforward way is setting INSTALL_TARGET to install-strip,
which is supported by the upstream GCC build machinery.
Unfortunately this fails when running as regular user (non-root)
since strip requires write permission to the files in question,
and we install binaries as r-xr-xr-x by default. To work around
that we need to set BINMODE to allow for write access by the user,
something that's common on GNU/Linux (which is why this probably
has not been noticed there). This is not necessary when running
as root.
(A different approach suggested was to set STRIP=true, alas that
leads to many files actually not being stripped. This is due to
GCC using its own script install-sh that in turn uses cp, chmod,
strip,... instead of our own install-* tools in many cases.)
According to tests by sobomax@ and me installs of lang/gcc6 went
down by about a fourth.
Do not bump PORTREVISION since this only changes builds by non-root
users, is not a functional change, and the previous state of using
a bit more storage had been there "forever".
Reported by: Ports QA Framework, miwi, sobomax
Discussed with: tijl, miwi
Tested by: sobomax
Differential Revision: https://reviews.freebsd.org/D10357