All of lore.kernel.org
 help / color / mirror / Atom feed
* build-sys: minor issues
@ 2014-06-01 22:56 Ruediger Meier
  2014-06-02  0:33 ` Ruediger Meier
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Ruediger Meier @ 2014-06-01 22:56 UTC (permalink / raw)
  To: util-linux

Hi,

I have two minor issues with our build-sys:

1. ./configure --enable-all-programs
also triggers --enable-deprecated-last. Would be nice to exclude this 
deprecated stuff somehow.

2. make dist
changes files in source dir, which makes the git clone dirty. Would be 
nice if we could avoid this somehow.

cu,
Rudi

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-01 22:56 build-sys: minor issues Ruediger Meier
@ 2014-06-02  0:33 ` Ruediger Meier
  2014-06-02  9:48   ` Karel Zak
  2014-06-03 10:42   ` Karel Zak
  2014-06-02  9:42 ` Karel Zak
  2014-06-03 13:09 ` Ruediger Meier
  2 siblings, 2 replies; 14+ messages in thread
From: Ruediger Meier @ 2014-06-02  0:33 UTC (permalink / raw)
  To: util-linux

On Monday 02 June 2014, Ruediger Meier wrote:
> I have two minor issues with our build-sys:

Another issue:

3. --enable-gtk-doc does not work in out-of-tree build:

$ mkdir build 
$ cd build
$ ../configure --enable-gtk-doc 
$ make V=1
[...]
gtkdoc-mkhtml --path="/home/rudi/devel/util-linux/build/libmount/docs:/home/rudi/devel/util-linux/build/libmount/docs/xml:/home/rudi/devel/util-linux/build/../libmount/docs" 
\
                 \
                libmount \
                /home/rudi/devel/util-linux/build/../libmount/docs/libmount-docs.xml
/home/rudi/devel/util-linux/build/libmount/docs/version.xml:1: parser 
error : Start tag expected, '<' not found
2.24.900-7afc22
^
/home/rudi/devel/util-linux/build/../libmount/docs/libmount-docs.xml:59: 
element include: XInclude error : could not 
load /home/rudi/devel/util-linux/libmount/docs/xml/version.xml, and no 
fallback was found
make[2]: *** [html-build.stamp] Error 6
make[2]: Leaving directory 
`/home/rudi/devel/util-linux/build/libmount/docs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/rudi/devel/util-linux/build'
make: *** [all] Error 2


BTW maybe we could consider about adding these docs to dist tarball to 
not bother users with gtk-doc deps? (But I know then it's even more 
complicated to rebuild cleanly in builddir when the existing one in 
dist srcdir is outdated.)

cu,
Rudi

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-01 22:56 build-sys: minor issues Ruediger Meier
  2014-06-02  0:33 ` Ruediger Meier
@ 2014-06-02  9:42 ` Karel Zak
  2014-06-02 10:33   ` Ruediger Meier
  2014-06-03 13:09 ` Ruediger Meier
  2 siblings, 1 reply; 14+ messages in thread
From: Karel Zak @ 2014-06-02  9:42 UTC (permalink / raw)
  To: Ruediger Meier; +Cc: util-linux

On Mon, Jun 02, 2014 at 12:56:16AM +0200, Ruediger Meier wrote:
> 1. ./configure --enable-all-programs
> also triggers --enable-deprecated-last. Would be nice to exclude this 
> deprecated stuff somehow.

 fixed, thanks for your report.

> 2. make dist
> changes files in source dir, which makes the git clone dirty. Would be 
> nice if we could avoid this somehow.

 What files? I see po/ stuff modification and it's more political
 issue than technical. The reason is that I update po/ only once
 before release (to avoid many many huge commits with irrelevant
 changes).

    Karel


-- 
 Karel Zak  <kzak@redhat.com>
 http://karelzak.blogspot.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-02  0:33 ` Ruediger Meier
