The clang ports override the default build target, but the new targets
fail to set the environment like the default target does. This patch
passes MAKE_ENV to environment.
It also combines compounds to a single make cmd and unsuppresses the
commands so the output shows on the build logs.
PR: 199500
Submitted by: marino
Approved by: brooks (maintainer)
Changes:
* Merge pypy-devel into pypy
* Drop pypy-devel (was intended to track pypy-current but no automated
process was implemented)
* Drop upstreamed patches
PR: 199790
"I don't use FreeBSD very much anymore, so I'm not really the best person
to fix this. (As a corollary, if anyone wants to take over maintainership
of any or all of the ports, I'm still listed as maintainer of, they are
most welcome to.)"
Given that Jaap hasn't submitted or handled any PRs since before staging,
I think it will be more effective to just reset all the ports and let
people pick up the ones they like. Thanks for your past support, Jaap!
PR: 199845
- Replace ${MASTER_SITE_FOO} with FOO.
- Merge MASTER_SITE_SUBDIR into MASTER_SITES when possible. (This means 99.9%
of the time.)
- Remove occurrences of MASTER_SITE_LOCAL when no subdirectory was present and
no hint of what it should be was present.
- Fix some logic.
- And generally, make things more simple and easy to understand.
While there, add magic values to the FESTIVAL, GENTOO, GIMP, GNUPG, QT and
SAMBA macros.
Also, replace some EXTRACT_SUFX occurences with USES=tar:*.
Checked by: make fetch-urlall-list
With hat: portmgr
Sponsored by: Absolight
This changes a conditional statement to an equivalent variation. An
internal transformation of DPorts was getting confused by this construct.
Discussed with: Michael Gruenewald (maintainer)
perlpolicy(1) states though, that critical patches can be provided for three
years after the .0 release, adjust Perl 5.16's expiration date accordingly.
Sponsored by: Absolight
devel/ocaml-lwt (4 skipped) is still broken by another issue:
File "src/top/toplevel.ml", line 60, characters 17-62:
Error: This expression has type load:bool -> Path.t
but an expression was expected of type 'a * 'b
PR: 199845
Reported by: pkg-fallout
Approved by: portmgr blanket
When appropriate:
- Try to use DISTVERSION{SUF,PRE}FIX
- Replace PORTNAME-PORTVERSION by DISTNAME
- Convert MASTER_SITES to use macros
- Other light cleanup
With hat: portmgr
Sponsored by: Absolight
There is something going on with optimizations on both the old and
new versions.
If you set USE_GCC=any the port will build way faster:
gcc: make 506.90s user 17.86s system 228% cpu 3:49.41 total
clang: make 3913.28s user 23.73s system 211% cpu 31:05.70 total
I added a GCC option for now.
Setting CFLAGS to -O0 will make clang go as fast as gcc.
Explanation still unknown.
Reimplement ONLY_FOR_ARCHS such that we know that this port requires newer
compiler features (which aren't very clear from the port itself). Probably
need to validate this on powerpc as we have clang available and gcc ports.
PR: 197132
on non-clang architechtures. In addition, if there is no lang/gcc available
for the architecuture, we can't build it via that method either.
Rework archtecture disable to use ONLY_FOR_ARCHS and give a clearer reason
why this is being disabled on powrepc/mips/sparc64.
PR: 197132
Reviewed by: osa@freebsd.org (maintainer)
to unbreak x11-fm/sushi on FreeBSD 8 and 9.
lang/gjs and lang/spidermonkey24 are currently built with
USES=compiler:c11. On FreeBSD 8, this causes them to be compiled
with clang from ports, and on FreeBSD 9, they are built with clang
from base. In both cases, they are linked to libstdc++ from base.
These two ports are dependencies of x11-fm/sushi, which also depends
on webkit-gtk3, which is compiled with USES=compiler:c++11-lib. On
FreeBSD 8 and 9 webkit-gtk3 is compiled with gcc from ports and
linked to its newer bundled libstdc++. Sushi is compiled with gcc
from base and consists of pure C code, so it does not link directly
to libstdc++. The build fails because ld links in the base version
of libstdc++ before it links in webkit-gtk3, and then discovers
that the newer libstdc++ ABI needed by webkit-gtk3 is missing.
Converting sushi to USES=compiler:c++11-lib does not fix the build
failure, and just changes the error message, probably because sushi
does not directly link to any version of libstdc++. If sushi is
further hacked to force it to link directly to the newer version
of libstdc++ bundled with the gcc port, the build succeeds, but the
resulting executable segfaults inside libstdc++ with a stack trace
that traverses a bunch of functions contained in the gjs and
spidermonkey24 libraries.
Converting gjs and spidermonkey24 to USES=compiler:c++11-lib forces
them to be compiled with the ports version of gcc on FreeBSD 8 and
9 and link to its bundled libstdc++ (and is a no-op on FreeBSD 10
and higher). Because these libraries are linked into sushi before
webkit-gtk3, they load the version of libstdc++ which meets the
requirements of webkit-gtk3, and the resulting executable is
functional. No modifications to sushi are necessary.
PR: 196078, 199434, 199435
Differential Revision: https://reviews.freebsd.org/D2396
Approved by: mat (mentor)
MFH: 2015Q2
PR: 195736
Submitted by: Michael Gruenewald (maintainer)
Add'l fixes: marino
Besides typical port cleanup, the dragonfly patches which had been
removed for the update were added back to the configure patch.
When using GH_TAGNAME the DISTNAME would have GH_PROJECT and GH_ACCOUNT in
it. When not using GH_TAGNAME it would not have this. Now both cases
will add in the GH_PROJECT and GH_ACCOUNT.
Add special care to ensure that the DISTVERSION is not added in twice. If
a port does GH_TAGNAME=v${PORTVERSION} it will be added in twice though. For
that case DISTVERSIONPREFIX=v should be set and no GH_TAGNAME should be used.
empty() is used rather than (!defined || !${}) to support fmake.
The purpose of setting DISTNAME at all in these cases is to make it more clear
that the distfile is from *GITHUB* and to avoid collisions if a project were
to be renamed or moved. Without adding in GH_PROJECT and GH_ACCOUNT then there
are real risks that collisions on filenames would happen on renamed or moved
projects, which is fairly common. A GITHUB-generated file may not match
a custom-rolled or git-archive-rolled distfile.
PR: 199069
With hat: portmgr
Testing done: All USE_GITHUB ports without GH_COMMIT were checksum/fetch/extract/WRKSRC tested.
The original intention was to build update all the bootstrap compilers
to be based on GCC5, but right now I'm only doing that for DragonFly.
After June 30, I might rebuild the bootstrap compiler on FreeBSD 10.1,
but right now gcc5-aux is building fine on FreeBSD in one stage, even
though their bootstrap is based on GCC 4.9.
Right now, gcc5-aux is building with 3 full stages. I'm switching it to
a single stage build, but adding an off-by-default option to build it
in three stages again. With one stage, libcc1 is not built, but with
three stages it is. LibCC1 is meant to support the upcoming release of
GDB so it's currently not needed (it fails to build if gcc is not fully
bootstrapping which is why it's disabled)
This brings the build down to about 9-14 minutes versus 60-90 minutes
depending on the (average power) machine.
Also, I've explicitly limited the build to i386 and amd64 on FreeBSD and
I have dropped i386 support on DragonFly, which could only have been
build on DragonFly 3.8 or earlier.
Also, I removed the iconv dependency when a bootstrap compiler is being
created (the all-overriding BOOTSTRAP option for the maintainer)
Swapping LIBS with LDFLAGS and removing the *_configargs definitions
allows gcc5-aux to build on all supported platforms. Now that gcc5 has
been released, new bootstrap compilers should be created for both FreeBSD
and DragonFly in order remove bootstrapping requirement (previously
gcc5 built live but not in poudriere, reason still unknown).
Now that the JAVA exclusion is part of the main Makefile, the only thing
Makefile.DragonFly was doing was supporting pre-gcc5 dev branch. Those
users have a static package available to them, and in general they are
expected to upgrade to post-gcc5 in base anyway. Thus the DF makefile
is no longer necessary.
The default mode for C is now -std=gnu11 instead of -std=gnu89.
New warning options -Wc90-c99-compat and -Wc99-c11-compat may
prove useful on that front.
The C++ front end now has full C++14 language support including
C++14 variable templates, C++14 aggregates with non-static data
member initializers, C++14 extended constexpr, and more.
The Standard C++ Library (libstdc++) has full C++11 support and
experimental full C++14 support. It uses a new ABI by default.
There have been significant improvements to inter-procedural optimizations
and link-time optimization such as One Definition Rule based merging of C++
types as well as register allocation.
OpenMP 4.0 specification offloading features are now supported by the C,
C++, and Fortran compilers. Cilk Plus, an extension to the C and C++
languages to support data and task parallelism, has been added as well.
New warning options -Wswitch-bool, -Wlogical-not-parentheses,
-Wbool-compare and -Wsizeof-array-argument may prove useful as
may new preprocessor directives __has_include, __has_include_next,
and __has_attribute.
GCC can now be built as a shared library for embedding in other processes
(such as interpreters), suitable for Just-In-Time compilation to machine
code. This provides a C API and a C++ wrapper API.
Many code generation improvements for AArch64, ARM, support for
AVX-512{BW,DQ,VL,IFMA,VBMI} and Intel MPX on x86-64, and generally
improvements on many targets.
The Local Register Allocator (LRA) now contains a rematerialization
subpass and is able to reuse the PIC hard register on x86/x86-64 to
improve performance of position independent code.
https://gcc.gnu.org/gcc-5/changes.html has a more extensive set of
changes and https://gcc.gnu.org/gcc-5/porting_to.html has a solid
overview of issue you may encountering porting to this new version.
While the feature has a great value, it is right now breaking the build of
lang/gcc. Given the importance of lang/gcc it is better to revert now and
reapply the patch once it has been fixed and passes an exp-run on all supported
version
With hat: portmgr
Upstream gcc 4.8 doesn't have support for this - it'll create threads,
but it won't do any of the thread affinity stuff for FreeBSD.
This allows for OMP_PROC_BIND=true to bind threads to their initial
CPUs, leading to some pretty drastic improvements in performance
for certain NUMA workloads.
Approved by: gerald
Sponsored by: Norse Corp, Inc.
Upstream gcc 4.8 doesn't have support for this - it'll create threads,
but it won't do any of the thread affinity stuff for FreeBSD.
This allows for OMP_PROC_BIND=true to bind threads to their initial
CPUs, leading to some pretty drastic improvements in performance
for certain NUMA workloads.
Approved by: gerald
Chicken's LICENSE file says that it's actually a mixture of BSD3 files,
files under a BSD3 lookalike with additional clause about academic
research, custom permissive license files, public domain files, and even
a few GPL2+ files in the test suite. It is the maintainer's opinion that
a blanked BSD3CLAUSE is misleading.
Reported by: maintainer (via private email)
The project properties were missing several tabs in the "switches"
sections, but it wasn't immediately obvious why. It turns out that this
was caused by a missing generated file (gnat_switches.py). Restoring
that file along with having PATH set to the Ada compiler restored the
missing tabs.
The trick is that the generated file needs a texi file that is not present
in the distfile. The texi file was discarded by gnat_util (and its parent
gccX), so the solution is change gnat_util to install the file at its own
DOCDIR. Pregeneration of the gnat_switches.py is a bad idea IMO, so we
stick with the intended generation.
while here, install gps as gps_exe and create a wrapper named "gps" that
will define ADA_PROJECT_PATH and a PATH component to the Ada compiler if
they aren't already defined. GPS malfunctions a bit if it can't find the
compiler or standard library project files. Using a wrapper is nice for
new users that don't realize environmental changes are needed.
I also changed the install scripts to use BSD_INSTALL_* macros which
eliminated the need to use the install-strip INSTALL_TARGET.
Finally -- it seems that the ADAXX trick to pull in gcc-aux's versioning
for the PORTREVISION stopped working recently although the PORTVERSION
still worked. There's a new catch-22 where <pre> was needed to evaluate
USES=ada, but if <pre> is called, PORTREVISION value is frozen. Failure
to use <pre> resulted in an inclusion failure. The only fix available
was to recreate the ada.mk logic. Since gnatdroid is still hardcoded to
gcc-aux, only gnat_util was affected (discovered when poudriere failed
to rebuild it).
- Add --localstatedir=/var to _LATE_CONFIGURE_ARGS (like --mandir) but not
when CONFIGURE_ARGS already sets it. (GNU configure scripts set it to
PREFIX/var when PREFIX != /usr.)
- Add --localstatedir="${PREFIX}/var" to CONFIGURE_ARGS in some ports so
they aren't affected by this change (for now at least). This commit is
meant to ensure that new ports don't make the same mistake.
- games/acm: the configure script in this port is very old; instead of
patching it more, just replace GNU_CONFIGURE with HAS_CONFIGURE.
- irc/charybdis: it already used /var but adding --localstatedir=/var
changed the behaviour of the configure script; adjust the port to this.
PR: 199506
Exp-run by: antoine
Approved by: portmgr (antoine)
"defined(@array)" and "defined(%hash)" are now fatal errors
These have been deprecated since v5.6.1 and have raised deprecation
warnings since v5.16.
With hat: perl@
Sponsored by: Absolight
gcc6-devel to track mainline GCC development, starting with the 20150412
snapshot of GCC 6.0.0.
(Since this really is a development version not necessarily recommended
for general use, start using the -devel moniker for this port. This is
not due to any changes in upstream policy or expected attributes of this
port, only an adjustment in how we name things.)
particularity of the new GCC versioning scheme where the third
component of the version number is bumped when the release branches.
Use three component version numbers again.
It provides the following statements and commands: INPUT, PRINT,
LET, GOTO, GOSUB, RETURN, IF, END, CLEAR, LIST, and RUN. Integer
arithmetic is supported, and strings may be PRINTed. A built-in
RND(n) function provides random numbers.
The small size of the language make it easy to learn and master
while providing all of the building blocks needed to develop many
interesting programs. tcbasic runs on a variety of platforms and
aims to be as portable as possible.
WWW: https://github.com/tcort/tcbasic
PR: 197938
Submitted by: Thomas Cort <linuxgeek@gmail.com>
- Remove const qualifier from iconv(3) to match POSIX:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iconv.html
- Patch iconv.h to expose more GNU extensions when LIBICONV_PLUG is
defined because the base system iconv supports these extensions too.
Add/remove patches to/from ports to call iconv with non-const arguments.
This breaks some ports on FreeBSD 10 because base system iconv.h still has
the const qualifier. Fix this by letting USES=iconv add a build dependency
on converters/libiconv so ports can use its iconv.h (with LIBICONV_PLUG
defined) instead of the base system iconv.h.
This exposed some ports that link with libiconv when it is available instead
of using libc iconv. In these cases one of the following changes has been
made:
- patch configure scripts to test for libc iconv first
- add ac_cv_lib_iconv_libiconv=no or similar to CONFIGURE_ARGS to disable
some configure tests
- converters/wkhtmltopdf: this includes Qt4 so add a patch from devel/qt4
- lang/gcc5-aux: respect CFLAGS and friends during configure such that
LIBICONV_PLUG is defined in the iconv test, also switch to external
gettext
- mail/gnarwl: replace patches with CPPFLAGS/LIBS
- multimedia/ffmpeg2theora: remove iconv test from SConstruct and use
ICONV_LIB in port Makefile instead, also fix a bug in subtitles.c
- net-im/licq: finish conversion to cmake
- net-mgmt/bandwidthd, net-mgmt/icinga, net-mgmt/nagios, net-mgmt/nagios4:
don't need iconv
- textproc/p5-XML-TinyXML: finish conversion to USES=perl5
Other changes:
- databases/qdbm and slaves: respect CFLAGS and friends, also enable bzip2
and lzo support
- games/ldmud: respect CFLAGS and friends
- graphics/inventor: replace some patches with MAKE_ARGS/MAKE_ENV to respect
CFLAGS and friends, also remove FreeBSD/alpha patch and add missing xorg
dependencies
PR: 199099
Exp-run by: antoine
Approved by: portmgr (antoine)
- Add LICENSE knob (ART10 GPLv2; multi)
- Drop unneeded "xt" from USE_XORG and adjust its position
- Improve test target by using -C and thus get rid of "cd"
- Remove ".if ${PORT_OPTIONS:MDOCS}" guard, no longer needed
PR: 199240
USES+= readline doesn't automatically imply using ports readline on platforms
that don't have it in base. Work around by making that dependency explicit.
Spotted by: Maxim Filimonov <che@bein.link>
Discussed with: bapt
version supports all versions of LLVM except 3.6.
While here:
* Make detection of the installed LLVM automatic, using the
latest installed or 3.5 if none are present. It is possible
to supply a different value by setting LLVM_VERSION.
(Somebody ought to port llvm to the DEFAULT_VERSIONS framework.)
* Do not even download the docs, if the DOCS-option is off.
* If DOCS-option is on, do not install the *.tm files.
* Force the tool to look for documentation in ${DOCSDIR}.
* Add the functional regression-check target to Makefile.
Approved by: being condemned too often for too long
This port was marked for removal based on the information that pure
required llvm 3.2. Pure apparently is continuously developed.
- Version 0.58 - (this one) compatible with llvm 3.3
- Version 0.59 - compatible with llvm 3.4
- Version 0.61 - compatible with llvm 3.5
- Version 0.64 - latest
I didn't reset the maintainer, but it's suspicious that it was marked
broken this long for no good reason and no heads up from maintainer.
While here, unmask install commands, wrap lines, be DF friendly.
Approved by: blanket.
Simplify gnustep ports
Hook into the regular ports framework:
- LIB_DEPENDS for library dependencies
- Use regular USE_LDCONFIG
Reuse USES=objc (automatic)
USE_GNUSTEP is now a macro to set the dependencies and build feature needed.
Accepted arguments: back base build gui
Merge deskutils/preferencepanes into deskutils/systempreferences
2015-03-31 lang/gnatdroid-armv5: Nobody cares enough to fix sigtramp-android.c for ARMv5
2015-03-28 sysutils/puppet27: Does not work with Ruby 2.x
2015-03-31 www/rubygem-form_data: Use www/rubygem-http-form_data instead (renamed by upstream)
2015-03-31 www/typo345: Upgrade to www/typo3 or www/typo3-lts
Major changes since 1.3.1:
- new builtins, ujson, uheapq, ubinascii modules
- new memoryview and compile builtins
- improvements for eval and exec
- array slice assignment support
- basix regex support
- x86 support for the native emitter
- many other fixes and improvements
Changelogs: https://github.com/micropython/micropython/release
For example (${OSVERSION} >= 900000 && ${OSVERSION} < 900021) is always true,
as is (${OSVERSION} > 900002 || ${OSVERSION} < 900000 && ${OSVERSION} > 800107).
Regarding patches, when an EXTRA_PATCHES is no longer needed, I remove it, when
it is always needed, I renamed it, in one case, I merged two patches.
Differential Revision: https://reviews.freebsd.org/D2209
This has never built on FreeBSD 8 after the base compiler was upgraded
from GNAT 4.6 to 4.7 and later 4.9. It fails will many c++ complaints
about multiple definition of __x86.get_pc_thunk.cx and consequential
errors. I'm tired of the cluster builders sending me an email about it.
I'm never going to fix it, so let's mark it broken.