From owner-freebsd-ports@freebsd.org Sun Dec 6 03:24:40 2015 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E03FEA3B2D4 for ; Sun, 6 Dec 2015 03:24:40 +0000 (UTC) (envelope-from ncrogers@gmail.com) Received: from mail-ig0-x22d.google.com (mail-ig0-x22d.google.com [IPv6:2607:f8b0:4001:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AC15A1F54 for ; Sun, 6 Dec 2015 03:24:40 +0000 (UTC) (envelope-from ncrogers@gmail.com) Received: by igvg19 with SMTP id g19so59713278igv.1 for ; Sat, 05 Dec 2015 19:24:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=pvrurlqwvs6BhO6kx2J8AEWBljB3ERu7ccwiZWlO3d0=; b=pFn40HD5rmlmb1HZ56q0Oc/xPVD/FmKmmU+IvZmDROhuFj3ErA7R5CUmEjzOiZRpXf hit9MTVQyNAtQlJdVFz8cCywHaCOU+jeLV36smOcNlMsX7+q9U06gF4UwIXTA0Bo1vot fSSw9v2sX5v/3f55ed4uoiDO4igLqsGqsuj9vxYwA3ZoxV5A/XTk717XHc1HSSBAmK4Y 4K0gGzB9XtiBRg+mBGZPSMV8MVqrW1gQOoh7U87HoqahqJhkmhjzmtPfIryu4wlDdmLz 7aRiZtUr1BEChXtLDzEu2GyryzDjgo5HC1ddZj/P/klWektvUETv6CYoi9frbY+qIkNI TcBg== MIME-Version: 1.0 X-Received: by 10.50.66.197 with SMTP id h5mr9817835igt.16.1449372279970; Sat, 05 Dec 2015 19:24:39 -0800 (PST) Received: by 10.36.94.199 with HTTP; Sat, 5 Dec 2015 19:24:39 -0800 (PST) Date: Sat, 5 Dec 2015 19:24:39 -0800 Message-ID: Subject: pkg regression 1.6.1 to 1.6.2: custom package dependencies missing after install From: Nick Rogers To: "freebsd-ports@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Dec 2015 03:24:41 -0000 Hello, I have an interesting problem since upgrading to the latest pkg version. I am running FreeBSD 10.1-RELEASE-p24. I use "pkg create" to create a custom package (lets call it "mypkg") to distribute some proprietary software. In the custom package's manifest, I specify dependencies that the software relies on. These dependencies are all "real" ports in the FreeBSD ports tree. I use poudriere to host a custom repository that contains all the necessary dependencies. When I bring up a new system, to install the software I run "pkg install mypkg", and that automatically installs all the necessary dependency packages. The custom repo is configured in /usr/local/etc/pkg/repos, and the default "FreeBSD" repo is disabled. This has worked great for some time until I upgraded to pkg 1.6.2 (previously was using 1.6.1). Now when I install my package for the first time, pkg seems to ignore some of the dependencies and does not install some packages (about 14 out of over 200). The MANIFEST of the custom package used in pkg create looks something like this: Generating +MANIFEST name: mypkg origin: myorigin/mypkg version: "1.23" comment: mypkg prefix: /mypkg arch: freebsd:10:* deps: { "bonnie++": { origin: "benchmarks/bonnie++" version: "*" }, "iperf": { origin: "benchmarks/iperf" version: "*" }, "mgetty": { origin: "comms/mgetty+sendfax" version: "*" }, "bash": { origin: "shells/bash" version: "*" }, .... more dependencies .... There are no errors when I do the initial pkg install mypkg. It does not complain about missing dependencies. Most of the dependencies are installed, and a few are left out. When I run "pkg check -d" after the initial "pkg install mypkg", pkg clearly recognizes that some packages are missing, but then it crashes with an abort trap. Here you can see which packages are ignored and the error. Checking all packages: 100% mypkg has a missing dependency: iperf mypkg has a missing dependency: bash mypkg has a missing dependency: gmake mypkg has a missing dependency: rubygem-daemons mypkg has a missing dependency: mrtg mypkg has a missing dependency: python mypkg has a missing dependency: dmidecode mypkg has a missing dependency: bwm-ng mypkg has a missing dependency: freeradius3 mypkg has a missing dependency: flex mypkg has a missing dependency: p5-Devel-Size mypkg has a missing dependency: tclGetOpts >>> Missing package dependencies were detected. >>> Found 13 issue(s) in the package database. Assertion failed: (pattern != NULL), function pkg_jobs_maybe_match_file, file pkg_jobs.c, line 188. Child process pid=29412 terminated abnormally: Abort trap If I try the same "pkg install mypkg" with pkg 1.6.1, against the exact same custom package file and the same poudriere repo, all packages are installed as expected and "pkg check -d" returns a success. So it seems that the problem lies in some change in the behavior of pkg between 1.6.1 and 1.6.2, and not my custom package or the repo. Note that the custom package is created with pkg 1.6.2 as well. I am inclined to think the problem has something to do with the way I am specifying dependencies in my custom packages MANIFEST. My gut tells me it has something to do with the following commit/change to pkg between 1.6.2 and 1.6.1, but I am unfamiliar with the code. https://github.com/freebsd/pkg/commit/7e5152d942cba492142c7a226974913b9d38af21 The list of packages that are left-out is the same every time, but I do not notice any correlation between them as far as how they are named or what not, but there must be some similarity. Hoping someone can shed some light on what is going on. I have opened a similar issue on github in case this is the wrong forum for such weirdness. https://github.com/freebsd/pkg/issues/1356 Thanks! -Nick