Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jun 2017 17:00:46 -0700
From:      Kevin Oberman <rkoberman@gmail.com>
To:        Rastko P <lylecorman@gmail.com>
Cc:        FreeBSD Ports ML <freebsd-ports@freebsd.org>
Subject:   Re: How to stop ports recompiling gcc, llvm, etc.?
Message-ID:  <CAN6yY1sigTrDUXQnkMnP5JL4-k%2B7WLG%2BeRnoye-d5eF7oeMvvw@mail.gmail.com>
In-Reply-To: <e2da78e1-2cb0-16c0-84fb-3effd91a884f@gmail.com>
References:  <aaf4d26e-8c12-b216-5095-30746ed85039@gmail.com> <9DD17DEF-D6EB-496B-95AB-DC2C8EE4156B@FreeBSD.org> <e9d47040-2a66-e368-6915-3c30ec7a91ba@gmail.com> <594005E1.70608@grosbein.net> <4aeaa9da-1e52-812f-fddd-fda24cfa0ee5@gmail.com> <44vanzx4qd.fsf@lowell-desk.lan> <56bafdb9-9e01-c158-63d7-f3d4c3daa0c5@gmail.com> <CAN6yY1s2uDXsEaSeL7S=A0t_N=je3ngU9cXA9euiEYPiLNUYWg@mail.gmail.com> <e2da78e1-2cb0-16c0-84fb-3effd91a884f@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jun 13, 2017 at 3:07 PM, Rastko P <lylecorman@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@gmail.com
> > <mailto:lylecorman@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@gmail.com <mailto:lylecorman@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@gmail.com
PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAN6yY1sigTrDUXQnkMnP5JL4-k%2B7WLG%2BeRnoye-d5eF7oeMvvw>