Re: Installing on AIX fails

4 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: Installing on AIX fails

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:48:54

On Thu, Jun 3, 2010 at 20:01, Dario Rodriguez [off-list ref] wrote:
On Thu, Jun 3, 2010 at 12:41 PM, Ævar Arnfjörð Bjarmason
[off-list ref] wrote:
quoted
On Thu, Jun 3, 2010 at 15:32, Dario Rodriguez [off-list ref] wrote:
quoted
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?
quoted
quoted
$ /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.
quoted
quoted
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

Re: Installing on AIX fails

From: Dario Rodriguez <hidden>
Date: 2016-06-15 22:48:54

On Thu, Jun 3, 2010 at 5:21 PM, Ævar Arnfjörð Bjarmason
[off-list ref] wrote:
On Thu, Jun 3, 2010 at 20:01, Dario Rodriguez [off-list ref] wrote:
quoted
On Thu, Jun 3, 2010 at 12:41 PM, Ævar Arnfjörð Bjarmason
[off-list ref] wrote:
quoted
On Thu, Jun 3, 2010 at 15:32, Dario Rodriguez [off-list ref] wrote:
quoted
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...

quoted
quoted
quoted
$ /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.
quoted
quoted
quoted
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

Re: Installing on AIX fails

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:48:54

On Thu, Jun 3, 2010 at 21:22, Dario Rodriguez [off-list ref] wrote:
On Thu, Jun 3, 2010 at 5:21 PM, Ævar Arnfjörð Bjarmason
quoted
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.
quoted
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.
quoted
quoted
quoted
quoted
$ /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.
quoted
quoted
quoted
quoted
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.

Re: Installing on AIX fails

From: Dario Rodriguez <hidden>
Date: 2016-06-15 22:48:54

On Fri, Jun 4, 2010 at 11:28 AM, Ævar Arnfjörð Bjarmason
[off-list ref] wrote:
On Thu, Jun 3, 2010 at 21:22, Dario Rodriguez [off-list ref] wrote:
quoted
On Thu, Jun 3, 2010 at 5:21 PM, Ævar Arnfjörð Bjarmason
quoted
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.
quoted
quoted
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.
quoted
quoted
quoted
quoted
quoted
$ /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.
quoted
quoted
quoted
quoted
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 <redacted>
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help