@ 2014-06-02  9:48   ` Karel Zak
  2014-06-02 11:05     ` Ruediger Meier
  2014-06-03 10:42   ` Karel Zak
  1 sibling, 1 reply; 14+ messages in thread
From: Karel Zak @ 2014-06-02  9:48 UTC (permalink / raw)
  To: Ruediger Meier; +Cc: util-linux

On Mon, Jun 02, 2014 at 02:33:38AM +0200, Ruediger Meier wrote:
> On Monday 02 June 2014, Ruediger Meier wrote:
> > I have two minor issues with our build-sys:
> 
> Another issue:
> 
> 3. --enable-gtk-doc does not work in out-of-tree build:

 I'll try to fix it (it worked time ago if I good remember). Frankly,
 the way how is gtk-doc designed to work with autotools sucks...

 BTW, our TODO:

   * use something better than gtk-doc for libmount and libblkid (doxyden?)

  ;-)

> BTW maybe we could consider about adding these docs to dist tarball to 
> not bother users with gtk-doc deps? (But I know then it's even more 

 Hmm... not sure, I guess the number of people who care about libs
 docs is pretty small and for mainstream distros is the dependence on
 gtk-doc no issue.

> complicated to rebuild cleanly in builddir when the existing one in 
> dist srcdir is outdated.)

    Karel


-- 
 Karel Zak  <kzak@redhat.com>
 http://karelzak.blogspot.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-02  9:42 ` Karel Zak
@ 2014-06-02 10:33   ` Ruediger Meier
  2014-06-03 11:27     ` Karel Zak
  0 siblings, 1 reply; 14+ messages in thread
From: Ruediger Meier @ 2014-06-02 10:33 UTC (permalink / raw)
  To: Karel Zak; +Cc: util-linux

On Monday 02 June 2014, Karel Zak wrote:
> On Mon, Jun 02, 2014 at 12:56:16AM +0200, Ruediger Meier wrote:
> > 1. ./configure --enable-all-programs
> > also triggers --enable-deprecated-last. Would be nice to exclude
> > this deprecated stuff somehow.
>
>  fixed, thanks for your report.

Thanks! All the recent build-sys tweaks were really helpful!

> > 2. make dist
> > changes files in source dir, which makes the git clone dirty. Would
> > be nice if we could avoid this somehow.
>
>  What files? I see po/ stuff modification and it's more political
>  issue than technical. The reason is that I update po/ only once
>  before release (to avoid many many huge commits with irrelevant
>  changes).

I have to admit that I'm not really familar with this translations.
But IMO generally it's not nice that "make dist" pollutes the git
clone.

I see 3 possibilities how to avoid this.

1. Don't track these po files in git at all. Always generate in
   builddir. Put them into dist only.
2. Don't update them with "make dist". Add new target "make update-po".
3. Keep them in srcdir but update to builddir. Add a script
   "commit-po-updates" to manulally move them from builddir to
   srcdir from time to time. 

My use case is a cronjob like this
  git pull origin
  ./autogen.sh && ./configure && make dist
  "push-tarball-to-build-host" 

Because of the current git pollution I have to do always "git 
reset --hard" before "autogen.sh" to not have "-dirty" suffixed version 
numbers.

cu,
Rudi 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-02  9:48   ` Karel Zak
@ 2014-06-02 11:05     ` Ruediger Meier
  0 siblings, 0 replies; 14+ messages in thread
From: Ruediger Meier @ 2014-06-02 11:05 UTC (permalink / raw)
  To: Karel Zak; +Cc: util-linux

On Monday 02 June 2014, Karel Zak wrote:
> On Mon, Jun 02, 2014 at 02:33:38AM +0200, Ruediger Meier wrote:
> > On Monday 02 June 2014, Ruediger Meier wrote:
> > > I have two minor issues with our build-sys:
> >
> > Another issue:
> >
> > 3. --enable-gtk-doc does not work in out-of-tree build:
>
>  I'll try to fix it (it worked time ago if I good remember). Frankly,
>  the way how is gtk-doc designed to work with autotools sucks...

