[GRASS-dev] [GRASS-user] can not install addons with g.extension

Hi,

2015-02-09 18:34 GMT+01:00 Martin Landa <landa.martin@gmail.com>:

Right, `/usr/lib/grass70/tools/` contains `g.html2man`. This is
probably related to the packaging, my local sample installation (make
install from source code) contains `g.html2man.py` in the `tools`
directory.

it's here [1]. I am not sure why .py is removed (any Debian packager
expert here?)

Martin

[1] http://bazaar.launchpad.net/~grass/grass/grass70_release_debian/view/head:/rules#L182

--
Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.eu/mentors/landa

Hi

problem with missing `g.html2man.py` still exists in daily ubuntu pacakges of
GRASS 7.0

The rules file (lines 180-183) contains rules for
tools/mkhtml.py
tools/g.html2man

I have no idea why they are treated differently.
One with '.py' and the other without.

cheers
  Robert

2015-02-09 18:34 GMT+01:00 Martin Landa <landa.martin@gmail.com>:
> Right, `/usr/lib/grass70/tools/` contains `g.html2man`. This is
> probably related to the packaging, my local sample installation (make
> install from source code) contains `g.html2man.py` in the `tools`
> directory.

it's here [1]. I am not sure why .py is removed (any Debian packager
expert here?)

Martin

[1]
http://bazaar.launchpad.net/~grass/grass/grass70_release_debian/view/head:/
rules#L182

Hi,

2015-02-13 15:05 GMT+01:00 Robert Nuske <rnuske@gwdg.de>:

The rules file (lines 180-183) contains rules for
tools/mkhtml.py
tools/g.html2man

I have no idea why they are treated differently.
One with '.py' and the other without.

I don't know, I hoped that someone who knows Debian packaging better
will answer. There is also need to replace these files on Launchpad by
upstream files from Debian. Note that also grass71 packaging is
currently broken on Launchpad from unknown reason (bearing in mind
that the files are the same).

Martin

--
Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.eu/mentors/landa

Martin Landa wrote:

2015-02-09 18:34 GMT+01:00 Martin Landa <landa.martin@gmail.com>:
> Right, `/usr/lib/grass70/tools/` contains `g.html2man`. This is
> probably related to the packaging, my local sample installation (make
> install from source code) contains `g.html2man.py` in the `tools`
> directory.

it's here [1]. I am not sure why .py is removed (any Debian packager
expert here?)

Martin

[1] http://bazaar.launchpad.net/~grass/grass/grass70_release_debian/view/head:/rules#L182

Maybe someone assumed that the rules for scripts applied? On platforms
other than Windows, scripts are installed without the .py suffix.

But g.html2man.py retains the suffix on all platforms; from Grass.make:

HTML2MAN = VERSION_NUMBER=$(GRASS_VERSION_NUMBER) $(GISBASE)/tools/g.html2man.py

--
Glynn Clements <glynn@gclements.plus.com>

On 02/09/2015 06:37 PM, Martin Landa wrote:

2015-02-09 18:34 GMT+01:00 Martin Landa <landa.martin@gmail.com>:

Right, `/usr/lib/grass70/tools/` contains `g.html2man`. This is
probably related to the packaging, my local sample installation (make
install from source code) contains `g.html2man.py` in the `tools`
directory.

it's here [1]. I am not sure why .py is removed (any Debian packager
expert here?)

This is for compliance with the Debian Policy, specifically section 10.4
Scripts:

"
When scripts are installed into a directory in the system PATH, the
script name should not include an extension such as .sh or .pl that
denotes the scripting language currently used to implement it.
"

https://www.debian.org/doc/debian-policy/ch-files.html#s-scripts

It is a "should" requirement, so it's not a hard requirement. We had to
reinstate .py extention for GDAL scripts because it broke the QGIS
plugin for example.

http://hub.qgis.org/issues/9924

The Debian package for GRASS installs most scripts under
/usr/lib/grassNN and not in $PATH, which is another reason that
stripping the extension is not required.

Kind Regards,

Bas

--
GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146 50D1 6750 F10A E88D 4AF1

Hi,

2015-02-14 9:21 GMT+01:00 Sebastiaan Couwenberg <sebastic@xs4all.nl>:

[...]

https://www.debian.org/doc/debian-policy/ch-files.html#s-scripts

It is a "should" requirement, so it's not a hard requirement. We had to
reinstate .py extention for GDAL scripts because it broke the QGIS
plugin for example.

