summaryrefslogtreecommitdiff
path: root/templates/devel/pkgmaint_guide.txt
diff options
context:
space:
mode:
Diffstat (limited to 'templates/devel/pkgmaint_guide.txt')
-rw-r--r--templates/devel/pkgmaint_guide.txt164
1 files changed, 0 insertions, 164 deletions
diff --git a/templates/devel/pkgmaint_guide.txt b/templates/devel/pkgmaint_guide.txt
deleted file mode 100644
index 85106eab..00000000
--- a/templates/devel/pkgmaint_guide.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-=============================================================================
- THE QUICK AND DIRTY ON HOW TO BE A PACKAGE MAINTAINER
-=============================================================================
- questions to jvinet@zeroflux.org
-
-1. Follow Package Guidelines
-
- Package guidelines can be found in the Arch Linux documentation.
- Please follow them closely.
-
-2. How To Use CVS
-
- The example commands below assume the module 'extra'.
-
- 2.1 Make sure your CVSROOT environment variable is set properly. If the
- CVS repository is on the same box:
- # export CVSROOT=/home/cvs-extra
-
- If you want to access the repository from the different box via SSH:
- # export CVS_RSH=ssh
- # export CVSROOT=:ext:user@cvs.archlinux.org:/home/cvs-extra
-
- 2.2 Checkout the repository. This will download the entire repository to
- your local machine:
- # cvs co extra
-
- 2.3 Updating the repository. This syncs your local repository with the
- master. You should do this often, especially if other people could be
- working on the same repository.
- # cd extra
- # cvs -q update -d
-
- 2.4 Adding files/directories to the repository. When you want to add a new
- package you should create a directory under the respective category and
- place the new PKGBUILD in it. For example, to add fvwm to the repo:
- # cd extra/x11
- # mkdir fvwm
- # cd fvwm
- # cp /var/abs/PKGBUILD.proto ./PKGBUILD
- <edit, test, build, etc>
- # cd ..
- # cvs add fvwm
- # cvs add fvwm/PKGBUILD
-
- 2.5 Committing changes. Files are not written to the master repository until
- you commit. Never forget to commit!
- # cd extra
- # cvs commit
-
- This will find all modified files, then throw you into vi where you can
- add a log message describing your changes. Save and exit from vi when
- you're done and cvs will update the files in the master repository.
-
- 2.6 Removing files. If you need to remove a file (eg, an old patch that
- isn't needed anymore), you can do the following:
- # cd extra/x11/fvwm
- # rm old.patch
- # cvs remove old.patch
- # cvs commit -m "removed old.patch" old.patch
- also remove the CURRENT/STABLE tags from the file so it does not appear
- in ABS any more:
- # cvs tag -d CURRENT old.patch
-
- Don't forget to commit afterwards! Remember that no changes are made
- to the master until you commit.
-
- 2.7 Removing directories cannot be done easily. If you really need to
- remove a directory, email the sysadmin (Judd) and I'll help you out.
-
- 2.8 Tagging files. Every file in CVS has tags associated with it, which
- allows us to select certain versions of scripts. The db generation
- scripts will only look at files that are tagged as CURRENT, so you need
- to tag all files after you commit them:
- # cd extra/x11/fvwm
- # cvs tag -c -F -R CURRENT
-
- NOTE: When tagging, you should be sure to ONLY tag the updated files,
- not the entire repository. Otherwise, if parts of your checkout are
- out-of-date, you may actually be tagging an OLDER version of a file,
- reversing someone else's tag procedure.
-
-3. The Process
-
- 3.1 Checkout/update your local repository from cvs.archlinux.org
- 3.2 Make any changes you need to
- 3.3 Put your new packages in your local staging directory on archlinux.org.
- Suggested syntax is:
- scp name-ver-rel.pkg.tar.gz you@archlinux.org:staging/extra/add
- 3.4 Commit your changes (section 2.5)
- 3.5 Update the CURRENT tags to new revisions (section 2.8)
- 3.6 Log in to archlinux.org and run the /arch/db-extra script, which
- will re-generate the sync db and place it in /home/ftp/extra, then
- move the new/updated packages from your staging directory to the
- FTP tree.
- 3.7 Remove any older versions of packages from /home/ftp/extra to
- save diskspace, they should be noted when the db generation script
- finishes.
-
- Make sure you do things in this order, mixing them up can break things
- temporarily. For example, if you remove older versions from the ftp
- tree before you update the database or update the database before
- uploading new packages, arch users trying to download the package at
- that time will get "file not found" errors.
-
-4. Staging Directories
-
- As mentioned in Section 3, packages need to be uploaded to the proper
- staging directory before running a db generation script. The staging
- area (located in your home dir) looks like so:
-
- staging
- |-- arch
- | |-- add
- | `-- del
- |-- extra
- | |-- add
- | `-- del
- |-- testing
- | |-- add
- | `-- del
- `-- unstable
- |-- add
- `-- del
-
- As you can see, each repository has two staging directories: "add" and
- "del". When you want to add or update a package, you'll place it in the
- "add" directory for the repository you're working in. Then run the db-gen
- script.
-
- When you want to remove a package, you will move the package OUT OF the FTP
- directory (eg, /home/ftp/extra/os/i686/) and INTO the "del" directory for
- the repository you're working in. Once moved, you can run the db-gen
- script -- it will see that the file has left the FTP tree and will remove
- it from the package database.
-
-5. Miscellaneous Stuff
-
- 5.1 If you are creating a daemon you need to include an rc.d startup
- script for it. Look at /var/abs/daemons/esd for a simple example.
- 5.2 Please include a line that says '# $Id: pkgmaint_guide.txt,v 1.3 2006/10/05 20:52:01 judd Exp $' at the top of each
- PKGBUILD. This will be parsed by cvs during a commit, and replaced
- with user/timestamp data.
- 5.3 Please do some rudimentary checks of the package before making it
- 'live'. Try installing it and see if there are any file conflicts.
- Check for dependencies by running 'ldd' against the binaries and
- looking through the .so files it requires. For example,
- 'ldd /usr/bin/gvim' returns a big list of libs, one of which is
- libgtk-x11-2.0.so.0, so gtk2 should be one of the dependencies for
- gvim. Also, namcap is available in the extra repository. Running it
- against a package will print dependancy warnings as well as possible
- configuration problems. Namcap is not the final word, if ldd or
- runtime show otherwise, believe them instead.
- 5.4 When creating a package description for a package, do not include
- the package name in a self-referencing way, as it is redundant.
- For example, "Nedit is a text editor for X11" could be simplified to
- "A text editor for X11". Also try to keep the descriptions to ~80
- characters or less.
- 5.5 When entering cvs log messages for new/upgraded packages, please use
- these tags so they can be easily parsed for changelog generation:
- if the package is upgrade use: 'upgpkg: pkgname newpkgver'
- if the package is new use: 'newpkg: pkgname newpkgver'
-
-
-$Id: pkgmaint_guide.txt,v 1.3 2006/10/05 20:52:01 judd Exp $