Difference between revisions of "ArchAudio"

From ArchWiki
Jump to: navigation, search
m (Password Hashing: fix broken sentence)
m (Binary Contributor: can't set depth on files)
Line 61: Line 61:
 
  svn add $package
 
  svn add $package
 
  svn ci -m "Added binary package $package"
 
  svn ci -m "Added binary package $package"
  svn up $package --set-depth exclude
+
  svn up --set-depth empty
  
 
Old packages will be automatically deleted on the server, so you need not worry about removing them yourself. Be careful to add real binary packages and not symlinks or any other file that may deceive you.
 
Old packages will be automatically deleted on the server, so you need not worry about removing them yourself. Be careful to add real binary packages and not symlinks or any other file that may deceive you.

Revision as of 16:37, 7 August 2011


Introduction

This page contains information related to a third-party initiative. You may be looking for Pro Audio and not even know it!

If you have come here from another page, or were referred, you are probably interested in the ArchAudio repositories.

Read on if you are looking to contribute to the project, or are just plain bored.

Packaging

Prerequisite(s):

Getting Started

Take a look here.

Anyone and everyone keen on contributing to the buildscripts (PKGBUILDs and related files) can start immediately. You only have to take the time to get in touch with either schivmeister or jonkristian with a password hash. The fastest way is to log on to IRC (#archaudio@Freenode) and look for them, but a more straightforward approach is to simply e-mail them directly:

printf 'schiv#%s.fun\n' archaudio | sed -e 's/#/@/' -e 's/fun/org/'
printf 'jon$%s.fun\n' archaudio | sed -e 's/\$/@/' -e 's/fun/org/'

Password Hashing

As we mentioned above, this is needed for anyone wanting to have write access to the Subversion repository:

http://aspirine.org/htpasswd_en.html

Simply enter a username and password, select either SHA-1 or MD5 (up to you), then click on "encrypt password". The output is what we want.

Or if you prefer an offline method:

htpasswd -cs hashForArchAudio.txt $preferred_username # you need to install 'apache' for this tool

In this example, the file 'hashForArchAudio.txt' will be created with your new password hash. Either send the file itself or copy the hash (the whole line). Don't worry, you're only sharing the cryptographic hash of your password - and not the password itself - so that you can be authenticated.

Buildscript Contributor

Simply checkout the repository via HTTPS with your username:

svn co https://svn.archaudio.org/trunk archaudio --username=$your_username

Binary Contributor

It is mandatory that you be well-acquainted with Arch Linux packaging before applying to become a (binary) packager. If you maintain packages in AUR you are on the right path.

The only difference here is that you have to do a second, non-recursive checkout for the private packages area, where the binaries are contained and pushed. Although Subversion will not track this directory, we're going to keep it under the main checkout for the sake of consistency. We've already made the necessary amendments so that SVN does not display the '?' symbol as the directory's status:

(
echo -n 'Username: '
read your_username
svn co https://svn.archaudio.org/trunk archaudio --username $your_username
cd archaudio
svn co https://svn.archaudio.org/trunk/packages --depth empty --username $your_username
cd packages
svn up stable testing experimental --set-depth immediates
) # if you copy-pasted you have to press ENTER now

So you would navigate to the proper repository and architecture directory, copy the (binary) package that you built, add it to SVN, and finally commit the addition. Optionally, you may clear out the directory again to maintain the 'sparseness':

cd archaudio/packages/testing/i686
cp $package .
svn add $package
svn ci -m "Added binary package $package"
svn up --set-depth empty

Old packages will be automatically deleted on the server, so you need not worry about removing them yourself. Be careful to add real binary packages and not symlinks or any other file that may deceive you.

Subversion Maintenance

It is always a good idea to make the following sanity checks a routine:

svn stat
svn merge --dry-run -r BASE:HEAD . # basically a more intuitive svn stat -u

And if you really cannot find out how to use SVN (man, wiki, google):

svn add $somedir $somefile # to add (recursive)
svn del $somedir $somefile # to delete

Warning: If you remove something without the svn command, Subversion will complain that it is missing since it's not aware of the removal.

svn mv $oldname $newname # same warning applies; you cannot forget the svn before the mv!
svn revert $somedir $somefile # revert some changes (selective)
svn revert -R . # revert ALL changes (recursive)
svn ci -m "$yourmessage" # to finally commit all changes

Guidelines

  • Use tools such as namcap and those from pacman-contrib to help yourself
  • Always ensure a package installs and runs as expected before distributing your changes
  • Try to keep in touch with upstream developers of packages you regularly update
  • Always check the upstream changelog if an update does not go smoothly