Synth version 2.00: Flavor support

Any ideas why PKG wants to install (2) build-only dependencies?

These files are currently not installed, but do reside in the /var/synth/live_packages/All directory and are up to date with the latest versions.
Code:
$ sudo pkg upgrade      
Updating Synth repository catalogue...
Synth repository is up to date.
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (53 candidates): 100%
Processing candidates (53 candidates): 100%
The following 2 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        gmp: 6.1.2 [FreeBSD]
        mpfr: 3.1.6 [FreeBSD]

Number of packages to be installed: 2

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

Proceed with this action? [y/N]:
If I disable the FreeBSD repo, everything is showing up to date.
Code:
$ sudo pkg upgrade      
Updating Synth repository catalogue...
Synth repository is up to date.
All repositories are up to date.
Checking for upgrades (1 candidates): 100%
Processing candidates (1 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.

$ sudo synth status
Regenerating flavor index: this may take a while ...
Scanning entire ports tree.
Querying system about current package installations.
Stand by, comparing installed packages against the ports tree.
Scanning existing packages.
These are the ports that would be built ([N]ew, [R]ebuild, Upgrade):
Total packages that would be built: 0
The complete build list can also be found at:
/var/synth/synth_status_results.txt
 
just a typical mismatch between a local repository and the official freebsd repository which is normally 3-7 days behind.
Unless you're leveraging the official packages to avoid building everything locally, i'd stick to the local repository only.
 
Does anything need to be done on my need or I just have to wait it out?
Code:
$ sudo synth status
Regenerating flavor index: this may take a while ...
Scanning entire ports tree.
 progress: 63.08%            
culprit: net/unison-nox11
Scan aborted because 'make' encounted an error in the Makefile.
net/unison-nox11 (return code = 1)
Also, it was a good time to test the cleanup feature - which worked great.
Code:
$ sudo synth configure
Builder mounts detected; attempting to remove them automatically ...
Dismounting successful!
 
Wasn't the same thing posted to the freebsd ports list (which I don't suscribe to)?

As mentioned in my response, either the port net/unison-nox11 is busted (likely) or you've got something in your <profile>-make.conf file that is causing it to be busted. In the first case, make -C /usr/ports/net/unison-nox11 -V PORTNAME should immediately show the broken makefile errors.

Bottom line: This is not a synth error. It never is. "culprit" means the ports tree is at fault (or your make.conf is).
 
okay, I clicked on the link. net/unison-nox11 has been deleted.
You're using the synth status. On your system, you have the deleted port installed. If you want pkg(8) to stop telling synth to build a deleted port, deinstall that port from your system.

But net/unison-nox11 shouldn't be on the flavor index, so it should be ignored anyway. Is your port tree up to date and has the flavor index been regenerated?
 
net/unison-nox11 was deleted, but is still hooked up in net/Makefile... I'll remove it.
Yep, that would do it. madpilot didn't delete the port correctly (fixing the category makefile is mandatory when removing a port as documented in the handbook)


P.S. maybe you can close out the topic on the freebsd ports mail list.
 
First, thank you so much Marino for developing synth, it is such a great tool!

I am running into a situation I am not sure is normal. I am trying to install shells/scponly with unison selected in the config, but I want unison to be build with nox11 flavor. So I specified it in the config files:

Code:
$ cat /usr/local/etc/synth/LiveSystem-make.conf

DEFAULT_VERSIONS+=unison=nox11

but synth install shells/scponly will still install the default flavor of net/unison which is with x11. Anything am I missing here?
 
loki2012, you would specify "net/unison@nox11" to build it, e.g. synth build net/unison@nox11
I'm not sure synth install net/unison@nox11 works though. You can try it and let us know.
In fact, I don't think synth even accepts synth install net/unison. It should give you an error that it needs a flavor. Are you sure you using version 2.02 ?

edit: hold on, you're talking about scponly. let me look for a second.
 
