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>