On 4/28/21 8:46 PM, Sijie Bu wrote:
Hello,
Not sure if I'm posting it to the right place, but this is a developer-related question so hopefully it's in the right place.
I will be starting an internship project with CIP United, a company specialized in MIPS processors, and will be porting Arch to MIPS64 R6. And my project supervisor would like to know pacman's patch policies for architecture-specific modifications.
I have already asked on arch-ports list and was told by people from Arch Linux 32 that the pacman codebase is generally portable, but I see them maintaining a fork for certain i486-specific optimizations. I have also looked at the readme files (HACKING etc.) but was unable to find a clear statement of your patch policies. Therefore, I would like to know some details about your patch policies, especially the ones regarding non-amd64 architectures.
Arch Linux 32 only contains one patch for pacman -- this patch is designed to manipulate the pacman.conf "Architecture" key by allowing the "i686" architecture to be special-cased as "pentium4" if and only if it is compatible with their port's policy baseline. This patch is not suitable for inclusion in mainline pacman IMO, because it encodes policy quirks which is kind of subjective. However, in the general case we would welcome improvements that make pacman better on non-amd64 architectures in a general manner. To take a couple of recent examples: - someone recently submitted a patch series that makes pacman compile on FreeBSD, where SIGPOLL does not exist and signal.h needs to be explicitly #include'd - the commit "Add support for multiple 'Architecture' values" was originally written in 2012 and was primarily useful for ARM where you might want to mix and match an optimized set of packages for particular boards. It was written by an amd64 developer, who forgot to keep working on it to get it merged. But it should have been merged, and eventually got revived just recently because it will come in useful for amd64 too. So, if you have patches that make pacman work correctly on untested platforms, we would love those patches! (Possibly not Windows patches -- msys2 does have some __MSYS__ ifdef'ed code in their local pacman patches and I'm not sure whether we want this in as I think most of it is handling Windows' different ideas on file ownership. I did personally champion getting some msys2 build fixes in for e.g. libintl, POSIX character classes rather than glibc'isms.) If you have patches that add new features to pacman, we will consider those features fairly, even if they're not especially useful on amd64. If they're good features, we might end up needing them too someday, after all... and we are on good terms with the ARM and i686 ports and also try to give Windows/MSYS2 a good base to build on. ... We may also one day end up deciding to add new architectures to Arch Linux, e.g. riscv64 seems exciting and one of the Arch developers has been experimenting with bootstrapping arch for riscv64, so accepting patches for that sort of thing, if there should be any issues, is just wise future proofing. -- Eli Schwartz Bug Wrangler and Trusted User