I'm trying to build the documentation for the fmt library as part of the packaging, but it downloads some components from github.com just for building the documentation. It fails [1] and upstream is at least initially not up for using the system tools [2], so is there a way to make this work? Thanks, Dave
1: https://koji.fedoraproject.org/koji/taskinfo?taskID=17110916 2: https://github.com/fmtlib/fmt/issues/443
Just a wild idea: you can skip the docs!
If the package includes it own documentation and this is to large, it must be in a docs sub package , current packaging guidelines do not block a package than do no include all docs available upstream, at less I think so.
On Thu, Dec 29, 2016 at 7:47 PM, William Moreno williamjmorenor@gmail.com wrote:
Just a wild idea: you can skip the docs!
If the package includes it own documentation and this is to large, it must be in a docs sub package , current packaging guidelines do not block a package than do no include all docs available upstream, at less I think so.
I would like to have the docs include for my own uses. Some of the machines I work on don't have internet access so being able to install the docs locally is a big help.
Currently, upstream has a release that includes the prebuilt documentation and I've been using that but I was hoping to be able to build it as part of packaging.
El 29/12/2016 9:00 p. m., "Dave Johansen" davejohansen@gmail.com escribió:
On Thu, Dec 29, 2016 at 7:47 PM, William Moreno williamjmorenor@gmail.com wrote:
Just a wild idea: you can skip the docs!
If the package includes it own documentation and this is to large, it must be in a docs sub package , current packaging guidelines do not block a package than do no include all docs available upstream, at less I think so.
I would like to have the docs include for my own uses. Some of the machines I work on don't have internet access so being able to install the docs locally is a big help.
This is new for me, a sphinx package than create a virtual env before call the sphinx build
Looking at this file:
https://github.com/fmtlib/fmt/blob/master/doc/build.py
You can go to the end of file and see those lines:
if __name__ == '__main__': create_build_env() build_docs(sys.argv[1])
Just remove the call to the create_build_env() function (with a patch of even with sed in %prep) and you can test to build with the system sphinx version, this way at less you should now if the docs build with system lib, having said that, this is Fedora! You will always will find a really up to date version of sphinx in the Fedora repo!
Please also note the line
needs_sphinx = '1.2
In the file:
https://github.com/fmtlib/fmt/blob/master/doc/conf.py
This can be a issue because Fedora have sphinx 1.4.X
On Thu, Dec 29, 2016 at 8:30 PM, William Moreno williamjmorenor@gmail.com wrote:
El 29/12/2016 9:00 p. m., "Dave Johansen" davejohansen@gmail.com escribió:
On Thu, Dec 29, 2016 at 7:47 PM, William Moreno <williamjmorenor@gmail.com
wrote:
Just a wild idea: you can skip the docs!
If the package includes it own documentation and this is to large, it must be in a docs sub package , current packaging guidelines do not block a package than do no include all docs available upstream, at less I think so.
I would like to have the docs include for my own uses. Some of the machines I work on don't have internet access so being able to install the docs locally is a big help.
This is new for me, a sphinx package than create a virtual env before call the sphinx build
Looking at this file:
https://github.com/fmtlib/fmt/blob/master/doc/build.py
You can go to the end of file and see those lines:
if __name__ == '__main__': create_build_env() build_docs(sys.argv[1])
Just remove the call to the create_build_env() function (with a patch of even with sed in %prep) and you can test to build with the system sphinx version, this way at less you should now if the docs build with system lib, having said that, this is Fedora! You will always will find a really up to date version of sphinx in the Fedora repo!
I'll give that a try. Is there a way that I can disable network access in my local mock to test that change?
Am Thu, 29 Dec 2016 21:40:52 -0700 schrieb Dave Johansen davejohansen@gmail.com:
On Thu, Dec 29, 2016 at 8:30 PM, William Moreno williamjmorenor@gmail.com wrote:
El 29/12/2016 9:00 p. m., "Dave Johansen" davejohansen@gmail.com escribió:
On Thu, Dec 29, 2016 at 7:47 PM, William Moreno <williamjmorenor@gmail.com
wrote:
Just a wild idea: you can skip the docs!
If the package includes it own documentation and this is to large, it must be in a docs sub package , current packaging guidelines do not block a package than do no include all docs available upstream, at less I think so.
I would like to have the docs include for my own uses. Some of the machines I work on don't have internet access so being able to install the docs locally is a big help.
This is new for me, a sphinx package than create a virtual env before call the sphinx build
Looking at this file:
https://github.com/fmtlib/fmt/blob/master/doc/build.py
You can go to the end of file and see those lines:
if __name__ == '__main__': create_build_env() build_docs(sys.argv[1])
Just remove the call to the create_build_env() function (with a patch of even with sed in %prep) and you can test to build with the system sphinx version, this way at less you should now if the docs build with system lib, having said that, this is Fedora! You will always will find a really up to date version of sphinx in the Fedora repo!
I'll give that a try. Is there a way that I can disable network access in my local mock to test that change?
If you look into /etc/mock/site-defaults.cfg you find (at least) two network related options:
<quote> # By default Mock use simple chroot(1). When you set this to True # it will use systemd-nspawn(1) # config_opts['use_nspawn'] = False config_opts['use_nspawn'] = True # If you're using nspawn, then by default networking will be turned off # for rpmbuild. This helps ensure more reproducible builds. # config_opts['rpmbuild_networking'] = False </quote>
Options can also be set per user in ~/.config/mock.cfg
Jens
On Fri, Dec 30, 2016 at 2:26 AM, Jens Lody fedora@jenslody.de wrote:
Am Thu, 29 Dec 2016 21:40:52 -0700 schrieb Dave Johansen davejohansen@gmail.com:
On Thu, Dec 29, 2016 at 8:30 PM, William Moreno williamjmorenor@gmail.com wrote:
El 29/12/2016 9:00 p. m., "Dave Johansen" davejohansen@gmail.com escribió:
On Thu, Dec 29, 2016 at 7:47 PM, William Moreno <williamjmorenor@gmail.com
wrote:
Just a wild idea: you can skip the docs!
If the package includes it own documentation and this is to large, it must be in a docs sub package , current packaging guidelines do not block a package than do no include all docs available upstream, at less I think so.
I would like to have the docs include for my own uses. Some of the machines I work on don't have internet access so being able to install the docs locally is a big help.
This is new for me, a sphinx package than create a virtual env before call the sphinx build
Looking at this file:
https://github.com/fmtlib/fmt/blob/master/doc/build.py
You can go to the end of file and see those lines:
if __name__ == '__main__': create_build_env() build_docs(sys.argv[1])
Just remove the call to the create_build_env() function (with a patch of even with sed in %prep) and you can test to build with the system sphinx version, this way at less you should now if the docs build with system lib, having said that, this is Fedora! You will always will find a really up to date version of sphinx in the Fedora repo!
I'll give that a try. Is there a way that I can disable network access in my local mock to test that change?
If you look into /etc/mock/site-defaults.cfg you find (at least) two network related options:
<quote> # By default Mock use simple chroot(1). When you set this to True # it will use systemd-nspawn(1) # config_opts['use_nspawn'] = False config_opts['use_nspawn'] = True # If you're using nspawn, then by default networking will be turned off # for rpmbuild. This helps ensure more reproducible builds. # config_opts['rpmbuild_networking'] = False </quote>
Options can also be set per user in ~/.config/mock.cfg
I had to use a patch because the currently released version doesn't have create_build_env() as a separate function. Using the system version worked, but when networking is disabled the doxygen command still fails ( https://koji.fedoraproject.org/koji/taskinfo?taskID=17112625 ). Any ideas on why that is? Thanks, Dave
On Thu, Dec 29, 2016 at 07:59:26PM -0700, Dave Johansen wrote:
Currently, upstream has a release that includes the prebuilt documentation and I've been using that but I was hoping to be able to build it as part of packaging.
Is there any advantage in doing that? There are several reasons to _not_ do it:
1. Faster build times. 2. Timestamps in docs tend to be one factor against reproducible builds 3. Dragging doc-building stacks into build reqs tends to explode the package set required to build things.
On Thu, Dec 29, 2016 at 9:04 PM, Matthew Miller mattdm@fedoraproject.org wrote:
On Thu, Dec 29, 2016 at 07:59:26PM -0700, Dave Johansen wrote:
Currently, upstream has a release that includes the prebuilt
documentation
and I've been using that but I was hoping to be able to build it as part
of
packaging.
Is there any advantage in doing that? There are several reasons to _not_ do it:
Right now, fmt can only be built from official releases with the documentation and it's happened more than once that the documentation was missing from a release, so I would prefer to be able to build everything from a clean checkout.
- Faster build times.
That's true, but it's not a very big package, so I'm not too concerned.
- Timestamps in docs tend to be one factor against reproducible builds
Isn't this a much bigger issue which solutions/implications beyond this discussion?
- Dragging doc-building stacks into build reqs tends to explode the package set required to build things.
Yes, it is a bit annoying, but once again it's not a very big package, so I'm not too concerned.
Dave Johansen wrote:
I'm trying to build the documentation for the fmt library as part of the packaging, but it downloads some components from github.com just for building the documentation. It fails [1] and upstream is at least initially not up for using the system tools [2], so is there a way to make this work? Thanks,
You have to patch it downstream to use the system tools. Downloading stuff during the build is not going to work, by design.
Kevin Kofler