# Xproto obsolete does not allow another application to be installed!



## teo (Aug 21, 2018)

Hello!
Somebody help me solve that problem so I don't ruin the whole system.

Trying to install Xarchiver, this *xproto* conflict is shown, and following step by step the instructions of that link, and updating the whole ports tree, I still get conflict, however, with `portmaster`  I rebuilt it that  x11/xorgproto dependency, and continues to visualize conflict, xarchiver is not installed.
https://forums.freebsd.org/threads/...le-xorgproto-2018-4-with-xproto-7-0-31.67114/


----------



## rigoletto@ (Aug 21, 2018)

x11/xorgproto replace many other Xorg related _stuff_ including xproto_. _After installing x11/xorgproto you may want to run `pkg autoremove` and then rebuild everything depending on it.


----------



## teo (Aug 21, 2018)

lebarondemerde said:


> x11/xorgproto replace many other Xorg related _stuff_ including xproto_. _After installing x11/xorgproto you may want to run `pkg autoremove` and then rebuild everything depending on it.



I already removed it this way, I cleaned it this way the whole system. I updated it all the ports, I rebuilt it with `portmaster` those x11/xorgproto  dependency , however it still gives the same problem.

# `pkg delete xorgproto`
# `pkg autoremove`

# `portsnap fetch update`


Eliminate any trace:

# `pkg version -l \? | cut -f 1 -w | grep -v compat | xargs pkg delete -fy`

And rebuild that dependency:

#  `portmaster x11/xorgproto`

And  that conflict result  the I try to install other aplications as xarchiver. 

#  `pkg install  xarchiver`


----------



## rigoletto@ (Aug 21, 2018)

Remove x11/xproto, it is not ever in the ports tree anymore. You can make your life simpler using ports-mgmt/synth that would take of it for you.


----------



## teo (Aug 21, 2018)

lebarondemerde said:


> Remove x11/xproto, it is not ever in the ports tree anymore. You can make your life simpler using ports-mgmt/synth that would take of it for you.


That's why they advise in the  /usr/ports/UPDATING, the **xproto*  is old and and is queued in the x11/xorgproto package, and thus remove it as mentioned above, but it's not working. The ports-mgmt/synth port you mentioned above is by default with the* gcc6-aux-20*  compiler, manually I have to disable it so that it does not enter into conflicts with the* clang* compiler,  that port didn't work and keep seeing the same thing, will you have to start the same procedure again to make it work this time?


----------



## rigoletto@ (Aug 21, 2018)

I never had any conflict problem with lang/gcc6-aux installed alongside with Clang ( Clang is the default one and gcc will just be issued when the port tell to ), I am actually using it right now while updating some Ada ports.

Synth is Ada written and it must use lang/gcc6-aux.

EDIT: you can find more about Synth in HERE.


----------



## teo (Aug 21, 2018)

lebarondemerde said:


> I never had any conflict problem with lang/gcc6-aux installed alongside with Clang ( Clang is the default one and gcc will just be issued when the port tell to ), I am actually using it right now while updating some Ada ports.
> 
> Synth is Ada written and it must use lang/gcc6-aux.



I recompiled  ports -mgmt/synth  again with *gcc6-aux  *enabled, luckily I didn't see any error, however it gives the same result again when trying to install a binary package.


----------



## rigoletto@ (Aug 21, 2018)

Synth is a repository builder similar to ports-mgmt/poudriere but simpler. The first time you use it, Synth will rebuild all origin ports ( and its dependencies ) you have installed to assure there are no problems ( like ABI mismatch ) between them. So it is not a primitive tool like ports-mgmt/portmaster.

The right way to switch to Synth is re-building all ports using it and then reinstalling all ports:

