Re: Unmarked conflict checking in portcheck

2014-07-24 Thread Christian Weisgerber
On 2014-07-23, Marc Espie es...@nerim.net wrote:

 Nope, this exists elsewhere. Reuse bin/check-conflicts

Speaking of which, here's what check-conflicts reports for the
2014-07-22 amd64 bulk build:

cyrus-imapd-2.4.17p7(mail/cyrus-imapd),cyrus-imapd-2.4.17p7-drac(mail/cyrus-imapd,drac),pop3d-1.0p0(mail/pop3d)
/usr/local/man/man8/pop3d.8
freedt-0.22p1(sysutils/freedt),ucspi-tcp-0.88p0(net/ucspi-tcp)
/usr/local/bin/argv0
/usr/local/bin/recordio
p5-TAP-Parser-0.54p0(devel/p5-TAP-Parser),p5-Test-Harness-3.30(devel/p5-Test-Harness)
/usr/local/libdata/perl5/site_perl/TAP/Base.pm
/usr/local/libdata/perl5/site_perl/TAP/Harness.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Aggregator.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Grammar.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Array.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Process.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Stream.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Result.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Bailout.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Comment.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Plan.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Test.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Unknown.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Version.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Result/YAML.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/Source.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/YAMLish/Reader.pm
/usr/local/libdata/perl5/site_perl/TAP/Parser/YAMLish/Writer.pm
p5-Tk-804.032p0(x11/p5-Tk,-main),p5-Tk-demo-804.032(x11/p5-Tk,-demo)
/usr/local/man/man3p/Tk::demos::widget_lib::slide.3p
/usr/local/man/man3p/Tk::demos::widget_lib::trace2.3p
py3-distribute-0.6.27p1(devel/py-distribute,python3),py3-setuptools-3.4.4p0v0(devel/py-setuptools,python3)
/usr/local/bin/easy_install-3.4

/usr/local/lib/python3.4/site-packages/__pycache__/easy_install.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/__pycache__/pkg_resources.cpython-34.pyc
/usr/local/lib/python3.4/site-packages/easy_install.py
/usr/local/lib/python3.4/site-packages/pkg_resources.py
/usr/local/lib/python3.4/site-packages/setuptools/__init__.py

/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/__init__.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/archive_util.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/depends.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/dist.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/extension.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/package_index.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/sandbox.cpython-34.pyc
/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/script 
template (dev).cpython-34.pyc
/usr/local/lib/python3.4/site-packages/setuptools/__pycache__/script 
template.cpython-34.pyc
/usr/local/lib/python3.4/site-packages/setuptools/archive_util.py
/usr/local/lib/python3.4/site-packages/setuptools/command/__init__.py

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/__init__.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/alias.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/bdist_wininst.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/build_ext.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/build_py.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/develop.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/easy_install.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/egg_info.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/install.cpython-34.pyc

/usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-34.pyc


Re: Unmarked conflict checking in portcheck

