Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Getting Started



On Tue, 10 Jun 2014, William D. Jones wrote:
So far, I’ve checked out the sources from anoncvs, built the tree once, then attempted to tag the build as successful, as per http://www.netbsd.org/docs/current/, before getting errors such as the following: cvs [tag aborted]: could not open lock file `/cvsroot/src/,BUILDING,': Permission denied

The first part of <http://www.netbsd.org/docs/current/>, up to and including "Tracking NetBSD-current with anoncvs" should be reasonably relevant to you, but the advice may be out of date.

The parts about "Importing and merging sources" and "Tagging a successful build" are not aimed at ordinary people. They are about maintaining your own private CVS repository, periodically importing snapshots of NetBSD-current to your private repository, and performing merges and tags in your private repository. Companies who maintain products based on NetBSD might use a workflow like that, but ordinary users probably would not. Unfortunately, the document doesnt' make it clear who the target audience is.

The last part, about "Getting the whole repository" can be ignored at first, but if you later find that cvs operations are too slow then a local mirror might be useful. Also, that part of the page is sadly out of date: only the rsync method is useful today.

1. I’m not great with CVS, and learning it has been a frustrating experience, to say the last. With regards to “tag aborted”, I’m guessing that I’m mixing up portions of the tracking NetBSD wiki page. from what I’ve gathered from reading other sites, I cannot actually tag my local copy of the source tree since anoncvs is read only (as CVS is centralized).

Right.  You can't tag against anoncvs.

I imagine there is a simple way to also revert an update in case a daily update breaks the build, but I have not found it yet. Do I understand this correctly?

You can update to a specified date and time, via "cvs update -D${DATE_AND_TIME}". The automated build reports at <http://releng.netbsd.org/> may help you to find an appropriate date and time.

What is the purpose of importing and merging misc/cvsrep as far as anonymous checkout is concerned (as mentioned on the tracking current wiki page)?

The "Importing and merging sources" part of the document is
not useful to ordinary users.

And, for anoncvs, what is the recommended method to revert a broken build after notifying netBSD-users via email?

Update to a working date, as I mentioned above.

2. While I couldn’t find any mention on the NetBSD wiki, OpenBSD states on it’s website that all bug reports should be against the generic kernel (http://www.openbsd.org/faq/faq5.html#Why). Is that the case here as well? My 486 cannot run the generic kernel reliably, hence why I ask. If this also means a potential driver developed using a custom kernel wouldn’t be accepted, then I will happily buy more RAM .

Bug reports against any kernel are useful.

3. Most of the files I intend to submit will not have been previously existing (need to create a number of source files to add the new driver to the tree). Is it still recommended I submit as a patch to PR? I haven’t actually “told” CVS about the new files yet due to my woes with tagging, in fear that I might break the tree... what is the best way to add “new files” to the CVS tree for diff/local development purposes and without the server choking when they don’t exist server-side?

There's no easy way to manage that. You can't add branches or tags to a tree that comes directly from anoncvs.netbsd.org.

Some people keep private CVS, git, fossil, mercurial, or other repositories into which they import snapshots of NetBSD, and they keep private branches in their private repositories.

You will eventually need to submit a PR with a patch that includes all
new and changed files.

4. After giving up on tagging, I updated my source tree using CVS update –dP and built again successfully, as per http://www.netbsd.org/docs/guide/en/chap-updating.html#updating- procedure. Is running CVS update –dP and build.sh sufficient for rebuilding a distribution without having to wait 3 hours for userland to build (i.e. build only what changed). Specifically, will the binaries be identical or close-to identical as if I ran build.sh from the beginning (i.e. without –U)? I see a large number of source files beyond those changed in 24 hours being rebuilt, but I’m guessing this has to do with how build.sh manages its dependencies.

I think you might be confusing -U and -u.

You should always run build.sh with the "-U" (unprivileged) flag.

I usually use "-u" (update), but there are sometimes changes that cause that to fail. (See src/UPDATING for known problems with update builds.) If an "update" build succeeds, then the results should be effectively identical to the results from a non-update build (except for things like timestamps embedded in output files).

Sorry if this sounds too much like a “CVS questions” or “documentation concerns” email, but I’d like to save some frustration and get some actual code written, not fight with the version control. If I should split this mail up, I’ll be happy to do so.

It's easier to deal with one question at a time, unless the questions
are closely related.

--apb (Alan Barrett)



Home | Main Index | Thread Index | Old Index