On Fri, 2018-11-30 at 23:17 +0100, Bernhard Voelker wrote:
Hi *,
I'm trying to follow an upstream GNU package's Git repo which has a gnulib submodule, and PO files from 'translationproject.org'.
Example: https://build.opensuse.org/package/show/home:berny:branches:fromgit/hello
Do I do it right?
Long story: In this case, I need to create a distribution tarball without gnulib and PO from network. Furthermore, "obs_scm" service doesn't create a full Git clone; so in my example - GNU hello, for simplicity - I needed to add a hack to be able to create the manpage.
The idea is:
a) let _service get the package from the remote Git repo. (unfortunately, this yields the working tree without the '.git/' history).
b) let _service download the PO files --> "SourceXY".
c) GNU hello specific: manpage creating is usually only done in maintainer environment, i.e., with a '.git/' directory. Add a little patch to work around it.
This seems like a bogus check in the upstreamcode: man page should be created if asked for and not in place. the presence of .git should not matter
d) in '%prep'', copy the PO files into the build tree.
e) in '%build', create the LINGUAS file.
f) in %build: f.1) create the intermediate distribution tarball using: ./bootstrap ... && ./configure && make all dist
creating the dist tarball should not be nescesasry and can be skipped. You can make/make install directly out of the git checkout tree
f.2) create the final build from the above distribution tarball: tar -xf ... && ./configure && make
As above, this can be skipped
Does anybody else do something like that?
Have a look for example at: openSUSE:Factory/appstream-glib we get the git checkout using _service and build from it (it has no submodules, but submodules are supported by OBS) Cheers Dominique