2014-07-24 Thread Vadim Zhukov
2014-07-24 15:33 GMT+04:00 Christian Weisgerber na...@mips.inka.de:
 On 2014-07-23, Marc Espie es...@nerim.net wrote:

 Nope, this exists elsewhere. Reuse bin/check-conflicts

 Speaking of which, here's what check-conflicts reports for the
 2014-07-22 amd64 bulk build:

 cyrus-imapd-2.4.17p7(mail/cyrus-imapd),cyrus-imapd-2.4.17p7-drac(mail/cyrus-imapd,drac),pop3d-1.0p0(mail/pop3d)
 /usr/local/man/man8/pop3d.8
 freedt-0.22p1(sysutils/freedt),ucspi-tcp-0.88p0(net/ucspi-tcp)
 /usr/local/bin/argv0
 /usr/local/bin/recordio
 p5-TAP-Parser-0.54p0(devel/p5-TAP-Parser),p5-Test-Harness-3.30(devel/p5-Test-Harness)
 /usr/local/libdata/perl5/site_perl/TAP/Base.pm
 /usr/local/libdata/perl5/site_perl/TAP/Harness.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Aggregator.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Grammar.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Array.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Process.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Stream.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Bailout.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Comment.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Plan.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Test.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Unknown.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Version.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/YAML.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Source.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/YAMLish/Reader.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/YAMLish/Writer.pm
 p5-Tk-804.032p0(x11/p5-Tk,-main),p5-Tk-demo-804.032(x11/p5-Tk,-demo)
 /usr/local/man/man3p/Tk::demos::widget_lib::slide.3p
 /usr/local/man/man3p/Tk::demos::widget_lib::trace2.3p
 py3-distribute-0.6.27p1(devel/py-distribute,python3),py3-setuptools-3.4.4p0v0(devel/py-setuptools,python3)
 /usr/local/bin/easy_install-3.4
 
 /usr/local/lib/python3.4/site-packages/__pycache__/easy_install.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/__pycache__/pkg_resources.cpython-34.pyc
 /usr/local/lib/python3.4/site-packages/easy_install.py
 /usr/local/lib/python3.4/site-packages/pkg_resources.py
 /usr/local/lib/python3.4/site-packages/setuptools/__init__.py
 
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/__init__.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/archive_util.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/depends.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/dist.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/extension.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/package_index.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/sandbox.cpython-34.pyc
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/script 
 template (dev).cpython-34.pyc
 /usr/local/lib/python3.4/site-packages/setuptools/__pycache__/script 
 template.cpython-34.pyc
 /usr/local/lib/python3.4/site-packages/setuptools/archive_util.py
 /usr/local/lib/python3.4/site-packages/setuptools/command/__init__.py
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/__init__.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/alias.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/bdist_wininst.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/build_ext.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/build_py.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/develop.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/easy_install.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/egg_info.cpython-34.pyc
 
 /usr/local/lib/python3.4/site-packages/setuptools/command/__pycache__/install.cpython-34.pyc
 
 

Re: Unmarked conflict checking in portcheck

2014-07-24 Thread Vadim Zhukov
2014-07-24 15:33 GMT+04:00 Christian Weisgerber na...@mips.inka.de:
 Speaking of which, here's what check-conflicts reports for the
 2014-07-22 amd64 bulk build:

 p5-TAP-Parser-0.54p0(devel/p5-TAP-Parser),p5-Test-Harness-3.30(devel/p5-Test-Harness)
 /usr/local/libdata/perl5/site_perl/TAP/Base.pm
 /usr/local/libdata/perl5/site_perl/TAP/Harness.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Aggregator.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Grammar.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Array.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Process.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Iterator/Stream.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Bailout.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Comment.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Plan.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Test.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Unknown.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/Version.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Result/YAML.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/Source.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/YAMLish/Reader.pm
 /usr/local/libdata/perl5/site_perl/TAP/Parser/YAMLish/Writer.pm

This is the only one left, and this is a complicated one.
p5-Test-Harness installs TAP::* without permit, and it differs from
p5-TAP-Parser enough to be incompatible. The p5-Test-Harness is pure
TDEP for devel/p5-Test-Warnings and devel/p5-Module-Build-Tiny -
maybe, that's not a big deal and we could just add @conflict markers
and be done.

--
  WBR,
  Vadim Zhukov



Re: Unmarked conflict checking in portcheck

2014-07-24 Thread Andrew Fresh
On Thu, Jul 24, 2014 at 09:39:05PM +0400, Vadim Zhukov wrote:
 2014-07-24 15:33 GMT+04:00 Christian Weisgerber na...@mips.inka.de:
  Speaking of which, here's what check-conflicts reports for the
  2014-07-22 amd64 bulk build:
 
  p5-TAP-Parser-0.54p0(devel/p5-TAP-Parser),p5-Test-Harness-3.30(devel/p5-Test-Harness)
SNIP
 This is the only one left, and this is a complicated one.
 p5-Test-Harness installs TAP::* without permit, and it differs from
 p5-TAP-Parser enough to be incompatible. The p5-Test-Harness is pure
 TDEP for devel/p5-Test-Warnings and devel/p5-Module-Build-Tiny -
 maybe, that's not a big deal and we could just add @conflict markers
 and be done.

As far as I know, TAP::Parser was renamed to Test::Harness in 2007, I
would personally remove p5-TAP-Parser and replace it with
p5-Test-Harness in dependencies.

https://metacpan.org/source/LEONT/Test-Harness-3.32/Changes#L420

