[pacman-dev] [PATCH 0/5] Use more auto in autotools
The use of autotools in pacman is interesting... We commit most autotools generated files, but not configure or Makefile. One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts! Libtool upstream have known about the bug since at least 2006, so that does not look hopeful. The new approach is to have autogen.sh call autoreconf and then have it patch the ltmain.sh file. This removes a lot of crap that should be autogenerated from our git repo: 38 files changed, 83 insertions(+), 28256 deletions(-) Allan McRae (5): Remove autotools files Update gitignore files for use with autoreconf Use autoreconf in autogen.sh Patch ltmain on autoreconf Remove autotools files with autoclean.sh .gitignore | 1 + autoclean.sh | 18 +- autogen.sh | 6 +- build-aux/.gitignore | 2 + build-aux/compile | 347 -- build-aux/config.guess | 1558 ------- build-aux/config.rpath | 614 --- build-aux/config.sub | 1788 -------- build-aux/depcomp | 791 ---- build-aux/install-sh | 527 --- build-aux/ltmain-asneeded.patch | 33 + build-aux/ltmain.sh | 9672 --------------------------------------- build-aux/missing | 215 - build-aux/mkinstalldirs | 162 - configure.ac | 2 +- lib/libalpm/po/.gitignore | 10 +- lib/libalpm/po/Makefile.in.in | 444 -- m4/.gitignore | 2 + m4/gettext.m4 | 383 -- m4/gpgme.m4 | 307 -- m4/iconv.m4 | 214 - m4/intlmacosx.m4 | 51 - m4/lib-ld.m4 | 110 - m4/lib-link.m4 | 774 ---- m4/lib-prefix.m4 | 224 - m4/libtool.m4 | 7831 ------------------------------- m4/ltoptions.m4 | 369 -- m4/ltsugar.m4 | 123 - m4/ltversion.m4 | 23 - m4/lt~obsolete.m4 | 98 - m4/nls.m4 | 32 - m4/pkg.m4 | 159 - m4/po.m4 | 449 -- m4/progtest.m4 | 92 - scripts/po/.gitignore | 10 +- scripts/po/Makefile.in.in | 444 -- src/pacman/po/.gitignore | 10 +- src/pacman/po/Makefile.in.in | 444 -- 38 files changed, 83 insertions(+), 28256 deletions(-) create mode 100644 build-aux/.gitignore delete mode 100755 build-aux/compile delete mode 100755 build-aux/config.guess delete mode 100755 build-aux/config.rpath delete mode 100755 build-aux/config.sub delete mode 100755 build-aux/depcomp delete mode 100755 build-aux/install-sh create mode 100644 build-aux/ltmain-asneeded.patch delete mode 100644 build-aux/ltmain.sh delete mode 100755 build-aux/missing delete mode 100755 build-aux/mkinstalldirs delete mode 100644 lib/libalpm/po/Makefile.in.in create mode 100644 m4/.gitignore delete mode 100644 m4/gettext.m4 delete mode 100644 m4/gpgme.m4 delete mode 100644 m4/iconv.m4 delete mode 100644 m4/intlmacosx.m4 delete mode 100644 m4/lib-ld.m4 delete mode 100644 m4/lib-link.m4 delete mode 100644 m4/lib-prefix.m4 delete mode 100644 m4/libtool.m4 delete mode 100644 m4/ltoptions.m4 delete mode 100644 m4/ltsugar.m4 delete mode 100644 m4/ltversion.m4 delete mode 100644 m4/lt~obsolete.m4 delete mode 100644 m4/nls.m4 delete mode 100644 m4/pkg.m4 delete mode 100644 m4/po.m4 delete mode 100644 m4/progtest.m4 delete mode 100644 scripts/po/Makefile.in.in delete mode 100644 src/pacman/po/Makefile.in.in -- 1.8.3.1
Signed-off-by: Allan McRae <allan@archlinux.org> --- .gitignore | 1 + build-aux/.gitignore | 1 + lib/libalpm/po/.gitignore | 10 +++++++++- m4/.gitignore | 2 ++ scripts/po/.gitignore | 10 +++++++++- src/pacman/po/.gitignore | 10 +++++++++- 6 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 build-aux/.gitignore create mode 100644 m4/.gitignore diff --git a/.gitignore b/.gitignore index b2db3a0..cc28d71 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *~ *.o +ABOUT-NLS aclocal.m4 autom4te.cache config.h diff --git a/build-aux/.gitignore b/build-aux/.gitignore new file mode 100644 index 0000000..f59ec20 --- /dev/null +++ b/build-aux/.gitignore @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/lib/libalpm/po/.gitignore b/lib/libalpm/po/.gitignore index 3be83ff..8885736 100644 --- a/lib/libalpm/po/.gitignore +++ b/lib/libalpm/po/.gitignore @@ -1,4 +1,12 @@ *.gmo +boldquot.sed +en@boldquot.header +en@quot.header +insert-header.sin +Makefile.in.in +Makevars.template POTFILES -stamp-po +quot.sed +Rules-quot remove-potcdate.sed +stamp-po diff --git a/m4/.gitignore b/m4/.gitignore new file mode 100644 index 0000000..f81e620 --- /dev/null +++ b/m4/.gitignore @@ -0,0 +1,2 @@ +*.m4 +!acinclude.m4 \ No newline at end of file diff --git a/scripts/po/.gitignore b/scripts/po/.gitignore index 3be83ff..8885736 100644 --- a/scripts/po/.gitignore +++ b/scripts/po/.gitignore @@ -1,4 +1,12 @@ *.gmo +boldquot.sed +en@boldquot.header +en@quot.header +insert-header.sin +Makefile.in.in +Makevars.template POTFILES -stamp-po +quot.sed +Rules-quot remove-potcdate.sed +stamp-po diff --git a/src/pacman/po/.gitignore b/src/pacman/po/.gitignore index 3be83ff..8885736 100644 --- a/src/pacman/po/.gitignore +++ b/src/pacman/po/.gitignore @@ -1,4 +1,12 @@ *.gmo +boldquot.sed +en@boldquot.header +en@quot.header +insert-header.sin +Makefile.in.in +Makevars.template POTFILES -stamp-po +quot.sed +Rules-quot remove-potcdate.sed +stamp-po -- 1.8.3.1
Signed-off-by: Allan McRae <allan@archlinux.org> --- autogen.sh | 5 +---- configure.ac | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/autogen.sh b/autogen.sh index be50be6..c31f34f 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,6 +1,3 @@ #!/bin/sh -xu -aclocal -I m4 --install -autoheader -automake --foreign -autoconf +autoreconf -i \ No newline at end of file diff --git a/configure.ac b/configure.ac index 0908256..4e6e2a9 100644 --- a/configure.ac +++ b/configure.ac @@ -59,7 +59,7 @@ AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AC_CANONICAL_HOST -AM_INIT_AUTOMAKE([1.11]) +AM_INIT_AUTOMAKE([1.11 foreign]) AM_SILENT_RULES([yes]) LT_INIT -- 1.8.3.1
We used to carry a patched version of ltmain in our repos to fix libtools issues with -Wl,-as-needed. Now that ltmain is "generated" by autoreconf, we manually patch it afterwards. Signed-off-by: Allan McRae <allan@archlinux.org> --- autogen.sh | 3 ++- build-aux/.gitignore | 3 ++- build-aux/ltmain-asneeded.patch | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 build-aux/ltmain-asneeded.patch diff --git a/autogen.sh b/autogen.sh index c31f34f..31b0990 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,3 +1,4 @@ #!/bin/sh -xu -autoreconf -i \ No newline at end of file +autoreconf -i +(cd build-aux && patch -p0 -i ltmain-asneeded.patch) diff --git a/build-aux/.gitignore b/build-aux/.gitignore index f59ec20..3ec659c 100644 --- a/build-aux/.gitignore +++ b/build-aux/.gitignore @@ -1 +1,2 @@ -* \ No newline at end of file +* +!ltmain-asneeded.patch diff --git a/build-aux/ltmain-asneeded.patch b/build-aux/ltmain-asneeded.patch new file mode 100644 index 0000000..af5ae6b --- /dev/null +++ b/build-aux/ltmain-asneeded.patch @@ -0,0 +1,33 @@ +--- ltmain.sh.orig 2013-06-26 14:31:53.472627840 +1000 ++++ ltmain.sh 2013-06-26 14:30:56.137038936 +1000 +@@ -5800,6 +5800,14 @@ + arg=$func_stripname_result + ;; + ++ -Wl,*--as-needed*) ++ deplibs="$deplibs $wl--as-needed" ++ ;; ++ ++ -Wl,*--no-as-needed*) ++ deplibs="$deplibs $wl--no-as-needed" ++ ;; ++ + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result +@@ -6160,6 +6168,15 @@ + lib= + found=no + case $deplib in ++ -Wl,--as-needed|-Wl,--no-as-needed) ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ fi ++ continue ++ ;; + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test "$linkmode,$pass" = "prog,link"; then -- 1.8.3.1
On Wed, Jun 26, 2013 at 12:02 AM, Allan McRae <allan@archlinux.org> wrote:
We used to carry a patched version of ltmain in our repos to fix libtools issues with -Wl,-as-needed. Now that ltmain is "generated" by autoreconf, we manually patch it afterwards.
Signed-off-by: Allan McRae <allan@archlinux.org> --- autogen.sh | 3 ++- build-aux/.gitignore | 3 ++- build-aux/ltmain-asneeded.patch | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 build-aux/ltmain-asneeded.patch
I'm not super familiar with this, so hopefully this isn't too dumb of a question to ask. Even though this patch didn't go upstream, we know for a fact we can't do this some other way that is supported natively by the tools? -Dan
On 26/06/13 22:14, Dan McGee wrote:
On Wed, Jun 26, 2013 at 12:02 AM, Allan McRae <allan@archlinux.org> wrote:
We used to carry a patched version of ltmain in our repos to fix libtools issues with -Wl,-as-needed. Now that ltmain is "generated" by autoreconf, we manually patch it afterwards.
Signed-off-by: Allan McRae <allan@archlinux.org> --- autogen.sh | 3 ++- build-aux/.gitignore | 3 ++- build-aux/ltmain-asneeded.patch | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 build-aux/ltmain-asneeded.patch
I'm not super familiar with this, so hopefully this isn't too dumb of a question to ask. Even though this patch didn't go upstream, we know for a fact we can't do this some other way that is supported natively by the tools?
So... this is an old bug in libtool that has been known since 2006. [1]. Many other patch their ltmain file in a similar fashion [2], but the one here is much better as it handles concatenated LDFLAGS (e.g. -Wl,--as-needed,--sort-common). Not much has happened upstream about this... [3]. I should chase it up. Anyway, it is broken and can not be fixed without patching. This patch is from what we used to carry in git. [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347650 [2] http://maemo.gitorious.org/maemo-af/libcontentaction/blobs/master/ltmain-asn... [3] http://lists.gnu.org/archive/html/bug-libtool/2009-12/msg00038.html Allan
Signed-off-by: Allan McRae <allan@archlinux.org> --- autoclean.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/autoclean.sh b/autoclean.sh index 900f353..96b2729 100755 --- a/autoclean.sh +++ b/autoclean.sh @@ -1,15 +1,22 @@ #!/bin/sh -xu +shopt -s extglob + [ -f Makefile ] && make distclean -rm -rf autom4te.cache +rm -f ABOUT-NLS +rm -f aclocal.m4 rm -f config.h.in config.h rm -f config.status rm -f configure -rm -f stamp* -rm -f aclocal.m4 rm -f compile rm -f libtool +rm -f stamp* + +rm -rf autom4te.cache + +rm -f build-aux/!(ltmain-asneeded.patch) +rm -f m4/!(acinclude.m4) rm -f test/pacman/*.pyc rm -f doc/html/*.html @@ -17,6 +24,11 @@ rm -f doc/man3/*.3 find . \( -name 'Makefile' -o \ -name 'Makefile.in' -o \ + -path '*/po/Makefile.in.in' -o \ + -path '*/po/Makevars.template' -o \ -path '*/po/POTFILES' -o \ + -path '*/po/Rules-quot' -o \ + -path '*/po/*.sed' -o \ + -path '*/po/*.header' -o \ -path '*/po/stamp-po' -o \ -path '*/po/*.gmo' \) -exec rm -f {} + -- 1.8.3.1
On Jun 26, 2013 1:03 AM, "Allan McRae" <allan@archlinux.org> wrote:
Signed-off-by: Allan McRae <allan@archlinux.org> ---
Dumb question. Why do we need this with "make distclean" or "git clean"? Who's the intended audience here?
autoclean.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/autoclean.sh b/autoclean.sh index 900f353..96b2729 100755 --- a/autoclean.sh +++ b/autoclean.sh @@ -1,15 +1,22 @@ #!/bin/sh -xu
+shopt -s extglob + [ -f Makefile ] && make distclean
-rm -rf autom4te.cache +rm -f ABOUT-NLS +rm -f aclocal.m4 rm -f config.h.in config.h rm -f config.status rm -f configure -rm -f stamp* -rm -f aclocal.m4 rm -f compile rm -f libtool +rm -f stamp* + +rm -rf autom4te.cache + +rm -f build-aux/!(ltmain-asneeded.patch) +rm -f m4/!(acinclude.m4)
rm -f test/pacman/*.pyc rm -f doc/html/*.html @@ -17,6 +24,11 @@ rm -f doc/man3/*.3
find . \( -name 'Makefile' -o \ -name 'Makefile.in' -o \ + -path '*/po/Makefile.in.in' -o \ + -path '*/po/Makevars.template' -o \ -path '*/po/POTFILES' -o \ + -path '*/po/Rules-quot' -o \ + -path '*/po/*.sed' -o \ + -path '*/po/*.header' -o \ -path '*/po/stamp-po' -o \ -path '*/po/*.gmo' \) -exec rm -f {} + -- 1.8.3.1
On 26/06/13 22:50, Dave Reisner wrote:
On Jun 26, 2013 1:03 AM, "Allan McRae" <allan@archlinux.org> wrote:
Signed-off-by: Allan McRae <allan@archlinux.org> ---
Dumb question. Why do we need this with "make distclean" or "git clean"? Who's the intended audience here?
I guess we don't need it these days (is it a hangover from CVS days?). I am more than happy to remove it instead - or put "git clean" in it.
On Wed, Jun 26, 2013 at 8:01 AM, Allan McRae <allan@archlinux.org> wrote:
On 26/06/13 22:50, Dave Reisner wrote:
On Jun 26, 2013 1:03 AM, "Allan McRae" <allan@archlinux.org> wrote:
Signed-off-by: Allan McRae <allan@archlinux.org> ---
Dumb question. Why do we need this with "make distclean" or "git clean"? Who's the intended audience here?
I guess we don't need it these days (is it a hangover from CVS days?).
I am more than happy to remove it instead - or put "git clean" in it.
I'd say remove it completely; I for one keep all sorts of untracked files sitting around and I'd hate for some script that I didn't write to remove those. -Dan
On 26/06/13 15:01, Allan McRae wrote:
The use of autotools in pacman is interesting... We commit most autotools generated files, but not configure or Makefile. One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts! Libtool upstream have known about the bug since at least 2006, so that does not look hopeful.
The new approach is to have autogen.sh call autoreconf and then have it patch the ltmain.sh file. This removes a lot of crap that should be autogenerated from our git repo: 38 files changed, 83 insertions(+), 28256 deletions(-)
Allan McRae (5): Remove autotools files
This is too big to send: Message body is too big: 932337 bytes with a limit of 100 KB But it is purely deletions: build-aux/compile | 347 -- build-aux/config.guess | 1558 ------- build-aux/config.rpath | 614 --- build-aux/config.sub | 1788 -------- build-aux/depcomp | 791 ---- build-aux/install-sh | 527 --- build-aux/ltmain.sh | 9672 ----------------------------------------- build-aux/missing | 215 - build-aux/mkinstalldirs | 162 - lib/libalpm/po/Makefile.in.in | 444 -- m4/gettext.m4 | 383 -- m4/gpgme.m4 | 307 -- m4/iconv.m4 | 214 - m4/intlmacosx.m4 | 51 - m4/lib-ld.m4 | 110 - m4/lib-link.m4 | 774 ---- m4/lib-prefix.m4 | 224 - m4/libtool.m4 | 7831 --------------------------------- m4/ltoptions.m4 | 369 -- m4/ltsugar.m4 | 123 - m4/ltversion.m4 | 23 - m4/lt~obsolete.m4 | 98 - m4/nls.m4 | 32 - m4/pkg.m4 | 159 - m4/po.m4 | 449 -- m4/progtest.m4 | 92 - scripts/po/Makefile.in.in | 444 -- src/pacman/po/Makefile.in.in | 444 -- 28 files changed, 28245 deletions(-) delete mode 100755 build-aux/compile delete mode 100755 build-aux/config.guess delete mode 100755 build-aux/config.rpath delete mode 100755 build-aux/config.sub delete mode 100755 build-aux/depcomp delete mode 100755 build-aux/install-sh delete mode 100644 build-aux/ltmain.sh delete mode 100755 build-aux/missing delete mode 100755 build-aux/mkinstalldirs delete mode 100644 lib/libalpm/po/Makefile.in.in delete mode 100644 m4/gettext.m4 delete mode 100644 m4/gpgme.m4 delete mode 100644 m4/iconv.m4 delete mode 100644 m4/intlmacosx.m4 delete mode 100644 m4/lib-ld.m4 delete mode 100644 m4/lib-link.m4 delete mode 100644 m4/lib-prefix.m4 delete mode 100644 m4/libtool.m4 delete mode 100644 m4/ltoptions.m4 delete mode 100644 m4/ltsugar.m4 delete mode 100644 m4/ltversion.m4 delete mode 100644 m4/lt~obsolete.m4 delete mode 100644 m4/nls.m4 delete mode 100644 m4/pkg.m4 delete mode 100644 m4/po.m4 delete mode 100644 m4/progtest.m4 delete mode 100644 scripts/po/Makefile.in.in delete mode 100644 src/pacman/po/Makefile.in.in
Update gitignore files for use with autoreconf Use autoreconf in autogen.sh Patch ltmain on autoreconf Remove autotools files with autoclean.sh
.gitignore | 1 + autoclean.sh | 18 +- autogen.sh | 6 +- build-aux/.gitignore | 2 + build-aux/compile | 347 -- build-aux/config.guess | 1558 ------- build-aux/config.rpath | 614 --- build-aux/config.sub | 1788 -------- build-aux/depcomp | 791 ---- build-aux/install-sh | 527 --- build-aux/ltmain-asneeded.patch | 33 + build-aux/ltmain.sh | 9672 --------------------------------------- build-aux/missing | 215 - build-aux/mkinstalldirs | 162 - configure.ac | 2 +- lib/libalpm/po/.gitignore | 10 +- lib/libalpm/po/Makefile.in.in | 444 -- m4/.gitignore | 2 + m4/gettext.m4 | 383 -- m4/gpgme.m4 | 307 -- m4/iconv.m4 | 214 - m4/intlmacosx.m4 | 51 - m4/lib-ld.m4 | 110 - m4/lib-link.m4 | 774 ---- m4/lib-prefix.m4 | 224 - m4/libtool.m4 | 7831 ------------------------------- m4/ltoptions.m4 | 369 -- m4/ltsugar.m4 | 123 - m4/ltversion.m4 | 23 - m4/lt~obsolete.m4 | 98 - m4/nls.m4 | 32 - m4/pkg.m4 | 159 - m4/po.m4 | 449 -- m4/progtest.m4 | 92 - scripts/po/.gitignore | 10 +- scripts/po/Makefile.in.in | 444 -- src/pacman/po/.gitignore | 10 +- src/pacman/po/Makefile.in.in | 444 -- 38 files changed, 83 insertions(+), 28256 deletions(-) create mode 100644 build-aux/.gitignore delete mode 100755 build-aux/compile delete mode 100755 build-aux/config.guess delete mode 100755 build-aux/config.rpath delete mode 100755 build-aux/config.sub delete mode 100755 build-aux/depcomp delete mode 100755 build-aux/install-sh create mode 100644 build-aux/ltmain-asneeded.patch delete mode 100644 build-aux/ltmain.sh delete mode 100755 build-aux/missing delete mode 100755 build-aux/mkinstalldirs delete mode 100644 lib/libalpm/po/Makefile.in.in create mode 100644 m4/.gitignore delete mode 100644 m4/gettext.m4 delete mode 100644 m4/gpgme.m4 delete mode 100644 m4/iconv.m4 delete mode 100644 m4/intlmacosx.m4 delete mode 100644 m4/lib-ld.m4 delete mode 100644 m4/lib-link.m4 delete mode 100644 m4/lib-prefix.m4 delete mode 100644 m4/libtool.m4 delete mode 100644 m4/ltoptions.m4 delete mode 100644 m4/ltsugar.m4 delete mode 100644 m4/ltversion.m4 delete mode 100644 m4/lt~obsolete.m4 delete mode 100644 m4/nls.m4 delete mode 100644 m4/pkg.m4 delete mode 100644 m4/po.m4 delete mode 100644 m4/progtest.m4 delete mode 100644 scripts/po/Makefile.in.in delete mode 100644 src/pacman/po/Makefile.in.in
On Wed, Jun 26, 2013 at 12:08 AM, Allan McRae <allan@archlinux.org> wrote:
On 26/06/13 15:01, Allan McRae wrote:
The use of autotools in pacman is interesting... We commit most autotools generated files, but not configure or Makefile. One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts! Libtool upstream have known about the bug since at least 2006, so that does not look hopeful.
The new approach is to have autogen.sh call autoreconf and then have it patch the ltmain.sh file. This removes a lot of crap that should be autogenerated from our git repo: 38 files changed, 83 insertions(+), 28256 deletions(-)
Allan McRae (5): Remove autotools files
This is too big to send: Message body is too big: 932337 bytes with a limit of 100 KB
But it is purely deletions:
build-aux/compile | 347 -- build-aux/config.guess | 1558 ------- build-aux/config.rpath | 614 --- build-aux/config.sub | 1788 -------- build-aux/depcomp | 791 ---- build-aux/install-sh | 527 --- build-aux/ltmain.sh | 9672 ----------------------------------------- build-aux/missing | 215 - build-aux/mkinstalldirs | 162 - lib/libalpm/po/Makefile.in.in | 444 -- m4/gettext.m4 | 383 -- m4/gpgme.m4 | 307 -- m4/iconv.m4 | 214 - m4/intlmacosx.m4 | 51 - m4/lib-ld.m4 | 110 - m4/lib-link.m4 | 774 ---- m4/lib-prefix.m4 | 224 - m4/libtool.m4 | 7831 --------------------------------- m4/ltoptions.m4 | 369 -- m4/ltsugar.m4 | 123 - m4/ltversion.m4 | 23 - m4/lt~obsolete.m4 | 98 - m4/nls.m4 | 32 - m4/pkg.m4 | 159 - m4/po.m4 | 449 -- m4/progtest.m4 | 92 - scripts/po/Makefile.in.in | 444 -- src/pacman/po/Makefile.in.in | 444 -- 28 files changed, 28245 deletions(-) delete mode 100755 build-aux/compile delete mode 100755 build-aux/config.guess delete mode 100755 build-aux/config.rpath delete mode 100755 build-aux/config.sub delete mode 100755 build-aux/depcomp delete mode 100755 build-aux/install-sh delete mode 100644 build-aux/ltmain.sh delete mode 100755 build-aux/missing delete mode 100755 build-aux/mkinstalldirs delete mode 100644 lib/libalpm/po/Makefile.in.in delete mode 100644 m4/gettext.m4 delete mode 100644 m4/gpgme.m4 delete mode 100644 m4/iconv.m4 delete mode 100644 m4/intlmacosx.m4 delete mode 100644 m4/lib-ld.m4 delete mode 100644 m4/lib-link.m4 delete mode 100644 m4/lib-prefix.m4 delete mode 100644 m4/libtool.m4 delete mode 100644 m4/ltoptions.m4 delete mode 100644 m4/ltsugar.m4 delete mode 100644 m4/ltversion.m4 delete mode 100644 m4/lt~obsolete.m4 delete mode 100644 m4/nls.m4 delete mode 100644 m4/pkg.m4 delete mode 100644 m4/po.m4 delete mode 100644 m4/progtest.m4 delete mode 100644 scripts/po/Makefile.in.in delete mode 100644 src/pacman/po/Makefile.in.in
Update gitignore files for use with autoreconf Use autoreconf in autogen.sh Patch ltmain on autoreconf Remove autotools files with autoclean.sh
.gitignore | 1 + autoclean.sh | 18 +- autogen.sh | 6 +- build-aux/.gitignore | 2 + build-aux/compile | 347 -- build-aux/config.guess | 1558 ------- build-aux/config.rpath | 614 --- build-aux/config.sub | 1788 -------- build-aux/depcomp | 791 ---- build-aux/install-sh | 527 --- build-aux/ltmain-asneeded.patch | 33 + build-aux/ltmain.sh | 9672 --------------------------------------- build-aux/missing | 215 - build-aux/mkinstalldirs | 162 - configure.ac | 2 +- lib/libalpm/po/.gitignore | 10 +- lib/libalpm/po/Makefile.in.in | 444 -- m4/.gitignore | 2 + m4/gettext.m4 | 383 -- m4/gpgme.m4 | 307 -- m4/iconv.m4 | 214 - m4/intlmacosx.m4 | 51 - m4/lib-ld.m4 | 110 - m4/lib-link.m4 | 774 ---- m4/lib-prefix.m4 | 224 - m4/libtool.m4 | 7831 ------------------------------- m4/ltoptions.m4 | 369 -- m4/ltsugar.m4 | 123 - m4/ltversion.m4 | 23 - m4/lt~obsolete.m4 | 98 - m4/nls.m4 | 32 - m4/pkg.m4 | 159 - m4/po.m4 | 449 -- m4/progtest.m4 | 92 - scripts/po/.gitignore | 10 +- scripts/po/Makefile.in.in | 444 -- src/pacman/po/.gitignore | 10 +- src/pacman/po/Makefile.in.in | 444 -- 38 files changed, 83 insertions(+), 28256 deletions(-) create mode 100644 build-aux/.gitignore delete mode 100755 build-aux/compile delete mode 100755 build-aux/config.guess delete mode 100755 build-aux/config.rpath delete mode 100755 build-aux/config.sub delete mode 100755 build-aux/depcomp delete mode 100755 build-aux/install-sh create mode 100644 build-aux/ltmain-asneeded.patch delete mode 100644 build-aux/ltmain.sh delete mode 100755 build-aux/missing delete mode 100755 build-aux/mkinstalldirs delete mode 100644 lib/libalpm/po/Makefile.in.in create mode 100644 m4/.gitignore delete mode 100644 m4/gettext.m4 delete mode 100644 m4/gpgme.m4 delete mode 100644 m4/iconv.m4 delete mode 100644 m4/intlmacosx.m4 delete mode 100644 m4/lib-ld.m4 delete mode 100644 m4/lib-link.m4 delete mode 100644 m4/lib-prefix.m4 delete mode 100644 m4/libtool.m4 delete mode 100644 m4/ltoptions.m4 delete mode 100644 m4/ltsugar.m4 delete mode 100644 m4/ltversion.m4 delete mode 100644 m4/lt~obsolete.m4 delete mode 100644 m4/nls.m4 delete mode 100644 m4/pkg.m4 delete mode 100644 m4/po.m4 delete mode 100644 m4/progtest.m4 delete mode 100644 scripts/po/Makefile.in.in delete mode 100644 src/pacman/po/Makefile.in.in
From man git format-patch, so it fits under the limits next time, you might want to send it with this:
-D, --irreversible-delete Omit the preimage for deletes, i.e. print only the header but not the diff between the preimage and /dev/null. The resulting patch is not meant to be applied with patch nor git apply; this is solely for people who want to just concentrate on reviewing the text after the change. In addition, the output obviously lack enough information to apply such a patch in reverse, even manually, hence the name of the option. When used together with -B, omit also the preimage in the deletion part of a delete/create pair.
Am 26.06.2013 07:01, schrieb Allan McRae:
One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts!
So, you are patching ltmain.sh in pacman, because you refused to patch libtool in Arch to work properly with Arch? https://www.archlinux.org/packages/core/x86_64/libtool/ -> Maintainer
On 26/06/13 22:47, Thomas Bächler wrote:
Am 26.06.2013 07:01, schrieb Allan McRae:
One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts!
So, you are patching ltmain.sh in pacman, because you refused to patch libtool in Arch to work properly with Arch?
https://www.archlinux.org/packages/core/x86_64/libtool/ -> Maintainer
Yes - one project I am upstream in, the other I am not.
Am 26.06.2013 15:02, schrieb Allan McRae:
On 26/06/13 22:47, Thomas Bächler wrote:
Am 26.06.2013 07:01, schrieb Allan McRae:
One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts!
So, you are patching ltmain.sh in pacman, because you refused to patch libtool in Arch to work properly with Arch?
https://www.archlinux.org/packages/core/x86_64/libtool/ -> Maintainer
Yes - one project I am upstream in, the other I am not.
You complained above that the Arch Linux package maintainer for libtool refused to fix it in Arch. Since you are the package maintainer, and this is a global problem for Arch, why don't you fix it there? Is it really a better choice to fix every package instead of just patching libtool?
On 26/06/13 23:14, Thomas Bächler wrote:
Am 26.06.2013 15:02, schrieb Allan McRae:
On 26/06/13 22:47, Thomas Bächler wrote:
Am 26.06.2013 07:01, schrieb Allan McRae:
One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts!
So, you are patching ltmain.sh in pacman, because you refused to patch libtool in Arch to work properly with Arch?
https://www.archlinux.org/packages/core/x86_64/libtool/ -> Maintainer
Yes - one project I am upstream in, the other I am not.
You complained above that the Arch Linux package maintainer for libtool refused to fix it in Arch. Since you are the package maintainer, and this is a global problem for Arch, why don't you fix it there? Is it really a better choice to fix every package instead of just patching libtool?
There might have been an element of humour intended in my complaint about the Arch package maintainer... Anyway, I refuse to use any (non-trivial) patch that has not been accepted by upstream in an Arch package. Especially given such patches have been floating around for 8 years. However, I consider overlinking in pacman to be critical as it makes soname bumps much more prone to breakage. Given I am upstream here, I can make the decision to include such a patch. Allan
On Wed, Jun 26, 2013 at 7:47 AM, Thomas Bächler <thomas@archlinux.org> wrote:
Am 26.06.2013 07:01, schrieb Allan McRae:
One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts!
So, you are patching ltmain.sh in pacman, because you refused to patch libtool in Arch to work properly with Arch?
https://www.archlinux.org/packages/core/x86_64/libtool/ -> Maintainer
Pacman builds just fine on non-Arch platforms, so this is only partially in scope in that discussion. -Dan
On 26/06/13 15:01, Allan McRae wrote:
The use of autotools in pacman is interesting... We commit most autotools generated files, but not configure or Makefile. One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts! Libtool upstream have known about the bug since at least 2006, so that does not look hopeful.
The new approach is to have autogen.sh call autoreconf and then have it patch the ltmain.sh file. This removes a lot of crap that should be autogenerated from our git repo: 38 files changed, 83 insertions(+), 28256 deletions(-)
Has anyone already got a VM that could do some more testing of this for me? Perhaps with a VM that does not have gpgme? Maybe curl too? Thanks, Allan
On 05/07/13 14:47, Allan McRae wrote:
On 26/06/13 15:01, Allan McRae wrote:
The use of autotools in pacman is interesting... We commit most autotools generated files, but not configure or Makefile. One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts! Libtool upstream have known about the bug since at least 2006, so that does not look hopeful.
The new approach is to have autogen.sh call autoreconf and then have it patch the ltmain.sh file. This removes a lot of crap that should be autogenerated from our git repo: 38 files changed, 83 insertions(+), 28256 deletions(-)
Has anyone already got a VM that could do some more testing of this for me? Perhaps with a VM that does not have gpgme? Maybe curl too?
I have tested this out. The two situations I tested: 1) No curl 2) No gpgme #1 worked as expected. With #2, autoreconf does not copy (the non-existent) gpgme.m4 file with really nonsensical errors: configure.ac:178: error: possibly undefined macro: AS_IF (and other similar) So unless anyone has any idea, it looks like we still need to include gpgme.m4 in our git. I have also added a "-N" to the patch line so running ./autogen.sh multiple times does not case errors. Allan
On Wed, Jul 10, 2013 at 10:40:14PM +1000, Allan McRae wrote:
On 05/07/13 14:47, Allan McRae wrote:
On 26/06/13 15:01, Allan McRae wrote:
The use of autotools in pacman is interesting... We commit most autotools generated files, but not configure or Makefile. One reason for this is that we needed to patch ltmain.sh to properly handle -Wl,-as-needed, because the Arch package maintainer refused to do so unless upstream accepts! Libtool upstream have known about the bug since at least 2006, so that does not look hopeful.
The new approach is to have autogen.sh call autoreconf and then have it patch the ltmain.sh file. This removes a lot of crap that should be autogenerated from our git repo: 38 files changed, 83 insertions(+), 28256 deletions(-)
Has anyone already got a VM that could do some more testing of this for me? Perhaps with a VM that does not have gpgme? Maybe curl too?
I have tested this out.
The two situations I tested: 1) No curl 2) No gpgme
#1 worked as expected. With #2, autoreconf does not copy (the non-existent) gpgme.m4 file with really nonsensical errors:
configure.ac:178: error: possibly undefined macro: AS_IF (and other similar)
So unless anyone has any idea, it looks like we still need to include gpgme.m4 in our git.
This is fine. You can't rely on target build systems having the .m4 files you need for defining the tests, which is why using pkg-config is always a better option, if available (one .m4 to rule them all).
I have also added a "-N" to the patch line so running ./autogen.sh multiple times does not case errors.
Allan
participants (4)
-
Allan McRae
-
Dan McGee
-
Dave Reisner
-
Thomas Bächler