Gnome 3.14.1 and Cinnamon 2.2.16 are supported on FreeBSD 9.3-RELEASE and up.
This commit removes the old GNOME 2 desktop, bindings and some ports that
can't be compiled. A few ports where updated to more recent versions to
allow them to compile with this update.
Apart from updating ports to newer versions
GDM is more integrated with gnome-shell now, and handles several things for
the GNOME desktop such as screen locking. If you want to use GNOME 3 via
startx, you will have to add your own lock screen/screensaver. For example xscreensaver
can be used for sessions started without GDM.
Shell Extensions can be installed via https://extensions.gnome.org/ , we have
ported a few that can't be installed via this way.
The old gnome-utils and gnome-games ports where split up into single ports
and where converted to meta-ports.
gnome-terminal requires a UTF-8 locale to run, gdm handles this already, but
if you use startx you need to do this yourself.
Upgrade instructions:
Delete the old and conflicting packages:
# pkg delete clutter gnome-utils gnome-panel gnome-keyring vala-vapigen \
guile gcalctool gnome-media libgnomekbd
# pkg delete gnome-screensaver gnome-applets bug-buddy evolution-exchange \
evolution-webcal gnome-system-tools seahorse-plugins gnome-control-center
For package users the following lines will be enough:
# pkg upgrade
# pkg install gnome3
For ports users should do the following:
# portmaster -a
# portmaster x11/gnome3
We are currently aware of two issues. The first issue is a bug in the
file monitoring code in the glib20 port. This bug causes glib programs
to crash when files in a monitored directory are added or removed.
Upstream is aware of the problem, but since the problem is quite complex
there is no solution yet. This problem isn't restricted to BSD.
The second issue is that on certain video cards totem will display a
purple/pink overlay on the video. It not clear yet where the issues
comes from.
Major thanks goes to Gustau Perez for being a driving force behind getting
GNOME 3 up to speed again. Also thanks to Antoine Brodin for running the exp-runs.
This update was also made possible by:
Joe Maloney
Kris Moore
Beeblebrox
Ryan Lortie
Antoine Jacoutot
and everyone I missed
Since r372179 we are using the QML headers from the tarball, not the ones
installed system-wide by qt5-qml.
While this is not a problem and is kind of intended, it also means we need
to apply patches like this one to both ports now.
Simply patching src/src.pro to remove those directories from the build does
not work in all cases. If an older version of qt5-quick is installed, their
.pri files in mkspecs/modules will be picked up, and in the end when linking
programs such as tools/qmltestrunner something like this happens:
c++ [...] -Wl,-rpath-link,/usr/local/lib -o ../../bin/qmltestrunner
-L${WRKSRC}/lib -lQt5QuickTest [...]
The -rpath-link linker option will make ${LOCALBASE}/lib take precedence in
directory lookups, so when the newly-built libQt5QuickTest.so asks for
libQt5Quick.so in its DT_NEEDED section the older version installed in
${LOCALBASE}/lib will be used instead of the one that has just been built.
If the new version has symbols the older one does not (Qt releases are
backwards, not forwards, compatible), the build will fail.
So instead of patching src/src.pro, we let the configuration process proceed
without any patching so that the local .pri files are created in
${WRKSRC}/mkspecs and the Makefiles are created in a way that -rpath-link is
not passed to the linker anymore. We only need to symlink the existing
libraries built by lang/qt5-qml (this is similar to what we do with qtbase
ports to avoid rebuilding tools such as qmake and moc), and then change the
Makefiles in src/qml and src/qmldevtools so that nothing gets built.
This might even be a solution for other ports that got .pro patches in
r372179, since depending on which parts depend on which the same thing could
happen in the future.
I'm not bumping PORTREVISION because the resulting binaries will not change
and this only fixes the build where it was broken before.
PR: 194870
Proudly presented by the KDE on FreeBSD team, with several guest stars.
This update took way longer than initially expected due to us previously
accumulating assumptions and changes to Qt's build system that finally bit
us back with the 5.3 release series, so we had to do a fair amount of
cleanup.
New ports:
- comms/qt5-serialport: Qt functions to access serial ports, originally
based on work by Fernando Apesteguia. [1]
- devel/qt5-qdoc: Qt documentation generator, the Qt5 equivalent of
devel/qt4-qdoc3. Originally worked on by Tobias Berner.
It had already been half-split from devel/qt5-buildtools,
we just needed to finish the work.
Dead ports:
- devel/qt5-qmldevtools: Merged into lang/qt5-qml.
Minor changes:
- devel/qt5: Add x11/qt5-x11extras and the new ports to the dependency list.
- graphics/qt5-imageformats: The port now supports the JPEG2000, WEBP,
Direct Draw Surface and ICNS formats.
- multimedia/qt5-multimedia: The ALSA and PULSEAUDIO options are now
mutually exclusive due to changes introduced in
Qt 5.3.0 (the ALSA code is now a proper plugin
that is only built if PulseAudio is not used).
- x11/qt5-x11extras: Add USE_LDCONFIG since the port installs a shared
library.
The big changes:
- bsd.qt.mk: Set QMAKESPEC instead of QMAKEPATH. [3]
QMAKEPATH does much more than we want now that we call qmake from the top
of ${WRKSRC}. qmake uses QMAKEPATH when evaluating the QMAKE_MKSPECS
property, which is in turn used by qt_config.pri to load the .pri files in
mkspecs/modules.
In practice, this means that if people have an older Qt installation those
files will be used and QT_CONFIG will have values such as "gui" even if
one is building a port like textproc/qt5-xml, which passes -no-gui to the
configure script. Consequently, unintended code paths may be enabled or
the configuration step can just fail if the .pro files expect values that
are not present in the system-wide, older .pri files.
We avoid all those problems if we use QMAKESPEC, as qmake does not take
its value into account when evaluating the QMAKE_MKSPECS property and will
only parse the files in the mkspec's directory (mkspecs/freebsd-clang, for
example, instead of all the files in mkspecs).
- Stop explicitly passing ${LOCALBASE} to the compiler. [3]
qmake's behavior has changed in Qt 5, and the paths set in QMAKE_INCDIR
and QMAKE_LIBDIR in the mkspecs are passed before any others, such as the
ones in the build directory themselves.
In practice, this means that we end up with linker calls like this:
c++ -o libfoo.so foo.o bar.o -L/usr/local/lib -L/wrkdir/build/lib
-lQt5Gui -lQt5Core
So if one already has Qt installed in the system, the older, already
present version of the libraries in /usr/local/lib will be used instead of
the newly-built ones in /wrkdir/build/lib.
QTBUG-40825 discusses this behavior upstream, but there has been no
agreement on a solution yet.
For now, the solution adopted is to make the compiler and the linker aware
of those paths but only try them last after all others, and this is
achieved by setting the CPATH and LIBRARY_PATH environment variables when
qmake is being used.
In addition to setting them in CONFIGURE_ENV and MAKE_ENV, we also need to
stop changing QMAKE_INCDIR and QMAKE_LIBDIR as well as filter those paths
from the pkg-config calls qtbase's configure script makes.
- Call qmake from the root of the ${WRKSRC}.
In Qt 5.3, Qt's build infrastructure has undergone some changes that make
our previous approach of calling qmake from the directories we want to
build stop working. Things would break even more in Qt 5.4, in which
qtbase's configure script does not accept the -process, -fully-process and
-dont-process arguments anymore (it always behaves as if -process had been
used).
Bite the bullet and start calling qmake from ${WRKSRC}. The largest part of
this change involves changing lines in Makefiles from
WRKSRC_SUBDIR= foo/bar
to
BUILD_WRKSRC= ${WRKSRC}/foo/bar
INSTALL_WRKSRC= ${WRKSRC}/foo/bar
as well as adding patches to .pro files to avoid entering other
subdirectories and removing post-configure targets that are not necessary
anymore.
Since qmake needs to be called from the top of ${WRKSRC} anyway, we can
also simplify the configuration process for the qtbase ports a little.
Looking at r10019 it is not clear why we started calling qmake in the
pre-configure target in addition to the post-configure one (while also
skipping it in do-configure), but we can now drop this call since letting
configure behave as if -process had been passed means it will call qmake
on its own and overwrite the files generated by the pre-configure call. We
still need to call qmake in post-configure though, as the configure script
does not pass -recursive when calling qmake and we need to be able to call
make from any subdirectory when building.
PR: 194762 [1]
PR: 194566 # exp-run with base GCC and clang
PR: 194088 [3]
- Add several PORTDOCS to pkg-plist.
- Fix two orphaned files
- Deprecate @dirrm{,try} in favor of @dir where absolutely necessary.
Submitted by: antoine
Differential Revision: https://reviews.freebsd.org/D987
Approved by: swills (mentor)
Alias is a new USES tool that allows DragonFly to masquerade as FreeBSD
by setting CFLAGS+= -D__FreeBSD__. For some ports, this fixes the build
without the need for additional patches.
Approved by: portmgr (bapt, blanket)
- Patch libtool so it uses the same library version specification as on
Darwin, Linux and other systems. Given the version current:revision:age
a library will be given the extension .so.major.age.revision with major
equal to current-age. Before libtool would use .so.current on FreeBSD.
- Patch libtoolize to remove two cases of umask 0 that caused libltdl
files to be copied world writable (--ltdl option)
- Let USES=libtool patch this new version correctly
- Adjust all ports with USES=libtool:build and bump PORTREVISION on their
dependent ports if a library version changed
PR: 194068
Exp-run by: antoine
Approved by: portmgr (antoine)
Cython changes its temporary variable handling and now fails on the file:
kivy/graphics/sahder/pyx
This has already been fixed upstream so just backport that fix.
Also, update the USE_PYTHON et al variables.
PR: 194065
Reported by: John Marino (marino@FreeBSD.org)
Obtained from: https://github.com/kivy/kivy/commit/b2bc566
The Fedora 10 infrastructure ports have been in use since June 2009 and, while
having served a great deed, have become unsupported upstream and hence affected
by unfixed security vulnerabilities. In addition to that, many recent Linux
binaries need newer libc / stdlibc++ versions.
This commit adds the linux-c6- userland as drop-in replacement for the -f10
infrastructure, as well as upgrading the linux_base-c6 port to CentOS 6.5.
If you want to switch to linux-c6 ports, please define at /etc/make.conf:
OVERRIDE_LINUX_BASE_PORT=c6
OVERRIDE_LINUX_NONBASE_PORTS=c6
Additionally, please add the following line to /etc/sysctl.conf:
compat.linux.osrelease=2.6.18
Upgrading procedures are shown in /usr/ports/UPDATING.
This work has been inspired by Artyom Mirgorodskiy's post to emulation@ in
November 2013, using and extending mav@'s work. It has been tested extensively
and most reported issues were already fixed. Please report any additional bug
or "features" to the emulation mailing list.
Many thanks to: mav@, rene@, allanjude@, netchild@, antoine@, everyone who's
filed Issues and Pull requests on GitHub,
PR: 186820
Differential Revision: https://reviews.freebsd.org/D793
Reviewed by: allanjude, antoine, bapt, rene
Approved by: portmgr (antoine, bapt)
Approved by: koobs (mentor)
Sponsored by: Perceivon Hosting Inc.
creates. This fixes a problem on arm where the shared object will attempt to
access symbols in libgcc, however the .so files don't link against libgcc the
build fails.
PR: 193791
Submitted by: andrew
Reviewed by: tijl
Approved by: bapt (mentor)