[Ann] managesieve v0.8 released

2024-03-18 Thread Hartmut Goebel via Python-list

Announcing:

 managesieve 0.8

    RFC-5804 Manage Sieve client library for remotely managing Sieve 
scripts,

    including an user application (the interactive 'sieveshell').

:Homepage: https://managesieve.readthedocs.io/
:Author:   Hartmut Goebel 
:License:
  - for the managesieve module: Python-Software-Foundation-like License
  - for sieveshell and test suite: GNU Public Licence v3 (GPLv3)

:Quick Installation:
    pip install -U managesieve

:Tarballs:  https://pypi.org/project/managesieve/#files


What is managesieve?
-

A ManageSieve client library for remotely managing Sieve scripts,
including an user application (the interactive 'sieveshell').

Sieve scripts allow users to filter incoming email on the mail server
and are supported by many IMAP servers.
The ManageSieve protocol allows managing Sieve scripts on a remote
mail server. These servers are commonly sealed so users cannot log
into them, yet users must be able to update their scripts on them.
This is what for the "ManageSieve" protocol is. For more information
about the ManageSieve protocol see `RFC 5804
<http://tools.ietf.org/html/rfc5804>`_.

This module allows accessing a Sieve-Server for managing Sieve scripts
there. It is accompanied by a simple yet functional user application
'sieveshell'.


Changes since last release
---

* Now supports Python 3.6 to 3.12.

:managesieve:
   - Add support for the UNAUTHENTICATE command.
   - Add a socket timeout parameter.
   - Add support for IPv6.
   - Allow disabling certificate verification.
   - Follow the 'Logging for a Library' guideline.
   - BREAKING: Rearrange DEBUG logging levels to be more reasonable.
 See `docs/Logging.rst` for details.

:sieveshell:
   - Add option '--no-tls-verify'.
   - Improve error message if TLS certificate verification fails.
   - Keep line-endings on file IO.
   - Remove temporary file on successful edit, too.
   - Fix: Pass to sieve.login() the Authorization ID

:general:
   - Add support for Python 3.12.
   - Improve testing, add a tox.ini file and add CI/CD.
   - Fix SPDX license identifier.
   - Fix several typos.
   - Lint all the code.
   - Remove unused code.

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

--
https://mail.python.org/mailman/listinfo/python-list


[Python-announce] ANN: pdfdecrypt 1.0

2022-12-10 Thread Hartmut Goebel

I'm pleased to announce pdfdecrypt 1.0, a command line tool to
remove passwords from PDF documents.  It will read the encrypted
document, ask for the password and write the decrypted document
without touching any internal structure.


:Licence:    GNU Affero General Public License v3 or later (AGPLv3+)
:Homepage:   https://pdfdecrypt.readthedocs.io/
:Repository: https://gitlab.com/pdftools/pdfdecrypt/


Download
---

:Quick Installation:
    pip install -U pdfdecrypt



Relevant Changes since last release
---

* Initial release

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

___
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: arch...@mail-archive.com


ANN: pdfdecrypt 1.0

2022-12-10 Thread Hartmut Goebel

I'm pleased to announce pdfdecrypt 1.0, a command line tool to
remove passwords from PDF documents.  It will read the encrypted
document, ask for the password and write the decrypted document
without touching any internal structure.


:Licence:    GNU Affero General Public License v3 or later (AGPLv3+)
:Homepage:   https://pdfdecrypt.readthedocs.io/
:Repository: https://gitlab.com/pdftools/pdfdecrypt/


Download
---

:Quick Installation:
    pip install -U pdfdecrypt



Relevant Changes since last release
---

* Initial release

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

--
https://mail.python.org/mailman/listinfo/python-list


ANN: pdfposter 0.8.1 - scale and tile PDF pages to print on multiple sheets

2022-11-04 Thread Hartmut Goebel

I'm pleased to announce pdftools.pdfposter 0.8.1, a tool to scale and
tile PDF images/pages to print on multiple pages.

:Homepage:  https://pdfposter.readthedocs.io/
:Author:    Hartmut Goebel 
:License:   GNU Public License v3 or later (GPL-3.0-or-later)

:Quick Installation:
    pip install -U pdftools.pdfposter

:Tarballs:  https://pypi.org/project/pdftools.pdfposter/#files


What is pdfposter?


Scale and tile PDF images/pages to print on multiple pages.

``Pdfposter`` can be used to create a large poster by building it from
multiple pages and/or printing it on large media. It expects as input a
PDF file, normally printing on a single page. The output is again a
PDF file, maybe containing multiple pages together building the
poster.
The input page will be scaled to obtain the desired size.

This is much like ``poster`` does for Postscript files, but working
with PDF. Since sometimes poster does not like your files converted
from PDF. :-) Indeed ``pdfposter`` was inspired by ``poster``.

For more information please refer to the manpage or visit
the `project homepage <https://pdfposter.readthedocs.io/>`_.


What's new in version 0.8.1
-

* This is a bug-fix release for release 0.8.

What's new in version 0.8
-

* Be less strict when reading PDF files.

* Enhance some help messages.

* Drop support for Python 2 and Python <= 3.5. Minimum supported 
versions are

  now 3.6 to 3.10.

* Internal changes:

  - Update required version of `PyPDF` to 2.1.1.
  - Enhance code quality.

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

--
https://mail.python.org/mailman/listinfo/python-list


Re: virtualenv and make DESTDIR=

2022-03-05 Thread Hartmut Goebel

Am 05.03.22 um 17:34 schrieb Barry Scott:

Have the RPM install all the pythone code and dependencies and also install a 
short script that
sets up PYTHONPATH, LD_LIBRARY_PATH, etc and execs the python3 .py.


The scripts are already created by entry-points. So basically this means 
to reinvent the wheel. Or did I miss something?


--
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software 
Development


Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: 
https://www.goe-con.de/blog/eilt-petition-auf-weact-gegen-vds-jetzt-unterschreiben 

Kolumne: 
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2011-11-in-troja-nichts-neues 


--
https://mail.python.org/mailman/listinfo/python-list


virtualenv and make DESTDIR=

2022-03-04 Thread Hartmut Goebel

Hi,

How can I make installing a virtual environment honor DESTDIR? How can I 
install a virtual environment in $(DESTDIR)$(PREFIX), which behaves as 
being set-up in $(PREFIX)? (Of course, this virtual environment can not 
be used. My aim is to ship it as part of a rpm package)


In Makefiles is good practice to honor DESTDIR in the "install" target, 
like this


install:
    install -t $(DESTDIR)$(PREFIX)/bin build/bin/my-tool

Now when running

    python3 -m venv $(DESTDIR)$(PREFIX)

all paths in this virtual environment refer to $(DESTDIR)$(PREFIX) 
instead of just $$(PREFIX)


Any ideas?


Background:

More about DESTDIR: 
https://www.gnu.org/prep/standards/html_node/DESTDIR.html


Following Redhat's commendations, I want to install my (somewhat 
complex) software into /opt/my-software. To make it easier for users to 
use the software, my idea was to setup a virtual environment in 
/opt/my-software. Thus users can easily use /opt/my-software/bin/python 
and have the library provided by my-software available. My Software also 
includes some scripts, which will also reside in /opt/my-software/bin 
and refer to /opt/my-software/bin/python. This will avoid to require 
users to set up PYTHONPATH when thy want to use MY Software.



--
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software 
Development


Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: https://www.goe-con.de/blog/why-a-pki-is-barely-trustworthy
Kolumne: 
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2011-11-in-troja-nichts-neues 


--
https://mail.python.org/mailman/listinfo/python-list


[ANN] managesieve 0.7

2021-03-06 Thread Hartmut Goebel
Announcing:

 managesieve 0.7

    ManageSieve client library for remotely managing Sieve scripts,
    including an user application (the interactive 'sieveshell').

:Homepage: https://managesieve.readthedocs.io/
:Author:   Hartmut Goebel 
:License:
  - for the managesieve module: Python-Software-Foundation-like License
  - for sieveshell and test suite: GNU Public Licence v3 (GPLv3)

:Quick Installation:
    pip install -U managesieve

:Tarballs:  https://pypi.org/project/managesieve/#files


What is managesieve?
-

A ManageSieve client library for remotely managing Sieve scripts,
including an user application (the interactive 'sieveshell').

Sieve scripts allow users to filter incoming email on the mail server.
The ManageSieve protocol allows managing Sieve scripts on a remote
mail server. These servers are commonly sealed so users cannot log
into them, yet users must be able to update their scripts on them.
This is what for the "ManageSieve" protocol is. For more information
about the ManageSieve protocol see `RFC 5804
<http://tools.ietf.org/html/rfc5804>`_.

This module allows accessing a Sieve-Server for managing Sieve scripts
there. It is accompanied by a simple yet functional user application
'sieveshell'.


Changes since last release
---

* Minimum required Python version is now Python 3.6.

:sieveshell:

   - For ``get`` and ``put`` expand ``~`` and ``~user`` constructions in
 `filename` . For ``put``, if script-name is not given, the file's
 basename is used.

:managesieve:
   - Fix error when constructing debug error message.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

___
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: arch...@mail-archive.com


[ANN] python-ghostscript 0.7

2021-03-06 Thread Hartmut Goebel
Announcing:
 

   python-ghostscript 0.7

   A Python-Interface to the Ghostscript
                 C-API using ctypes

:License: GNU General Public License v3 or later (GPLv3+)
:Author:  Hartmut Goebel 
:Homepage: https://gitlab.com/pdftools/python-ghostscript
:Download: https://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-API using `ctypes`__. Both a low-level and a pythonic,
high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Changes since last release


* BREAKING: ``Ghostscript()`` no longer allows passing arbitrary
  keyword arguments.

* The high-level interface now allows passing unicode strings as
  arguments. Passing bytes as arguments is still possible, but now
  deprecated.

* The high-level interface now requires ghostscript >= 9.0.8 (released
  2013-08-14).

* Allow multiple Ghostscript instances. Actually using this requires
  the library is compiled with -DGS_THREADSAFE.

* Ensure proper clean-up on error.

* High-level revision() now returns unicode strings instead of byte
  strings.

* Add low-level interface for set_arg_encoding().

* Miscellaneous small fixes.

* Drop support for Python 2.7, 3.4 and 3.5.
  Minimum required Python version is now 3.6.


Example


Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

  import sys
  import ghostscript

  args = [
  "ps2pdf",    # actual value doesn't matter
  "-dNOPAUSE", "-dBATCH", "-dSAFER",
  "-sDEVICE=pdfwrite",
  "-sOutputFile=" + sys.argv[1],
  "-c", ".setpdfwrite",
  "-f",  sys.argv[2]
  ]

  ghostscript.Ghostscript(*args)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

___
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: arch...@mail-archive.com


[ANN] PyInstaller 4.2

2021-01-13 Thread Hartmut Goebel

Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 4.2.

   http://www.pyinstaller.org  <http://www.pyinstaller.org>

Thanks for all those who contributed questions, bug-reports or
pull-requests.


PyInstaller is in urgent need of funding to make future security fixes
happen, see<https://github.com/pyinstaller/pyinstaller/issues/4404>  for
details.


=== Important Changes ===

Release 4.2 adds support for Python 3.8 and 3.9,
is able to find binary dependencies of Anaconda distributions,
includes fixes for some endless recursion cases (more to be
fixed in the next release), and code for the sw_64 architecture.

Of course there are again quite some bug-fixes and update to core hooks.

This will be the last version supporting Python 3.5.
The last version supporting Python 2.7 was PyInstaller 3.6.

The full changelog for this release can be found at:
https://pyinstaller.readthedocs.io/en/v4.2/CHANGES.html


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.


=== Help keeping PyInstaller alive ===

Maintaining PyInstaller is a huge amount of work.
PyInstaller development can only continue
if users and companies provide sustainable funding.
Please consider recurring donations.
Seehttp://www.pyinstaller.org/funding.html  for how
to support PyInstaller.


=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===



The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v4.0/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker:https://github.com/pyinstaller/pyinstaller/issues  
<https://github.com/pyinstaller/pyinstaller/issues>
 Mailing list:http://groups.google.com/group/PyInstaller  
<http://groups.google.com/group/PyInstaller>

--
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software 
Development


Goebel Consult, Landshut
http://www.goebel-consult.de <http://www.goebel-consult.de>

Blog: 
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten 
<http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten> 

Kolumne: 
http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse 
<http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse>


___
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: arch...@mail-archive.com


Re: Best-practice for formatted string literals and localization?

2020-12-07 Thread Hartmut Goebel

Am 01.12.20 um 19:40 schrieb Dieter Maurer:

Usually, the translation machinery has special ways to
provide parameters for translations.
For example with `zope.i18nmessageid`, you can use
`_(msg, mapping=)` to provide parameters
to the translations -- as in your case `count`).
Check, what parameter support your translation machinery support.


Thanks for this hint. I'm using the stdlib, which AFAIU does not support 
that. (Anyhow it would be easy to implement such a wrapper)


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

--
https://mail.python.org/mailman/listinfo/python-list


Re: Best-practice for formatted string literals and localization?

2020-12-07 Thread Hartmut Goebel

Am 30.11.20 um 19:58 schrieb Chris Angelico:

Not really, no.


Thanks for confirming my apprehension.

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

--
https://mail.python.org/mailman/listinfo/python-list


Best-practice for formatted string literals and localization?

2020-11-30 Thread Hartmut Goebel

Hi,

formatted string literals are great, but can't be used together with 
localization:


   _(f"These are {count} stones")

will crash babel ("NameError: name 'count' is not defined". And even it 
it would succeed, the *evaluated* string would be passed to "_(…)", 
resulting in a not-translated string.


Is there a better solution than

   _("These are {count} stones").format(count=count)

("Better" = without passing args or kwargs to `format()`)

--
Regards
Hartmut Goebel

| Hartmut Goebel  |h.goe...@crazy-compilers.com|
|www.crazy-compilers.com  | compilers which you thought are impossible |

--
https://mail.python.org/mailman/listinfo/python-list


[issue42050] ensurepip fails if cwd contains illformed setup.cf

2020-10-16 Thread Hartmut Goebel

New submission from Hartmut Goebel :

If the current directory contains a ill-formed setup.cfg, setting up a virtual 
env fails, caused by ensurepip failing:

Expected behaviour:
running ensurepip should completely ignore the content of the current working 
directory.

How to reproduce:

$ rm -rf /tmp/v2
$ mkdir /tmp/v2
$ cd /tmp/v2
$ cat > setup.cfg < [options]
> setuptools_requires
> EOF
$ python3 -m venv /tmp/v2/_venv
Error: Command '['/tmp/v2/_venv/bin/python3', '-Im', 'ensurepip', '--upgrade', 
'--default-pip']' returned non-zero exit status 2.
$ /tmp/v2/_venv/bin/python3 -Im ensurepip --upgrade --default-pip
Looking in links: /tmp/tmpimoh6tke
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Exception:
…
configparser.ParsingError: Source contains parsing errors: 'setup.cfg'
[line  2]: 'setuptools_requires\n'


