====== Volunteer Pkgsrc ======
===== About =====
A secondary pkgsrc repository has been created on [[https://github.com/pikpik/minix-pkgsrc|GitHub]] to allow volunteers to contribute to pkgsrc directly. It is currently experimental as its relationship to the primary pkgsrc repository has yet to be determined.
===== Care to Contribute? =====
**1.** [[.:testingpkgsrc|Orient yourself]] with pkgsrc
**2.** [[https://github.com/|Create an account]] and [[http://help.github.com/set-up-git-redirect|add SSH keys at GitHub]]
**3.** [[http://help.github.com/fork-a-repo/|Fork]] the [[https://github.com/pikpik/minix-pkgsrc/|minix-pkgsrc repository from pikpik's]] to your own repository on GitHub
This saves your time and network bandwidth by downloading the repository only once.
**4.** Download your pkgsrc repository
First, download the official pkgsrc.
$ cd /usr
$ make pkgsrc-create
Then, add your repository as a remote repository.
$ cd /usr/pkgsrc
$ git remote add unofficial git://github.com/you/minix-pkgsrc.git
$ git fetch unofficial
$ git branch unofficial-minix-master unofficial/minix-master
Note: If you use ''%%https://%%'' in place of ''%%git://%%'' and have an SSL-related problem when you fetch, then please use the following steps to install SSL certificates.
$ cd /usr/pkgsrc/security/mozilla-rootcerts
$ bmake install
$ cd /usr/pkg/etc/openssl/certs
$ mozilla-rootcerts extract
$ mozilla-rootcerts rehash
**5.** Check-out the minix-master branch locally
$ git checkout unofficial-minix-master
**6.** Create a new branch from it to host your work
$ git branch my-package-branch
$ git checkout my-package-branch
**7.** Push this branch to your remote repository
$ git push unofficial my-package-branch
This will create the reference work for others to test and later include in the volunteer pkgsrc.
**8.** Hack locally, commit, test, pkglint, etc.
Instructions for building packages can be found on the [[.:testingpkgsrc|Testing Pkgsrc]] page.
**9.** Push up the ongoing work for other people to test it
$ git push unofficial my-package-branch
**10.** Let people on the mailing list know about it
Please include in your message the name of the branch and the public address to your repository.
**11.** Periodically merge changes from minix-master into your branch
$ git pull unofficial-minix-master
$ git checkout my-package-branch
$ git merge unofficial-minix-master
This eases later work, and also will grab the good work done elsewhere on the dependencies. ;-)
**12.** Continue testing and pushing your local branch up to your repository
**13.** When your branch is ready, open an issue on [[https://github.com/pikpik/minix-pkgsrc/issues|the issue tracker of the volunteer pkgsrc]]
Title: Ready for testing: my-package-port by [you]
Hi,
I've ported [package], and my branch "my-package-branch" is ready for testing at: https://github.com/[you]/minix-pkgsrc.git
Thanks
When the committee agrees with the current state of the package as published in your GitHub repository, they will copy the branch into the volunteer pkgsrc repository and prepare it for inclusion into the official pkgsrc.
===== Maintaining Branches =====
As upstream changes from the official pkgsrc repository become available, updating your repository allows your changes to merge cleanly in the future.
**1.** Update the official branch
$ git checkout minix-master
$ cd /usr
$ make pkgsrc-update
**2.** Make your unofficial branch identical to the official one
$ cd /usr/pkgsrc
$ git checkout unofficial-minix-master
$ git rebase minix-master
**3.** Merge changes from either the official or unofficial branch into your own
$ git checkout my-package-port
$ git merge unofficial-minix-master
===== Volunteer Pkgsrc Committee =====
To be added as a collaborator/contributor:
- Create a [[https://github.com/|Github]] account.
- Create a new issue requesting commit access.
Issue Tracker: https://github.com/pikpik/minix-pkgsrc/issues
More to come...