Page MenuHomeFreeBSD

build.7: Improve building pkgbase
Needs ReviewPublic

Authored by ziaee on Sat, May 10, 9:33 PM.
Tags
None
Referenced Files
F118045143: D50289.id155299.diff
Sun, May 25, 10:35 AM
Unknown Object (File)
Sat, May 24, 1:12 PM
Unknown Object (File)
Sat, May 24, 11:45 AM
Unknown Object (File)
Sat, May 24, 10:57 AM
Unknown Object (File)
Sat, May 24, 9:41 AM
Unknown Object (File)
Sat, May 24, 8:34 AM
Unknown Object (File)
Sat, May 24, 7:47 AM
Unknown Object (File)
Sat, May 24, 6:10 AM
Subscribers

Details

Reviewers
mhorne
carlavilla
ivy
markj
Group Reviewers
pkgbase
manpages
Summary

The packages target was previously listed under kernel, move it to the
general source make targets listing. Add the currently undocumented update-packages target as
well.

Fixes: 1d26746cfd4a(build.7: Document the packages target)
Fixes: 0ac8aa55da1c(pkgbase: Add incremental packages)
Fixes: 26490d9b74f0(pkgbase: allow update-packages for first)
Reported by: ivy (update-packages)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 64190
Build 61074: arc lint + arc unit

Event Timeline

ziaee requested review of this revision.Sat, May 10, 9:33 PM
share/man/man7/build.7
376

I think this could use more detail -- what's the difference between updating packages and creating a new repo?

emaste added inline comments.
share/man/man7/build.7
376

It was added in 0ac8aa55da1cb5e53a9102fd007dd01ee6d17894 by @manu. The commit message has a description of what it does.

share/man/man7/build.7
376

I think this could use more detail

I couldn't agree more, but I'm at a point where I can't figure out how to use this stuff to prod at how it works and make it perfect, so I think the answer is to get stub documentation in and iterate on it.

We're all in on pkgbase, cool, let's get some stub information that is at least correct in the tree where it's discoverable.

We're telling people to use this stuff, and that we're deprecating the old stuff, but it's not in the manual.

share/man/man7/build.7
267

This is a move error, I will fix this when I get home.

I also intend to change this to "Update the pkg(7) repository created by the *packages* target".

address issues i mentioned previously

share/man/man7/build.7
376

In the spirit of "iterating on it," Ed linked the commit which added this target and explains how it works--is that enough to experiment and start fleshing this out? If update-packages is not behaving the way you expect, then can you please explain here what's going wrong?

I did see that commit already when I was preparing this sir. My make packages fails on e6000sw not found. I do have a /etc/src.conf at https://people.freebsd.org/~ziaee/tmp/src.conf .

Apparently update-packages also can create the initial repo.
This is confusing and we should simplify this.

ziaee edited the summary of this revision. (Show Details)

can we just have a single target (for example, make packages) which either creates or updates the repository? if necessary there could also be a make clean-packages target but i'm not sure this is needed, you can just delete the repository if you want that.

i understand make update-packages added different functionality when it was first added but i'm not sure this is really useful long term and it is confusing.

ivy requested changes to this revision.Wed, May 14, 5:26 PM

as discussed on IRC, if you want to document the current situation, i agree with @markj that the section on update-packages needs more detail, specifically about how it only adds changed packages to the new repository.

This revision now requires changes to proceed.Wed, May 14, 5:26 PM

It's unfortunate that the existing package targets (e.g. packageworld) are not related to pkgbase. It's probably worth pointing this out explicitly. Maybe something like "This target is used while building a release (and is not related to packaged base)"

address reviewer feedback, thanks! I would have done this previously
but I did not know that.

share/man/man7/build.7
273

mention ${REPODIR}, set in src-env.conf, it is the path to the base directory under which each repository will be created, e.g.:

% grep REPODIR /etc/src-env.conf 
REPODIR=/home/ivy/packages/base
% ls /home/ivy/packages/base
FreeBSD:15:amd64/
379
380

reword as appropriate, but i think this is the pertinent information

make packages is incompatible with PORTS_MODULES, what is the replacement workflow? documented in https://reviews.freebsd.org/D50355

ziaee marked an inline comment as done.

Incorperate ivys suggestions. Thank you so much.

share/man/man7/build.7
282

the ABI dir is appended to REPODIR, so this should probably just be /usr/obj/${SRCDIR}/repo

Add REPODIR to ENVIRONMENT

Switch repodir and pkgabi

This revision is now accepted and ready to land.Wed, May 14, 9:03 PM

Does this fix it?
Also included, try to improve the release targets unrelated to pkgbase.

This revision now requires review to proceed.Thu, May 15, 12:24 AM