#!/bin/sh
sqlite3 "$REPOCOP_TEST_TMPDIR/tmp.db" <<EOSQL
attach database '$REPOCOP_DISTROTEST_DBDIR/rpm.db' as rpm;
attach database '$REPOCOP_DISTROTEST_DBDIR/rpm-ext.db' as rpmext;
.mode tabs
.output $REPOCOP_TEST_TMPDIR/msg
-- filedir conflict
-- http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/pkgformat.html
-- note: 580 is RPMFILE_DONOTUSE (1 << 2) + RPMFILE_GHOST (1 << 6) + RPMFILE_EXCLUDE (1 << 9)
select a.pkgid, b.pkgid, a.FILENAME FROM rpm_files as a LEFT JOIN rpm as c ON a.pkgid=c.pkgid, rpm_files as b  LEFT JOIN rpm as d ON b.pkgid=d.pkgid WHERE a.pkgid<>b.pkgid and a.filename=b.filename and a.fileflag & 580 = 0 and b.fileflag & 580 = 0 and a.filemode & 61440 = 16384 and b.filemode & 61440 = 16384 and (a.filemode<>b.filemode OR a.FILEUSERNAME<>b.FILEUSERNAME OR a.FILEGROUPNAME<>b.FILEGROUPNAME) AND   c.name <> d.name AND a.pkgid NOT IN (select conflictee FROM explicit_conflict WHERE conflicter=b.pkgid) AND b.pkgid NOT IN (select conflictee FROM explicit_conflict WHERE conflicter=a.pkgid) AND a.pkgid NOT IN (select obsoletee FROM explicit_obsolete WHERE obsoleter=b.pkgid) AND b.pkgid NOT IN (select obsoletee FROM explicit_obsolete WHERE obsoleter=a.pkgid);
EOSQL
#for i in `sort -u $REPOCOP_TEST_TMPDIR/msg*`; do repocop-test-warn -k $i update_wms call in post/postun is deprecated; done
perl -ne 'chomp;@a=split /\t/;system(qw/repocop-test-fail -k/,$a[0], "directory $a[2] is a directory in package $a[1] with different user,group or permissions. You should add explicit conflicts.")' $REPOCOP_TEST_TMPDIR/msg
rm $REPOCOP_TEST_TMPDIR/*
