メンテナンス・トラブルシュート - Python - py311-cryptography-44.0.3_4,1 → 45.0.7_1,1


クラウディア 


1. 概要
2. 状況
3. 対策

1. 概要

 発生は、2025年11月12日。

2. 状況

 下記の状態にありまして。

$ portversion -v | grep '<'
[Reading data from pkg(8) ... - 879 packages found - done]
py311-acme-4.2.0,1          <  needs updating (port has 4.2.0_1,1)
py311-aioquic-1.3.0         <  needs updating (port has 1.3.0_1)
py311-bcrypt-5.0.0          <  needs updating (port has 5.0.0_1)
py311-cryptography-44.0.3_4,1  <  needs updating (port has 45.0.7_1,1)
py311-jh2-5.0.10            <  needs updating (port has 5.0.10_1)
py311-maturin-1.9.6         <  needs updating (port has 1.9.6_1)
py311-openssl-25.0.0_1,1    <  needs updating (port has 25.3.0_1,1) (=> 'security/py-pyopenssl')
 上からアップグレードしようとします。

env BATCH=yes portupgrade -rR py311-acme
 すると。

[Reading data from pkg(8) ... - 879 packages found - done]
[Gathering depends for security/py-acme ............................... done]
[Gathering depends for security/py-certbot ............... done]
[Exclude up-to-date packages ............. done]
--->  Upgrading 'py311-acme-4.2.0,1' to 'py311-acme-4.2.0_1,1' (security/py-acme)
--->  Building '/usr/ports/security/py-acme'
===>  Cleaning for py311-acme-4.2.0_1,1
===>  License APACHE20 accepted by the user
===>   py311-acme-4.2.0_1,1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by py311-acme-4.2.0_1,1 for building
===>  Extracting for py311-acme-4.2.0_1,1
=> SHA256 Checksum OK for acme-4.2.0.tar.gz.
===>  Patching for py311-acme-4.2.0_1,1
===>   py311-acme-4.2.0_1,1 depends on package: py311-setuptools>=0 - found

・・・	略	・・・

====> Compressing man pages (compress-man)
===>  Installing for py311-cryptography-45.0.7_1,1
===>  Checking if py311-cryptography is already installed
===>   An older version of py311-cryptography is already installed (py311-cryptography-44.0.3_4,1)
      You may wish to ''make deinstall'' and install this port again
      by ''make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of py311-cryptography
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/security/py-cryptography
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/security/py-pyopenssl
*** Error code 1

Stop.
make: stopped in /usr/ports/security/py-acme
egrep: empty (sub)expression
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20251112-55918-bn7w5i env UPGRADE_TOOL=portupgrade UPGRADE_PORT=py311-acme-4.2.0,1 UPGRADE_PORT_VER=4.2.0,1 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! security/py-acme (py311-acme-4.2.0,1) (unknown build error)
 てなことになります。

3. 対策

 結局、これは、依存関係とインストール順がかみあっていないことが原因のようです。  まず。

cd /usr/ports/security/py-cryptography
make NO_DIALOG=yes
make reinstall
 次に。

env BATCH=yes portupgrade -rR py311-openssl
 ここまで、上記の順にやれば、以降は、残るものがあっても、「portupgrade」でアップグレードできます。

サウンドハウス