* Installing on AIX fails
@ 2010-06-03 15:32 Dario Rodriguez
2010-06-03 15:41 ` Ævar Arnfjörð Bjarmason
` (2 more replies)
0 siblings, 3 replies; 18+ messages in thread
From: Dario Rodriguez @ 2010-06-03 15:32 UTC (permalink / raw)
To: git
Hi all,
I was trying to install git in a development and testing server we
have. The first problem was that AIX 'make' tool does NOT support
conditionals in makefiles, and display errors such...
[...]
"Makefile", line 1003: make: Dependency line needs colon or double
colon operator.
"Makefile", line 1007: make: Dependency line needs colon or double
colon operator.
"Makefile", line 1009: make: Dependency line needs colon or double
colon operator.
"Makefile", line 1011: make: Dependency line needs colon or double
colon operator.
[...]
... until I get stucked. Well, I solved this by just using GNU make,
then I compile:
$ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python
and it all works, with angels singing and everything... a testing repo
works fine for a test drive without installing, excepting 'git log'
that just don't display anything.
Now, when I feel good to install it...
$ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python install
[...]
install -d -m 755 '/myhomedir/apps/bin'
getopt: illegal option -- d
Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
[-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
make: *** [install] Error 2
Now the installing process fails because of the AIX 'install' tool and
I wonder, can I patch/configure the installing process for AIX? May be
a set of utils for building in such systems would help some people.
PD: If you don't understand me please let me know it and I will try
again : ) My english could be horrible since I'm Argentinian.
PD2: I don't know if AIX python path is always /usr/local/bin/python,
but I've seen that git Makefiles set /usr/local/bin/python for FreeBSD
only:
git_remote_helpers/Makefile:
ifndef PYTHON_PATH
ifeq ($(uname_S),FreeBSD)
PYTHON_PATH = /usr/local/bin/python
else
PYTHON_PATH = /usr/bin/python
endif
endif
I think 'test' the file is a good way for auto-configuration.
Cheers,
Dario
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-03 15:32 Installing on AIX fails Dario Rodriguez
@ 2010-06-03 15:41 ` Ævar Arnfjörð Bjarmason
[not found] ` <AANLkTikfQdwDoZylaKC_siuwaLrLP4JkMh2fnvwNbxqe@mail.gmail.com>
2010-06-03 16:12 ` Michael J Gruber
2010-06-04 9:13 ` Tor Arntsen
2 siblings, 1 reply; 18+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-06-03 15:41 UTC (permalink / raw)
To: Dario Rodriguez; +Cc: git
On Thu, Jun 3, 2010 at 15:32, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
> and it all works, with angels singing and everything... a testing repo
> works fine for a test drive without installing, excepting 'git log'
> that just don't display anything.
How about PAGER=/bin/cat git log? If that works what's your pager, and
do other git commands that use the pager (like git show) work or fail?
> $ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
> NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python install
>
> [...]
> install -d -m 755 '/myhomedir/apps/bin'
> getopt: illegal option -- d
> Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
> [-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
> make: *** [install] Error 2
>
> Now the installing process fails because of the AIX 'install' tool and
> I wonder, can I patch/configure the installing process for AIX? May be
> a set of utils for building in such systems would help some people.
Does AIX's install have something equivalent to GNU install's -d? The
-c and -f options look likely from that synopsis.
> PD2: I don't know if AIX python path is always /usr/local/bin/python,
> but I've seen that git Makefiles set /usr/local/bin/python for FreeBSD
> only:
>
> git_remote_helpers/Makefile:
> ifndef PYTHON_PATH
> ifeq ($(uname_S),FreeBSD)
> PYTHON_PATH = /usr/local/bin/python
> else
> PYTHON_PATH = /usr/bin/python
> endif
> endif
That's presumably because Python is most likely installed via the
ports system on FreeBSD which drops it in /usr/local. How did you
install Python on AIX? Is it from some IBM package or another method
that's the most common & standard way to do it on AIX?.
If so the Makefile needs a test for AIX similar to the FreeBSD one.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-03 15:32 Installing on AIX fails Dario Rodriguez
2010-06-03 15:41 ` Ævar Arnfjörð Bjarmason
@ 2010-06-03 16:12 ` Michael J Gruber
2010-06-04 9:13 ` Tor Arntsen
2 siblings, 0 replies; 18+ messages in thread
From: Michael J Gruber @ 2010-06-03 16:12 UTC (permalink / raw)
To: Dario Rodriguez; +Cc: git
Dario Rodriguez venit, vidit, dixit 03.06.2010 17:32:
> Hi all,
>
> I was trying to install git in a development and testing server we
> have. The first problem was that AIX 'make' tool does NOT support
> conditionals in makefiles, and display errors such...
>
>
> [...]
> "Makefile", line 1003: make: Dependency line needs colon or double
> colon operator.
> "Makefile", line 1007: make: Dependency line needs colon or double
> colon operator.
> "Makefile", line 1009: make: Dependency line needs colon or double
> colon operator.
> "Makefile", line 1011: make: Dependency line needs colon or double
> colon operator.
> [...]
>
>
> ... until I get stucked. Well, I solved this by just using GNU make,
> then I compile:
>
>
> $ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
> NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python
>
>
> and it all works, with angels singing and everything... a testing repo
> works fine for a test drive without installing, excepting 'git log'
> that just don't display anything.
> Now, when I feel good to install it...
>
>
> $ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
> NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python install
>
> [...]
> install -d -m 755 '/myhomedir/apps/bin'
> getopt: illegal option -- d
> Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
> [-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
> make: *** [install] Error 2
>
>
>
> Now the installing process fails because of the AIX 'install' tool and
> I wonder, can I patch/configure the installing process for AIX? May be
> a set of utils for building in such systems would help some people.
AIX tools are a pain in the back end. If you want to compile & install
anything GNU there you need better tools. In case of install, there's
often something in /usr/ucb or /usr/ccs.
Are you using gcc or xlc btw?
>
> PD: If you don't understand me please let me know it and I will try
> again : ) My english could be horrible since I'm Argentinian.
It's certainly good enough!
> PD2: I don't know if AIX python path is always /usr/local/bin/python,
> but I've seen that git Makefiles set /usr/local/bin/python for FreeBSD
> only:
>
> git_remote_helpers/Makefile:
> ifndef PYTHON_PATH
> ifeq ($(uname_S),FreeBSD)
> PYTHON_PATH = /usr/local/bin/python
> else
> PYTHON_PATH = /usr/bin/python
> endif
> endif
>
> I think 'test' the file is a good way for auto-configuration.
You don't need to worry about python for git right now. It's set up for
a few things which are yet to come.
Cheers,
Michael
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
[not found] ` <AANLkTikfQdwDoZylaKC_siuwaLrLP4JkMh2fnvwNbxqe@mail.gmail.com>
@ 2010-06-03 20:21 ` Ævar Arnfjörð Bjarmason
2010-06-03 21:22 ` Dario Rodriguez
0 siblings, 1 reply; 18+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-06-03 20:21 UTC (permalink / raw)
To: Dario Rodriguez, Git Mailing List
On Thu, Jun 3, 2010 at 20:01, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
> On Thu, Jun 3, 2010 at 12:41 PM, Ævar Arnfjörð Bjarmason
> <avarab@gmail.com> wrote:
>> On Thu, Jun 3, 2010 at 15:32, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
>>> and it all works, with angels singing and everything... a testing repo
>>> works fine for a test drive without installing, excepting 'git log'
>>> that just don't display anything.
>>
>> How about PAGER=/bin/cat git log? If that works what's your pager, and
>> do other git commands that use the pager (like git show) work or fail?
>>
>
> PAGER is not set by default as I see, but... isn't there any default
> pager for git in case of PAGER being unset?
>
> Using /bin/cat or /bin/more it works (either 'log' or 'show')
What do you mean by "disappears" anyway, was it like $(echo|less), or
did it just return with no output? What was the exit code?
In any case, running git's make test might reveal other problems on
AIX worth fixing. Maybe do that and post the results?
>>> $ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
>>> NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python install
>>>
>>> [...]
>>> install -d -m 755 '/myhomedir/apps/bin'
>>> getopt: illegal option -- d
>>> Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
>>> [-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
>>> make: *** [install] Error 2
>>>
>>> Now the installing process fails because of the AIX 'install' tool and
>>> I wonder, can I patch/configure the installing process for AIX? May be
>>> a set of utils for building in such systems would help some people.
>>
>> Does AIX's install have something equivalent to GNU install's -d? The
>> -c and -f options look likely from that synopsis.
>>
>
> I don't know since I just use this system for development and testing
> (I'm debian user), but let me post the manpage info, for -c and -f:
>
> -c DirectoryA Installs a new command file in the DirectoryA variable only if
> that file does not already exist there. If it finds a copy of File there, it
> issues a message and exits without overwriting the file. This flag can be used
> alone or with the -s, -M, -O, -G, or -S flag.
>
> -f DirectoryB Forces installation of File in DirectoryB whether or not File
> already exists. If the file being installed does not already exist, the command
> sets the permission code and owner of the new file to 755 and bin, respectively.
> This flag can be used alone or with the -o,-s, -M, -O, -G, or -S flag.
Looks like there's no equivalent to -d. FWIW perl uses a installperl
script that also works on AIX. Maybe a similar fallback or default
would make sense for Git.
>>> PD2: I don't know if AIX python path is always /usr/local/bin/python,
>>> but I've seen that git Makefiles set /usr/local/bin/python for FreeBSD
>>> only:
>>>
>>> git_remote_helpers/Makefile:
>>> ifndef PYTHON_PATH
>>> ifeq ($(uname_S),FreeBSD)
>>> PYTHON_PATH = /usr/local/bin/python
>>> else
>>> PYTHON_PATH = /usr/bin/python
>>> endif
>>> endif
>>
>> That's presumably because Python is most likely installed via the
>> ports system on FreeBSD which drops it in /usr/local. How did you
>> install Python on AIX? Is it from some IBM package or another method
>> that's the most common & standard way to do it on AIX?.
>>
>
> Again, I don't know since I'm not the sysadmin. I just looked for
> python and found it's in /usr/local/bin
Does using /usr/bin/env python instead work?
$ cat /tmp/py.py
#!/usr/bin/env python
print "hello"
$ /tmp/py.py
hello
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-03 20:21 ` Ævar Arnfjörð Bjarmason
@ 2010-06-03 21:22 ` Dario Rodriguez
2010-06-04 14:28 ` Ævar Arnfjörð Bjarmason
0 siblings, 1 reply; 18+ messages in thread
From: Dario Rodriguez @ 2010-06-03 21:22 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason; +Cc: Git Mailing List
On Thu, Jun 3, 2010 at 5:21 PM, Ævar Arnfjörð Bjarmason
<avarab@gmail.com> wrote:
> On Thu, Jun 3, 2010 at 20:01, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
>> On Thu, Jun 3, 2010 at 12:41 PM, Ævar Arnfjörð Bjarmason
>> <avarab@gmail.com> wrote:
>>> On Thu, Jun 3, 2010 at 15:32, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
>>>> and it all works, with angels singing and everything... a testing repo
>>>> works fine for a test drive without installing, excepting 'git log'
>>>> that just don't display anything.
>>>
>>> How about PAGER=/bin/cat git log? If that works what's your pager, and
>>> do other git commands that use the pager (like git show) work or fail?
>>>
>>
>> PAGER is not set by default as I see, but... isn't there any default
>> pager for git in case of PAGER being unset?
>>
>> Using /bin/cat or /bin/more it works (either 'log' or 'show')
>
> What do you mean by "disappears" anyway, was it like $(echo|less), or
> did it just return with no output? What was the exit code?
>
'dissapears'? I will paste my output as is, there are 2 commits, but
'git log' simply don't show them if $PAGER is not present:
$ ../git log
$ echo $?
0
$ PAGER=/bin/cat ../git log
commit 3274a12f940680612e3bfd3d022a0eab460c0f1f
Author: usuario tuxedo ####### <tx#####@MachineName.(none)>
Date: Thu Jun 3 20:02:23 2010 +0200
OtherCom
commit acf110f7c878a37e4a5af8499134df28da0e8ab3
Author: usuario tuxedo ####### <tx#####@MachineName.(none)>
Date: Thu Jun 3 20:01:37 2010 +0200
inicial
> In any case, running git's make test might reveal other problems on
> AIX worth fixing. Maybe do that and post the results?
>
The make test execution output is fairly long... do I post it all, or
attach MIME? However I'm leaving here and I cannot access the server
until tomorrow...
>>>> $ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
>>>> NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python install
>>>>
>>>> [...]
>>>> install -d -m 755 '/myhomedir/apps/bin'
>>>> getopt: illegal option -- d
>>>> Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
>>>> [-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
>>>> make: *** [install] Error 2
>>>>
>>>> Now the installing process fails because of the AIX 'install' tool and
>>>> I wonder, can I patch/configure the installing process for AIX? May be
>>>> a set of utils for building in such systems would help some people.
>>>
>>> Does AIX's install have something equivalent to GNU install's -d? The
>>> -c and -f options look likely from that synopsis.
>>>
>>
>> I don't know since I just use this system for development and testing
>> (I'm debian user), but let me post the manpage info, for -c and -f:
>>
>> -c DirectoryA Installs a new command file in the DirectoryA variable only if
>> that file does not already exist there. If it finds a copy of File there, it
>> issues a message and exits without overwriting the file. This flag can be used
>> alone or with the -s, -M, -O, -G, or -S flag.
>>
>> -f DirectoryB Forces installation of File in DirectoryB whether or not File
>> already exists. If the file being installed does not already exist, the command
>> sets the permission code and owner of the new file to 755 and bin, respectively.
>> This flag can be used alone or with the -o,-s, -M, -O, -G, or -S flag.
>
> Looks like there's no equivalent to -d. FWIW perl uses a installperl
> script that also works on AIX. Maybe a similar fallback or default
> would make sense for Git.
>
Yes, I installed 'top' on other AIX machine today, and it uses it's
own install script too... may be it's the best way for systems having
a poor 'install' tool.
>>>> PD2: I don't know if AIX python path is always /usr/local/bin/python,
>>>> but I've seen that git Makefiles set /usr/local/bin/python for FreeBSD
>>>> only:
>>>>
>>>> git_remote_helpers/Makefile:
>>>> ifndef PYTHON_PATH
>>>> ifeq ($(uname_S),FreeBSD)
>>>> PYTHON_PATH = /usr/local/bin/python
>>>> else
>>>> PYTHON_PATH = /usr/bin/python
>>>> endif
>>>> endif
>>>
>>> That's presumably because Python is most likely installed via the
>>> ports system on FreeBSD which drops it in /usr/local. How did you
>>> install Python on AIX? Is it from some IBM package or another method
>>> that's the most common & standard way to do it on AIX?.
>>>
>>
>> Again, I don't know since I'm not the sysadmin. I just looked for
>> python and found it's in /usr/local/bin
>
> Does using /usr/bin/env python instead work?
>
> $ cat /tmp/py.py
> #!/usr/bin/env python
> print "hello"
> $ /tmp/py.py
> hello
>
Yes, it works... at least the executable is found :P
$ cat temp.py
#!/usr/bin/env python
print "hello"
$ ./temp.py
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
hello
Cheers,
Dario
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-03 15:32 Installing on AIX fails Dario Rodriguez
2010-06-03 15:41 ` Ævar Arnfjörð Bjarmason
2010-06-03 16:12 ` Michael J Gruber
@ 2010-06-04 9:13 ` Tor Arntsen
2010-06-04 9:17 ` Tor Arntsen
2010-06-04 14:22 ` Dario Rodriguez
2 siblings, 2 replies; 18+ messages in thread
From: Tor Arntsen @ 2010-06-04 9:13 UTC (permalink / raw)
To: Dario Rodriguez; +Cc: git
Re. building on AIX.
For AIX I've found that it's just better to always rely on the
freeware toolkit stuff, which comes on a separate toolkit CD and in
any case can be downloaded from
ftp://ftp.software.ibm.com:/aix/freeSoftware/aixtoolbox/RPMS/ppc
These are RPMs that you install via RPM which comes pre-installed on
AIX (or anyway is part of the standard AIX CDs).
On my own build the make, install, tar (gtar), grep, come from the
toolkit CD (the /usr/freeware/bin/ path). At least the first two seems
definitely mandatory.
Oh, and AIX /bin/sh is not particularly good - it's simpler to rely on
bash from the toolkit.
Depending on your AIX and compiler versions you may need some
additional changes. Gary Vaughan have posted patches which include
updates that will improve the AIX experience. In addition to that, if
you have the old XlC 5.0 compiler you will probably be better off at
this point to use gcc from the toolkit. Otherwise you'll need those
patches, and also one I posted which removes some C++ comments (I
should probably re-post that one because it's not against the latest
git repo version anymore).
All that been said, I build on AIX as follows, using configure (which
takes care of some other issues at the moment).
SHELL_PATH=/opt/freeware/bin/bash
PERL_PATH=/usr/local/special/bin/perl ./configure CC=cc
CFLAGS=-Dinline=""
and
make SHELL_PATH=/opt/freeware/bin/bash PERL_PATH=/usr/local/special/bin/perl
followed by the same, with 'install'
That's with the old compiler and patches applied. Without patches
you'll either have to rely on GCC (and remove those CC and CFLAGS
lines, or change CC to gcc), or, with a newer (say, v10) IBM
compiler), the -Dinline="" may not be needed.
The only problem now is that some stuff (git rebase --interactive
IIRC) will still not work, if you're on an AIX version with Perl 5.6
(some things in git needs 5.8). AIX 6.1 has Perl 5.8, but some
customers will downgrade to 5.6 because of bad performance problems
with 5.8 on AIX.
-Tor
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-04 9:13 ` Tor Arntsen
@ 2010-06-04 9:17 ` Tor Arntsen
2010-06-04 14:22 ` Dario Rodriguez
1 sibling, 0 replies; 18+ messages in thread
From: Tor Arntsen @ 2010-06-04 9:17 UTC (permalink / raw)
To: Dario Rodriguez; +Cc: git
On Fri, Jun 4, 2010 at 11:13, Tor Arntsen <tor@spacetec.no> wrote:
> The only problem now is that some stuff (git rebase --interactive
> IIRC) will still not work, if you're on an AIX version with Perl 5.6
> (some things in git needs 5.8).
Thinking harder I now believe it was 'git add --patch' which needs Perl >= 5.8.
-Tor
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-04 9:13 ` Tor Arntsen
2010-06-04 9:17 ` Tor Arntsen
@ 2010-06-04 14:22 ` Dario Rodriguez
2010-06-04 14:38 ` Tor Arntsen
1 sibling, 1 reply; 18+ messages in thread
From: Dario Rodriguez @ 2010-06-04 14:22 UTC (permalink / raw)
To: Tor Arntsen; +Cc: git
On Fri, Jun 4, 2010 at 6:13 AM, Tor Arntsen <tor@spacetec.no> wrote:
> Re. building on AIX.
>
> For AIX I've found that it's just better to always rely on the
> freeware toolkit stuff, which comes on a separate toolkit CD and in
> any case can be downloaded from
> ftp://ftp.software.ibm.com:/aix/freeSoftware/aixtoolbox/RPMS/ppc
> These are RPMs that you install via RPM which comes pre-installed on
> AIX (or anyway is part of the standard AIX CDs).
>
> On my own build the make, install, tar (gtar), grep, come from the
> toolkit CD (the /usr/freeware/bin/ path). At least the first two seems
> definitely mandatory.
> Oh, and AIX /bin/sh is not particularly good - it's simpler to rely on
> bash from the toolkit.
>
As I'm not the sysadmin, and git is not the project's tool, and the
server is in other city... I cannot install things from the CD :(
Another thing is that RPM utility is there... but I think I will not
have enough permissions to install software in such way. Development
teams compile utilities when needed (or not) and install in $HOME/bin.
I will need 'install's sources or an alternate way to install GIT...
Anyway, the 'make test' begun yesterday with a lot of failures... so,
I don't know if I'ill be able to use GIT on AIX soon, but may be I can
help to make it work.
> Depending on your AIX and compiler versions you may need some additional changes.
AIX is 5.2(.0.0), PERL is 5.8.0, IBM(R) XL C/C++ Enterprise Edition V7.0
> Gary Vaughan have posted patches which include
> updates that will improve the AIX experience. In addition to that, if
> you have the old XlC 5.0 compiler you will probably be better off at
> this point to use gcc from the toolkit. Otherwise you'll need those
> patches, and also one I posted which removes some C++ comments (I
> should probably re-post that one because it's not against the latest
> git repo version anymore).
>
> All that been said, I build on AIX as follows, using configure (which
> takes care of some other issues at the moment).
>
> SHELL_PATH=/opt/freeware/bin/bash
> PERL_PATH=/usr/local/special/bin/perl ./configure CC=cc
> CFLAGS=-Dinline=""
> and
> make SHELL_PATH=/opt/freeware/bin/bash PERL_PATH=/usr/local/special/bin/perl
> followed by the same, with 'install'
>
> That's with the old compiler and patches applied. Without patches
> you'll either have to rely on GCC (and remove those CC and CFLAGS
> lines, or change CC to gcc), or, with a newer (say, v10) IBM
> compiler), the -Dinline="" may not be needed.
>
> The only problem now is that some stuff (git rebase --interactive
> IIRC) will still not work, if you're on an AIX version with Perl 5.6
> (some things in git needs 5.8). AIX 6.1 has Perl 5.8, but some
> customers will downgrade to 5.6 because of bad performance problems
> with 5.8 on AIX.
>
> -Tor
>
I'ill try compiling 'install' (i don't know where the sources are)
Thank'u man,
Dario
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-03 21:22 ` Dario Rodriguez
@ 2010-06-04 14:28 ` Ævar Arnfjörð Bjarmason
2010-06-04 15:07 ` Dario Rodriguez
0 siblings, 1 reply; 18+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-06-04 14:28 UTC (permalink / raw)
To: Dario Rodriguez; +Cc: Git Mailing List
On Thu, Jun 3, 2010 at 21:22, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
> On Thu, Jun 3, 2010 at 5:21 PM, Ævar Arnfjörð Bjarmason
>> What do you mean by "disappears" anyway, was it like $(echo|less), or
>> did it just return with no output? What was the exit code?
>>
>
> 'dissapears'? I will paste my output as is, there are 2 commits, but
> 'git log' simply don't show them if $PAGER is not present:
>
> $ ../git log
> $ echo $?
> 0
> $ PAGER=/bin/cat ../git log
> commit 3274a12f940680612e3bfd3d022a0eab460c0f1f
> Author: usuario tuxedo ####### <tx#####@MachineName.(none)>
> Date: Thu Jun 3 20:02:23 2010 +0200
>
> OtherCom
>
> commit acf110f7c878a37e4a5af8499134df28da0e8ab3
> Author: usuario tuxedo ####### <tx#####@MachineName.(none)>
> Date: Thu Jun 3 20:01:37 2010 +0200
>
> inicial
That's interesting.
>> In any case, running git's make test might reveal other problems on
>> AIX worth fixing. Maybe do that and post the results?
>>
>
> The make test execution output is fairly long... do I post it all, or
> attach MIME? However I'm leaving here and I cannot access the server
> until tomorrow...
The best thing would be to post cd t && ./$some_test -d -v for all
tests that fail, I guess.
>>>>> $ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
>>>>> NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python install
>>>>>
>>>>> [...]
>>>>> install -d -m 755 '/myhomedir/apps/bin'
>>>>> getopt: illegal option -- d
>>>>> Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
>>>>> [-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
>>>>> make: *** [install] Error 2
>>>>>
>>>>> Now the installing process fails because of the AIX 'install' tool and
>>>>> I wonder, can I patch/configure the installing process for AIX? May be
>>>>> a set of utils for building in such systems would help some people.
>>>>
>>>> Does AIX's install have something equivalent to GNU install's -d? The
>>>> -c and -f options look likely from that synopsis.
>>>>
>>>
>>> I don't know since I just use this system for development and testing
>>> (I'm debian user), but let me post the manpage info, for -c and -f:
>>>
>>> -c DirectoryA Installs a new command file in the DirectoryA variable only if
>>> that file does not already exist there. If it finds a copy of File there, it
>>> issues a message and exits without overwriting the file. This flag can be used
>>> alone or with the -s, -M, -O, -G, or -S flag.
>>>
>>> -f DirectoryB Forces installation of File in DirectoryB whether or not File
>>> already exists. If the file being installed does not already exist, the command
>>> sets the permission code and owner of the new file to 755 and bin, respectively.
>>> This flag can be used alone or with the -o,-s, -M, -O, -G, or -S flag.
>>
>> Looks like there's no equivalent to -d. FWIW perl uses a installperl
>> script that also works on AIX. Maybe a similar fallback or default
>> would make sense for Git.
>>
>
> Yes, I installed 'top' on other AIX machine today, and it uses it's
> own install script too... may be it's the best way for systems having
> a poor 'install' tool.
>
>>>>> PD2: I don't know if AIX python path is always /usr/local/bin/python,
>>>>> but I've seen that git Makefiles set /usr/local/bin/python for FreeBSD
>>>>> only:
>>>>>
>>>>> git_remote_helpers/Makefile:
>>>>> ifndef PYTHON_PATH
>>>>> ifeq ($(uname_S),FreeBSD)
>>>>> PYTHON_PATH = /usr/local/bin/python
>>>>> else
>>>>> PYTHON_PATH = /usr/bin/python
>>>>> endif
>>>>> endif
>>>>
>>>> That's presumably because Python is most likely installed via the
>>>> ports system on FreeBSD which drops it in /usr/local. How did you
>>>> install Python on AIX? Is it from some IBM package or another method
>>>> that's the most common & standard way to do it on AIX?.
>>>>
>>>
>>> Again, I don't know since I'm not the sysadmin. I just looked for
>>> python and found it's in /usr/local/bin
>>
>> Does using /usr/bin/env python instead work?
>>
>> $ cat /tmp/py.py
>> #!/usr/bin/env python
>> print "hello"
>> $ /tmp/py.py
>> hello
>>
>
> Yes, it works... at least the executable is found :P
>
> $ cat temp.py
> #!/usr/bin/env python
> print "hello"
>
> $ ./temp.py
> Could not find platform dependent libraries <exec_prefix>
> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
> hello
That's one reason why I think we should just use /usr/bin/env for
perl/python instead of hardcoding it to /usr/bin/{perl,python}. It's
more likely to work on systems like AIX.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-04 14:22 ` Dario Rodriguez
@ 2010-06-04 14:38 ` Tor Arntsen
2010-06-04 17:21 ` Dario Rodriguez
2010-06-05 11:44 ` Jakub Narebski
0 siblings, 2 replies; 18+ messages in thread
From: Tor Arntsen @ 2010-06-04 14:38 UTC (permalink / raw)
To: Dario Rodriguez; +Cc: git
[-- Attachment #1: Type: text/plain, Size: 734 bytes --]
On Fri, Jun 4, 2010 at 16:22, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
> AIX is 5.2(.0.0), PERL is 5.8.0, IBM(R) XL C/C++ Enterprise Edition V7.0
I think that compiler is reasonably OK to use, it'll probably not
choke on anything in particular. Perl OK too.
> I'ill try compiling 'install' (i don't know where the sources are)
It's in 'coreutils' these days, but that package includes a lot of stuff.
Maybe you could get away with just using the script-version of install
which comes with coreutils itself (because it'll need an install tool
to use before 'install' itself is installed..).
I'm attaching a copy. To use it it should be sufficient to use
INSTALL=path-to/install-sh make install
or something like that.
-Tor
[-- Attachment #2: install-sh --]
[-- Type: application/octet-stream, Size: 13781 bytes --]
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2010-02-06.18; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
nl='
'
IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
if test -z "$doit"; then
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
no_target_directory=
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *' '* | *'
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writeable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
-*) prefix='./';;
*) prefix='';;
esac
eval "$initialize_posix_glob"
oIFS=$IFS
IFS=/
$posix_glob set -f
set fnord $dstdir
shift
$posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
test -z "$d" && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-04 14:28 ` Ævar Arnfjörð Bjarmason
@ 2010-06-04 15:07 ` Dario Rodriguez
0 siblings, 0 replies; 18+ messages in thread
From: Dario Rodriguez @ 2010-06-04 15:07 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason; +Cc: Git Mailing List
On Fri, Jun 4, 2010 at 11:28 AM, Ævar Arnfjörð Bjarmason
<avarab@gmail.com> wrote:
> On Thu, Jun 3, 2010 at 21:22, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
>> On Thu, Jun 3, 2010 at 5:21 PM, Ævar Arnfjörð Bjarmason
>>> What do you mean by "disappears" anyway, was it like $(echo|less), or
>>> did it just return with no output? What was the exit code?
>>>
>>
>> 'dissapears'? I will paste my output as is, there are 2 commits, but
>> 'git log' simply don't show them if $PAGER is not present:
>>
>> $ ../git log
>> $ echo $?
>> 0
>> $ PAGER=/bin/cat ../git log
>> commit 3274a12f940680612e3bfd3d022a0eab460c0f1f
>> Author: usuario tuxedo ####### <tx#####@MachineName.(none)>
>> Date: Thu Jun 3 20:02:23 2010 +0200
>>
>> OtherCom
>>
>> commit acf110f7c878a37e4a5af8499134df28da0e8ab3
>> Author: usuario tuxedo ####### <tx#####@MachineName.(none)>
>> Date: Thu Jun 3 20:01:37 2010 +0200
>>
>> inicial
>
> That's interesting.
>
Yes, I will check it better today at home.
>>> In any case, running git's make test might reveal other problems on
>>> AIX worth fixing. Maybe do that and post the results?
>>>
>>
>> The make test execution output is fairly long... do I post it all, or
>> attach MIME? However I'm leaving here and I cannot access the server
>> until tomorrow...
>
> The best thing would be to post cd t && ./$some_test -d -v for all
> tests that fail, I guess.
>
>>>>>> $ /usr/linux/bin/make prefix=$HOME/apps/ NO_OPENSSL=1 NO_TCLTK=1
>>>>>> NO_EXPAT=1 PYTHON_PATH=/usr/local/bin/python install
>>>>>>
>>>>>> [...]
>>>>>> install -d -m 755 '/myhomedir/apps/bin'
>>>>>> getopt: illegal option -- d
>>>>>> Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
>>>>>> [-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
>>>>>> make: *** [install] Error 2
>>>>>>
>>>>>> Now the installing process fails because of the AIX 'install' tool and
>>>>>> I wonder, can I patch/configure the installing process for AIX? May be
>>>>>> a set of utils for building in such systems would help some people.
>>>>>
>>>>> Does AIX's install have something equivalent to GNU install's -d? The
>>>>> -c and -f options look likely from that synopsis.
>>>>>
>>>>
>>>> I don't know since I just use this system for development and testing
>>>> (I'm debian user), but let me post the manpage info, for -c and -f:
>>>>
>>>> -c DirectoryA Installs a new command file in the DirectoryA variable only if
>>>> that file does not already exist there. If it finds a copy of File there, it
>>>> issues a message and exits without overwriting the file. This flag can be used
>>>> alone or with the -s, -M, -O, -G, or -S flag.
>>>>
>>>> -f DirectoryB Forces installation of File in DirectoryB whether or not File
>>>> already exists. If the file being installed does not already exist, the command
>>>> sets the permission code and owner of the new file to 755 and bin, respectively.
>>>> This flag can be used alone or with the -o,-s, -M, -O, -G, or -S flag.
>>>
>>> Looks like there's no equivalent to -d. FWIW perl uses a installperl
>>> script that also works on AIX. Maybe a similar fallback or default
>>> would make sense for Git.
>>>
>>
>> Yes, I installed 'top' on other AIX machine today, and it uses it's
>> own install script too... may be it's the best way for systems having
>> a poor 'install' tool.
>>
>>>>>> PD2: I don't know if AIX python path is always /usr/local/bin/python,
>>>>>> but I've seen that git Makefiles set /usr/local/bin/python for FreeBSD
>>>>>> only:
>>>>>>
>>>>>> git_remote_helpers/Makefile:
>>>>>> ifndef PYTHON_PATH
>>>>>> ifeq ($(uname_S),FreeBSD)
>>>>>> PYTHON_PATH = /usr/local/bin/python
>>>>>> else
>>>>>> PYTHON_PATH = /usr/bin/python
>>>>>> endif
>>>>>> endif
>>>>>
>>>>> That's presumably because Python is most likely installed via the
>>>>> ports system on FreeBSD which drops it in /usr/local. How did you
>>>>> install Python on AIX? Is it from some IBM package or another method
>>>>> that's the most common & standard way to do it on AIX?.
>>>>>
>>>>
>>>> Again, I don't know since I'm not the sysadmin. I just looked for
>>>> python and found it's in /usr/local/bin
>>>
>>> Does using /usr/bin/env python instead work?
>>>
>>> $ cat /tmp/py.py
>>> #!/usr/bin/env python
>>> print "hello"
>>> $ /tmp/py.py
>>> hello
>>>
>>
>> Yes, it works... at least the executable is found :P
>>
>> $ cat temp.py
>> #!/usr/bin/env python
>> print "hello"
>>
>> $ ./temp.py
>> Could not find platform dependent libraries <exec_prefix>
>> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
>> hello
>
> That's one reason why I think we should just use /usr/bin/env for
> perl/python instead of hardcoding it to /usr/bin/{perl,python}. It's
> more likely to work on systems like AIX.
>
I agree... it's off topic, but something like this is what I say with
'test' for python, and I think those 2 are the only files impacted:
From e89f18c29c171207002d4718ea4b9d08c7efe1d7 Mon Sep 17 00:00:00 2001
From: Dario Rodriguez <soft.d4rio@gmail.com>
Date: Fri, 4 Jun 2010 00:28:56 -0300
Subject: [PATCH] Now Makefiles check for Python executable
Check for python executable instead of predicting based on the system
---
Makefile | 9 +++++++--
git_remote_helpers/Makefile | 12 +++++++-----
2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index d5d6565..29cf8ff 100644
--- a/Makefile
+++ b/Makefile
@@ -449,7 +449,13 @@ ifndef PERL_PATH
PERL_PATH = /usr/bin/perl
endif
ifndef PYTHON_PATH
- PYTHON_PATH = /usr/bin/python
+ ifeq ($(shell test -x /usr/bin/python && echo y), y)
+ PYTHON_PATH = /usr/bin/python
+ else
+ ifeq ($(shell test -x /usr/local/bin/python && echo y), y)
+ PYTHON_PATH = /usr/local/bin/python
+ endif
+ endif
endif
export PERL_PATH
@@ -875,7 +881,6 @@ ifeq ($(uname_S),FreeBSD)
NO_UINTMAX_T = YesPlease
NO_STRTOUMAX = YesPlease
endif
- PYTHON_PATH = /usr/local/bin/python
HAVE_PATHS_H = YesPlease
endif
ifeq ($(uname_S),OpenBSD)
diff --git a/git_remote_helpers/Makefile b/git_remote_helpers/Makefile
index 74b05dc..8b5f50c 100644
--- a/git_remote_helpers/Makefile
+++ b/git_remote_helpers/Makefile
@@ -7,11 +7,13 @@ pysetupfile:=setup.py
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
ifndef PYTHON_PATH
- ifeq ($(uname_S),FreeBSD)
- PYTHON_PATH = /usr/local/bin/python
- else
- PYTHON_PATH = /usr/bin/python
- endif
+ ifeq ($(shell test -x /usr/bin/python && echo y), y)
+ PYTHON_PATH = /usr/bin/python
+ else
+ ifeq ($(shell test -x /usr/local/bin/python && echo y), y)
+ PYTHON_PATH = /usr/local/bin/python
+ endif
+ endif
endif
ifndef prefix
prefix = $(HOME)
--
1.7.1
Then, the path is checked if ever it's empty (after this stuff), but
the case is that no matter the system, '/usr/bin' and '/usr/local/bin'
are the most common places... I think it's totally sane the needing of
PYTHON_PATH if it's not in those commonly used dirs.
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-04 14:38 ` Tor Arntsen
@ 2010-06-04 17:21 ` Dario Rodriguez
2010-06-04 17:44 ` Ævar Arnfjörð Bjarmason
2010-06-05 11:44 ` Jakub Narebski
1 sibling, 1 reply; 18+ messages in thread
From: Dario Rodriguez @ 2010-06-04 17:21 UTC (permalink / raw)
To: Tor Arntsen; +Cc: git
On Fri, Jun 4, 2010 at 11:38 AM, Tor Arntsen <tor@spacetec.no> wrote:
> On Fri, Jun 4, 2010 at 16:22, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
>
>> AIX is 5.2(.0.0), PERL is 5.8.0, IBM(R) XL C/C++ Enterprise Edition V7.0
>
> I think that compiler is reasonably OK to use, it'll probably not
> choke on anything in particular. Perl OK too.
>
>> I'ill try compiling 'install' (i don't know where the sources are)
>
> It's in 'coreutils' these days, but that package includes a lot of stuff.
>
> Maybe you could get away with just using the script-version of install
> which comes with coreutils itself (because it'll need an install tool
> to use before 'install' itself is installed..).
>
> I'm attaching a copy. To use it it should be sufficient to use
> INSTALL=path-to/install-sh make install
> or something like that.
>
> -Tor
>
Hmm... I will check makefiles today, but there is something wrong
here, take a look:
$ INSTALL=$HOME/bin/install-sh /usr/linux/bin/make
prefix=$HOME/.gitbin NO_OPENSSL=1 NO_TCLTK=1 NO_EXPAT=1
PYTHON_PATH=/usr/local/bin/python install
SUBDIR perl
SUBDIR git_remote_helpers
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
SUBDIR templates
install -d -m 755 '/aplicaciones/D0/imei/usuarios/tximeid0/.gitbin/bin'
getopt: illegal option -- d
Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
[-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
make: *** [install] Error 2
It's not using install-sh since it supports -d ... and lets take a
quick look at Makefiles:
$ find . -name Makefile -exec grep install {} \; | grep -v "^#" | grep INSTALL
INSTALL?=install
INSTALL_INFO=install-info
INSTALL = install
INSTALL = ginstall
INSTALL = ginstall
INSTALL = /usr/ucb/install
INSTALL = /bin/install
$(INSTALL) $(install_bindir_programs) '$(DESTDIR_SQ)$(bindir_SQ)'
INSTALL ?= install
INSTALL = install
INSTALL ?= install
INSTALL ?= install
It seems as if it's looking for /bin/install ... even when I wrote
'INSTALL=$HOME/bin/install-sh'
I have no more time, and will access the server next monday... but I'm
going home and may be i'ill take a look at this to know how to do it,
thanks 4 the script ; )
Cheers,
Dario
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-04 17:21 ` Dario Rodriguez
@ 2010-06-04 17:44 ` Ævar Arnfjörð Bjarmason
2010-06-04 21:03 ` Dario Rodriguez
0 siblings, 1 reply; 18+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-06-04 17:44 UTC (permalink / raw)
To: Dario Rodriguez; +Cc: Tor Arntsen, git
On Fri, Jun 4, 2010 at 17:21, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
> Hmm... I will check makefiles today, but there is something wrong
> here, take a look:
>
> $ INSTALL=$HOME/bin/install-sh /usr/linux/bin/make
> prefix=$HOME/.gitbin NO_OPENSSL=1 NO_TCLTK=1 NO_EXPAT=1
> PYTHON_PATH=/usr/local/bin/python install
> SUBDIR perl
> SUBDIR git_remote_helpers
> Could not find platform dependent libraries <exec_prefix>
> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
> SUBDIR templates
> install -d -m 755 '/aplicaciones/D0/imei/usuarios/tximeid0/.gitbin/bin'
> getopt: illegal option -- d
> Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
> [-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
> make: *** [install] Error 2
It's make INSTALL=.., not INSTALL=.. make
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-04 17:44 ` Ævar Arnfjörð Bjarmason
@ 2010-06-04 21:03 ` Dario Rodriguez
0 siblings, 0 replies; 18+ messages in thread
From: Dario Rodriguez @ 2010-06-04 21:03 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason; +Cc: Tor Arntsen, git
On Fri, Jun 4, 2010 at 2:44 PM, Ævar Arnfjörð Bjarmason
<avarab@gmail.com> wrote:
> On Fri, Jun 4, 2010 at 17:21, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
>> Hmm... I will check makefiles today, but there is something wrong
>> here, take a look:
>>
>> $ INSTALL=$HOME/bin/install-sh /usr/linux/bin/make
>> prefix=$HOME/.gitbin NO_OPENSSL=1 NO_TCLTK=1 NO_EXPAT=1
>> PYTHON_PATH=/usr/local/bin/python install
>> SUBDIR perl
>> SUBDIR git_remote_helpers
>> Could not find platform dependent libraries <exec_prefix>
>> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
>> SUBDIR templates
>> install -d -m 755 '/aplicaciones/D0/imei/usuarios/tximeid0/.gitbin/bin'
>> getopt: illegal option -- d
>> Usage: install [-c dira] [-f dirb] [-i] [-m] [-M mode] [-O owner]
>> [-G group] [-S] [-n dirc] [-o] [-s] file [dirx ...]
>> make: *** [install] Error 2
>
> It's make INSTALL=.., not INSTALL=.. make
>
touché! ... I will be testing it on AIX next Monday cause I have no
access to the server from home
Cheers,
Dario
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-04 14:38 ` Tor Arntsen
2010-06-04 17:21 ` Dario Rodriguez
@ 2010-06-05 11:44 ` Jakub Narebski
2010-06-05 21:59 ` Dario Rodriguez
1 sibling, 1 reply; 18+ messages in thread
From: Jakub Narebski @ 2010-06-05 11:44 UTC (permalink / raw)
To: Tor Arntsen; +Cc: Dario Rodriguez, git
Tor Arntsen <tor@spacetec.no> writes:
> On Fri, Jun 4, 2010 at 16:22, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
> > I'ill try compiling 'install' (i don't know where the sources are)
>
> It's in 'coreutils' these days, but that package includes a lot of stuff.
>
> Maybe you could get away with just using the script-version of install
> which comes with coreutils itself (because it'll need an install tool
> to use before 'install' itself is installed..).
>
> I'm attaching a copy. To use it it should be sufficient to use
> INSTALL=path-to/install-sh make install
> or something like that.
I wonder if it would be better to simply include fallback portable
install-sh in git sources.
BTW. shouldn't we define and use INSTALL_D in Makefile?
--
Jakub Narebski
Poland
ShadeHawk on #git
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-05 11:44 ` Jakub Narebski
@ 2010-06-05 21:59 ` Dario Rodriguez
2010-06-06 22:26 ` Jakub Narebski
0 siblings, 1 reply; 18+ messages in thread
From: Dario Rodriguez @ 2010-06-05 21:59 UTC (permalink / raw)
To: Jakub Narebski; +Cc: Tor Arntsen, git
On Sat, Jun 5, 2010 at 8:44 AM, Jakub Narebski <jnareb@gmail.com> wrote:
> Tor Arntsen <tor@spacetec.no> writes:
>> On Fri, Jun 4, 2010 at 16:22, Dario Rodriguez <soft.d4rio@gmail.com> wrote:
>
>> > I'ill try compiling 'install' (i don't know where the sources are)
>>
>> It's in 'coreutils' these days, but that package includes a lot of stuff.
>>
>> Maybe you could get away with just using the script-version of install
>> which comes with coreutils itself (because it'll need an install tool
>> to use before 'install' itself is installed..).
>>
>> I'm attaching a copy. To use it it should be sufficient to use
>> INSTALL=path-to/install-sh make install
>> or something like that.
>
> I wonder if it would be better to simply include fallback portable
> install-sh in git sources.
>
> BTW. shouldn't we define and use INSTALL_D in Makefile?
>
> --
> Jakub Narebski
> Poland
> ShadeHawk on #git
>
I think so about the install-sh, but about the Makefiles I wonder if
it's not better to reuse current INSTALL, maybe if install-sh is used,
then there is no need for using other 'install' program, excepting the
case in wich the user sets INSTALL commandline.
Blessing,
Dario
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-05 21:59 ` Dario Rodriguez
@ 2010-06-06 22:26 ` Jakub Narebski
2010-06-06 22:29 ` Ævar Arnfjörð Bjarmason
0 siblings, 1 reply; 18+ messages in thread
From: Jakub Narebski @ 2010-06-06 22:26 UTC (permalink / raw)
To: Dario Rodriguez; +Cc: Tor Arntsen, git
On Sat, 5 Jun 2010, Dario Rodriguez wrote:
> On Sat, Jun 5, 2010 at 8:44 AM, Jakub Narebski <jnareb@gmail.com> wrote:
>> Tor Arntsen <tor@spacetec.no> writes:
>>>
>>> Maybe you could get away with just using the script-version of install
>>> which comes with coreutils itself (because it'll need an install tool
>>> to use before 'install' itself is installed..).
>>>
>>> I'm attaching a copy. To use it it should be sufficient to use
>>> INSTALL=path-to/install-sh make install
>>> or something like that.
>>
>> I wonder if it would be better to simply include fallback portable
>> install-sh in git sources.
>>
>> BTW. shouldn't we define and use INSTALL_D in Makefile?
>
> I think so about the install-sh, but about the Makefiles I wonder if
> it's not better to reuse current INSTALL, maybe if install-sh is used,
> then there is no need for using other 'install' program, excepting the
> case in wich the user sets INSTALL commandline.
Well, if there were install-sh script in git sources, we could uncomment
#AC_PROG_INSTALL # needs install-sh or install.sh in sources
line in configure.ac, then ./configure would automatically detect and
select 'install' program or script to use. The autoconf documentation
(autoconf.info) says:
This macro screens out various instances of `install' known not to
work. It prefers to find a C program rather than a shell script,
for speed. [...]
Autoconf comes with a copy of `install-sh' that you can use. If
you use `AC_PROG_INSTALL', you must include either `install-sh' or
`install.sh' in your distribution, or `configure' will produce an
error message saying it can't find them--even if the system you're
on has a good `install' program. This check is a safety measure
to prevent you from accidentally leaving that file out, which
would prevent your package from installing on systems that don't
have a BSD-compatible `install' program.
So I guess we should also prefer install program for speed, even if we
do not use ./configure script.
--
Jakub Narębski
Poland
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Installing on AIX fails
2010-06-06 22:26 ` Jakub Narebski
@ 2010-06-06 22:29 ` Ævar Arnfjörð Bjarmason
0 siblings, 0 replies; 18+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2010-06-06 22:29 UTC (permalink / raw)
To: Jakub Narebski; +Cc: Dario Rodriguez, Tor Arntsen, git
On Sun, Jun 6, 2010 at 22:26, Jakub Narebski <jnareb@gmail.com> wrote:
> So I guess we should also prefer install program for speed, even if we
> do not use ./configure script.
Is the time it takes to run install, whether it's a shell script or C
program, really an issue?
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2010-06-06 22:29 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-03 15:32 Installing on AIX fails Dario Rodriguez
2010-06-03 15:41 ` Ævar Arnfjörð Bjarmason
[not found] ` <AANLkTikfQdwDoZylaKC_siuwaLrLP4JkMh2fnvwNbxqe@mail.gmail.com>
2010-06-03 20:21 ` Ævar Arnfjörð Bjarmason
2010-06-03 21:22 ` Dario Rodriguez
2010-06-04 14:28 ` Ævar Arnfjörð Bjarmason
2010-06-04 15:07 ` Dario Rodriguez
2010-06-03 16:12 ` Michael J Gruber
2010-06-04 9:13 ` Tor Arntsen
2010-06-04 9:17 ` Tor Arntsen
2010-06-04 14:22 ` Dario Rodriguez
2010-06-04 14:38 ` Tor Arntsen
2010-06-04 17:21 ` Dario Rodriguez
2010-06-04 17:44 ` Ævar Arnfjörð Bjarmason
2010-06-04 21:03 ` Dario Rodriguez
2010-06-05 11:44 ` Jakub Narebski
2010-06-05 21:59 ` Dario Rodriguez
2010-06-06 22:26 ` Jakub Narebski
2010-06-06 22:29 ` Ævar Arnfjörð Bjarmason
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).