aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* qmerge: add reminder for myselfFabian Groffen2024-03-291-0/+4
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: sloppily circumvent Coverity 125893Fabian Groffen2024-01-021-1/+1
| | | | | | use mkdir_p to avoid Unchecked return value from library Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: fix Coverity 190455 Argument cannot be negativeFabian Groffen2024-01-021-2/+5
| | | | | | Handle case where image dir somehow could not be opened. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* *: remove WHIRLPOOL hash supportFabian Groffen2024-01-011-2/+2
| | | | | | | WHIRLPOOL has not been in use since mid 2017, and its support is bound to be removed from OpenSSL. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: Send ewarn, etc., to stderrBrian Norris2023-12-201-4/+4
| | | | | | | | | | | | | | The PMS specifically calls out that ewarn should not display its message to stdout. Portage sends all e{log,info,warn,...} to stderr. Imitate that. This discrepancy causes problems for ghc-package.eclass users, for one, as there are instances where that class purposely dumps a warning and then expects its callers to still use its stdout as a result. Signed-off-by: Brian Norris <briannorris@chromium.org> Signed-off-by: Mike Frysinger <vapier@chromium.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* qmerge: add some braindump notes about how things could beFabian Groffen2023-02-071-0/+94
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: set EBUILD_PHASE_FUNCv0.94.4sfrolov2022-11-161-0/+1
| | | | | | | | EBUILD_PHASE_FUNC is a variable that contains an exact phase function name. It was added in https://bugs.gentoo.org/show_bug.cgi?id=390765 Bug: https://bugs.gentoo.org/880867 Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: fix Coverity file descriptor leak CID 207952Fabian Groffen2022-02-121-1/+2
| | | | | | | Leak would happen when opening file succeed, but statting it would fail. Unlikely, but better to take into account anyway. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: fix Coverity dead code CID 248871Fabian Groffen2022-02-121-3/+3
| | | | | | | we previously checked rpkg == NULL, so indeed it can never be !NULL (copy 'n' paste error) Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: fix Coverity resource leak (previnst) CID 248877Fabian Groffen2022-02-121-1/+5
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: fix Coverity NULL_RETURNS (possibly passing NULL)Fabian Groffen2022-02-121-3/+9
| | | | | | | | | CID 248879 buf (EAPI) and phases can be NULL, substitute EAPI, don't run phase-funcs when no phases are present. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: plug leak in pkg_merge when doing dryrunFabian Groffen2022-02-061-1/+3
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: plug leak in pkg_mergeFabian Groffen2022-02-061-1/+2
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: free up some resourcesFabian Groffen2022-02-061-0/+7
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: make use of xsystem instead of DIYFabian Groffen2022-02-061-29/+16
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: just show which packages would be installed without --pretendFabian Groffen2022-01-311-5/+4
| | | | | | | While pretend shows what would be done, make default mode (interactive) just list what would be installed, not how. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: drop ugly tree_pkg_meta_get workaroundFabian Groffen2021-12-291-1/+0
| | | | | | | tree_pkg_meta_get() returned pointers now won't change for as long as the object exists Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: resolve user sets from etc/portage/setsv0.93.3Fabian Groffen2021-12-271-7/+12
| | | | | | | | Based on suggested patch from Barnabás Virágh in bug #816237. Look inside sets subdir. While at it, accept @-prefixed syntax, e.g. @world. Bug: https://bugs.gentoo.org/816237 Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: support cross-device merges also for VDB #816141v0.93.2Fabian Groffen2021-12-261-78/+37
| | | | | | | | | As originally suggested by Barnabás Virágh, but in this implementation using move_file, which is now shared code between pkg merge and the putting the vdb in place. Bug: https://bugs.gentoo.org/816141 Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: use FEATURES as setFabian Groffen2021-12-131-5/+5
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: fix typo in outputSam James2021-10-091-1/+1
| | | | | Signed-off-by: Sam James <sam@gentoo.org> Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: ensure temp dir exists before writing environment to itFabian Groffen2021-10-031-1/+2
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: run pkg_prerm right before merging files from replacing versionJoakim Tjernlund2021-09-271-2/+20
| | | | | | | ensure that pkg_prerm can run with the files from the package it was defined at, that is run it right before any files are replaced Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* libq/atom: introduce atom_compare_flgFabian Groffen2021-08-161-14/+3
| | | | | | | | | | | | | atom_compare_flg allows to give match behaviour flags, such that often used exceptions can now be handled without having to modify the input atoms. atom_compare is now a macro calling atom_compare_flg with flags=ATOM_COMP_DEFAULT. Updated all callers that can use this feature. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: ignore subslot in calculating replacing versionFabian Groffen2021-07-051-7/+17
| | | | | | Original patch by Joakim Tjernlund <Joakim.Tjernlund@infinera.com> Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: avoid crash when there are no objectsFabian Groffen2021-07-011-1/+2
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: ignore REPO in version replacement calculationFabian Groffen2021-07-011-0/+5
| | | | | | | | When we up/downgrade a package, or replace it, we don't care what repository it comes from. Since atom_compare checks it when it's in query, simply drop it for that call. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: allow installing virtual/* and acct-*/*Fabian Groffen2021-06-301-2/+4
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: add support for REPLACING_VERSIONS and REPLACED_BY_VERSIONFabian Groffen2021-06-241-16/+41
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: run pkg_* phases according to PMS 9.2 Call OrderFabian Groffen2021-06-221-20/+21
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: check phase funcs against PMS whether they should be runFabian Groffen2021-06-211-17/+72
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: define BROOT, SYSROOT and ESYSROOT for phase runningFabian Groffen2021-06-171-0/+4
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: slightly re-order tree_pkg_meta_get calls for validityFabian Groffen2021-06-161-10/+12
| | | | | | | previous calls to tree_pkg_meta_get might be invalidated on a next call, so try to keep validity of pointers within tree_pkg_meta_get calls Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: Protect against another NULL hashJoakim Tjernlund2021-06-161-1/+1
| | | | | Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: do not run pkg_pretend/pkg_setup/pkg_preinst if pretendJoakim Tjernlund2021-06-161-3/+5
| | | | | Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: Use same image dir. name as portageJoakim Tjernlund2021-06-161-1/+1
| | | | | | | | atom_to_string(mpkg->atom) will attach ::gentoo to name which is different from portage. Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: fix type for NULL SLOTsJoakim Tjernlund2021-06-161-1/+1
| | | | | | | Use SLOT="0" if no SLOT exists, not the other way around Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: add comment about hash == NULLFabian Groffen2021-06-161-1/+1
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: Protect against NULL ptrJoakim Tjernlund2021-06-161-1/+3
| | | | | | | hash will be NULL if file does not exist. Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com> Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: drop outdated commentFabian Groffen2021-06-161-1/+0
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: once over to make better/more use of libq/treeFabian Groffen2021-06-141-472/+310
| | | | | | | | | | | - unify best_version and grab_binpkg_info, into single function using tree_match_atom to benefit from cache and abstract any particulars - default to install action when no action given - unmerge previous package on merge upgrade again - possibly fix bug #792273 by exporting vars Bug: https://bugs.gentoo.org/792273 Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: some silencingFabian Groffen2021-05-311-9/+18
| | | | | | | - create root/vdb if it doesn't exist (instead of barking up random trees) - avoid some duplicate slashes Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: silence style checkFabian Groffen2021-05-021-2/+2
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: provide emulations for fowners and fpermsFabian Groffen2021-05-011-3/+7
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: report relevant errors on binpkg unpacksFabian Groffen2020-11-211-2/+2
| | | | | | Thanks Peter Stuge for noticing. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: adapt style after previous commitFabian Groffen2020-11-141-20/+22
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: copy tbz2 archive into decompressor/tar pipe ourselvesPeter Stuge2020-11-141-3/+49
| | | | | | | | | | | | | We have nothing to do while tar is running so let's copy the tbz2 archive part into a popen():ed tar pipe ourselves, rather than depend on an external program. Doing so also fixes a possible shell injection vulnerability and improves performance. Fixes: 7171479f ("qmerge: unpack tbz2 file without splitting it first", 2020-05-17) Signed-off-by: Peter Stuge <peter@stuge.se> Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: don't call zstd with --long=31 on 32-bits platformsFabian Groffen2020-11-131-1/+10
| | | | | | | | 32-bits recent versions of zstd do not grok this argument, so just drop it for those platforms Bug: https://bugs.gentoo.org/754102 Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: force FEATURES=-preserve-libs, bug #698462Fabian Groffen2020-08-171-0/+3
| | | | | | | | | We do not support/implement preserve-libs feature (we could), so drop it from FEATURES such that preserve_old_libs kicks in for some of the crucial libs around. Bug: https://bugs.gentoo.org/698462 Signed-off-by: Fabian Groffen <grobian@gentoo.org>
* qmerge: fix syntax error introduced in bafe11f5e8beb6ee1fe5e344aba517a22bc0cf9fFabian Groffen2020-08-141-1/+1
| | | | Signed-off-by: Fabian Groffen <grobian@gentoo.org>