l8rZ,
-- 
andrew - http://afresh1.com

The 3 great virtues of a programmer: Laziness, Impatience, and Hubris.
  --Larry Wall



Re: Unmarked conflict checking in portcheck

2014-07-24 Thread Vadim Zhukov
2014-07-24 21:48 GMT+04:00 Andrew Fresh and...@afresh1.com:
 On Thu, Jul 24, 2014 at 09:39:05PM +0400, Vadim Zhukov wrote:
 2014-07-24 15:33 GMT+04:00 Christian Weisgerber na...@mips.inka.de:
  Speaking of which, here's what check-conflicts reports for the
  2014-07-22 amd64 bulk build:
 
  p5-TAP-Parser-0.54p0(devel/p5-TAP-Parser),p5-Test-Harness-3.30(devel/p5-Test-Harness)
 SNIP
 This is the only one left, and this is a complicated one.
 p5-Test-Harness installs TAP::* without permit, and it differs from
 p5-TAP-Parser enough to be incompatible. The p5-Test-Harness is pure
 TDEP for devel/p5-Test-Warnings and devel/p5-Module-Build-Tiny -
 maybe, that's not a big deal and we could just add @conflict markers
 and be done.

 As far as I know, TAP::Parser was renamed to Test::Harness in 2007, I
 would personally remove p5-TAP-Parser and replace it with
 p5-Test-Harness in dependencies.

 https://metacpan.org/source/LEONT/Test-Harness-3.32/Changes#L420

sqlite SELECT COUNT(*) FROM Depends WHERE DEPENDSPATH LIKE
'devel/p5-TAP-Parser%';
0

I think p5-TAP-Parser should die then.


--
  WBR,
  Vadim Zhukov



Unmarked conflict checking in portcheck

2014-07-23 Thread Vadim Zhukov
Hello all.

This adds a useful but awfully slow feature: checking for unmarked
conflicts. This is done as a part of PLIST checks, so it could be
disabled by -P as well as by specifically added -C option. Yes,
there was -C option at some time previously with different meaning,
but I'm doubt we care about those times. :)

The basic idea is that we accumulate up to $max_conflicts_queue_size,
1000 by now, file items and then run pkg_locate in a batch. We parse
pkg_locate output, filter out implicit and explicit conflicts, and
finally display warnings about each conflicting file.

Actual speed is about 5 PLIST items per second on my X201i. Yes,
it makes checking stuff like kdelibs and opencv-docs hell long.
Unfortunately, locate(1) (and thus pkg_locate) re-scans database
for each item on command line. This could be improved (I've already
looked at the code) but definitely not while we're in release lock.

So... any opinions? Okay to let this go in?

BTW, this diff contains a bugfix required for the mentioned feature
to work: I've used non-subpackaged version of FULLPKGNAME variable.
I plan to commit this fix and other nit I found separately.

--
WBR,
  Vadim Zhukov


