From phd at phdru.name Sat Feb 1 14:39:46 2025 From: phd at phdru.name (Oleg Broytman) Date: Sat, 1 Feb 2025 22:39:46 +0300 Subject: SQLObject 3.12.0.post2 Message-ID: Hello! I'm pleased to announce version 3.12.0.post2, the second post-release of release 3.12.0 of branch 3.12 of SQLObject. What's new in SQLObject ======================= Installation/dependencies ------------------------- * Use ``FormEncode`` 2.1.1 for Python 3.13. For a more complete list, please see the news: http://sqlobject.org/News.html What is SQLObject ================= SQLObject is a free and open-source (LGPL) Python object-relational mapper. Your database tables are described as classes, and rows are instances of those classes. SQLObject is meant to be easy to use and quick to get started with. SQLObject supports a number of backends: MySQL/MariaDB (with a number of DB API drivers: ``MySQLdb``, ``mysqlclient``, ``mysql-connector``, ``PyMySQL``, ``mariadb``), PostgreSQL (``psycopg2``, ``PyGreSQL``, partially ``pg8000`` and ``py-postgresql``), SQLite (builtin ``sqlite3``); connections to other backends - Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB) - are less debugged). Python 2.7 or 3.4+ is required. Where is SQLObject ================== Site: http://sqlobject.org Download: https://pypi.org/project/SQLObject/3.12.0.post2 News and changes: http://sqlobject.org/News.html StackOverflow: https://stackoverflow.com/questions/tagged/sqlobject Mailing lists: https://sourceforge.net/p/sqlobject/mailman/ Development: http://sqlobject.org/devel/ Developer Guide: http://sqlobject.org/DeveloperGuide.html Example ======= Install:: $ pip install sqlobject Create a simple class that wraps a table:: >>> from sqlobject import * >>> >>> sqlhub.processConnection = connectionForURI('sqlite:/:memory:') >>> >>> class Person(SQLObject): ... fname = StringCol() ... mi = StringCol(length=1, default=None) ... lname = StringCol() ... >>> Person.createTable() Use the object:: >>> p = Person(fname="John", lname="Doe") >>> p >>> p.fname 'John' >>> p.mi = 'Q' >>> p2 = Person.get(1) >>> p2 >>> p is p2 True Queries:: >>> p3 = Person.selectBy(lname="Doe")[0] >>> p3 >>> pc = Person.select(Person.q.lname=="Doe").count() >>> pc 1 Oleg. -- Oleg Broytman https://phdru.name/ phd at phdru.name Programmers don't die, they just GOSUB without RETURN. From info at physalia-courses.org Sat Feb 1 11:05:00 2025 From: info at physalia-courses.org (info at physalia-courses.org) Date: Sat, 1 Feb 2025 17:05:00 +0100 (CET) Subject: online course - INTRODUCTION TO PYTHON PROGRAMMING FOR BIOLOGISTS - 24-27 February Message-ID: <1738425900.086130593@webmail.jimdo.com> Dear all, there are the last seats available for our online course - INTRODUCTION TO PYTHON PROGRAMMING FOR BIOLOGISTS Dates: 24?27 February Course Website: [ https://www.physalia-courses.org/courses-workshops/python24/ ]( https://www.physalia-courses.org/courses-workshops/python24/ ) This four-day course is tailored for biologists and life scientists at all levels with little or no prior programming experience. Participants will gain a strong foundation in Python programming and its applications in biological data analysis, with a focus on hands-on exercises and real-world projects. By the end of the course, you will be able to: Write and run Python code for biological data analysis and visualization. Use bioinformatics libraries like BioPython. Perform statistical analysis with Python. Create organized and reusable code. Develop a simple project tailored to your research field. Program Highlights: Day 1: Python basics, data types, and DNA sequence manipulation. Day 2: Dictionaries, loops, and field data analysis. Day 3: I/O handling, BioPython, and ChIP-seq data processing. Day 4: Statistics, visualization, and advanced projects in viral genomics. Best regards, Carlo -------------------- Carlo Pecoraro, Ph.D Physalia-courses DIRECTOR info at physalia-courses.org mobile: +49 17645230846 From thomas at python.org Tue Feb 4 15:00:29 2025 From: thomas at python.org (Thomas Wouters) Date: Tue, 4 Feb 2025 21:00:29 +0100 Subject: [RELEASE] Python 3.13.2 and 3.12.9 now available! Message-ID: A small release day today! That is to say the releases are relatively small; the day itself was of average size, as most days are. Python 3.13.2 Python 3.13?s second maintenance release. About 250 changes went into this update, and can be yours for free if you just upgrade now. https://www.python.org/downloads/release/python-3132/ Python 3.12.9 Python 3.12?s *ninth* maintenance release already. Just 180 changes for 3.12, but it?s still worth upgrading. https://www.python.org/downloads/release/python-3129/ Enjoy the new releases Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. Regards from your team, Thomas Wouters Ned Deily Steve Dower ?ukasz Langa From rust at fakedomain.nope Thu Feb 6 09:15:45 2025 From: rust at fakedomain.nope (Rust Buckett) Date: Thu, 06 Feb 2025 09:15:45 -0500 Subject: [RELEASE] Python 3.13.2 and 3.12.9 now available! References: Message-ID: <877c63jh0u.fsf@fakedomain.nope> Thomas Wouters writes: > A small release day today! That is to say the releases are relatively > small; the day itself was of average size, as most days are. nice. -- this is my clever sig. From vincent.vandevyvre at oqapy.eu Sun Feb 9 03:33:57 2025 From: vincent.vandevyvre at oqapy.eu (vincent.vandevyvre at oqapy.eu) Date: Sun, 09 Feb 2025 03:33:57 -0500 (EST) Subject: Version of OpenSSl ? Message-ID: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> Hi, Trying to compile Python-3.12.9 on Ubuntu-24.04 The compilation is complete without errors but I have this message: -------------------------------------------------------------------------------------------------------- The necessary bits to build these optional modules were not found: _hashlib _ssl nis To find the necessary bits, look in configure.ac and config.log. Could not build the ssl module! Python requires a OpenSSL 1.1.1 or newer -------------------------------------------------------------------------------------------------------- But I have a more newer version: ------------------------------------------------------------------------------------------------------- $ openssl version OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) ------------------------------------------------------------------------------------------------------- What can I do for that ? Vincent. From olegsivokon at gmail.com Sun Feb 9 07:20:07 2025 From: olegsivokon at gmail.com (Left Right) Date: Sun, 9 Feb 2025 13:20:07 +0100 Subject: Version of OpenSSl ? In-Reply-To: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> References: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> Message-ID: HI Vincent. You need the sources of the OpenSSL library, not the compiled library. On Ubuntu, the packages with sources are typically named xxx-dev where xxx is the package that provides the library. I don't have a Ubuntu currently, but try looking for something like openssl-dev or libopenssl-dev etc. On Sun, Feb 9, 2025 at 9:35?AM Vincent Vande Vyvre via Python-list wrote: > > Hi, > > Trying to compile Python-3.12.9 on Ubuntu-24.04 > > The compilation is complete without errors but I have this message: > -------------------------------------------------------------------------------------------------------- > The necessary bits to build these optional modules were not found: > _hashlib _ssl nis > To find the necessary bits, look in configure.ac and config.log. > > Could not build the ssl module! > Python requires a OpenSSL 1.1.1 or newer > -------------------------------------------------------------------------------------------------------- > > But I have a more newer version: > > ------------------------------------------------------------------------------------------------------- > $ openssl version > OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) > ------------------------------------------------------------------------------------------------------- > > What can I do for that ? > > Vincent. > -- > https://mail.python.org/mailman/listinfo/python-list From vincent.vandevyvre at oqapy.eu Sun Feb 9 07:54:01 2025 From: vincent.vandevyvre at oqapy.eu (vincent.vandevyvre at oqapy.eu) Date: Sun, 09 Feb 2025 07:54:01 -0500 (EST) Subject: RE Version of OpenSSl ? Message-ID: <20250209134525.BQlR2E0064eH6rS01QlRjH@laurent.telenet-ops.be> > HI Vincent. > > You need the sources of the OpenSSL library, not the compiled library. > On Ubuntu, the packages with sources are typically named xxx-dev where > xxx is the package that provides the library. I don't have a Ubuntu > currently, but try looking for something like openssl-dev or > libopenssl-dev etc. Thanks, the dev packege seems named libssl-dev. But: ---------------------------------------------------------------- $ sudo apt install libssl-dev [sudo] Mot de passe de vincent : Lecture des listes de paquets... Fait Construction de l'arbre des d?pendances... Fait Lecture des informations d'?tat... Fait libssl-dev est d?j? la version la plus r?cente (3.0.13-0ubuntu3.4). ---------------------------------------------------------------- In english: "libssl-dev is already the most recent version (3.0.13-0ubuntu3.4). Vincent From jsf80238 at gmail.com Sun Feb 9 10:12:56 2025 From: jsf80238 at gmail.com (Jason Friedman) Date: Sun, 9 Feb 2025 08:12:56 -0700 Subject: Version of OpenSSl ? In-Reply-To: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> References: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> Message-ID: > > Trying to compile Python-3.12.9 on Ubuntu-24.04 > > The compilation is complete without errors but I have this message: > > -------------------------------------------------------------------------------------------------------- > The necessary bits to build these optional modules were not found: > _hashlib _ssl nis > To find the necessary bits, look in configure.ac and config.log. > > Could not build the ssl module! > Python requires a OpenSSL 1.1.1 or newer > > -------------------------------------------------------------------------------------------------------- > > But I have a more newer version: > > > ------------------------------------------------------------------------------------------------------- > $ openssl version > OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) > > ------------------------------------------------------------------------------------------------------- > In case this helps you find the correct package to install: $ python3 -c "if True: > import ssl > print('Ok.') > " Ok. $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=24.04 DISTRIB_CODENAME=noble DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS" $ apt list --installed | grep ssl WARNING: apt does not have a stable CLI interface. Use with caution in scripts. libssl-dev/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 [installed] libssl3t64/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 [installed,automatic] libxmlsec1t64-openssl/noble,now 1.2.39-5build2 amd64 [installed,automatic] openssl/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 [installed,automatic] ssl-cert/noble,noble,now 1.1.2ubuntu1 all [installed,automatic] From vincent.vandevyvre at oqapy.eu Sun Feb 9 11:49:27 2025 From: vincent.vandevyvre at oqapy.eu (vincent.vandevyvre at oqapy.eu) Date: Sun, 09 Feb 2025 11:49:27 -0500 (EST) Subject: RE Version of OpenSSl ? Message-ID: <20250209174926.BUpS2E00C4eH6rS01UpS0A@andre.telenet-ops.be> > > In case this helps you find the correct package to install: > > $ python3 -c "if True: > > import ssl > > print('Ok.') > > " > Ok. > > $ cat /etc/lsb-release > DISTRIB_ID=Ubuntu > DISTRIB_RELEASE=24.04 > DISTRIB_CODENAME=noble > DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS" > > $ apt list --installed | grep ssl > > WARNING: apt does not have a stable CLI interface. Use with caution in > scripts. > > libssl-dev/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 > [installed] > libssl3t64/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 > [installed,automatic] > libxmlsec1t64-openssl/noble,now 1.2.39-5build2 amd64 [installed,automatic] > openssl/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 > [installed,automatic] > ssl-cert/noble,noble,now 1.1.2ubuntu1 all [installed,automatic] Thanks Jason, I have near the same result of you. I need to explain the context. I'm on a new machine with a fresh install of Ubuntu 24.04 wich embed Python 3.12.3, no problem with that. As I'm maintainer of some Python modules published on PyPI, I've the habit of testing my modules in different virtual environments. For now Python 3.11, 3.12 and 3.13. So, I've maybe found a solution: I've create in my home a dir named /opt, download into it the latest version of openssl-1.1.1 and uncompress it.(*) ------------------------------------------------------------- $ cd opt/openssl-1.1.1w $ ./config && make && make test $ mkdir $HOME/opt/lib $ mv $HOME/opt/openssl-1.1.1w/libcrypto.so.1.1 $HOME/opt/lib/ $ mv $HOME/opt/openssl-1.1.1w/libssl.so.1.1 $HOME/opt/lib/ $ export LD_LIBRARY_PATH=$HOME/opt/lib:$LD_LIBRARY_PATH -------------------------------------------------------------- And rerun the compilation of 3.12.9 without problem with openssl. (*) https://openssl-library.org/source/old/1.1.1/index.html Vincent. From olegsivokon at gmail.com Sun Feb 9 13:06:14 2025 From: olegsivokon at gmail.com (Left Right) Date: Sun, 9 Feb 2025 19:06:14 +0100 Subject: RE Version of OpenSSl ? In-Reply-To: <20250209174926.BUpS2E00C4eH6rS01UpS0A@andre.telenet-ops.be> References: <20250209174926.BUpS2E00C4eH6rS01UpS0A@andre.telenet-ops.be> Message-ID: So, this is how I know where my SSL headers are found, for instance: ? cpython git:(3.12) gcc -I. -I./Include -H ./Modules/_ssl.c 2>&1 | grep evp.h .. /usr/include/openssl/evp.h (this was executed from the repository root). Can you see if you get something similar? Also... just for sanity check: did you run .configure? There's a lot of twisted logic there trying to find OpenSSL. And, unfortunately, error reporting is very poor. (The error you are getting comes way, way after everything bad has already happened and all knowledge of how it happened is lost). Just all around atrocious error handling. On Sun, Feb 9, 2025 at 5:51?PM Vincent Vande Vyvre via Python-list wrote: > > > > > In case this helps you find the correct package to install: > > > > $ python3 -c "if True: > > > import ssl > > > print('Ok.') > > > " > > Ok. > > > > $ cat /etc/lsb-release > > DISTRIB_ID=Ubuntu > > DISTRIB_RELEASE=24.04 > > DISTRIB_CODENAME=noble > > DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS" > > > > $ apt list --installed | grep ssl > > > > WARNING: apt does not have a stable CLI interface. Use with caution in > > scripts. > > > > libssl-dev/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 > > [installed] > > libssl3t64/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 > > [installed,automatic] > > libxmlsec1t64-openssl/noble,now 1.2.39-5build2 amd64 [installed,automatic] > > openssl/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 > > [installed,automatic] > > ssl-cert/noble,noble,now 1.1.2ubuntu1 all [installed,automatic] > > Thanks Jason, I have near the same result of you. > I need to explain the context. > I'm on a new machine with a fresh install of Ubuntu 24.04 wich embed Python 3.12.3, no problem with that. > > As I'm maintainer of some Python modules published on PyPI, I've the habit of testing my modules in different virtual environments. For now Python 3.11, 3.12 and 3.13. > > So, I've maybe found a solution: > > I've create in my home a dir named /opt, download into it the latest version of openssl-1.1.1 and uncompress it.(*) > ------------------------------------------------------------- > $ cd opt/openssl-1.1.1w > $ ./config && make && make test > $ mkdir $HOME/opt/lib > $ mv $HOME/opt/openssl-1.1.1w/libcrypto.so.1.1 $HOME/opt/lib/ > $ mv $HOME/opt/openssl-1.1.1w/libssl.so.1.1 $HOME/opt/lib/ > $ export LD_LIBRARY_PATH=$HOME/opt/lib:$LD_LIBRARY_PATH > -------------------------------------------------------------- > And rerun the compilation of 3.12.9 without problem with openssl. > > (*) https://openssl-library.org/source/old/1.1.1/index.html > > Vincent. > > > -- > https://mail.python.org/mailman/listinfo/python-list From Keith.S.Thompson+u at gmail.com Sun Feb 9 05:35:31 2025 From: Keith.S.Thompson+u at gmail.com (Keith Thompson) Date: Sun, 09 Feb 2025 02:35:31 -0800 Subject: Version of OpenSSl ? References: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> Message-ID: <87zfivz9qk.fsf@nosuchdomain.example.com> vincent.vandevyvre at oqapy.eu writes: > Hi, > > Trying to compile Python-3.12.9 on Ubuntu-24.04 > > The compilation is complete without errors but I have this message: > -------------------------------------------------------------------------------------------------------- > The necessary bits to build these optional modules were not found: > _hashlib _ssl nis > To find the necessary bits, look in configure.ac and config.log. > > Could not build the ssl module! > Python requires a OpenSSL 1.1.1 or newer > -------------------------------------------------------------------------------------------------------- > > But I have a more newer version: > > ------------------------------------------------------------------------------------------------------- > $ openssl version > OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024) > ------------------------------------------------------------------------------------------------------- You have the openssl command, but do you have the openssl development libraries? For Ubuntu, you need to install the libssl-dev package. `dpkg -l libssl-dev` will tell you whether you have it. If you don't, `sudo apt-get install libssl-dev` will install it. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u at gmail.com void Void(void) { Void(); } /* The recursive call of the void */ From Keith.S.Thompson+u at gmail.com Sun Feb 9 20:28:28 2025 From: Keith.S.Thompson+u at gmail.com (Keith Thompson) Date: Sun, 09 Feb 2025 17:28:28 -0800 Subject: RE Version of OpenSSl ? References: <20250209174926.BUpS2E00C4eH6rS01UpS0A@andre.telenet-ops.be> Message-ID: <87pljqpozn.fsf@nosuchdomain.example.com> vincent.vandevyvre at oqapy.eu writes: >> In case this helps you find the correct package to install: >> >> $ python3 -c "if True: >> > import ssl >> > print('Ok.') >> > " >> Ok. >> >> $ cat /etc/lsb-release >> DISTRIB_ID=Ubuntu >> DISTRIB_RELEASE=24.04 >> DISTRIB_CODENAME=noble >> DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS" >> >> $ apt list --installed | grep ssl >> >> WARNING: apt does not have a stable CLI interface. Use with caution in >> scripts. >> >> libssl-dev/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 >> [installed] >> libssl3t64/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 >> [installed,automatic] >> libxmlsec1t64-openssl/noble,now 1.2.39-5build2 amd64 [installed,automatic] >> openssl/noble-updates,noble-security,now 3.0.13-0ubuntu3.4 amd64 >> [installed,automatic] >> ssl-cert/noble,noble,now 1.1.2ubuntu1 all [installed,automatic] > > Thanks Jason, I have near the same result of you. > I need to explain the context. > I'm on a new machine with a fresh install of Ubuntu 24.04 wich embed Python 3.12.3, no problem with that. > > As I'm maintainer of some Python modules published on PyPI, I've the > habit of testing my modules in different virtual environments. For now > Python 3.11, 3.12 and 3.13. > > So, I've maybe found a solution: > > I've create in my home a dir named /opt, download into it the latest version of openssl-1.1.1 and uncompress it.(*) > ------------------------------------------------------------- > $ cd opt/openssl-1.1.1w > $ ./config && make && make test > $ mkdir $HOME/opt/lib > $ mv $HOME/opt/openssl-1.1.1w/libcrypto.so.1.1 $HOME/opt/lib/ > $ mv $HOME/opt/openssl-1.1.1w/libssl.so.1.1 $HOME/opt/lib/ > $ export LD_LIBRARY_PATH=$HOME/opt/lib:$LD_LIBRARY_PATH > -------------------------------------------------------------- > And rerun the compilation of 3.12.9 without problem with openssl. > > (*) https://openssl-library.org/source/old/1.1.1/index.html OpenSSL 1.1.1 is pretty old, released in 2018 if I'm not mistaken. An environment on Ubuntu 24.04 with OpenSSL 1.1.1 libraries is a bit unusual. If your goal is to ensure that you can build Python with the oldest OpenSSL it claims to support, what you're doing makes sense. But if you have libssl-dev already installed and your Python build complains "Python requires a OpenSSL 1.1.1 or newer", then something weird is going on, and it's probably worth tracking it down. The best solution *should* be to install the current libssl-dev package from the package manager, not to build an old version of OpenSSL from source. I've built Python-3.12.9 from source on Ubuntu-22.04 with no problems (I have libssl-dev installed). To be clear, what is the output of "dpkg -l libssl-dev" on your Ubuntu 24.04 system? If you get something similar to this: ``` $ dpkg -l libssl-dev Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-================-==============-============-================================================ ii libssl-dev:amd64 3.3.1-2ubuntu2 amd64 Secure Sockets Layer toolkit - development files ``` then I don't understand why you'd get the "Python requires a OpenSSL 1.1.1 or newer" message. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u at gmail.com void Void(void) { Void(); } /* The recursive call of the void */ From grant.b.edwards at gmail.com Mon Feb 10 12:01:10 2025 From: grant.b.edwards at gmail.com (Grant Edwards) Date: Mon, 10 Feb 2025 12:01:10 -0500 (EST) Subject: Version of OpenSSl ? References: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> Message-ID: <4Ys9ny3DPfznWGq@mail.python.org> On 2025-02-09, Left Right via Python-list wrote: > You need the sources of the OpenSSL library, not the compiled library. > On Ubuntu, the packages with sources are typically named xxx-dev where > xxx is the package that provides the library. I don't have a Ubuntu > currently, but try looking for something like openssl-dev or > libopenssl-dev etc. Do the -dev packages on Ubuntu really contain the sources for the libraries? I knew they contained the static libraries and the include files required to build against the libraries, but I didn't think they contained the library sources. -- Grant From rosuav at gmail.com Mon Feb 10 13:04:05 2025 From: rosuav at gmail.com (Chris Angelico) Date: Tue, 11 Feb 2025 05:04:05 +1100 Subject: Version of OpenSSl ? In-Reply-To: <4Ys9ny3DPfznWGq@mail.python.org> References: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> <4Ys9ny3DPfznWGq@mail.python.org> Message-ID: On Tue, 11 Feb 2025 at 04:04, Grant Edwards via Python-list wrote: > > On 2025-02-09, Left Right via Python-list wrote: > > > You need the sources of the OpenSSL library, not the compiled library. > > On Ubuntu, the packages with sources are typically named xxx-dev where > > xxx is the package that provides the library. I don't have a Ubuntu > > currently, but try looking for something like openssl-dev or > > libopenssl-dev etc. > > Do the -dev packages on Ubuntu really contain the sources for > the libraries? No they don't, and Mr "Left Right" is talking out his, uhh, "Back". :) > I knew they contained the static libraries and the include files > required to build against the libraries, but I didn't think they > contained the library sources. They contain everything you need to link to the library. That usually means headers and libraries, and also pkgconfig files to point to their locations, plus anything else you might need. But no sources. That's the job of source archives. ChrisA From grant.b.edwards at gmail.com Mon Feb 10 13:54:50 2025 From: grant.b.edwards at gmail.com (Grant Edwards) Date: Mon, 10 Feb 2025 13:54:50 -0500 (EST) Subject: Version of OpenSSl ? References: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> <4Ys9ny3DPfznWGq@mail.python.org> Message-ID: <4YsDK62dcXznVCN@mail.python.org> On 2025-02-10, Chris Angelico via Python-list wrote: > On Tue, 11 Feb 2025 at 04:04, Grant Edwards via Python-list wrote: >> On 2025-02-09, Left Right via Python-list wrote: >> >>> You need the sources of the OpenSSL library, not the compiled library. >>> On Ubuntu, the packages with sources are typically named xxx-dev [...] >> >> Do the -dev packages on Ubuntu really contain the sources for >> the libraries? > > No they don't, and Mr "Left Right" is talking out his, uhh, "Back". :) > >> I knew they contained the static libraries and the include files >> required to build against the libraries, but I didn't think they >> contained the library sources. > > They contain everything you need to link to the library. That > usually means headers and libraries, and also pkgconfig files to > point to their locations, plus anything else you might need. But no > sources. That's the job of source archives. Yep, I got curious and ssh'ed into one of the Ubuntu server machines I maintain and looked at the files installed by some of the -dev packages. [Those machines aren't used for development so didn't have many of them.] The -dev packages also contain the man pages for the libraries. It surprised me at first that the man pages weren't installed by the "normal" lib packages. But, if you're not writing/building apps that link with library X, you don't need the man pages for library X. -- Grant From rosuav at gmail.com Mon Feb 10 14:00:08 2025 From: rosuav at gmail.com (Chris Angelico) Date: Tue, 11 Feb 2025 06:00:08 +1100 Subject: Version of OpenSSl ? In-Reply-To: <4YsDK62dcXznVCN@mail.python.org> References: <20250209092819.BLUK2E0092BKbYl01LUKR6@andre.telenet-ops.be> <4Ys9ny3DPfznWGq@mail.python.org> <4YsDK62dcXznVCN@mail.python.org> Message-ID: On Tue, 11 Feb 2025 at 05:56, Grant Edwards via Python-list wrote: > The -dev packages also contain the man pages for the libraries. It > surprised me at first that the man pages weren't installed by the > "normal" lib packages. But, if you're not writing/building apps that > link with library X, you don't need the man pages for library X. > Exactly, yeah. You may find though that there are some files installed by both such as license files. ChrisA From hugo at python.org Tue Feb 11 14:46:13 2025 From: hugo at python.org (Hugo van Kemenade) Date: Tue, 11 Feb 2025 21:46:13 +0200 Subject: Python 3.14.0 alpha 5 Message-ID: Here comes the antepenultimate alpha. https://www.python.org/downloads/release/python-3140a5/ This is an early developer preview of Python 3.14. Major new features of the 3.14 series, compared to 3.13: Python 3.14 is still in development. This release, 3.14.0a5, is the fifth of seven planned alpha releases. Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process. During the alpha phase, features may be added up until the start of the beta phase (2025-05-06) and, if necessary, may be modified or deleted up until the release candidate phase (2025-07-22). Please keep in mind that this is a preview release and its use is not recommended for production environments. Many new features for Python 3.14 are still being planned and written. Among the new major new features and changes so far: - PEP 649: deferred evaluation of annotations - PEP 741: Python configuration C API - PEP 761: Python 3.14 and onwards no longer provides PGP signatures for release artifacts. Instead, Sigstore is recommended for verifiers. - Improved error messages - A new type of interpreter. For certain newer compilers, this interpreter provides significantly better performance. Opt-in for now, requires building from source. - Python removals and deprecations - C API removals and deprecations - (Hey, fellow core developer, if a feature you find important is missing from this list, let Hugo know.) The next pre-release of Python 3.14 will be the penultimate alpha, 3.14.0a6, currently scheduled for 2025-03-14. More resources: - Online documentation: https://docs.python.org/3.14/ - PEP 745, 3.14 Release Schedule: https://peps.python.org/pep-0745/ - Report bugs at https://github.com/python/cpython/issues - Help fund Python and its community: https://www.python.org/psf/donations/ And now for something completely different! 2025-01-29 marked the start of a new lunar year, the Year of the Snake ? (and the Year of Python?). For centuries, ? was often approximated as 3 in China. Some time between the years 1 and 5 CE, astronomer, librarian, mathematician and politician Liu Xin (??) calculated ? as 3.154. Around 130 CE, mathematician, astronomer, and geographer Zhang Heng (??, 78?139) compared the celestial circle with the diameter of the earth as 736:232 to get 3.1724. He also came up with a formula for the ratio between a cube and inscribed sphere as 8:5, implying the ratio of a square?s area to an inscribed circle is ?8:?5. From this, he calculated ? as ?10 (~3.162). Third century mathematician Liu Hui (??) came up with an algorithm for calculating ? iteratively: calculate the area of a polygon inscribed in a circle, then as the number of sides of the polygon is increased, the area becomes closer to that of the circle, from which you can approximate ?. This algorithm is similar to the method used by Archimedes in the 3rd century BCE and Ludolph van Ceulen in the 16th century CE (see 3.14.0a2 release notes), but Archimedes only went up to a 96-sided polygon (96-gon). Liu Hui went up to a 192-gon to approximate ? as 157/50 (3.14) and later a 3072-gon for 3.14159. Liu Hu wrote a commentary on the book The Nine Chapters on the Mathematical Art which included his ? approximations. In the fifth century, astronomer, inventor, mathematician, politician, and writer Zu Chongzhi (???, 429?500) used Liu Hui?s algorithm to inscribe a 12,288-gon to compute ? between 3.1415926 and 3.1415927, correct to seven decimal places. This was more accurate than Hellenistic calculations and wouldn?t be improved upon for 900 years. Happy Year of the Snake! Enjoy the new release Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the Python Software Foundation. Regards from a remarkably snowless Helsinki, Your release team, Hugo van Kemenade Ned Deily Steve Dower ?ukasz Langa From Keith.S.Thompson+u at gmail.com Tue Feb 11 18:25:27 2025 From: Keith.S.Thompson+u at gmail.com (Keith Thompson) Date: Tue, 11 Feb 2025 15:25:27 -0800 Subject: Building CPython from source, stripping executable Message-ID: <87frkknjx4.fsf@nosuchdomain.example.com> I'm building CPython 3.14.0a5 from source on Ubuntu 22.04.5. Is there some way to specify that the python3.14 executable should be stripped? (Stripping reduces the size of the executable from 33M to 5.8M.) Of course I can run "strip" manually after installing, but I'm looking for a way to do it as part of the build. For a lot of software packages, invoking "make install-strip" rather than "make install" does this, but CPython's generated Makefile doesn't include this target. Diving into the Makefile, I see this: # Option to install to strip binaries STRIPFLAG=-s but STRIPFLAG is used only if PYTHONFRAMEWORKDIR is set, which seems to be Mac-specific. The Makefile also has: INSTALL= /usr/bin/install -c (The "-c" option is ignored by the GNU Coreutils install command.) I tried setting INSTALL to "install -s", and the installation failed because it tried to strip Python scripts as well as the python3.14 executable: install -s -m 644 ./Tools/gdb/libpython.py python-gdb.py strip: python-gdb.py: file format not recognized install: strip process terminated abnormally make: *** [Makefile:1117: python-gdb.py] Error 1 Is there a straightforward way to strip executables during installation? If not, I'll run "strip" manually for now and submit an issue on suggesting adding an "install-strip" target to the Makefile. I don't think this is a new issue in 3.14.0a5; that's just where I happened to run into it. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u at gmail.com void Void(void) { Void(); } /* The recursive call of the void */