Skip to content
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

Handle multiplatform patches and files #84

Open
certik opened this issue Jun 20, 2013 · 0 comments
Open

Handle multiplatform patches and files #84

certik opened this issue Jun 20, 2013 · 0 comments

Comments

@certik
Copy link
Member

certik commented Jun 20, 2013

Some packages need patching in order to compile. Many of these patches are multiplatform. An example is #81, which was fixed by f6be2a5, which added a file stdio_build_fix.diff.linux which was then copied (but only on linux!) and then the "patch" command applies it from configure.linux.

We need some way to

  • handle multiplatform files (for example we can append a suffix .all or something and then it will get copied for all platforms)
  • handle patches for packages. Currently we can use manual patching as implemented in m4 fails to build on ubuntu 13.04 #81. Debian now uses quilt, which is pretty much like git, except that you apply the patches on top of any directory, i.e. after unpacking the upstream tarball. We can of course import the unpacked upstream tarball into git and add our own patches on top of it and host it at our github. The advantage of doing patches is that our repository has all the information how to build the given package just from the upstream tarball, and as long as the patches are small (which they typically are, as usually you just need to patch the build system a bit, adjust some paths etc.), this is the most transparent solution --- as long as you have good support for managing the patches, which quilt provides.
  • We can also use https://github.com/joeyh/pristine-tar which is able to recreate upstream .gz and .bz2 exactly (e.g. md5 sum will agree) from git. So our workflow would be to keep the md5 hash in packages.yml for the m4 upstream tarball, but import the sources to git, add our patches, host it at our github, then add a github link + git hash to packages.yml, but keep the original md5 hash for checking. That way it is clear that we have only added some more patches, but kept everything else unmodified.

/cc @cekees, @dagss

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant