Re: Packaging for Debian Ubuntu
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
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
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
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