Synth: Introducing new custom package repository builder for FreeBSD and DragonFly

Seems synth status does not what I want. It tells me
Code:
Total packages that would be built: 1436
and pkg version|wc -l says 1426 (And I don't want rebuild all packages before 11.0-RELEASE).

It is not bad. I did before bed time and in the morning was done :).
 
I have one question as former portmaster user. What should I do in case:
Default implementation of jpeg has been switched from graphics/jpeg to
graphics/jpeg-turbo. To perform the upgrade, use instructions below.

If using binary packages: 'pkg upgrade' will do the right thing. If it
doesn't and complains about 'Cannot solve problem using SAT solver', run
'pkg delete -f jpeg' before 'pkg upgrade'.

If using portmaster:
# portmaster -o graphics/jpeg-turbo graphics/jpeg

If using portupgrade:
# portupgrade -f -o graphics/jpeg-turbo graphics/jpeg

If you compile your ports and want to keep using IJG's jpeg implementation,
add this line to your /etc/make.conf file:
JPEG_PORT=graphics/jpeg

Thank you.
 
I don't think you do anything special. The standard synth upgrade-system command should do it (it sets up the local repository and pkg(8) will upgrade from it, and it will "do the right thing" according to your text).
 
Great news, marino@ , about the new revision!
regarding:
Similarly, change linprocfs mounts/dismounts to only occur when when
linux ports are building. Linprocfs stability is unknown (and I can't
test it on DF) so be conservative and use it as little as possible.
I can confirm this ro have been an issue for me. I'll be happy to provide any feedback/experiences on this, to help. :)

Thanks again, for all the time, and effort you've put into this, John!

--Chris
 
Don't understand why recompile. That is not necesseraily, if packages exists yet.
What packages? You starts with zero (0) packages in the local repository when synth is first installed. Before you can upgrade the system with *only* synth-built packages, you have to actually build the packages. Remember, this is the command you are issuing. (note that just because the package is built, that doesn't mean it's used. pkg(8) can easily decide the installed package satisfies the requirement)

Another question is, how to exclude something from update?
I think you are getting confused with the commands. synth status is a specific command that means "what would happen if I rebuilt everything with synth upgrade-system. By definition, mean everything that is on the system currently and you can't change the definition or action of this command.

If you want to "exclude" then you need to feed in a list of ports to build manually. E.g. output the list from pkg(8) to a file and remove the ones you don't want and then feed that list back to synth (e.g. synth build <filename> or synth status <filename>).
 
talsamon: and one more thing: You only need list the ports you want. You don't need to list the dependencies because those will be calculated and added automatically. So maybe something like pkg prime-list > /tmp/myfile would work for you to get a list of packages you actually want.
 
This will be a long long thread....
synth does not mount linprocfs(5), can't build Linux depend ports.
Make the /usr/compat dir, make the link, linprocfs(5) is normal mounted. What to do?

=>
Code:
00:00:01 [--] skipped  x11/nvidia-driver-304  --:--:--
00:00:01 [--] ignored  emulators/linux_base-c6

Code:
cat /var/log/synth/03_ignored_list.log
00:00:01 Reason: linuxulator is not (kld)loaded

Code:
kldstat
.....
11  1 0xffffffff82a11000 9da0  linprocfs.ko
l....

Code:
cat /var/log/synth/04_skipped_list.log
x11/nvidia-driver-304 by emulators/linux_base-c6


why?
 
linprocfs(5) is specifically mentioned in the changes of 0.98_5, so saying it does not support linprocfs(5) is false. It *does* mount it, under the specific case that USE_LINUX is defined. If a port fails to define that when it does need Linux, then it's a ports problem. It used to be mounted always.

Due to instability with procfs(5) in general, it is not mounted when it's not needed.

That being said, if emulators/linux_base-c6 doesn't define USE_LINUX, then we need an additional detection for that.
 
Where is USE_LINUX to define? I don't really understand your answer.
Another question:
After I have build ~700 packages:
synth status
Code:
Total packages that would be built: 1347

What is this ??
 
the ports define it. All linux ports should define it. *you* don't define it.
But it's possible the linux base doesn't define it.
 