Environment:
Tested with both Python 3.8.2 and 3.7.6

--
components: Library (Lib)
messages: 378706
nosy: htgoebel
priority: normal
severity: normal
status: open
title: ensurepip fails if cwd contains illformed setup.cf
type: crash
versions: Python 3.7, Python 3.8

___
Python tracker 
<https://bugs.python.org/issue42050>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[ANN] PyInstaller 4.0

2020-08-09 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 4.0.

   http://www.pyinstaller.org

Thanks for all those who contributed questions, bug-reports or
pull-requests.


PyInstaller is in urgent need of funding to make future security fixes
happen, see <https://github.com/pyinstaller/pyinstaller/issues/4404> for
details.


=== Important Changes ===

Release 4.0 adds support for 3rd-party packages to provide PyInstaller hooks
along with the package. This allows Maintainers of other Python packages to
deliver up-to-date PyInstaller hooks as part of their package.
See our sample project <https://github.com/pyinstaller/hooksample> for more 
information.

PyInstaller uses this option itself to provide updated hooks much faster:
Many hooks are moved into the new package pyinstaller-hooks-contrib 
<https://github.com/pyinstaller/pyinstaller-hooks-contrib>,
which is updated monthly.
This package is installed automatically when installing PyInstaller,
but can also be updated independently.

Finally, this version drops support for Python 2.7,
which is end-of-life since January 2020..
The minimum required version is now Python 3.5.
The last version supporting Python 2.7 was PyInstaller 3.6.

The full changelog for this release can be found at:
https://pyinstaller.readthedocs.io/en/v4.0/CHANGES.html


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.


=== Help keeping PyInstaller alive ===

Maintaining PyInstaller is a huge amount of work.
PyInstaller development can only continue
if users and companies provide sustainable funding.
Please consider recurring donations.
See http://www.pyinstaller.org/funding.html for how
to support PyInstaller.


=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===



The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v4.0/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

___
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/
Member address: arch...@mail-archive.com


[ANN] PyInstaller 4.0

2020-08-09 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 4.0.

   http://www.pyinstaller.org

Thanks for all those who contributed questions, bug-reports or
pull-requests.


PyInstaller is in urgent need of funding to make future security fixes
happen, see <https://github.com/pyinstaller/pyinstaller/issues/4404> for
details.


=== Important Changes ===

Release 4.0 adds support for 3rd-party packages to provide PyInstaller hooks
along with the package. This allows Maintainers of other Python packages to
deliver up-to-date PyInstaller hooks as part of their package.
See our sample project <https://github.com/pyinstaller/hooksample> for more 
information.

PyInstaller uses this option itself to provide updated hooks much faster:
Many hooks are moved into the new package pyinstaller-hooks-contrib 
<https://github.com/pyinstaller/pyinstaller-hooks-contrib>,
which is updated monthly.
This package is installed automatically when installing PyInstaller,
but can also be updated independently.

Finally, this version drops support for Python 2.7,
which is end-of-life since January 2020..
The minimum required version is now Python 3.5.
The last version supporting Python 2.7 was PyInstaller 3.6.

The full changelog for this release can be found at:
https://pyinstaller.readthedocs.io/en/v4.0/CHANGES.html


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.


=== Help keeping PyInstaller alive ===

Maintaining PyInstaller is a huge amount of work.
PyInstaller development can only continue
if users and companies provide sustainable funding.
Please consider recurring donations.
See http://www.pyinstaller.org/funding.html for how
to support PyInstaller.


=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===



The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v4.0/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] PyInstaller 3.6

2020-01-09 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.6.

This version fixes a Local Privilege Escalation vulnerability effecting all 
Windows software frozen
by PyInstaller in "onefile" mode - no matter which version of PyInstaller was 
used.

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


PyInstaller is in urgent need of funding to make future security fixes
happen, see <https://github.com/pyinstaller/pyinstaller/issues/4404> for
details.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.


=== Help keeping PyInstaller alive ===

Maintaining PyInstaller is a huge amount of work.
PyInstaller development can only continue
if users and companies provide sustainable funding.
Please consider recurring donations.
See http://www.pyinstaller.org/funding.html for how
to support PyInstaller.


=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===

* Fixes a Local Privilege Escalation vulnerability effecting all Windows
  software frozen vy PyInstaller in "onefile" mode.


* More then 20 hooks added, more then 15 hooks fixed or improved.

* More then 20 bugs fixed.

* Python 3.4 is no longer tested, since this version is
  end-of-life already.

The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v3.6/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

--
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN][SECURITY] Local Privilege Escalation in all Windows software frozen by PyInstaller in "onefile" mode

2020-01-09 Thread Hartmut Goebel
Severity: high: CVSSv3 score: 7.0
Packages: PyInstaller (Windows)
Affected versions:  <= 3.5
Patched versions: 3.6, available at https://pypi.org/project/PyInstaller/
CVE identifier: CVE-2019-16784


  Impact

*Local Privilege Escalation *in all *Windows software frozen by
PyInstaller* in "onefile" mode, caused by insecure directory permissions
of sys._MEIPATH.

While PyInstaller itself was not vulnerable, *all Windows software
frozen by PyInstaller in “onefile” mode is vulnerable.*

