[pacman-dev] Patch Policy Inquiry

Eli Schwartz eschwartz at archlinux.org
Thu Apr 29 01:44:37 UTC 2021


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/pacman-dev/attachments/20210428/9abcc698/attachment.sig>


More information about the pacman-dev mailing list