*update the ports tree and log as root*
`pkg prime-origins > pkglist` ( edit the file to remove anything you won't )
`synth build pkglist`
`pkg delete -af`
`pkg install `cat pkglist``

For daily usage read the link to its GitHub page I posted before. 

You may also want to do some tweaks for faster builds depending on you hardware.


----------



## ShelLuser (Aug 21, 2018)

The problem here seems simple: you didn't follow the instructions in /usr/ports/UPDATING. _Always_ keep an eye out for relevant entries in there and follow up on them:


```
20180731:
  AFFECTS: users of x11/xorg and all ports with USE_XORG=*proto
  AUTHOR: zeising@FreeBSD.org

  The xorg *proto packages have all been merged into one package,
  x11/xorgproto.  This might cause issues with upgrading.  If you
  get conflicts between xorgproto and old *proto packages, please
  remove the old package and install xorgproto again.

  In order to remove all orphaned ports, including all *proto port,
  the following can be used after the ports tree has been updated:
  pkg version -l \? | cut -f 1 -w | grep -v compat | xargs pkg delete -fy
```


----------



## teo (Aug 22, 2018)

lebarondemerde said:


> The right way to switch to Synth is re-building all ports using it and then reinstalling all ports:


It is quite confusing about the ports-mgmt/poudriere  port, I didn't get to use or understand it, for example, with that  ports-mgmt/synth port you mention, how would you proceed to remove **proto*?




			
				ShelLucer said:
			
		

> you didn't follow the instructions in /usr/ports/UPDATING. _Always_ keep an eye out for relevant entries in there and follow up on them:


Above I mentioned how it proceeded and did not work, how you proceed to remove **proto*  and not display conflicts with x11/xorgproto?

Look, when you try to remove **proto*  that belongs to the x11/xorgproto port, you clean everything up, and the worst thing, when you come back again to recompile with `portmaster` the  x11/xorgproto port , that **proto* is queued  up again.

#`pkg delete xorgproto`

```
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 188 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
xorgproto-2018.4
libXau-1.0.8_4
libXdmcp-1.1.2_1
libX11-1.6.5_1,1
libXfixes-5.0.3_1
libXdamage-1.1.4_4
libXext-1.3.3_2,1
libxshmfence-1.2_3
libXxf86vm-1.1.4_2
mesa-libs-18.1.5
libXv-1.0.11_1,1
libXvMC-1.0.10_1
libvdpau-1.1.1_1
mesa-dri-18.1.5
libfontenc-1.1.3_2
libXfont-1.5.4_1,2
libxkbfile-1.0.9_1
xorg-server-1.18.4_9,1
libXi-1.7.9_1,1
xf86-input-keyboard-1.9.0_2
xf86-input-mouse-1.9.3_1
xf86-video-vesa-2.4.0_1
libICE-1.0.9_2,1
libSM-1.2.2_4,1
libXt-1.1.5_1,1
libXmu-1.1.2_4,1
mkfontscale-1.1.3_1
libXrender-0.9.10_1
libXft-2.3.2_2
libXp-1.0.3_1,1
libXpm-3.5.12_1
libXaw-1.0.13_1,2
libXinerama-1.1.4_1,1
cairo-1.14.8_2,2
libXcursor-1.1.15_1
libXrandr-1.5.1_1
libXcomposite-0.4.4_4,1
virtualbox-ose-additions-5.2.18
libXtst-1.2.3_1
libXScrnSaver-1.2.3_1
libXxf86misc-1.0.4_1
libXres-1.2.0_1
libva-2.2.0_1
webkit-gtk2-2.4.11_17
slim-1.3.6_15
libxcb-1.13
xauth-1.0.10
xdm-1.1.11_8
xcb-util-0.4.0_2,1
openbox-3.6_3
argyllcms-1.9.2_3
firefox-61.0.2,1
fuse-1.5.4
libepoxy-1.4.3
freeglut-3.0.0_1
xscreensaver-5.39_3
webkit2-gtk3-2.20.3_1
lxsession-0.5.3_1
xkbcomp-1.4.2
xinit-1.4.0,1
xterm-335
gdk-pixbuf2-2.36.11
imlib2-1.5.1,2
pango-1.42.0
startup-notification-0.12_4
dbus-1.10.16_1
xrandr-1.5.0
gtk-update-icon-cache-2.24.32
gtk2-2.24.32
gpicview-0.2.5
at-spi2-core-2.24.0
gtk3-3.22.29_1
lxinput-0.3.5
lxterminal-0.3.1
pcmanfm-1.2.5
lxappearance-0.6.3
lxappearance-obconf-0.2.3
consolekit2-1.2.0
lxhotkey-0.1.0
libwnck-2.30.7_1
keybinder-0.3.1_2
lxpanel-0.9.3
audacious-3.9_1
audacious-plugins-3.9_5
libGLU-9.0.0_3
gstreamer1-plugins-gl-1.12.3
ffmpeg-4.0.2_2,1
xorg-minimal-7.5.2_2
gle-3.1.0_7
mkfontdir-1.0.7
font-adobe-100dpi-1.0.3_3
font-adobe-utopia-100dpi-1.0.4_3
font-bh-100dpi-1.0.3_3
font-bh-lucidatypewriter-100dpi-1.0.3_3
font-bitstream-100dpi-1.0.3_3
font-adobe-75dpi-1.0.3_3
font-adobe-utopia-75dpi-1.0.4_3
font-bh-75dpi-1.0.3_3
font-bh-lucidatypewriter-75dpi-1.0.3_3
font-bitstream-75dpi-1.0.3_3
font-cronyx-cyrillic-1.0.3_3
font-misc-cyrillic-1.0.3_3
font-screen-cyrillic-1.0.4_3
font-winitzki-cyrillic-1.0.3_3
font-arabic-misc-1.0.3_3
font-cursor-misc-1.0.3_3
font-daewoo-misc-1.0.3_3
font-dec-misc-1.0.3_3
font-isas-misc-1.0.3_3
font-jis-misc-1.0.3_3
font-micro-misc-1.0.3_3
font-misc-misc-1.1.2_3
font-mutt-misc-1.0.3_3
font-schumacher-misc-1.1.2_3
font-sony-misc-1.0.3_3
font-sun-misc-1.0.3_3
dejavu-2.37
font-bh-ttf-1.0.3_3
font-misc-ethiopic-1.0.3_3
font-misc-meltho-1.0.3_3
font-adobe-utopia-type1-1.0.4_3
font-bh-type1-1.0.3_3
font-bitstream-type1-1.0.3_3
font-ibm-type1-1.0.3_3
font-xfree86-type1-1.0.4_3
webfonts-0.30_13
cantarell-fonts-0.0.25
harfbuzz-1.8.8
librsvg2-2.40.20
gnome-themes-standard-3.22.3
libfm-1.2.5
py27-cairo-1.14.1
lxrandr-0.3.1
py36-cairo-1.14.1
harfbuzz-icu-1.8.8
gnome-online-accounts-3.24.1_3
midori-0.5.11
xcb-util-renderutil-0.3.9_1
obconf-2.0.4_2
lxde-meta-1.0_8
openbox-themes-1.0.2
colord-1.2.12
firefox-i18n-61.0.2
lxde-common-0.99.2
libgsf-1.14.41
adwaita-icon-theme-3.22.0
lxde-icon-theme-0.5.1
libnotify-0.7.7_1
gcr-3.18.0
libglade2-2.6.4_9
lxtask-0.1.4_3
vte-0.28.2_3
unique-1.1.6_7
py27-gtk2-2.24.0_5
gconf2-3.2.6_5
policykit-gnome-0.9.2_8
gnome-mount-0.8_13
gtk-murrine-engine-0.98.2_5
gtk-arc-themes-20170302_1
dbus-glib-0.108
avahi-app-0.7_1
cups-2.2.8_1
at-spi2-atk-2.24.0
polkit-0.114_1
glib-networking-2.50.0_1
dconf-0.26.1
libgnome-keyring-3.12.0_2
gvfs-1.26.3_9
hal-0.5.14_33
xorg-fonts-100dpi-7.7
xorg-fonts-75dpi-7.7
xorg-fonts-cyrillic-7.7
xorg-fonts-miscbitmaps-7.7
xorg-fonts-truetype-7.7_1
xorg-fonts-type1-7.7
gsettings-desktop-schemas-3.18.1
py27-gobject-2.28.6_8
py36-gobject3-3.18.2
libgdata-0.17.8
telepathy-glib-0.24.1_1
policykit-0.9_10
samba46-4.6.16
libsoup-2.54.1
libsoup-gnome-2.54.1
xorg-fonts-7.7_1
graphene-1.6.0_2
geoclue-2.4.3
rest-0.7.93

      ..... ... ...
      ..... ... ...
```


----------



## ShelLuser (Aug 22, 2018)

teo said:


> #`pkg delete xorgproto`
> 
> ```
> Checking integrity... done (0 conflicting)
> ...


That's why -f exists. See also the pkg-delete(8) manualpage as well as the instructions in /usr/ports/UPDATING.


----------



## teo (Aug 22, 2018)

ShelLuser said:


> That's why -f exists. See also the pkg-delete(8) manualpage as well as the instructions in /usr/ports/UPDATING.


# `pkg delete -f xorgproto`

```
No packages matched for  pattern  'xorgproto'

checking integrity... done  (0 conflicting)
1 packages  requested  for  removal: 0  locked, 1 missing
#
```


----------



## ShelLuser (Aug 22, 2018)

Then you obviously don't need to remove that port. Sorry, but I really fail to understand the whole problem here.


----------



## rigoletto@ (Aug 22, 2018)

ports-mgmt/poudriere is the tool used to create the FreeBSD official packages. It does build ports in jails ( clean envirolment ). You can set different jails to build for different FreeBSD versions, different OPTIONS etc. but it is quite a work to setup. Think Synth as a light version ( chroot ) of it, intended for the end user.

So, when moving to Synth, the right way ( what those commands do ) is to save your origins packages/ports in a file ( edit it to remove eventual unncessary stuff ), issue Synth to build everything you need ( what is in that file, Synth can read from the file ), and at the end it will create a repository and switch the pkg repository to it ( disabling the official FreeBSD repository too ). Then you should remove *all* packages you have installed, and install again but now from the Synth repository ( using that file with your origin ports ).

Later you maintain it just updating the ports tree, issuing `synth prepare-system`[1], and then `pkg upgrade`.

Synth, like Poudriere, every time a port need to be upgraded, will delete all packages that depends on it and build them again. Doing that you almost never will have problems with broken ABI, or stuff like this particular xorgproto thing.

If you get some time to tweak builders/jobs on Synth ( same for Poudriere ) the building time will be considerably lower when compared with more primitive tools.

For reference, I have a AMD FX-8020 ( 8 cores ) and 16GB of RAM, I use Poudriere with 3 builders and 4 jobs, and it build the 600+ ports I use ( including the dependencies ) in less than 5 hours ( with ccache ON and already populated ) - IIRC less than 8 without ccache. But everyone should make its own tests because it can vary a lot depending of the installed ports.

[1] you can use `synth upgrade-system` instead, and at the end it will automatically issue pkg to upgrade the system, but if some dependency fail to build, it was already deleted from the repository and pkg will remove that dependency and everything that depends on it.


----------



## teo (Aug 22, 2018)

lebarondemerde said:


> Then you should remove *all* packages you have installed, and install again but now from the Synth repository ( using that file with your origin ports ).



I will try to watch videos on youtube like example if it exists, it could not be solved, the problem is, when trying to install a binary package, this  **proto* is queued up again, which causes conflicts not to be installed. Not all the time you can be compiling from ports because it takes a lot of time and is stressful, thanks for the help.


----------



## rigoletto@ (Aug 22, 2018)

You are mixing ports and packages, doesn't you? This is the way to disaster ( if not made very carefully ), specially if you are using the quarterly repository ( the default one ) for pkg ( instead of latest ), and mixing with ports. Pkg and ports are almost never synced, and with the quarterly repository even worse.

The advise is: the user should use either, prebuilt packages *or* build their own from ports. Mixing then is considered an expert practice and not recommended.

So, to fix your installation do either: remove all packages and install everything from the official repository, or build your own packages if you need customization.

I update the ports tree, issue poudriere to build the necessary updates and go to bed. In the morning I issue pkg and update the system. Done, no stress.


----------



## teo (Aug 22, 2018)

lebarondemerde said:


> You are mixing ports and packages, doesn't you? This is the way to disaster ( if not made very carefully ), specially if you are using the quarterly repository ( the default one ) for pkg ( instead of latest ), and mixing with ports. Pkg and ports are almost never synced, and with the quarterly repository even worse.
> 
> The advise is: the user should use either, prebuilt packages *or* build their own from ports. Mixing then is considered an expert practice and not recommended.


The latest for the pkg repository,  is for default the what  is installed using the `pkg update`  command. The tree of ports, this built in `portsnap fetch` and `portsnap fetch update`,  and the source code, is /releng/11.2/ the  what this  built  that is of the branch RELEASE , this is the first time you visualize that conflict for* i386 *bits with **proto*, and the installed packages were all removed the moment of run the `pkg delete xorgproto` command.


----------



## kpa (Aug 22, 2018)

You're not really answering the question but gathering from the little bits you're offering I'd say your problem is exactly as stated, mixing ports and packages. Stick to just binary packages or build everything yourself.


----------



## teo (Aug 22, 2018)

kpa said:


> You're not really answering the question but gathering from the little bits you're offering I'd say your problem is exactly as stated, mixing ports and packages. Stick to just binary packages or build everything yourself.


The reason for the installation of ports is because it is in its latest version, which does not happen with binary packages and displays system vulnerabilities. For that it is necessary the ports to update some packages or dependencies that are resistant to be updated and that vulnerability disappears. However, today, neither with a method nor with any other method works, reaching the same point of *proto  bug.


----------



## shkhln (Aug 22, 2018)

teo said:


> # `pkg delete -f xorgproto`



Aren't you supposed to force delete old *proto packages rather then the package you are trying to install?


----------



## SirDice (Aug 22, 2018)

I suspect teo is trying to mix the latest ports with the quarterly packages.


----------



## gnath (Aug 23, 2018)

Ref. Thread 66970 , same problem for me on port tree. 
This is simply a dependency problem. It is good advice not to mix port & packages.
Few days back I updated the package tree on laptop also without any issue. Only it asked for deletion of all other *proto packages in expected way.
Why try to delete xorgproto ? In my laptop 142 packages will be deleted. You may try to 
reinstall the same first and then delete all other *proto  packages or use `autoremove`.


----------



## shkhln (Aug 23, 2018)

SirDice said:


> I suspect teo is trying to mix the latest ports with the quarterly packages.


That's what I'm actually doing with my desktop computer (with a few applications). However, since I build packages in the same environment I'm running them, they just reference xproto package currently installed. If I were to mix packages from latest and quartely official _repos_, that would be another matter.

The other thing I don't quite understand is why there is a runtime dependency on a header files package in the first place.


----------



## kpa (Aug 23, 2018)

shkhln said:


> The other thing I don't quite understand is why there is a runtime dependency on a header files package in the first place.



FreeBSD doesn't yet have separate -devel packages for headers, it's been worked on but the other problems in the ports system have taken priority over the last years.

When it's realized the packaging part of ports can make use of the staging mechanism and create a variety of different package from the same built port, package that contains just the runtime components, a package that is just the header files, a package that contains the documentation and so on.


----------



## SirDice (Aug 23, 2018)

kpa said:


> FreeBSD doesn't yet have separate -devel packages for headers


We do have -devel ports but those typically refer to development (i.e. alpha/beta) versions, not header/include files as is common on Linux.


----------



## kpa (Aug 23, 2018)

Yeah I was referring to the Linux convention of using -devel to designate a header file package. If and when we get the same kind of packages there has to be some other nameing convention because -devel is already taken.


----------



## teo (Aug 26, 2018)

SirDice said:


> I suspect teo is trying to mix the latest ports with the quarterly packages.




The binary package repository this  in quarterly basis by default.

#`pkg -vv`

```
Version                 : 1.10.5[/BGCOLOR][/BGCOLOR][/BGCOLOR][/BGCOLOR][/BGCOLOR]
[BGCOLOR=#dee3e7][BGCOLOR=#dee3e7][BGCOLOR=#dee3e7][BGCOLOR=#dee3e7][BGCOLOR=#dee3e7]PKG_DBDIR = "/var/db/pkg";
PKG_CACHEDIR = "/var/cache/pkg";
PORTSDIR = "/usr/ports";
INDEXDIR = "";
INDEXFILE = "INDEX-11";
HANDLE_RC_SCRIPTS = false;
DEFAULT_ALWAYS_YES = false;
ASSUME_ALWAYS_YES = false;
REPOS_DIR [
    "/etc/pkg/",
    "/usr/local/etc/pkg/repos/",
]
PLIST_KEYWORDS_DIR = "";
SYSLOG = true;
ABI = "FreeBSD:11:amd64";
ALTABI = "freebsd:11:x86:64";
DEVELOPER_MODE = false;
VULNXML_SITE = "http://vuxml.freebsd.org/freebsd/vuln.xml.bz2";
FETCH_RETRY = 3;
PKG_PLUGINS_DIR = "/usr/local/lib/pkg/";
PKG_ENABLE_PLUGINS = true;
PLUGINS [
]
DEBUG_SCRIPTS = false;
PLUGINS_CONF_DIR = "/usr/local/etc/pkg/";
PERMISSIVE = false;
REPO_AUTOUPDATE = true;
NAMESERVER = "";
HTTP_USER_AGENT = "pkg/1.10.5";
EVENT_PIPE = "";
FETCH_TIMEOUT = 30;
UNSET_TIMESTAMP = false;
SSH_RESTRICT_DIR = "";
PKG_ENV {
}
PKG_SSH_ARGS = "";
DEBUG_LEVEL = 0;
ALIAS {
    all-depends = "query %dn-%dv";
    annotations = "info -A";
    build-depends = "info -qd";
    cinfo = "info -Cx";
    comment = "query -i \"%c\"";
    csearch = "search -Cx";
    desc = "query -i \"%e\"";
    download = "fetch";
    iinfo = "info -ix";
    isearch = "search -ix";
    prime-list = "query -e '%a = 0' '%n'";
    prime-origins = "query -e '%a = 0' '%o'";
    leaf = "query -e '%#r == 0' '%n-%v'";
    list = "info -ql";
    noauto = "query -e '%a == 0' '%n-%v'";
    options = "query -i \"%n - %Ok: %Ov\"";
    origin = "info -qo";
    provided-depends = "info -qb";
    raw = "info -R";
    required-depends = "info -qr";
    roptions = "rquery -i \"%n - %Ok: %Ov\"";
    shared-depends = "info -qB";
    show = "info -f -k";
    size = "info -sq";
}
CUDF_SOLVER = "";
SAT_SOLVER = "";
RUN_SCRIPTS = true;
CASE_SENSITIVE_MATCH = false;
LOCK_WAIT = 1;
LOCK_RETRIES = 5;
SQLITE_PROFILE = false;
WORKERS_COUNT = 0;
READ_LOCK = false;
PLIST_ACCEPT_DIRECTORIES = false;
IP_VERSION = 0;
AUTOMERGE = true;
VERSION_SOURCE = "";
CONSERVATIVE_UPGRADE = true;
PKG_CREATE_VERBOSE = false;
AUTOCLEAN = false;
DOT_FILE = "";
REPOSITORIES {
}
VALID_URL_SCHEME [
    "pkg+http",
    "pkg+https",
    "https",
    "http",
    "file",
    "ssh",
    "ftp",
    "ftps",
    "pkg+ssh",
    "pkg+ftp",
    "pkg+ftps",
]
ALLOW_BASE_SHLIBS = false;
WARN_SIZE_LIMIT = 1048576;
METALOG = "";
OSVERSION = 1102000;
IGNORE_OSVERSION = false;


Repositories:
  FreeBSD: { 
    url             : "pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/quarterly",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
```




I tried to change the repository for the latest binary packages this way but it didn't work.

# `ee /usr/local/etc/repos/FreeBSD.conf`

```
FreeBSD: {
   url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest"
}
```





In short, about the **proto* header package, after having removed the system for i386, I installed FreeBSD 11.2  RELEASE for 64 bits, and continued visualizing the same result, there are conflicts with all the concepts of binary packages, the installation through binary packages ends up producing many vulnerabilities in the system and producing error when trying to correct those vulnerabilities or  I installed other binary packages because  it automatically installs that  *proto package.  Irremediably, there is no other way than to build the system through the stressful compilation of ports, and many of these compilations end up in error or in bug as in this case.

# `cd /usr/ports/www/firefox-i18n/`
# `make config-recursive`
# `make install clean`


```
< Rustfmt { stage: 2, target: "x86_64-unknown-freebsd" }
Install rustfmt stage2 (Some("x86_64-unknown-freebsd"))
running: "sh" "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/tmp/dist/rustfmt-0.6.1-x86_64-unknown-freebsd/install.sh" "--prefix=/usr/ports/lang/rust/work/stage/usr/local" "--sysconfdir=/usr/ports/lang/rust/work/stage/usr/local/etc" "--datadir=/usr/ports/lang/rust/work/stage/usr/local/share" "--docdir=/usr/ports/lang/rust/work/stage/usr/local/share/doc/rust" "--bindir=/usr/ports/lang/rust/work/stage/usr/local/bin" "--libdir=/usr/ports/lang/rust/work/stage/usr/local/lib" "--mandir=/usr/ports/lang/rust/work/stage/usr/local/man" "--disable-ldconfig"
install: creating uninstall script at /usr/ports/lang/rust/work/stage/usr/local/lib/rustlib/uninstall.sh
install: installing component 'rustfmt-preview'
install: backing up existing file at /usr/ports/lang/rust/work/stage/usr/local/share/doc/rust/README.md
install: backing up existing file at /usr/ports/lang/rust/work/stage/usr/local/share/doc/rust/LICENSE-MIT
install: backing up existing file at /usr/ports/lang/rust/work/stage/usr/local/share/doc/rust/LICENSE-APACHE

    rustfmt ready to fmt.

< Rustfmt { stage: 2, target: "x86_64-unknown-freebsd", host: "x86_64-unknown-freebsd" }
> Analysis { stage: 2, target: "x86_64-unknown-freebsd", host: "x86_64-unknown-freebsd" }
  c Assemble { target_compiler: Compiler { stage: 2, host: "x86_64-unknown-freebsd" } }
  > Analysis { compiler: Compiler { stage: 2, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" }
Dist analysis
    c Std { compiler: Compiler { stage: 2, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" }
    c Assemble { target_compiler: Compiler { stage: 1, host: "x86_64-unknown-freebsd" } }
image_src: "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/x86_64-unknown-freebsd/stage1-std/x86_64-unknown-freebsd/release/deps/save-analysis", dst: "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/tmp/dist/rust-analysis-1.27.1-x86_64-unknown-freebsd-image/lib/rustlib/x86_64-unknown-freebsd/analysis"
    c Assemble { target_compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" } }
    c RustInstaller { compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" }
    c Assemble { target_compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" } }
    c Libdir { compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" }
    c Llvm { target: "x86_64-unknown-freebsd", emscripten: false }
running: "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/x86_64-unknown-freebsd/stage0-tools-bin/fabricate" "generate" "--product-name=Rust" "--rel-manifest-dir=rustlib" "--success-message=save-analysis-saved." "--image-dir" "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/tmp/dist/rust-analysis-1.27.1-x86_64-unknown-freebsd-image" "--work-dir" "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/tmp/dist" "--output-dir" "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/dist" "--package-name=rust-analysis-1.27.1-x86_64-unknown-freebsd" "--component-name=rust-analysis-x86_64-unknown-freebsd" "--legacy-manifest-dirs=rustlib,cargo"
  < Analysis { compiler: Compiler { stage: 2, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" }
Install analysis stage2 (Some("x86_64-unknown-freebsd"))
running: "sh" "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/tmp/dist/rust-analysis-1.27.1-x86_64-unknown-freebsd/install.sh" "--prefix=/usr/ports/lang/rust/work/stage/usr/local" "--sysconfdir=/usr/ports/lang/rust/work/stage/usr/local/etc" "--datadir=/usr/ports/lang/rust/work/stage/usr/local/share" "--docdir=/usr/ports/lang/rust/work/stage/usr/local/share/doc/rust" "--bindir=/usr/ports/lang/rust/work/stage/usr/local/bin" "--libdir=/usr/ports/lang/rust/work/stage/usr/local/lib" "--mandir=/usr/ports/lang/rust/work/stage/usr/local/man" "--disable-ldconfig"
install: creating uninstall script at /usr/ports/lang/rust/work/stage/usr/local/lib/rustlib/uninstall.sh
install: installing component 'rust-analysis-x86_64-unknown-freebsd'

    save analysis saved.

< Analysis { stage: 2, target: "x86_64-unknown-freebsd", host: "x86_64-unknown-freebsd" }
> Src { stage: 2 }
  > Src
Dist src
    c Assemble { target_compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" } }
    c RustInstaller { compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" }
    c Assemble { target_compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" } }
    c Libdir { compiler: Compiler { stage: 0, host: "x86_64-unknown-freebsd" }, target: "x86_64-unknown-freebsd" }
    c Llvm { target: "x86_64-unknown-freebsd", emscripten: false }
running: "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/x86_64-unknown-freebsd/stage0-tools-bin/fabricate" "generate" "--product-name=Rust" "--rel-manifest-dir=rustlib" "--success-message=Awesome-Source." "--image-dir" "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/tmp/dist/rust-src-1.27.1-image" "--work-dir" "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/tmp/dist" "--output-dir" "/usr/ports/lang/rust/work/rustc-1.27.1-src/build/dist" "--package-name=rust-src-1.27.1" "--component-name=rust-src" "--legacy-manifest-dirs=rustlib,cargo"
  < Src
Install src stage2 (None)
lib/rustlib/uninstall.sh


}
"

















=> port manually into /usr/ports/distfiles/gnome2 and try again.
*** Error code 1

Stop.
make[6]: stopped in /usr/ports/devel/gconf2
*** Error code 1

Stop.
make[5]: stopped in /usr/ports/devel/gconf2
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/www/firefox
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/www/firefox
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/www/firefox-i18n
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/www/firefox-i18n
*** Error code 1

Stop.
make: stopped in /usr/ports/www/firefox-i18n
#
```

You think it's logical even to update the binary packages if is what there are any, end up displaying in the list of the header the  **proto* package ready to be installing  and then produce conflicts with xorgproto?  The same goes  what  the  `pkg check -d -a`command,  that searches for missing dependencies, and some applications on the graphical desktop will not open,  examples.

# `pkg upgrade`

```
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (324 candidates): 100%
Processing candidates (324 candidates): 100%
The following 20 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
    hal: 0.5.14_33
    policykit: 0.9_10
    xproto: 7.0.31
    kbproto: 1.0.7
    printproto: 1.0.5
    dmxproto: 2.3.1
    xf86dgaproto: 2.1
    trapproto: 3.4.3
    fontcacheproto: 0.1.3
    fontsproto: 2.1.3,1
    dmidecode: 3.1_1
    libvolume_id: 0.81.1

Installed packages to be REINSTALLED:
    thunar-vfs-1.2.0_11 (options changed)
    qt5-quick-5.10.1 (direct dependency changed: qt5-widgets)
    qt5-opengl-5.10.1 (direct dependency changed: qt5-widgets)
    qt5-multimedia-5.10.1 (direct dependency changed: libXv)
    qt5-gui-5.10.1 (direct dependency changed: xcb-util-wm)
    poppler-data-0.4.9 (ABI changed: 'freebsd:11:*' -> 'freebsd:11:x86:64')
    libdvdread-6.0.0 (options changed)
    gstreamer-plugins-good-0.10.31_3,3 (needed shared library changed)

Number of packages to be installed: 12
Number of packages to be reinstalled: 8

The process will require 4 MiB more space.
9 MiB to be downloaded.

Proceed with this action? [y/N]: n
#
```

Or:

#`pkg check -d -a`

```
Checking all packages: 100%
bitmap has a missing dependency: xproto
iceauth has a missing dependency: xproto
libFS has a missing dependency: xproto
libFS has a missing dependency: fontsproto
libXTrap has a missing dependency: trapproto
libXaw has a missing dependency: xproto
libXaw has a missing dependency: printproto
libXevie has a missing dependency: xproto
libXfontcache has a missing dependency: fontcacheproto
libXp has a missing dependency: printproto
libXxf86dga has a missing dependency: xproto
libXxf86dga has a missing dependency: xf86dgaproto
libdmx has a missing dependency: dmxproto
libxkbui has a missing dependency: kbproto
virtualbox-ose-additions is missing a required shared library: libXfixes.so
virtualbox-ose-additions is missing a required shared library: libXext.so
xdpyinfo has a missing dependency: xproto
xf86-input-keyboard has a missing dependency: xproto
xf86-input-mouse has a missing dependency: xproto
xf86-video-scfb has a missing dependency: xproto
xf86-video-vesa has a missing dependency: xproto
xset has a missing dependency: xproto
xwininfo has a missing dependency: xproto

>>> Missing package dependencies were detected.
>>> Found 8 issue(s) in the package database.

The following packages will be installed:

New packages to be INSTALLED:
    xproto: 7.0.31
    fontsproto: 2.1.3,1
    trapproto: 3.4.3
    printproto: 1.0.5
    fontcacheproto: 0.1.3
    xf86dgaproto: 2.1
    dmxproto: 2.3.1
    kbproto: 1.0.7

Number of packages to be installed: 8

The process will require 2 MiB more space.
255 KiB to be downloaded.

>>> Try to fix the missing dependencies? [y/N]: n
>>> Summary of actions performed:

xproto dependency failed to be fixed
fontsproto dependency failed to be fixed
trapproto dependency failed to be fixed
printproto dependency failed to be fixed
fontcacheproto dependency failed to be fixed
xf86dgaproto dependency failed to be fixed
dmxproto dependency failed to be fixed
kbproto dependency failed to be fixed

>>> There are still missing dependencies.
>>> Try fixing them manually.

>>> Also make sure to check 'pkg updating' for known issues.
#
```

And:

# `pkg install neofetch`

```
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 10 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
    neofetch: 5.0.0
    bash: 4.4.23
    printproto: 1.0.5
    dmxproto: 2.3.1
    xproto: 7.0.31
    kbproto: 1.0.7
    xf86dgaproto: 2.1
    fontcacheproto: 0.1.3
    trapproto: 3.4.3
    fontsproto: 2.1.3,1

Number of packages to be installed: 10

The process will require 10 MiB more space.
2 MiB to be downloaded.

Proceed with this action? [y/N]: n
#
```


----------



## shkhln (Aug 26, 2018)

I've already told you in relatively direct language to force delete old *proto packages. I'm still not sure you even tried that.



teo said:


> the installation through binary packages ends up producing many vulnerabilities in the system



Pkg doesn't "produce" vulnerabilities, it only reports them. And, of course, they have not been created at the moment of reporting, they were present in your system long before their discovery.


----------



## shkhln (Aug 26, 2018)

teo said:


> ```
> Repositories:
> FreeBSD: {
> url             : "pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/quarterly",
> ...



I suspect reusing the same repository name (FreeBSD) for the _quartely_ -> _latest_ switch might not be the brightest idea.


----------



## teo (Aug 26, 2018)

shkhln said:


> I've already told you in relatively direct language to force delete old *proto packages. I'm still not sure you even tried that.




I have already mentioned in the other messages how to remove that **proto* package, however, when you try to update the binary packages with the `pkg upgrade` or install a binary package, it automatically queues that obsolete package as detailed above. 

# `pkg delete -f xproto`

Or:
# `pkg delete -f xorgproto`
# `pkg autoremove`
# `portsnap fetch update`

# `pkg version -l \? | cut -f 1 -w | grep -v compat | xargs pkg delete -fy` 

#`portmaster x11/xorgproto`




			
				shkhln said:
			
		

> Pkg doesn't "produce" vulnerabilities, it only reports them. And, of course, they have not been created at the moment of reporting, they were present in your system long before their discovery.




The installation of some binary packages, of course, some of those packages the system detects vulnerabilities and resists upgrading using the `pkg upgrade` command, and to force upgrade to those packages or vulnerable dependencies, I have used the `portmaster` command and the system does not detect more vulnerabilities, however with that obsolete **proto* package, you can not install binary packages because it immediately generates conflicts with `xorgproto`   or when updating and installing a  new port or a binary package.

 Example of vulnerable packages or dependencies that have resisted being updated with `pkg upgrade`  command and have been detected by the system as vulnerable, as mentioned in other open topics.


#`pkg audit -F`

```
vulnxml file up-to-date
libsndfile-1.0.28_1 is vulnerable:
libsndfile -- out-of-bounds reads
CVE: CVE-2017-17457
CVE: CVE-2017-17456
CVE: CVE-2017-14246
CVE: CVE-2017-14245
WWW: https://vuxml.FreeBSD.org/freebsd/30704aba-1da4-11e8-b6aa-4ccc6adda413.html

sqlite3-3.22.0 is vulnerable:
SQLite -- Corrupt DB can cause a NULL pointer dereference
CVE: CVE-2018-8740
WWW: https://vuxml.FreeBSD.org/freebsd/6d52bda1-2e54-11e8-a68f-485b3931c969.html

firefox-59.0.1,1 is vulnerable:
mozilla -- use-after-free in compositor
CVE: CVE-2018-5148
WWW: https://vuxml.FreeBSD.org/freebsd/23f59689-0152-42d3-9ade-1658d6380567.html

thunderbird-52.6.0_2 is vulnerable:
mozilla -- use-after-free in compositor
CVE: CVE-2018-5148
WWW: https://vuxml.FreeBSD.org/freebsd/23f59689-0152-42d3-9ade-1658d6380567.html

thunderbird-52.6.0_2 is vulnerable:
mozilla -- multiple vulnerabilities
CVE: CVE-2018-5147
CVE: CVE-2018-5146
WWW: https://vuxml.FreeBSD.org/freebsd/7943794f-707f-4e31-9fea-3bbf1ddcedc1.html

thunderbird-52.6.0_2 is vulnerable:
mozilla -- multiple vulnerabilities
CVE: CVE-2018-5143
CVE: CVE-2018-5142
CVE: CVE-2018-5141
CVE: CVE-2018-5140
CVE: CVE-2018-5138
CVE: CVE-2018-5137
CVE: CVE-2018-5136
CVE: CVE-2018-5135
CVE: CVE-2018-5134
CVE: CVE-2018-5133
CVE: CVE-2018-5132
CVE: CVE-2018-5131
CVE: CVE-2018-5130
CVE: CVE-2018-5129
CVE: CVE-2018-5128
CVE: CVE-2018-5127
CVE: CVE-2018-5126
CVE: CVE-2018-5125
WWW: https://vuxml.FreeBSD.org/freebsd/c71cdc95-3c18-45b7-866a-af28b59aabb5.html

4 problem(s) in the installed packages found.
#
```



			
				shkhln said:
			
		

> I suspect reusing the same repository name (FreeBSD) for the _quartely_ -> _latest_ switch might not be the brightest idea.



Your suspicions are unfounded even though I mentioned above to try to get the latest software by creating a repository.


----------



## shkhln (Aug 26, 2018)

teo said:


> when you try to update the binary packages with the `pkg upgrade` or install a binary package, it automatically queues that obsolete package as detailed above.



_Quartely_ still contains those old *proto packages. You really should decide which repo you want to use. If you want to move to _latest_ then you have to delete xproto & friends. If you want to continue using _quarterly_ you should delete _all_ packages from _latest_ that you have installed (xorgproto, its reverse dependencies and likely a bunch of other random stuff).



> # `pkg version -l \? | cut -f 1 -w | grep -v compat | xargs pkg delete -fy`



I know this is maintainer's advice, but that's just gross. Personally, I would never force delete anything without reviewing package names first.


----------



## gnath (Aug 27, 2018)

shkhln said:


> anything without reviewing package names first


 It appears that there is a mix of ports & pkg's with few other problems.
I would try to start from fresh with package system from latest repo. For that make a list of installed package first. Delete all affected packages with -f switch as far as possible.
Use `pkg audit -F`. Review the system & then `pkg upgrade`. Use 'yes' then the `pkg` may goes for second iteration. Check again then reinstall others required packeges.


----------



## tingo (Aug 29, 2018)

Let me just air my frustration on this subject: a ports upgrade that requires deleting and reinstalling well over 300 ports? It is _very_ frustrating.
</ObFrust>


----------



## teo (Aug 30, 2018)

tingo said:


> It is _very_ frustrating.



That's very frustrating, because of an obsolete **proto* package which is embedded in the *quarterly* repository that has been neglected for the installation of graphic desktop. Can you imagine that there is still the old version of virtualbox-ose-additions-5.2-5.2.12 for binary package? Please, we're already on the virtualBox-ose-additions-5.2-5.2.18 version.  But I already managed to fix it by changing the *quarterly* repository to the *latest*  repository for binary packages in this case.



# `pkg -vv`

```
Version                 : 1.10.5
PKG_DBDIR = "/var/db/pkg";
PKG_CACHEDIR = "/var/cache/pkg";
PORTSDIR = "/usr/ports";
INDEXDIR = "";
INDEXFILE = "INDEX-11";
HANDLE_RC_SCRIPTS = false;
DEFAULT_ALWAYS_YES = false;
ASSUME_ALWAYS_YES = false;
REPOS_DIR [
    "/etc/pkg/",
    "/usr/local/etc/pkg/repos/",
]
PLIST_KEYWORDS_DIR = "";
SYSLOG = true;
ABI = "FreeBSD:11:amd64";
ALTABI = "freebsd:11:x86:64";
DEVELOPER_MODE = false;
VULNXML_SITE = "http://vuxml.freebsd.org/freebsd/vuln.xml.bz2";
FETCH_RETRY = 3;
PKG_PLUGINS_DIR = "/usr/local/lib/pkg/";
PKG_ENABLE_PLUGINS = true;
PLUGINS [
]
DEBUG_SCRIPTS = false;
PLUGINS_CONF_DIR = "/usr/local/etc/pkg/";
PERMISSIVE = false;
REPO_AUTOUPDATE = true;
NAMESERVER = "";
HTTP_USER_AGENT = "pkg/1.10.5";
EVENT_PIPE = "";
FETCH_TIMEOUT = 30;
UNSET_TIMESTAMP = false;
SSH_RESTRICT_DIR = "";
PKG_ENV {
}
PKG_SSH_ARGS = "";
DEBUG_LEVEL = 0;
ALIAS {
    all-depends = "query %dn-%dv";
    annotations = "info -A";
    build-depends = "info -qd";
    cinfo = "info -Cx";
    comment = "query -i \"%c\"";
    csearch = "search -Cx";
    desc = "query -i \"%e\"";
    download = "fetch";
    iinfo = "info -ix";
    isearch = "search -ix";
    prime-list = "query -e '%a = 0' '%n'";
    prime-origins = "query -e '%a = 0' '%o'";
    leaf = "query -e '%#r == 0' '%n-%v'";
    list = "info -ql";
    noauto = "query -e '%a == 0' '%n-%v'";
    options = "query -i \"%n - %Ok: %Ov\"";
    origin = "info -qo";
    provided-depends = "info -qb";
    raw = "info -R";
    required-depends = "info -qr";
    roptions = "rquery -i \"%n - %Ok: %Ov\"";
    shared-depends = "info -qB";
    show = "info -f -k";
    size = "info -sq";
}
CUDF_SOLVER = "";
SAT_SOLVER = "";
RUN_SCRIPTS = true;
CASE_SENSITIVE_MATCH = false;
LOCK_WAIT = 1;
LOCK_RETRIES = 5;
SQLITE_PROFILE = false;
WORKERS_COUNT = 0;
READ_LOCK = false;
PLIST_ACCEPT_DIRECTORIES = false;
IP_VERSION = 0;
AUTOMERGE = true;
VERSION_SOURCE = "";
CONSERVATIVE_UPGRADE = true;
PKG_CREATE_VERBOSE = false;
AUTOCLEAN = false;
DOT_FILE = "";
REPOSITORIES {
}
VALID_URL_SCHEME [
    "pkg+http",
    "pkg+https",
    "https",
    "http",
    "file",
    "ssh",
    "ftp",
    "ftps",
    "pkg+ssh",
    "pkg+ftp",
    "pkg+ftps",
]
ALLOW_BASE_SHLIBS = false;
WARN_SIZE_LIMIT = 1048576;
METALOG = "";
OSVERSION = 1102000;
IGNORE_OSVERSION = false;


Repositories:
  FreeBSD: {
    url             : "pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/latest",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
```


----------

