Pacman

Historical bug tracker for the Pacman package manager.

The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues

This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
Tasklist

FS#3146 - Add a "built from source" or "binary" flag

Attached to Project: Pacman
Opened by Corrado Primier (bardo) - Saturday, 03 September 2005, 18:12 GMT
Last edited by Roman Kyrylych (Romashka) - Wednesday, 24 January 2007, 11:18 GMT
Task Type Feature Request
Category
Status Closed
Assigned To Aaron Griffin (phrakture)
Architecture not specified
Severity Low
Priority Normal
Reported Version 0.7 Wombat
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

It would be useful to add a flag that states if a package has been downloaded in binary form or rebuilt from source on the host machine. This way it would be possible to add an option to makeworld that allows to recompile only the software which hasn't already been built.

It is useful for people who prefer to have recompiled packages on their system but can't keep track of the updates and don't want to rebuild the entire system everytime the launch makeworld.
This task depends upon

Closed by  Aaron Griffin (phrakture)
Friday, 26 January 2007, 17:47 GMT
Reason for closing:  Won't implement
Comment by Jeff Mickey (codemac) - Saturday, 08 April 2006, 08:41 GMT
Isn't this just srcpac?
Comment by Aaron Griffin (phrakture) - Friday, 26 January 2007, 16:31 GMT
Hmmm, i think this is an interesting idea. Currently the "reason" flag is either "explicit" or "implicit". Adjusting this to include some indication of "built from source" would be easy. That is not to say that pacman need do anything about it, really, but just record the reason, and allow some way to list packages by reason.

However, the only piece I see missing is _how_ to determine if a package is custom built. For instance, what's the different between a -A operation on an official package, and one you built?
Comment by Roman Kyrylych (Romashka) - Friday, 26 January 2007, 16:42 GMT
I think original request can be mostly solved by adding option to makeworld to build only packages installed from some repos (user can specify his local self-made repo) and another for building only packages that were installed with -A (which is mostly the case of self-made packages only).
Comment by Aaron Griffin (phrakture) - Friday, 26 January 2007, 16:45 GMT
For the record though, codemac is right... srcpac has an option somewhere to rebuild all packages that srcpac itself has built...
Comment by Roman Kyrylych (Romashka) - Friday, 26 January 2007, 17:03 GMT
So, this can be closed, I suppose?
Comment by Corrado Primier (bardo) - Friday, 26 January 2007, 17:32 GMT
The reason I proposed this back then is that, taking any package, there is no way to know if it has been built on the local machine or not, unless you always used srcpac. Personally I prefer the (standard) makeworld way, that lets me rebuild entire blocks of software, I don't know if it's the same to others.

Anyway, I thought of several ways to implement this, and everyone of them has its drawbacks.
- We could simply set a flag for "unofficial distribution". It's easily fakeable, but is it a problem? For me it's not. After all, all package metadata are fakeable. This is the concern for the majority of methods I'm proposing.
- Otherwise, we could rely on the Packager field, set in makepkg.conf. This is easy and there would be no problems to patch makeworld to check for that, too.
- We could add some kind of unique system id (like in archstats) to every package built, while every package uploaded to the official repos would have a custom id. Nice, but difficult to implement (after all, every dev builds on his own machine... they should have a different makepkg to handle this).
- Signing packages, like in debian. This has been discussed for pacman 3, not sure if it's been implemented... Anyway, this is the only one that solves the faking problem.

Notice that all my solutions move the spotlight on the package, not on the program that manages it. I don't think that adding one more location to store metadata is KISS, so all metadata should be unified inside the package.
Comment by Roman Kyrylych (Romashka) - Friday, 26 January 2007, 17:43 GMT
IMO none of above ways to implement this are KISS.

Why not just create local repo for all packages built from source and run makeworld on that repo?
Small changes to makeworld for support of custom ABS tree are needed for this.
Comment by Aaron Griffin (phrakture) - Friday, 26 January 2007, 17:47 GMT
A local repo is probably the "proper" way to do this. But also, srcpac would work too.

I'm going to close this

Loading...