It's well known that LTO provides both performance and size benefits for
binaries.
Add preliminary, opt-in support for global LTO enforcement to ports. Ports that
provide LTO option on their own and the ones that don't work with LTO will need
to set LTO_UNSAFE in the future.
PR: 258536
kde@ has been focused recently on reducing the load of "unnecessary"
runtime dependencies, to allow third party distributions to have a
leaner installation.
One part of this effort was to make qt5-testlib a "build only"
dependency.
Unfortunately, parts of qt5-declarative link against testlib (to provide
test functionality for declarative parts).
This lead to an unfortunate loop of pkg-autoremove removing testlib, and
then pkg-update adding it again (as it was an improperly registered
dependency).
This change splits out the "test"-parts into its own port. Thereby
making testlib not even a required build-time dependency for
x11-toolkits/qt5-delcarative.
Reported by: jrm
Differential Revision: https://reviews.freebsd.org/D32097
ncurses from ports and futur ncurses in base differs from current
ncurses in base by the fact it is not providing a giant libncurses.so
but 2 libraries: libtinfo and libncurses, those information often needs
to be reported to the consumer port.
while here remove a now useless test for support of widechar ncurses in
base, all supported version of freebsd have it now.
Since we switched to pkg, NO_PKG_REGISTER was not working anymore.
Since pkg 1.17.2 the pkg register command do support -N option which
allows to bring back NO_PKG_REGISTER.
PR: 191461
devel/cargo-c always passes --target when building consumers.
Some other USES=cargo consumers may also pass --target.
Differential Revision: https://reviews.freebsd.org/D31568
Saturday, 11 September 2021
KDE today announces the release of KDE Frameworks 5.86.0.
KDE Frameworks are 83 addon libraries to Qt which provide a wide variety
of commonly needed functionality in mature, peer reviewed and well
tested libraries with friendly licensing terms. For an introduction see
the KDE Frameworks release announcement.
This release is part of a series of planned monthly releases making
improvements available to developers in a quick and predictable manner.
Full announcement:
https://kde.org/announcements/frameworks/5/5.86.0/
PR: 258426
Exp-run by: antoine
Plasma Systemstats is a successor to (lib)KSysGuard in the way
that Plasma System Monitor is a successor to KSysGuard. The
background idea is that system statistics collection (resource
usage) should be low-overhead and pluggable and the UI in the
application flexible. KSysGuard achieved that with 2010-era
technologies, but time and technology moves on.
Note, though, that the backend -- the actual system-statistics-
collection -- on FreeBSD is missing collection of network
activity (entirely) and memory use (is wrong). System monitor
is **not yet** a replacement for KSysGuard on FreeBSD, but the
CPU monitoring -- which might be the most important and graphically
appealing bit on a desktop machine -- is much improved.
This commit introduces the new port, adds it to USE_KDE,
and makes it a dependency of system-monitor, to ease the
eventual replacement (once the issues mentioned above are
cleared up) of old by new.
Also reset state on function entry otherwise split_url() cannot
really be called multiple times since there would be garbage values
in the url array from previous calls.
rustc stashes intermediary files in TMPDIR (default /tmp) which
might cause issues for users that for some reason space limit their
/tmp. WRKDIR should have plenty of space.
Other ports that use rustc might be affected too, but set it only
in USES=cargo and lang/rust* ports for now.
PR: 258126
With hat: rust
Thursday, 2 September 2021
Over 120 individual programs plus dozens of programmer libraries and
feature plugins are released simultaneously as part of KDE Gear.
Today they all get new bugfix source releases with updated translations,
including:
* konsole: Fix KXmlGUI toolbars and Konsole MainWindow size.
* elisa: Fix the “Files” view.
* skanlite: Fix image saving when preview is not shown.
Full announcement:
https://kde.org/announcements/gear/21.08.1/
Full Changelog:
https://kde.org/announcements/changelogs/gear/21.08.1/
Tuesday, 31 August 2021. Today KDE releases a bugfix update to KDE
Plasma 5, versioned 5.22.5.
Plasma 5.22 was released in June 2021 with many feature refinements and
new modules to complete the desktop experience.
This release adds a month's worth of new translations and fixes from
KDE's contributors. The bugfixes are typically small but important and
include:
* KDE GTK Config: Make sure to actually commit GSettings changes.
* KSystemStats: Fix handling of IPV6 addresses. Fixes bug #436296
* [applets/digitalclock] Let long timezones list scroll.
Fixes bug #439147
Full changelog:
https://kde.org/announcements/changelogs/plasma/5/5.22.4-5.22.5/
- while here: reformat & sort the USES/USE_FOO lines consistently
- Add WANT_LAZARUS_DEVEL option if you want built apps using lazarus trunk
version from ports. This variable can be added to /etc/make.conf. Otherwise,
stable version of lazarus will be used.
- WANT_LAZARUS_DEVEL will use editors/lazarus-devel or editors/lazarus-qt5-devel
ports instead of editors/lazarus or lazarus-qt5 ones
it allows users to set their desired compression level when packaging
in make.conf
PR: 257427
Suggested by: Trond Endrestol <Trond.Endrestol@ximalas.info>
Friday, 13 August 2021
KDE today announces the release of KDE Frameworks 5.85.0.
KDE Frameworks are 83 addon libraries to Qt which provide a wide variety
of commonly needed functionality in mature, peer reviewed and well
tested libraries with friendly licensing terms. For an introduction see
the KDE Frameworks release announcement.
This release is part of a series of planned monthly releases making
improvements available to developers in a quick and predictable manner.
Full announcement and changelog:
https://kde.org/announcements/frameworks/5/5.85.0/
PR: 257837
Exp-run by: antoine
Binutils is not present anymore on elfv2 systems.
Fixes build of audio/invada-studio-plugins-lv2:
/usr/local/bin/ld: unrecognized option '-B/usr/local/bin'
/usr/local/bin/ld: use the --help option for usage information
libxul.so clearly links against libepoll-shim, and we have reports
of firefox failing to start without libepoll-shim. this also affects
mail/thunderbird (once we land it), so fix the problem in bsd.gecko.mk.
First reports are against firefox 90, set the version cutoff
accordingly.
PR: 257490
Reported by: Maxim Filimonov
Keep the new flag though.
This error can occur in some other cases such as building on a
mismatched host kernel+userland. Some further study is needed
and it may be possible to automatically set UNAME_r.
An example of this happening is with recent Poudriere changes:
- Poudriere <= 3.3 used to set UNAME_r in /etc/login.conf's environment
during *jail creation*.
- Poudriere >= 3.4 only sets it in the environment during *jail
runtime*.
Creating a jail with Poudriere 3.4 and then using Poudriere 3.3 on it
would fail to have UNAME_r properly set. It would read OSVERSION from
/usr/include/sys/param.h to find the installed files release. The ports
framework, and builds, need `uname` to be correct for the *jail/chroot*
and not be of the running kernel.
Add a footshoot enabler while here which should not be used for any
reason as it can create packages targetting the release of the running
kernel rather than the chroot/jail's expected version.
Thursday, 12 August 2021
KDE Gear 21.08 improves KDE apps across the board, bringing you quick
and responsive utilities, creativity programs with powerful features,
and secure tools for all your work and play needs.
If this is your first time with KDE software, discover a whole new world
of free and secure programs, packed with incredible possibilities. If
you are already a KDE regular, check out all the fresh innovations we
have added to your favorite apps.
Either way, go forth and try new things!
Full announcement:
https://kde.org/announcements/gear/21.08.0/
Saturday, 10 July 2021
KDE today announces the release of KDE Frameworks 5.84.0.
KDE Frameworks are 83 addon libraries to Qt which provide a wide variety
of commonly needed functionality in mature, peer reviewed and well
tested libraries with friendly licensing terms. For an introduction see
the KDE Frameworks release announcement.
This release is part of a series of planned monthly releases making
improvements available to developers in a quick and predictable manner.
Announcement:
https://kde.org/announcements/frameworks/5/5.84.0/
Exp-run by: antoine
PR: 257100
- To make it possible to easily import mlt-7 move the current port to
a versioned directory.
- Add Mk/Uses/mlt.mk to make it easily possible to depend on a given mlt
version:
USES=mlt:6
will get you a dependency on multimedia/mlt6, while
USES=mlt:7
will get you a dependency on the soon to be added multimedia/mlt7
- Switch the port to use cmake as a build system
- While here, provide some more options to make it possible to have
a leaner package if required
- Bump consumers after rename of the dependency
Plasma 5.22 was released in June 2021 with many feature refinements and
new modules to complete the desktop experience.
This release adds three weeks' worth of new translations and fixes from
KDE's contributors. The bugfixes are typically small but important and
include:
* Discover: Address the keyboard shortcut tooltip.
* Sort Unsplash POTD image categories alphabetically.
* Info Center: Unbreak about CPU value when solid is missing a
product string.
[1] https://kde.org/announcements/plasma/5/5.22.4/
- Improve the text (fix typos) in another .warning message
- And an extra newline after "backward compatibility for users"
.if/.endif block for better readability, kill EOL whitespace
- Replace UTF-8 non-breaking space (C2 A0) with normal ASCII one
TL;DR: new uniq package file extension: '.pkg'
Full changelog for pkg:
- add a new "snap" prefix, to deal with pkg base snapshots
- pkg repo now accepts packages with different compression formats
- pkg now have a single extension: ".pkg" and a backward compatible
symlink is created when the package is created to help transitioning
- Default compression level for zstd is now set to 19
- the default compression level is now a configuration option
- plenty of portability fixes
- fix plenty of typos
- expose the name of the package to lua and shell scripts
- plist:
remove internal support for @*exec (this is now in the ports tree)
remove support for @ignore
remove support for @dirrm/@dirrmtry
remove support for @pkgdep
remove stub support for @stopdaemon
remove stub support for @display
remove stub support for @mtree
remove stub support for @conflict
- VUXML: fetch .xz compressed version of the file by default
- triggers are deferred to later command (firstboot is planned) if run
with pkg -r
- pkg triggers commands has been added and can execute the deferred
triggers for example at firstboot
Changes in the framework:
- Add a backward compatibility layer, so people are not forced to move
to pkg 1.17 yet (new quarter we will enforce the switch for triggers
anyway, but it gives time to people to switch)
- Introduce a new PKG_COMPRESSION_FORMAT for users to specify the
compression format they are willing to use when creating packages:
txz, tar, tgz, tbz, tzst are the valid ones (note that tzst is only
usable on FreeBSD 13 and 14)
- Add a backward compatibility for people who specified the compression
format already via PKG_SUFX and issue a warning to tell them about the
deprecation of PKG_SUFX
in next version of pkg, we now use a uniq extension: '.pkg' whatever the
compression is, the problem is some bootstrap pkg(7) does not handle
that yet, notably on freebsd 11.4 and 12.2.
We already have a compatibility layer by creating a symlink on the old
extension, which works but the signature itself will not exist with the
old extension. Add a workaround in the ports tree to symlink the new
signature to the old expected signature.
Given at the moment we are doing that things are not yet signed by
default we do create a dead symlink, but at the moment the repo are
published the right signature will be there.
glvnd is becoming increasingly required by mesa and various FreeBSD
Ports implementation decisions. Remove the tuple to avoid unexpected
and unsupported combinations.
Reviewed by: x11 (manu, zeising)
Differential Revision: https://reviews.freebsd.org/D30930
Poudriere's CCACHE_STATIC_PREFIX feature (not Mk/) avoids installing
ccache for each port using the native jail ABI and instead copies in a
host static binary. It uses NO_CCACHE_DEPEND to avoid installing
ccache. For example, this is used for ccache-memcached where the
dependency chain would make using ccache unfeasible.
Poudriere sets CCACHE_WRAPPER_PATH, rather than the new CCACHE_PKG_PREFIX.
Because CCACHE_BIN is now computed from CCACHE_PKG_PREFIX rather than
CCACHE_WRAPPER_PATH, CCACHE_BIN was incorrect. Now compute
CCACHE_PKG_PREFIX from CCACHE_WRAPPER_PATH if it is set, otherwise
fallback to using LOCALBASE and computing CCACHE_BIN and
CCACHE_WRAPPER_PATH from there.
PR 257151
Fixes: 6b641f4eb4 ("Mk: Document and simply user-modifiable ...")
This uses the same patches that GCC platforms use. It will allow to selectively switch to GCC for some ports that don't build with Clang, eg. because of missing OpenMP support.
Over 120 individual programs plus dozens of programmer libraries and
feature plugins are released simultaneously as part of KDE Gear.
Today they all get new bugfix source releases.
Full changelog:
https://kde.org/announcements/changelogs/gear/21.04.3/
Saturday, 12 June 2021
KDE today announces the release of KDE Frameworks 5.83.0.
KDE Frameworks are 83 addon libraries to Qt which provide a wide variety
of commonly needed functionality in mature, peer reviewed and well
tested libraries with friendly licensing terms. For an introduction see
the KDE Frameworks release announcement.
This release is part of a series of planned monthly releases making
improvements available to developers in a quick and predictable manner.
Full announcement:
https://kde.org/announcements/frameworks/5/5.83.0/
PR: 256665
Exp-run by: antoine
Tuesday, 6 July 2021. Today KDE releases a bugfix update to KDE Plasma
5, versioned 5.22.3.
Plasma 5.22 was released in June 2021 with many feature refinements and
new modules to complete the desktop experience.
This release adds two weeks' worth of new translations and fixes from
KDE's contributors. The bugfixes are typically small but important and
include:
* Dr Konqi: Repair query construction.
* Plasma Disks: Don’t notify on instabilities.
* [Task Manager] Load album art background asynchronously.
Full Changelog:
https://kde.org/announcements/changelogs/plasma/5/5.22.2-5.22.3/
QtChooser allows you to select your version of Qt among those installed.
However, this tool is no longer supported upstream and will not be
available for Qt6.
By default, our Qt installations are done in
${LOCALBASE}/lib/qt${QT_VERSION} as recommended.
We have added symbolic linking for the main binaries to
${LOCALBASE}/bin with the suffix -qt5.
There have been multiple bug reports where people get compiler
errors with regards to -Xclang -fno-color-diagnostics. This is
caused by partial upgrades and outdated meson packages. For a
better UX, change BUILD_DEPENDS to require a package version that
fixes it.
Fixes: ff2796d5bc
Tuesday, 22 June 2021.
Today KDE releases a bugfix update to KDE Plasma 5, versioned 5.22.2.
Plasma 5.22 was released in June 2021 with many feature refinements and
new modules to complete the desktop experience.
This release adds a week's worth of new translations and fixes from
KDE's contributors. The bugfixes are typically small but important and
include:
* Discover: Flatpak: properly notify about updates.
* [Task Manager] Show window title in tooltip when player title is different
* KWin: Wayland: Implement activities window rule.
View full changelog:
https://kde.org/announcements/changelogs/plasma/5/5.22.1-5.22.2
Now that GCC 11.1 has been released and lang/gcc11 is in place,
explicitly list version 11 as an option for GCC_DEFAULT.
Technically USE_GCC=11 was already working, using lang/gcc11-devel,
alas intentionally undocumented (and definitely unsupported).
Add an explicit note that versions of GCC not listed here are not
supposed to be used. [1]
Suggested by: mandree [1]
The QtPositioning module contains classes to determine a position by
using a variety of possible sources, including satellite, or wifi, or
a text file, and so on. That information can then be used to, for
example, determine a position on a map. In addition satellite
information can be retrieved and area based monitoring can be performed.
https://www.riverbankcomputing.com/static/Docs/PyQt5/api/qtpositioning/qtpositioning-module.html
Reviewed by: lbartoletti, #portmgr!
Approved by: lbartoletti (kde@)
Differential Revision: https://reviews.freebsd.org/D30829
Now that GCC 11.1 has been released and lang/gcc11 is in place,
have USE_GCC=11 use that instead of lang/gcc11-devel.
In addition add support for USE_GCC=12 which uses lang/gcc12-devel
(still in early development, not recommended for production use).
Tuesday, 15 June 2021. Today KDE releases a bugfix update to KDE Plasma
5, versioned 5.22.1.
Plasma 5.22 was released in June 2021 with many feature refinements and
new modules to complete the desktop experience.
This release adds a week's worth of new translations and fixes from
KDE's contributors. The bugfixes are typically small but important and
include:
* KWin: Platforms/drm: support NVidia as secondary GPU with CPU copy.
* Weather applet: Point bbcukmet to new location API.
* Wallpapers: Add milky way.
View full changelog at
https://kde.org/announcements/changelogs/plasma/5/5.22.0-5.22.1
Plasma 5.22 is here, and it is more reliable and stable than ever. By
cleaning up and refactoring code in the background, the Plasma desktop
gives you greater responsiveness and performance, helping you become
even more productive without hiccups or surprises. Enjoy a smoother
experience with KDE’s Plasma 5.22 desktop.
Plasma 5.22 has become more pleasurable to use through improvements to
the design and greater smoothness and consistency in transparencies,
blurs, icons, and animations. Moving things to accessible locations,
offering hints and visual cues, and creating new settings allows you to
customize your work environment to make it fit perfectly to your needs.
Following the true KDE spirit, the push for a more stable and attractive
desktop does not mean you have to renounce control over how you want it
to look or behave. Plasma 5.22, as always, packs all the flexibility and
tools for customization you have come to expect and love, and some more
to boot.
Meanwhile, the push to move Plasma in its entirety to Wayland (the
display protocol of the future) continues in full swing. So much so that
popular distros are starting to ship Plasma with Wayland by default. By
using Wayland behind the scenes, Plasma is able to include features and
bug fixes not possible to implement on X11, offering you a better
experience and more stability.
Full announcement and changelog:
https://kde.org/announcements/plasma/5/5.22.0/
Thursday, 10 June 2021
Over 120 individual programs plus dozens of programmer libraries and
feature plugins are released simultaneously as part of KDE Gear.
The full changelog can be found here:
https://kde.org/announcements/changelogs/gear/21.04.2/
ECHO is builtin variable and is cleared when make(1) is invoked
in silent mode, i.e. as ``make -s'', thus making statements that
use it do nothing. Depending on the context, replace it with
either ${ECHO_CMD} or ${ECHO_MSG} (in one case), as appropriate.
PR: 256185
Submitted by: Franco Fichtner
Previously, for ports with GCONF_SCHEMAS, `gnome-post-gconf-schemas'
target would add a @postunexec rule which was invoked *after* those
files would be removed upon deinstallation, resulting in errors:
I/O warning : failed to load external entity ".../$some.schemas"
Failed to open `.../$some.schemas': No such file or directory
Change it to @preunexec so that `gconftool-2 --makefile-unistall-rule'
command would get called while those files still exist.
PR: 210969
Timeout from: gnome (~5 years)
Hackage now returns a JSON array with all revisions, so sed/grep trickery
is not working anymore. Use Python to parse the reply and extract revision
number.
- Copy devel/py-setuptools to devel/py-setuptools44 (for Python 2.7 support)
- Update devel/py-setuptool to 57.0.0 (adding support for Python 3.10)
- Update Mk/Uses/python.mk to chose between py-setuptools and
py-setuptools44 based on Python version
This allows us to have latest setuptools and working Python 3.10
without breaking packages requiring Python 2 support for remaining
reports that require it.
Exp-run showed 3 ports failing to build with latest setuptools and
they were fixed.
PR: 256173
Exp-run by: antoine
Reviewed by: koobs (python)
Approved by: koobs (python)
Differential_Revision: https://reviews.freebsd.org/D30473
This mainly synchronize the subgroups GH_TAGNAME_${_group}_* variables
with their default GH_TAGNAME_* equivalent.
In order to try and avoid this in the future, add a couple of comments
where those two sets of variables are defined.
PR: 256314
Reported by: yuri
The classic way to handle flavors is to set:
FLAVORS= foo bar
FLAVOR?= ${FLAVORS:[0]}
And in that case, FLAVOR is only set if the variable is not defined. If
you pass an empty flavor using `FLAVOR=` then it remains empty after
that line. It can leads to some ports with complicated logic to assume
the wrong flavor is set.
PR: 256301
Reported by: avg
Differential Revision: https://reviews.freebsd.org/D30579
While no port will ever have an @ in their path name, it might be
possible that PORTSDIR has an @ somewhere in its path.
PR: 256301
Differential Revision: https://reviews.freebsd.org/D30579
On Intel Skylake this enables WebRender for Xorg and Wayland (wlroots).
Xwayland isn't qualified yet but Firefox can be tricked by unsetting
WAYLAND_DISPLAY or simply switching to native via MOZ_ENABLE_WAYLAND.
PR: 255344
Reported by: Evgeniy Khramtsov (via gecko@ list)
USE_GCC=any was introduced to leverage the old version of GCC 4.2
installed as /usr/bin/gcc on some systems. That has increasingly
not been present any longer (not on i386 and amd64 since 12.x and
optionally 11.x, not even on the ppcdevref system according to
linimon@) and hardly anyone actually has been testing ports in
this scenario.
So, finally stop using /usr/bin/gcc (and /usr/bin/gc++ and
/usr/bin/gcpp) even if present.
This makes USE_GCC=any just another way of spelling USE_GCC=yes
before we finally de-orbit it.
Discussed with: mat, linimon, pkubaj
This enables to fetch and checksum on a host without src, for example, a
distfile mirroring service.
Reviewed by: rene
Differential Revision: https://reviews.freebsd.org/D30345
This brings python framework in consistense with handbook recommendations
to prefer DISTVERSION and simplifies adding prerelease versions of
python
PR: 255013
Differential Revision: https://reviews.freebsd.org/D29418
Exp-run by: antoine
Approved by: wen@, no objection from python@ or portmgr@
Release notes: https://www.postgresql.org/docs/devel/release-14.html
Also reintroduce parallel builds. Some components, namely plperl,
plpython, pltcl and contrib, fail to build properly when using parallel
builds. Something with static linking using `ar` that fails.
MAKE_JOBS_UNSAFE is set for these ports.
- Introduce CABAL_PROJECT variable to simplify handling project files in ports.
- Put dependencies into ${WRKSRC}/_cabal_deps subdir to make WRKSRC look
clean after `extract` stage.
- Perform cabal.project trickery on post-patch stage to allow users to fiddle
with the original one before creation.
- Document some code.
sysutils/ansible does not provide the Ansible program directly. It is
provided by its dependencies (sysutils/py-ansible-core at the moment).
Fix the ANSIBLE_RUN_DEPENDS so that it looks for the ansible package
instead of the Ansible binary.
The purpose of this new USES file is to provide a central place for
setting Ansible paths for modules and plugins. Perhaps in the future we
will extend to reduce boilerplate code in existing Ansible-related
ports.
PR: 255920
Reported by: lcook
Reviewed by: madpilot
Differential Revision: https://reviews.freebsd.org/D30312
Currently no supported FreeBSD version has libreadline.so in base.
Then if 'USES=readline' is used devel/readline is always added to
dependency whether or not 'port' argument is specified. So remove
unnecessary 'port' argument now.
PR: 248459
Exp-run by: antoine