[Ann] managesieve v0.8 released
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
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
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
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=
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=
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
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
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
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?
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?
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?
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
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
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
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
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
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
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
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
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
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
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
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
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?
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?
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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)?
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)?
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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?
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?
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
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
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)
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)
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
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
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
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
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?
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
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