これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。
HTML ファイル生成日時: 2024/11/21 17:40:55.112 (台灣標準時)
pkgsrc の package に対して patch を作成する方法を簡単にまとめておくで ござる。
ここでは、 pkgsrc_myownpkgs/py-astro-aleph というパッケージに対してパッ チを作成することを考えるでござる。まず、 make してみるでござる。
# cd /usr/pkgsrc/pkgsrc_myownpkgs/py-astro-aleph # make => Bootstrap dependency digest>=20211023: found digest-20220214 => Checksum BLAKE2s OK for astro_aleph-1.0.0.tar.gz => Checksum SHA512 OK for astro_aleph-1.0.0.tar.gz ===> Installing dependencies for py312-astro_aleph-1.0.0 ========================================================================== The following variables will affect the build process of this package, py312-astro_aleph-1.0.0. Their current value is shown below: * PKGSRC_BLAS_TYPES = netlib openblas openblas_pthread openblas_openmp * PYTHON_VERSION_DEFAULT = 312 Based on these variables, the following variables have been set: * BLAS_INCLUDES = -I/usr/pkg/include/netlib * BLAS_LIBS = -lblas * BLAS_PC = blas * BLAS_TYPE = netlib * CBLAS_LIBS = -lcblas -lblas * CBLAS_PC = cblas * LAPACKE_LIBS = -llapacke -llapack -lblas * LAPACKE_PC = lapacke * LAPACK_LIBS = -llapack -lblas * LAPACK_PC = lapack * PYPACKAGE = python312 You may want to abort the process now with CTRL-C and change the value of variables in the first group before continuing. Be sure to run `/usr/bin/make clean' after the changes. ========================================================================== => Tool dependency py312-build>=0: found py312-build-1.0.3nb1 => Tool dependency py312-installer>=0.7.0nb1: found py312-installer-0.7.0nb1 => Tool dependency mktools-[0-9]*: found mktools-20220614 => Tool dependency cwrappers>=20150314: found cwrappers-20220403 => Full dependency py312-pandas>=1.1.3: found py312-pandas-2.1.4 => Full dependency py312-astropy>=4.2: found py312-astropy-6.0.1 => Full dependency py312-jplephem>=0: found py312-jplephem-2.21 => Full dependency py312-rebound>=3.12.2: found py312-rebound-4.3.2 => Full dependency py312-numpy>=1.20.3nb1: found py312-numpy-1.26.3 ===> Checking for vulnerabilities in py312-astro_aleph-1.0.0 ===> Overriding tools for py312-astro_aleph-1.0.0 ===> Extracting for py312-astro_aleph-1.0.0 ===> Patching for py312-astro_aleph-1.0.0 ===> Creating toolchain wrappers for py312-astro_aleph-1.0.0 ===> Configuring for py312-astro_aleph-1.0.0 ===> Building for py312-astro_aleph-1.0.0 * Building wheel... running bdist_wheel running build running build_py creating build creating build/lib.netbsd-10.0_RC3-amd64-cpython-312 creating build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/AstEph.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/DataBase.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/Query.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/__init__.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/aleph_utils.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/alep copying aleph/pycutils.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/cutils.h -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph running build_ext building 'cutils' extension creating build/temp.netbsd-10.0_RC3-amd64-cpython-312 creating build/temp.netbsd-10.0_RC3-amd64-cpython-312/aleph gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -O2 -I/usr/include -I/usr/pkg/ikg/include/python3.12 -c aleph/cutils.c -o build/temp.netbsd-10.0_RC3-amd64-cpyt gcc -shared -Wl,-zrelro -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/g/include -I/usr/include -I/usr/pkg/include/python3.12 -I/usr/pkg/include -I/usr installing to build/bdist.netbsd-10.0_RC3-amd64/wheel running install running install_lib creating build/bdist.netbsd-10.0_RC3-amd64 creating build/bdist.netbsd-10.0_RC3-amd64/wheel creating build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/AstEph.py -> build/bdi copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/DataBase.py -> build/b copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/Query.py -> build/bdis copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/__init__.py -> build/b copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/aleph_utils.py -> buil copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/pycutils.py -> build/b copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/cutils.h -> build/bdis copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/cutils.so -> build/bdist.net running install_egg_info running egg_info writing astro_aleph.egg-info/PKG-INFO writing dependency_links to astro_aleph.egg-info/dependency_links.txt writing requirements to astro_aleph.egg-info/requires.txt writing top-level names to astro_aleph.egg-info/top_level.txt reading manifest file 'astro_aleph.egg-info/SOURCES.txt' writing manifest file 'astro_aleph.egg-info/SOURCES.txt' Copying astro_aleph.egg-info to build/bdist.netbsd-10.0_RC3-amd64/wheel/astro_al running install_scripts creating build/bdist.netbsd-10.0_RC3-amd64/wheel/astro_aleph-1.0.0.dist-info/WHE creating '/usr/pkgsrc.2023Q4/pkgsrc_myownpkgs/py-astro-aleph/work/astro_aleph-1. adding 'cutils.so' adding 'aleph/AstEph.py' adding 'aleph/DataBase.py' adding 'aleph/Query.py' adding 'aleph/__init__.py' adding 'aleph/aleph_utils.py' adding 'aleph/cutils.h' adding 'aleph/pycutils.py' adding 'astro_aleph-1.0.0.dist-info/METADATA' adding 'astro_aleph-1.0.0.dist-info/WHEEL' adding 'astro_aleph-1.0.0.dist-info/top_level.txt' adding 'astro_aleph-1.0.0.dist-info/RECORD' removing build/bdist.netbsd-10.0_RC3-amd64/wheel Successfully built astro_aleph-1.0.0-cp312-cp312-netbsd_10_0_rc3_amd64.whl
work/astro_aleph-1.0.0/aleph/AstEph.py と work/astro_aleph-1.0.0/aleph/Query.py の二つのファイルに修正を加えたい とするでござる。 pkgvi コマンドを使って、ファイルを修正すればよいでご ざる。
# pkgvi work/astro_aleph-1.0.0/aleph/AstEph.py pkgvi: File was modified. For a diff, type: pkgdiff "work/astro_aleph-1.0.0/aleph/AstEph.py" # pkgvi work/astro_aleph-1.0.0/aleph/Query.py pkgvi: File was modified. For a diff, type: pkgdiff "work/astro_aleph-1.0.0/aleph/Query.py"
ソースコードの修正が終わったら、次に mkpatches コマンドを実行して、パッ チファイルを作成するでござる。
# mkpatches
すると、 patches というディレクトリーができるでござる。
# ls -lF total 12 -rw-r--r-- 1 root wheel 278 Apr 16 22:24 DESCR -rw-r--r-- 1 root wheel 764 Apr 16 22:24 Makefile -rw-r--r-- 1 root wheel 789 Apr 16 22:24 PLIST -rw-r--r-- 1 root wheel 323 Apr 17 10:46 distinfo drwxr-xr-x 2 root wheel 512 Apr 17 10:50 patches/ drwxr-xr-x 15 root wheel 1024 Apr 17 10:47 work/ # ls -lF patches/ total 4 -rw-r--r-- 1 root wheel 866 Apr 17 10:50 patch-aleph_AstEph.py -rw-r--r-- 1 root wheel 0 Apr 17 10:50 patch-aleph_AstEph.py.orig -rw-r--r-- 1 root wheel 439 Apr 17 10:50 patch-aleph_Query.py -rw-r--r-- 1 root wheel 0 Apr 17 10:50 patch-aleph_Query.py.orig
更に、 make mps を実行して、パッチファイルについての情報を distinfo ファ イルの中に書き込むでござる。
# make mps
distinfo ファイルの内容が変更されているでござる。
# ls -ltF total 12 -rw-r--r-- 1 root wheel 466 Apr 17 10:53 distinfo drwxr-xr-x 2 root wheel 512 Apr 17 10:50 patches/ drwxr-xr-x 15 root wheel 1024 Apr 17 10:47 work/ -rw-r--r-- 1 root wheel 789 Apr 16 22:24 PLIST -rw-r--r-- 1 root wheel 764 Apr 16 22:24 Makefile -rw-r--r-- 1 root wheel 278 Apr 16 22:24 DESCR # cat distinfo $NetBSD$ BLAKE2s (astro_aleph-1.0.0.tar.gz) = 9b699995c47d57ec37013e08a76aa4485983944debbb6b2772d1df37d733a099 SHA512 (astro_aleph-1.0.0.tar.gz) = 60b1f96801b43e938da26e91711ee2e229e7789d17563b29eb5252b57236d32b4c43bdc37da183f31b92df085737c2058224806647995bcc0af0c7fe93197d86 Size (astro_aleph-1.0.0.tar.gz) = 29354 bytes SHA1 (patch-aleph_AstEph.py) = f0e21eadf5f80baa6d1c060bde949c50825ab204 SHA1 (patch-aleph_Query.py) = 54723aeea2c4aa2377afb8b5c8a01fbe3c5ccf54
この後、 make clean してから make install すれば、パッチが適用されたも のがインストールされるでござる。
# make clean ===> Cleaning for py312-astro_aleph-1.0.0 # make install => Bootstrap dependency digest>=20211023: found digest-20220214 => Checksum BLAKE2s OK for astro_aleph-1.0.0.tar.gz => Checksum SHA512 OK for astro_aleph-1.0.0.tar.gz ===> Installing dependencies for py312-astro_aleph-1.0.0 ========================================================================== The following variables will affect the build process of this package, py312-astro_aleph-1.0.0. Their current value is shown below: * PKGSRC_BLAS_TYPES = netlib openblas openblas_pthread openblas_openmp * PYTHON_VERSION_DEFAULT = 312 Based on these variables, the following variables have been set: * BLAS_INCLUDES = -I/usr/pkg/include/netlib * BLAS_LIBS = -lblas * BLAS_PC = blas * BLAS_TYPE = netlib * CBLAS_LIBS = -lcblas -lblas * CBLAS_PC = cblas * LAPACKE_LIBS = -llapacke -llapack -lblas * LAPACKE_PC = lapacke * LAPACK_LIBS = -llapack -lblas * LAPACK_PC = lapack * PYPACKAGE = python312 You may want to abort the process now with CTRL-C and change the value of variables in the first group before continuing. Be sure to run `/usr/bin/make clean' after the changes. ========================================================================== => Tool dependency py312-build>=0: found py312-build-1.0.3nb1 => Tool dependency py312-installer>=0.7.0nb1: found py312-installer-0.7.0nb1 => Tool dependency mktools-[0-9]*: found mktools-20220614 => Tool dependency cwrappers>=20150314: found cwrappers-20220403 => Full dependency py312-pandas>=1.1.3: found py312-pandas-2.1.4 => Full dependency py312-astropy>=4.2: found py312-astropy-6.0.1 => Full dependency py312-jplephem>=0: found py312-jplephem-2.21 => Full dependency py312-rebound>=3.12.2: found py312-rebound-4.3.2 => Full dependency py312-numpy>=1.20.3nb1: found py312-numpy-1.26.3 ===> Checking for vulnerabilities in py312-astro_aleph-1.0.0 ===> Overriding tools for py312-astro_aleph-1.0.0 ===> Extracting for py312-astro_aleph-1.0.0 ===> Patching for py312-astro_aleph-1.0.0 => Applying pkgsrc patches for py312-astro_aleph-1.0.0 => Ignoring patchfile /usr/pkgsrc.2023Q4/pkgsrc_myownpkgs/py-astro-aleph/patches/patch-aleph_AstEph.py.orig => Ignoring patchfile /usr/pkgsrc.2023Q4/pkgsrc_myownpkgs/py-astro-aleph/patches/patch-aleph_Query.py.orig ===> Creating toolchain wrappers for py312-astro_aleph-1.0.0 ===> Configuring for py312-astro_aleph-1.0.0 ===> Building for py312-astro_aleph-1.0.0 * Building wheel... running bdist_wheel running build running build_py creating build creating build/lib.netbsd-10.0_RC3-amd64-cpython-312 creating build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/AstEph.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/DataBase.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/Query.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/__init__.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/aleph_utils.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/pycutils.py -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph copying aleph/cutils.h -> build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph running build_ext building 'cutils' extension creating build/temp.netbsd-10.0_RC3-amd64-cpython-312 creating build/temp.netbsd-10.0_RC3-amd64-cpython-312/aleph gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -O2 -I/usr/include -I/usr/pkg/include -O2 -I/usr/include -I/usr/pkg/include -O2 -I/usr/include -I/usr/pkg/include -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.12 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.12 -fPIC -Ialeph -I/usr/pkg/include/python3.12 -c aleph/cutils.c -o build/temp.netbsd-10.0_RC3-amd64-cpython-312/aleph/cutils.o -O3 -Wno-unknown-pragmas -fPIC -shared gcc -shared -Wl,-zrelro -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.12 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.12 build/temp.netbsd-10.0_RC3-amd64-cpython-312/aleph/cutils.o -L/usr/pkg/lib -o build/lib.netbsd-10.0_RC3-amd64-cpython-312/cutils.so installing to build/bdist.netbsd-10.0_RC3-amd64/wheel running install running install_lib creating build/bdist.netbsd-10.0_RC3-amd64 creating build/bdist.netbsd-10.0_RC3-amd64/wheel creating build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/AstEph.py -> build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/DataBase.py -> build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/Query.py -> build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/__init__.py -> build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/aleph_utils.py -> build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/pycutils.py -> build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/aleph/cutils.h -> build/bdist.netbsd-10.0_RC3-amd64/wheel/aleph copying build/lib.netbsd-10.0_RC3-amd64-cpython-312/cutils.so -> build/bdist.netbsd-10.0_RC3-amd64/wheel running install_egg_info running egg_info writing astro_aleph.egg-info/PKG-INFO writing dependency_links to astro_aleph.egg-info/dependency_links.txt writing requirements to astro_aleph.egg-info/requires.txt writing top-level names to astro_aleph.egg-info/top_level.txt reading manifest file 'astro_aleph.egg-info/SOURCES.txt' writing manifest file 'astro_aleph.egg-info/SOURCES.txt' Copying astro_aleph.egg-info to build/bdist.netbsd-10.0_RC3-amd64/wheel/astro_aleph-1.0.0-py3.12.egg-info running install_scripts creating build/bdist.netbsd-10.0_RC3-amd64/wheel/astro_aleph-1.0.0.dist-info/WHEEL creating '/usr/pkgsrc.2023Q4/pkgsrc_myownpkgs/py-astro-aleph/work/astro_aleph-1.0.0/dist/.tmp-ajxfgmi0/astro_aleph-1.0.0-cp312-cp312-netbsd_10_0_rc3_amd64.whl' and adding 'build/bdist.netbsd-10.0_RC3-amd64/wheel' to it adding 'cutils.so' adding 'aleph/AstEph.py' adding 'aleph/DataBase.py' adding 'aleph/Query.py' adding 'aleph/__init__.py' adding 'aleph/aleph_utils.py' adding 'aleph/cutils.h' adding 'aleph/pycutils.py' adding 'astro_aleph-1.0.0.dist-info/METADATA' adding 'astro_aleph-1.0.0.dist-info/WHEEL' adding 'astro_aleph-1.0.0.dist-info/top_level.txt' adding 'astro_aleph-1.0.0.dist-info/RECORD' removing build/bdist.netbsd-10.0_RC3-amd64/wheel Successfully built astro_aleph-1.0.0-cp312-cp312-netbsd_10_0_rc3_amd64.whl ===> Installing for py312-astro_aleph-1.0.0 => Generating pre-install file lists => Automatic manual page handling => Generating post-install file lists => Checking file-check results for py312-astro_aleph-1.0.0 => Creating binary package /usr/pkgsrc.2023Q4/pkgsrc_myownpkgs/py-astro-aleph/work/.packages/py312-astro_aleph-1.0.0.tgz ===> Building binary package for py312-astro_aleph-1.0.0 => Creating binary package /tmp/packages/All/py312-astro_aleph-1.0.0.tgz ===> Installing binary package of py312-astro_aleph-1.0.0