[Koha-devel] Building Koha Debian packages in Docker

David Cook dcook at prosentient.com.au
Tue Nov 27 02:10:36 CET 2018


If you shared some of your ideas, Tomas, perhaps I could do some work on that one?

With https://gitlab.com/minusdavid/koha-deb-builder-docker, I’m not using a chroot. I just use the debian:jessie parent image, install build tools, take the upstream tarball (generated via git archive), use dch to update the changelog, currently use apt-get -y build-dep koha to install the build dependencies, then run “debuild”. The slowest bit of the process is installing those build dependencies.

 

(Full disclosure: I’m using DEB_BUILD_OPTIONS=nocheck as I recall one of the tests causing a fatal error, and I put off analysing that until I had the build process nailed down in the docker. That’ll need revisiting.)

 

David Cook

Systems Librarian

Prosentient Systems

72/330 Wattle St

Ultimo, NSW 2007

Australia

 

Office: 02 9212 0899

Direct: 02 8005 0595

 

From: Tomas Cohen Arazi [mailto:tomascohen at gmail.com] 
Sent: Tuesday, 27 November 2018 11:57 AM
To: David Cook <dcook at prosentient.com.au>
Cc: Chris Cormack <chrisc at catalyst.net.nz>; koha-devel <koha-devel at lists.koha-community.org>
Subject: Re: [Koha-devel] Building Koha Debian packages in Docker

 

If I had time to spend on the subject, I would look for ways to build Debian packages without the need to chroot. With that solved, it will be very easy to create those pipelines for testing the packages.

 

El lun., 26 nov. 2018 a las 21:55, David Cook (<dcook at prosentient.com.au <mailto:dcook at prosentient.com.au> >) escribió:

There’s certainly something to be said for “if it’s not broken, don’t fix it”. It certainly does work well enough. 

 

I seem to recall reading something years ago from Lars about some uncertainty on packaging full web applications, versus individual modules or DOTADIW programs, for Debian but I think that was about other details.  

 

I’m not really advocating for change. Really just asking questions about why things are done the way they’re done. 

 

David Cook

Systems Librarian

Prosentient Systems

72/330 Wattle St

Ultimo, NSW 2007

Australia

 

Office: 02 9212 0899

Direct: 02 8005 0595

 

From: Chris Cormack [mailto:chrisc at catalyst.net.nz <mailto:chrisc at catalyst.net.nz> ] 
Sent: Tuesday, 27 November 2018 11:35 AM
To: David Cook <dcook at prosentient.com.au <mailto:dcook at prosentient.com.au> >; koha-devel at lists.koha-community.org <mailto:koha-devel at lists.koha-community.org> 
Subject: RE: [Koha-devel] Building Koha Debian packages in Docker

 

If you like, I note it's been working fine for over 8 years now.
And was packaged by 2 debian developers and a debian maintainer. I'd strongly resist changing it

Chris 

On 27 November 2018 1:32:33 PM NZDT, David Cook <dcook at prosentient.com.au <mailto:dcook at prosentient.com.au> > wrote:

While I can see the utility of that usage, are there any examples of other projects doing that? I don’t think that I’ve seen that elsewhere, and it doesn’t seem like the Debian way of doing things. 

 

It seems to me that the Build-Depends should just be for build dependencies, and Depends should be for package dependencies. The lack of packaged dependencies could be caught in a different part of the pipeline. And when it is caught, then that dependency could be packaged, and the same packaged koha-common could be used. That seems to be a more standard way of handling the packaging process, no? 

 

David Cook

Systems Librarian

Prosentient Systems

72/330 Wattle St

Ultimo, NSW 2007

Australia

 

Office: 02 9212 0899

Direct: 02 8005 0595

 

From: koha-devel-bounces at lists.koha-community.org <mailto:koha-devel-bounces at lists.koha-community.org>  [mailto:koha-devel-bounces at lists.koha-community.org] On Behalf Of Chris Cormack
Sent: Monday, 26 November 2018 6:51 PM
To: koha-devel at lists.koha-community.org <mailto:koha-devel at lists.koha-community.org> 
Cc: 'koha-devel' <koha-devel at lists.koha-community.org <mailto:koha-devel at lists.koha-community.org> >
Subject: Re: [Koha-devel] Building Koha Debian packages in Docker

 

