Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Dec 2015 10:52:07 +0100
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        Nick Rogers <ncrogers@gmail.com>
Cc:        "freebsd-ports@freebsd.org" <freebsd-ports@freebsd.org>
Subject:   Re: pkg regression 1.6.1 to 1.6.2: custom package dependencies missing after install
Message-ID:  <20151206095207.GF27529@ivaldir.etoilebsd.net>
In-Reply-To: <CAKOb=YY4ePB3Ko9n-mcpW%2Bp_89ZJLT8601=e%2BeYmFNzuD3%2BJsQ@mail.gmail.com>
References:  <CAKOb=YY4ePB3Ko9n-mcpW%2Bp_89ZJLT8601=e%2BeYmFNzuD3%2BJsQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--QXO0/MSS4VvK6f+D
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Dec 05, 2015 at 07:24:39PM -0800, Nick Rogers wrote:
> Hello,
>=20
> I have an interesting problem since upgrading to the latest pkg version. I
> am running FreeBSD 10.1-RELEASE-p24.
>=20
> 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.
>=20
> 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).
>=20
> 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 ....
>=20
>=20
> 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.
>=20
> When I run "pkg check -d" after the initial "pkg install mypkg", pkg
> clearly recognizes that some packages are missing, but then it crashes wi=
th
> an abort trap. Here you can see which packages are ignored and the error.
>=20
> 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
>=20
> >>> Missing package dependencies were detected.
> >>> Found 13 issue(s) in the package database.
>=20
> Assertion failed: (pattern !=3D NULL), function pkg_jobs_maybe_match_file,
> file pkg_jobs.c, line 188.
> Child process pid=3D29412 terminated abnormally: Abort trap
>=20
> 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.
>=20
> 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/7e5152d942cba492142c7a226974913b9d3=
8af21
>=20
> The list of packages that are left-out is the same every time, but I do n=
ot
> notice any correlation between them as far as how they are named or what
> not, but there must be some similarity.
>=20
> Hoping someone can shed some light on what is going on.
>=20
> I have opened a similar issue on github in case this is the wrong forum f=
or
> such weirdness.
> https://github.com/freebsd/pkg/issues/1356
>=20
> Thanks!

As replied on the github issue, the MANIFEST definition is wrong, at least =
not
doing that is expected:
is means depending on for example bash-* (not a glob really the "*" charact=
er.
pkg accepted the installation in pkg 1.6.1 due to a bug in the solver fixed=
 in
1.6.2.

The proper way to do what is expected is to just drop the version: "*" line=
s.

How ever pkg should not die in pkg check, I will work on a fix for that.

Best regards,
Bapt

--QXO0/MSS4VvK6f+D
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iEYEARECAAYFAlZkBUcACgkQ8kTtMUmk6EzEeQCgoTvjwxspx+ieiL0i/2h+skaI
MgQAoLEMnxCRxGLD4h81fdwTpn7j2apX
=OkAI
-----END PGP SIGNATURE-----

--QXO0/MSS4VvK6f+D--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151206095207.GF27529>