On Thu, Feb 7, 2019 at 8:14 AM Bruno Pagani <bruno.n.pagani@gmail.com> wrote:
Le 07/02/2019 à 12:14, james harvey via arch-projects a écrit :
I got extremely confused when I accidentally found out that the MAKEFLAGS that is needed to be set for parallel building using devtools is the one in "/etc/makepkg.conf", instead of one like "/usr/share/devtools/makepkg-x86_64.conf".
Turns out this is because "makechrootpkg"::20180531-4::638 is:
load_vars /etc/makepkg.conf
load_vars() only reads "{SRC,SRCPKG,PKG,LOG}DEST MAKEFLAGS PACKAGER", so without me having set any of the others, it turns out the only variable it uses from /etc is MAKEFLAGS.
For me, I think this is the only makepkg/pacman variable in an entire devtools run that isn't out of /usr/share/devtools, since "archbuild" gives those to "mkarchroot" and "arch-nspawn... pacman -Syu", and they are copied into "/var/lib/archbuild/extra-x86_64/root/etc/" for anything ran in the chroot.
Not the only variable, but the whole set above. On purpose.
Should this be fixed?
AFAIK, this is the expected behaviour. When you build using devtools, you expect variables local to this machine/user to be respected (and that is the exact list of variables listed above), while distro settings for everything else to be used ({C,CXX,LD}FLAGS mostly).
OK, I had a misunderstanding here. I was thinking all variables should be coming out of /usr/share/devtools, but I get now that isn't the case so those files can be left unmodified, and only these variables are allowed to be customized.
I originally thought of a new "makechrootpkg -M" option, but I think it could instead run:
load_vars ${copydir}/etc/makepkg.conf
If not, should "/usr/share/devtools/makepkg-x86_64.conf" be updated with a comment where those variables are, to say they're actually used out of "/etc/makepkg.conf"?
I don’t think you need to know about and thus ever touch `/usr/share/devtools/*.conf`. Unless you actually develop devtools themselves.
I guess I'm abusing devtools a bit, as a few others are. I use devtools to build modified official packages when necessary, and to build AUR packages even if they depend on other AUR packages. I add a local repository to "/usr/share/devtools/pacman-extra.conf", and to /etc/pacman.conf as a CacheDir so it is bind mounted. I also add to "COMPRESSXZ" "--threads=0" to "/usr/share/devtools/makepkg-x86_64.conf". Maybe others using devtools similarly are using a customized version of archbuild using its own pacman and makepkg conf files, which is what I used to do. I stopped so when devtools updates its conf files, it would overwrite my changes and I'd just add them back in. Otherwise, I might miss merging changes into mine. Or, maybe they run mkarchroot/arch-nspawn/makechrootpkg directly. Or, maybe they use graysky2's clean-chroot-manager, which I haven't looked at yet. It still seems odd to me for "/usr/share/devtools/*.conf" to show variables that are never read from it, and personally would replace those with a comment referring to /etc/makepkg.conf, but I respect if the answer is that I shouldn't have been confused because I shouldn't have been looking at them in the first place.