-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
348 additions
and
487 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -172,3 +172,6 @@ t.* | |
|
||
# rever | ||
rever/ | ||
|
||
# alpine dev | ||
.abuild |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
src | ||
pkg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,18 @@ | ||
FROM alpine:3.17 | ||
FROM alpine:3.20 | ||
RUN apk add build-base alpine-sdk sudo | ||
RUN adduser -D packager && \ | ||
addgroup packager abuild | ||
addgroup packager abuild && \ | ||
echo 'packager ALL=(ALL) NOPASSWD:ALL' >/etc/sudoers.d/packager | ||
|
||
RUN apk add bash linux-headers rustup protoc unzip | ||
|
||
USER packager | ||
RUN rustup-init -y | ||
ENV PATH=$PATH:$HOME/.cargo/bin | ||
WORKDIR /home/packager/ | ||
|
||
COPY ./alpine ./alpine | ||
RUN pushd ./alpine/python39 && abuild -P /tmp/build && popd \ | ||
sudo apk add /tmp/build/main/x86_64/pantsbuild-2.23.0-r0.apk && \ | ||
pushd ./alpine/pants && abuild -P /tmp/build && popd | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# Contributor: Daniel Goldman <danielgoldman4@gmail.com> | ||
# Maintainer: Daniel Goldman <danielgoldman4@gmail.com> | ||
pkgname=pantsbuild | ||
pkgver=2.23.0 | ||
pkgrel=0 | ||
pkgdesc="The Pants Build System" | ||
url="https://www.pantsbuild.org/" | ||
arch="all" | ||
license="Apache2.0" | ||
depends=" | ||
python39 | ||
unzip | ||
bash | ||
" | ||
makedepends=" | ||
python39 | ||
python39-dev | ||
unzip | ||
bash | ||
protoc | ||
rustup | ||
linux-headers | ||
" | ||
source="https://github.com/pantsbuild/pants/archive/refs/tags/release_$pkgver.dev4.tar.gz" | ||
builddir="$srcdir/" | ||
|
||
prepare() { | ||
# default_prepare | ||
: | ||
} | ||
|
||
build() { | ||
set -xe | ||
# rustup-init -y | ||
|
||
export RUSTFLAGS="-C target-feature=-crt-static --cfg tokio_unstable" | ||
export PATH=$PATH:$HOME/.cargo/bin | ||
|
||
cd pants-release_$pkgver.dev4 | ||
|
||
# shim git repo so Pants is happy | ||
git init | ||
|
||
./pants package src/python/pants:pants-pex | ||
} | ||
|
||
check() { | ||
# Replace with proper check command(s) | ||
: | ||
} | ||
|
||
package() { | ||
mkdir -p "$pkgdir/usr/bin/" | ||
|
||
ln -s "$srcdir"/pants-release_$pkgver.dev4/dist/src.python.pants/pants-pex.pex "$pkgdir"/usr/bin/pants | ||
} | ||
|
||
sha512sums=" | ||
9d979a1b174bf4e3a77c4d7ea05f8af8e535363a98b53b350f874554ee689afc55d6928f33b7afcfee3e77211a314a9c9dfe83435c7ccc0d15999828204deab0 release_2.23.0.dev4.tar.gz | ||
" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,239 @@ | ||
pkgname=python39 | ||
# the python3-tkinter's pkgver needs to be synchronized with this. | ||
pkgver=3.9.19 | ||
_basever="${pkgver%.*}" | ||
pkgrel=1 | ||
pkgdesc="High-level scripting language" | ||
url="https://www.python.org/" | ||
arch="all" | ||
license="PSF-2.0" | ||
# pyc0 comes last because the files are named without a unique substring | ||
subpackages=" | ||
$pkgname-dbg | ||
$pkgname-dev | ||
$pkgname-doc | ||
$pkgname-tests::noarch | ||
$pkgname-pyc:_default_pyc | ||
$pkgname-pycache-pyc2 | ||
$pkgname-pycache-pyc1 | ||
$pkgname-pycache-pyc0 | ||
$pkgname-gdbm | ||
pyc:_pyc_meta:noarch | ||
" | ||
depends=" | ||
libssl3>=3.3.0 | ||
so:libbz2.so.1 | ||
so:libc.musl-x86_64.so.1 | ||
so:libcrypto.so.3 | ||
so:libexpat.so.1 | ||
so:libffi.so.8 | ||
so:libgdbm_compat.so.4 | ||
so:liblzma.so.5 | ||
so:libncursesw.so.6 | ||
so:libpanelw.so.6 | ||
so:libreadline.so.8 | ||
so:libsqlite3.so.0 | ||
so:libssl.so.3 | ||
so:libz.so.1 | ||
" | ||
makedepends=" | ||
!gettext-dev | ||
bluez-headers | ||
bzip2-dev | ||
expat-dev | ||
gdbm-dev | ||
libffi-dev | ||
linux-headers | ||
mpdecimal-dev | ||
musl-libintl | ||
ncurses-dev | ||
openssl-dev | ||
readline-dev | ||
sqlite-dev | ||
tcl-dev | ||
xz-dev | ||
zlib-dev | ||
" | ||
source=" | ||
https://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz | ||
externally-managed | ||
musl-find_library.patch | ||
" | ||
options=" | ||
net | ||
!tracedeps | ||
" # Required for tests | ||
builddir="$srcdir/Python-$pkgver" | ||
|
||
prepare() { | ||
default_prepare | ||
|
||
# force system libs | ||
rm -r Modules/expat | ||
} | ||
|
||
build() { | ||
# set thread stack size to 2MB so we don't segfault before we hit | ||
# sys.getrecursionlimit() | ||
# note: raised from 1 as we ran into some stack limit on x86_64 too | ||
# sometimes, but not recursion | ||
local stacksize=0x200000 | ||
|
||
# we want -O2 here for more speed for such a large interpreter. | ||
export CFLAGS_NODIST="$CFLAGS -O2 -DTHREAD_STACK_SIZE=$stacksize" | ||
export CXXFLAGS_NODIST="$CXXFLAGS -O2" | ||
export LDFLAGS_NODIST="$LDFLAGS" | ||
|
||
case "$CARCH" in | ||
ppc64le) | ||
# FIXME: on ppc64le, the stack-clash-protection from gcc seems to segfault | ||
# python.. sometimes. not sure if python or gcc bug (probably former) | ||
# for an easy reproduction, run the testsuite of community/py3-lmdb | ||
export CFLAGS_NODIST="${CFLAGS_NODIST/-fstack-clash-protection}" | ||
export CXXFLAGS_NODIST="${CXXFLAGS_NODIST/-fstack-clash-protection}" | ||
;; | ||
esac | ||
|
||
# we set them via NODIST to not propagate them and duplicate them to modules | ||
unset LDFLAGS CFLAGS CXXFLAGS CPPFLAGS | ||
|
||
# --enable-optimizations \ | ||
./configure \ | ||
--disable-test-suite \ | ||
--build=$CBUILD \ | ||
--host=$CHOST \ | ||
--prefix=/usr \ | ||
--enable-ipv6 \ | ||
--enable-loadable-sqlite-extensions \ | ||
--with-lto \ | ||
--with-computed-gotos \ | ||
--with-dbmliborder=gdbm:ndbm \ | ||
--with-system-expat \ | ||
--with-system-libmpdec \ | ||
--without-ensurepip | ||
|
||
make | ||
} | ||
|
||
check() { | ||
# test that we reach recursionlimit before we segfault | ||
cat > test-stacksize.py <<-EOF | ||
import threading | ||
import sys | ||
def fun(i): | ||
try: | ||
fun(i+1) | ||
except: | ||
sys.exit(0) | ||
t = threading.Thread(target=fun, args=[1]) | ||
t.start() | ||
EOF | ||
LD_LIBRARY_PATH=$PWD ./python test-stacksize.py | ||
|
||
local fail | ||
|
||
# musl related | ||
fail="test__locale" # various musl locale deficiencies | ||
fail="$fail test_locale" | ||
fail="$fail test_re" | ||
fail="$fail test_c_locale_coercion" | ||
fail="$fail test_datetime" # hangs if 'tzdata' installed | ||
fail="$fail test_os" # fpathconf, ttyname errno values | ||
|
||
# FIXME: failures needing investigation | ||
fail="$fail test_ctypes" # fail on aarch64 (ctypes.test.test_win32.Structures) | ||
|
||
# kernel related | ||
fail="$fail test_fcntl" # wants DNOTIFY, we don't have it | ||
|
||
# test_clock_settime returns Function not implemented instead of the | ||
# expected permission error in docker (CI). Disable for now. | ||
case "$CARCH" in | ||
ppc64le) fail="$fail test_time";; | ||
esac | ||
|
||
make quicktest TESTOPTS="-j${JOBS:-$(nproc)} --exclude $fail" | ||
} | ||
|
||
package() { | ||
make -j8 DESTDIR="$pkgdir" EXTRA_CFLAGS="$CFLAGS" altinstall maninstall | ||
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE | ||
|
||
install -Dm644 "$srcdir"/externally-managed \ | ||
"$pkgdir"/usr/lib/python$_basever/EXTERNALLY-MANAGED | ||
|
||
# those are provided by python3-tkinter | ||
rm -r "$pkgdir"/usr/bin/idle* "$pkgdir"/usr/lib/python*/idlelib \ | ||
"$pkgdir"/usr/lib/python*/tkinter | ||
|
||
# ln -s python3 "$pkgdir"/usr/bin/$pkgname | ||
# ln -s python3-config "$pkgdir"/usr/bin/$pkgname-config | ||
} | ||
|
||
dev() { | ||
default_dev | ||
|
||
# pyconfig.h is needed runtime so we move it back | ||
mkdir -p "$pkgdir"/usr/include/python$_basever | ||
mv "$subpkgdir"/usr/include/python$_basever/pyconfig.h \ | ||
"$pkgdir"/usr/include/python$_basever/ | ||
} | ||
|
||
tests() { | ||
pkgdesc="The test modules from the main python package" | ||
|
||
amove usr/lib/python$_basever/test | ||
} | ||
|
||
gdbm() { | ||
pkgdesc="Python backend for GNU gdbm" | ||
|
||
amove usr/lib/python3*/lib-dynload/_gdbm.cpython* | ||
} | ||
|
||
_pyc_meta() { | ||
pkgdesc="Meta package for pulling in all -pyc packages" | ||
depends="" | ||
mkdir -p "$subpkgdir" | ||
} | ||
|
||
# python3-pyc, to install pyc by default | ||
_default_pyc() { | ||
pkgdesc="$pkgdesc (install .pyc cache files)" | ||
install_if="$pkgname=$pkgver-r$pkgrel" | ||
depends=" | ||
$pkgname-pycache-pyc0=$pkgver-r$pkgrel | ||
pyc | ||
" | ||
|
||
mkdir -p "$subpkgdir" | ||
} | ||
|
||
pyc0() { | ||
pkgdesc="$pkgdesc (.pyc pycache files)" | ||
|
||
cd "$pkgdir" | ||
amove $(find usr/lib/python3* -name "*.pyc") | ||
} | ||
|
||
pyc1() { | ||
pkgdesc="$pkgdesc (.opt-1.pyc pycache files)" | ||
|
||
cd "$pkgdir" | ||
amove $(find usr/lib/python3* -name "*.opt-1.pyc") | ||
} | ||
|
||
pyc2() { | ||
pkgdesc="$pkgdesc (.opt-2.pyc pycache files)" | ||
|
||
cd "$pkgdir" | ||
amove $(find usr/lib/python3* -name "*.opt-2.pyc") | ||
} | ||
|
||
sha512sums=" | ||
5577830c734e63a70bbc62cd33d263b9aa87c4381b49cb694c3559067c4c682a55506b65ec5514a8e0a5abf6294dc728e909385d449ae1c388e62f83cea9bb89 Python-3.9.19.tar.xz | ||
46dd8230ee2ab66e9c4157c10b2bd9c414fd7f30be0bee73e21a9eea88f63fff362d47828e0fc77ddc59df097b414b21505f8b5f98bc866381115c58ae3f4862 externally-managed | ||
ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2 musl-find_library.patch | ||
" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
[externally-managed] | ||
Error= | ||
The system-wide python installation should be maintained using the system | ||
package manager (apk) only. | ||
|
||
If the package in question is not packaged already (and hence installable via | ||
"apk add py3-somepackage"), please consider installing it inside a virtual | ||
environment, e.g.: | ||
|
||
python3 -m venv /path/to/venv | ||
. /path/to/venv/bin/activate | ||
pip install mypackage | ||
|
||
To exit the virtual environment, run: | ||
|
||
deactivate | ||
|
||
The virtual environment is not deleted, and can be re-entered by re-sourcing | ||
the activate file. | ||
|
||
To automatically manage virtual environments, consider using pipx (from the | ||
pipx package). |
File renamed without changes.
Oops, something went wrong.