Files
hakurei/internal/rosa/package/python/package.az
Ophestra ff44060763 internal/rosa/package: migrate python packages
This also migrates LLVM LIT via the newly implemented special case.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-19 18:15:04 +09:00

508 lines
10 KiB
Go

package python {
description = "the Python programming language interpreter";
website = "https://www.python.org";
anitya = 13254;
version* = "3.14.5";
source = remoteTar {
url = "https://www.python.org/ftp/python/"+version+
"/Python-"+version+".tgz";
checksum = "zYIpDlk2ftZ-UVGCQS1rthle2OHoyXV653ztWiopKV1NhmIJf1K2hHbkwM4DozQ9";
compress = gzip;
};
patches = [ "zipfile-no-default-strict_timestamps.patch" ];
// test_synopsis_sourceless assumes this is writable and checks __pycache__
writable = true;
chmod = true;
env = [
"EXTRATESTOPTS=-j0 -x " + join {
elems = [
// requires internet access (http://www.pythontest.net/)
"test_asyncio",
"test_socket",
"test_urllib2",
"test_urllibnet",
"test_urllib2net",
// makes assumptions about uid_map/gid_map
"test_os",
"test_subprocess",
// patched out insane strict_timestamps default
"test_zipfile",
// requires gcc
"test_ctypes",
// breaks on llvm
"test_dbm_gnu",
];
sep = " -x ";
},
// _ctypes appears to infer something from the linker name
"LDFLAGS=-Wl,--dynamic-linker=/system/lib/" +
"ld-musl-" + linuxArch + ".so.1",
];
exec = make {
check = [ "test" ];
};
inputs = [
zlib,
bzip2,
libffi,
openssl,
pkg-config,
xz,
];
runtime = [
zlib,
bzip2,
libffi,
openssl,
];
}
package python-setuptools {
description = "the autotools of the Python ecosystem";
website = "https://pypi.org/project/setuptools";
anitya = 4021;
version* = "82.0.1";
source = remoteGitHub {
suffix = "pypa/setuptools";
tag = "v"+version;
checksum = "nznP46Tj539yqswtOrIM4nQgwLA1h-ApKX7z7ghazROCpyF5swtQGwsZoI93wkhc";
};
exec = pip {
// error: invalid command 'dist_info'
buildIsolation = true;
// pytest circular dependency
skipCheck = true;
};
runtime = [ python ];
}
package python-wheel {
description = "the official binary distribution format for Python";
website = "https://peps.python.org/pep-0427";
anitya = 11428;
version* = "0.47.0";
source = remoteGitHub {
suffix = "pypa/wheel";
tag = version;
checksum = "HZ-MvkUP8mbbx2YmsRNswj_bbOCIiXckuHqL5Qbvb5NxN5DYfWnqwkGNyS7OrId0";
};
exec = pip {
install = true;
};
inputs = [
python-flit-core,
python-setuptools,
];
runtime = [ python ];
}
package python-vcs-versioning {
description = "core VCS versioning functionality extracted as a standalone library";
website = "https://setuptools-scm.readthedocs.io/en/latest";
anitya = 389421;
version* = "1.1.1";
source = remoteGitHub {
suffix = "pypa/setuptools-scm";
tag = "vcs-versioning-v"+version;
checksum = "rXZixTsZcRcIoUC1LvWrjySsiXSv5uhW6ng2P-yXZrbdj7FrSrDeJLCfC2b-ladV";
};
env = [
"SETUPTOOLS_SCM_PRETEND_VERSION=" + version,
];
exec = pip {
// upstream is monorepo of two packages (setuptools-scm)
append = [ "vcs-versioning" ];
// pytest circular dependency
skipCheck = true;
};
inputs = [
python-setuptools,
python-packaging,
];
runtime = [
python-setuptools,
python-packaging,
];
}
package python-setuptools-scm {
description = "extracts Python package versions from Git or Mercurial metadata";
website = "https://setuptools-scm.readthedocs.io/en/latest";
anitya = 7874;
version* = "10.0.5";
source = remoteGitHub {
suffix = "pypa/setuptools-scm";
tag = "setuptools-scm-v"+version;
checksum = "vTN_TPd-b4Wbsw5WmAcsWjrs-FNXXznOeVTDnb54NtXve9Oy-eb2HPy-RG3FzNqp";
};
env = [
"SETUPTOOLS_SCM_PRETEND_VERSION=" + version,
];
exec = pip {
// upstream is monorepo of two packages
append = [ "setuptools-scm" ];
// pytest circular dependency
skipCheck = true;
};
inputs = [
python-setuptools,
python-vcs-versioning,
];
runtime = [
python-setuptools,
python-vcs-versioning,
];
}
package python-flit-core {
description = "a PEP 517 build backend for packages using Flit";
website = "https://flit.pypa.io";
anitya = 44841;
version* = "3.12.0";
source = remoteGitHub {
suffix = "pypa/flit";
tag = version;
checksum = "VcTsiGiDU1aPLbjSPe38f9OjJDCLcxFz9loObJqUI1ZxDHXAaQMxBpNyLz_G1Rff";
};
exec = pip {
// upstream has other unused packages with many dependencies
append = [ "flit_core" ];
// pytest circular dependency
skipCheck = true;
};
runtime = [ python ];
}
package python-packaging {
description = "reusable core utilities for various Python Packaging interoperability specifications";
website = "https://packaging.pypa.io";
anitya = 60461;
version* = "26.2";
source = remoteGitHub {
suffix = "pypa/packaging";
tag = version;
checksum = "rdpGa2EkPFbj1mFtLKLnSwIX9gPfELcuneiICjRVDNw6By49szTFVoW8gtMMZ6ZS";
};
exec = pip {
// pytest circular dependency
skipCheck = true;
};
inputs = [ python-flit-core ];
runtime = [ python ];
}
package python-pathspec {
description = "utility library for gitignore style pattern matching of file paths";
website = "https://github.com/cpburnz/python-pathspec";
anitya = 23424;
version* = "1.1.1";
source = remoteGitHub {
suffix = "cpburnz/python-pathspec";
tag = "v"+version;
checksum = "1fVwoal6FoKXczoG3qRUi87TxSWESSGcgvnbEZDYuaOgsO25o36iF3SbAhwkr4Va";
};
exec = pip {
// pytest circular dependency
skipCheck = true;
};
inputs = [ python-flit-core ];
runtime = [ python ];
}
package python-trove-classifiers {
description = "canonical source for classifiers on PyPI";
website = "https://pypi.org/p/trove-classifiers";
anitya = 88298;
version* = "2026.5.7.17";
source = remoteGitHub {
suffix = "pypa/trove-classifiers";
tag = version;
checksum = "1Fcps0gK9P4ofwGL8MISN9k1Q40-quxX7NDpIna50TmziBNrZy-0Vz0I9yIeHCoP";
};
exec = pip {
// pytest circular dependency
skipCheck = true;
};
inputs = [ python-setuptools ];
runtime = [ python ];
}
package python-pluggy {
description = "the core framework used by the pytest, tox, and devpi projects";
website = "https://pluggy.readthedocs.io/en/latest";
anitya = 7500;
version* = "1.6.0";
source = remoteGitHub {
suffix = "pytest-dev/pluggy";
tag = version;
checksum = "GiUgDkKjF8Xn1cmq6iMhTGXzcPIYeaJrvQpHBSAJapNVx4UyuiTXqd5eVlxSClJu";
};
env = [
"SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PLUGGY=" + version,
];
exec = pip {
// pytest circular dependency
skipCheck = true;
};
inputs = [ python-setuptools-scm ];
runtime = [ python ];
}
package python-hatchling {
description = "the extensible, standards compliant build backend used by Hatch";
website = "https://hatch.pypa.io";
anitya = 16137;
version* = "1.16.5";
source = remoteGitHub {
suffix = "pypa/hatch";
tag = "hatch-v"+version;
checksum = "V2eREtqZLZeV85yb4O-bfAJCUluHcQP76Qfs0QH5s7RF_Oc8xIP8jD0jl85qFyWk";
};
exec = pip {
// upstream has other unused packages with many dependencies
append = [ "backend" ];
// pytest circular dependency
skipCheck = true;
};
inputs = [
python-packaging,
python-pathspec,
python-trove-classifiers,
python-pluggy,
];
runtime = [
python-packaging,
python-pathspec,
python-trove-classifiers,
python-pluggy,
];
}
package python-pygments {
description = "a syntax highlighting package written in Python";
website = "https://pygments.org";
anitya = 3986;
version* = "2.20.0";
source = remoteGitHub {
suffix = "pygments/pygments";
tag = version;
checksum = "L-2P6vn7c_CNZYliE5CJAWLxO1ziDQVVkf8bnZbHj8aSCQ43oWv11wC9KzU9MeCa";
};
exec = pip {
// pytest circular dependency
skipCheck = true;
};
inputs = [ python-hatchling ];
runtime = [ python ];
}
package python-iniconfig {
description = "a small and simple INI-file parser module";
website = "https://github.com/pytest-dev/iniconfig";
anitya = 114778;
version* = "2.3.0";
source = remoteGitHub {
suffix = "pytest-dev/iniconfig";
tag = "v"+version;
checksum = "mH7VBZaXcYatBPE3RQQZvSzz_Ay8IPPek60NpPHZulPq4ReAFUUsA4EPWfiyMknZ";
};
env = [
"SETUPTOOLS_SCM_PRETEND_VERSION_FOR_INICONFIG=" + version,
];
exec = pip {
// pytest circular dependency
skipCheck = true;
};
inputs = [ python-setuptools-scm ];
runtime = [ python ];
}
package python-pytest {
description = "the pytest framework";
website = "https://pytest.org";
anitya = 3765;
version* = "9.0.3";
source = remoteGitHub {
suffix = "pytest-dev/pytest";
tag = version;
checksum = "qfLL_znWhbJCDbNJvrx9H3-orJ86z4ifhaW0bIn21jl2sDP-FVoX_1yieOypArQe";
};
env = [
"SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST=" + version,
];
exec = pip {
// many dependencies
skipCheck = true;
};
inputs = [
python-iniconfig,
python-packaging,
python-pluggy,
python-pygments,
python-setuptools-scm,
];
runtime = [
python-iniconfig,
python-packaging,
python-pluggy,
python-pygments,
];
}
package python-markupsafe {
description = "implements a text object that escapes characters so it is safe to use in HTML and XML";
website = "https://markupsafe.palletsprojects.com";
anitya = 3918;
version* = "3.0.3";
source = remoteGitHub {
suffix = "pallets/markupsafe";
tag = version;
checksum = "txRGYdWE3his1lHHRI-lZADw0-ILvUg2l5OGdFHtFXIb_QowGxwdxHCUSJIgmjQs";
};
exec = pip {
// ModuleNotFoundError: No module named 'markupsafe'
install = true;
};
inputs = [ python-setuptools ];
runtime = [ python ];
}
package python-mako {
description = "a template library written in Python";
website = "https://www.makotemplates.org";
anitya = 3915;
version* = "1.3.12";
source = remoteGitHub {
suffix = "sqlalchemy/mako";
tag = "rel_"+join {
elems = split {
s = version;
sep = ".";
n = 3;
};
sep = "_";
};
checksum = "OZbBsQe2MzRuAo5Mr4qRwWHGqU1EEZeBuSprDDIceAtMLIUJtO7SbERlxHIxNhLk";
};
exec = pip {};
inputs = [
python-markupsafe,
python-setuptools,
];
runtime = [ python-markupsafe ];
}
package python-pyyaml {
description = "a YAML parser and emitter for Python";
website = "https://pyyaml.org";
anitya = 4123;
version* = "6.0.3";
source = remoteGitHub {
suffix = "yaml/pyyaml";
tag = version;
checksum = "7wDv0RW9chBdu9l5Q4Hun5F2HHdo105ZSIixwdFPKbEYbftW9YxmsegfL-zafnbJ";
};
exec = pip {
// ModuleNotFoundError: No module named 'yaml'
install = true;
};
inputs = [ python-setuptools ];
runtime = [ python ];
}
package python-pycparser {
description = "complete C99 parser in pure Python";
website = "https://github.com/eliben/pycparser";
anitya = 8175;
version* = "3.00";
source = remoteGitHub {
suffix = "eliben/pycparser";
tag = "release_v"+version;
checksum = "4qfCMFKp0fLsRsloOAF780tXX_Ce_68RwinCmjNGObAX32WpF_iBafIKW1S1bYlA";
};
// test case hard codes gcc
early = `
ln -s clang /system/bin/gcc
`;
exec = pip {};
inputs = [ python-setuptools ];
runtime = [ python ];
}