Date: Wed, 12 Dec 2012 12:13:48 +0100 From: Tomasz Sowa <t.sowa@ttmath.org> To: freebsd-ports@freebsd.org Subject: [PATCH] pkgng forcing pkg register Message-ID: <50C866EC.3080208@ttmath.org>
next in thread | raw e-mail | index | archive | help
Hi I'm testing the new pkgng from 10-CURRENT but it seems to not having an option for forcing registering a package. I have got a lot texlive-* packages (more than 1000) but I cannot upgrade them, I still got: Installing [pkg_name]: [pkg_name] conflicts with [other_pkg_name] (installs files into the same place) Googling through "(installs files into the same place)" shows that a lot of people have such a problem with other ports. So I wonder why there is no an option to force registering a port? Below is a small patch for pkg, after setting FORCE_PKG_REGISTER env variable you can force registering a port. May it should be other var than FORCE_PKG_REGISTER? -- Tomek --- pkg-1.0.3.oryginal/libpkg/pkgdb.c 2012-12-12 11:19:29.000000000 +0100 +++ pkg-1.0.3/libpkg/pkgdb.c 2012-12-12 11:33:05.000000000 +0100 @@ -1795,9 +1795,12 @@ lic_t licenselogic; int64_t flatsize; int64_t i; + bool force_register; assert(db != NULL); + force_register = (getenv("FORCE_PKG_REGISTER") != 0); + if (pkg_is_valid(pkg) != EPKG_OK) { pkg_emit_error("the package is not valid"); return (EPKG_FATAL); @@ -1872,7 +1875,7 @@ const char *pkg_sum = pkg_file_cksum(file); ret = run_prstmt(FILES, pkg_path, pkg_sum, package_id); - if (ret == SQLITE_DONE) + if (force_register || ret == SQLITE_DONE) continue; if (ret != SQLITE_CONSTRAINT) { ERROR_SQLITE(s);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50C866EC.3080208>