More than just the tests. It also makes sure all the dependencies are packaged too. That way you can't build a package you can't install (because one of its depencies isn't packaged)

Chris 

On 26 November 2018 8:19:36 PM NZDT, David Cook <dcook at prosentient.com.au <mailto:dcook at prosentient.com.au> > wrote:

Thanks for sharing that, Tomas. I thought that you’d already done some work on this, but it wasn’t jumping out at me the other day. Where’s it in your gitlab? Is it the koha-dpkg-docker repository?

 

I’m curious though why one would use pbuilder in Docker. Is it so that you can use the base.tgz files to store the koha-perldeps? That could be convenient.

 

I’m curious why we have every Koha Perl dependency in the build dependencies section. Is it for the sake of the tests? Surely Koha’s “build” dependencies would be pretty low. Just whatever is needed by rewrite-Config.PL really? But I suppose the tests would have a lot of dependencies, which could be painful to enumerate separately.  

 

David Cook

Systems Librarian

Prosentient Systems

72/330 Wattle St

Ultimo, NSW 2007

Australia

 

Office: 02 9212 0899

Direct: 02 8005 0595

 

From: Tomas Cohen Arazi [mailto:tomascohen at gmail.com] 
Sent: Thursday, 22 November 2018 8:38 PM
To: David Cook <dcook at prosentient.com.au <mailto:dcook at prosentient.com.au> >
Cc: koha-devel <koha-devel at lists.koha-community.org <mailto:koha-devel at lists.koha-community.org> >
Subject: Re: Building Koha Debian packages in Docker

 

David, try this

 

https://hub.docker.com/r/koha/koha-dpkg/

 

I basically maintain the base.tgz files outside of it. It works nicely. The source code is on my gitlab. The plan was to automate the packages building and eventually set a pipeline for also testing the install process of the results.

 

El 22 nov. 2018 04:59, "David Cook" <dcook at prosentient.com.au <mailto:dcook at prosentient.com.au> > escribió:

Hi folks,

 

I was wondering if anyone had a Docker image for building Koha Debian packages. I scouted around a bit and found this image from Jonathan https://gitlab.com/joubu/koha-dpkg-docker but nothing else. 

 

So I’ve put together my own project which you can find here: https://gitlab.com/minusdavid/koha-deb-builder-docker

 

The “build.sh” script is still rough around the edges, but it all works. Basically you build the Docker image, dump a tarball into “input” (generated using git archive with a properly formatted prefix and filename), run a container, run the build.sh script, and then when the process is done you should have some Debian packages in your “output” directory which is shared with your host computer. 

 

Happy to accept pull requests or talk about it in general. The Docker image is pretty heavy, but that’s because the Debian packaging tools are heavy.

 

The build process is also a bit long because it has to install all the “build dependencies”, although I think we could tweak the debian/control file so that we don’t have to install everything just to build the packages. 

 

Also I couldn’t get the tests to complete successfully on the first go so I’ve turned them off for now. Fixing the image or the tests so that they can run would be cool. 

 

Anyway, just thought I’d share that with everyone. 

 

David Cook

Systems Librarian

Prosentient Systems

72/330 Wattle St

Ultimo, NSW 2007

Australia

 

Office: 02 9212 0899

Direct: 02 8005 0595

 

 


-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

_______________________________________________
Koha-devel mailing list
Koha-devel at lists.koha-community.org <mailto:Koha-devel at lists.koha-community.org> 
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/




 

-- 

Tomás Cohen Arazi

Theke Solutions (http://theke.io <http://theke.io/> )
✆ +54 9351 3513384
GPG: B2F3C15F

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.koha-community.org/pipermail/koha-devel/attachments/20181127/2a61fa94/attachment-0001.html>


More information about the Koha-devel mailing list