# List packages installed via ports (solved)



## Logicien (May 12, 2020)

Hello,
I am using FreeBSD 12.1-RELEASE-p3 GENERIC  amd64. I use compiled packages from ports only if pre-compiled packages are not available. For example the sound files eawpats are only available through ports so I have compiled this package via ports and some others like this one too. I have not take notes of those packages I have installed via ports.

Is there a way to list those compiled packages that I have install via ports and only them with portmaster, portupgrade, even with pkg and upgrade only them and not the whole installed pre-compiled packages when I want to upgrade my ports compiled packages? Portmaster try to upgrade all installed packages via ports, pre-compiled and compiled  and not only  the ones who effectively have been installed through ports.

I know that Portmaster have some options to use pre-compiled packages when the good version exist but it always want to upgrade all my packages and not only the ones installed through ports.


----------



## T-Daemon (May 12, 2020)

Logicien said:


> Is there a way to list those compiled packages that I have install via ports and only them with portmaster, portupgrade, even with pkg and upgrade only them and not the whole installed pre-compiled packages when I want to upgrade my ports compiled packages?



Run this:

`pkg query -a ‘%R %o’ | sort | grep unknown-repository`

Alternatively:

`pkg query -a ‘%R %o’ | sort`

Doc: man pkg-query(8) or `pkg help query`

Note: portmaster(8) has a logging option ( it needs to be set in /usr/local/etc/portmaster.rc ), activated you can track all processed ports by it.



Logicien said:


> Portmaster try to upgrade all installed packages via ports, pre-compiled and compiled  and not only  the ones who effectively have been installed through ports.
> 
> I know that Portmaster have some options to use pre-compiled packages when the good version exist but it always want to upgrade all my packages and not only the ones installed through ports.



Thats because you have mixed packages from the quarterly package repository ( default repository, set in /etc/pkg/FreeBSD.conf - pkg.conf(5) ) and ports from the head tree. Portmaster sees a difference  between the installed package version and the ports tree version, which is newer, so it determines all non-port installed packages needs to be upgraded.

You have two possibilities, the first one is change to latest package repository and keep the current ( head ) ports tree, or keep the quarterly package repository ( and all installed packages ), change the ports tree to quarterly.

The difference between the two branches are ( note: the pre-compiled packages are build after those ports trees ):

Quarterly


> "The aim of these branches is to provide users with a more predictable and stable experience for port and package installation and upgrades. This is done essentially by only allowing _non-feature_ updates."



Head is the latest program version available as port.

If you need assistance after you have decided, please ask.


----------



## Logicien (May 13, 2020)

Thank-you T-Daemon,

I understand now, I will keep Quaterly as my pre-compiled packages branch. I prefer to use the stable branch. How do I tell to portsnap to install the Quarterly ports branch? I make  a search for this presently.


----------



## SirDice (May 13, 2020)

Logicien said:


> How do I tell to portsnap to install the Quarterly ports branch?


You don't, it can only checkout the latest ports tree. If you want the quarterly branches you're going to need to use svnlite(1) or svn(1).

`svnlite co https://svn.freebsd.org/ports/branches/2020Q2 /usr/ports`


----------



## Logicien (May 13, 2020)

Thank-you SirDice,

I suppose that the newest version 2020Q2 of the Quarterly branch will change with time for a newer one. Is there a way to update /usr/ports with svnlite without checking the Quarterly newest version from time to time with the link you give, telling to svnlite to install the latest version?

An other question, is the head branch of the pre-compiled packages is risky to use compare to quartlerly the one?

The svnlite command tell me that the /tmp directory is full and cannot complete the task. I modified the /tmp directory from 50m to 1g in fstab and now it say error context. What is the solution to have the quartlerly /usr/ports branch?

On the other side pkg tell me that I have 249 packages to upgrade when I use the head branch. I haven't proceed yet. I wait to know if it is risky to use the head branch of the pre-compiled packages.


----------



## diizzy (May 13, 2020)

You can also use git (not in base) and grab the tree from GitHub








						GitHub - freebsd/freebsd-ports: FreeBSD ports tree (read-only mirror)
					

FreeBSD ports tree (read-only mirror). Contribute to freebsd/freebsd-ports development by creating an account on GitHub.




					github.com


