[pacman-dev] [PATCH] [RFC] repo-add: don't create links if archive extension is invalid

Allan McRae allan at archlinux.org
Wed Jun 22 04:09:53 EDT 2011


On 21/06/11 02:19, Dan McGee wrote:
> Not sure what to do here, if we should be proceeding at all. The current
> situation:
>
>      dmcgee at galway ~/projects/pacman (master)
>      $ ./scripts/repo-add /tmp/invalid.xxx /var/cache/pacman/pkg/apr-1.4.5-1-x86_64.pkg.tar.xz
>      ==>  Adding package '/var/cache/pacman/pkg/apr-1.4.5-1-x86_64.pkg.tar.xz'
>        ->  Computing checksums...
>        ->  Creating 'desc' db entry...
>        ->  Creating 'depends' db entry...
>      ==>  Creating updated database file '/tmp/invalid.xxx'
>      ==>  WARNING: '/tmp/invalid.xxx' does not have a valid archive extension.
>
>      dmcgee at galway ~/projects/pacman (master)
>      $ ll /tmp/invalid.xxx
>      lrwxrwxrwx 1 dmcgee users 11 Jun 20 11:08 /tmp/invalid.xxx ->  invalid.xxx
>
> So we get a symlink to ourself, and overwrite the originally generated
> repo database. This patch prevents this behavior, and writes out a
> non-compressed database to invalid.xxx and generates no links.
>
> Thoughts? Pacman has a requirement that the db file end in '.db', and
> the only other extension out there in the wild is '.files' as far as I
> know. Should we have strict enforcement of one of these two types in
> repo-add? Doing this could also make the --files flag a bit less
> necessary as one could auto-detect the correct setting based on the DB
> extension.

Given the requirement for a .db extension, how about just creating 
"invalid.xxx.db" and assuming that no compression is wanted and that is 
the name of the repo?

if [[ $dblink == $REPO_DB_FILE ]]; then
	dblink="${REPO_DB_FILE}.db
fi

Allan


More information about the pacman-dev mailing list