[arch-general] makepkg - any way to recompile only newly patched files in large packages?

Eli Schwartz eschwartz at archlinux.org
Mon Aug 7 14:36:37 UTC 2017


On 08/07/2017 03:39 AM, David C. Rankin wrote:
> On 08/06/2017 10:23 PM, David C. Rankin wrote:
>> All,
>>
>>   There was a fix for a gtk2 bug I filed regarding the recentchooserdefault.c
>> file. (it was a one-line fix where a variable needed reset to 0). Is there any
>> way I can configure makepkg to behave as if the gcc -MP -MD options had been
>> given to have it only recompile the one patched source without rebuilding the
>> entire package -- again?
>>
>>   I've been through the wiki and the man page, and other than --repackage,
>> there doesn't seem to be anything that would work (or I'm just missing it).
> 
> If it wasn't clear, I have already built the gtk2 package yesterday to
> --enable-debug=yes so I have all of the files in a state I could call
> --repackge on, except for the gtk/gtkrecentchooser.c file with the one line
> change. I was wondering if there was a way to avoid the full 15 minute rebuild
> of all of gtk2 and just compile gtkrecentchooserdefault.c to object and then
> --repackage?

I think you're misunderstanding what -MP does.

As for rebuilding only the one source, makepkg source extraction should
result in extracting files with the same initial timestamp as the last
time they were extracted. Although if you are using the gtk2 PKGBUILD
from the ABS, it uses git anyway... So Make should consider all objects
to be up-to-date, except the one you have sed'ed.

You could also use `makepkg --noextract` which assumes you applied the
fix by hand rather than in the PGBUILD, which is probably safer as it
skips prepare(), and in theory re-running configure should not cause
Make to expire all object files (though with autotools who really knows...)

Aside: repackage does not do what you want, since it doesn't rebuild
anything. Granted, Makefiles usually have the install target depend on
the default target, so it would probably end up being built too... in
fakeroot...

-- 
Eli Schwartz

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/arch-general/attachments/20170807/8764394b/attachment.asc>


More information about the arch-general mailing list