----------



## SirDice (May 13, 2020)

Logicien said:


> I suppose that the newest version 2020Q2 of the Quarterly branch will change with time for a newer one.


You will need to switch branches when 2020Q3 is released. 



> Is there a way to update /usr/ports with svnlite without checking the Quarterly newest version from time to time with the link you give, telling to svnlite to install the latest version?


After the initial checkout you can keep it updated using `svnlite update /usr/ports`


----------



## T-Daemon (May 13, 2020)

Logicien said:


> Is there a way to update /usr/ports with svnlite without checking the Quarterly newest version from time to time with the link you give, telling to svnlite to install the latest version?


For the time being no. There is a bug report proposing to implement quarterly checkout/update to portsnap ( PR 231458  ), but it doesn't seem to be much supported. To avoid checking the newest version from time to time you can subscribe to the freebsd-ports-announce@freebsd.org list. Example announcement:



			[FreeBSD-Ports-Announce] New 2020Q2 branch
		




Logicien said:


> An other question, is the head branch of the pre-compiled packages is risky to use compare to quartlerly the one?


Not at all. A vulnarable or buggy program can hit also the quarterly branch, but after it's known a patched version is released as soon as possible, unless the port is neglegted by the maintainer. The difference is you got newer versions, with possible new features with the latest ( head ) branch.



Logicien said:


> The svnlite command tell me that the /tmp directory is full and cannot complete the task. I modified the /tmp directory from 50m to 1g in fstab and now it say error context


Please post the complete error message.


----------



## SirDice (May 13, 2020)

HEAD aka latest ports has a continuous flow of updates, version updates, bug fixes, everything. Every day a number of ports will get updates, so it's more like a never ending rolling release. The quarterly branches are branched  off from that continuous stream of updates at regular intervals (once every three months). Those quarterly branches will be more or less "stable" (stable meaning no or very few changes here, not their running quality).  The quarterly branches will only receive security updates (if a specific port has a security update) or simple break-fixes (port fails to build for some reason). 

As for when this happens, it's fairly simple. Q1; first of January, Q2; first of April, Q3; first of July, Q4; first of October. So the next 2020Q3 will happen on the first of July.


----------



## Logicien (May 13, 2020)

I am using the git way to install the /usr/ports directory. Is the github https://github.com/freebsd/freebsd-ports is a head or a quarterly branch?

What surprise me is that when I use portsnap the /usr/ports have little less than 1 go but the git size of /usr/freebsd-ports have 2,7 go.


----------



## SirDice (May 13, 2020)

Logicien said:


> What surprise me is that when I use portsnap the /usr/ports have little less than 1 go but the git size of /usr/freebsd-ports have 2,7 go.


That's the nature of a version control system as opposed to a "snapshot" at certain points in time. There's a lot more data that needs to be stored. 






						Version control - Wikipedia
					






					en.wikipedia.org


----------



## Logicien (May 15, 2020)

Hello,

I finally have been able to sync my pre-compiled packages with the ports. To do so, I have continue to use portsnap for fetch extract/update /usr/ports, so keeping the head branch. I have change from quarterly to latest the branch of my pre-compiled packages. Doing so, few ports where needing upgrade.

Well those few ones where giving me troubles. I had to uninstall obmenu who is not in the pre-compiled packages and in the ports anymore, Portmaster refuse to continu. Than I changed pre-compiled firefox who did'nt want to compile in the ports to pre-compiled firefox-esr who is up to date in the ports.

I have uninstall meta gimp and gimp-data who still use Python 2.7 and don't want to compile in the ports and use mypaint, mtpaint and Krita as replacements. Python 2.7 will be remove at 2020 31 december so, I do not have any package who use it now and have unsinstall it completely.

Than everything compile correctly with

portmaster -aPv

and all my ports are now up to date. I have use some workarounds to succeed but it's a good feeling to know that ports and pre-compiled packages are up to date. With more experience I will surely use less workarounds.


----------



## SirDice (May 15, 2020)

Logicien said:


> I had to uninstall obmenu who is not in the pre-compiled packages and in the ports anymore


x11-wm/obmenu was removed quite some time ago. Even before 2020Q2 was branched.


----------