The vulnerability is present only on Windows and in this particular
case: If a /software frozen by PyInstaller in "onefile" mode/**is
launched by a (privileged) user who has /his/her "TempPath" resolving to
a world writable directory/. This is the case e.g. if the software is
launched as a service or as a scheduled task using a system account (in
which case TempPath will default to C:\Windows\Temp).

In order to be exploitable the software has to be (re)started after the
attacker has launched the exploit program. So for a service launched at
startup, a service restart is needed (e.g. after a crash or an upgrade).

While PyInstaller itself was not vulnerable, all Windows software frozen
by PyInstaller in "onefile" mode is vulnerable.

CVSSv3 score: 7.0 (High)
CVSSv3 vector: CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H


  Patches

The problem is patched in commits 42a67148b3bdf9 (fixed code)
<https://github.com/pyinstaller/pyinstaller/commit/42a67148b3bdf9211fda8499fdc5b63acdd7e6cc>
and be948cf09547 (recompiled bootloaders)
<https://github.com/pyinstaller/pyinstaller/commit/be948cf0954707671aa499da17b10c86b6fa5e5c>.
Users should upgrade to PyInstaller version 3.6 and rebuild their
software. The new version is available at
https://pypi.org/project/PyInstaller/


  Workarounds

There is no known workaround: Users using PyInstaller to freeze their
Windows software using "onefile" mode should upgrade PyInstaller and
rebuild their software. The new version is available at
https://pypi.org/project/PyInstaller/


  Credits

This vulnerability was discovered and reported by Farid AYOUJIL
(@faridtsl), David HA, Florent LE NIGER and Yann GASCUEL (@lnv42) from
Alter Solutions (@AlterSolutions) and fixed in collaboration with
Hartmut Goebel (@htgoebel, maintainer of PyInstaller).


  Funding Development

PyInstaller is in urgent need of funding to make future security fixes
happen, see <https://github.com/pyinstaller/pyinstaller/issues/4404> for
details.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: https://www.goe-con.de/blog/e-mails-weiterhin-verschlusseln
Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2010-11-it-sicherheit-im-unternehmen-eine-interne-oder-externe-angelegenheit


--
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN][SECURITY] Local Privilege Escalation in all Windows software frozen by PyInstaller in "onefile" mode

2020-01-09 Thread Hartmut Goebel
Severity: high: CVSSv3 score: 7.0
Packages: PyInstaller (Windows)
Affected versions:  <= 3.5
Patched versions: 3.6, available at https://pypi.org/project/PyInstaller/
CVE identifier: CVE-2019-16784


  Impact

*Local Privilege Escalation *in all *Windows software frozen by
PyInstaller* in "onefile" mode, caused by insecure directory permissions
of sys._MEIPATH.

While PyInstaller itself was not vulnerable, *all Windows software
frozen by PyInstaller in “onefile” mode is vulnerable.*

The vulnerability is present only on Windows and in this particular
case: If a /software frozen by PyInstaller in "onefile" mode/**is
launched by a (privileged) user who has /his/her "TempPath" resolving to
a world writable directory/. This is the case e.g. if the software is
launched as a service or as a scheduled task using a system account (in
which case TempPath will default to C:\Windows\Temp).

In order to be exploitable the software has to be (re)started after the
attacker has launched the exploit program. So for a service launched at
startup, a service restart is needed (e.g. after a crash or an upgrade).

While PyInstaller itself was not vulnerable, all Windows software frozen
by PyInstaller in "onefile" mode is vulnerable.

CVSSv3 score: 7.0 (High)
CVSSv3 vector: CVSS:3.0/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H


  Patches

The problem is patched in commits 42a67148b3bdf9 (fixed code)
<https://github.com/pyinstaller/pyinstaller/commit/42a67148b3bdf9211fda8499fdc5b63acdd7e6cc>
and be948cf09547 (recompiled bootloaders)
<https://github.com/pyinstaller/pyinstaller/commit/be948cf0954707671aa499da17b10c86b6fa5e5c>.
Users should upgrade to PyInstaller version 3.6 and rebuild their
software. The new version is available at
https://pypi.org/project/PyInstaller/


  Workarounds

There is no known workaround: Users using PyInstaller to freeze their
Windows software using "onefile" mode should upgrade PyInstaller and
rebuild their software. The new version is available at
https://pypi.org/project/PyInstaller/


  Credits

This vulnerability was discovered and reported by Farid AYOUJIL
(@faridtsl), David HA, Florent LE NIGER and Yann GASCUEL (@lnv42) from
Alter Solutions (@AlterSolutions) and fixed in collaboration with
Hartmut Goebel (@htgoebel, maintainer of PyInstaller).


  Funding Development

PyInstaller is in urgent need of funding to make future security fixes
happen, see <https://github.com/pyinstaller/pyinstaller/issues/4404> for
details.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: https://www.goe-con.de/blog/e-mails-weiterhin-verschlusseln
Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2010-11-it-sicherheit-im-unternehmen-eine-interne-oder-externe-angelegenheit


-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] PyInstaller 3.6

2020-01-09 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.6.

This version fixes a Local Privilege Escalation vulnerability effecting all 
Windows software frozen
by PyInstaller in "onefile" mode - no matter which version of PyInstaller was 
used.

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


PyInstaller is in urgent need of funding to make future security fixes
happen, see <https://github.com/pyinstaller/pyinstaller/issues/4404> for
details.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.


=== Help keeping PyInstaller alive ===

Maintaining PyInstaller is a huge amount of work.
PyInstaller development can only continue
if users and companies provide sustainable funding.
Please consider recurring donations.
See http://www.pyinstaller.org/funding.html for how
to support PyInstaller.


=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===

* Fixes a Local Privilege Escalation vulnerability effecting all Windows
  software frozen vy PyInstaller in "onefile" mode.


* More then 20 hooks added, more then 15 hooks fixed or improved.

* More then 20 bugs fixed.

* Python 3.4 is no longer tested, since this version is
  end-of-life already.

The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v3.6/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: PyInstaller needs Funding by your Company

2020-01-07 Thread Hartmut Goebel
Am 07.01.20 um 17:19 schrieb Christian Gollwitzer:
> Am 07.01.20 um 15:09 schrieb Hartmut Goebel:
>> Maintianing PyInstaller at a proper level requires about 4 to 5 days per
>> month. Which means about 4,000 to 5,000 € per month and about 50,000 to
>> 60,000 € per year.
>
> these numbers sound odd to me. 4000€ - 5000€ per month or equivalently
> 60,000€ per year is the level of academic full-time jobs in Germany,
> i.e. that would be 4-5 days per week, not per month.
>
Based on the hourly rate calculator at gulp.de, the average rate for
software developers is 85 €. This is a very specialized job, and I'm
senior, thus my rate should be a bit higher. Also this has to compete
with the offerings I get as a InfoSec consultant, which are above.

Please also keep in mind: PyInstaller is used by eg. Google, Docker,
CarbonBlack, Siemens, and quite some other really big ones. There is no
reason for me to spend my spare-time to make them earn money.

(Also your figure seems to not take into account the "Lohnnebenkosten" -
health insurance, pension fond, etc.)

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
https://www.goe-con.de/blog/openstreetmaps-hat-google-maps-weit-ueberholt
Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2011-08-horrorszenario-bring-your-own-device


-- 
https://mail.python.org/mailman/listinfo/python-list


PyInstaller needs Funding by your Company

2020-01-07 Thread Hartmut Goebel
Hi,

as some of you might already know:

PyInstaller is in urgent need of funding. If you are working for a
company using PyInstaller, please make them pay their share. For details
see <https://github.com/pyinstaller/pyinstaller/issues/4404>

*If reasonable funding is not achieved until end of January 2020,
@htgoebel <https://github.com/htgoebel> will retire as an maintainer.*
This basically means: Unless somebody else steps in, there will be
nobody reviewing any pull-request, there will be not improvement and
sooner or later you will not be able to use PyInstaller any more.

P.S.: Many thanks for those who donated from their personal money. We
really appreciate this!


  What is "sustainable funding"?

Maintianing PyInstaller at a proper level requires about 4 to 5 days per
month. Which means about 4,000 to 5,000 € per month and about 50,000 to
60,000 € per year.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
https://www.goe-con.de/blog/bin-offiziell-entdecker-einer-sicherheitslucke
Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2012-01-in-die-cloud-in-die-cloud-aber-wo-soll-die-sein


-- 
https://mail.python.org/mailman/listinfo/python-list


PyInstaller needs Funding by your Company

2020-01-07 Thread Hartmut Goebel
Hi,

as some of you might already know:

PyInstaller is in urgent need of funding. If you are working for a
company using PyInstaller, please make them pay their share. For details
see <https://github.com/pyinstaller/pyinstaller/issues/4404>

*If reasonable funding is not achieved until end of January 2020,
@htgoebel <https://github.com/htgoebel> will retire as an maintainer.*
This basically means: Unless somebody else steps in, there will be
nobody reviewing any pull-request, there will be not improvement and
sooner or later you will not be able to use PyInstaller any more.

P.S.: Many thanks for those who donated from their personal money. We
really appreciate this!


  What is "sustainable funding"?

Maintianing PyInstaller at a proper level requires about 4 to 5 days per
month. Which means about 4,000 to 5,000 € per month and about 50,000 to
60,000 € per year.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
https://www.goe-con.de/blog/bin-offiziell-entdecker-einer-sicherheitslucke
Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2012-01-in-die-cloud-in-die-cloud-aber-wo-soll-die-sein


--
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[issue38653] pkgutil.extend_path fails with zipped eggs if not at first place

2019-10-31 Thread Hartmut Goebel

New submission from Hartmut Goebel :

I have a test site containing nested namespace packages in zipped and unzipped 
eggs_

- nspkg3_aaa.egg - unzipped egg, namespaces: nspkg3
- nspkg3_bbb.egg - zipped egg  , namespaces: nspkg3, nspkg3.bbb
- nspkg3_ccc.egg - unzipped egg, namespaces: nspkg3

When using order "aaa, bbb, ccc" in PYTHONPATH, importing "nspkg3.bbb" FAILS,
whereas
when using order "bbb, aaa, ccc" in PYTHONPATH, importing "nspkg3.bbb" PASSES,

I would expect "nspk3.bbb" to ba importable 8as a namespace package) no matter 
which possition it has in PYTHONPATH.


How to reproduce

Preperation: get hands on the eggs in question:

$ wget https://github.com/pyinstaller/pyinstaller/archive/v3.5.zip
$ unzip v3.5.zip
$ cd pyinstaller-3.5/tests/functional/modules/nspkg3-pkg/

Order "aaa, bbb, ccc": fails

$ PYTHONPATH=nspkg3_aaa.egg:nspkg3_bbb.egg:nspkg3_ccc.egg python3.7 -c "import 
nspkg3.bbb.zzz"
Traceback (most recent call last):
  File "", line 1, in 
ModuleNotFoundError: No module named 'nspkg3.bbb'

Order "bbb, aaa, ccc": passes:

$ PYTHONPATH=nspkg3_bbb.egg:nspkg3_aaa.egg:nspkg3_ccc.egg python3.7 -c "import 
nspkg3.bbb.zzz"
this is module nspkg3.bbb.zzz


Further information

I did some research and found that the zipped egg (bbb) is *not added* to the 
package path when using order "aaa, bbb, ccc":

Order "aaa, bbb, ccc":  bbb is missing here

$ PYTHONPATH=nspkg3_aaa.egg:nspkg3_bbb.egg:nspkg3_ccc.egg \
   python3.7 -c "import nspkg3 ; print(nspkg3.__path__)"
['…/nspkg3_aaa.egg/nspkg3', '…/nspkg3_ccc.egg/nspkg3']

Order "bbb, aaa, ccc":  bbb is included

$ PYTHONPATH=nspkg3_bbb.egg:nspkg3_aaa.egg:nspkg3_ccc.egg \
   python3.7 -c "import nspkg3 ; print(nspkg3.__path__)"
['…/nspkg3_bbb.egg/nspkg3', '…/nspkg3_aaa.egg/nspkg3', 
'…/nspkg3_ccc.egg/nspkg3']


Also tested with Python 2.7: Same results

--
components: Library (Lib)
messages: 355745
nosy: htgoebel
priority: normal
severity: normal
status: open
title: pkgutil.extend_path fails with zipped eggs if not at first place
type: behavior
versions: Python 2.7, Python 3.7

___
Python tracker 
<https://bugs.python.org/issue38653>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[ANN] PyInstaller 3.5

2019-07-09 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.5.

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.


=== Help keeping PyInstaller alive ===

Maintaining PyInstaller is a huge amount of work.
PyInstaller development can only continue
if users and companies provide sustainable funding.
Please consider recurring donations.
See http://www.pyinstaller.org/funding.html for how
to support PyInstaller.


=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===

* More then 30 hooks added, more then 10 hooks fixed or improved.

* More then 20 bugs fixed.

* Python 3.4 is no longer tested, since this version is
  end-of-life already.

The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v3.5/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

--
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/

Support the Python Software Foundation:
http://www.python.org/psf/donations/


Re: Email blast management?

2019-01-14 Thread Hartmut Goebel
Am 14.01.19 um 12:47 schrieb Chris Angelico:
> It's a whole lot more respectful than keeping your own database of
> email addresses and then having it compromised some day.

This assumes that one would not *keep* a list of customers in in company.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: https://www.goe-con.de/blog/chatsecure-ist-tot-lang-lebe-chatsecure
Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2011-02-fleisige-datensammler-fur-lukratives-geschaeftsmodell-gesucht


-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Email blast management?

2019-01-14 Thread Hartmut Goebel
Am 09.01.19 um 18:59 schrieb Chris Angelico:
> TBH, I'd recommend using a service like MailChimp, avoiding the entire
> Python question at all.

But for this you need to hand over the addresses to a third-party (the
service provider). This does not respect the privacy of the customers.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: https://www.goe-con.de/blog/deshalb-tr-069-ausschalten
Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2010-01-hinterturen-allen-ortes


-- 
https://mail.python.org/mailman/listinfo/python-list


Re: conda/anaconda and pip3 (pip)

2019-01-02 Thread Hartmut Goebel
Am 03.12.18 um 18:39 schrieb Paulo da Silva:
> This also has a bad side effect! It reinstalls there some depedencies
> already installed in the conda created environment!
>
> Is there a way to avoid this situation?

Try whether  `pyvenv --system-site-packages` suites you.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
https://www.goe-con.de/blog/das-fass-ist-voll-grunde-linux-201asystemd2018-zu-meiden

Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2011-10-aus-der-schublade-in-die-koepfe


-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] PyInstaller 3.4

2018-09-10 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.4. This release adds support for Python 3.7.

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.

=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===

* Add support for Python 3.7 (#2760, #3007, #3076,
  #3399, #3656), implemented by Hartmut Goebel.

* Improved support for Qt5-based applications (#3439).
  By emulating much of the Qt deployment tools' behavior
  most PyQt5 variants are supported.
  However, Anaconda's PyQt5 packages are not supported
  because its ``QlibraryInfo`` implementation reports incorrect values.
  CI tests currently run on PyQt5 5.11.2. Many thanks to Bryan A. Jones for
  taking this struggle.

* Drop support for Python 3.3 (#3288), Thanks to Hugo and xiovat.


The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v3.4/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] managesieve 0.6

2018-06-27 Thread Hartmut Goebel
I'm pleased to announce managesieve 0.6, a ManageSieve client library for
remotely managing Sieve scripts, including an user application (the
interactive 'sieveshell').

:Homepage: https://managesieve.readthedocs.io/
Development: https://gitlab.com/htgoebel/managesieve
:Author:   Hartmut Goebel 
:License for `managesieve`: Python Software Foundation License
:License for 'sieveshell' and test suite: GNU Public Licence v3 (GPLv3)

:Quick Installation:
    pip install -U managesieve

:Tarballs:  https://pypi.org/project/managesieve/#files


What is managesieve?
-

A ManageSieve client library for remotely managing Sieve scripts,
including an
user application (the interactive 'sieveshell').

Sieve scripts allow users to filter incoming email on the mail server.
The ManageSieve protocol allows managing Sieve scripts on a remote
mail server. These servers are commonly sealed so users cannot log
into them, yet users must be able to update their scripts on them.
This is what for the "ManageSieve" protocol is. For more information
about the ManageSieve protocol see `RFC 5804
<http://tools.ietf.org/html/rfc5804>`_.

This module allows accessing a Sieve-Server for managing Sieve scripts
there. It is accompanied by a simple yet functional user application
'sieveshell'.


What's new in version 0.6
---

* Add support for Python 3. Minimum required Python version is now
  Python 2.7.
* Homepage is now hosted at https://managesieve.readthedocs.io/
* Development hosted at https://gitlab.com/htgoebel/managesieve
* Documentation is extended and includes API documentation.

:sieveshell:
   - Security fix: No longer leak environment variable SIEVE_PASSWORD
 when displaying usage help.
   - Per default enforce secure transport. Suggested by Jan Zerebecki.
   - Add possibility to use username/password from the .netrc file.
 The order is: command line options -> environment variables ->
 .netrc file -> ask user. Thanks to Grégoire Détrez.

:managesieve:
   - Fail if TLS is requested, but server doesn't support TLS.
 Suggested by Jan Zerebecki.

:project:
   - Rework and enhance test-suite. Thanks to Matěj Cepl for nudging
 to proper pytest integration.
   - Lots if internal cleanup.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] pdfposter 0.7

2018-06-26 Thread Hartmut Goebel
From: Hartmut Goebel 

I'm pleased to announce pdftools.pdfposter 0.7, a tool to scale and tile PDF
images/pages to print on multiple pages.

:Homepage: https://pdfposter.readthedocs.io/
:Author:Γ Γ  Hartmut Goebel 
:Licence:Γ  GNU Public Licence v3 (GPLv3)

:Quick Installation:
Γ Γ Γ  pip install -U pdftools.pdfposter

:Tarballs:Γ  https://pypi.org/project/pdftools.pdfposter/#files


What is pdfposter?


Scale and tile PDF images/pages to print on multiple pages.

``Pdfposter`` can be used to create a large poster by building it from multiple
 pages and/or printing it on large media. It expects as input a PDF file,
normally printing on a single page. The output is again a
PDF file, maybe containing multiple pages together building the
poster.
The input page will be scaled to obtain the desired size.

This is much like ``poster`` does for Postscript files, but working with PDF.
Since sometimes poster does not like your files converted from PDF. :-) Indeed
``pdfposter`` was inspired by ``poster``.

For more information please refer to the manpage or visit the `project homepage
 <https://pdfposter.readthedocs.io/>`_.


What's new in version 0.7
---

* Incompatible change: `DIN lang` and `Envelope No. 10` are now defined as
Γ  landscape formats.

* New options ``-f``/``--first`` and ``-l``/``--last`` for specifying the
Γ  first resp. last page to convert

* Reduce the size of the output file a lot. Now the output file is
Γ  nearly the same size as the input file. While this behaviour was
Γ  intended from the beginning, it was not yet implemented for two
Γ  reasons: The content was a) copied for each print-page and b) not
Γ  compressed.

* Make the content of each page appear only once in the output file.
Γ  This vastly reduces the size of the output file.

* Compress page content. Now the output file is nearly the same size
Γ  as the input file in much more cases. I thought, the underlying
Γ  library will do this automatically, but it does not.

* Fix bug in PDF code used for clipping the page content. Many thanks
Γ  to Johannes Br─╢del for reporting this bug.

* Add support for Python 3.

* Use `PyPFDF2` instead of the unmaintained `pyPDF`.

--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

--- BBBS/Li6 v4.10 Toy-3
 * Origin: Prism bbs (1:261/38)
-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] pdfposter 0.7

2018-06-25 Thread Hartmut Goebel
I'm pleased to announce pdftools.pdfposter 0.7, a tool to scale and
tile PDF images/pages to print on multiple pages.

:Homepage: https://pdfposter.readthedocs.io/
:Author:   Hartmut Goebel 
:Licence:  GNU Public Licence v3 (GPLv3)

:Quick Installation:
    pip install -U pdftools.pdfposter

:Tarballs:  https://pypi.org/project/pdftools.pdfposter/#files


What is pdfposter?


Scale and tile PDF images/pages to print on multiple pages.

``Pdfposter`` can be used to create a large poster by building it from
multiple pages and/or printing it on large media. It expects as input a
PDF file, normally printing on a single page. The output is again a
PDF file, maybe containing multiple pages together building the
poster.
The input page will be scaled to obtain the desired size.

This is much like ``poster`` does for Postscript files, but working
with PDF. Since sometimes poster does not like your files converted
from PDF. :-) Indeed ``pdfposter`` was inspired by ``poster``.

For more information please refer to the manpage or visit
the `project homepage <https://pdfposter.readthedocs.io/>`_.


What's new in version 0.7
---

* Incompatible change: `DIN lang` and `Envelope No. 10` are now defined as
  landscape formats.

* New options ``-f``/``--first`` and ``-l``/``--last`` for specifying the
  first resp. last page to convert

* Reduce the size of the output file a lot. Now the output file is
  nearly the same size as the input file. While this behaviour was
  intended from the beginning, it was not yet implemented for two
  reasons: The content was a) copied for each print-page and b) not
  compressed.

* Make the content of each page appear only once in the output file.
  This vastly reduces the size of the output file.

* Compress page content. Now the output file is nearly the same size
  as the input file in much more cases. I thought, the underlying
  library will do this automatically, but it does not.

* Fix bug in PDF code used for clipping the page content. Many thanks
  to Johannes Brödel for reporting this bug.

* Add support for Python 3.

* Use `PyPFDF2` instead of the unmaintained `pyPDF`.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] pdfposter 0.7

2018-06-24 Thread Hartmut Goebel
I'm pleased to announce pdftools.pdfposter 0.7, a tool to scale and
tile PDF images/pages to print on multiple pages.

:Homepage: https://pdfposter.readthedocs.io/
:Author:   Hartmut Goebel 
:Licence:  GNU Public Licence v3 (GPLv3)

:Quick Installation:
    pip install -U pdftools.pdfposter

:Tarballs:  https://pypi.org/project/pdftools.pdfposter/#files


What is pdfposter?


Scale and tile PDF images/pages to print on multiple pages.

``Pdfposter`` can be used to create a large poster by building it from
multiple pages and/or printing it on large media. It expects as input a
PDF file, normally printing on a single page. The output is again a
PDF file, maybe containing multiple pages together building the
poster.
The input page will be scaled to obtain the desired size.

This is much like ``poster`` does for Postscript files, but working
with PDF. Since sometimes poster does not like your files converted
from PDF. :-) Indeed ``pdfposter`` was inspired by ``poster``.

For more information please refer to the manpage or visit
the `project homepage <https://pdfposter.readthedocs.io/>`_.


What's new in version 0.7
---

* Incompatible change: `DIN lang` and `Envelope No. 10` are now defined as
  landscape formats.

* New options ``-f``/``--first`` and ``-l``/``--last`` for specifying the
  first resp. last page to convert

* Reduce the size of the output file a lot. Now the output file is
  nearly the same size as the input file. While this behaviour was
  intended from the beginning, it was not yet implemented for two
  reasons: The content was a) copied for each print-page and b) not
  compressed.

* Make the content of each page appear only once in the output file.
  This vastly reduces the size of the output file.

* Compress page content. Now the output file is nearly the same size
  as the input file in much more cases. I thought, the underlying
  library will do this automatically, but it does not.

* Fix bug in PDF code used for clipping the page content. Many thanks
  to Johannes Brödel for reporting this bug.

* Add support for Python 3.

* Use `PyPFDF2` instead of the unmaintained `pyPDF`.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


[issue33042] New 3.7 startup sequence crashes PyInstaller

2018-03-25 Thread Hartmut Goebel

Hartmut Goebel <h.goe...@crazy-compilers.com> added the comment:

I can confirm that c6d94c37f4fd863c73fbfbcc918fd23b458b5301 makes the 
PyInstaller test-case, which war the origin of this bug-report, pass.

Thanks for fixing!

--

___
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33042>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33128] PathFinder is twice on sys.meta_path

2018-03-23 Thread Hartmut Goebel

New submission from Hartmut Goebel <h.goe...@crazy-compilers.com>:

As of Python 3.7.0b2 _frozen_importlib_external.PathFinder exists twice on 
sys.meta_path, and it is the same object:

$ python -S
Python 3.7.0b2 (default, Mar 22 2018, 20:09:00) 
[GCC 5.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.meta_path)
[,
,
,
]
>>> print([id(p) for p in sys.meta_path])
[24427944, 24430216, 24517416, 24517416]
>>>

--
components: Interpreter Core
messages: 314340
nosy: htgoebel
priority: normal
severity: normal
status: open
title: PathFinder is twice on sys.meta_path
type: behavior
versions: Python 3.7

___
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33128>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33042] New 3.7 startup sequence crashes PyInstaller

2018-03-10 Thread Hartmut Goebel

New submission from Hartmut Goebel <h.goe...@crazy-compilers.com>:

PyInstaller is a tool for freezing Python applications into stand-alone 
packages, much like py2exe. py2app, and bbfreeze. PyInstaller is providing 
*one* bootloader for all versions of Python supported (2.7, 3.4-3.6).

In PyInstaller the startup sequence is implemented in
pyi_pylib_start_python() in bootloader/src/pyi_pythonlib.c. The workflow 
roughly is:

- SetProgramName
- SetPythonHome
- Py_SetPath
- Setting runtime options
  - some flags using the global variables
  - PySys_AddWarnOption -> crash
- Py_Initialize
- PySys_SetPath

The crash occurs due to tstate (thread state) not being initialized when
calling PySys_AddWarnOption.

--
components: Interpreter Core
messages: 313546
nosy: htgoebel
priority: normal
severity: normal
status: open
title: New 3.7 startup sequence crashes PyInstaller
type: behavior
versions: Python 3.7

___
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33042>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



Re: py2exe output flagged as malware

2018-02-28 Thread Hartmut Goebel
Am 28.02.2018 um 16:47 schrieb Robin Becker:
> I upgraded pyinstaller using the very latest pip and now the version
> of pyinstaller at least is 3.3.1. I don't actually know how to check
> the validity of the installed code or the binary stubs. 

The current archives are PyPI are PGP/GnuPG-signed, as the ones at github.

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/nicht-pgp-ist-gescheitert-die-entwickler-haben-versagt

Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: py2exe output flagged as malware

2018-02-28 Thread Hartmut Goebel
Am 28.02.2018 um 16:47 schrieb Robin Becker:
> I upgraded pyinstaller using the very latest pip and now the version
> of pyinstaller at least is 3.3.1. I don't actually know how to check
> the validity of the installed code or the binary stubs. 

The current archives are PyPI are PGP/GnuPG-signed, as the ones at github.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] python-ghostscript 0.6

2018-01-17 Thread Hartmut Goebel
I'm pleased to announce the new release vor python-ghostscript:


 python-ghostscript 0.6

A Python-Interface to the Ghostscript C-API using ctypes

:License: GNU Public License v3 (GPLv3)
:Author:  Hartmut Goebel <h.goe...@crazy-compiler.com>
:Homepage: https://gitlab.com/pdftools/python-ghostscript
:Download: https://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-API using `ctypes`__. Both a low-level and a pythonic,
high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Latest Changes


Please note: Version 0.5 has been skipped to avoid version conflicts
with the fork `python3-ghostscript`. All changes of that fork are
integrated into this release.

  * Add support for Python 3.x (tested with Python 3.4).
    Minimum required Python version is now 2.7.

  * Add support for display callback and an example program
    using it. Thanks to Lasse Fister.

  * Add context-interface (for the ``with``-statement).

  * ``GhostscriptError`` now has an attribute ``code`` holding
    the numeric error-code.

  * ``Ghostscript()`` now accepts keyword-arguments ``stdin``,
    ``stdout``, ``stderr`` for setting the respective stream. This was
    already implementd in version 0.4.1, but not documented.

  * Add unittest suite (using pytest).

  * Several bug fixes and smaller changes.

  * Switch version control to git and move project to gitlab. See
    Readme-file for the new URL.

  * Set up continuous integration tests.


Example


Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

  import sys
  import ghostscript

  args = [
  "ps2pdf",    # actual value doesn't matter
  "-dNOPAUSE", "-dBATCH", "-dSAFER",
  "-sDEVICE=pdfwrite",
  "-sOutputFile=" + sys.argv[1],
  "-c", ".setpdfwrite",
      "-f",  sys.argv[2]
  ]

  ghostscript.Ghostscript(*args)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] python-ghostscript 0.6

2018-01-16 Thread Hartmut Goebel
I'm pleased to announce the new release vor python-ghostscript:


 python-ghostscript 0.6

A Python-Interface to the Ghostscript C-API using ctypes

:License: GNU Public License v3 (GPLv3)
:Author:  Hartmut Goebel <h.goe...@crazy-compiler.com>
:Homepage: https://gitlab.com/pdftools/python-ghostscript
:Download: https://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-API using `ctypes`__. Both a low-level and a pythonic,
high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Latest Changes


Please note: Version 0.5 has been skipped to avoid version conflicts
with the fork `python3-ghostscript`. All changes of that fork are
integrated into this release.

  * Add support for Python 3.x (tested with Python 3.4).
    Minimum required Python version is now 2.7.

  * Add support for display callback and an example program
    using it. Thanks to Lasse Fister.

  * Add context-interface (for the ``with``-statement).

  * ``GhostscriptError`` now has an attribute ``code`` holding
    the numeric error-code.

  * ``Ghostscript()`` now accepts keyword-arguments ``stdin``,
    ``stdout``, ``stderr`` for setting the respective stream. This was
    already implementd in version 0.4.1, but not documented.

  * Add unittest suite (using pytest).

  * Several bug fixes and smaller changes.

  * Switch version control to git and move project to gitlab. See
    Readme-file for the new URL.

  * Set up continuous integration tests.


Example


Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

  import sys
  import ghostscript

  args = [
  "ps2pdf",    # actual value doesn't matter
  "-dNOPAUSE", "-dBATCH", "-dSAFER",
  "-sDEVICE=pdfwrite",
  "-sOutputFile=" + sys.argv[1],
  "-c", ".setpdfwrite",
      "-f",  sys.argv[2]
  ]

  ghostscript.Ghostscript(*args)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] PyInstaller 3.3.1

2017-12-18 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.3.1. This release fixes some bugs.

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.

=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===

* Fix recursion too deep errors caused by reimporting SWIG-like modules.

* Fix imports in hooks accessible_output and sound_lib.
* Fix ImportError for hook sysconfig for 3.5.4 Conda.
* Fix shapely hook for conda environments on Windows.

* (Windows) Pre-build bootloaders (and custom-build ones using MSVC) can be
  used on Windows XP again: Set minimum target OS to XP.

* Various improvements to the manual, esp. a new "Developer Guide"


The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v3.3.1/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


C-api: Executing several scripts as __main__: globals are gone

2017-11-26 Thread nospam . nospam . Hartmut Goebel
Hello,

in PyInstaller we execute several Python scripts one after each other. The
primary use of this is to run some setup prior to the actual appication. Up to
now all scripts shared the same global variables, which worked well for 15
years, but now showed an error. The new code (scratched below) now deletes
sys.modules['__main__'], so the next script will get a fresh module and fresh
globals. This leads to an obscure error:

If a setup-script hooks into something, this hook does not see it's own
script's/module's globals. Thus running the scripts below (setup first, then
main), fails with:

Traceback (most recent call last):
â  File "main-script", line 2, in 
â  File "setup-script", line 3, in do_it
NameError: global name 'sys' is not defined

Same effect for any other identifier defined globally in setup-script, e.g
global functions (which is worse then just a missing import).

I tried keeping a reference to the module (to avoid garbage-collection) both in
 the C-code and in the setup-script. But this did not solve the issue, the
effect is the same. I also read through the CPython source but did not spot
anything useful. Additionally, this issue only occurs with Python 2.7 and 3.3,
Python 3.4 and up are okay.

Any ideas?

8<-- C-code scratch!! pseudo-code --- sys_modules =
PyImport_GetModuleDict(); for each entry in archive {
â â â  data = Get_data_out_of_the_archive()
â â â  code = PyMarshal_ReadObjectFromString(data)
/* execute as '__main__ for compatibility */
â â â  module = PyImport_ExecCodeModule("__main__", code);
â â â  Py_DECREF(module);
â â â  /* remove '__main__' from sys.modules */
â â â  PyObject_DelItem(sys_modules, "__main__");
}
..8<---