Thanks.

>  BTW, our TODO:
>
>    * use something better than gtk-doc for libmount and libblkid
> (doxyden?)
>
>   ;-)

So maybe we could re-think the point below when doxygen epoch will come.

> > BTW maybe we could consider about adding these docs to dist tarball
> > to not bother users with gtk-doc deps?
>
>  Hmm... not sure, I guess the number of people who care about libs
>  docs is pretty small and for mainstream distros is the dependence on
>  gtk-doc no issue.

I know it's debatable. Just in ideal world the lib interfaces (and docs) 
are fixed for a certain release and do not depend on build host. This 
is shown more clearly if you distribute the fixed documentations along 
with the sources. It's like projects with help2man-man pages often 
distribute these man pages too.

Another minor advantage is that users would be able to compare the docs 
across serveral util-linux versions without need to build all the docs. 
(Might be difficult if an old util-linux build-sys does not work 
anymore on recent host).

cu,
Rudi

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-02  0:33 ` Ruediger Meier
  2014-06-02  9:48   ` Karel Zak
@ 2014-06-03 10:42   ` Karel Zak
  2014-06-04  9:33     ` Ruediger Meier
  1 sibling, 1 reply; 14+ messages in thread
From: Karel Zak @ 2014-06-03 10:42 UTC (permalink / raw)
  To: Ruediger Meier; +Cc: util-linux

On Mon, Jun 02, 2014 at 02:33:38AM +0200, Ruediger Meier wrote:
> On Monday 02 June 2014, Ruediger Meier wrote:
> > I have two minor issues with our build-sys:
> 
> Another issue:
> 
> 3. --enable-gtk-doc does not work in out-of-tree build:
> 
> $ mkdir build 
> $ cd build
> $ ../configure --enable-gtk-doc 
> $ make V=1
> [...]
> gtkdoc-mkhtml --path="/home/rudi/devel/util-linux/build/libmount/docs:/home/rudi/devel/util-linux/build/libmount/docs/xml:/home/rudi/devel/util-linux/build/../libmount/docs" 
> \
>                  \
>                 libmount \
>                 /home/rudi/devel/util-linux/build/../libmount/docs/libmount-docs.xml
> /home/rudi/devel/util-linux/build/libmount/docs/version.xml:1: parser 
> error : Start tag expected, '<' not found
> 2.24.900-7afc22
> ^
> /home/rudi/devel/util-linux/build/../libmount/docs/libmount-docs.xml:59: 
> element include: XInclude error : could not 
> load /home/rudi/devel/util-linux/libmount/docs/xml/version.xml, and no 
> fallback was found

 Fixed.

-- 
 Karel Zak  <kzak@redhat.com>
 http://karelzak.blogspot.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-02 10:33   ` Ruediger Meier
@ 2014-06-03 11:27     ` Karel Zak
  2014-06-03 19:46       ` Benno Schulenberg
  0 siblings, 1 reply; 14+ messages in thread
From: Karel Zak @ 2014-06-03 11:27 UTC (permalink / raw)
  To: Ruediger Meier; +Cc: util-linux

