Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
No Lint Coverage - Unit
No Test Coverage
Event Timeline
Update to complete patch, this fixes leftovers for all knobs from src.conf(5) (except for WITHOUT_CXX, which deliberately leaves devd, see comment).
I'll review this piece by piece. Please commit each block that I approve so we can "whittle" down the diff.
Ok, I've assumed the process will be something like that. I propose to commit moves (SVN, DMAGENT, HYPERV) first, then completely new chunks.
- Please don't remove any OLD_DIRS directives until the bits you have have been pushed back up into head.
- This work is reinforcing (in my mind) the need for coming up for a sane naming scheme for "manifests" to avoid ObsoleteFiles.inc bloat in a packaging manifest way, in particular, something like:
CDDL-EXAMPLES.plist
Then for some sections (like MK_EXAMPLES == no) it would glob all of the files that ended in EXAMPLES and load on demand :)... this might be a good first step at having a legitimate packaging plist for things.
That being said, if thing do turn into ports or packaging plists, and pkgng can delete things, then the policy bits can be simplified down to pkgng calls to remove the base system packages. Two bird with one stone!
tools/build/mk/OptionalObsoleteFiles.inc | ||
---|---|---|
14–39 | This is tricky. I agree that this needs to be handled in a more consistent manner, but the usr/tests part is buggy if someone changes TESTSBASE. Could you please omit deleting these? | |
156 | This is missing lib/libauditd and lib/libbsm; see ^/projects/building-blocks for more details: | |
159 | Good catch. I forgot to handle this on my branch. | |
240–244 | LGTM. Please commit MK_BLUETOOTH. | |
292 | Didn't realize this was happening from etc/ until now. Nice catch! | |
424 | LGTM (and interesting that my script didn't catch the symlink -- thanks for the testcase :)..) | |
479 | MK_BSNMP looks ok. | |
943 | Should this be moved down, or committed as a separate change? | |
982 | This... is potentially dangerous if MK_CLANG_IS_CC == no and MK_GCC == yes before this. |
Please don't remove any OLD_DIRS directives until the bits you have have been pushed back up into head
Seems there's a typo so I didn't quite get this. Should I not commit OLD_DIRS removals for now?
Also, could you please be a bit more explicit on what may be committed? For now I'm only sure for BLUETOOTH, BSD_CPIO and BSNMP bits without OLD_DIRS removals.
Also, since these will be basically by first commits to src, could you elaborate on a process a bit? I assume I should commit one chunk (e.g. for single MK_ knob) at a time, with at least following headers:
Differential Revision: https://reviews.freebsd.org/D1600
Approved by: ngie
Are MFC: or other header needed? Should I update differential revision after commits to make it shorter, e.g. won't it lose inline comments?
tools/build/mk/OptionalObsoleteFiles.inc | ||
---|---|---|
14–39 | Won't just substituting TESTSBASE solve the thing? | |
156 | As I've mentioned before, my test compares filetrees produced by KNOB make installworld and make installworld && KNOB make delete-old, and it doesn't show any leftovers. Or is this specific to the branch? | |
424 | Are both BOOT and CPIO good? | |
943 | sort(1) produces +, -, . order with either C, ru_RU.UTF-8, en_US.UTF-8 locales. May commit as a separate change. | |
982 | Why? |
tools/build/mk/OptionalObsoleteFiles.inc | ||
---|---|---|
156 | Yes, I suppose it's specific to the branch. That being said, there isn't anything that links [in base] to these libraries. Feel free to omit them if needed and I can loop rwatson in for those on another review once this diff's been committed. | |
207 | Please commit this hunk (MK_BINUTILS) | |
424 | Yup! | |
1680–1685 | Please commit this hunk | |
1710–2014 | Let's hold off on committing this because there's some overlap between this and the functional components in here (MK_IPFILTER. MK_INET6, MK_FORTH, etc). | |
2141 | Please commit this hunk | |
2200 | Please commit this hunk | |
2824–2902 | Please commit this hunk (MK_HTML) | |
3769–4130 | Uh... let's do find ${DESTDIR} -name \*.a -and \! -name \*_p.a instead for MK_INSTALLLIB... | |
5237 | OLD_FILES+=find ${DESTDIR}/usr/lib32 \! -type d, etc | |
5892 | Please commit this hunk | |
6118 | I'm not so sure about this compile-time option. Please leave this alone.. | |
6126–7351 | I'm not so sure about this compile-time option... Please leave this alone. | |
6319 | This hunk looks ok to commit | |
7400 | This hunk looks ok to commit, but the manpages need to be removed as well, per https://svnweb.freebsd.org/changeset/base/277939 (not your fault.. MLINKS was in the wrong spot). | |
7410–7413 | This hunk looks ok to commit | |
7438–7842 | Hmmm.. no manpages are being removed here. | |
7443 | Shouldn't this line be in MK_MAILWRAPPER == no? | |
7448 | This hunk looks good -- please commit. | |
7813–7816 | This hunk looks good. Please commit | |
7818 | This hunk looks good. Please commit | |
7857 | MK_NETGRAPH == no looks ok. Please commit hunk | |
7894 | Hunk looks ok for commit | |
7959 | MK_NLS looks ok for commit | |
8071 | Hunk looks ok for commit (kind of amusing why only tcsh uses this feature...?) | |
8094 | Looks ok for commit | |
8180 | Looks ok for one-line commit | |
8192 | This hunk looks ok for commit | |
9706–9710 | This hunk looks ok for commit | |
9742 | This hunk looks ok for commit | |
9834 | This looks ok for commit | |
9847 | find ${DESTDIR}/usr/lib ${DESTDIR}/usr/lib32 -name \*_p.a... | |
10132 | Hunk LGTM | |
10205–10348 | find ${DESTDIR}/rescue ... | |
10600 | This is inconsistent.. | |
10604 | find ${DESTDIR}/usr/share/doc | |
10689 | Hunk looks ok. Please commit | |
10724 | This hunk's ok for commit | |
10737 | This hunk's missing svn.1.gz | |
10749–10932 | Hunk looks good. Please commit | |
10942 | Hunk looks good. Please commit | |
11486 | Hunk looks good -- please commit | |
11620 | Hunk looks good, please commit. | |
11629 | There might be some overlap here. Let's hold off on this diff | |
12017 | Hunk looks good -- please commit | |
12042 | Hunk looks good -- please commit |
Yes please. Until the work you've done making OLD_DIRS obsolete is in effect, it's best not to remove OLD_DIRS at all.
Also, could you please be a bit more explicit on what may be committed? For now I'm only sure for BLUETOOTH, BSD_CPIO and BSNMP bits without OLD_DIRS removals.
I've tried to make comments at the beginning of relevant hunks of code.
I've read through the bulk majority of the review, but once you update the diff it should whittle away what's remaining quite a bit more (the problem is that Phabricator shows deltas between diffs by default, but that can be changed). This is part of the reason why I've been using vimdiff between my git checkout of my svn projects branch and an svn checkout of head so extensively -- it makes it easier to produce smaller diffs for review.
Also, since these will be basically by first commits to src, could you elaborate on a process a bit? I assume I should commit one chunk (e.g. for single MK_ knob) at a time, with at least following headers:
Differential Revision: https://reviews.freebsd.org/D1600
Approved by: ngieAre MFC: or other header needed? Should I update differential revision after commits to make it shorter, e.g. won't it lose inline comments
Remove more files when MK_<foo> == no [and MK_<>bar == no, etc]
MFC after: 1 week
Reviewed by: ngie
Differential Revision: D1600
Almost forgot...
Approved by: ngie
is required as well. Sometimes people omit Reviewed by in favor of Approved by, but I leave it in for personal clarity. I don't think there's a hard and fast rule for that, per the Committer's Guide.
Differential Revision: D1600
tools/build/mk/OptionalObsoleteFiles.inc | ||
---|---|---|
943 | I was using find -s, not find | sort. Not sure what dim@ was using... |
Bunch of hunks are still not reviewed. I'd like to commit at least some of them before resubmitting the patch:
CALENDAR
CASPER
CUSE
FORTH
INET6
JAIL
KDUMP
KERBEROS
KERBEROS_SUPPORT
LDNS_UTILS
LEGACY_CONSOLE
TESTS_SUPPORT
UTMPX
VI
VT
ZONEINFO
Also, how should I handle MFCs?
One more thing: some options imply deleting configuration files, which is IMO unsafe as user changes may be lost in the process, and configs may still be used (from ports software - for examples, openssh-portable). What do you think of introducing OLD_CONFIGS and corresponding delete-old-configs target which is not by default called by delete-old?
tools/build/mk/OptionalObsoleteFiles.inc | ||
---|---|---|
943 | I think this is not important, I'll drop this change. | |
7438–7842 | The test shows that manpages are installed unconditionally. MAIL-releated staff is generally quite messy though. | |
10600 | Still correct according to file list comparison. | |
11629 | Just for the node, I've tried to fix other MK_* = no which MK_TOOLCHAIN enforce first, then retest TOOLCHAIN, so it should not contain anything handled by other options. I may have missed something though. |
LGTM
Also, how should I handle MFCs?
It isn't stated explicitly in the committer's guide how one goes about MFCing changes, but basically what you do is (referencing my mfc script checked into github -- https://github.com/yaneurabeya/scratch/blob/0b8ba9d017a97b4cdfe4197ba021211319d1c622/common/home/ngie/bin/mfc , https://github.com/yaneurabeya/scratch/blob/0b8ba9d017a97b4cdfe4197ba021211319d1c622/common/home/ngie/bin/mfc_log ):
cd /copy/of/stable/[9,10]
mfc ^/head <revision1> [revision2...]
- Resolve conflicts, if any
- Verify your changes with yes | sudo make delete-old both with the knob unset (before) and the knob set (after). If you have a VM instance, snapshots are extremely helpful. If not, ZFS snapshots and rolling back the snapshots is advised.
svn ci -F commit
Be careful when MFCing changes as not all of the build knobs exist on stable/9 and stable/10 (MK_VI for instance).
One more thing: some options imply deleting configuration files, which is IMO unsafe as user changes may be lost in the process, and configs may still be used (from ports software - for examples, openssh-portable). What do you think of introducing OLD_CONFIGS and corresponding delete-old-configs target which is not by default called by delete-old?
If they're using interactive make delete-old, it won't be as much of an issue, but a heads up would probably be advised for any configuration changes (even if it's in UPDATING). mergemaster prompts users if
I don't understand why ports should be using configuration files from base -- that seems broken; in the case of openssh-portable, that doesn't seem to be the case at $work.
tools/build/mk/OptionalObsoleteFiles.inc | ||
---|---|---|
572 | Please hold off on these changes until your OLD_DIRS removal change has been committed. | |
676–681 | Hunk LGTM -- please commit. | |
982 | You'll break cc, etc, which isn't hard to "unbreak", but is a bit painful for most users. | |
1076 | Hunk LGTM -- please commit. | |
3735 | Hunk LGTM -- please commit. | |
4189 | Hunk LGTM -- please commit. | |
4195 | Hunk LGTM -- please commit. | |
5183 | Hunk LGTM -- please commit. | |
5215 | Hunk LGTM -- please commit | |
5219–5890 | Hunk LGTM -- please commit | |
11545–12013 | Hunk LGTM -- please commit. | |
12285 | Please be careful when MFCing this change. This will break rcorder, unless r278706 has been MFCed first. | |
12522–12991 | The addition of MK_ZONEINFO LGTM, but are you removing the MK_SVN entries? |
tools/build/mk/OptionalObsoleteFiles.inc | ||
---|---|---|
12522–12991 | Those went up to keep the list sorted. I'll probably process the sorting as a separate review. |
At this stage, it might be a good idea to close this review and open a new one. Sound good?