Now if a have these two scripts (these are examples:

..8< setup-script --
import sys
def do_it()
   print(sys.modules)
sys.do_it = do_it
..8<-

and

..8< main-script --
import sys
sys.do_it()
..8<---


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


C-api: Executing several scripts as __main__: globals are gone

2017-11-26 Thread nospam . Hartmut Goebel
Hello,

in PyInstaller we execute several Python scripts one after each other. The
primary use of this is to run some setup prior to the actual appication. Up to
now all scripts shared the same global variables, which worked well for 15
years, but now showed an error. The new code (scratched below) now deletes
sys.modules['__main__'], so the next script will get a fresh module and fresh
globals. This leads to an obscure error:

If a setup-script hooks into something, this hook does not see it's own
script's/module's globals. Thus running the scripts below (setup first, then
main), fails with:

Traceback (most recent call last):
â  File "main-script", line 2, in 
â  File "setup-script", line 3, in do_it
NameError: global name 'sys' is not defined

Same effect for any other identifier defined globally in setup-script, e.g
global functions (which is worse then just a missing import).

I tried keeping a reference to the module (to avoid garbage-collection) both in
 the C-code and in the setup-script. But this did not solve the issue, the
effect is the same. I also read through the CPython source but did not spot
anything useful. Additionally, this issue only occurs with Python 2.7 and 3.3,
Python 3.4 and up are okay.

Any ideas?

8<-- C-code scratch!! pseudo-code --- sys_modules =
PyImport_GetModuleDict(); for each entry in archive {
â â â  data = Get_data_out_of_the_archive()
â â â  code = PyMarshal_ReadObjectFromString(data)
/* execute as '__main__ for compatibility */
â â â  module = PyImport_ExecCodeModule("__main__", code);
â â â  Py_DECREF(module);
â â â  /* remove '__main__' from sys.modules */
â â â  PyObject_DelItem(sys_modules, "__main__");
}
..8<---

Now if a have these two scripts (these are examples:

..8< setup-script --
import sys
def do_it()
   print(sys.modules)
sys.do_it = do_it
..8<-

and

..8< main-script --
import sys
sys.do_it()
..8<---


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


C-api: Executing several scripts as __main__: globals are gone

2017-11-26 Thread Hartmut Goebel
Hello,

in PyInstaller we execute several Python scripts one after each other.
The primary use of this is to run some setup prior to the actual
appication. Up to now all scripts shared the same global variables,
which worked well for 15 years, but now showed an error. The new code
(scratched below) now deletes sys.modules['__main__'], so the next
script will get a fresh module and fresh globals. This leads to an
obscure error:

If a setup-script hooks into something, this hook does not see it's own
script's/module's globals. Thus running the scripts below (setup first,
then main), fails with:

Traceback (most recent call last):
  File "main-script", line 2, in 
  File "setup-script", line 3, in do_it
NameError: global name 'sys' is not defined

Same effect for any other identifier defined globally in setup-script,
e.g global functions (which is worse then just a missing import).

I tried keeping a reference to the module (to avoid garbage-collection)
both in the C-code and in the setup-script. But this did not solve the
issue, the effect is the same. I also read through the CPython source
but did not spot anything useful. Additionally, this issue only occurs
with Python 2.7 and 3.3, Python 3.4 and up are okay.

Any ideas?

8<-- C-code scratch!! pseudo-code ---
sys_modules = PyImport_GetModuleDict();
for each entry in archive {
    data = Get_data_out_of_the_archive()
    code = PyMarshal_ReadObjectFromString(data)
/* execute as '__main__ for compatibility */
    module = PyImport_ExecCodeModule("__main__", code);
    Py_DECREF(module);
    /* remove '__main__' from sys.modules */
    PyObject_DelItem(sys_modules, "__main__");
}
..8<---

Now if a have these two scripts (these are examples:

..8< setup-script --
import sys
def do_it()
   print(sys.modules)
sys.do_it = do_it
..8<-

and

..8< main-script --
import sys
sys.do_it()
..8<-------


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] PyInstaller 3.3

2017-09-21 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.3. Most important change for this release is the support
for Python 3.6.

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.

=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Important Changes ===

* Add Support for Python 3.6! Many thanks to xiovat! (#2331, #2341)

* New command line options for adding data files (``--datas``, #1990) and
  binaries (``--binaries``, #703)

* Add command line option '--runtime-tmpdir'.

* Bootloaders for Windows are now build using MSVC and statically linked with
  the run-time-library (CRT). This solved a lot of issues related to .dlls
  being incompatible with the ones required by ``python.dll``.

* Bootloaders for GNU/Linux are now officially no LSB binaries. This was
  already the case since release 3.1, but documented the other way round. Also
  the build defaults to non-LSB binaries now. (#2369)

* We improved and stabilized both building the bootloaders and the continuous
  integration tests. See below for details. Many thanks to all who worked on
  this.

* To ease solving issues with packages included wrongly, the html-file with a
  cross-reference is now always generated. It's visual appearance has been
  modernized (#2765).


The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v3.3/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten
Kolumne: http://www.cissp-gefluester.de/2012-02-bring-your-own-life-glosse

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


How does CPython build it's NEWS or changelog?

2017-09-21 Thread Hartmut Goebel
Hello,

I just discovered that CPython now uses Misc/NEWS.d/next to collect
changes an there are a lot of Misc/NEWS/*.rst files for the respective
released version. I'm investigating whether to adopt this for PyInstaller.

What is the tooling for this? Is there some documentation, maybe a
mailingslist-diskussion or a but-report?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


[issue31532] Py_GetPath, Py_SetPath memory corruption due to mixed PyMem_New micex with PyMem_Raw_Free

2017-09-20 Thread Hartmut Goebel

New submission from Hartmut Goebel:

When using

Py_GetPath();
Py_SetPath(pypath_w);

near the beginning of a program, Py_SetPath crashes with memory corruption if 
run on a systems with glibc's MALLOC_CHECK enabled.

The reason is: Py_GetPath and Py_SetPath use different memory interfaces.

* Py_GetPath() calls calculate_path(), which uses PyMem_New() to allocate the 
memory (see 
https://github.com/python/cpython/blob/v3.6.0/Modules/getpath.c#L738, assigned 
to `buf` first)

* But Py_SetPath() uses PyMem_RawFree() to free the memory (see 
https://github.com/python/cpython/blob/v3.6.0/Modules/getpath.c#L830).


This error DOES NOT occur on Windows, since for win32 there is a separate 
implementation, which uses PyMem_RawMalloc (see 
https://github.com/python/cpython/blob/v3.6.0/PC/getpathp.c#L378).

This error also DOES NOT occur in Python <= 3.5, since PYMEM_FUNCS have been 
the same as PYRAW_FUNCS (see 
https://github.com/python/cpython/blob/v3.5.0/Objects/obmalloc.c#L148). This 
was changed in v3.6.0: PYMEM_FUNCS now is PYOBJ_FUNCS, see 
https://github.com/python/cpython/blob/v3.6.0/Objects/obmalloc.c#L159.

This error only occurs when running on a system with glibc's MALLOC_CHECK 
enabled, which seems to be the default st least on CentOS, Fedora and ArchLinux.

Example code and relevant source see below.


Example stack trace


*** glibc detected *** ./dist/jcollect3: double free or corruption (out): 
0x7fde271ab030 ***
=== Backtrace: =
/lib64/libc.so.6[0x37f0675e66]
/lib64/libc.so.6[0x37f06789b3]
/tmp/_MEIhKg3kx/libpython3.6m.so.1.0(Py_SetPath+0x15)[0x7fde2d20e825]
./dist/jcollect3[0x4043e2]
./dist/jcollect3[0x402db2]
./dist/jcollect3[0x402fb0]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x37f061ed5d]
./dist/jcollect3[0x401a9e]
=== Memory map: 


How to reproduce
~

An example for this problem is the bootloader of PyInstaller (as of 2017-08-01).

* Make sure you are running on a Linux distribution having glibc's MALLOC_CHECK 
enabled.

* Set up a virtual environment (just too keep your system clean)

pip install 
https://github.com/pyinstaller/pyinstaller/archive/develop@%7B2017-08-01%7D.zip
echo 'print("Hello")' > test.py
pyinstaller test.py
dist/test/test  # run the frozen script

The relevant source of PyInstaller's bootloader is at 
<https://github.com/pyinstaller/pyinstaller/blob/develop@%7B2017-08-01%7D/bootloader/src/pyi_pythonlib.c#L466>

--
components: Interpreter Core
messages: 302624
nosy: htgoebel
priority: normal
severity: normal
status: open
title: Py_GetPath, Py_SetPath memory corruption due to mixed PyMem_New micex 
with PyMem_Raw_Free
type: crash
versions: Python 3.6

___
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue31532>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



OT: Rejecting whitespace-only changes at github

2017-08-10 Thread Hartmut Goebel
Hello,

Is there some tool or online-service which can check patches if they
contain white-space-only changes and all test-wrapping changes?

One of the projects I'm maintaining (pyinstaller) wants to forbid
changes of theses types. If we could integrate resp. checks into the
tooling (github), this would give contributors feedback quickly and ease
the burden for the maintainers.

Sorry for this off-topic question, but I assume to find a competent
answer here. And thanks for any pointer.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |


-- 
https://mail.python.org/mailman/listinfo/python-list


Funding continuous maintenance for PyInstaller?

2017-07-18 Thread Hartmut Goebel
Hi,

I'm seeking advice how to fund continuous maintenance for an open source
project.

*Do you have any idea how to fund continuous maintenance for PyInstaller?
Do you have any idea whom or where to ask?
Do you know somebody to help setting up a commercial support/maintenance
model? *

I'm the (remaining) maintainer of PyInstaller (www.pyinstaller,org).
Currently I'm maintaining PyInstaller in my spare-time. But it's is
getting to much work for working on it for free: the open issue tickets
and pull-requests are piling up. Since PyInstaller is quite mature,
problems are hard to track down and to solve. Thus solving one ticket
often takes half a day or even more.

I'm already got in tough with the the PSF and the Python Software
Verband (much like PSF, just for Germany), but they have not experience
with this. I also read the PSF grants program, but this doesn't fit for
continous maintenance. I also had a look at bountysource, but the
numbers offered there may be teasers for students, not for professionals
- so I did not follow this road. I plan to add a "donate" page to the
web-site, but I doubt this will bring in noteworthy amounts.

So I was thinking about some commercial support/maintenance model, but I
have no experience with this. As I'm a freelance consultant already (but
in the information security business), this could be feasible to
implement, if I'd know how to address the commercial users.

Thanks for any tip!

*About PyInstaller*

PyInstaller is the successor of "McMillan Installer", a tool like,
freeze, py2exe, py2app or bbfreeze - but PyInstaller supports Windows,
MacOS and Unix (GN/Linux, Solaris, HP-UX, etc.). PyInstaller is widely
used sa you can see when looking at the issues and on the mailinglist.
E.g. kivy uses/recommends PyInstaller for building Python-Apps for
mobile platforms.

PyInstaller is also used for commercial applications (as some hints on
the mailinglist or
But most commercial users are unknown.

*About me*

I'm based an Germany and developing open source and free software since
about 1990 and using Python since about 1998. Beside of this I developed
software like pdfposter, python-ghostscript, python-managesieve, etc. My
day-job is freelance consultant focused on information security.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |

-- 
https://mail.python.org/mailman/listinfo/python-list


[ANN] PyInstaller 3.2.1

2017-01-16 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.2.1, the long awaited bug-fix release

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.

=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Changes ===

- Many bug fixes and internal enhancements, the most important ones are:
  - (Windows) Fix additional dependency on the msvcrt10.dll (#1974)
  - (OS X) PyQt5 packaging issues on MacOS (#1874)
  - (Bootloader) fix segfaults (#2176)
- Some new, fixed or enhanced hooks.


The full changelog for this release can be found at:

   https://pyinstaller.readthedocs.io/en/v3.2.1/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/bewertung-pgp-verschlusselung-bei-web.de-und-gmx

Kolumne:
http://www.cissp-gefluester.de/2012-01-in-die-cloud-in-die-cloud-aber-wo-soll-die-sein


-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] PyInstaller 3.2

2016-05-04 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.2

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not a cross-compiler: to make a Windows app you run PyInstaller in
Windows; to make a Linux app you run it in Linux, etc. PyInstaller has
been used successfully with AIX, Solaris, and FreeBSD, but is not tested
against them.

=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyinstaller

=== Changes ===

- Even the "main" script is now byte-compiled (#1847, #1856)
- The manual is on readthedocs.io now (#1578)
- On installation try to compile the bootloader if there is none for
  the current platform (#1377)

- Lots of new, fixed or enhanced hooks.
- Many bug fixes and internal enhancements.


The full changelog for this release can be found at:

   https://pyinstaller.rtfd.org/en/v3.2/CHANGES.html


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller

-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/bewertung-pgp-verschlusselung-bei-web.de-und-gmx

Kolumne:
http://www.cissp-gefluester.de/2012-01-in-die-cloud-in-die-cloud-aber-wo-soll-die-sein


-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] PyInstaller 3.1.1

2016-01-31 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.1.1

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python
interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not
a cross-compiler: to make a Windows app you run PyInstaller in Windows; to
make a Linux app you run it in Linux, etc. PyInstaller has been used
successfully with AIX, Solaris, and FreeBSD, but is not tested against
them.

=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyiinstaller

=== Changes ===

PyInstaller 3.1.1 is a bug fix release for v3.1

  * Fix problems with setuptools 19.4 (#1772
<https://github.com/pyinstaller/pyinstaller/issues/1772>, #1773
<https://github.com/pyinstaller/pyinstaller/issues/1773>, #1790
<https://github.com/pyinstaller/pyinstaller/pull/1790>, #1791
<https://github.com/pyinstaller/pyinstaller/issues/1791>)
  * 3.1 does not collect certain direct imports (#1780
<https://github.com/pyinstaller/pyinstaller/issues/1780>)
  * Git reports wrong version even if on unchanged release (#1778
<https://github.com/pyinstaller/pyinstaller/issues/1778>)
  * Don't resolve symlinks in modulegraph.py (#1750
<https://github.com/pyinstaller/pyinstaller/issues/1750>, #1755
<https://github.com/pyinstaller/pyinstaller/pull/1755>)
  * ShortFileName not returned in win32 util (#1799
<https://github.com/pyinstaller/pyinstaller/issues/1799>)

*Known Issues*

  * Apps built with Windows 10 and Python 3.5 may not run on Windows
versions earlier than 10 (#1566
<https://github.com/pyinstaller/pyinstaller/issues/1566>).
  * The multipackage (MERGE) feature (#1527
<https://github.com/pyinstaller/pyinstaller/issues/1527>) is
currently broken.
  * (OSX) Support for OpenDocument events (#1309
<https://github.com/pyinstaller/pyinstaller/issues/1309>) is broken.


The full changelog for this release can be found at:

   https://pypi.python.org/pypi/PyInstaller/3.1.1


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller
-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/liberario-als-alternative-zum-db-navigator-und-zu-offi

Kolumne: http://www.cissp-gefluester.de/2010-06-adobe-und-der-maiszunsler

-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] PyInstaller 3.1

2016-01-10 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 3.1

   http://www.pyinstaller.org


Thanks for all those who contributed questions, bug-reports or
pull-requests.


=== What it is ===

PyInstaller bundles a Python application and all its dependencies into a
single package. The user can run the packaged app without installing a
Python
interpreter or any modules.

PyInstaller reads a Python script written by you. It analyzes your code to
discover every other module and library your script needs in order to
execute.
Then it collects copies of all those files – including the active Python
interpreter! – and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, Mac OS X, and Linux. However, it
is not
a cross-compiler: to make a Windows app you run PyInstaller in Windows; to
make a Linux app you run it in Linux, etc. PyInstaller has been used
successfully with AIX, Solaris, and FreeBSD, but is not tested against
them.

=== Installation ===

PyInstaller can be installed from PyPi using

   pip install pyiinstaller

=== Changes ===

  * Support reproducible builds (#490
<https://github.com/pyinstaller/pyinstaller/issues/490>, #1434
<https://github.com/pyinstaller/pyinstaller/issues/1434>, #1582
<https://github.com/pyinstaller/pyinstaller/issues/1582>, #1590
<https://github.com/pyinstaller/pyinstaller/pull/1590>).
  * Strip leading parts of paths in compiled code objects (#1059
<https://github.com/pyinstaller/pyinstaller/issues/1059>, #1302
<https://github.com/pyinstaller/pyinstaller/pull/1302>, #1724
<https://github.com/pyinstaller/pyinstaller/issues/1724>).
  * With |--log-level=DEBUG|, a dependency graph-file is emitted in the
build-directory.
  * Allow running pyinstaller as user |root|. By popular demand, see
e.g. #1564 <https://github.com/pyinstaller/pyinstaller/issues/1564>,
#1459 <https://github.com/pyinstaller/pyinstaller/issues/1459>,
#1081 <https://github.com/pyinstaller/pyinstaller/issues/1081>.
  * New Hooks: botocore, boto3, distorm3, GObject, GI (G Introspection),
GStreamer, GEvent, kivy, lxml.isoschematron, pubsub.core,
PyQt5.QtMultimedia, scipy.linalg, shelve.
  * Fixed or Updated Hooks: astroid, django, jsonschema logilab, PyQt4,
PyQt5, skimage, sklearn.
  * Fix crashes when looking for ctypes DLLs (#1608
<https://github.com/pyinstaller/pyinstaller/issues/1608>, #1609
<https://github.com/pyinstaller/pyinstaller/issues/1609>, #1620
<https://github.com/pyinstaller/pyinstaller/issues/1620>).
  * Fix: Imports in byte-code not found if code contains a function
(#1581 <https://github.com/pyinstaller/pyinstaller/issues/1581>).
  * Fix recursion into bytes-code when scanning for ctypes (#1620
<https://github.com/pyinstaller/pyinstaller/issues/1620>).
  * Fix PyCrypto modules to work with crypto feature (|--key| option)
(#1663 <https://github.com/pyinstaller/pyinstaller/issues/1663>).
  * Fix problems with |excludedimports| in some hook excluding the named
modules even if used elswhere (#1584
<https://github.com/pyinstaller/pyinstaller/issues/1584>, #1600
<https://github.com/pyinstaller/pyinstaller/issues/1600>).
  * Fix freezing of pip 7.1.2 (#1699
<https://github.com/pyinstaller/pyinstaller/issues/1699>).
  * FreeBSD and Solaris fixes.
  * Improvements to the test-suite, testing infrastructure and
continuous integration.

*Known Issues*

  * Apps built with Windows 10 and Python 3.5 may not run on Windows
versions earlier than 10 (#1566
<https://github.com/pyinstaller/pyinstaller/issues/1566>).
  * The multipackage (MERGE) feature (#1527
<https://github.com/pyinstaller/pyinstaller/issues/1527>) is
currently broken.
  * (OSX) Support for OpenDocument events (#1309
<https://github.com/pyinstaller/pyinstaller/issues/1309>) is broken.


The full changelog for this release can be found at:

   https://pypi.python.org/pypi/PyInstaller/3.1


=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Bug tracker: https://github.com/pyinstaller/pyinstaller/issues
 Mailing list: http://groups.google.com/group/PyInstaller


Regards
Hartmut Goebel
-- 
Dipl.-Informatiker (univ), CISSP, CSSLP
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog:
http://www.goebel-consult.de/blog/filmgesprach-zu-201ecitizenfour201c-in-herrsching

Kolumne:
http://www.cissp-gefluester.de/2010-11-it-sicherheit-im-unternehmen-eine-interne-oder-externe-angelegenheit


-- 
https://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] PyInstaller 2.0

2012-08-09 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 2.0.

   http://www.pyinstaller.org

Special thanks to Martin Zibricky who did most of the development work for this
release.


=== What it is ===

PyInstaller is a program that converts (packages) Python programs into
stand-alone executables, under Windows, Linux, Mac OS X, Solaris and
AIX. Its main advantages over similar tools are that PyInstaller works
with any version of Python since 2.3, it builds smaller executables
thanks to transparent compression, it is fully multi-platform, and use
the OS support to load the dynamic libraries, thus ensuring full
compatibility.

The main goal of PyInstaller is to be compatible with 3rd-party packages
out-of-the-box. This means that, with PyInstaller, all the required
tricks to make external packages work are already integrated within
PyInstaller itself so that there is no user intervention required.
You'll never be required to look for tricks in wikis and apply custom
modification to your files or your setup scripts.


=== Changes ===

Major changes for this release are:

 * Minimum suported Python version is now 2.3.
 * Support for Mac OS X 64-bit, Mac OS X 10.7 (Lion) and 10.8
   (Mountain Lion) has been added.
 * For OS X, application bundles (.app) can be created automatically.
 * Experimental support for AIX (thanks to Martin Gamwell Dawids).
 * Experimental support for Solaris (thanks to Hywel Richards).
 * A Multipackage function has been added to create a collection of
   packages to avoid library duplication. See documentation for more
   details.
 * A new, symplified command line interface. Configure.py, Makespec.py
   and Build.py replaced by pyinstaller.py. See documentation for more
   details.
 * Added or improved import hooks, most notable:
   - PyUSB (thanks to Chien-An Zero Cho).
   - wx.lib.pubsub (thanks to Daniel Hyams).
   - PyQT4, win32com, pyttsx,

The full changelog for this release can be found at:

   http://www.pyinstaller.org/export/v2.0/project/doc/CHANGES.txt

=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Ticketing system: http://www.pyinstaller.org/newticket
 Mailing list: http://groups.google.com/group/PyInstaller


=== Features ===

 * Packaging of Python programs into standard executables, that
   work on computers without Python installed.
 * Multiplatform: works under Windows (32-bit and 64-bit),
   Linux (32-bit and 64-bit) and Mac OS X (32-bit only).
 * Multiversion: works under any version of Python from 2.2 up to 2.7.
 * Flexible packaging mode:
   * Single directory: build a directory containing an executable plus
 all the external binary modules (.dll, .pyd, .so) used by the program.
   * Single file: build a single executable file, totally self-contained,
 which runs without any external dependency.
   * Custom: you can automate !PyInstaller to do whatever packaging mode
 you want through a simple script file in Python.
 * Explicit intelligent support for many 3rd-packages 
   (for hidden imports, external data files, etc.), to make them work
with !PyInstaller out-of-the-box.
 * Full single-file EGG support: required .egg files are automatically
   inspected for dependencies and bundled, and all the egg-specific features
   are supported at runtime as well (entry points, etc.).
 * Partial directory EGG support: required .egg directories are automatically
   inspected for dependencies and bundled, but egg-specific features
   will not work at runtime. 
 * Automatic support for binary libraries used through ctypes.
 * Support for automatic binary packing through the well-known UPX compressor.
 * Optional console mode (see standard output and standard error at runtime).
 * '''Windows-specific features''':
   * Support for code-signing executables.
   * Full automatic support for CRTs: no need to manually distribute MSVCR*.DLL,
 redist installers, manifests, or anything else; '''true''' one-file
 applications that work everywhere!
   * Selectable executable icon.
   * Fully configurable version resource section and manifests in executable.
   * Support for building COM servers.
 * '''Mac-specific features''':
* Support for bundles



-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP

Goebel Consult
http://www.goebel-consult.de

Monatliche Kolumne:
http://www.cissp-gefluester.de/2011-02-fleisige-datensammler-fur-lukratives-geschaeftsmodell-gesucht

Blog: http://www.goebel-consult.de/blog/20050401

Goebel Consult ist Mitglied bei http://www.7-it.de/

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] PyInstaller 2.0

2012-08-09 Thread Hartmut Goebel
Hello,

on behalf of the PyInstaller development team I'm happy to announce
PyInstaller 2.0.

   http://www.pyinstaller.org

Special thanks to Martin Zibricky who did most of the development work for this
release.


=== What it is ===

PyInstaller is a program that converts (packages) Python programs into
stand-alone executables, under Windows, Linux, Mac OS X, Solaris and
AIX. Its main advantages over similar tools are that PyInstaller works
with any version of Python since 2.3, it builds smaller executables
thanks to transparent compression, it is fully multi-platform, and use
the OS support to load the dynamic libraries, thus ensuring full
compatibility.

The main goal of PyInstaller is to be compatible with 3rd-party packages
out-of-the-box. This means that, with PyInstaller, all the required
tricks to make external packages work are already integrated within
PyInstaller itself so that there is no user intervention required.
You'll never be required to look for tricks in wikis and apply custom
modification to your files or your setup scripts.


=== Changes ===

Major changes for this release are:

 * Minimum suported Python version is now 2.3.
 * Support for Mac OS X 64-bit, Mac OS X 10.7 (Lion) and 10.8
   (Mountain Lion) has been added.
 * For OS X, application bundles (.app) can be created automatically.
 * Experimental support for AIX (thanks to Martin Gamwell Dawids).
 * Experimental support for Solaris (thanks to Hywel Richards).
 * A Multipackage function has been added to create a collection of
   packages to avoid library duplication. See documentation for more
   details.
 * A new, symplified command line interface. Configure.py, Makespec.py
   and Build.py replaced by pyinstaller.py. See documentation for more
   details.
 * Added or improved import hooks, most notable:
   - PyUSB (thanks to Chien-An Zero Cho).
   - wx.lib.pubsub (thanks to Daniel Hyams).
   - PyQT4, win32com, pyttsx,

The full changelog for this release can be found at:

   http://www.pyinstaller.org/export/v2.0/project/doc/CHANGES.txt

=== Feedback ===

We're eager to listen to your feedback on using PyInstaller:

 Ticketing system: http://www.pyinstaller.org/newticket
 Mailing list: http://groups.google.com/group/PyInstaller


=== Features ===

 * Packaging of Python programs into standard executables, that
   work on computers without Python installed.
 * Multiplatform: works under Windows (32-bit and 64-bit),
   Linux (32-bit and 64-bit) and Mac OS X (32-bit only).
 * Multiversion: works under any version of Python from 2.2 up to 2.7.
 * Flexible packaging mode:
   * Single directory: build a directory containing an executable plus
 all the external binary modules (.dll, .pyd, .so) used by the program.
   * Single file: build a single executable file, totally self-contained,
 which runs without any external dependency.
   * Custom: you can automate !PyInstaller to do whatever packaging mode
 you want through a simple script file in Python.
 * Explicit intelligent support for many 3rd-packages 
   (for hidden imports, external data files, etc.), to make them work
with !PyInstaller out-of-the-box.
 * Full single-file EGG support: required .egg files are automatically
   inspected for dependencies and bundled, and all the egg-specific features
   are supported at runtime as well (entry points, etc.).
 * Partial directory EGG support: required .egg directories are automatically
   inspected for dependencies and bundled, but egg-specific features
   will not work at runtime. 
 * Automatic support for binary libraries used through ctypes.
 * Support for automatic binary packing through the well-known UPX compressor.
 * Optional console mode (see standard output and standard error at runtime).
 * '''Windows-specific features''':
   * Support for code-signing executables.
   * Full automatic support for CRTs: no need to manually distribute MSVCR*.DLL,
 redist installers, manifests, or anything else; '''true''' one-file
 applications that work everywhere!
   * Selectable executable icon.
   * Fully configurable version resource section and manifests in executable.
   * Support for building COM servers.
 * '''Mac-specific features''':
* Support for bundles



-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP

Goebel Consult
http://www.goebel-consult.de

Monatliche Kolumne:
http://www.cissp-gefluester.de/2011-02-fleisige-datensammler-fur-lukratives-geschaeftsmodell-gesucht

Blog: http://www.goebel-consult.de/blog/20050401

Goebel Consult ist Mitglied bei http://www.7-it.de/

-- 
http://mail.python.org/mailman/listinfo/python-list


[issue15373] copy.copy() does not properly copy os.environment

2012-07-16 Thread Hartmut Goebel

New submission from Hartmut Goebel h.goe...@crazy-compilers.com:

Wehn copying os.environ usinf copy.copy(), any manipulation on the copied 
object will change os.environment, too.

$ python
Python 2.7.3 (default, Apr 22 2012, 07:46:58) 
[GCC 4.6.3] on linux2
Type help, copyright, credits or license for more information.
 import copy, os
 os.environ['TITI']
Traceback (most recent call last):
  File stdin, line 1, in module
  File /usr/lib/python2.7/UserDict.py, line 23, in __getitem__
raise KeyError(key)
KeyError: 'TITI'
 env = copy.copy(os.environ)
 env['TITI'] = 'in den Ferien'
 os.environ['TITI']
'in den Ferien'
 

Strictly speaking, this is correct, as the os.environment class is meant to 
manipulate the environment in the background. But user's expectation is 
different: he thinks, manipulating the copied object is save and does not 
effect the environment.

--
messages: 165631
nosy: htgoebel
priority: normal
severity: normal
status: open
title: copy.copy() does not properly copy os.environment
type: behavior
versions: Python 2.7

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15373
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[ANN] python-ghostscript 0.4

2011-01-29 Thread Hartmut Goebel
Announcing:

python-ghostscript 0.4

A Python-Interface to the Ghostscript
 C-API using ctypes

:Copyright: GNU Public License v3 (GPLv3)
:Author:  Hartmut Goebel h.goe...@crazy-compiler.com
:Homepage: http://bitbucket.org/htgoebel/python-ghostscript
:Download: http://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-API using `ctypes`__. Both a low-level and a pythonic,
high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Latest Changes


  * Fixed bug: typo in function call name ctypes.util.find_library

  * (Unix) No longer try to load a specific version (version 8) of
libgs.so

  * Added low-level interface for set_stdio() plus wrappers for
file handles

  * (win32) Improved search for best Ghostscript installation:
Consider Aladdin and GNU Ghostscript, too; Check for existence of
DLL found in registry; take highest version available.

  * Added win32 example-batch file for testing and other
improvements/fixes on examples an documentation.


Example


Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

  import sys
  import ghostscript

  args = [
  ps2pdf, # actual value doesn't matter
  -dNOPAUSE, -dBATCH, -dSAFER,
  -sDEVICE=pdfwrite,
  -sOutputFile= + sys.argv[1],
  -c, .setpdfwrite,
  -f,  sys.argv[2]
  ]

  ghostscript.Ghostscript(*args)


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] python-ghostscript 0.4

2011-01-29 Thread Hartmut Goebel
Announcing:

python-ghostscript 0.4

A Python-Interface to the Ghostscript
 C-API using ctypes

:Copyright: GNU Public License v3 (GPLv3)
:Author:  Hartmut Goebel h.goe...@crazy-compiler.com
:Homepage: http://bitbucket.org/htgoebel/python-ghostscript
:Download: http://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-API using `ctypes`__. Both a low-level and a pythonic,
high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Latest Changes


  * Fixed bug: typo in function call name ctypes.util.find_library

  * (Unix) No longer try to load a specific version (version 8) of
libgs.so

  * Added low-level interface for set_stdio() plus wrappers for
file handles

  * (win32) Improved search for best Ghostscript installation:
Consider Aladdin and GNU Ghostscript, too; Check for existence of
DLL found in registry; take highest version available.

  * Added win32 example-batch file for testing and other
improvements/fixes on examples an documentation.


Example


Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

  import sys
  import ghostscript

  args = [
  ps2pdf, # actual value doesn't matter
  -dNOPAUSE, -dBATCH, -dSAFER,
  -sDEVICE=pdfwrite,
  -sOutputFile= + sys.argv[1],
  -c, .setpdfwrite,
  -f,  sys.argv[2]
  ]

  ghostscript.Ghostscript(*args)


-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |
-- 
http://mail.python.org/mailman/listinfo/python-list


Announcing: python-ghostscript 0.3

2010-08-12 Thread Hartmut Goebel
Announcing:

python-ghostscript 0.3

A Python-Interface to the Ghostscript
 C-API using ctypes

:Copyright: GNU Public License v3 (GPLv3)
:Author:  Hartmut Goebel h.goe...@crazy-compiler.com
:Homepage: http://bitbucket.org/htgoebel/python-ghostscript
:Download: http://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-API using `ctypes`__. Both a low-level and a pythonic,
high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Latest Changes


:0.3 (2010-08-12):

  * Added support for win32: The DLL to load is searched in registry.

  * On other platforms: Be more inteligent about finding Ghostscript
shared object file (fall back to ctypes.util.find_library() if
`libgs.8.so` can not be loaded

  * Better error messages if lib/dll is not found.

  * Removed relative imports, so older versions of Python can be used.

  * Added nice project logo

:0.2 (2010-08-06):

  * Fixed several bugs, esp. for running strings by Ghostscript.


Example


Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

  import sys
  import ghostscript

  args = [
  ps2pdf, # actual value doesn't matter
  -dNOPAUSE, -dBATCH, -dSAFER,
  -sDEVICE=pdfwrite,
  -sOutputFile= + sys.argv[1],
  -c, .setpdfwrite,
  -f,  sys.argv[2]
  ]

  ghostscript.Ghostscript(*args)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


Announcing: python-ghostscript 0.3

2010-08-12 Thread Hartmut Goebel
Announcing:

python-ghostscript 0.3

A Python-Interface to the Ghostscript
 C-API using ctypes

:Copyright: GNU Public License v3 (GPLv3)
:Author:  Hartmut Goebel h.goe...@crazy-compiler.com
:Homepage: http://bitbucket.org/htgoebel/python-ghostscript
:Download: http://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-API using `ctypes`__. Both a low-level and a pythonic,
high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Latest Changes


:0.3 (2010-08-12):

  * Added support for win32: The DLL to load is searched in registry.

  * On other platforms: Be more inteligent about finding Ghostscript
shared object file (fall back to ctypes.util.find_library() if
`libgs.8.so` can not be loaded

  * Better error messages if lib/dll is not found.

  * Removed relative imports, so older versions of Python can be used.

  * Added nice project logo

:0.2 (2010-08-06):

  * Fixed several bugs, esp. for running strings by Ghostscript.


Example


Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

  import sys
  import ghostscript

  args = [
  ps2pdf, # actual value doesn't matter
  -dNOPAUSE, -dBATCH, -dSAFER,
  -sDEVICE=pdfwrite,
  -sOutputFile= + sys.argv[1],
  -c, .setpdfwrite,
  -f,  sys.argv[2]
  ]

  ghostscript.Ghostscript(*args)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |
-- 
http://mail.python.org/mailman/listinfo/python-list


Announcing: python-ghostscript 0.1

2010-08-06 Thread Hartmut Goebel
Announcing:

python-ghostscript 0.1

A Python-Interface to the Ghostscript
 library using ctypes

:Version:   Version 0.1
:Copyright: GNU Public License v3 (GPLv3)
:Author:Hartmut Goebel h.goe...@crazy-compiler.com
:Homepage:  http://bitbucket.org/htgoebel/python-ghostscript
:Download:  http://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-library using `ctypes`__. Both a low-level and a
pythonic, high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Example


Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

  import sys
  import ghostscript

  args = [
  ps2pdf, # actual value doesn't matter
  -dNOPAUSE, -dBATCH, -dSAFER,
  -sDEVICE=pdfwrite,
  -sOutputFile= + sys.argv[1],
  -c, .setpdfwrite,
  -f,  sys.argv[2]
  ]

  ghostscript.Ghostscript(*args)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


Re: Different byte-code in same major version (2.6.x)?

2010-06-16 Thread Hartmut Goebel
Am 15.06.2010 20:43, schrieb Paul Rubin:
 Hartmut Goebel h.goe...@crazy-compilers.com writes:
 I'm facing a curious problem: 2.6, 2.6.1 and 2.6.4 are generating
 different byte-code for the same source. I can not find the reason for.
 
 Why should they generate the same bytecode?  All that you should expect

Because
a) they are only maintenance releases and changes to bytecode
   generation would eb a functional change
b) bytcode-changes should change the magic-number, which is unchanged
   in this case
c) there is no change to be found in SVN.


-- 
http://mail.python.org/mailman/listinfo/python-list


Different byte-code in same major version (2.6.x)?

2010-06-15 Thread Hartmut Goebel
Hi,

I'm facing a curious problem: 2.6, 2.6.1 and 2.6.4 are generating
different byte-code for the same source. I can not find the reason for.

As you may know, I'm providing the 'decompyle' service as
www.crazy-comnpilers.com. This service includes verification of the
source against the original byte code. So I need to solve these kind of
differences.

This is the source:

   e.args += ('xxx',)

While Python 2.6 (r26:66714, Oct 24 2008, 17:31:07) and Python 2.6.4
(r264:75706, Jan  8 2010, 18:50:31) both optimize the source and load a
tuple constant,

  LOAD_NAME 'e'
  DUP_TOP
  LOAD_ATTR 'args'
  # load a tuple constant
  LOAD_CONST('xxx',)
  INPLACE_ADD
  ROT_TWO
  STORE_ATTR'args'

Python 2.6.1 (r261:67515, Jul  7 2009, 23:51:51)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
does *not* optimize:

  LOAD_NAME 'e'
  DUP_TOP
  LOAD_ATTR 'args'
  # load a string an build a tuple
  LOAD_CONST'xxx'
  BUILD_TUPLE_1
  INPLACE_ADD
  ROT_TWO
  STORE_ATTR'args'

I checked the source in SVN and did not find any change here. But why
does this 2.6.1 generate different byte-code then? Is there anything
special about the Darwin-Build?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |
-- 
http://mail.python.org/mailman/listinfo/python-list


[ANN]: pdftools.pdfposter 0.4.5

2008-11-24 Thread Hartmut Goebel
I'm pleased to announce pdftools.pdfposter 0.4.5, a tool to scale and
tile PDF images/pages to print on multiple pages.

   http://pdfposter.origo.ethz.ch/download/

This version honors cropped pages (/ArtBoxes, /CropBox).

Starting with version 0.4.5, the package was renamed to
'pdftools.pdfposter'. This will allow integrating some other tools
(pdfnup, pdfsplit, etc.) into a larger toolset somewhen.

Download
---

:Quick Installation:
easy_install -U pdftools.pdfposter

:Tarballs:
http://pdfposter.origo.ethz.ch/download/


What is pdfposter?


Scale and tile PDF images/pages to print on multiple pages.

``Pdfposter`` can be used to create a large poster by building it from
multiple pages and/or printing it on large media. It expects as input a
PDF file, normally printing on a single page. The output is again a
PDF file, maybe containing multiple pages together building the
poster.
The input page will be scaled to obtain the desired size.

This is much like ``poster`` does for Postscript files, but working
with PDF. Since sometimes poster does not like your files converted
from PDF. :-) Indeed ``pdfposter`` was inspired by ``poster``.

For more information please refer to the manpage or visit
the `project homepage http://pdfposter.origo.ethz.ch/`_.


:Author:Hartmut Goebel [EMAIL PROTECTED]
:Copyright: GNU Public Licence v3 (GPLv3)
:Homepage:  http://pdfposter.origo.ethz.ch/
--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


[ANN]: pdftools.pdfposter 0.4.5

2008-11-24 Thread Hartmut Goebel
I'm pleased to announce pdftools.pdfposter 0.4.5, a tool to scale and
tile PDF images/pages to print on multiple pages.

   http://pdfposter.origo.ethz.ch/download/

This version honors cropped pages (/ArtBoxes, /CropBox).

Starting with version 0.4.5, the package was renamed to
'pdftools.pdfposter'. This will allow integrating some other tools
(pdfnup, pdfsplit, etc.) into a larger toolset somewhen.

Download
---

:Quick Installation:
easy_install -U pdftools.pdfposter

:Tarballs:
http://pdfposter.origo.ethz.ch/download/


What is pdfposter?


Scale and tile PDF images/pages to print on multiple pages.

``Pdfposter`` can be used to create a large poster by building it from
multiple pages and/or printing it on large media. It expects as input a
PDF file, normally printing on a single page. The output is again a
PDF file, maybe containing multiple pages together building the
poster.
The input page will be scaled to obtain the desired size.

This is much like ``poster`` does for Postscript files, but working
with PDF. Since sometimes poster does not like your files converted
from PDF. :-) Indeed ``pdfposter`` was inspired by ``poster``.

For more information please refer to the manpage or visit
the `project homepage http://pdfposter.origo.ethz.ch/`_.


:Author:Hartmut Goebel [EMAIL PROTECTED]
:Copyright: GNU Public Licence v3 (GPLv3)
:Homepage:  http://pdfposter.origo.ethz.ch/
--
http://mail.python.org/mailman/listinfo/python-list


[ANN] Tyrton ERP 1.0 released

2008-11-18 Thread Hartmut Goebel

On behalf of the Tryton team I'm proud to announce Tryton 1.0,
an Open Source application platform and ERP. It provides modularity, 
scalability and security.


This is the first release of Tryton, a fork of OpenERP (formally known 
as TinyERP). This release is the result of 8 months of intensive work 
which consist of the rewrite of all modules (including contact, sale, 
purchase, invoice, analytic and general account and inventory 
management) and some parts of the core features. It is available in four 
languages (English, French, German and Spanish).


:Homepage:http://www.tryton.org/
:Downloads:   http://www.tryton.org/downloads.html
:Screenshots: http://www.tryton.org/screenshots.html

Tryton is aspire to be a strong community-driven project. We are looking 
for contributors for translations, documentations and testings as long 
as business expertise and user feedbacks.



What is Tryton?

Tryton is a three-tiers high-level general purpose application platform 
under the license GPL-3 written in Python and use Postgresql as database 
engine. It is the core base of an Open Source ERP. It provides 
modularity, scalability and security.


The target audience is the small and medium enterprises who are
looking for a highly customizable and easy to use application platform
and ERP. Tryton provides the ability to organizations to let their
solution grow with their needs.

Tryton Core
--
The core of Tryton (also called Tryton kernel) provide all the necessary 
functionalities for a complete application framework: data persistence 
(i.e an ORM with extensive modularity), users management 
(authentication, fine grained control for data access, handling of 
concurrent access of resources), workflow and report engines, web 
services and internationalization. Thus constituting a complete 
application platform which can be used for any relevant purpose.


Base Modules
-
Currently, the main modules available for Tryton cover the following 
fields of activity:


* Accounting
* Invoicing
* Sale Management
* Purchase Management
* Analytic Accounting
* Inventory Management

They establish a sane base and an easy to use abstraction of some of the 
key concepts for every business customization.

--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


[ANN] Tyrton ERP 1.0 released

2008-11-18 Thread Hartmut Goebel

On behalf of the Tryton team I'm proud to announce Tryton 1.0,
an Open Source application platform and ERP. It provides modularity, 
scalability and security.


This is the first release of Tryton, a fork of OpenERP (formally known 
as TinyERP). This release is the result of 8 months of intensive work 
which consist of the rewrite of all modules (including contact, sale, 
purchase, invoice, analytic and general account and inventory 
management) and some parts of the core features. It is available in four 
languages (English, French, German and Spanish).


:Homepage:http://www.tryton.org/
:Downloads:   http://www.tryton.org/downloads.html
:Screenshots: http://www.tryton.org/screenshots.html

Tryton is aspire to be a strong community-driven project. We are looking 
for contributors for translations, documentations and testings as long 
as business expertise and user feedbacks.



What is Tryton?

Tryton is a three-tiers high-level general purpose application platform 
under the license GPL-3 written in Python and use Postgresql as database 
engine. It is the core base of an Open Source ERP. It provides 
modularity, scalability and security.


The target audience is the small and medium enterprises who are
looking for a highly customizable and easy to use application platform
and ERP. Tryton provides the ability to organizations to let their
solution grow with their needs.

Tryton Core
--
The core of Tryton (also called Tryton kernel) provide all the necessary 
functionalities for a complete application framework: data persistence 
(i.e an ORM with extensive modularity), users management 
(authentication, fine grained control for data access, handling of 
concurrent access of resources), workflow and report engines, web 
services and internationalization. Thus constituting a complete 
application platform which can be used for any relevant purpose.


Base Modules
-
Currently, the main modules available for Tryton cover the following 
fields of activity:


* Accounting
* Invoicing
* Sale Management
* Purchase Management
* Analytic Accounting
* Inventory Management

They establish a sane base and an easy to use abstraction of some of the 
key concepts for every business customization.

--
http://mail.python.org/mailman/listinfo/python-list


ANN: managesieve 0.4

2008-10-14 Thread Hartmut Goebel
After four long years I am happy to announce a new release of 
python-managesieve. To ensure faster development the project has moved 
to a new home at http://python-managesieve.origo.ethz.ch/.


managesieve 0.4


A ManageSieve client library for remotely managing Sieve scripts,
including an user application (the interactive 'sieveshell').

Sieve scripts allow users to filter incoming email on the mail server.
The ManageSieve protocol allows managing Sieve scripts on a remote
mail server. These servers are commonly sealed so users cannot log
into them, yet users must be able to update their scripts on them.
This is what for the ManageSieve protocol is. For more information
about the ManageSieve protocol see `the ManageSieve Internet draft
http://www.ietf.org/internet-drafts/draft-martin-managesieve-07.txt`_.

This module allows accessing a Sieve-Server for managing Sieve scripts
there. It is accompanied by a simple yet functional user application
'sieveshell'.


Changes since 0.3
-
:managesieve:
  - now works with Python 2.3 and later
  - added support for TLS (STARTTLS), special thanks to Gregory Boyce
for fixing some corner cases here
  - added support for PLAIN authentication
  - use optparse if available instead of optik.
  - API change: login() no longer uses the LOGIN authentication
mechanism, but has become a convenience function. It uses the best
mechanism available for authenticating the user.
  - Several Bugfixes, see HISTORY for details.

  Thanks to Tomas 'Skitta' Lindroos, Lorenzo Boccaccia, Alain Spineux,
  darkness and Gregory Boyce for sending patches.

:sieveshell:
  - added support for different authentication mechanisms
  - added option --start-tls
  - several other enhancements and bugfixes

Availability
-

'managesieve' is available for download at
http://python-managesieve.origo.ethz.ch/


Requirements


managesieve requires Python = 2.0


Not yet implemented
---

- sieve-names are only quoted dump (put into quotes, but no escapes yet).


Copyright/License
-

Copyright (C) 2003,2008 by Hartmut Goebel [EMAIL PROTECTED]

License: Python Software Foundation License
 http://www.opensource.org/licenses/PythonSoftFoundation.html

License for 'sieveshell' and test suite: GPL
http://www.opensource.org/licenses/gpl-license.php

Credits
---

Based on Sieve.py from Ulrich Eck [EMAIL PROTECTED] which is part of
of 'ImapClient' (see http://www.zope.org/Members/jack-e/ImapClient), a
Zope product.

Some ideas taken from imaplib written by Piers Lauder
[EMAIL PROTECTED] et al.

Thanks to Tomas 'Skitta' Lindroos, Lorenzo Boccaccia, Alain Spineux,
darkness and Gregory Boyce for sending patches.
--
http://mail.python.org/mailman/listinfo/python-list


Re: pyuno store OO object into blob

2008-10-14 Thread Hartmut Goebel

DarkBlue schrieb:


I want to store an openoffice writer object into a blob field using
the pyuno bridge. I read about the possibility of using streams ,
but only see some old basic or java examples .

The writer document has been created and stored into an odf file
on disk. How to get it from there into the blob ?


The openoffice-python library http://openoffice-python.origo.ethz.ch/ 
contains hight-level support for streams. See sample script at 
http://svn.origo.ethz.ch/wsvn/openoffice-python/trunk/sample-scripts/open-stream.py


--
Schönen Gruß - Regards
Hartmut Goebel
Dipl.-Informatiker (univ.), CISSP

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python and Open Office

2008-09-19 Thread Hartmut Goebel

Terry Reedy schrieb:

Hartmut Goebel wrote:



The API docs are a bit hidden on the webpage. Here is the link:
http://opendocumentfellowship.com/files/api-for-odfpy_2.odt


I wrote my comment *after* looking at the above, which I found easily 
enough.  After 7 pages of (helpful) explanatory text, there follow 88 
pages with hundreds of entries like this:


[...]

Well, I wrote my comment *before* looking at the API docs. Your are 
absolutely right: It is not helpful.



Additionally teh ODF sepcs may help:
http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1.pdf


v1.0 is the adopted international (ISO/IEC) standard.


Specs for ODF 1.0 are available the oasis-open.org, too. So if you want 
to keep close the the ISO standard you surely are better off using 1.0. 
Alternativly you may use the 1.1 docs and skim the appendix about changes.


Regards
H. Goebel
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python and Open Office

2008-09-17 Thread Hartmut Goebel

Terry Reedy schrieb:

One way to learn the meaning of some of the numerous attributes and 
values is to create a file with the wanted features with OOo, save, 
unzip, and examine the xml to see which tags are used for which features.


The API docs are a bit hidden on the webpage. Here is the link:
http://opendocumentfellowship.com/files/api-for-odfpy_2.odt

Additionally teh ODF sepcs may help:
http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1.pdf

Regards
H. Goebel
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python and Open Office

2008-09-16 Thread Hartmut Goebel

Marco Bizzarri schrieb:

On Wed, Sep 10, 2008 at 10:04 PM, Greg Lindstrom [EMAIL PROTECTED] wrote:

Hello,

I would like to create and manipulate Open Office documents using Python.  I

[...]

Is there someone here who can help me out, or is there an appropriate
mailing list for me to join?


Ciao, Greg.

you should check with the openoffice.org mailing list; I think what
you are looking for is the api mailing list for openoffice; you could
try to get the OpenOffice.org developers guide and the SDK, and check
it (but it is not a little work)


If want to create documents, there is no nead to fight with OOo and UNO. 
As I thought everybody already knows, ODF is simply a Zip-File 
containing some XML files. So there is no need to use OOo for handling 
the files.


So odfpy seams to be the best way to to this. You may also want to check 
OOopy http://pypi.python.org/pypi/OOoPy/.


If you are going to interact with OOo, you may want to try out
http://openoffice-python.origo.ethz.ch/

--
Schönen Gruß - Regards
Hartmut Goebel
Dipl.-Informatiker (univ.), CISSP

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python and Open Office

2008-09-16 Thread Hartmut Goebel

Peter Georgeson schrieb:


I can confirm that unfortunately, the PyUNO interface presently
(OpenOffice 2.4) is built with Python 2.3... so to use the UNO
interface from Python you have to write a separate script to run in
the OpenOffice Python 2.3 environment.


This may be true for Windows. On Linux - at least for Mandriva --, OOo 
is already integrated with Python 2.5.


--
Schönen Gruß - Regards
Hartmut Goebel
Dipl.-Informatiker (univ.), CISSP

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


Re: Split function for host:port in standard lib

2008-08-27 Thread Hartmut Goebel

Michael Ströder schrieb:


Examples IPv6 addresses:
'::1:389' - ('::1',389)
'::1' - ('::1',None)


These are wrong, see http://tools.ietf.org/html/rfc2732 (Format for 
Literal IPv6 Addresses in URL's§).


Correct formats are:
[::1]:389
[::1]
--
http://mail.python.org/mailman/listinfo/python-list


ANN: python-unixtools 0.0.1

2008-08-25 Thread Hartmut Goebel
I'm pleased to announce python-unixtools 0.0.1, a set of Unix tools
implemented in pure Python.

These tools are currently only meant as supplement to be able to use
distutils's sdist_tar, sdist_bztar and sdist_gztar on Windows/Wine.
Thus they currently only support the flags required by distutils.

But perhaps this will grow. Feel free to enhance.

Includes tools:
* tar
* gzip
* bzip2


:Quick Installation:
easy_install -U python-unixtools

:Download:
http://python-unixtools.origo.ethz.ch/download/


:Author:Hartmut Goebel [EMAIL PROTECTED]
:Copyright: GNU Public Licence v3 (GPLv3)
:Homepage:  http://python-unixtools.origo.ethz.ch/

-- 
Schönen Gruß - Regards
Hartmut Goebel
Dilp.-Informatiker (univ.), CISSP

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


Re: Digitally sign PDF files

2008-08-15 Thread Hartmut Goebel
haxier schrieb:

 M2Crypto? I didn't know of it... surely I must check it.
 
 It's a very delicate component (security and reliability is a must)
 and don't know how openssl works in windows environments.

M2crypto is available for windows, too. So I would not expect any
problems here.

 The best option could be some kind of thin wrapper around windows
 CryotoAPI, so access to hardware tokens and smartcard readers should

I'm not a windows guy, so I can't help here.

 be easy because under Linux everything seems tied to Mozilla NSS
 libraries.

Some is using NSS, some is OpenSSL. I personally use M2crypto, since the
licence fits me better.

 OpenOffice.org uses XML DSIG (libxmlsec, libxml2) as stated here[1]
 but I can't find more than this[2] implementation/wrapper of libxmlsec

I've not found a usefull specification, too. Digital Signing seams to
become part of ODF 1.2, but I've not found a clear statement on which
files have to be signed nor how.

 PDF signing... I can't find something like iText for Python... I've

iText is overkill far what you need. You only want to sign, not generate
PDF files.

-- 
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


Re: Digitally sign PDF files

2008-08-11 Thread Hartmut Goebel

Hi,


I'm developing an application with some reports and we're looking for
advice. This reports should be openoffice.org .odf files, pdf files,
and perhaps microsoft word files (.doc, .docx?) and must be digitally
signed. Is out there some kind of libraries to ease this tasks?


For signing you can use OpenSSL or the more complete M2crypto modules. 
But this is only the crypto part of the task.


 * Access to the local user certificate store, and read PEM or PKCS12
 certificate files.

If the certificate store is just a file, both packages can to this. If 
the store is some otehr format or maybe the Windows registry, some 
additional functions are required, but should be easy to implement.


 * Read, parse and validate user certificates

This can be easily done with both.


* Sign documents: as a binary stream, within an specific document
(pdf, odt, doc)


This is the hardest part of the task, since the signature has to be 
embedded into the document.



--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


Re: Using McMillan Installer, PyInstall or py2exe cross-platform?

2008-07-30 Thread Hartmut Goebel

Paul Boddie schrieb:

On 15 Jul, 23:00, Hartmut Goebel [EMAIL PROTECTED] wrote:

I started working on cross-pyinstall today.


Let us know how you get on! In theory, one should be able to build
Python (and derived works) using the mingw32 libraries and a suitable
cross-compiler on platforms other than Windows, but I've never
bothered to do so myself.


Pyinstaller trunk is now able to build exe for Windows on Linux/Unix. 
This includes only the bundling of scripts and modules into an exe, 
not compiling anything.


--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


Re: Using McMillan Installer, PyInstall or py2exe cross-platform?

2008-07-15 Thread Hartmut Goebel

David Lyon schrieb:

there is a python based bake make like program... that is useful... 
http://projects.bertram-scharpf.de/bake/bake1.html


I'm not in the need of a build program :-) I would use Scons therefor, 
anyway.


then there is Wine... that is a windows emulator under linux... that 
might be pretty easy http://www.winehq.org/


I don't like to use winw here, it would nor fit into my release process.

I started working on cross-pyinstall today.


--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


Using McMillan Installer, PyInstall or py2exe cross-platform?

2008-07-14 Thread Hartmut Goebel

Hi,

has anybody used McMillan Installer, PyInstall or py2exe cross-platform?

I have a Windows partition with Python installed there, so this would 
only required working on a different directory and for a different OS.
Since I'm working on Linux, it's awful to boot Windows each time I want 
to build a new release.


Any hint in this area?

--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


ANN: pdfposter 0.4.2

2008-06-13 Thread Hartmut Goebel
I'm pleased to announce pdfposter 0.4.2, a tool to scale and tile PDF
images/pages to print on multiple pages.

   http://pdfposter.origo.ethz.ch/download/

This version fixes a view minor bugs
- some media-/poster-sizes (eg. Letter) have not beeb recogniced
- some PDF files crashed the tool.

Download
---

:Quick Installation:
easy_install -U pdfposter

:Tarballs:
http://pdfposter.origo.ethz.ch/download/


What is pdfposter?


Scale and tile PDF images/pages to print on multiple pages.

``Pdfposter`` can be used to create a large poster by building it from
multple pages and/or printing it on large media. It expects as input a
PDF file, normally printing on a single page. The output is again a
PDF file, maybe containing multiple pages together building the
poster.
The input page will be scaled to obtain the desired size.

This is much like ``poster`` does for Postscript files, but working
with PDF. Since sometimes poster does not like your files converted
from PDF. :-) Indeed ``pdfposter`` was inspired by ``poster``.

For more information please refere to the manpage or visit
the `project homepage http://pdfposter.origo.ethz.ch/`_.


:Author:Hartmut Goebel [EMAIL PROTECTED]
:Copyright: GNU Public Licence v3 (GPLv3)
:Homepage:  http://pdfposter.origo.ethz.ch/
--
http://mail.python.org/mailman/listinfo/python-list


[issue2946] setuptools: bdist_wininst adds duplicate entry to dist_files

2008-05-23 Thread Hartmut Goebel

Hartmut Goebel [EMAIL PROTECTED] added the comment:

Yes. I've coincidently found the setptools bugtracker today and filed a
bug-report there.

Please Close.

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue2946
__
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2945] bdist_rpm does not list dist files (should effect upload)

2008-05-22 Thread Hartmut Goebel

New submission from Hartmut Goebel [EMAIL PROTECTED]:

In Python 2.5 distutils has a bug in bdist_rpm:

Generated distribution files are not listed in
``distribution.dist_files``. Thus .rpms can not be handled by other
tools, eg. ``upload``.

I need this bug fixed for automated upload of files using
http://origo-submit.origo.ethz.ch.

Enclosed please find a simple package to show the bug. Just run

python setup.py bdist_rpm

and watch the (missing) output. In contrast see the output of

python setup.py sdist

Additionally:
While untested, this should effect distutils ``upload`` command. RPMs
are not in the dist_files list and when looking at the source, there
seams to be no 'trick' to add them later.

--
components: Distutils
files: simple-0.0.0.0.1.tar.gz
messages: 67192
nosy: htgoebel
severity: normal
status: open
title: bdist_rpm does not list dist files (should effect upload)
versions: Python 2.5
Added file: http://bugs.python.org/file10403/simple-0.0.0.0.1.tar.gz

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue2945
__
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2945] bdist_rpm does not list dist files (should effect upload)

2008-05-22 Thread Hartmut Goebel

Changes by Hartmut Goebel [EMAIL PROTECTED]:


--
type:  - behavior

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue2945
__
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2946] setuptools: bdist_wininst adds duplicate entry to dist_files

2008-05-22 Thread Hartmut Goebel

New submission from Hartmut Goebel [EMAIL PROTECTED]:

In setuptools 0.6c8 has a bug in bdist_wininst:

Distribution files are listed twice
``distribution.dist_files``. This hinders developing tools which use
this data. In addition ``upload`` will upload the file twice to pypi.

I need this bug fixed for automated upload of files using
http://origo-submit.origo.ethz.ch;.

Enclosed please find a simple package to show the bug. Just run

   python setup.py bdist_wininst

this shows one entry. Now run

   python setup-setuptools.py bdist_wininst

this shows two entires.

The only difference between both setup files is wherefrom setup() is
imported.

--
components: Distutils
files: simple-0.0.0.0.1.tar.gz
messages: 67193
nosy: htgoebel
severity: normal
status: open
title: setuptools: bdist_wininst adds duplicate entry to dist_files
type: behavior
versions: Python 2.5
Added file: http://bugs.python.org/file10404/simple-0.0.0.0.1.tar.gz

__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue2946
__
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



Re: Running commands on cisco routers using python

2008-05-20 Thread Hartmut Goebel

Mike Driscoll schrieb:

On May 19, 10:18 am, SPJ [EMAIL PROTECTED] wrote:

Is it possible to run specific commands on cisco router using Python?
I have to run command show access-list on few hundred cisco routers and get 
the dump into a file. Please let me know if it is feasible and the best way to achieve 
this.

Thanks,
SPJ


I think it depends on how you're connecting to the routers.
Theoretically, you should be able to use Python's socket or ssh
modules to connect to them, send commands and capture the output.


I've implemented a toolset for login into cisco components, issueing 
commands and fetchign the results. Works like a charm.


Keypoint here is using pexpect for interacting with SSH.

--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


ANN: origo-submit 0.0.1

2008-05-18 Thread Hartmut Goebel

I'm pleased to announce origo-submit 0.0.1, a tool for summitting
releases to the Origo software development platform.


   http://origo-submit.origo.ethz.ch/download/

This is teh first working version. Is able to upload files, create a
release and list releases. Enjoy.


Download
---

:Quick Installation:
easy_install -U origo-submit

:Tarballs:
http://origo-submit.origo.ethz.ch/download/


What is origo-submit?
--

origo-submit is a script that supports automated creation of releases
at the Origo software development platform via its XML-RPC interface.
It is intended for use in project release scripts.

Inspired by Eric S Raymond's freshmeat-submit
http://www.catb.org/~esr/freshmeat-submit/.



:Author:Hartmut Goebel [EMAIL PROTECTED]
:Copyright: GNU Public Licence v3 (GPLv3)
:Homepage:  http://origo-submit.origo.ethz.ch/

--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


Install man-pages with distutils/setuptools

2008-05-17 Thread Hartmut Goebel

Hi,

is there a standard way or a snippet for installing man-pages with

  python set.py install

when using distutils or setuptools? I have not found one when searching 
the web.


--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


rst2mediawiki?

2008-05-17 Thread Hartmut Goebel

Hello,

I'm looking for a rst2mediawiki writer. Unfortunatly mediawiki is quite 
widespread, but I prefere to sty with rst. Any hint?


--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-list


ANN: pdfposter 0.4

2008-05-16 Thread Hartmut Goebel

I'm pleased to announce pdfposter 0.4, a tool to scale and tile PDF
images/pages to print on multiple pages.

   http://pdfposter.origo.ethz.ch/download/

Download
---

:Quick Installation:
easy_install -U pdfposter

:Tarballs:
http://pdfposter.origo.ethz.ch/download/


What is pdfposter?


Scale and tile PDF images/pages to print on multiple pages.

``Pdfposter`` can be used to create a large poster by building it from
multple pages and/or printing it on large media. It expects as input a
PDF file, normally printing on a single page. The output is again a
PDF file, maybe containing multiple pages together building the
poster.
The input page will be scaled to obtain the desired size.

This is much like ``poster`` does for Postscript files, but working
with PDF. Since sometimes poster does not like your files converted
from PDF. :-) Indeed ``pdfposter`` was inspired by ``poster``.

For more information please refere to the manpage or visit
the `project homepage http://pdfposter.origo.ethz.ch/`_.


:Author:Hartmut Goebel [EMAIL PROTECTED]
:Copyright: GNU Public Licence v3 (GPLv3)
:Homepage:  http://pdfposter.origo.ethz.ch/

--
Schönen Gruß - Regards
Hartmut Goebel

Goebel Consult
Spezialist für IT-Sicherheit in komplexen Umgebungen
http://www.goebel-consult.de
--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html