On Mon, Jun 02, 2014 at 12:33:23PM +0200, Ruediger Meier wrote:
> On Monday 02 June 2014, Karel Zak wrote:
> > On Mon, Jun 02, 2014 at 12:56:16AM +0200, Ruediger Meier wrote:
> > > 1. ./configure --enable-all-programs
> > > also triggers --enable-deprecated-last. Would be nice to exclude
> > > this deprecated stuff somehow.
> >
> >  fixed, thanks for your report.
> 
> Thanks! All the recent build-sys tweaks were really helpful!
> 
> > > 2. make dist
> > > changes files in source dir, which makes the git clone dirty. Would
> > > be nice if we could avoid this somehow.
> >
> >  What files? I see po/ stuff modification and it's more political
> >  issue than technical. The reason is that I update po/ only once
> >  before release (to avoid many many huge commits with irrelevant
> >  changes).
> 
> I have to admit that I'm not really familar with this translations.
> But IMO generally it's not nice that "make dist" pollutes the git
> clone.

 I see two issues with po/Makefile:

 * "make" generates po/*.gmo files into srcdir by

     cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) ...

 * "make dist" updates po/*.po files in srcdir by

     test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
     echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) 


 The problem is that we don't control this Makefile, it's created by 
 autopoint and maintained by gettext upstream. 
 
 Yes, it's mistake to modify $srcdir.

> I see 3 possibilities how to avoid this.
> 
> 1. Don't track these po files in git at all. Always generate in
>    builddir. Put them into dist only.

 No, I'm sure we want to have .po files in the git, it's part of the package.

> 2. Don't update them with "make dist". Add new target "make update-po".

 Well, I use "make distcheck" to generate the final release tarballs
 and it would be nice to keep it usable :-)

> 3. Keep them in srcdir but update to builddir. Add a script
>    "commit-po-updates" to manulally move them from builddir to
>    srcdir from time to time. 
> 
> My use case is a cronjob like this
>   git pull origin
>   ./autogen.sh && ./configure && make dist
>   "push-tarball-to-build-host" 
> 
> Because of the current git pollution I have to do always "git 
> reset --hard" before "autogen.sh" to not have "-dirty" suffixed version 
> numbers.

 What about to improve ./tools/git-version-gen to not use -dirty suffix when
 only po/*.po stuff is modified? 
 
 Note that git-version-gen is our script, and it just for developers,
 no problem to change it.
 
    Karel

-- 
 Karel Zak  <kzak@redhat.com>
 http://karelzak.blogspot.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-01 22:56 build-sys: minor issues Ruediger Meier
  2014-06-02  0:33 ` Ruediger Meier
  2014-06-02  9:42 ` Karel Zak
@ 2014-06-03 13:09 ` Ruediger Meier
  2014-06-04  9:26   ` Karel Zak
  2 siblings, 1 reply; 14+ messages in thread
From: Ruediger Meier @ 2014-06-03 13:09 UTC (permalink / raw)
  To: util-linux

On Monday 02 June 2014, Ruediger Meier wrote:
> I have two minor issues with our build-sys:

Another issue:

4. --disable-all-programs disables pylibmount forever

--with-python   does not turn it on again
--enable-pylibmount  does not exist

or do I miss something?

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-03 11:27     ` Karel Zak
@ 2014-06-03 19:46       ` Benno Schulenberg
  2014-06-04  8:38         ` Karel Zak
  0 siblings, 1 reply; 14+ messages in thread
From: Benno Schulenberg @ 2014-06-03 19:46 UTC (permalink / raw)
  To: Karel Zak; +Cc: Ruediger Meier, Util-Linux


On Tue, Jun 3, 2014, at 13:27, Karel Zak wrote:
> On Mon, Jun 02, 2014 at 12:33:23PM +0200, Ruediger Meier wrote:
> > 1. Don't track these po files in git at all. Always generate in
> >    builddir. Put them into dist only.
> 
>  No, I'm sure we want to have .po files in the git, it's part of the package.

Well, I think it's nice to have copies of those files in many repos around the
globe, but it's not really needed.  And thus several GNU packages (coreutils,
grep, tar) have chosen to drop the PO files from their version control.  The
files get fetched from the TP at release time.

> > 2. Don't update them with "make dist". Add new target "make update-po".
> 
>  Well, I use "make distcheck" to generate the final release tarballs
>  and it would be nice to keep it usable :-)

Easy: add another target, "make release", that does an update-po and
then distcheck.  :)

Benno

-- 
http://www.fastmail.fm - Send your email first class


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-03 19:46       ` Benno Schulenberg
@ 2014-06-04  8:38         ` Karel Zak
  0 siblings, 0 replies; 14+ messages in thread
From: Karel Zak @ 2014-06-04  8:38 UTC (permalink / raw)
  To: Benno Schulenberg; +Cc: Ruediger Meier, Util-Linux

On Tue, Jun 03, 2014 at 09:46:14PM +0200, Benno Schulenberg wrote:
> 
> On Tue, Jun 3, 2014, at 13:27, Karel Zak wrote:
> > On Mon, Jun 02, 2014 at 12:33:23PM +0200, Ruediger Meier wrote:
> > > 1. Don't track these po files in git at all. Always generate in
> > >    builddir. Put them into dist only.
> > 
> >  No, I'm sure we want to have .po files in the git, it's part of the package.
> 
> Well, I think it's nice to have copies of those files in many repos around the
> globe, but it's not really needed.  And thus several GNU packages (coreutils,
> grep, tar) have chosen to drop the PO files from their version control.  The
> files get fetched from the TP at release time.

 I don't like it, there is many situations when people create their
 private "release", run "make install" etc. -- the dependence on TP
 sucks in this case.

> > > 2. Don't update them with "make dist". Add new target "make update-po".
> > 
> >  Well, I use "make distcheck" to generate the final release tarballs
> >  and it would be nice to keep it usable :-)
> 
> Easy: add another target, "make release", that does an update-po and
> then distcheck.  :)

 I don't think it is so easy, we don't control po/Makefile, it's
 generated by gettext (autopoint) stuff and it's difficult to override
 the generated targets.
 
 It would be possible to remove "po" from automake SUBDIRS and call
 the targets by "make -C po" from our top level Makefile, but it's
 also not so easy because automake does not provide hooks or -local
 targets for all things (for example there is no dist-local) etc.


 Maybe the best way would be to maintain our po/Makemodule.am and do
 not use the autopoint junk at all. Then we can:
 
  * keeps things in $builddir
  * update po stuff when it's really necessary
  * fix the problem with MKDIR_P
  * do not depend on ugly gettext versioning
   (AM_GNU_GETTEXT_VERSION) etc.  
  * make po/ Makefile non-recursive

 ... but it's to late for v2.25.

 Frankly, all the problem all the time we have with autotools are
 problems with gettext. The autoconf, automake and libtools are just
 fine, but gettext is probably from another universe.

    Karel

-- 
 Karel Zak  <kzak@redhat.com>
 http://karelzak.blogspot.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-03 13:09 ` Ruediger Meier
@ 2014-06-04  9:26   ` Karel Zak
  2014-06-04  9:48     ` Ruediger Meier
  0 siblings, 1 reply; 14+ messages in thread
From: Karel Zak @ 2014-06-04  9:26 UTC (permalink / raw)
  To: Ruediger Meier; +Cc: util-linux

On Tue, Jun 03, 2014 at 03:09:24PM +0200, Ruediger Meier wrote:
> On Monday 02 June 2014, Ruediger Meier wrote:
> > I have two minor issues with our build-sys:
> 
> Another issue:
> 
> 4. --disable-all-programs disables pylibmount forever
> 
> --with-python   does not turn it on again
> --enable-pylibmount  does not exist

 OK, I have added --enable-pylibmount, so you have to use:

 ./configure --disable-all-programs \
             --enable-pylibmount \
             --enable-libmount \
             --enable-libblkid

 to compile the binding.


> or do I miss something?

note that we don't have --enable-* for all utils. It's probably
overkill for small utils or utils expected everywhere.

    Karel

-- 
 Karel Zak  <kzak@redhat.com>
 http://karelzak.blogspot.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-03 10:42   ` Karel Zak
@ 2014-06-04  9:33     ` Ruediger Meier
  0 siblings, 0 replies; 14+ messages in thread
From: Ruediger Meier @ 2014-06-04  9:33 UTC (permalink / raw)
  To: Karel Zak; +Cc: util-linux

On Tuesday 03 June 2014, Karel Zak wrote:
> On Mon, Jun 02, 2014 at 02:33:38AM +0200, Ruediger Meier wrote:
> >
> > Another issue:
> >
> > 3. --enable-gtk-doc does not work in out-of-tree build:
> > [...]

>
>  Fixed.

Thanks, it works.

For testing I've run it several times on travis farm from within 
distcheck. Unfortunately docs still fail randomly in 1 of 10 runs.

$ make distcheck
[...]
make[1]: Entering directory 
`/home/travis/build/rudimeier/util-linux/libblkid/docs'
make[1]: Circular scan-build.stamp <- libblkid-sections.txt dependency 
dropped.
  GEN    scan-build.stamp
[...]
Making all in libblkid/docs
make[3]: Entering directory 
`/home/travis/build/rudimeier/util-linux/util-linux-2.24.913-183e/_build/libblkid/docs'
gtk-doc: Preparing build
cp: cannot create regular file `./libblkid-sections.txt': Permission 
denied
make[3]: *** [scan-build.stamp] Error 1

Note that this "Permission denied" also happens in successful runs.

Here full logs of good and bad run:
https://s3.amazonaws.com/archive.travis-ci.org/jobs/26722236/log.txt
https://s3.amazonaws.com/archive.travis-ci.org/jobs/26722239/log.txt


Don't know whether this happens only out-of-tree or because of parallel 
build. "Permission denied" in distcheck always smells like writing to 
srcdir. Maybe you have already an idea what it could be or I would just 
add debug messages and watch it.

cu,
Rudi

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: build-sys: minor issues
  2014-06-04  9:26   ` Karel Zak
@ 2014-06-04  9:48     ` Ruediger Meier
  0 siblings, 0 replies; 14+ messages in thread
From: Ruediger Meier @ 2014-06-04  9:48 UTC (permalink / raw)
  To: Karel Zak; +Cc: util-linux

On Wednesday 04 June 2014, Karel Zak wrote:
> On Tue, Jun 03, 2014 at 03:09:24PM +0200, Ruediger Meier wrote:
> > On Monday 02 June 2014, Ruediger Meier wrote:
> > > I have two minor issues with our build-sys:
> >
> > Another issue:
> >
> > 4. --disable-all-programs disables pylibmount forever
> >
> > --with-python   does not turn it on again
> > --enable-pylibmount  does not exist
>
>  OK, I have added --enable-pylibmount, so you have to use:
>
>  ./configure --disable-all-programs \
>              --enable-pylibmount \
>              --enable-libmount \
>              --enable-libblkid
>
>  to compile the binding.

Thanks!

> > or do I miss something?
>
> note that we don't have --enable-* for all utils. It's probably
> overkill for small utils or utils expected everywhere.

Ah, I thought you've had added --enable-* more generically for 
everything lately.

But no problem in doubt there is still
$ ./configure --enable-all-programs
$ make xyz

cu,
Rudi

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-06-04  9:48 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-01 22:56 build-sys: minor issues Ruediger Meier
2014-06-02  0:33 ` Ruediger Meier
2014-06-02  9:48   ` Karel Zak
2014-06-02 11:05     ` Ruediger Meier
2014-06-03 10:42   ` Karel Zak
2014-06-04  9:33     ` Ruediger Meier
2014-06-02  9:42 ` Karel Zak
2014-06-02 10:33   ` Ruediger Meier
2014-06-03 11:27     ` Karel Zak
2014-06-03 19:46       ` Benno Schulenberg
2014-06-04  8:38         ` Karel Zak
2014-06-03 13:09 ` Ruediger Meier
2014-06-04  9:26   ` Karel Zak
2014-06-04  9:48     ` Ruediger Meier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.