Difference between revisions of "Building Release Tarballs"

From Audacity Wiki
Jump to: navigation, search
m (Step by step: obviously, get others to test)
(add intro, couple of links)
Line 1: Line 1:
Release tarballs are the Bzip2-compressed TAR archives of the audacity source code which we release via Sourceforge for every Audacity release. They are used by three groups of people:
+
{{Intro|'''''Release tarballs''''' are the Bzip2-compressed TAR archives of the Audacity source code which we release via SourceForge for every Audacity release.|}}
* People interested in looking at and analysing the source code to audacity
+
 
 +
 
 +
== Who uses them  ==
 +
 
 +
They are used by three groups of people:
 +
* People interested in looking at and analysing the Audacity source code
 
* People creating [[Notes for Packagers|packages for Linux distributions]] like RPMs, DEBs and so on.
 
* People creating [[Notes for Packagers|packages for Linux distributions]] like RPMs, DEBs and so on.
* End users on Linux and Unix systems who can't use a pre-compiled package because one doesn't exist or is not suitable for their needs.
+
* End-users on Linux and Unix systems who can't use a pre-compiled package because one doesn't exist or is not suitable for their needs.
These different users have slightly different needs, and all of them differ from the needs of the development team, which largely determine the layout of the Audacity CVS repository. For a step by step walk-through of actually creating a release tarball, see the bottom the is page. The stuff in between is mostly rationale and explanation.
+
 
 +
These different users have slightly different needs, and all of them differ from the needs of the development team, which largely determine the layout of the Audacity CVS repository. For a walk-through of actually creating a release tarball, skip to [[#steps|Step by Step]] at the bottom of the page. The stuff inbetween is mostly rationale and explanation.
  
 
== What to include ==
 
== What to include ==
Line 9: Line 15:
 
== Cleaning up ==
 
== Cleaning up ==
  
 +
<div id="steps"></div>
 
== Step by step ==
 
== Step by step ==
 
Luckily for you, the process of creating release tarballs is almost completely automated by the maketarball.sh shell script. These instructions assume you are using a Unix-like system where files have <CR> line endings, and a bourne-compatible shell is available. If this is not the case, then you are likely to encounter problems.
 
Luckily for you, the process of creating release tarballs is almost completely automated by the maketarball.sh shell script. These instructions assume you are using a Unix-like system where files have <CR> line endings, and a bourne-compatible shell is available. If this is not the case, then you are likely to encounter problems.
# Start from an up to date CVS checkout. Make sure that you don't have locally modified files, conflicts or other issues in the local copy before you begin. Make sure that redundant directories have been pruned by using the -P and -d flags to cvs.
+
# Start from an up to date [http://audacity.sourceforge.net/community/developers#cvs CVS checkout]. Make sure that you don't have locally modified files, conflicts or other issues in the local copy before you begin. Make sure that redundant directories have been pruned by using the -P and -d flags to CVS. There is some help with CVS commands [[CVS Tips and Tricks#CVS commands|here]].
 
# Make sure that the top level Makefile exists. If this is a fresh checkout, then you need to run configure. It doesn't matter what options you choose, and you don't need to run make, but the Makefile is needed later on.
 
# Make sure that the top level Makefile exists. If this is a fresh checkout, then you need to run configure. It doesn't matter what options you choose, and you don't need to run make, but the Makefile is needed later on.
 
# Change directory to the top level of the CVS checkout, if you aren't there already.
 
# Change directory to the top level of the CVS checkout, if you aren't there already.
# Run '''./scripts/maketarball.sh quiet''' to generate a new directory containing all the files that will end up in the tarball. The directory will be created alongside the CVS checkout directory, and named '''audacity-src-x.y.z''' where x.y.z is the version number which is automatically extracted from the audacity source code. The ''quiet'' argument keeps the amount of output produced under control, whilst still providing some progress indication. It can be replaced with ''verbose'' to see the full file-by-file output.
+
# Run '''./scripts/maketarball.sh quiet''' to generate a new directory containing all the files that will end up in the tarball. The directory will be created alongside the CVS checkout directory, and named '''audacity-src-x.y.z''' where x.y.z is the version number which is automatically extracted from the Audacity source code. The ''quiet'' argument keeps the amount of output produced under control, whilst still providing some progress indication. It can be replaced with ''verbose'' to see the full file-by-file output.
 
# If you observe any error messages, then stop and check what has happened. You can ignore any make errors that make ignores, i.e. ones about ''distclean'' and ''clean'' targets not existing.
 
# If you observe any error messages, then stop and check what has happened. You can ignore any make errors that make ignores, i.e. ones about ''distclean'' and ''clean'' targets not existing.
 
# Change directory up one level out of the CVS checkout directory, and run '''tar cjf audacity-src-x.y.z.tar.bz2 audacity-src-x.y.z''' to create a tarball from the directory structure.
 
# Change directory up one level out of the CVS checkout directory, and run '''tar cjf audacity-src-x.y.z.tar.bz2 audacity-src-x.y.z''' to create a tarball from the directory structure.

Revision as of 17:14, 18 October 2008

Release tarballs are the Bzip2-compressed TAR archives of the Audacity source code which we release via SourceForge for every Audacity release.


Who uses them

They are used by three groups of people:

  • People interested in looking at and analysing the Audacity source code
  • People creating packages for Linux distributions like RPMs, DEBs and so on.
  • End-users on Linux and Unix systems who can't use a pre-compiled package because one doesn't exist or is not suitable for their needs.

These different users have slightly different needs, and all of them differ from the needs of the development team, which largely determine the layout of the Audacity CVS repository. For a walk-through of actually creating a release tarball, skip to Step by Step at the bottom of the page. The stuff inbetween is mostly rationale and explanation.

What to include

Cleaning up

Step by step

Luckily for you, the process of creating release tarballs is almost completely automated by the maketarball.sh shell script. These instructions assume you are using a Unix-like system where files have <CR> line endings, and a bourne-compatible shell is available. If this is not the case, then you are likely to encounter problems.

  1. Start from an up to date CVS checkout. Make sure that you don't have locally modified files, conflicts or other issues in the local copy before you begin. Make sure that redundant directories have been pruned by using the -P and -d flags to CVS. There is some help with CVS commands here.
  2. Make sure that the top level Makefile exists. If this is a fresh checkout, then you need to run configure. It doesn't matter what options you choose, and you don't need to run make, but the Makefile is needed later on.
  3. Change directory to the top level of the CVS checkout, if you aren't there already.
  4. Run ./scripts/maketarball.sh quiet to generate a new directory containing all the files that will end up in the tarball. The directory will be created alongside the CVS checkout directory, and named audacity-src-x.y.z where x.y.z is the version number which is automatically extracted from the Audacity source code. The quiet argument keeps the amount of output produced under control, whilst still providing some progress indication. It can be replaced with verbose to see the full file-by-file output.
  5. If you observe any error messages, then stop and check what has happened. You can ignore any make errors that make ignores, i.e. ones about distclean and clean targets not existing.
  6. Change directory up one level out of the CVS checkout directory, and run tar cjf audacity-src-x.y.z.tar.bz2 audacity-src-x.y.z to create a tarball from the directory structure.
  7. Change directory into the release structure, and check that it can be configured and compiled successfully.
  8. If you have to make changes, then remember to copy them back to your CVS tree and commit them before deleting the tarball and release structure and starting again.
  9. If the tarball compiles successfully for you, then upload it so other people can test it before release.