threads / discuss / 17380

git 1.6.1 on AIX 5.3

Subject: git 1.6.1 on AIX 5.3

## tl;dr

12 messages between Jan 26, 2009 and Jan 28, 2009.

replies: 11people: 4as markdown or json

Perry Smith· Jan 26, 2009, 20:02 UTC · lore

I tried building git 1.6.1 on AIX 5.3 as an "out of tree" build and it does not seem to be set up to do out of tree builds. If that is not true, please let me know.

The install process wants to call install with a -d option. AIX has two install programs but they are pretty old -- neither takes a -d option.

Is there a GNU install program I can get? I've not been able to locate one.

The curious thing is I installed git 1.5.6.4 on a similar AIX system a few months ago and succeeded.

Last -- just so I know for future reference, is this list a 'text only email' list?

Thank you for your help, Perry Ease Software, Inc. ( http://www.easesoftware.com )

Low cost SATA Disk Systems for IBMs p5, pSeries, and RS/6000 AIX systems
Jeff King· Jan 26, 2009, 21:00 UTC · re: Perry Smith · lore

Re: git 1.6.1 on AIX 5.3

[cc-ing Mike Ralphson, our local AIX expert]
On Mon, Jan 26, 2009 at 02:02:15PM -0600, Perry Smith wrote:
Show 9 quoted lines
> I tried building git 1.6.1 on AIX 5.3 as an "out of tree" build and it  
> does not seem to be set up to do out of tree builds.  If that is not  
> true, please let me know.
>
> The install process wants to call install with a -d option.  AIX has two 
> install programs but they are pretty old -- neither takes a -d option.
>
> Is there a GNU install program I can get?  I've not been able to locate 
> one.
It's in GNU coreutils:
  http://www.gnu.org/software/coreutils/

I don't know what Mike uses to install on AIX; you can see his config setup here:

  http://repo.or.cz/w/git/gitbuild.git?a=tree;f=mr/aix;hb=platform
but I don't see any override of install.
> Last -- just so I know for future reference, is this list a 'text only  
> email' list?
If you mean "no html", then yes, it is absolutely text only.
-Peff
Mike Ralphson· Jan 26, 2009, 22:32 UTC · re: Jeff King · lore

Re: git 1.6.1 on AIX 5.3

2009/1/26 Jeff King <peff@peff.net>:
> [cc-ing Mike Ralphson, our local AIX expert]
Bless you!
Show 22 quoted lines
> On Mon, Jan 26, 2009 at 02:02:15PM -0600, Perry Smith wrote:
>
>> I tried building git 1.6.1 on AIX 5.3 as an "out of tree" build and it
>> does not seem to be set up to do out of tree builds.  If that is not
>> true, please let me know.
>>
>> The install process wants to call install with a -d option.  AIX has two
>> install programs but they are pretty old -- neither takes a -d option.
>>
>> Is there a GNU install program I can get?  I've not been able to locate
>> one.
>
> It's in GNU coreutils:
>
>  http://www.gnu.org/software/coreutils/
>
> I don't know what Mike uses to install on AIX; you can see his config
> setup here:
>
>  http://repo.or.cz/w/git/gitbuild.git?a=tree;f=mr/aix;hb=platform
>
> but I don't see any override of install.

I've got the AIX Toolbox for Linux applications[1] installed and ahead of /bin and /usr/bin on my PATH. Beware that some of these don't function as well as the stock AIX utilities and should normally be removed. I've posted about this on what is ostensibly a blog but which is really just a post-it note I'm less likely to lose[2].

Failing that, many programs which are primarily configured using autoconf will ship with an install shell script which you can co-opt, some apache stuff does too[3].

Any other questions, don't hesitate to ask.
Mike
[1] http://www-03.ibm.com/systems/power/software/aix/linux/index.html
[2] http://mermade.blogspot.com/2008/04/aix-toolbox.html
[3] http://svn.apache.org/repos/asf/tcl/websh/trunk/src/unix/install-sh
Perry Smith· Jan 26, 2009, 22:57 UTC · re: Mike Ralphson · lore

Re: git 1.6.1 on AIX 5.3

On Jan 26, 2009, at 4:32 PM, Mike Ralphson wrote:
Show 52 quoted lines
> 2009/1/26 Jeff King <peff@peff.net>:
>> [cc-ing Mike Ralphson, our local AIX expert]
>
> Bless you!
>
>> On Mon, Jan 26, 2009 at 02:02:15PM -0600, Perry Smith wrote:
>>
>>> I tried building git 1.6.1 on AIX 5.3 as an "out of tree" build  
>>> and it
>>> does not seem to be set up to do out of tree builds.  If that is not
>>> true, please let me know.
>>>
>>> The install process wants to call install with a -d option.  AIX  
>>> has two
>>> install programs but they are pretty old -- neither takes a -d  
>>> option.
>>>
>>> Is there a GNU install program I can get?  I've not been able to  
>>> locate
>>> one.
>>
>> It's in GNU coreutils:
>>
>> http://www.gnu.org/software/coreutils/
>>
>> I don't know what Mike uses to install on AIX; you can see his config
>> setup here:
>>
>> http://repo.or.cz/w/git/gitbuild.git?a=tree;f=mr/aix;hb=platform
>>
>> but I don't see any override of install.
>
> I've got the AIX Toolbox for Linux applications[1] installed and ahead
> of /bin and /usr/bin on my PATH. Beware that some of these don't
> function as well as the stock AIX utilities and should normally be
> removed. I've posted about this on what is ostensibly a blog but which
> is really just a post-it note I'm less likely to lose[2].
>
> Failing that, many programs which are primarily configured using
> autoconf will ship with an install shell script which you can co-opt,
> some apache stuff does too[3].
>
> Any other questions, don't hesitate to ask.
>
> Mike
>
> [1] http://www-03.ibm.com/systems/power/software/aix/linux/index.html
>
> [2] http://mermade.blogspot.com/2008/04/aix-toolbox.html
>
> [3] http://svn.apache.org/repos/asf/tcl/websh/trunk/src/unix/install- 
> sh

Thanks guys. I picked up coreutils version 7. I didn't install them but just moved ginstall over to /usr/local/bin.

A few other comments: I had to add in the --without-tcltk flag. I don't have tcl installed but the config did not autodetect that it was not present.

I can't tell if make test is happy or not. The output looks like its happy but the exit code is 2.

Below is my "configure" script if anyone is interested.
#!/usr/bin/env bash

export CONFIG_SHELL=/usr/local/bin/bash export LDFLAGS='-L/usr/local/lib -L/usr/local/ssl/lib' export CFLAGS='-I/usr/local/include -I/usr/local/ssl/include' export CC=gcc echo CONFIG_SHELL set to ${CONFIG_SHELL}

${CONFIG_SHELL} ../../src/git-1.6.1/configure --without-tcltk

# # Note that to install you need to do: # make INSTALL=ginstall install # to use GNU's install program

Jeff King· Jan 27, 2009, 03:52 UTC · re: Perry Smith · lore

Re: git 1.6.1 on AIX 5.3

On Mon, Jan 26, 2009 at 04:57:16PM -0600, Perry Smith wrote:
> A few other comments:  I had to add in the --without-tcltk flag.  I
> don't have tcl installed but the config did not autodetect that it was
> not present.

Hmm. It looks like we respect --with[out]-tcltk, and without it we always say "just use wish from the PATH" without detecting whether it actually exists:

    # No Tcl/Tk switches given. Do not check for Tcl/Tk, use bare
    # 'wish'.
    TCLTK_PATH=wish
    AC_SUBST(TCLTK_PATH)
I'm sure the fix would be something along the lines of
    if which wish; then
      TCLTK_PATH=wish
    else
      NO_TCLTK=yes
    fi

but I know for fact that is not portable and that there must be some special autoconf way of doing the same thing.

> I can't tell if make test is happy or not.  The output looks like its
> happy but the exit code is 2.

That doesn't sound very happy. You should see either a "command failed" error from make, or some results like:

   '/bin/sh' ./aggregate-results.sh test-results/t*-*
   fixed   1
   success 4026
   failed  0
   broken  3
   total   4030

where "broken" is OK (it is a test that is marked as "we know this is broken currently, but ideally it would be fixed in the future") but "failed" is a problem.

But I believe unless you are using "make -k", that it won't even aggregate the results if something fails, and you should just see make complaining about the failed test script.

-Peff
Mike Ralphson· Jan 27, 2009, 10:10 UTC · re: Perry Smith · lore

Re: git 1.6.1 on AIX 5.3

2009/1/26 Perry Smith <pedzsan@gmail.com>:
Show 5 quoted lines
> Thanks guys.  I picked up coreutils version 7.   I didn't
> install them but just moved ginstall over to /usr/local/bin.
>
> A few other comments:  I had to add in the --without-tcltk flag.  I don't
> have tcl installed but the config did not autodetect that it was not present.

Yup, I usually build with NO_TCLTK=YesPlease in my config.mak, which you can see from the link Peff posted.

When you said 'out of tree builds' I thought you meant using the AIX defaults in the Makefile without running ./configure, but it seems not, you meant is a clone of the tree buildable by itself or are only release snapshots buildable. Sorry.

./configure is (deliberately) a second-class citizen in the world of git, and may still get you a slightly suboptimal build compared with the defaults on platforms such as AIX... e.g. it doesn't test for performance-related switches such as INTERNAL_QSORT. If you have run configure, there's some file you need to blow away to get back to a non-autoconf world... is it config.mak.autogen?

Despite that, your problem with --without-tcltk falling back to wish, but not falling back if that isn't installed does look like something we should fix, as per Peff's mail.

Show 19 quoted lines
> I can't tell if make test is happy or not.  The output looks like its happy
> but the exit code is 2.
>
> Below is my "configure" script if anyone is interested.
>
> #!/usr/bin/env bash
>
> export CONFIG_SHELL=/usr/local/bin/bash
> export LDFLAGS='-L/usr/local/lib -L/usr/local/ssl/lib'
> export CFLAGS='-I/usr/local/include -I/usr/local/ssl/include'
> export CC=gcc
> echo CONFIG_SHELL set to ${CONFIG_SHELL}
>
> ${CONFIG_SHELL} ../../src/git-1.6.1/configure --without-tcltk
>
> #
> # Note that to install you need to do:
> # make INSTALL=ginstall install
> # to use GNU's install program

I build with SHELL_PATH={path}/bash as well. If I don't, the test suite exits after t0000-basic.sh with an unexpected error despite passing all the tests.

gmake -C t/ all
gmake[1]: Entering directory `/usr/local/src/gitbuild/t'
rm -f -r test-results
gmake aggregate-results-and-cleanup
gmake[2]: Entering directory `/usr/local/src/gitbuild/t'
*** t0000-basic.sh ***
* passed all remaining 40 test(s)
FATAL: Unexpected exit with code 0
gmake[2]: *** [t0000-basic.sh] Error 1
gmake[2]: Leaving directory `/usr/local/src/gitbuild/t'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/usr/local/src/gitbuild/t'
gmake: *** [test] Error 2
Is that what you're seeing? There's many more test scripts than that 8-)

With GIT_SKIP_TESTS='t3900 t3901 t5100.[12] t8005' (to omit some cases not handled by the version of iconv I have access to on all the AIX boxes I deploy to) the test suit runs to completion on AIX 5.3 for me.

BTW Are you running AIX's make or GNU make?
Mike
Perry Smith· Jan 28, 2009, 01:35 UTC · re: Mike Ralphson · lore

Re: git 1.6.1 on AIX 5.3

On Jan 27, 2009, at 4:10 AM, Mike Ralphson wrote:
Show 16 quoted lines
> 2009/1/26 Perry Smith <pedzsan@gmail.com>:
>> Thanks guys.  I picked up coreutils version 7.   I didn't
>> install them but just moved ginstall over to /usr/local/bin.
>>
>> A few other comments:  I had to add in the --without-tcltk flag.  I  
>> don't
>> have tcl installed but the config did not autodetect that it was  
>> not present.
>
> Yup, I usually build with NO_TCLTK=YesPlease in my config.mak, which
> you can see from the link Peff posted.
>
> When you said 'out of tree builds' I thought you meant using the AIX
> defaults in the Makefile without running ./configure, but it seems
> not, you meant is a clone of the tree buildable by itself or are only
> release snapshots buildable. Sorry.
Sorry... I thought "out of tree" was a universal term.

Just to be sure we are on the same page. My directory structure has a top/src/git-1.6.1 and top/build/git.1.6.1. The src/git-1.6.1 is the tar ball. The build/git-1.6.1 starts out empty. I cd into it and then do: ../../src/git-1.6.1/configure <options> After this completes, you can do "make".

About 90% of the open source configure / autoconf code out there can do this with. The other 10% you can not. I like it because when things die, its easier to grep around the source tree and I blow away the build directory and start back over and I know that I'm starting fresh.

Show 58 quoted lines
>
>
> ./configure is (deliberately) a second-class citizen in the world of
> git, and may still get you a slightly suboptimal build compared with
> the defaults on platforms such as AIX... e.g. it doesn't test for
> performance-related switches such as INTERNAL_QSORT. If you have run
> configure, there's some file you need to blow away to get back to a
> non-autoconf world... is it config.mak.autogen?
>
> Despite that, your problem with --without-tcltk falling back to wish,
> but not falling back if that isn't installed does look like something
> we should fix, as per Peff's mail.
>
>> I can't tell if make test is happy or not.  The output looks like  
>> its happy
>> but the exit code is 2.
>>
>> Below is my "configure" script if anyone is interested.
>>
>> #!/usr/bin/env bash
>>
>> export CONFIG_SHELL=/usr/local/bin/bash
>> export LDFLAGS='-L/usr/local/lib -L/usr/local/ssl/lib'
>> export CFLAGS='-I/usr/local/include -I/usr/local/ssl/include'
>> export CC=gcc
>> echo CONFIG_SHELL set to ${CONFIG_SHELL}
>>
>> ${CONFIG_SHELL} ../../src/git-1.6.1/configure --without-tcltk
>>
>> #
>> # Note that to install you need to do:
>> # make INSTALL=ginstall install
>> # to use GNU's install program
>
> I build with SHELL_PATH={path}/bash as well. If I don't, the test
> suite exits after t0000-basic.sh with an unexpected error despite
> passing all the tests.
>
> gmake -C t/ all
> gmake[1]: Entering directory `/usr/local/src/gitbuild/t'
> rm -f -r test-results
> gmake aggregate-results-and-cleanup
> gmake[2]: Entering directory `/usr/local/src/gitbuild/t'
> *** t0000-basic.sh ***
> * passed all remaining 40 test(s)
> FATAL: Unexpected exit with code 0
> gmake[2]: *** [t0000-basic.sh] Error 1
> gmake[2]: Leaving directory `/usr/local/src/gitbuild/t'
> gmake[1]: *** [all] Error 2
> gmake[1]: Leaving directory `/usr/local/src/gitbuild/t'
> gmake: *** [test] Error 2
>
> Is that what you're seeing? There's many more test scripts than that  
> 8-)
>
> With GIT_SKIP_TESTS='t3900 t3901 t5100.[12] t8005' (to omit some cases
> not handled by the version of iconv I have access to on all the AIX
> boxes I deploy to) the test suit runs to completion on AIX 5.3 for me.

Yea, part of my larger quest is to start a web site to provide AIX builds of open source images as installp images. I have not added iconv to the mix yet because I fear bad interactions with GNU's and AIX's. In theory, AIX's commands should use AIX's library but it would not surprise me if there are a few AIX applications that are not built properly.

>
>
> BTW Are you running AIX's make or GNU make?
yes -- GNU's make and gcc 4.3.1

I just tried setting SHELL_PATH (and exporting it) and the make test gets into the second batch and then fails two tests. I assume the GIT_SKIP_TESTS is done:

make GIT_SKIP_TESTS=....test

I get further. But now test 10 of t0001.sh fails because test_cmp can not be found.

Is that a GNU tool?  (I didn't see it in git or coreutils.)
(I'll go searching for it...)

Thank you, Perry

Jeff King· Jan 28, 2009, 07:01 UTC · re: Perry Smith · lore

Re: git 1.6.1 on AIX 5.3

On Tue, Jan 27, 2009 at 07:35:00PM -0600, Perry Smith wrote:
Show 5 quoted lines
> Just to be sure we are on the same page.  My directory structure has a
> top/src/git-1.6.1 and top/build/git.1.6.1.  The src/git-1.6.1 is the
> tar ball.  The  build/git-1.6.1 starts out empty.  I cd into it and
> then do: ../../src/git-1.6.1/configure <options>  After this
> completes, you can do "make".

I don't see how this would work without automake support, which git does not have. The configure script just generates a config.mak.autogen file, which is included by the Makefile. So you have no Makefile in your build directory.

Show 5 quoted lines
> About 90% of the open source configure / autoconf code out there can
> do this with.  The other 10% you can not.  I like it because when
> things die, its easier to grep around the source tree and I blow away
> the build directory and start back over and I know that I'm starting
> fresh.
Another way of solving the same problem:
  cd untarred-sources
  git init
  git add .
  git commit -m 'pristine sources'

Now you can use "git clean" to clean up cruft, not to mention the usual git stuff like tracking any changes you've made and submitting any patches upstream.

> I get further.  But now test 10 of t0001.sh fails because test_cmp can
> not be found.
>
> Is that a GNU tool?  (I didn't see it in git or coreutils.)

It's a shell function defined in test-lib.sh (which is sourced by all of the test scripts).

-Peff
Junio C Hamano· Jan 28, 2009, 07:37 UTC · re: Jeff King · lore

Re: git 1.6.1 on AIX 5.3

Jeff King <peff@peff.net> writes:
Show 10 quoted lines
> On Tue, Jan 27, 2009 at 07:35:00PM -0600, Perry Smith wrote:
>
>> Just to be sure we are on the same page.  My directory structure has a
>> top/src/git-1.6.1 and top/build/git.1.6.1.  The src/git-1.6.1 is the
>> tar ball.  The  build/git-1.6.1 starts out empty.  I cd into it and
>> then do: ../../src/git-1.6.1/configure <options>  After this
>> completes, you can do "make".
>
> I don't see how this would work without automake support, which git does
> not have.
... nor want to have ;-).
Jeff King· Jan 28, 2009, 07:42 UTC · re: Junio C Hamano · lore

Re: git 1.6.1 on AIX 5.3

On Tue, Jan 27, 2009 at 11:37:21PM -0800, Junio C Hamano wrote:
Show 10 quoted lines
> >> Just to be sure we are on the same page.  My directory structure has a
> >> top/src/git-1.6.1 and top/build/git.1.6.1.  The src/git-1.6.1 is the
> >> tar ball.  The  build/git-1.6.1 starts out empty.  I cd into it and
> >> then do: ../../src/git-1.6.1/configure <options>  After this
> >> completes, you can do "make".
> >
> > I don't see how this would work without automake support, which git does
> > not have.
> 
> ... nor want to have ;-).

Heh. Yes, in case there was any confusion: I don't want my statement in any way to be construed as a suggestion to support automake.

I would not be opposed to it if it somehow enhanced some users' experience without bothering people who didn't want to touch it (like the way that autoconf support is implemented). But I don't see how that would be possible.

-Peff
Perry Smith· Jan 28, 2009, 15:03 UTC · re: Jeff King · lore

Re: git 1.6.1 on AIX 5.3

On Jan 28, 2009, at 1:42 AM, Jeff King wrote:
Show 25 quoted lines
> On Tue, Jan 27, 2009 at 11:37:21PM -0800, Junio C Hamano wrote:
>
>>>> Just to be sure we are on the same page.  My directory structure  
>>>> has a
>>>> top/src/git-1.6.1 and top/build/git.1.6.1.  The src/git-1.6.1 is  
>>>> the
>>>> tar ball.  The  build/git-1.6.1 starts out empty.  I cd into it and
>>>> then do: ../../src/git-1.6.1/configure <options>  After this
>>>> completes, you can do "make".
>>>
>>> I don't see how this would work without automake support, which  
>>> git does
>>> not have.
>>
>> ... nor want to have ;-).
>
> Heh. Yes, in case there was any confusion: I don't want my statement  
> in
> any way to be construed as a suggestion to support automake.
>
> I would not be opposed to it if it somehow enhanced some users'
> experience without bothering people who didn't want to touch it (like
> the way that autoconf support is implemented). But I don't see how  
> that
> would be possible.

Thats fine. I didn't know if this was a "known" situation or not so I just mentioned it.

As I mentioned, most open source code supports this style of build. I have no idea what it would take to get it to work.

Mike Ralphson· Jan 28, 2009, 09:48 UTC · re: Perry Smith · lore

Re: git 1.6.1 on AIX 5.3

2009/1/28 Perry Smith <pedzsan@gmail.com>:
> Sorry... I thought "out of tree" was a universal term.
No, my mistake, I didn't think about what you meant.
> About 90% of the open source configure / autoconf code out there can do this
> with. The other 10% you can not.  I like it because when things die, its easier to
> grep around the source tree and I blow away the build directory and start back over and
> I know that I'm starting fresh.

Even if you're only building git, unless disc space is tight, I'd probably recommend cloning the git.git repository, then you can either use make clean or git clean, plus it makes updating to latest/arbitrary versions easier. Anyway, I don't think your setup is wrong.

Show 5 quoted lines
> Yea, part of my larger quest is to start a web site to provide AIX builds
> of open source images as installp images.  I have not added iconv to the
> mix yet because I fear bad interactions with GNU's and AIX's.  In theory,
> AIX's commands should use AIX's library but it would not surprise me if there are
> a few AIX applications that are not built properly.

A pity package distribution for AIX is so fragmented, but when IBM had the ball, they dropped it. Mail me if you want links to other existing sites who might appreciate contributed builds.

>  I assume the GIT_SKIP_TESTS is done:
It's documented in test/README
Show 5 quoted lines
> I just tried setting SHELL_PATH (and exporting it) and the make test gets
> into the second batch and then fails two tests. ... now test 10 of t0001.sh
> fails because test_cmp can not be found.
>
> Is that a GNU tool?  (I didn't see it in git or coreutils.)

As Peff said, there's a wrapper around either diff -u or a user supplied comparison tool (e.g. cmp) set in GIT_TEST_CMP. Setting it to cmp works fine on AIX if you don't have a diff which takes -u on your PATH.

As (at the moment) you need bash, gcc, gmake and ginstall to build, test and (maybe) run all parts of git on AIX, I haven't set up a clean environment to try and flush out any other quirks to get git to build/test/run on a stock AIX with no GNU tools installed. For obvious reasons such AIX machines being used for dev purposes are (I believe) rare.

Mike

← back to recent threads