I’m currently running NetBSD on a 50MHz 486 to “break it in” after long term storage as part of my hobby. Ultimately, I want this to culminate in writing a device driver for NetBSD for an unsupported ISA device- Panasonic CD-ROM interface. This is for fun, because I have a sick definition of fun . That, and I imagine NetBSD might actually accept such an old driver for education purposes. I figured it would be most beneficial if I track NetBSD current users, so any patches I create can immediately be applied. Additionally, in order to even get the 486 running, I had to use a custom GENERIC_TINY kernel anyway due to lack of RAM. I figured I might as well use up-to-date source since this machine doesn’t exactly have any bleeding edge features, and is just a hobbyist machine.
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
This error- and looking up information on CVS/how to solve this- gave me a number of general questions for getting started with writing my code, that I hope won’t be too much trouble to answer :
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). 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? 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)? And, for anoncvs, what is the recommended method to revert a broken build after notifying netBSD-users via email?
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 .
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?
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.
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.
Thanks for any help anyone can give me!
William D. Jones
Rowan University | ECE | 2012
Member Tau Beta Pi
Message sent using 'Windows Live Mail' client.