How to stop ports recompiling gcc, llvm, etc.?

Rastko P lylecorman at gmail.com
Wed Jun 14 07:39:36 UTC 2017


Thanks a lot Kevin,

a lot of valuable info, and I think it'll solve my problems in the long run.

I haven't been using portmaster to build ports, but "make". I'll have a look

in the manpages. As to your confusion for why LLVM isn't there, the command

is supposed to list all the packages with rev-depends > 0. As to why gcc5

is listed as gcc5-0, is beyond quant theory. And yes, I am dual-booting, so

only 64 GiB for FreeBSD here. Already on 37%, and I haven't even started

coding yet.


Thanks for the info.


On 14.06.2017 02:00, Kevin Oberman wrote:
> On Tue, Jun 13, 2017 at 3:07 PM, Rastko P <lylecorman at gmail.com
> <mailto:lylecorman at gmail.com>> wrote:
>
>     I used the portsnap fetch>extract>fetch>update
>
>     then built portmaster,
>
>     then used pkg version -l "<", which gave 2 out-of-date,
>
>     then used portmaster -L, which gave 2 matching out-of-date,
>
>     then used portmaster -a to update all ports, which pulled in a lot of
>
>         dependencies, including llvm, cairo, openjdk, etc.
>
>     then used 'df', just to find out not much space has been taken,
>
>     then used postmaster --clean-distfiles,
>
>     then used pkg clean (-a),
>
>     then did some pkg and portsnap updates again, so forth.
>
>
>     The compilation of thunderbird52.1.1 has stopped with an error
>
>     mentioning a void reference, AFAIR, and I used make only, not make
>     install,
>
>     however, I am left with gcc5 installed, 2 versions of llvm
>     installed, etc.
>
>
>     Here's some output from pkg:
>
>
>     Manually installed packages
>
>     #################
>
>
>     $ pkg query -e '%a = 0' %o
>     security/openssh-askpass
>     ports-mgmt/dialog4ports
>     misc/freebsd-doc-en
>     www/firefox
>     www/firefox-i18n
>     security/gnome-ssh-askpass
>     x11/gnome3
>     editors/nano
>     ports-mgmt/pkg
>     ports-mgmt/portmaster
>     lang/python
>     lang/python36
>     misc/freebsd-doc-sr
>     security/sudo
>     mail/thunderbird
>     mail/thunderbird-i18n
>     x11-fonts/urwfonts
>     multimedia/vlc-qt4
>     security/xca
>     x11-drivers/xf86-video-intel
>     x11/xorg
>     graphics/xpdf
>
>
>     Devel/Lang category automatically installed with -N dependencies
>     at the end
>
>     ##############################################
>
>
>     $ pkg query -e '%a = 1 && %o ~ lang* || %o ~ devel* && %#r > 0'
>     %o-%#r |
>     sort
>     devel/autoconf-1
>     devel/autoconf-wrapper-2
>     devel/automake-wrapper-1
>     devel/binutils-1
>     devel/boehm-gc-2
>     devel/boehm-gc-threaded-1
>     devel/boost-libs-2
>     devel/cmake-modules-1
>     devel/dbus-20
>     devel/dbus-glib-30
>     devel/dconf-5
>     devel/dconf-editor-1
>     devel/desktop-file-utils-24
>     devel/dotconf-2
>     devel/gamin-1
>     devel/gconf2-7
>     devel/gettext-runtime-301
>     devel/gettext-tools-2
>     devel/glib20-255
>     devel/glibmm-7
>     devel/gobject-introspection-18
>     devel/gsettings-desktop-schemas-15
>     devel/gstreamer1-plugins-soup-1
>     devel/gvfs-6
>     devel/icu-9
>
>     devel/json-glib-14
>     devel/jsoncpp-1
>     devel/libdaemon-1
>     devel/libedit-3
>     devel/libevent-2
>     devel/libffi-13
>     devel/libgdata-7
>     devel/libgee-7
>     devel/libgit2-1
>     devel/libgit2-glib-1
>     devel/libglade2-3
>     devel/libgsf-27
>     devel/libgtop-4
>     devel/libical-2
>     devel/libIDL-9
>     devel/libinotify-1
>     devel/libltdl-9
>     devel/libnotify-15
>     devel/libpciaccess-4
>     devel/libpeas-7
>     devel/libpthread-stubs-1
>     devel/librest-5
>     devel/libsigc++20-8
>     devel/libsoup-17
>     devel/libsoup-gnome-8
>     devel/libunistring-4
>     devel/libunwind-1
>     devel/libuv-1
>     devel/libvolume_id-1
>     devel/llvm39-2
>
>     devel/lua-bitop-1
>     devel/lua-lpeg-1
>     devel/m4-5
>     devel/npth-1
>     devel/nspr-9
>     devel/ORBit2-8
>     devel/orc-36
>     devel/p5-Locale-gettext-1
>     devel/pcre-3
>     devel/popt-2
>     devel/ptlib-1
>     devel/py-babel-2
>     devel/py-cffi-1
>     devel/py-dbus-5
>     devel/py-enum34-2
>     devel/py-gobject-5
>     devel/py-gobject3-6
>     devel/py-iso8601-1
>     devel/py-Jinja2-1
>     devel/py-libpeas-1
>     devel/py-notify-1
>     devel/py-pyasn1-1
>     devel/py-pycparser-1
>     devel/py-pytz-1
>     devel/py-six-4
>     devel/py-xdg-1
>     devel/py27-setuptools-29
>     devel/py3-dbus-2
>     devel/py3-gobject3-6
>     devel/py3-libpeas-3
>
>     devel/py3-xdg-2
>     devel/py35-setuptools-1
>     devel/pydbus-common-2
>     devel/pygobject3-common-2
>     devel/qt4-corelib-2
>     devel/readline-11
>     devel/sdl12-2
>     devel/spice-protocol-1
>     devel/talloc-3
>     devel/tevent-2
>     devel/xdg-utils-2
>     lang/gcc-ecj45-1
>     lang/gcc5-0
>     lang/gjs-7
>     lang/guile2-1
>     lang/lua52-11
>     lang/perl5.24-23
>     lang/python2-31
>     lang/python27-76
>     lang/python3-14
>     lang/python35-17
>     lang/spidermonkey170-1
>     lang/spidermonkey24-1
>     lang/vala-1
>
>
>
>     On 13.06.2017 20:09, Kevin Oberman wrote:
>     > On Tue, Jun 13, 2017 at 9:19 AM, Rastko P <lylecorman at gmail.com
>     <mailto:lylecorman at gmail.com>
>     > <mailto:lylecorman at gmail.com <mailto:lylecorman at gmail.com>>> wrote:
>     >
>     >     Nope, none of those, funny as it may sound, I was going by the
>     >     "Handbook" and tried to use "portmaster", as it reported some
>     >     upgradeable 'ports'.
>     >
>     >     However, that was the first  time I launched portmaster, and
>     it was
>     >     weird, because it kept prompting me to delete newer versions of
>     >     software
>     >     than that which had been built by the portmaster session, to
>     which I
>     >     replied 'oh, no [n]o', which was the default.
>     >
>     >     But in the end, it seems to have not installed anything
>     (?!). Why
>     >     did it
>     >     pull in all those dependencies? Where are the binaries?
>     >
>     >
>     >     On 13.06.2017 17:54, Lowell Gilbert wrote:
>     >     > Rastko P <lylecorman at gmail.com
>     <mailto:lylecorman at gmail.com> <mailto:lylecorman at gmail.com
>     <mailto:lylecorman at gmail.com>>>
>     >     writes:
>     >     >
>     >     >> I have a fresh 11-RELEASE dist. I am 'bootstrapping' the
>     >     environment.
>     >     >>
>     >     >> I am in the process of building mail/thunderbird-52.1.1,
>     >     because the
>     >     >> binary doesn't have support for Lightning calendar extension.
>     >     >>
>     >     >> Yesterday, a documentation port build pulled in a lot of
>     >     dependencies,
>     >     >> including GCC, LLVM, and a lot of others. 6+ hours of
>     compile-time.
>     >     >>
>     >     >> After it finished I immediately issued a 'df' cmd, and
>     >     lo-and-behold,
>     >     >> not more than 1GB was taken by the build process. Now
>     that you've
>     >     >> mentioned it, pkg says GCC or LLVM are not to be found
>     >     installed. I am
>     >     >> missing something huge here.
>     >     > Are you using synth, or poudriere? A normal port build would
>     >     leave those
>     >     > things installed if it needed them at build time.
>     >
>     >
>     > What command are you using? Specifically, what options are you using
>     > with portmaster? Are you installing from /usr/ports? Installing into
>     > /usr/local?
>     >
>     > Clearly, something odd is going on. While building llvm is big, I
>     > don't have to do it very often. Only when the port, itself, is
>     > updated. Anything in you environment that might be unexpected?
>     >
>     > When you run portmaster, you should get a list of ports to be
>     > installed and a request for confirmation that you want to
>     proceed. Are
>     > you seeing this? Or, is the build of the port triggering the rebuild
>     > of the compiler.
>
>
> First, I think "pkg clean is a reasoable thing to do but "pkg clean
> -a" is a bit excessive unless you are seriously tight on disk space.
> This is just a comment and orthogonal to your issue.
>
> Next, you will need multiple version of llvm snd may need more than
> one version of gcc. Some ports are simply won't build with other than
> some specific version. Also, some ports combinations may cause both
> lang/gcc and lang/gcc5 to be built. (Not sure of this.)
>
> You are mixing port and package installs which is a bit dangerous and
> may cause issues. That is why it is not recommended. That said, they
> are often needed unless you use synth or poudriere. You can at least
> minimize this by only using ports for those cases where the packaged
> version won't do.
>
> When you run portmaster to install a port, it should provide a list of
> all ports it will install. If none of these require special options, I
> would suggest responding "n" and then using pkg install to take care
> of the dependencies. No need to build them unless you need a
> non-standard option which is fairly unlikely for most of them. I am
> unsure why I don't see lang/llvm, though.
>
> Also, do you really need vlc-qt4? qt4 is getting very long of tooth
> and starting to suffer bit rot. I still have a couple of ports that
> require qt4, but I am working on writing updates to the ports to move
> them to qt5. In both cases the upstream supports qt5, but our port has
> not been updated to take advantage of this.
>
> Finally, use "pkg lock" to lock your custom ports so you can then just
> use "pkg upgrade" to maintain all of the rest. I do a daily:
> pkg upgrade
> portsnap update
> pkg version -vL=
>
> with a nightly cron job in /etc/crontab:
> # Fetch updates to the ports tree
> 0    4    *    *    *    root    /usr/sbin/portsnap cron
>
> These are some suggestions to make you life a bit easier. Whether they
> can resolve the root issue, I am not sure.
> --
> Kevin Oberman, Part time kid herder and retired Network Engineer
> E-mail: rkoberman at gmail.com <mailto:rkoberman at gmail.com>
> PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683




More information about the freebsd-ports mailing list