this is similar case, I am not sure what is better, to break Debian
rule or to change a rule in Grass.make... ?

Martin

--
Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.eu/mentors/landa

On 02/14/2015 09:32 AM, Martin Landa wrote:

2015-02-14 9:21 GMT+01:00 Sebastiaan Couwenberg <sebastic@xs4all.nl>:

https://www.debian.org/doc/debian-policy/ch-files.html#s-scripts

It is a "should" requirement, so it's not a hard requirement. We had to
reinstate .py extention for GDAL scripts because it broke the QGIS
plugin for example.

this is similar case, I am not sure what is better, to break Debian
rule or to change a rule in Grass.make... ?

Since the script in question is not in $PATH it's safe to ignore the
Policy for it.

Kind Regards,

Bas

--
GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146 50D1 6750 F10A E88D 4AF1

Hi,

2015-02-14 9:39 GMT+01:00 Sebastiaan Couwenberg <sebastic@xs4all.nl>:

Since the script in question is not in $PATH it's safe to ignore the
Policy for it.

OK, done in [1]. Martin

[1] http://bazaar.launchpad.net/~grass/grass/grass70_release_debian/revision/46

--
Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.eu/mentors/landa

Hi,

2015-02-13 15:05 GMT+01:00 Robert Nuske <rnuske@gwdg.de>:

The rules file (lines 180-183) contains rules for
tools/mkhtml.py
tools/g.html2man

I have no idea why they are treated differently.
One with '.py' and the other without.

I have added py extension in `rules` file [1] and requested for the
new build. Should be available in 10min.

Martin

[1] http://bazaar.launchpad.net/~grass/grass/grass70_release_debian/revision/46

--
Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.eu/mentors/landa

Hi Martin,

I have added py extension in `rules` file [1] and requested for the
new build. Should be available in 10min.

Thanks for the fix.
It already percolated into the ubuntu package grass70
Version: 7.0.0+1svn64634~ubuntu14.04.1

g.extension fails now because it can not find the html module.

[...]
Traceback (most recent call last):
  File "/usr/lib/grass70/tools/g.html2man.py", line 5, in <module>
    from html import HTMLParser, HTMLParseError
ImportError: No module named html
[...]

I put "print(sys.version)" in g.html2man.py to get the python version as seen
by the script and received:
"2.7.6 (default, Mar 22 2014, 22:59:56)"

cheers
  robert

Robert Nuske wrote:

> I have added py extension in `rules` file [1] and requested for the
> new build. Should be available in 10min.

Thanks for the fix.
It already percolated into the ubuntu package grass70
Version: 7.0.0+1svn64634~ubuntu14.04.1

g.extension fails now because it can not find the html module.

[...]
Traceback (most recent call last):
  File "/usr/lib/grass70/tools/g.html2man.py", line 5, in <module>
    from html import HTMLParser, HTMLParseError
ImportError: No module named html
[...]

It's in the tools directory (along with groff.py, which is also
required). But the rules file doesn't appear to install those.

--
Glynn Clements <glynn@gclements.plus.com>

Thanks Glynn!

> > I have added py extension in `rules` file [1] and requested for the
> > new build. Should be available in 10min.
>
> Thanks for the fix.
> It already percolated into the ubuntu package grass70
> Version: 7.0.0+1svn64634~ubuntu14.04.1
>
>
> g.extension fails now because it can not find the html module.
>
> [...]
>
> Traceback (most recent call last):
> File "/usr/lib/grass70/tools/g.html2man.py", line 5, in <module>
>
> from html import HTMLParser, HTMLParseError
>
> ImportError: No module named html
> [...]

It's in the tools directory (along with groff.py, which is also
required). But the rules file doesn't appear to install those.

Comparing the contents of the directory 'tools' from the ubuntu package and
the built from source:

$ ls -l /usr/lib/grass70/tools
total 16
-rwxr-xr-x 1 root root 1501 Feb 17 17:00 g.html2man.py
-rwxr-xr-x 1 root root 8449 Feb 17 17:00 mkhtml.py

$ ls -l /usr/local/src/grass70/dist.x86_64-unknown-linux-gnu/tools
total 60
-rwxrwxr-x 1 rnuske rnuske 6240 Feb 17 11:27 g.echo
-rwxr-xr-x 1 rnuske rnuske 1501 Feb 17 11:27 g.html2man.py
-rw-r--r-- 1 rnuske rnuske 5940 Feb 17 11:27 groff.py
-rw-r--r-- 1 rnuske rnuske 10174 Feb 17 11:27 groff.pyc
-rw-r--r-- 1 rnuske rnuske 5384 Feb 17 11:27 html.py
-rw-r--r-- 1 rnuske rnuske 6892 Feb 17 11:27 html.pyc
-rwxr-xr-x 1 rnuske rnuske 8449 Feb 17 11:27 mkhtml.py

