Re: Packaging for Debian Ubuntu

2010-03-08 Thread Dave Hall
Hi Paul,

On Mon, 2010-03-08 at 20:44 +1000, Paul Gear wrote:
 Hi folks,
 
 I thought i'd ask a technical question here to give us a bit of relief
 from the leadership structure and all that.  :-)
 
 I have previously maintained my own software repository for my Debian
 systems, but it fell into disuse.  When i came back to re-visit the
 question, i found that the ballgame had changed, and my scripts to
 maintain my site (they used dpkg-scanpackages and dpkg-scansources)
 don't work any more.  I found this page which talks about tools to
 create my own repository:
 http://wiki.debian.org/HowToSetupADebianRepository.  That page
 doesn't seem to nominate a clear winner, and lots of the products seem
 to be poorly documented or abandoned.
 
 Here are the factors in my repository creation equation:
  1. I need to support Debian  Ubuntu, both i386  amd64 (but
 preferably all architectures) with one repository and one
 build process.
  2. Most of my packages are small and architecture-independent
 (perl scripts, Java programs, and the like), but i don't want
 to be limited to this.
  3. I want to run the repository on my own LAN to provide maximum
 speed and availability to my servers - this rules out using
 PPA.
  4. I want to use a product that is under active development
 and/or use by Debian and/or Ubuntu developers - this means it
 should be available in main or universe.
  5. I'd prefer to maintain as few repository management files as
 possible.  The archive will not get big and complex, so it's
 OK to maintain some by hand, but i'd rather not.
  6. I want to keep all older versions of my packages online.  (My
 old scripts used to complain every time i uploaded a new
 version because there were already 27 existing versions in the
 repository.)
  7. I'd prefer to find something that is reasonably
 well-documented, because asking Debian developers for help is
 like extracting blood from a stone (just try #debian on IRC
 sometime if you don't believe me), and Ubuntu folks tend to
 look at you all weird-like when you don't want to do
 everything through launchpad  PPA.
 Is this a reasonable list?  Is there a product that fits the bill?  

I can't help with the build side of things, all my package building
isn't automated.  For the serving of packages I use reprepro and nginx,
for info check out the blog post I prepared earlier
http://davehall.com.au/blog/dave/2010/02/06/howto-setup-private-package-repository-reprepro-nginx

I think it ticks all the boxes except #6 out of the box, but a quick
shell script should help with the archiving bit.  I keep all of my
packaging stuff in version control so I don't need to keep old versions
kicking around.

Cheers

Dave


-- 
ubuntu-au mailing list
ubuntu-au@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-au


Re: Packaging for Debian Ubuntu

2010-03-08 Thread Karl Bowden
On 8 March 2010 22:00, Dave Hall dave.h...@skwashd.com wrote:

 Hi Paul,

 On Mon, 2010-03-08 at 20:44 +1000, Paul Gear wrote:
  Hi folks,
 
  I thought i'd ask a technical question here to give us a bit of relief
  from the leadership structure and all that.  :-)
 
  I have previously maintained my own software repository for my Debian
  systems, but it fell into disuse.  When i came back to re-visit the
  question, i found that the ballgame had changed, and my scripts to
  maintain my site (they used dpkg-scanpackages and dpkg-scansources)
  don't work any more.  I found this page which talks about tools to
  create my own repository:
  http://wiki.debian.org/HowToSetupADebianRepository.  That page
  doesn't seem to nominate a clear winner, and lots of the products seem
  to be poorly documented or abandoned.
 
  Here are the factors in my repository creation equation:
   1. I need to support Debian  Ubuntu, both i386  amd64 (but
  preferably all architectures) with one repository and one
  build process.
   2. Most of my packages are small and architecture-independent
  (perl scripts, Java programs, and the like), but i don't want
  to be limited to this.
   3. I want to run the repository on my own LAN to provide maximum
  speed and availability to my servers - this rules out using
  PPA.
   4. I want to use a product that is under active development
  and/or use by Debian and/or Ubuntu developers - this means it
  should be available in main or universe.
   5. I'd prefer to maintain as few repository management files as
  possible.  The archive will not get big and complex, so it's
  OK to maintain some by hand, but i'd rather not.
   6. I want to keep all older versions of my packages online.  (My
  old scripts used to complain every time i uploaded a new
  version because there were already 27 existing versions in the
  repository.)
   7. I'd prefer to find something that is reasonably
  well-documented, because asking Debian developers for help is
  like extracting blood from a stone (just try #debian on IRC
  sometime if you don't believe me), and Ubuntu folks tend to
  look at you all weird-like when you don't want to do
  everything through launchpad  PPA.
  Is this a reasonable list?  Is there a product that fits the bill?

 I can't help with the build side of things, all my package building
 isn't automated.  For the serving of packages I use reprepro and nginx,
 for info check out the blog post I prepared earlier

 http://davehall.com.au/blog/dave/2010/02/06/howto-setup-private-package-repository-reprepro-nginx

 I think it ticks all the boxes except #6 out of the box, but a quick
 shell script should help with the archiving bit.  I keep all of my
 packaging stuff in version control so I don't need to keep old versions
 kicking around.

 Cheers

 Dave


I'll second Dave's suggestion of reprepro and nginx.

The comment at the end of Dave's blog post was mine, and I have since moved
from using apache to nginx too.

I use pbuilder to maintain a few packages for the systems I maintain. From
pbuilder I target amd64  i386, jaunty  karmic. I know pbuilder also
supports building to debian targets on the same system too, but have not had
a need to try it yet.

From there I debsign the .changes files and import them into reprepro.
Nginx serves that repo to my local lan and also proxies approx running on
the same machine too. This gives me a both the an upstream proxy and a my
local packages with a couple of simple lines in sources.list.
eg:
deb http://apt/ubuntu karmic main
deb http://apt/ubuntu karmic-updates main
deb http://apt/ubuntu karmic-security main
deb http://apt/internal karmic main

Ubuntu being the upstream proxy and internal being my local package
repository.

In my situation, to keep old versions around I would archive them to a
folder nginx serves as they are built as reprepro does a good job of keeping
your repo current and clean. I have not got around to throwing everything
into VC, but that's going to be my next step and a big recommendation from
me too.

Just to muddy the waters for you a little. :-)