Index: bin/portcheck
===
RCS file: /cvs/ports/infrastructure/bin/portcheck,v
retrieving revision 1.84
diff -u -p -r1.84 portcheck
--- bin/portcheck   10 Jul 2014 09:57:13 -  1.84
+++ bin/portcheck   23 Jul 2014 20:03:06 -
@@ -20,8 +20,8 @@ set +X
 set -u
 
 usage() {
-   echo usage: ${0##*/} [-dNP] [-p portsdir] [-x glob] 2
-   echo${0##*/} -A [-dP] [-p portsdir] [-x glob] [subdir ...] 2
+   echo usage: ${0##*/} [-CdNP] [-p portsdir] [-x glob] 2
+   echo${0##*/} -A [-CdP] [-p portsdir] [-x glob] [subdir ...] 
2
exit 1
 }
 
@@ -33,13 +33,14 @@ usage() {
 existing_port=true
 ignore_cvs=true
 plist_checks=true
+conflict_checks=true
 portsdir=
 rootrun=false
 debugging=false
 
 ignore_list=; unset ignore_list[0]
 
-while getopts AdNPp:x: OPT; do
+while getopts ACdNPp:x: OPT; do
case $OPT in
A)
$existing_port || usage
@@ -70,6 +71,10 @@ while getopts AdNPp:x: OPT; do
rootrun=true
;;
 
+   C)
+   conflict_checks=false
+   ;;
+
d)
debugging=true
;;
@@ -82,6 +87,7 @@ while getopts AdNPp:x: OPT; do
 
P)
plist_checks=false
+   conflict_checks=false
;;
 
p)
@@ -110,6 +116,17 @@ shift $(($OPTIND - 1))
 (($#  0))  ! $rootrun  usage
 (($# == 0))  set -- .
 
+if $conflict_checks; then
+   # make sure pkglocatedb is installed
+   # XXX pkg_info doesn't fail if package wasn't found now
+   local pkgldbinst=$(pkg_info -qP pkglocatedb 2/dev/null || true)
+   if [ -z $pkgldbinst ]; then
+   echo The pkglocatedb package was not found. 2
+   echo It is required for checks for unmarked conflicts. 2
+   exit 4
+   fi
+fi
+
 
 # Detect path to root of directory tree of current port(s) and put it
 # in $portsdir, unless it was set by user above. As a last resort, we
@@ -512,7 +529,7 @@ check_port_dir() {
local multi_packages pkgpath_this pseudo_flavor pseudo_flavors
local shared_libs subst_cmd
local perm_pkg_cdrom perm_pkg_ftp perm_dist_ftp
-   local show_items=DIST_SUBDIR DISTFILES FLAVOR FLAVORS FULLPKGNAME
+   local show_items=DIST_SUBDIR DISTFILES FLAVOR FLAVORS
local show_items=$show_items MASTER_SITES MULTI_PACKAGES PKGPATH
local show_items=$show_items PSEUDO_FLAVOR PSEUDO_FLAVORS
local show_items=$show_items SHARED_LIBS SUBST_CMD
@@ -526,7 +543,6 @@ check_port_dir() {
read -pr distfiles 
read -pr flavor 
read -pr flavors 
-   read -pr fullpkgname 
read -pr master_sites 
read -pr multi_packages 
read -pr pkgpath_this 
@@ -571,7 +587,7 @@ check_port_dir() {
$existing_port || check_shlibs_versions $dir $shared_libs
 
for _s in $multi_packages; do
-   sub_checks $dir $_s $fullpkgname ${check_flavors[@]}
+   sub_checks $dir $_s ${check_flavors[@]}
done
 
pkgpath=${pkgpath:-$pkgpath_this}
@@ -660,7 +676,6 @@ sub_checks() {
 
local dir=$1; shift
local subpkg=$1; shift
-   local fullpkgname=$1; shift
local flavor
for flavor in $@; do
# avoid extra noise
@@ -674,15 +689,19 @@ sub_checks() {
export SUBPACKAGE=$subpkg FLAVOR=$flavor
 
local wantlib_var=WANTLIB${subpkg%-}
-   local vars=COMMENT$subpkg MODULES
+   local vars=COMMENT$subpkg FULLPKGNAME$subpkg
+   vars=$vars MODULES PREFIX$subpkg
vars=$vars 

Re: Unmarked conflict checking in portcheck

2014-07-23 Thread Marc Espie
On Thu, Jul 24, 2014 at 02:38:34AM +0400, Vadim Zhukov wrote:
 2014-07-24 0:18 GMT+04:00 Vadim Zhukov persg...@gmail.com:
  Hello all.
 
  This adds a useful but awfully slow feature: checking for unmarked
  conflicts. This is done as a part of PLIST checks, so it could be
  disabled by -P as well as by specifically added -C option. Yes,
  there was -C option at some time previously with different meaning,
  but I'm doubt we care about those times. :)
 
  The basic idea is that we accumulate up to $max_conflicts_queue_size,
  1000 by now, file items and then run pkg_locate in a batch. We parse
  pkg_locate output, filter out implicit and explicit conflicts, and
  finally display warnings about each conflicting file.
 
  Actual speed is about 5 PLIST items per second on my X201i. Yes,
  it makes checking stuff like kdelibs and opencv-docs hell long.
  Unfortunately, locate(1) (and thus pkg_locate) re-scans database
  for each item on command line. This could be improved (I've already
  looked at the code) but definitely not while we're in release lock.
 
  So... any opinions? Okay to let this go in?
 
  BTW, this diff contains a bugfix required for the mentioned feature
  to work: I've used non-subpackaged version of FULLPKGNAME variable.
  I plan to commit this fix and other nit I found separately.
 
 Updated version (should apply clean to -CURRENT). Includes updates
 to tests.
 
 --
 WBR,
   Vadim Zhukov

Nope, this exists elsewhere. Reuse bin/check-conflicts



Re: Unmarked conflict checking in portcheck

2014-07-23 Thread Vadim Zhukov
2014-07-24 2:46 GMT+04:00 Marc Espie es...@nerim.net:
 On Thu, Jul 24, 2014 at 02:38:34AM +0400, Vadim Zhukov wrote:
 2014-07-24 0:18 GMT+04:00 Vadim Zhukov persg...@gmail.com:
  Hello all.
 
  This adds a useful but awfully slow feature: checking for unmarked
  conflicts. This is done as a part of PLIST checks, so it could be
  disabled by -P as well as by specifically added -C option. Yes,
  there was -C option at some time previously with different meaning,
  but I'm doubt we care about those times. :)
 
  The basic idea is that we accumulate up to $max_conflicts_queue_size,
  1000 by now, file items and then run pkg_locate in a batch. We parse
  pkg_locate output, filter out implicit and explicit conflicts, and
  finally display warnings about each conflicting file.
 
  Actual speed is about 5 PLIST items per second on my X201i. Yes,
  it makes checking stuff like kdelibs and opencv-docs hell long.
  Unfortunately, locate(1) (and thus pkg_locate) re-scans database
  for each item on command line. This could be improved (I've already
  looked at the code) but definitely not while we're in release lock.
 
  So... any opinions? Okay to let this go in?
 
  BTW, this diff contains a bugfix required for the mentioned feature
  to work: I've used non-subpackaged version of FULLPKGNAME variable.
  I plan to commit this fix and other nit I found separately.

 Updated version (should apply clean to -CURRENT). Includes updates
 to tests.

 --
 WBR,
   Vadim Zhukov

 Nope, this exists elsewhere. Reuse bin/check-conflicts

Hm-m-m... I ever used this tool some time ago. :-\ Now I'll need to
rediscover right options - the manual page describes what this tool
does but not how to use it for different cases. :-( Anyway, thanks,
this should simplify and speed up things a lot. :)

--
  WBR,
  Vadim Zhukov



Re: Unmarked conflict checking in portcheck

2014-07-23 Thread Stuart Henderson
On 2014/07/24 00:46, Marc Espie wrote:
 Nope, this exists elsewhere. Reuse bin/check-conflicts

This is different, unlke check-conflicts it doesn't need a full set
of built packages, it just uses pkglocatedb instead.



Re: Unmarked conflict checking in portcheck

2014-07-23 Thread Vadim Zhukov
2014-07-24 3:30 GMT+04:00 Stuart Henderson st...@openbsd.org:
 On 2014/07/24 00:46, Marc Espie wrote:
 Nope, this exists elsewhere. Reuse bin/check-conflicts

 This is different, unlke check-conflicts it doesn't need a full set
 of built packages, it just uses pkglocatedb instead.

check-conflicts uses print-plist-all target, which results in much
faster. Now I need to compare actual results, to make sure
check-conflicts won't miss anything. Also, check-conflicts gives me
weird errors about /usr/ports/openbsd-wip/* directories, even that it
isn't listed in /usr/ports/Makefile - to be investigated...

--
  WBR,
  Vadim Zhukov



Re: Unmarked conflict checking in portcheck

2014-07-23 Thread Stuart Henderson
On 2014/07/24 03:36, Vadim Zhukov wrote:
 2014-07-24 3:30 GMT+04:00 Stuart Henderson st...@openbsd.org:
  On 2014/07/24 00:46, Marc Espie wrote:
  Nope, this exists elsewhere. Reuse bin/check-conflicts
 
  This is different, unlke check-conflicts it doesn't need a full set
  of built packages, it just uses pkglocatedb instead.
 
 check-conflicts uses print-plist-all target, which results in much
 faster.

hmmm, that possibility isn't apparent from the description,
check-conflicts is used to check a collection of packages for
unregistered conflicts..