It's the fault of scponly. It's specifying net/unison@x11 (it's specifying net/unison, but without the flavor specification, so it defaults to x11).
It's not synth's fault. You can modify the scponly makefile to add "@nox11" to the makefile. That's the only way to change it.
 
Marino, thanks for having looked at that.

Actually I initially thought setting DEFAULT_VERSIONS+=unison=nox11 in /etc/make.conf and building manually the port shells/scponly would build unison@nox11, but further testing indicates it is not the case, it still builds unison@x11 (the default flavor). So indeed it is not a synth related issue.

I am still trying to figure out how to define the default flavor of a port in /etc/make.conf. Once I get it working, I suspect updating /usr/local/etc/synth/LiveSystem-make.conf will also work.
 
the default flavor is the first one listed, by definition.
Ravenports (which has had variants a year before flavors came out) doesn't have "defaults". You specify the exact variant. FreeBSD ports does it like it does because they didn't want to fix hundreds if not thousands of ports when the feature was introduced. I don't like the design decision on defaults myself.
 
I am having an issue since the beginning of the flavors comming in into ports tree, synth always begins with
Code:
Regenerating flavor index: this may take a while ...                                                                                                                                                                                     Scanning entire ports tree.                                                                                                                                                                                                                                           Querying system about current package installations.                                                                                                                                                                                           Installed package ignored, devel/py-Automat package unmatched                                                                                                                                                                     Installed package ignored, devel/py-constantly package unmatched                                                                                                                                                                 Installed package ignored, www/py-hyperlink package unmatched                                                                                                                                                                     Installed package ignored, devel/py-incremental package unmatched                                                                                                                                                               Installed package ignored, security/py-pycrypto package unmatched                                                                                                                                                                 Installed package ignored, mail/pyzor package unmatched                                                                                                                                                                                 Installed package ignored, devel/py-six package unmatched
Installed package ignored, databases/py-sqlite3 package unmatched                                                                                                                                                               Installed package ignored, devel/py-twisted package unmatched                                                                                                                                                                       Installed package ignored, devel/py-zope.interface package unmatched                                                                                                                                                           Installed package ignored, missing from ports: security/py3-certifi                                                                                                                                                                     Installed package ignored, missing from ports: devel/py3-cffi                                                                                                                                                                             Installed package ignored, missing from ports: textproc/py3-chardet                                                                                                                                                                 Installed package ignored, missing from ports: devel/py3-click                                                                                                                                                                           Installed package ignored, missing from ports: devel/py3-coloredlogs                                                                                                                                                               Installed package ignored, missing from ports: security/py3-cryptography                                                                                                                                                       Installed package ignored, missing from ports: textproc/py3-humanfriendly                                                                                                                                                     Installed package ignored, missing from ports: dns/py3-idna                                                                                                                                                                               Installed package ignored, missing from ports: devel/py3-libzfs                                                                                                                                                                         Installed package ignored, missing from ports: security/py3-openssl                                                                                                                                                                 Installed package ignored, missing from ports: devel/py3-pyasn1                                                                                                                                                                       Installed package ignored, missing from ports: devel/py3-pycparser                                                                                                                                                                   Installed package ignored, missing from ports: net/py3-pysocks                                                                                                                                                                         Installed package ignored, missing from ports: devel/py3-pytest-runner
Installed package ignored, missing from ports: www/py3-requests
Installed package ignored, missing from ports: devel/py3-six
Installed package ignored, missing from ports: textproc/py3-texttable
Installed package ignored, missing from ports: misc/py3-tqdm
Installed package ignored, missing from ports: net/py3-urllib3
Installed package ignored, missing from ports: devel/py3-verboselogs

And finishes with:

Code:
Error: port origin 'devel/py-pip' is not recognized.
Perhaps you intended one of the following port flavors?
   - devel/py-pip@py27
   - devel/py-pip@py36

I dont know how to fix it :(
 
Did you run a version of Synth previous to version 2.02 ? If so you really should do the process that John outlined earlier. Found here: Synth Bullet-proof (conflict-proof) upgrade technique Note its written for DragonFlyBSD but you should be able to see what needs to be done.

If you are a new synth user and have never used a version previous to 2.02 then I'm not sure what the issue might be. You could try following that process for fun, but I wouldn't expect it to make a difference.
 
It's caused by having very old packages (predating flavors) still installed on the system. Removing all packages and reinstalling newly built ones (as would happen with the bullet-proof technique) will indeed fix that.

The problem is the prepare-system command, which uses pkg(8) to get information about the system by reading the packages. If you don't want to install freebsd.org packages to solve this, you need to come up with a manual build list (as seen in bullet-proof technique).
 
It's caused by having very old packages (predating flavors) still installed on the system. Removing all packages and reinstalling newly built ones (as would happen with the bullet-proof technique) will indeed fix that.

The problem is the prepare-system command, which uses pkg(8) to get information about the system by reading the packages. If you don't want to install freebsd.org packages to solve this, you need to come up with a manual build list (as seen in bullet-proof technique).

Is there any way to just delete the packages that are old? I seriously wouldnt like to leave my server building packages for next two weeks...
 
Synth will build what needs to built, and if prefetch option is enabled, it will prefetch packages when it can. That process does just that; deletes old packages (well actually it deletes them all), and a few other things. If its a 'lab' machine I suppose you could try deleting some stuff, but experience tells me that could make more troubles for you. Its actually one of the things I like about FreeBSD, it requires more discipline but its worth it.
 
Is there any way to just delete the packages that are old? I seriously wouldnt like to leave my server building packages for next two weeks...

Then use the official freebsd packages that already exist.
You really should change out all the packages at once. If you change just one or two key packages, it will try to uninstall everything anyway. Don't take shortcuts and do it right.
 
Hmmm, ok, with shaking hands i will do it, just one more question, how the fetching works, where does it take official repo from? Currently I have /etc/pkg/FreeBSD.conf disabled and additional one LocalSynth.conf set to /var/synth/live_packages/

In case of synth fetching the binaries the FreeBSD.conf needs to be enabled or there is an additional config file just for synth?
 
see man pkg.conf
Re-enable the freebsd repository and disable the synth repository.
You can reverse that later.

Basically everyone really needed to reinstall all packages after flavors came out because flavors are annotated in package notes. Old packages don't have those annotations.
 
Did you run a version of Synth previous to version 2.02 ? If so you really should do the process that John outlined earlier. Found here: Synth Bullet-proof (conflict-proof) upgrade technique Note its written for DragonFlyBSD but you should be able to see what needs to be done.

If you are a new synth user and have never used a version previous to 2.02 then I'm not sure what the issue might be. You could try following that process for fun, but I wouldn't expect it to make a difference.

Hmm, been studying this a bit... and i am really grateful for zfs on root... =/

- get list of prime packages
- wipe out all packages from the system (o_O)
- reinstall packages
- probably same procedure for jails

The only thing i dont understand is where does synth come into play? I need to wipe /var/synth/live_packages/ too and what then, will the list of packages being used stay intact or i need to provide prime list back to synth using synth install?
 
The only thing i dont understand is where does synth come into play? I need to wipe /var/synth/live_packages/ too and what then, will the list of packages being used stay intact or i need to provide prime list back to synth using synth install?

Reinstall packages via synth using prime list, using a fresh ports tree.
portsnap fetch update
synth install primelist

EDIT: When you say you wiped out the packages that includes actually uninstalling them, and their dependencies, from your system right?

pkg delete pkgs_names_here
pkg autoremove
 
Back
Top