-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build code as packages/PPAs #17
Comments
I don't understand. It seems to me that it would be easier for someone to figure out how the system works, as much of the complexity of the cookbook and many of the packages it installs as dependencies would go away. The dependencies would be specified in the built .deb package, which seems pretty logical to me. I get the point about reproducibility... but we're already missing out on that by specifying a 'live' tag rather than a revision hash in the cookbook. 😔 |
Let's take osm2pgsql for example. https://launchpad.net/~osmadmins/+archive/ubuntu/ppa shows it as If it had been built via a chef recipe, then the git checkout and/or other chef code would indicate exactly what's being used and what's in the patches. With packages/ppas it's possible to avoid this situation of having binaries of unknown origin, but involves a lot more tooling. For example, the ppa could only contain artifacts from a build process (like jenkins/travis etc), and nobody has permissions to upload packages directly. |
Launchpad does keep that information, so it's slightly better than "random upload from someone's laptop".
Not the way we're using Chef. Take a look at the recipes - at least two that I looked at have a
Yup, this is a good argument in favour of hosting our build & APT repo internally, so that we can ensure that any extra patches included are checked in somewhere and referenced from the package. A more general point: Knowing the exact revision of the code we're running quickly turns into a bit of a nightmare. Many build packages install their dependencies (gcc, -dev packages) and we have no idea what version those are. The goal of perfectly reproducible builds is a good one, but would require more radical changes. |
There's a few possibilities (use either
That's not so much of an issue for me as making it easy and clear to figure out which code is (modulo chef-run timeframes) being currently used. Thanks for the launchpad links, I didn't realise that the source of the packages was in fact available. |
Debian source packages contain all of the patches needed to build the binary package. And Debian, Ubuntu, launchpad.net PPAs, etc all keep the source packages for all of their binary packages. So while the Debian package format is not the most readable format out there, the information is all there. As someone who has not used Chef, I would have all of the same complaints as @gravitystorm about Chef scripts ;-) Standard Debian packages are based around the original upstream tarball, i.e. the official source release. Then there is an accompanying debian tarball with all the stuff needed to build the package, including patches, for example: I'm a Debian Developer (i.e. I have upload privs) and I'm happy to help with this where I can. It seems to me that the ideal sitaution would be to get the OSM fixes into the official Debian packages so that no patches are needed. |
During the discussion of a PR on the chef repo, the subject of whether it would be better to have an internal APT repo or use PPAs for built code (as opposed to building code within the cookbook as we currently do) came up. Rather than continue the discussion there, it seemed better to have it here where it was more visible (and appropriately titled).
The text was updated successfully, but these errors were encountered: