I have made some debian packages to ease deployment of configurations on new servers and want to put them in SVN source control. The problem is that SVN creates a .svn directory for each subdirectory in the source tree, so I can't build packages on the source tree 'dpkg-deb --build ' because the '.svn' directories will be included in the resulting package. So far when I want to build a package I have to export the directory to a different place and build from there.

Is there a quick way to making 'dpkg-deb --build' ignore the .svn directories?

link|improve this question

80% accept rate
feedback

2 Answers

up vote 2 down vote accepted

My understanding is that you should not be building a debian package with dpkg-deb --build in the first place. If you use dpkg-buildpackage instead, you won't have to worry about .svn directories being included in your package.

See: http://raphaelhertzog.com/2010/12/17/do-not-build-a-debian-package-with-dpkg-b/

There may be a better method, but here's one I haven't thoroughly tested:

Use dh_make to create a skeleton debian package. Put your files in the directory above the debian directory.

edit the resulting dirs file, and put the paths you are going to move files into, eg:

/opt/mypackage
/usr/local/bin

Then in your rules file, remove the $(MAKE) code and set your install: build section to something like this:

install: build
  dh_testdir
  dh_testroot
  dh_clean -k 
  dh_installdirs

  # Copy files into staging area
  rsync --exclude .svn -a mypackage/ debian/tmp/opt/mypackage/
link|improve this answer
feedback

It's worth documenting here that if you're going to use dpkg-buildpackage that it has a -i switch to ignore things. IE, use -i.svn to ignore the .svn directory.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.