This will be a long long thread....
synth does not mount linprocfs(5), can't build Linux depend ports.
Make the /usr/compat dir, make the link, linprocfs(5) is normal mounted. What to do?

=>
Code:
00:00:01 [--] skipped  x11/nvidia-driver-304  --:--:--
00:00:01 [--] ignored  emulators/linux_base-c6

Code:
cat /var/log/synth/03_ignored_list.log
00:00:01 Reason: linuxulator is not (kld)loaded

Code:
kldstat
.....
11  1 0xffffffff82a11000 9da0  linprocfs.ko
l....

Code:
cat /var/log/synth/04_skipped_list.log
x11/nvidia-driver-304 by emulators/linux_base-c6


why?
I'm not sure why you would see anything like this.
I *just this moment* finished a build, and up(date/grade) of over 1025 ports on my -CURRENT (as of 5 days ago) system.
My system *also* needed to update the nvidia driver, as well as the emulators/linux_base_c6 && all that depend upon it. My fstab(5) has always had the linproc file system listed/mounted.
The upgrade just finished with "flying colors". Bouncing the box with the up(dated|graded) system && ports parts in place, was without event/error -- All is well! :)

Puzzled.

--Chris
 
Nothing is well, as you reed above. I have edited my last post......

After I have build ~700 packages:

synth status
Total packages that would be built: 1347

In the moment seems the tool is not useable.
Or explain me how to use. I can't see it . Does linux-ports work or not , and why it don't work on my system.
I have linprocfs in /etc/fstab and with kldload loaded. What happend?
 
talsamon: You reported a regression due to a recent change. I'll already have a fix internally that hasn't been published yet. Is that clear?

Of course the tool is "usable". I don't have Linux packages and it works fine. It's broken for the moment specifically (and only) on emulators/linux_base-c6 and emulators/linux_base-f10, but that doesn't mean it's not usable.
 
marino@ regarding: 0.98_5 -- smooth as silk!
Just completed updating my box, using that version. Everything went flawlessly. Failures were handled gracefully, as well as all other events. Well; save the screen corruption, due to (kernel) messages being sent to it. But I didn't see anything in the Changelog, to indicate there were any changes in that regard -- wishful thinking on my part. ;)

Thank you very much, John. My dev box thanks you, also. :)

--Chris
 
I'm not sure why you would see anything like this.
I *just this moment* finished a build, and up(date/grade) of over 1025 ports on my -CURRENT (as of 5 days ago) system.
My system *also* needed to update the nvidia driver, as well as the emulators/linux_base_c6 && all that depend upon it. My fstab(5) has always had the linproc file system listed/mounted.

You probably already have the port built so it's not trying to build it again.
 
marino@ regarding: 0.98_5 -- smooth as silk!
Just completed updating my box, using that version. Everything went flawlessly. Failures were handled gracefully, as well as all other events. Well; save the screen corruption, due to (kernel) messages being sent to it. But I didn't see anything in the Changelog, to indicate there were any changes in that regard -- wishful thinking on my part.

Check github, screen corruption has been fixed, but not released yet.
I might push 0.99 soon though, for linux, and the new "fetch prebuilt packages" feature.
 
what do you mean "lost 7 hours"?
You didn't lose anything
When I push the next update, you can continue where it left off.
 
If synth status tells me after I build 700 packages , there are 1347 packages to do (I have 1436 packages on my system), means that I have to begin from the start. Something not works.
 
Chris, it's not mounting linprocfs internally. It doesn't matter what the system has.

Talsamon, why guess? cd to the packages directory and look at the new packages. They are there, not lost. You do not have to restart from the beginning.

And you know you always build more packages than you install, right? They are called "build dependencies". You need to build them, but you don't install them.
 
talsamon
Just for the record, on *my* system, it always started from where it left off. It never had to rebuild any of the ports it had already built, unless the build had failed. This also goes for packages I already had that were current.
This was my recent experience, anyway.

Hope this helps.

--Chris
 
I've booted in FreeBSD. I'm going to update it to the version in GitHub. When I verify that linux_base-c6 builds (and maybe a Linux port or 2) I'll push synth v0.99 (release candidate).
 
Back
Top