- Karl
-- 
ubuntu-au mailing list
ubuntu-au@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-au


Re: Packaging for Debian Ubuntu

2010-03-08 Thread Paul Gear

Karl Bowden wrote:
On 8 March 2010 22:00, Dave Hall dave.h...@skwashd.com 
mailto:dave.h...@skwashd.com wrote:


...

 Is this a reasonable list?  Is there a product that fits the bill?

Firstly, thanks to Dave  Karl for their suggestions.  I played with 
reprepro for a few minutes and it seems to do the job.



I can't help with the build side of things, all my package building
isn't automated. 

What do you use for your package building?  I have been using 
dpkg-buildpackage so far, and it seems to be reasonable once you have 
all the control files set up, although it is a bit clunky sometimes.  
Even though i've been a sold-out Debian/Ubuntu user since 2003, i must 
say that Red Hat make it a lot easier to learn to package in RPM format 
than Debian  Ubuntu do in dpkg format.


For the serving of packages I use reprepro and nginx,
for info check out the blog post I prepared earlier

http://davehall.com.au/blog/dave/2010/02/06/howto-setup-private-package-repository-reprepro-nginx

I think it ticks all the boxes except #6 out of the box, but a quick
shell script should help with the archiving bit.  I keep all of my
packaging stuff in version control so I don't need to keep old
versions
kicking around.

I keep all of my stuff in subversion, with tags for each release, but i 
find it easier to keep the built packages than to rebuild from source if 
i want to go back to a previous version.

I'll second Dave's suggestion of reprepro and nginx.

The comment at the end of Dave's blog post was mine, and I have since 
moved from using apache to nginx too.
I've already got a full Apache vhost setup, so i assume that i can keep 
this and there's nothing special about the differences between Apache  
nginx?
I use pbuilder to maintain a few packages for the systems I maintain. 
From pbuilder I target amd64  i386, jaunty  karmic. I know pbuilder 
also supports building to debian targets on the same system too, but 
have not had a need to try it yet.
I expect to build on Debian lenny amd64 and deploy on karmic  lenny, 
both i386  amd64.  Does pbuilder help with that?

From there I debsign the .changes files and import them into reprepro.
Do you use a separate command to bring in the .changes files, or can you 
bring in all the right bits of your packages with one command?  It 
sounds like there is still a lot of manual scripting that needs to take 
place.


Paul

-- 
ubuntu-au mailing list
ubuntu-au@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-au


Re: Packaging for Debian Ubuntu

2010-03-08 Thread Dave Hall
On Mon, 2010-03-08 at 22:49 +1000, Paul Gear wrote:
 Karl Bowden wrote: 
  On 8 March 2010 22:00, Dave Hall dave.h...@skwashd.com wrote:

  I can't help with the build side of things, all my package
  building
  isn't automated.  
 What do you use for your package building?  I have been using
 dpkg-buildpackage so far, and it seems to be reasonable once you have
 all the control files set up, although it is a bit clunky sometimes. 

I use dpkg-deb for my meta packages.  I think my blog post of that is
linked from the reprepro post.  For the rest I use dpkg-buildpackage
triggered in various ways.  For example some of my php apps are built
using phing which does a full build from svn.  My PEAR packages are
built from scratch, I really disliked the Debian's pear-package tool did
things.

  Even though i've been a sold-out Debian/Ubuntu user since 2003, i
 must say that Red Hat make it a lot easier to learn to package in RPM
 format than Debian  Ubuntu do in dpkg format.

I switched to Debian back when woody was testing iirc.  RH7 drove me
insane, but it did teach me how to source compile pretty much an entire
LAMP server.

Cheers

Dave


-- 
ubuntu-au mailing list
ubuntu-au@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-au