[opensuse-packaging] Following upstream git repo with gnulib: "./bootstrap && ./configure && make" without network?
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. 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 f.2) create the final build from the above distribution tarball: tar -xf ... && ./configure && make Does anybody else do something like that? Thanks & have a nice day, Berny -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 11/30/18 11:17 PM, 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?
Is there really no one following upstream packages' VCSs which are using 'bootstrap' or 'autogen.sh'? Have a nice day, Berny
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.
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
f.2) create the final build from the above distribution tarball: tar -xf ... && ./configure && make
Does anybody else do something like that?
Thanks & have a nice day, Berny
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
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
On 12/5/18 12:49 PM, Dominique Leuenberger / DimStar wrote:
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
yes, this is specific to GNU hello. I used that as example - my actual package is findutils (which needs other quirks).
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
Yes, that's true, I know. I added it to have both the creation of the distribution tarball and that of the final package automatically tested by OBS incl. VPATH builds.
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)
Thanks for the pointer. That project doesn't seem to have additional downloads like the PO files in GNU hello or findutils. And yes, downloading the gnulib submodule works great with "obs_scm". The tricky part is to work around the ./bootstrap which usually a) downloads the PO files, b) expects a .git repo to at least derive the version from it (-->'.tarball-version'). Well, for now it works, and I can install my own findutils built from the upstream Git repo at 'git.sv.gnu.org' on my Tumbleweed. ;-) Thanks & have a nice day, Berny -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (2)
-
Bernhard Voelker
-
Dominique Leuenberger / DimStar