There is at least groff.py and html.py missing in the ubuntu package.
No idea about 'g.echo'.

Martin could you (or somebody else knowledgeable) add these two to the rules
probably below line 183 [1] ?

[1]
http://bazaar.launchpad.net/~grass/grass/grass70_release_debian/view/head:/rules#L183

Thanks a lot
  Robert

Hi,

2015-02-18 11:09 GMT+01:00 Robert Nuske <rnuske@gwdg.de>:

$ ls -l /usr/local/src/grass70/dist.x86_64-unknown-linux-gnu/tools
total 60
-rwxrwxr-x 1 rnuske rnuske 6240 Feb 17 11:27 g.echo
-rwxr-xr-x 1 rnuske rnuske 1501 Feb 17 11:27 g.html2man.py
-rw-r--r-- 1 rnuske rnuske 5940 Feb 17 11:27 groff.py
-rw-r--r-- 1 rnuske rnuske 10174 Feb 17 11:27 groff.pyc
-rw-r--r-- 1 rnuske rnuske 5384 Feb 17 11:27 html.py
-rw-r--r-- 1 rnuske rnuske 6892 Feb 17 11:27 html.pyc
-rwxr-xr-x 1 rnuske rnuske 8449 Feb 17 11:27 mkhtml.py

There is at least groff.py and html.py missing in the ubuntu package.
No idea about 'g.echo'.

Martin could you (or somebody else knowledgeable) add these two to the rules
probably below line 183 [1] ?

done in [1]. I requested new build right now, should be available in
15min for testing. Martin

[1] http://bazaar.launchpad.net/~grass/grass/grass70_release_debian/revision/47

--
Martin Landa
http://geo.fsv.cvut.cz/gwiki/Landa
http://gismentors.eu/mentors/landa

Hi (also in the other thread)

Good News!
Thanks to Glynn's hint and Martin's fixes the daily grass70 package from
ppa:grass-devel is now able to manage addons with g.extension.

Thanks a lot for your help!

cheers,
  robert

Am Mittwoch, 18. Februar 2015, 20:14:38 schrieb Martin Landa:

Hi,

2015-02-18 11:09 GMT+01:00 Robert Nuske <rnuske@gwdg.de>:
> $ ls -l /usr/local/src/grass70/dist.x86_64-unknown-linux-gnu/tools
> total 60
> -rwxrwxr-x 1 rnuske rnuske 6240 Feb 17 11:27 g.echo
> -rwxr-xr-x 1 rnuske rnuske 1501 Feb 17 11:27 g.html2man.py
> -rw-r--r-- 1 rnuske rnuske 5940 Feb 17 11:27 groff.py
> -rw-r--r-- 1 rnuske rnuske 10174 Feb 17 11:27 groff.pyc
> -rw-r--r-- 1 rnuske rnuske 5384 Feb 17 11:27 html.py
> -rw-r--r-- 1 rnuske rnuske 6892 Feb 17 11:27 html.pyc
> -rwxr-xr-x 1 rnuske rnuske 8449 Feb 17 11:27 mkhtml.py
>
>
> There is at least groff.py and html.py missing in the ubuntu package.
> No idea about 'g.echo'.
>
>
> Martin could you (or somebody else knowledgeable) add these two to the
> rules probably below line 183 [1] ?

done in [1]. I requested new build right now, should be available in
15min for testing. Martin

[1]
http://bazaar.launchpad.net/~grass/grass/grass70_release_debian/revision/47

Robert Nuske wrote:

There is at least groff.py and html.py missing in the ubuntu package.
No idea about 'g.echo'.

AFAIK, g.echo is only required on Windows, and only by the build
system. From include/Make/Rules.make:

  ifneq ($(MINGW),)
  mkpath = $(shell $(TOOLSDIR)/g.echo$(EXE) $(1));$(2)
  else
  mkpath = $(1):$(2)
  endif

Here, g.echo is used as a simple hack for converting filenames from
MSys format to Windows' native format. MSys' shell converts filenames
when passing them to an executable which isn't part of MSys; g.echo
just writes its sole argument (which will already have been converted)
to stdout.

--
Glynn Clements <glynn@gclements.plus.com>