├── .editorconfig ├── .gitattributes ├── .github └── workflows │ └── build.yaml ├── .gitignore ├── .gitlab-ci.yml ├── .mailmap ├── .tx └── config ├── AUTHORS ├── COPYING ├── HACKING ├── NEWS ├── README ├── RELEASE ├── TRANSLATORS ├── build-aux ├── .gitignore ├── cat-test-file ├── edit-script.sh.in ├── meson-make-symlink.sh ├── print-failed-test-output ├── script-wrapper.sh.in ├── update-copyright └── update-po ├── doc ├── .gitignore ├── BUILDINFO.5.asciidoc ├── Doxyfile.in ├── PKGBUILD-example.txt ├── PKGBUILD.5.asciidoc ├── alpm-hooks.5.asciidoc ├── asciidoc-override.css ├── asciidoc.conf ├── footer.asciidoc ├── index.asciidoc ├── makepkg-template.1.asciidoc ├── makepkg.8.asciidoc ├── makepkg.conf.5.asciidoc ├── meson.build ├── pacman-conf.8.asciidoc ├── pacman-db-upgrade.8.asciidoc ├── pacman-key.8.asciidoc ├── pacman.8.asciidoc ├── pacman.conf.5.asciidoc ├── repo-add.8.asciidoc ├── submitting-patches.asciidoc ├── testpkg.8.asciidoc ├── translation-help.asciidoc └── vercmp.8.asciidoc ├── etc ├── .gitignore ├── makepkg.conf.d │ ├── fortran.conf.in │ └── rust.conf.in ├── makepkg.conf.in └── pacman.conf.in ├── lib └── libalpm │ ├── .gitignore │ ├── add.c │ ├── add.h │ ├── alpm.c │ ├── alpm.h │ ├── alpm_list.c │ ├── alpm_list.h │ ├── backup.c │ ├── backup.h │ ├── base64.c │ ├── base64.h │ ├── be_local.c │ ├── be_package.c │ ├── be_sync.c │ ├── conflict.c │ ├── conflict.h │ ├── db.c │ ├── db.h │ ├── deps.c │ ├── deps.h │ ├── diskspace.c │ ├── diskspace.h │ ├── dload.c │ ├── dload.h │ ├── error.c │ ├── filelist.c │ ├── filelist.h │ ├── graph.c │ ├── graph.h │ ├── group.c │ ├── group.h │ ├── handle.c │ ├── handle.h │ ├── hook.c │ ├── hook.h │ ├── libarchive-compat.h │ ├── log.c │ ├── log.h │ ├── meson.build │ ├── package.c │ ├── package.h │ ├── pkghash.c │ ├── pkghash.h │ ├── po │ ├── .gitignore │ ├── LINGUAS │ ├── Makevars │ ├── POTFILES.in │ ├── ar.po │ ├── ast.po │ ├── az_AZ.po │ ├── bg.po │ ├── br.po │ ├── ca.po │ ├── cs.po │ ├── da.po │ ├── de.po │ ├── el.po │ ├── en_GB.po │ ├── eo.po │ ├── es.po │ ├── es_419.po │ ├── eu.po │ ├── eu_ES.po │ ├── fi.po │ ├── fr.po │ ├── gl.po │ ├── hi.po │ ├── hr.po │ ├── hu.po │ ├── id.po │ ├── it.po │ ├── ja.po │ ├── kk.po │ ├── ko.po │ ├── libalpm.pot │ ├── lt.po │ ├── meson.build │ ├── nb.po │ ├── nl.po │ ├── pl.po │ ├── pt.po │ ├── pt_BR.po │ ├── remove-potcdate.sin │ ├── ro.po │ ├── ru.po │ ├── sk.po │ ├── sl.po │ ├── sr.po │ ├── sr@latin.po │ ├── sv.po │ ├── tr.po │ ├── uk.po │ ├── zh_CN.po │ └── zh_TW.po │ ├── rawstr.c │ ├── remove.c │ ├── remove.h │ ├── signing.c │ ├── signing.h │ ├── sync.c │ ├── sync.h │ ├── trans.c │ ├── trans.h │ ├── util.c │ ├── util.h │ └── version.c ├── meson.build ├── meson_options.txt ├── proto ├── PKGBUILD-split.proto ├── PKGBUILD-vcs.proto ├── PKGBUILD.proto └── proto.install ├── scripts ├── .gitignore ├── completion │ ├── .gitignore │ ├── bash_completion.in │ └── zsh_completion.in ├── libmakepkg.pc.in ├── libmakepkg │ ├── .gitignore │ ├── autodep.sh.in │ ├── autodep │ │ ├── library_depends.sh.in │ │ ├── library_provides.sh.in │ │ └── meson.build │ ├── buildenv.sh.in │ ├── buildenv │ │ ├── buildflags.sh.in │ │ ├── compiler.sh.in │ │ ├── debugflags.sh.in │ │ ├── fortran.sh.in │ │ ├── lto.sh.in │ │ ├── makeflags.sh.in │ │ ├── meson.build │ │ └── rust.sh.in │ ├── executable.sh.in │ ├── executable │ │ ├── ccache.sh.in │ │ ├── checksum.sh.in │ │ ├── debugedit.sh.in │ │ ├── distcc.sh.in │ │ ├── fakeroot.sh.in │ │ ├── gpg.sh.in │ │ ├── gzip.sh.in │ │ ├── meson.build │ │ ├── pacman.sh.in │ │ ├── strip.sh.in │ │ ├── sudo.sh.in │ │ └── vcs.sh.in │ ├── integrity.sh.in │ ├── integrity │ │ ├── generate_checksum.sh.in │ │ ├── generate_signature.sh.in │ │ ├── meson.build │ │ ├── verify_checksum.sh.in │ │ └── verify_signature.sh.in │ ├── lint_config.sh.in │ ├── lint_config │ │ ├── ext.sh.in │ │ ├── meson.build │ │ ├── paths.sh.in │ │ ├── source_date_epoch.sh.in │ │ └── variable.sh.in │ ├── lint_package.sh.in │ ├── lint_package │ │ ├── build_references.sh.in │ │ ├── dotfiles.sh.in │ │ ├── file_names.sh.in │ │ ├── meson.build │ │ └── missing_backup.sh.in │ ├── lint_pkgbuild.sh.in │ ├── lint_pkgbuild │ │ ├── arch.sh.in │ │ ├── arch_specific.sh.in │ │ ├── backup.sh.in │ │ ├── changelog.sh.in │ │ ├── checkdepends.sh.in │ │ ├── conflicts.sh.in │ │ ├── depends.sh.in │ │ ├── epoch.sh.in │ │ ├── fullpkgver.sh.in │ │ ├── install.sh.in │ │ ├── makedepends.sh.in │ │ ├── meson.build │ │ ├── optdepends.sh.in │ │ ├── options.sh.in │ │ ├── package_function.sh.in │ │ ├── package_function_variable.sh.in │ │ ├── pkgbase.sh.in │ │ ├── pkglist.sh.in │ │ ├── pkgname.sh.in │ │ ├── pkgrel.sh.in │ │ ├── pkgver.sh.in │ │ ├── provides.sh.in │ │ ├── source.sh.in │ │ ├── util.sh.in │ │ └── variable.sh.in │ ├── meson.build │ ├── reproducible.sh.in │ ├── reproducible │ │ ├── meson.build │ │ └── python.sh.in │ ├── source.sh.in │ ├── source │ │ ├── bzr.sh.in │ │ ├── file.sh.in │ │ ├── fossil.sh.in │ │ ├── git.sh.in │ │ ├── hg.sh.in │ │ ├── local.sh.in │ │ ├── meson.build │ │ └── svn.sh.in │ ├── srcinfo.sh.in │ ├── tidy.sh.in │ ├── tidy │ │ ├── docs.sh.in │ │ ├── emptydirs.sh.in │ │ ├── libtool.sh.in │ │ ├── meson.build │ │ ├── purge.sh.in │ │ ├── staticlibs.sh.in │ │ ├── strip.sh.in │ │ └── zipman.sh.in │ ├── util.sh.in │ ├── util │ │ ├── compress.sh.in │ │ ├── config.sh.in │ │ ├── dirsize.sh.in │ │ ├── error.sh.in │ │ ├── meson.build │ │ ├── message.sh.in │ │ ├── option.sh.in │ │ ├── parseopts.sh.in │ │ ├── pkgbuild.sh.in │ │ ├── schema.sh.in │ │ ├── source.sh.in │ │ └── util.sh.in │ └── utils_fixed_path.sh.in ├── makepkg-template.pl.in ├── makepkg.sh.in ├── meson.build ├── pacman-db-upgrade.sh.in ├── pacman-key.sh.in ├── po │ ├── .gitignore │ ├── LINGUAS │ ├── Makevars │ ├── POTFILES.in │ ├── az_AZ.po │ ├── bg.po │ ├── br.po │ ├── ca.po │ ├── cs.po │ ├── da.po │ ├── de.po │ ├── el.po │ ├── en_GB.po │ ├── eo.po │ ├── es.po │ ├── es_419.po │ ├── eu.po │ ├── eu_ES.po │ ├── fi.po │ ├── fr.po │ ├── gl.po │ ├── hi.po │ ├── hu.po │ ├── id.po │ ├── it.po │ ├── ja.po │ ├── ko.po │ ├── lt.po │ ├── meson.build │ ├── nb.po │ ├── nl.po │ ├── pacman-scripts.pot │ ├── pl.po │ ├── pt.po │ ├── pt_BR.po │ ├── remove-potcdate.sin │ ├── ro.po │ ├── ru.po │ ├── sk.po │ ├── sl.po │ ├── sr.po │ ├── sr@latin.po │ ├── sv.po │ ├── tr.po │ ├── uk.po │ ├── zh_CN.po │ └── zh_TW.po ├── repo-add.sh.in └── wrapper.sh.in ├── src ├── common │ ├── ini.c │ ├── ini.h │ ├── meson.build │ ├── util-common.c │ └── util-common.h ├── pacman │ ├── .gitignore │ ├── callback.c │ ├── callback.h │ ├── check.c │ ├── check.h │ ├── conf.c │ ├── conf.h │ ├── database.c │ ├── deptest.c │ ├── files.c │ ├── ini.c │ ├── ini.h │ ├── meson.build │ ├── package.c │ ├── package.h │ ├── pacman-conf.c │ ├── pacman.c │ ├── pacman.h │ ├── po │ │ ├── .gitignore │ │ ├── LINGUAS │ │ ├── Makevars │ │ ├── POTFILES.in │ │ ├── ar.po │ │ ├── ast.po │ │ ├── az_AZ.po │ │ ├── bg.po │ │ ├── br.po │ │ ├── ca.po │ │ ├── cs.po │ │ ├── da.po │ │ ├── de.po │ │ ├── el.po │ │ ├── en_GB.po │ │ ├── eo.po │ │ ├── es.po │ │ ├── es_419.po │ │ ├── eu.po │ │ ├── eu_ES.po │ │ ├── fi.po │ │ ├── fr.po │ │ ├── gl.po │ │ ├── hi.po │ │ ├── hr.po │ │ ├── hu.po │ │ ├── id.po │ │ ├── it.po │ │ ├── ja.po │ │ ├── ko.po │ │ ├── lt.po │ │ ├── meson.build │ │ ├── nb.po │ │ ├── nl.po │ │ ├── pacman.pot │ │ ├── pl.po │ │ ├── pt.po │ │ ├── pt_BR.po │ │ ├── remove-potcdate.sin │ │ ├── ro.po │ │ ├── ru.po │ │ ├── sk.po │ │ ├── sl.po │ │ ├── sr.po │ │ ├── sr@latin.po │ │ ├── sv.po │ │ ├── tr.po │ │ ├── uk.po │ │ ├── zh_CN.po │ │ └── zh_TW.po │ ├── query.c │ ├── remove.c │ ├── sighandler.c │ ├── sighandler.h │ ├── sync.c │ ├── upgrade.c │ ├── util-common.c │ ├── util-common.h │ ├── util.c │ └── util.h └── util │ ├── .gitignore │ ├── meson.build │ ├── testpkg.c │ ├── util-common.c │ ├── util-common.h │ └── vercmp.c ├── test ├── .gitignore ├── pacman │ ├── .gitignore │ ├── ChangeLog │ ├── README │ ├── TODO │ ├── meson.build │ ├── pactest.py │ ├── pmdb.py │ ├── pmenv.py │ ├── pmfile.py │ ├── pmpkg.py │ ├── pmrule.py │ ├── pmserve.py │ ├── pmtest.py │ ├── tap.py │ ├── tests │ │ ├── TESTS │ │ ├── backup001.py │ │ ├── cache-server-basic.py │ │ ├── clean001.py │ │ ├── clean002.py │ │ ├── clean003.py │ │ ├── clean004.py │ │ ├── clean005.py │ │ ├── config001.py │ │ ├── config002.py │ │ ├── database001.py │ │ ├── database002.py │ │ ├── database010.py │ │ ├── database011.py │ │ ├── database012.py │ │ ├── dbonly-extracted-files.py │ │ ├── depconflict100.py │ │ ├── depconflict110.py │ │ ├── depconflict111.py │ │ ├── depconflict120.py │ │ ├── dependency-cycle-fixed-by-upgrade.py │ │ ├── deprange001.py │ │ ├── deptest001.py │ │ ├── dummy001.py │ │ ├── epoch001.py │ │ ├── epoch002.py │ │ ├── epoch003.py │ │ ├── epoch004.py │ │ ├── epoch005.py │ │ ├── epoch010.py │ │ ├── epoch011.py │ │ ├── epoch012.py │ │ ├── file-conflict-with-installed-pkg.py │ │ ├── fileconflict001.py │ │ ├── fileconflict002.py │ │ ├── fileconflict003.py │ │ ├── fileconflict004.py │ │ ├── fileconflict005.py │ │ ├── fileconflict006.py │ │ ├── fileconflict007.py │ │ ├── fileconflict008.py │ │ ├── fileconflict009.py │ │ ├── fileconflict010.py │ │ ├── fileconflict011.py │ │ ├── fileconflict012.py │ │ ├── fileconflict013.py │ │ ├── fileconflict015.py │ │ ├── fileconflict016.py │ │ ├── fileconflict017.py │ │ ├── fileconflict020.py │ │ ├── fileconflict021.py │ │ ├── fileconflict022.py │ │ ├── fileconflict023.py │ │ ├── fileconflict024.py │ │ ├── fileconflict025.py │ │ ├── fileconflict030.py │ │ ├── fileconflict031.py │ │ ├── fileconflict032.py │ │ ├── hook-abortonfail.py │ │ ├── hook-description-reused.py │ │ ├── hook-exec-reused.py │ │ ├── hook-exec-with-arguments.py │ │ ├── hook-file-change-packages.py │ │ ├── hook-file-remove-trigger-match.py │ │ ├── hook-file-upgrade-nomatch.py │ │ ├── hook-invalid-trigger.py │ │ ├── hook-pkg-install-trigger-match.py │ │ ├── hook-pkg-postinstall-trigger-match.py │ │ ├── hook-pkg-remove-trigger-match.py │ │ ├── hook-pkg-upgrade-trigger-match.py │ │ ├── hook-target-list.py │ │ ├── hook-type-reused.py │ │ ├── hook-upgrade-trigger-no-match.py │ │ ├── hook-when-reused.py │ │ ├── ignore001.py │ │ ├── ignore002.py │ │ ├── ignore003.py │ │ ├── ignore004.py │ │ ├── ignore005.py │ │ ├── ignore006.py │ │ ├── ignore007.py │ │ ├── ignore008.py │ │ ├── mode001.py │ │ ├── mode002.py │ │ ├── mode003.py │ │ ├── multiple-architectures01.py │ │ ├── multiple-architectures02.py │ │ ├── noupgrade-inverted.py │ │ ├── overwrite-files-match-negated.py │ │ ├── overwrite-files-match.py │ │ ├── overwrite-files-nonmatch.py │ │ ├── pacman001.py │ │ ├── pacman002.py │ │ ├── pacman003.py │ │ ├── pacman004.py │ │ ├── pacman005.py │ │ ├── pkg-meta-invalid-name-file.py │ │ ├── pkg-meta-invalid-name-local.py │ │ ├── pkg-meta-invalid-name-sync.py │ │ ├── provision001.py │ │ ├── provision002.py │ │ ├── provision003.py │ │ ├── provision004.py │ │ ├── provision010.py │ │ ├── provision011.py │ │ ├── provision012.py │ │ ├── provision020.py │ │ ├── provision021.py │ │ ├── provision022.py │ │ ├── query001.py │ │ ├── query002.py │ │ ├── query003.py │ │ ├── query004.py │ │ ├── query005.py │ │ ├── query006.py │ │ ├── query007.py │ │ ├── query010.py │ │ ├── query011.py │ │ ├── query012.py │ │ ├── querycheck001.py │ │ ├── querycheck002.py │ │ ├── querycheck_fast_file_type.py │ │ ├── reason001.py │ │ ├── remove-assumeinstalled.py │ │ ├── remove-directory-replaced-with-symlink.py │ │ ├── remove-optdepend-of-installed-package.py │ │ ├── remove-recursive-cycle.py │ │ ├── remove001.py │ │ ├── remove002.py │ │ ├── remove010.py │ │ ├── remove011.py │ │ ├── remove012.py │ │ ├── remove020.py │ │ ├── remove021.py │ │ ├── remove030.py │ │ ├── remove031.py │ │ ├── remove040.py │ │ ├── remove041.py │ │ ├── remove042.py │ │ ├── remove043.py │ │ ├── remove044.py │ │ ├── remove045.py │ │ ├── remove047.py │ │ ├── remove049.py │ │ ├── remove050.py │ │ ├── remove051.py │ │ ├── remove052.py │ │ ├── remove060.py │ │ ├── remove070.py │ │ ├── remove071.py │ │ ├── replace-and-upgrade-package.py │ │ ├── replace100.py │ │ ├── replace101.py │ │ ├── replace102.py │ │ ├── replace103.py │ │ ├── replace104.py │ │ ├── replace110.py │ │ ├── scriptlet-signal-handling.py │ │ ├── scriptlet-signal-reset.py │ │ ├── scriptlet001.py │ │ ├── scriptlet002.py │ │ ├── sign001.py │ │ ├── sign002.py │ │ ├── skip-remove-with-glob-chars.py │ │ ├── smoke001.py │ │ ├── smoke002.py │ │ ├── smoke003.py │ │ ├── smoke004.py │ │ ├── symlink-replace-with-dir.py │ │ ├── symlink001.py │ │ ├── symlink002.py │ │ ├── symlink010.py │ │ ├── symlink011.py │ │ ├── symlink012.py │ │ ├── symlink020.py │ │ ├── symlink021.py │ │ ├── sync-failover-404-with-body.py │ │ ├── sync-install-assumeinstalled.py │ │ ├── sync-nodepversion01.py │ │ ├── sync-nodepversion02.py │ │ ├── sync-nodepversion03.py │ │ ├── sync-nodepversion04.py │ │ ├── sync-nodepversion05.py │ │ ├── sync-nodepversion06.py │ │ ├── sync-sysupgrade-print-replaced-packages.py │ │ ├── sync-update-assumeinstalled.py │ │ ├── sync-update-package-removing-required-provides.py │ │ ├── sync001.py │ │ ├── sync002.py │ │ ├── sync003.py │ │ ├── sync009.py │ │ ├── sync010.py │ │ ├── sync011.py │ │ ├── sync012.py │ │ ├── sync020.py │ │ ├── sync021.py │ │ ├── sync022.py │ │ ├── sync023.py │ │ ├── sync024.py │ │ ├── sync030.py │ │ ├── sync031.py │ │ ├── sync040.py │ │ ├── sync041.py │ │ ├── sync042.py │ │ ├── sync043.py │ │ ├── sync044.py │ │ ├── sync045.py │ │ ├── sync046.py │ │ ├── sync050.py │ │ ├── sync051.py │ │ ├── sync052.py │ │ ├── sync100.py │ │ ├── sync1000.py │ │ ├── sync1003.py │ │ ├── sync1004.py │ │ ├── sync1008.py │ │ ├── sync101.py │ │ ├── sync102.py │ │ ├── sync103.py │ │ ├── sync104.py │ │ ├── sync110.py │ │ ├── sync1100.py │ │ ├── sync1101.py │ │ ├── sync1102.py │ │ ├── sync1103.py │ │ ├── sync1104.py │ │ ├── sync1105.py │ │ ├── sync120.py │ │ ├── sync130.py │ │ ├── sync131.py │ │ ├── sync132.py │ │ ├── sync133.py │ │ ├── sync134.py │ │ ├── sync135.py │ │ ├── sync136.py │ │ ├── sync137.py │ │ ├── sync138.py │ │ ├── sync139.py │ │ ├── sync140.py │ │ ├── sync141.py │ │ ├── sync150.py │ │ ├── sync200.py │ │ ├── sync300.py │ │ ├── sync306.py │ │ ├── sync400.py │ │ ├── sync401.py │ │ ├── sync402.py │ │ ├── sync403.py │ │ ├── sync404.py │ │ ├── sync405.py │ │ ├── sync406.py │ │ ├── sync407.py │ │ ├── sync500.py │ │ ├── sync501.py │ │ ├── sync502.py │ │ ├── sync503.py │ │ ├── sync600.py │ │ ├── sync700.py │ │ ├── sync701.py │ │ ├── sync702.py │ │ ├── sync890.py │ │ ├── sync891.py │ │ ├── sync892.py │ │ ├── sync893.py │ │ ├── sync895.py │ │ ├── sync896.py │ │ ├── sync897.py │ │ ├── sync898.py │ │ ├── sync899.py │ │ ├── sync900.py │ │ ├── sync901.py │ │ ├── sync990.py │ │ ├── sync992.py │ │ ├── sync993.py │ │ ├── sync999.py │ │ ├── trans001.py │ │ ├── type001.py │ │ ├── unresolvable001.py │ │ ├── upgrade-download-404.py │ │ ├── upgrade-download-pkg-and-sig-with-filename.py │ │ ├── upgrade-download-pkg-and-sig-without-filename.py │ │ ├── upgrade-download-with-xfercommand.py │ │ ├── upgrade001.py │ │ ├── upgrade002.py │ │ ├── upgrade003.py │ │ ├── upgrade004.py │ │ ├── upgrade005.py │ │ ├── upgrade006.py │ │ ├── upgrade010.py │ │ ├── upgrade011.py │ │ ├── upgrade013.py │ │ ├── upgrade020.py │ │ ├── upgrade021.py │ │ ├── upgrade022.py │ │ ├── upgrade023.py │ │ ├── upgrade024.py │ │ ├── upgrade025.py │ │ ├── upgrade026.py │ │ ├── upgrade027.py │ │ ├── upgrade028.py │ │ ├── upgrade029.py │ │ ├── upgrade030.py │ │ ├── upgrade031.py │ │ ├── upgrade032.py │ │ ├── upgrade040.py │ │ ├── upgrade041.py │ │ ├── upgrade042.py │ │ ├── upgrade043.py │ │ ├── upgrade045.py │ │ ├── upgrade050.py │ │ ├── upgrade051.py │ │ ├── upgrade052.py │ │ ├── upgrade053.py │ │ ├── upgrade054.py │ │ ├── upgrade055.py │ │ ├── upgrade056.py │ │ ├── upgrade057.py │ │ ├── upgrade058.py │ │ ├── upgrade059.py │ │ ├── upgrade060.py │ │ ├── upgrade061.py │ │ ├── upgrade070.py │ │ ├── upgrade071.py │ │ ├── upgrade072.py │ │ ├── upgrade073.py │ │ ├── upgrade074.py │ │ ├── upgrade075.py │ │ ├── upgrade076.py │ │ ├── upgrade077.py │ │ ├── upgrade078.py │ │ ├── upgrade080.py │ │ ├── upgrade081.py │ │ ├── upgrade082.py │ │ ├── upgrade083.py │ │ ├── upgrade084.py │ │ ├── upgrade090.py │ │ ├── upgrade100.py │ │ └── xfercommand001.py │ └── util.py ├── scripts │ ├── makepkg-template-tests │ │ ├── compose-multiple-template-dirs │ │ │ ├── PKGBUILD │ │ │ ├── templates │ │ │ │ ├── build │ │ │ │ │ └── build-1.template │ │ │ │ └── package │ │ │ │ │ └── package-1.template │ │ │ └── testcase-config │ │ ├── invalid-key │ │ │ ├── PKGBUILD │ │ │ └── testcase-config │ │ ├── invalid-template-line-missing-name │ │ │ ├── PKGBUILD │ │ │ └── testcase-config │ │ ├── invalid-template-line-unknown-marker │ │ │ ├── PKGBUILD │ │ │ └── testcase-config │ │ ├── keep-old-version │ │ │ ├── PKGBUILD │ │ │ ├── templates │ │ │ │ ├── perl-bla-1.2.template │ │ │ │ ├── perl-module-1.0.template │ │ │ │ └── perl-module-1.1.template │ │ │ └── testcase-config │ │ ├── last-template-dir-has-precedece │ │ │ ├── PKGBUILD │ │ │ ├── PKGBUILD.expanded │ │ │ ├── templates │ │ │ │ ├── first │ │ │ │ │ └── perl-module-1.0.template │ │ │ │ └── last │ │ │ │ │ └── perl-module-1.0.template │ │ │ └── testcase-config │ │ ├── missing-template-file │ │ │ ├── PKGBUILD │ │ │ └── testcase-config │ │ ├── missing-template-symlink │ │ │ ├── PKGBUILD │ │ │ ├── templates │ │ │ │ └── perl-module-1.0.template │ │ │ └── testcase-config │ │ ├── name-charset-invalid │ │ │ ├── PKGBUILD │ │ │ └── testcase-config │ │ ├── name-charset-valid │ │ │ ├── PKGBUILD │ │ │ ├── templates │ │ │ │ └── foo@-_.+a-1.template │ │ │ └── testcase-config │ │ ├── template-without-version │ │ │ ├── PKGBUILD │ │ │ ├── templates │ │ │ │ └── template-without_version.template │ │ │ └── testcase-config │ │ ├── testcase-config-template │ │ └── update-version-with-newest-option │ │ │ ├── PKGBUILD │ │ │ ├── templates │ │ │ ├── perl-bla-1.2.template │ │ │ ├── perl-module-1.0.template │ │ │ └── perl-module-1.1.template │ │ │ └── testcase-config │ ├── makepkg-template_test.sh │ ├── meson.build │ ├── pacman-db-upgrade-v9.py │ └── parseopts_test.sh ├── tap.sh └── util │ ├── meson.build │ └── vercmptest.sh └── valgrind.supp /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig configuration for pacman 2 | # http://EditorConfig.org 3 | 4 | # Top-most EditorConfig file 5 | root = true 6 | 7 | # Unix-style newlines without trailing whitespaces, but with a newline 8 | # ending every file, utf-8 charset, set indent to tabs 9 | [*] 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | charset = utf-8 14 | indent_style = tab 15 | 16 | [{NEWS,HACKING}] 17 | indent_style = space 18 | 19 | [meson.build] 20 | indent_style = space 21 | indent_size = 2 22 | 23 | [*.py] 24 | indent_style = space 25 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.py diff=python 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.o 3 | pacman-*.tar.gz 4 | -------------------------------------------------------------------------------- /.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | 4 | [o:toofishes:p:archlinux-pacman:r:libalpm-pot] 5 | file_filter = lib/libalpm/po/.po 6 | source_file = lib/libalpm/po/libalpm.pot 7 | source_lang = en 8 | 9 | [o:toofishes:p:archlinux-pacman:r:pacman-pot] 10 | file_filter = src/pacman/po/.po 11 | source_file = src/pacman/po/pacman.pot 12 | source_lang = en 13 | 14 | [o:toofishes:p:archlinux-pacman:r:pacman-scripts-pot] 15 | file_filter = scripts/po/.po 16 | source_file = scripts/po/pacman-scripts.pot 17 | source_lang = en 18 | 19 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Use `git shortlog -s` for a list of contributors. 2 | -------------------------------------------------------------------------------- /build-aux/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !ltmain-asneeded.patch 3 | -------------------------------------------------------------------------------- /build-aux/cat-test-file: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | import sys 4 | 5 | for path in sys.argv[1:]: 6 | print('# -----------------------------------') 7 | print('# ' + path + ':') 8 | print('# -----------------------------------') 9 | with open(path, 'r') as f: 10 | for line in f: 11 | print('# ' + line, end='') 12 | -------------------------------------------------------------------------------- /build-aux/meson-make-symlink.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -eu 3 | 4 | # this is needed mostly because $DESTDIR is provided as a variable, 5 | # and we need to create the target directory... 6 | 7 | mkdir -vp "$(dirname "${DESTDIR:-}$2")" 8 | 9 | rm -f "${DESTDIR:-}$2" 10 | ln -vs "$1" "${DESTDIR:-}$2" 11 | -------------------------------------------------------------------------------- /build-aux/print-failed-test-output: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import json 4 | import sys 5 | 6 | def print_result(result): 7 | print('==================================================================') 8 | print(result['name']) 9 | print(' '.join(result['command'])) 10 | print('==================================================================') 11 | print(result['stdout']) 12 | 13 | with open(sys.argv[1], 'r') as f: 14 | for line in f: 15 | result = json.loads(line) 16 | if result['result'] == 'FAIL': 17 | print_result(result) 18 | -------------------------------------------------------------------------------- /build-aux/script-wrapper.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script serves as a trampoline for running scripts which depend on 4 | # libmakepkg with the libmakepkg within the build tree. 5 | 6 | MAKEPKG_LIBRARY=@BUILDDIR@/libmakepkg exec @BASH@ -$- @REAL_PROGPATH@ "$@" 7 | -------------------------------------------------------------------------------- /build-aux/update-copyright: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | OLD=$1 4 | NEW=$2 5 | 6 | for file in $(git grep -l "Copyright .* Pacman Development" | grep -v "\.po"); do \ 7 | sed -i -e "/Copyright (/s/-${OLD}/-${NEW}/" -e "/Copyright (/s/ ${OLD}/ ${OLD}-${NEW}/" "$file" 8 | done 9 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | *.[1-8] 2 | asciidoc-manpage.css 3 | asciidoc.css 4 | asciidoc.js 5 | *.html 6 | *.xml 7 | man3 8 | website.tar.gz 9 | Doxyfile 10 | -------------------------------------------------------------------------------- /doc/asciidoc-override.css: -------------------------------------------------------------------------------- 1 | table th, table td { 2 | padding: 0.2em 1em; 3 | } 4 | 5 | table td p.table { 6 | margin: 0; 7 | } 8 | -------------------------------------------------------------------------------- /doc/testpkg.8.asciidoc: -------------------------------------------------------------------------------- 1 | testpkg(8) 2 | ========== 3 | 4 | Name 5 | ---- 6 | testpkg - test a pacman package for validity 7 | 8 | Synopsis 9 | -------- 10 | 'testpkg' 11 | 12 | Description 13 | ----------- 14 | 'testpkg' is a script used to make sure that a pacman package is valid. 15 | 16 | See Also 17 | -------- 18 | linkman:pacman[8] 19 | 20 | include::footer.asciidoc[] 21 | -------------------------------------------------------------------------------- /etc/.gitignore: -------------------------------------------------------------------------------- 1 | makepkg.conf 2 | pacman.conf 3 | -------------------------------------------------------------------------------- /etc/makepkg.conf.d/fortran.conf.in: -------------------------------------------------------------------------------- 1 | #!/hint/bash 2 | # 3 | # @sysconfdir@/makepkg.conf.d/fortran.conf 4 | # 5 | 6 | ######################################################################### 7 | # FORTRAN LANGUAGE SUPPORT 8 | ######################################################################### 9 | 10 | # Flags used for the Fortran compiler, similar in spirit to CFLAGS. Read 11 | # linkman:gfortran[1] for more details on the available flags. 12 | #FFLAGS="-O2 -pipe" 13 | #FCFLAGS="$FFLAGS" 14 | 15 | # Additional compiler flags appended to `FFLAGS` and `FCFLAGS` for use in debugging. Usually 16 | # this would include: ``-g''. Read linkman:gfortran[1] for more details on the wide 17 | # variety of compiler flags available. 18 | #DEBUG_FFLAGS="-g" 19 | -------------------------------------------------------------------------------- /etc/makepkg.conf.d/rust.conf.in: -------------------------------------------------------------------------------- 1 | #!/hint/bash 2 | # 3 | # @sysconfdir@/makepkg.conf.d/rust.conf 4 | # 5 | 6 | ######################################################################### 7 | # RUST LANGUAGE SUPPORT 8 | ######################################################################### 9 | 10 | # Flags used for the Rust compiler, similar in spirit to CFLAGS. Read 11 | # linkman:rustc[1] for more details on the available flags. 12 | #RUSTFLAGS="-C opt-level=3" 13 | 14 | # Additional compiler flags appended to `RUSTFLAGS` for use in debugging. 15 | # Usually this would include: ``-C debuginfo=2''. Read linkman:rustc[1] for 16 | # more details on the available flags. 17 | #DEBUG_RUSTFLAGS="-C debuginfo=2" 18 | -------------------------------------------------------------------------------- /lib/libalpm/.gitignore: -------------------------------------------------------------------------------- 1 | .deps 2 | .libs 3 | *.lo 4 | *.la 5 | libalpm.pc 6 | -------------------------------------------------------------------------------- /lib/libalpm/meson.build: -------------------------------------------------------------------------------- 1 | libalpm_sources = files(''' 2 | add.h add.c 3 | alpm.h alpm.c 4 | alpm_list.h alpm_list.c 5 | backup.h backup.c 6 | base64.h base64.c 7 | be_local.c 8 | be_package.c 9 | be_sync.c 10 | conflict.h conflict.c 11 | db.h db.c 12 | deps.h deps.c 13 | diskspace.h diskspace.c 14 | dload.h dload.c 15 | error.c 16 | filelist.h filelist.c 17 | graph.h graph.c 18 | group.h group.c 19 | handle.h handle.c 20 | hook.h hook.c 21 | libarchive-compat.h 22 | log.h log.c 23 | package.h package.c 24 | pkghash.h pkghash.c 25 | rawstr.c 26 | remove.h remove.c 27 | signing.c signing.h 28 | sync.h sync.c 29 | trans.h trans.c 30 | util.h util.c 31 | version.c 32 | '''.split()) 33 | -------------------------------------------------------------------------------- /lib/libalpm/po/.gitignore: -------------------------------------------------------------------------------- 1 | *.gmo 2 | boldquot.sed 3 | en@boldquot.header 4 | en@quot.header 5 | insert-header.sin 6 | Makefile.in.in 7 | Makevars.template 8 | POTFILES 9 | quot.sed 10 | Rules-quot 11 | remove-potcdate.sed 12 | stamp-po 13 | -------------------------------------------------------------------------------- /lib/libalpm/po/LINGUAS: -------------------------------------------------------------------------------- 1 | # Set of available languages. 2 | ar 3 | ast 4 | az_AZ 5 | bg 6 | br 7 | ca 8 | cs 9 | da 10 | de 11 | el 12 | en_GB 13 | eo 14 | es 15 | es_419 16 | eu 17 | eu_ES 18 | fi 19 | fr 20 | gl 21 | hi 22 | hr 23 | hu 24 | id 25 | it 26 | ja 27 | kk 28 | ko 29 | lt 30 | nb 31 | nl 32 | pl 33 | pt 34 | pt_BR 35 | ro 36 | ru 37 | sk 38 | sl 39 | sr 40 | sr@latin 41 | sv 42 | tr 43 | uk 44 | zh_CN 45 | zh_TW 46 | -------------------------------------------------------------------------------- /lib/libalpm/po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext( 2 | 'libalpm', 3 | args : [ 4 | '--directory=@0@'.format(meson.current_source_dir()), 5 | '--msgid-bugs-address=http://bugs.archlinux.org/index.php?project=3', 6 | '--copyright-holder="Pacman Development Team "', 7 | '--language', 'c', 8 | 9 | '--keyword=_', 10 | '--flag=_:1:c-format', 11 | 12 | '--keyword=_n:1,2', 13 | '--flag=_n:1:c-format', 14 | '--flag=_n:2:c-format', 15 | ]) 16 | -------------------------------------------------------------------------------- /lib/libalpm/po/remove-potcdate.sin: -------------------------------------------------------------------------------- 1 | # Sed script that remove the POT-Creation-Date line in the header entry 2 | # from a POT file. 3 | # 4 | # The distinction between the first and the following occurrences of the 5 | # pattern is achieved by looking at the hold space. 6 | /^"POT-Creation-Date: .*"$/{ 7 | x 8 | # Test if the hold space is empty. 9 | s/P/P/ 10 | ta 11 | # Yes it was empty. First occurrence. Remove the line. 12 | g 13 | d 14 | bb 15 | :a 16 | # The hold space was nonempty. Following occurrences. Do nothing. 17 | x 18 | :b 19 | } 20 | -------------------------------------------------------------------------------- /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | libmakepkg.pc 2 | makepkg 3 | makepkg-template 4 | pacman-db-upgrade 5 | pacman-key 6 | repo-add 7 | repo-elephant 8 | repo-remove 9 | *-wrapper 10 | -------------------------------------------------------------------------------- /scripts/completion/.gitignore: -------------------------------------------------------------------------------- 1 | bash_completion 2 | zsh_completion 3 | -------------------------------------------------------------------------------- /scripts/libmakepkg.pc.in: -------------------------------------------------------------------------------- 1 | libmakepkgdir=@libmakepkgdir@ 2 | 3 | Name: libmakepkg 4 | Description: Arch Linux package build utility 5 | URL: https://archlinux.org/pacman/ 6 | Version: @PACKAGE_VERSION@ 7 | -------------------------------------------------------------------------------- /scripts/libmakepkg/.gitignore: -------------------------------------------------------------------------------- 1 | *.sh 2 | -------------------------------------------------------------------------------- /scripts/libmakepkg/autodep/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'autodep' 2 | 3 | sources = [ 4 | 'library_depends.sh.in', 5 | 'library_provides.sh.in', 6 | ] 7 | 8 | foreach src : sources 9 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 10 | 11 | custom_target( 12 | libmakepkg_module + '_' + src.underscorify(), 13 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 14 | input : src, 15 | output : '@BASENAME@', 16 | install : true, 17 | install_dir : output_dir) 18 | endforeach 19 | -------------------------------------------------------------------------------- /scripts/libmakepkg/buildenv/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'buildenv' 2 | 3 | sources = [ 4 | 'buildflags.sh.in', 5 | 'compiler.sh.in', 6 | 'debugflags.sh.in', 7 | 'lto.sh.in', 8 | 'makeflags.sh.in', 9 | 'rust.sh.in', 10 | ] 11 | 12 | foreach src : sources 13 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 14 | 15 | custom_target( 16 | libmakepkg_module + '_' + src.underscorify(), 17 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 18 | input : src, 19 | output : '@BASENAME@', 20 | install : true, 21 | install_dir : output_dir) 22 | endforeach 23 | -------------------------------------------------------------------------------- /scripts/libmakepkg/executable/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'executable' 2 | 3 | sources = [ 4 | 'ccache.sh.in', 5 | 'checksum.sh.in', 6 | 'distcc.sh.in', 7 | 'gpg.sh.in', 8 | 'gzip.sh.in', 9 | 'pacman.sh.in', 10 | 'strip.sh.in', 11 | 'vcs.sh.in', 12 | ] 13 | 14 | foreach src : sources 15 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 16 | 17 | custom_target( 18 | libmakepkg_module + '_' + src.underscorify(), 19 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 20 | input : src, 21 | output : '@BASENAME@', 22 | install : true, 23 | install_dir : output_dir) 24 | endforeach 25 | -------------------------------------------------------------------------------- /scripts/libmakepkg/integrity/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'integrity' 2 | 3 | sources = [ 4 | 'generate_checksum.sh.in', 5 | 'generate_signature.sh.in', 6 | 'verify_checksum.sh.in', 7 | 'verify_signature.sh.in', 8 | ] 9 | 10 | foreach src : sources 11 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 12 | 13 | custom_target( 14 | libmakepkg_module + '_' + src.underscorify(), 15 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 16 | input : src, 17 | output : '@BASENAME@', 18 | install : true, 19 | install_dir : output_dir) 20 | endforeach 21 | -------------------------------------------------------------------------------- /scripts/libmakepkg/lint_config/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'lint_config' 2 | 3 | sources = [ 4 | 'ext.sh.in', 5 | 'paths.sh.in', 6 | 'source_date_epoch.sh.in', 7 | 'variable.sh.in', 8 | ] 9 | 10 | foreach src : sources 11 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 12 | 13 | custom_target( 14 | libmakepkg_module + '_' + src.underscorify(), 15 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 16 | input : src, 17 | output : '@BASENAME@', 18 | install : true, 19 | install_dir : output_dir) 20 | endforeach 21 | -------------------------------------------------------------------------------- /scripts/libmakepkg/lint_package/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'lint_package' 2 | 3 | sources = [ 4 | 'build_references.sh.in', 5 | 'dotfiles.sh.in', 6 | 'file_names.sh.in', 7 | 'missing_backup.sh.in', 8 | ] 9 | 10 | foreach src : sources 11 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 12 | 13 | custom_target( 14 | libmakepkg_module + '_' + src.underscorify(), 15 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 16 | input : src, 17 | output : '@BASENAME@', 18 | install : true, 19 | install_dir : output_dir) 20 | endforeach 21 | -------------------------------------------------------------------------------- /scripts/libmakepkg/reproducible/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'reproducible' 2 | 3 | sources = [ 4 | 'python.sh.in', 5 | ] 6 | 7 | foreach src : sources 8 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 9 | 10 | custom_target( 11 | libmakepkg_module + '_' + src.underscorify(), 12 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 13 | input : src, 14 | output : '@BASENAME@', 15 | install : true, 16 | install_dir : output_dir) 17 | endforeach 18 | -------------------------------------------------------------------------------- /scripts/libmakepkg/source/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'source' 2 | 3 | sources = [ 4 | 'bzr.sh.in', 5 | 'file.sh.in', 6 | 'fossil.sh.in', 7 | 'git.sh.in', 8 | 'hg.sh.in', 9 | 'local.sh.in', 10 | 'svn.sh.in', 11 | ] 12 | 13 | foreach src : sources 14 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 15 | 16 | custom_target( 17 | libmakepkg_module + '_' + src.underscorify(), 18 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 19 | input : src, 20 | output : '@BASENAME@', 21 | install : true, 22 | install_dir : output_dir) 23 | endforeach 24 | -------------------------------------------------------------------------------- /scripts/libmakepkg/tidy/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'tidy' 2 | 3 | sources = [ 4 | 'docs.sh.in', 5 | 'emptydirs.sh.in', 6 | 'libtool.sh.in', 7 | 'purge.sh.in', 8 | 'staticlibs.sh.in', 9 | 'strip.sh.in', 10 | 'zipman.sh.in', 11 | ] 12 | 13 | foreach src : sources 14 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 15 | 16 | custom_target( 17 | libmakepkg_module + '_' + src.underscorify(), 18 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 19 | input : src, 20 | output : '@BASENAME@', 21 | install : true, 22 | install_dir : output_dir) 23 | endforeach 24 | -------------------------------------------------------------------------------- /scripts/libmakepkg/util/meson.build: -------------------------------------------------------------------------------- 1 | libmakepkg_module = 'util' 2 | 3 | sources = [ 4 | 'compress.sh.in', 5 | 'config.sh.in', 6 | 'dirsize.sh.in', 7 | 'error.sh.in', 8 | 'message.sh.in', 9 | 'option.sh.in', 10 | 'parseopts.sh.in', 11 | 'pkgbuild.sh.in', 12 | 'schema.sh.in', 13 | 'source.sh.in', 14 | 'util.sh.in', 15 | ] 16 | 17 | foreach src : sources 18 | output_dir = join_paths(get_option('datadir'), 'makepkg', libmakepkg_module) 19 | 20 | custom_target( 21 | libmakepkg_module + '_' + src.underscorify(), 22 | command : [ SCRIPT_EDITOR, '@INPUT@', '@OUTPUT@' ], 23 | input : src, 24 | output : '@BASENAME@', 25 | install : true, 26 | install_dir : output_dir) 27 | endforeach 28 | -------------------------------------------------------------------------------- /scripts/po/.gitignore: -------------------------------------------------------------------------------- 1 | *.gmo 2 | boldquot.sed 3 | en@boldquot.header 4 | en@quot.header 5 | insert-header.sin 6 | Makefile.in.in 7 | Makevars.template 8 | POTFILES 9 | quot.sed 10 | Rules-quot 11 | remove-potcdate.sed 12 | stamp-po 13 | -------------------------------------------------------------------------------- /scripts/po/LINGUAS: -------------------------------------------------------------------------------- 1 | # Set of available languages. 2 | az_AZ 3 | bg 4 | br 5 | ca 6 | cs 7 | da 8 | de 9 | el 10 | en_GB 11 | eo 12 | es 13 | es_419 14 | eu 15 | eu_ES 16 | fi 17 | fr 18 | gl 19 | hi 20 | hu 21 | id 22 | it 23 | ja 24 | ko 25 | lt 26 | nb 27 | nl 28 | pl 29 | pt 30 | pt_BR 31 | ro 32 | ru 33 | sk 34 | sl 35 | sr 36 | sr@latin 37 | sv 38 | tr 39 | uk 40 | zh_CN 41 | zh_TW 42 | -------------------------------------------------------------------------------- /scripts/po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext( 2 | 'pacman-scripts', 3 | args : [ 4 | '--directory=@0@'.format(meson.current_source_dir()), 5 | '--msgid-bugs-address=http://bugs.archlinux.org/index.php?project=3', 6 | '--copyright-holder="Pacman Development Team "', 7 | '--language', 'shell', 8 | 9 | '--keyword=_', 10 | '--flag=_:1:c-format', 11 | 12 | '--keyword=_n:1,2', 13 | '--flag=_n:1:c-format', 14 | '--flag=_n:2:c-format', 15 | ]) 16 | -------------------------------------------------------------------------------- /scripts/po/remove-potcdate.sin: -------------------------------------------------------------------------------- 1 | # Sed script that remove the POT-Creation-Date line in the header entry 2 | # from a POT file. 3 | # 4 | # The distinction between the first and the following occurrences of the 5 | # pattern is achieved by looking at the hold space. 6 | /^"POT-Creation-Date: .*"$/{ 7 | x 8 | # Test if the hold space is empty. 9 | s/P/P/ 10 | ta 11 | # Yes it was empty. First occurrence. Remove the line. 12 | g 13 | d 14 | bb 15 | :a 16 | # The hold space was nonempty. Following occurrences. Do nothing. 17 | x 18 | :b 19 | } 20 | -------------------------------------------------------------------------------- /src/common/meson.build: -------------------------------------------------------------------------------- 1 | libcommon_sources = files(''' 2 | ini.c ini.h 3 | util-common.c util-common.h 4 | '''.split()) 5 | -------------------------------------------------------------------------------- /src/pacman/.gitignore: -------------------------------------------------------------------------------- 1 | .deps 2 | .libs 3 | pacman 4 | pacman.exe 5 | pacman-conf 6 | pacman-conf.exe -------------------------------------------------------------------------------- /src/pacman/ini.c: -------------------------------------------------------------------------------- 1 | ../common/ini.c -------------------------------------------------------------------------------- /src/pacman/ini.h: -------------------------------------------------------------------------------- 1 | ../common/ini.h -------------------------------------------------------------------------------- /src/pacman/meson.build: -------------------------------------------------------------------------------- 1 | pacman_sources = files(''' 2 | check.h check.c 3 | conf.h conf.c 4 | database.c 5 | deptest.c 6 | files.c 7 | package.h package.c 8 | pacman.h pacman.c 9 | query.c 10 | remove.c 11 | sighandler.h sighandler.c 12 | sync.c 13 | callback.h callback.c 14 | upgrade.c 15 | util.h util.c 16 | '''.split()) 17 | 18 | pacman_conf_sources = files(''' 19 | pacman-conf.c 20 | util.h util.c 21 | callback.h callback.c 22 | conf.h conf.c 23 | '''.split()) 24 | -------------------------------------------------------------------------------- /src/pacman/po/.gitignore: -------------------------------------------------------------------------------- 1 | *.gmo 2 | boldquot.sed 3 | en@boldquot.header 4 | en@quot.header 5 | insert-header.sin 6 | Makefile.in.in 7 | Makevars.template 8 | POTFILES 9 | quot.sed 10 | Rules-quot 11 | remove-potcdate.sed 12 | stamp-po 13 | -------------------------------------------------------------------------------- /src/pacman/po/LINGUAS: -------------------------------------------------------------------------------- 1 | # Set of available languages. 2 | ar 3 | ast 4 | az_AZ 5 | bg 6 | br 7 | ca 8 | cs 9 | da 10 | de 11 | el 12 | en_GB 13 | eo 14 | es 15 | es_419 16 | eu 17 | eu_ES 18 | fi 19 | fr 20 | gl 21 | hi 22 | hr 23 | hu 24 | id 25 | it 26 | ja 27 | ko 28 | lt 29 | nb 30 | nl 31 | pl 32 | pt 33 | pt_BR 34 | ro 35 | ru 36 | sk 37 | sl 38 | sr 39 | sr@latin 40 | sv 41 | tr 42 | uk 43 | zh_CN 44 | zh_TW 45 | -------------------------------------------------------------------------------- /src/pacman/po/POTFILES.in: -------------------------------------------------------------------------------- 1 | # List of source files with translatable strings 2 | # If a file is commented out, it is because it shouldn't have any 3 | # translatable strings 4 | 5 | # pacman frontend source files 6 | src/pacman/callback.c 7 | src/pacman/check.c 8 | src/pacman/conf.c 9 | src/pacman/database.c 10 | src/pacman/deptest.c 11 | src/pacman/files.c 12 | #src/pacman/ini.c 13 | src/pacman/package.c 14 | src/pacman/pacman.c 15 | src/pacman/query.c 16 | src/pacman/remove.c 17 | src/pacman/sighandler.c 18 | src/pacman/sync.c 19 | src/pacman/upgrade.c 20 | src/pacman/util.c 21 | #src/pacman/util-common.c 22 | 23 | # utililty files 24 | src/pacman/pacman-conf.c 25 | src/util/testpkg.c 26 | src/util/vercmp.c -------------------------------------------------------------------------------- /src/pacman/po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext( 2 | 'pacman', 3 | args : [ 4 | '--directory=@0@'.format(meson.current_source_dir()), 5 | '--msgid-bugs-address=http://bugs.archlinux.org/index.php?project=3', 6 | '--copyright-holder="Pacman Development Team "', 7 | '--language', 'c', 8 | 9 | '--keyword=_', 10 | '--flag=_:1:c-format', 11 | 12 | '--keyword=_n:1,2', 13 | '--flag=_n:1:c-format', 14 | '--flag=_n:2:c-format', 15 | ]) 16 | -------------------------------------------------------------------------------- /src/pacman/po/remove-potcdate.sin: -------------------------------------------------------------------------------- 1 | # Sed script that remove the POT-Creation-Date line in the header entry 2 | # from a POT file. 3 | # 4 | # The distinction between the first and the following occurrences of the 5 | # pattern is achieved by looking at the hold space. 6 | /^"POT-Creation-Date: .*"$/{ 7 | x 8 | # Test if the hold space is empty. 9 | s/P/P/ 10 | ta 11 | # Yes it was empty. First occurrence. Remove the line. 12 | g 13 | d 14 | bb 15 | :a 16 | # The hold space was nonempty. Following occurrences. Do nothing. 17 | x 18 | :b 19 | } 20 | -------------------------------------------------------------------------------- /src/pacman/util-common.c: -------------------------------------------------------------------------------- 1 | ../common/util-common.c -------------------------------------------------------------------------------- /src/pacman/util-common.h: -------------------------------------------------------------------------------- 1 | ../common/util-common.h -------------------------------------------------------------------------------- /src/util/.gitignore: -------------------------------------------------------------------------------- 1 | .deps 2 | .libs 3 | testpkg 4 | testpkg.exe 5 | vercmp 6 | vercmp.exe 7 | -------------------------------------------------------------------------------- /src/util/meson.build: -------------------------------------------------------------------------------- 1 | testpkg_sources = files('testpkg.c') 2 | vercmp_sources = files('vercmp.c') 3 | -------------------------------------------------------------------------------- /src/util/util-common.c: -------------------------------------------------------------------------------- 1 | ../common/util-common.c -------------------------------------------------------------------------------- /src/util/util-common.h: -------------------------------------------------------------------------------- 1 | ../common/util-common.h -------------------------------------------------------------------------------- /test/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | *.trs 3 | -------------------------------------------------------------------------------- /test/pacman/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | -------------------------------------------------------------------------------- /test/pacman/TODO: -------------------------------------------------------------------------------- 1 | TODO 2 | ==== 3 | 4 | Features: 5 | - implement script support (makekpg, repo-add, etc) 6 | 7 | Tests: 8 | - add test cases for pacman -D and pacman -T 9 | -------------------------------------------------------------------------------- /test/pacman/tests/backup001.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file in 'backup' (local modified, new unchanged)" 2 | 3 | self.filesystem = ["etc/dummy.conf.pacnew"] 4 | 5 | lp = pmpkg("dummy") 6 | lp.files = ["etc/dummy.conf*"] 7 | lp.backup = ["etc/dummy.conf"] 8 | self.addpkg2db("local", lp) 9 | 10 | p = pmpkg("dummy", "1.0-2") 11 | p.files = ["etc/dummy.conf"] 12 | p.backup = ["etc/dummy.conf"] 13 | self.addpkg(p) 14 | 15 | self.args = "-U %s" % p.filename() 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_VERSION=dummy|1.0-2") 19 | self.addrule("FILE_PACNEW=etc/dummy.conf") 20 | self.addrule("!FILE_MODIFIED=etc/dummy.conf") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/clean002.py: -------------------------------------------------------------------------------- 1 | self.description = "CleanMethod = KeepCurrent" 2 | 3 | sp = pmpkg("dummy", "2.0-1") 4 | self.addpkg2db("sync", sp) 5 | 6 | sp = pmpkg("bar", "2.0-1") 7 | self.addpkg2db("sync", sp) 8 | 9 | sp = pmpkg("baz", "2.0-1") 10 | self.addpkg2db("sync", sp) 11 | 12 | lp = pmpkg("dummy", "1.0-1") 13 | self.addpkg2db("local", lp) 14 | 15 | lp = pmpkg("bar", "2.0-1") 16 | self.addpkg2db("local", lp) 17 | 18 | self.args = "-Sc" 19 | self.option['CleanMethod'] = ['KeepCurrent'] 20 | self.createlocalpkgs = True 21 | 22 | self.addrule("PACMAN_RETCODE=0") 23 | self.addrule("CACHE_EXISTS=dummy|2.0-1") 24 | self.addrule("!CACHE_EXISTS=dummy|1.0-1") 25 | self.addrule("CACHE_EXISTS=bar|2.0-1") 26 | self.addrule("CACHE_EXISTS=baz|2.0-1") 27 | -------------------------------------------------------------------------------- /test/pacman/tests/clean003.py: -------------------------------------------------------------------------------- 1 | self.description = "CleanMethod = KeepInstalled with IgnorePkg (FS#22653)" 2 | 3 | sp = pmpkg("dummy", "2.0-1") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("dummy", "1.0-1") 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Sc" 10 | self.option['CleanMethod'] = ['KeepInstalled'] 11 | self.option['IgnorePkg'] = ['dummy'] 12 | self.createlocalpkgs = True 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("!CACHE_EXISTS=dummy|2.0-1") 16 | self.addrule("CACHE_EXISTS=dummy|1.0-1") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/config001.py: -------------------------------------------------------------------------------- 1 | self.description = "Quick check for Include being parsed in [options]" 2 | 3 | self.option['Include'] = ['/dev/null'] 4 | 5 | p = pmpkg("foobar") 6 | p.files = ["bin/foobar"] 7 | p.desc = "test description" 8 | p.groups = ["foo"] 9 | p.url = "http://www.archlinux.org" 10 | p.license = "GPL2" 11 | p.arch = "i686" 12 | 13 | self.addpkg2db("local", p) 14 | 15 | self.args = "-Qi %s" % p.name 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/config002.py: -------------------------------------------------------------------------------- 1 | self.description = "Quick check for Include being parsed in [db]" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("sync", sp) 7 | 8 | self.db['sync'].option['Include'] = ['/dev/null'] 9 | 10 | self.args = "-Si %s" % sp.name 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/database001.py: -------------------------------------------------------------------------------- 1 | self.description = "-D --asdeps" 2 | 3 | lp = pmpkg("pkg") 4 | lp.reason = 0 5 | self.addpkg2db("local", lp) 6 | 7 | self.args = "-D pkg --asdeps" 8 | 9 | self.addrule("PACMAN_RETCODE=0") 10 | self.addrule("PKG_EXIST=pkg") 11 | self.addrule("PKG_REASON=pkg|1") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/database002.py: -------------------------------------------------------------------------------- 1 | self.description = "-D --asexplicit" 2 | 3 | lp = pmpkg("pkg") 4 | lp.reason = 1 5 | self.addpkg2db("local", lp) 6 | 7 | self.args = "-D pkg --asexplicit" 8 | 9 | self.addrule("PACMAN_RETCODE=0") 10 | self.addrule("PKG_EXIST=pkg") 11 | self.addrule("PKG_REASON=pkg|0") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/database010.py: -------------------------------------------------------------------------------- 1 | # TODO: these are labeled as database packages because they sure seem to me to 2 | # be database-type operations. In their current implementation however they are 3 | # calling -U and -R rather than -D. Obviously the tests will need to be updated 4 | # if this changes. 5 | self.description = "Remove a package with --dbonly, no files touched" 6 | 7 | p = pmpkg("dummy") 8 | p.files = ["bin/dummy", 9 | "usr/man/man1/dummy.1"] 10 | self.addpkg2db("local", p) 11 | 12 | self.args = "-R --dbonly %s" % p.name 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("!PKG_EXIST=dummy") 16 | for f in p.files: 17 | self.addrule("FILE_EXIST=%s" % f) 18 | -------------------------------------------------------------------------------- /test/pacman/tests/database011.py: -------------------------------------------------------------------------------- 1 | # TODO: these are labeled as database packages because they sure seem to me to 2 | # be database-type operations. In their current implementation however they are 3 | # calling -U and -R rather than -D. Obviously the tests will need to be updated 4 | # if this changes. 5 | self.description = "Install a package with --dbonly, no files touched" 6 | 7 | p = pmpkg("dummy") 8 | p.files = ["bin/dummy", 9 | "usr/man/man1/dummy.1"] 10 | self.addpkg(p) 11 | 12 | self.args = "-U --dbonly %s" % p.filename() 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("PKG_EXIST=dummy") 16 | for f in p.files: 17 | self.addrule("!FILE_EXIST=%s" % f) 18 | -------------------------------------------------------------------------------- /test/pacman/tests/dbonly-extracted-files.py: -------------------------------------------------------------------------------- 1 | import util 2 | import os.path 3 | 4 | self.description = "Install a package with dbonly" 5 | 6 | sp = pmpkg("foobar", "1-1") 7 | sp.files = ["bin/foobar"] 8 | sp.install['post_install'] = "echo foobar" 9 | self.addpkg2db("sync", sp) 10 | 11 | self.args = "-S --dbonly %s" % sp.name 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=foobar") 15 | self.addrule("FILE_EXIST=%s" % os.path.join(util.PM_DBPATH, "local/foobar-1-1/install")) 16 | self.addrule("!FILE_EXIST=bin/foobar") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/depconflict100.py: -------------------------------------------------------------------------------- 1 | self.description = "a package conflicts with itself" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.conflicts = ["pkg1"] 5 | self.addpkg2db("sync", sp1); 6 | 7 | sp2 = pmpkg("pkg2", "1.0-2") 8 | self.addpkg2db("sync", sp2) 9 | 10 | self.args = "-S %s" % " ".join([p.name for p in (sp1, sp2)]) 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("PKG_EXIST=pkg1") 14 | self.addrule("PKG_EXIST=pkg2") 15 | self.addrule("PKG_VERSION=pkg2|1.0-2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/depconflict110.py: -------------------------------------------------------------------------------- 1 | self.description = "conflict with version (conflict)" 2 | 3 | p = pmpkg("pkg1") 4 | p.conflicts = ["pkg2<=1.0-2"] 5 | self.addpkg(p); 6 | 7 | lp = pmpkg("pkg2", "1.0-1") 8 | self.addpkg2db("local", lp) 9 | 10 | self.args = "-U %s --ask=4" % p.filename() 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_EXIST=pkg1") 13 | self.addrule("!PKG_EXIST=pkg2") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/depconflict111.py: -------------------------------------------------------------------------------- 1 | self.description = "conflict with version (no conflict)" 2 | 3 | p = pmpkg("pkg1") 4 | p.conflicts = ["pkg2=1.0-2"] 5 | self.addpkg(p); 6 | 7 | lp = pmpkg("pkg2", "1.0-1") 8 | self.addpkg2db("local", lp) 9 | 10 | self.args = "-U %s" % p.filename() 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_EXIST=pkg1") 13 | self.addrule("PKG_EXIST=pkg2") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/depconflict120.py: -------------------------------------------------------------------------------- 1 | self.description = "target vs db conflict will disappear after upgrade" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.conflicts = ["imaginary"] 5 | self.addpkg2db("sync", sp1); 6 | 7 | sp2 = pmpkg("pkg2", "1.0-2") 8 | self.addpkg2db("sync", sp2) 9 | 10 | lp = pmpkg("pkg2", "1.0-1") 11 | lp.provides = ["imaginary"] 12 | self.addpkg2db("local", lp) 13 | 14 | self.args = "-S %s" % " ".join([p.name for p in (sp1, sp2)]) 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_EXIST=pkg1") 18 | self.addrule("PKG_EXIST=pkg2") 19 | self.addrule("PKG_VERSION=pkg2|1.0-2") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/deprange001.py: -------------------------------------------------------------------------------- 1 | self.description = "dependency ranges should be satisfied by the same package" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.provides = ["dependency=2"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["dependency=5"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p = pmpkg("pkg3") 12 | p.depends = ["dependency>=3", "dependency<=4"] 13 | self.addpkg(p) 14 | 15 | self.args = "-U %s" % p.filename() 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("!PKG_EXIST=pkg3") 18 | 19 | self.expectfailure = True -------------------------------------------------------------------------------- /test/pacman/tests/deptest001.py: -------------------------------------------------------------------------------- 1 | self.description = "test deptest (-T) functionality" 2 | 3 | lp1 = pmpkg("pkg1") 4 | self.addpkg2db("local", lp1) 5 | 6 | lp3 = pmpkg("pkg3", "2.0-1") 7 | lp3.provides = ("prov=3.0") 8 | self.addpkg2db("local", lp3) 9 | 10 | self.args = "-T pkg1 pkg2 pkg3\>2.1 prov\>\=3.0" 11 | 12 | self.addrule("PACMAN_RETCODE=127") 13 | self.addrule("!PACMAN_OUTPUT=^pkg1") 14 | self.addrule("PACMAN_OUTPUT=^pkg2") 15 | self.addrule("PACMAN_OUTPUT=^pkg3") 16 | self.addrule("!PACMAN_OUTPUT=^prov") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/dummy001.py: -------------------------------------------------------------------------------- 1 | self.description = "Dummy test case (modify for own use)" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.files = ["etc/dummy.conf*", 5 | "lib/libdummy.so.0", 6 | "lib/libdummy.so -> ./libdummy.so.0", 7 | "usr/", 8 | "bin/dummy"] 9 | p1.backup = ["etc/dummy.conf*"] 10 | p1.install['post_install'] = "echo toto"; 11 | p1.url="ze url" 12 | self.addpkg(p1) 13 | 14 | #p2 = pmpkg("dummy", "1.0-2") 15 | #p2.files = ["etc/dummy.conf**"] 16 | #p2.backup = ["etc/dummy.conf"] 17 | #self.addpkg(p2) 18 | 19 | self.args = "-U %s" % p1.filename() 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/epoch001.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a sync package having higher epoch" 2 | 3 | sp = pmpkg("dummy", "1:1.0-1") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("dummy", "1.1-1") 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Su" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_VERSION=dummy|1:1.0-1") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/epoch002.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with an epoch and ignore on same package" 2 | 3 | lp = pmpkg("dummy", "1.0-1") 4 | self.addpkg2db("local", lp) 5 | 6 | sp = pmpkg("dummy", "1:1.0-2") 7 | self.addpkg2db("sync", sp) 8 | 9 | self.args = "-Su --ignore %s" % lp.name 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_VERSION=dummy|1.0-1") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/epoch003.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with an epoch package overriding a force package" 2 | 3 | sp = pmpkg("dummy", "2:1.4-1") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("dummy", "1:2.0-1") 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Su" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_VERSION=dummy|2:1.4-1") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/epoch004.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with same version, different epochs" 2 | 3 | sp = pmpkg("dummy", "2:2.0-1") 4 | sp.files = ["bin/dummynew"] 5 | self.addpkg2db("sync", sp) 6 | 7 | lp = pmpkg("dummy", "1:2.0-1") 8 | lp.files = ["bin/dummyold"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-Su" 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_VERSION=dummy|2:2.0-1") 15 | self.addrule("FILE_EXIST=bin/dummynew") 16 | self.addrule("!FILE_EXIST=bin/dummyold") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/epoch010.py: -------------------------------------------------------------------------------- 1 | self.description = "usbutils case study: force in new package" 2 | 3 | sp = pmpkg("usbutils", "1:001-1") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("usbutils", "0.91-4") 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Su" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_VERSION=usbutils|1:001-1") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/epoch011.py: -------------------------------------------------------------------------------- 1 | self.description = "usbutils case study: force stays, epoch now in local db" 2 | 3 | sp = pmpkg("usbutils", "1:002-1") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("usbutils", "1:001-1") 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Su" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_VERSION=usbutils|1:002-1") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/epoch012.py: -------------------------------------------------------------------------------- 1 | self.description = "usbutils case study: maintainer screws up and removes force" 2 | 3 | sp = pmpkg("usbutils", "003-1") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("usbutils", "1:002-1") 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Su" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | # remember, this is how we have to handle this- 003 will not be installed 13 | self.addrule("PKG_VERSION=usbutils|1:002-1") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/file-conflict-with-installed-pkg.py: -------------------------------------------------------------------------------- 1 | self.description = "File conflict with an installed package" 2 | 3 | lp = pmpkg("foobar") 4 | lp.files = ["conflicting-file"] 5 | self.addpkg2db("local", lp) 6 | 7 | p1 = pmpkg("pkg1") 8 | p1.files = ["conflicting-file"] 9 | self.addpkg(p1) 10 | 11 | self.args = "-U %s" % (p1.filename()) 12 | 13 | self.addrule("!PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=foobar") 15 | self.addrule("!PKG_EXIST=pkg1") 16 | self.addrule("FILE_EXIST=conflicting-file") 17 | self.addrule("PACMAN_OUTPUT=foobar") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict002.py: -------------------------------------------------------------------------------- 1 | self.description = "Fileconflict with symlinks (2)" 2 | 3 | p1 = pmpkg("pkg1") 4 | p1.files = ["dir/", 5 | "dir/realdir/", 6 | "dir/realdir/file", 7 | "dir/symdir -> realdir"] 8 | self.addpkg(p1) 9 | 10 | p2 = pmpkg("pkg2") 11 | p2.files = ["dir/", 12 | "dir/symdir/", 13 | "dir/symdir/file"] 14 | self.addpkg(p2) 15 | 16 | self.args = "-U %s" % " ".join([p.filename() for p in (p1, p2)]) 17 | 18 | self.addrule("PACMAN_RETCODE=1") 19 | self.addrule("!PKG_EXIST=pkg1") 20 | self.addrule("!PKG_EXIST=pkg2") 21 | self.addrule("!FILE_EXIST=dir/realdir/file") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict003.py: -------------------------------------------------------------------------------- 1 | self.description = "FS#8156- conflict between directory and incoming symlink" 2 | 3 | p1 = pmpkg("pkg1") 4 | p1.files = ["test/", 5 | "test/file"] 6 | self.addpkg2db("local", p1) 7 | 8 | p2 = pmpkg("pkg2") 9 | p2.files = ["test2/", 10 | "test2/file2", 11 | "test -> test2"] 12 | self.addpkg2db("sync", p2) 13 | 14 | self.args = "-S pkg2" 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("PKG_EXIST=pkg1") 18 | self.addrule("!PKG_EXIST=pkg2") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict004.py: -------------------------------------------------------------------------------- 1 | self.description = "dir->symlink change during package upgrade (no conflict)" 2 | 3 | p1 = pmpkg("pkg1", "1.0-1") 4 | p1.files = ["test/", 5 | "test/file"] 6 | self.addpkg2db("local", p1) 7 | 8 | p2 = pmpkg("pkg1", "2.0-1") 9 | p2.files = ["test2/", 10 | "test2/file2", 11 | "test -> test2"] 12 | self.addpkg2db("sync", p2) 13 | 14 | self.args = "-S pkg1" 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_EXIST=pkg1") 18 | self.addrule("PKG_VERSION=pkg1|2.0-1") 19 | self.addrule("FILE_TYPE=test|link") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict005.py: -------------------------------------------------------------------------------- 1 | self.description = "dir->symlink change during package upgrade (conflict)" 2 | 3 | p1 = pmpkg("pkg1", "1.0-1") 4 | p1.files = ["test/", 5 | "test/file1"] 6 | self.addpkg2db("local", p1) 7 | 8 | p2 = pmpkg("pkg2") 9 | p2.files = ["test/file2"] 10 | self.addpkg2db("local", p2) 11 | 12 | p3 = pmpkg("pkg1", "2.0-1") 13 | p3.files = ["test2/", 14 | "test2/file3", 15 | "test -> test2"] 16 | self.addpkg2db("sync", p3) 17 | 18 | self.args = "-S pkg1" 19 | 20 | self.addrule("PACMAN_RETCODE=1") 21 | self.addrule("PKG_EXIST=pkg1") 22 | self.addrule("PKG_VERSION=pkg1|1.0-1") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict006.py: -------------------------------------------------------------------------------- 1 | self.description = "dir->symlink change during package upgrade (conflict)" 2 | 3 | p1 = pmpkg("pkg1", "1.0-1") 4 | p1.files = ["test/", 5 | "test/file1", 6 | "test/dir/file1", 7 | "test/dir/file2"] 8 | self.addpkg2db("local", p1) 9 | 10 | p2 = pmpkg("pkg2") 11 | p2.files = ["test/dir/file3"] 12 | self.addpkg2db("local", p2) 13 | 14 | p3 = pmpkg("pkg1", "2.0-1") 15 | p3.files = ["test2/", 16 | "test2/file3", 17 | "test -> test2"] 18 | self.addpkg2db("sync", p3) 19 | 20 | self.args = "-S pkg1" 21 | 22 | self.addrule("PACMAN_RETCODE=1") 23 | self.addrule("PKG_EXIST=pkg1") 24 | self.addrule("PKG_VERSION=pkg1|1.0-1") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict007.py: -------------------------------------------------------------------------------- 1 | self.description = "Fileconflict with symlinks (klibc case)" 2 | 3 | lp = pmpkg("pkg") 4 | lp.files = ["dir/realdir/", 5 | "dir/symdir -> realdir", 6 | "dir/realdir/file"] 7 | self.addpkg2db("local", lp) 8 | 9 | p = pmpkg("pkg", "1.0-2") 10 | p.files = ["dir/symdir/file"] 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_EXIST=pkg") 17 | self.addrule("PKG_VERSION=pkg|1.0-2") 18 | self.addrule("FILE_TYPE=dir/symdir/|dir") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict008.py: -------------------------------------------------------------------------------- 1 | self.description = "Fileconflict file -> dir on package replacement (FS#24904)" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["dir/filepath", 5 | "dir/file"] 6 | self.addpkg2db("local", lp) 7 | 8 | p1 = pmpkg("replace") 9 | p1.provides = ["dummy"] 10 | p1.replaces = ["dummy"] 11 | p1.files = ["dir/filepath/", 12 | "dir/filepath/file", 13 | "dir/file", 14 | "dir/file2"] 15 | self.addpkg2db("sync", p1) 16 | 17 | self.args = "-Su" 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | self.addrule("!PKG_EXIST=dummy") 21 | self.addrule("PKG_EXIST=replace") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict009.py: -------------------------------------------------------------------------------- 1 | self.description = "dir->symlink change during package upgrade (directory conflict)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.files = ["dir/"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.files = ["dir/"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p = pmpkg("pkg1", "1.0-2") 12 | p.files = ["dir -> /usr/dir"] 13 | self.addpkg2db("sync", p) 14 | 15 | self.args = "-S pkg1" 16 | 17 | self.addrule("PACMAN_RETCODE=1") 18 | self.addrule("PKG_VERSION=pkg1|1.0-1") 19 | self.addrule("PKG_VERSION=pkg2|1.0-1") 20 | self.addrule("DIR_EXIST=dir/") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict010.py: -------------------------------------------------------------------------------- 1 | self.description = "dir->file change during package upgrade (directory conflict)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.files = ["dir/"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.files = ["dir/"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p = pmpkg("pkg1", "1.0-2") 12 | p.files = ["dir"] 13 | self.addpkg2db("sync", p) 14 | 15 | self.args = "-S pkg1" 16 | 17 | self.addrule("PACMAN_RETCODE=1") 18 | self.addrule("PKG_VERSION=pkg1|1.0-1") 19 | self.addrule("PKG_VERSION=pkg2|1.0-1") 20 | self.addrule("DIR_EXIST=dir/") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict011.py: -------------------------------------------------------------------------------- 1 | self.description = "dir->file change during package upgrade (filesystem directory conflict)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.files = ["dir/"] 5 | self.addpkg2db("local", lp1) 6 | 7 | self.filesystem = ["dir/conflict/"] 8 | 9 | p = pmpkg("pkg1", "1.0-2") 10 | p.files = ["dir"] 11 | self.addpkg2db("sync", p) 12 | 13 | self.args = "-S pkg1" 14 | 15 | self.addrule("PACMAN_RETCODE=1") 16 | self.addrule("PKG_VERSION=pkg1|1.0-1") 17 | self.addrule("DIR_EXIST=dir/conflict/") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict012.py: -------------------------------------------------------------------------------- 1 | self.description = "dir->file change during package upgrade (filesystem file conflict)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.files = ["dir/"] 5 | self.addpkg2db("local", lp1) 6 | 7 | self.filesystem = ["dir/file"] 8 | 9 | p = pmpkg("pkg1", "1.0-2") 10 | p.files = ["dir"] 11 | self.addpkg2db("sync", p) 12 | 13 | self.args = "-S pkg1" 14 | 15 | self.addrule("PACMAN_RETCODE=1") 16 | self.addrule("PKG_VERSION=pkg1|1.0-1") 17 | self.addrule("FILE_EXIST=dir/file") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict013.py: -------------------------------------------------------------------------------- 1 | self.description = "file->file path change with same effective path (/lib as symlink)" 2 | # Note: this situation means the filesystem and local db are out of sync 3 | 4 | lp1 = pmpkg("filesystem", "1.0-1") 5 | lp1.files = ["usr/", 6 | "usr/lib/", 7 | "lib -> usr/lib/"] 8 | self.addpkg2db("local", lp1) 9 | 10 | lp2 = pmpkg("pkg1", "1.0-1") 11 | lp2.files = ["lib/libfoo.so"] 12 | self.addpkg2db("local", lp2) 13 | 14 | sp1 = pmpkg("pkg1", "1.0-2") 15 | sp1.files = ["usr/lib/libfoo.so"] 16 | self.addpkg2db("sync", sp1) 17 | 18 | self.args = "-Su" 19 | 20 | self.addrule("PACMAN_RETCODE=1") 21 | self.addrule("PKG_VERSION=pkg1|1.0-1") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict015.py: -------------------------------------------------------------------------------- 1 | self.description = "conflict between a directory and a file" 2 | 3 | p1 = pmpkg("pkg1") 4 | p1.files = ["foo/"] 5 | self.addpkg2db("sync", p1) 6 | 7 | p2 = pmpkg("pkg2") 8 | p2.files = ["foo"] 9 | self.addpkg2db("sync", p2) 10 | 11 | self.args = "-S pkg1 pkg2" 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("!PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict016.py: -------------------------------------------------------------------------------- 1 | self.description = "file conflict with same effective path across packages (directory symlink)" 2 | 3 | lp1 = pmpkg("filesystem", "1.0-1") 4 | lp1.files = ["usr/", 5 | "usr/lib/", 6 | "lib -> usr/lib/"] 7 | self.addpkg2db("local", lp1) 8 | 9 | p1 = pmpkg("pkg1") 10 | p1.files = ["lib/", 11 | "lib/foo"] 12 | self.addpkg2db("sync", p1) 13 | 14 | p2 = pmpkg("pkg2") 15 | p2.files = ["usr/", 16 | "usr/lib/", 17 | "usr/lib/foo"] 18 | self.addpkg2db("sync", p2) 19 | 20 | self.args = "-S pkg1 pkg2" 21 | 22 | self.addrule("PACMAN_RETCODE=1") 23 | self.addrule("!PKG_EXIST=pkg1") 24 | self.addrule("!PKG_EXIST=pkg2") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict020.py: -------------------------------------------------------------------------------- 1 | self.description = "upgrade introduces new directory that conflicts with a package file" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.files = ["usr/bin/foo"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | self.addpkg2db("local", lp2) 9 | 10 | p = pmpkg("pkg2", "1.0-2") 11 | p.files = ["usr/bin/foo/"] 12 | self.addpkg2db("sync", p) 13 | 14 | self.args = "-S pkg2" 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("PKG_VERSION=pkg2|1.0-1") 18 | self.addrule("!DIR_EXIST=usr/bin/foo/") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict021.py: -------------------------------------------------------------------------------- 1 | self.description = "upgrade package overwriting existing unowned file with directory" 2 | 3 | lp1 = pmpkg("pkg1") 4 | self.addpkg2db("local", lp1) 5 | 6 | self.filesystem = ["file"] 7 | 8 | p = pmpkg("pkg1", "1.0-2") 9 | p.files = ["file/"] 10 | self.addpkg2db("sync", p) 11 | 12 | self.args = "-S pkg1" 13 | 14 | self.addrule("PACMAN_RETCODE=1") 15 | self.addrule("PKG_VERSION=pkg1|1.0-1") 16 | self.addrule("!DIR_EXIST=file/") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict022.py: -------------------------------------------------------------------------------- 1 | self.description = "File conflict between package with symlink and package with real path" 2 | 3 | self.filesystem = ["usr/lib/", "lib -> usr/lib/"] 4 | 5 | sp1 = pmpkg("foo") 6 | # share/ causes the entries to be reordered after path resolution 7 | sp1.files = ["lib/", "lib/file", "share/"] 8 | self.addpkg2db("sync", sp1) 9 | 10 | sp2 = pmpkg("bar") 11 | sp2.files = ["usr/", "usr/lib/", "usr/lib/file"] 12 | self.addpkg2db("sync", sp2) 13 | 14 | self.args = "-S %s %s" % (sp1.name, sp2.name) 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("!PKG_EXIST=foo") 18 | self.addrule("!PKG_EXIST=bar") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict023.py: -------------------------------------------------------------------------------- 1 | self.description = "File conflict between package with symlink and package with real path resolved by removal" 2 | # Note: this situation means the filesystem and local db are out of sync 3 | 4 | self.filesystem = ["usr/", "usr/lib/", "lib -> usr/lib/"] 5 | 6 | lp1 = pmpkg("foo") 7 | lp1.files = ["lib/", "lib/file"] 8 | self.addpkg2db("local", lp1) 9 | 10 | sp1 = pmpkg("bar") 11 | sp1.conflicts = ["foo"] 12 | sp1.files = ["usr/", "usr/lib/", "usr/lib/file"] 13 | self.addpkg2db("sync", sp1) 14 | 15 | self.args = "-S %s --ask=4" % sp1.name 16 | 17 | self.addrule("PACMAN_RETCODE=1") 18 | self.addrule("PKG_EXIST=foo") 19 | self.addrule("!PKG_EXIST=bar") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict024.py: -------------------------------------------------------------------------------- 1 | self.description = "Filesystem conflict on upgrade with symlinks" 2 | 3 | self.filesystem = ["share", "usr/lib/", "lib -> usr/lib/"] 4 | 5 | lp1 = pmpkg("foo", "1-1") 6 | lp1.files = ["lib/"] 7 | self.addpkg2db("local", lp1) 8 | 9 | sp1 = pmpkg("foo", "1-2") 10 | # share/ causes the file order to change upon path resolution 11 | sp1.files = ["lib/", "share"] 12 | self.addpkg2db("sync", sp1) 13 | 14 | self.args = "-S %s" % sp1.name 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("PKG_EXIST=foo|1-1") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict025.py: -------------------------------------------------------------------------------- 1 | self.description = "File conflict between package with symlink and package with real path and filesystem (reversed)" 2 | 3 | self.filesystem = ["usr/lib/", "lib -> usr/lib/"] 4 | 5 | lp1 = pmpkg("foo") 6 | lp1.files = ["usr/", "usr/lib/", "usr/lib/file"] 7 | self.addpkg2db("local", lp1) 8 | 9 | sp1 = pmpkg("bar") 10 | sp1.conflicts = ["foo"] 11 | sp1.files = ["lib/", "lib/file"] 12 | self.addpkg2db("sync", sp1) 13 | 14 | self.args = "-S %s --ask=4" % sp1.name 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("PKG_EXIST=foo") 18 | self.addrule("!PKG_EXIST=bar") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict030.py: -------------------------------------------------------------------------------- 1 | self.description = "Dir->file transition filesystem conflict resolved by removal" 2 | 3 | lp1 = pmpkg("foo") 4 | lp1.files = ["foo/"] 5 | self.addpkg2db("local", lp1) 6 | 7 | sp1 = pmpkg("bar") 8 | sp1.conflicts = ["foo"] 9 | sp1.files = ["foo"] 10 | self.addpkg2db("sync", sp1) 11 | 12 | self.args = "-S %s --ask=4" % sp1.name 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("PKG_EXIST=bar") 16 | self.addrule("!PKG_EXIST=foo") 17 | self.addrule("FILE_EXIST=foo") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict031.py: -------------------------------------------------------------------------------- 1 | self.description = "Dir->file transition filesystem conflict resolved by removal (with subdirectory)" 2 | 3 | lp1 = pmpkg("foo") 4 | lp1.files = ["foo/bar/"] 5 | self.addpkg2db("local", lp1) 6 | 7 | sp1 = pmpkg("foo", "2-1") 8 | sp1.conflicts = ["foo"] 9 | sp1.files = ["foo"] 10 | self.addpkg2db("sync", sp1) 11 | 12 | self.args = "-S %s" % sp1.name 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("PKG_VERSION=foo|2-1") 16 | self.addrule("FILE_EXIST=foo") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/fileconflict032.py: -------------------------------------------------------------------------------- 1 | self.description = "Dir->file transition filesystem conflict resolved by removal (with symlink)" 2 | 3 | self.filesystem = ["baz/quux"] 4 | 5 | lp1 = pmpkg("foo") 6 | lp1.files = ["foo/bar -> ../baz/"] 7 | self.addpkg2db("local", lp1) 8 | 9 | sp1 = pmpkg("foo", "2-1") 10 | sp1.files = ["foo"] 11 | self.addpkg2db("sync", sp1) 12 | 13 | self.args = "-S %s" % sp1.name 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=foo|2-1") 17 | self.addrule("FILE_EXIST=foo") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-abortonfail.py: -------------------------------------------------------------------------------- 1 | self.description = "Abort transaction on hook failure with AbortOnFail" 2 | 3 | self.add_script("hook-script", ": > hook-output; exit 1") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | Type = Package 8 | Operation = Install 9 | Target = foo 10 | 11 | [Action] 12 | When = PreTransaction 13 | Exec = bin/hook-script 14 | AbortOnFail 15 | """); 16 | 17 | sp = pmpkg("foo") 18 | self.addpkg2db("sync", sp) 19 | 20 | self.args = "-S foo" 21 | 22 | self.addrule("!PACMAN_RETCODE=0") 23 | self.addrule("!PKG_EXIST=foo") 24 | self.addrule("FILE_EXIST=hook-output") 25 | self.addrule("PACMAN_OUTPUT=failed to run transaction hooks") 26 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-description-reused.py: -------------------------------------------------------------------------------- 1 | self.description = "Hook using multiple 'Description's" 2 | 3 | self.add_hook("hook", 4 | """ 5 | [Trigger] 6 | Type = Package 7 | Operation = Install 8 | Target = foo 9 | 10 | [Action] 11 | Description = lala 12 | Description = foobar 13 | When = PreTransaction 14 | Exec = /bin/date 15 | """); 16 | 17 | sp = pmpkg("foo") 18 | self.addpkg2db("sync", sp) 19 | 20 | self.args = "-S foo" 21 | 22 | self.addrule("PACMAN_RETCODE=0") 23 | self.addrule("PACMAN_OUTPUT=warning.*overwriting previous definition of Description") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-exec-reused.py: -------------------------------------------------------------------------------- 1 | self.description = "Hook using multiple 'Exec's" 2 | 3 | self.add_hook("hook", 4 | """ 5 | [Trigger] 6 | Type = Package 7 | Operation = Install 8 | Target = foo 9 | 10 | [Action] 11 | When = PostTransaction 12 | Exec = /bin/date 13 | Exec = /bin/date 14 | """); 15 | 16 | sp = pmpkg("foo") 17 | self.addpkg2db("sync", sp) 18 | 19 | self.args = "-S foo" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PACMAN_OUTPUT=warning.*overwriting previous definition of Exec") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-exec-with-arguments.py: -------------------------------------------------------------------------------- 1 | self.description = "Hook with arguments" 2 | 3 | self.add_hook("hook", 4 | """ 5 | [Trigger] 6 | Type = Package 7 | Operation = Install 8 | Target = foo 9 | 10 | [Action] 11 | When = PreTransaction 12 | Exec = bin/sh -c ': > hook-output' 13 | """); 14 | 15 | sp = pmpkg("foo") 16 | self.addpkg2db("sync", sp) 17 | 18 | self.args = "-S foo" 19 | 20 | self.addrule("PACMAN_RETCODE=0") 21 | self.addrule("PKG_EXIST=foo") 22 | self.addrule("FILE_EXIST=hook-output") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-file-remove-trigger-match.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package matching a file removal hook" 2 | 3 | self.add_script("hook-script", ": > hook-output") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | Type = Path 8 | Operation = Remove 9 | Target = bin/foo 10 | 11 | [Action] 12 | When = PreTransaction 13 | Exec = bin/hook-script 14 | """); 15 | 16 | lp = pmpkg("foo") 17 | lp.files = ["bin/foo"] 18 | self.addpkg2db("local", lp) 19 | 20 | self.args = "-R foo" 21 | 22 | self.addrule("PACMAN_RETCODE=0") 23 | self.addrule("!PKG_EXIST=foo") 24 | self.addrule("FILE_EXIST=hook-output") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-file-upgrade-nomatch.py: -------------------------------------------------------------------------------- 1 | self.description = "Add and remove separate files that match an upgrade hook" 2 | 3 | self.add_script("hook-script", ": > hook-output") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | Type = Path 8 | Operation = Upgrade 9 | Target = bin/?* 10 | 11 | [Action] 12 | When = PreTransaction 13 | Exec = bin/hook-script 14 | """); 15 | 16 | lp = pmpkg("foo") 17 | lp.files = ["bin/foo"] 18 | self.addpkg2db("local", lp) 19 | 20 | sp = pmpkg("foo") 21 | sp.files = ["bin/bar"] 22 | self.addpkg2db("sync", sp) 23 | 24 | self.args = "-S foo" 25 | 26 | self.addrule("PACMAN_RETCODE=0") 27 | self.addrule("!FILE_EXIST=hook-output") 28 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-invalid-trigger.py: -------------------------------------------------------------------------------- 1 | self.description = "Abort on invalid hook trigger" 2 | 3 | self.add_script("hook-script", ": > hook-output") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | InvalidTriggerOption 8 | Type = Package 9 | Operation = Install 10 | Target = foo 11 | 12 | [Action] 13 | When = PreTransaction 14 | Exec = bin/hook-script 15 | """); 16 | 17 | sp = pmpkg("foo") 18 | self.addpkg2db("sync", sp) 19 | 20 | self.args = "-S foo" 21 | 22 | self.addrule("!PACMAN_RETCODE=0") 23 | self.addrule("!PKG_EXIST=foo") 24 | self.addrule("!FILE_EXIST=hook-output") 25 | self.addrule("PACMAN_OUTPUT=failed to run transaction hooks") 26 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-pkg-install-trigger-match.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package matching a hook" 2 | 3 | self.add_script("hook-script", ": > hook-output") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | Type = Package 8 | Operation = Install 9 | Target = foo 10 | 11 | [Action] 12 | When = PreTransaction 13 | Exec = bin/hook-script 14 | """); 15 | 16 | sp = pmpkg("foo") 17 | self.addpkg2db("sync", sp) 18 | 19 | self.args = "-S foo" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PKG_EXIST=foo") 23 | self.addrule("FILE_EXIST=hook-output") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-pkg-postinstall-trigger-match.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package matching a PostTransaction Install hook" 2 | 3 | self.add_script("hook-script", ": > hook-output") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | Type = Package 8 | Operation = Install 9 | Target = foo 10 | 11 | [Action] 12 | When = PostTransaction 13 | Exec = bin/hook-script 14 | """); 15 | 16 | sp = pmpkg("foo") 17 | self.addpkg2db("sync", sp) 18 | 19 | self.args = "-S foo" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PKG_EXIST=foo") 23 | self.addrule("FILE_EXIST=hook-output") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-pkg-remove-trigger-match.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package matching a removal hook" 2 | 3 | self.add_script("hook-script", ": > hook-output") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | Type = Package 8 | Operation = Remove 9 | Target = foo 10 | 11 | [Action] 12 | When = PreTransaction 13 | Exec = bin/hook-script 14 | """); 15 | 16 | lp = pmpkg("foo") 17 | self.addpkg2db("local", lp) 18 | 19 | self.args = "-R foo" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("!PKG_EXIST=foo") 23 | self.addrule("FILE_EXIST=hook-output") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-pkg-upgrade-trigger-match.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package matching an Upgrade hook" 2 | 3 | self.add_script("hook-script", ": > hook-output") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | Type = Package 8 | Operation = Upgrade 9 | Target = foo 10 | 11 | [Action] 12 | When = PreTransaction 13 | Exec = bin/hook-script 14 | """); 15 | 16 | lp = pmpkg("foo", "1-1") 17 | self.addpkg2db("local", lp) 18 | 19 | sp = pmpkg("foo", "1-2") 20 | self.addpkg2db("sync", sp) 21 | 22 | self.args = "-S foo" 23 | 24 | self.addrule("PACMAN_RETCODE=0") 25 | self.addrule("PKG_VERSION=foo|1-2") 26 | self.addrule("FILE_EXIST=hook-output") 27 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-type-reused.py: -------------------------------------------------------------------------------- 1 | self.description = "Hook using multiple 'Type's" 2 | 3 | self.add_hook("hook", 4 | """ 5 | [Trigger] 6 | Type = Package 7 | Type = Path 8 | Operation = Install 9 | Target = foo 10 | 11 | [Action] 12 | When = PostTransaction 13 | Exec = /bin/date 14 | """); 15 | 16 | sp = pmpkg("foo") 17 | self.addpkg2db("sync", sp) 18 | 19 | self.args = "-S foo" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PACMAN_OUTPUT=warning.*overwriting previous definition of Type") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-upgrade-trigger-no-match.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package matching an Upgrade hook" 2 | 3 | self.add_script("hook-script", ": > hook-output") 4 | self.add_hook("hook", 5 | """ 6 | [Trigger] 7 | Type = Package 8 | Operation = Upgrade 9 | Target = foo 10 | 11 | [Action] 12 | When = PreTransaction 13 | Exec = bin/hook-script 14 | """); 15 | 16 | sp = pmpkg("foo") 17 | self.addpkg2db("sync", sp) 18 | 19 | self.args = "-S foo" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PKG_EXIST=foo") 23 | self.addrule("!FILE_EXIST=hook-output") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/hook-when-reused.py: -------------------------------------------------------------------------------- 1 | self.description = "Hook using multiple 'When's" 2 | 3 | self.add_hook("hook", 4 | """ 5 | [Trigger] 6 | Type = Package 7 | Operation = Install 8 | Target = foo 9 | 10 | [Action] 11 | When = PreTransaction 12 | Exec = /bin/date 13 | When = PostTransaction 14 | """); 15 | 16 | sp = pmpkg("foo") 17 | self.addpkg2db("sync", sp) 18 | 19 | self.args = "-S foo" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PACMAN_OUTPUT=warning.*overwriting previous definition of When") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/ignore001.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync with irrelevant ignored packages" 2 | 3 | package1 = pmpkg("package1") 4 | self.addpkg2db("local", package1) 5 | 6 | package2 = pmpkg("package2") 7 | self.addpkg2db("local", package2) 8 | 9 | package2up = pmpkg("package2", "2.0-1") 10 | self.addpkg2db("sync", package2up) 11 | 12 | self.option["IgnorePkg"] = ["irrelevant"] 13 | self.args = "-Su" 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=package1|1.0-1") 17 | self.addrule("PKG_VERSION=package2|2.0-1") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/ignore006.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync with target in ignore list and say no" 2 | 3 | pkg = pmpkg("package1") 4 | self.addpkg2db("sync", pkg) 5 | 6 | self.option["IgnorePkg"] = ["package1"] 7 | self.args = "--ask=1 -S %s" % pkg.name 8 | 9 | self.addrule("PACMAN_RETCODE=0") 10 | self.addrule("!PKG_EXIST=package1") 11 | -------------------------------------------------------------------------------- /test/pacman/tests/ignore007.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync group with ignored packages" 2 | 3 | pkg1 = pmpkg("package1") 4 | pkg1.groups = ["grp"] 5 | self.addpkg2db("sync", pkg1) 6 | 7 | pkg2 = pmpkg("package2") 8 | pkg2.groups = ["grp"] 9 | self.addpkg2db("sync", pkg2) 10 | 11 | pkg3 = pmpkg("package3") 12 | pkg3.groups = ["grp"] 13 | self.addpkg2db("sync", pkg3) 14 | 15 | self.option["IgnorePkg"] = ["package1"] 16 | self.args = "--ask=1 -S grp" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("!PKG_EXIST=%s" % pkg1.name) 20 | self.addrule("PKG_EXIST=%s" % pkg2.name) 21 | self.addrule("PKG_EXIST=%s" % pkg3.name) 22 | -------------------------------------------------------------------------------- /test/pacman/tests/mode001.py: -------------------------------------------------------------------------------- 1 | self.description = "Check the mode of default files in a package" 2 | 3 | p = pmpkg("pkg1") 4 | p.files = ["bin/foo", 5 | "bin/bar"] 6 | self.addpkg(p) 7 | 8 | self.args = "-U %s" % p.filename() 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | for f in p.files: 12 | self.addrule("FILE_MODE=%s|644" % f) 13 | -------------------------------------------------------------------------------- /test/pacman/tests/mode002.py: -------------------------------------------------------------------------------- 1 | self.description = "Check execute mode on files in a package" 2 | 3 | p = pmpkg("pkg1") 4 | p.files = ["bin/foo|755", 5 | "bin/bar|755"] 6 | self.addpkg(p) 7 | 8 | self.args = "-U %s" % p.filename() 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("FILE_MODE=bin/foo|755") 12 | self.addrule("FILE_MODE=bin/bar|755") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/mode003.py: -------------------------------------------------------------------------------- 1 | self.description = "Backup file permissions test (same as orig)" 2 | 3 | lp = pmpkg("filesystem") 4 | lp.files = ["etc/profile|666"] 5 | lp.backup = ["etc/profile*"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("filesystem", "1.0-2") 9 | p.files = ["etc/profile|666**"] 10 | p.backup = ["etc/profile"] 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("!FILE_PACSAVE=etc/profile") 17 | self.addrule("FILE_PACNEW=etc/profile") 18 | self.addrule("FILE_EXIST=etc/profile") 19 | self.addrule("FILE_MODE=etc/profile|666") 20 | self.addrule("FILE_MODE=etc/profile.pacnew|666") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/multiple-architectures01.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package (multiple Architecture options, wrong)" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | p.arch = 'i686' 7 | self.addpkg(p) 8 | 9 | self.option["Architecture"] = ['i586', 'i486', 'i386'] 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=dummy") 15 | -------------------------------------------------------------------------------- /test/pacman/tests/multiple-architectures02.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package (multiple Architecture options)" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | p.arch = 'i486' 7 | self.addpkg(p) 8 | 9 | self.option["Architecture"] = ['i586', 'i486', 'i386'] 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=dummy") 15 | for f in p.files: 16 | self.addrule("FILE_EXIST=%s" % f) -------------------------------------------------------------------------------- /test/pacman/tests/noupgrade-inverted.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package with files that match negated NoUpgrade patterns" 2 | 3 | lp = pmpkg("foobar") 4 | lp.files = ["foo/bar", "foo/baz"] 5 | self.addpkg2db("local", lp) 6 | 7 | p = pmpkg("foobar", "1.0-2") 8 | p.files = ["foo/bar"] 9 | self.addpkg(p) 10 | 11 | self.option["NoUpgrade"] = ["foo/*", "!foo/bar", "!foo/baz"] 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PKG_VERSION=foobar|1.0-2") 16 | self.addrule("!FILE_EXIST=foo/baz") 17 | self.addrule("FILE_MODIFIED=foo/bar") 18 | self.addrule("!FILE_PACNEW=foo/bar") 19 | self.addrule("!FILE_PACSAVE=foo/bar") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/overwrite-files-match-negated.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package with an existing file matching a negated --overwrite pattern" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["foobar"] 5 | self.addpkg(p) 6 | 7 | self.filesystem = ["foobar*"] 8 | 9 | self.args = "-U --overwrite=foobar --overwrite=!foo* %s" % p.filename() 10 | 11 | self.addrule("!PACMAN_RETCODE=0") 12 | self.addrule("!PKG_EXIST=dummy") 13 | self.addrule("!FILE_MODIFIED=foobar") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/overwrite-files-match.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package with an existing file matching an --overwrite pattern" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["foobar"] 5 | self.addpkg(p) 6 | 7 | self.filesystem = ["foobar*"] 8 | 9 | self.args = "-U --overwrite=foobar %s" % p.filename() 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_EXIST=dummy") 13 | self.addrule("FILE_MODIFIED=foobar") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/overwrite-files-nonmatch.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package with an existing file not matching --overwrite patterns" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["foobar"] 5 | self.addpkg(p) 6 | 7 | self.filesystem = ["foobar*"] 8 | 9 | self.args = "-U --overwrite=foo %s" % p.filename() 10 | 11 | self.addrule("!PACMAN_RETCODE=0") 12 | self.addrule("!PKG_EXIST=dummy") 13 | self.addrule("!FILE_MODIFIED=foobar") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/pacman001.py: -------------------------------------------------------------------------------- 1 | self.description = "Test command line option (--version)" 2 | 3 | self.args = "--version" 4 | 5 | self.addrule("PACMAN_RETCODE=0") 6 | -------------------------------------------------------------------------------- /test/pacman/tests/pacman002.py: -------------------------------------------------------------------------------- 1 | self.description = "Test command line option (--help)" 2 | 3 | self.args = "--help" 4 | 5 | self.addrule("PACMAN_RETCODE=0") 6 | -------------------------------------------------------------------------------- /test/pacman/tests/pacman003.py: -------------------------------------------------------------------------------- 1 | self.description = "Test command line option (-S --help)" 2 | 3 | self.args = "-S --help" 4 | 5 | self.addrule("PACMAN_RETCODE=0") 6 | -------------------------------------------------------------------------------- /test/pacman/tests/pacman004.py: -------------------------------------------------------------------------------- 1 | self.description = "Test command line option (-v)" 2 | 3 | self.args = "-v" 4 | 5 | self.addrule("PACMAN_RETCODE=1") 6 | -------------------------------------------------------------------------------- /test/pacman/tests/pacman005.py: -------------------------------------------------------------------------------- 1 | self.description = "Test invalid combination of command line options (-Qy)" 2 | 3 | p = pmpkg("foobar") 4 | self.addpkg2db("local", p) 5 | 6 | self.args = "-Qy" 7 | 8 | self.addrule("PACMAN_RETCODE=1") 9 | -------------------------------------------------------------------------------- /test/pacman/tests/pkg-meta-invalid-name-file.py: -------------------------------------------------------------------------------- 1 | self.description = "package name with invalid characters cannot be installed (file)" 2 | 3 | p = pmpkg("-foo") 4 | self.addpkg(p) 5 | 6 | self.args = "-U -- %s" % p.filename() 7 | 8 | self.addrule("!PACMAN_RETCODE=0") 9 | self.addrule("!PKG_EXIST=-foo") 10 | -------------------------------------------------------------------------------- /test/pacman/tests/pkg-meta-invalid-name-local.py: -------------------------------------------------------------------------------- 1 | self.description = "local package name with invalid characters can be removed" 2 | 3 | sp = pmpkg("-foo") 4 | self.addpkg2db("local", sp) 5 | 6 | self.args = "-R -- %s" % sp.name 7 | 8 | self.addrule("PACMAN_RETCODE=0") 9 | self.addrule("!PKG_EXIST=-foo") 10 | -------------------------------------------------------------------------------- /test/pacman/tests/pkg-meta-invalid-name-sync.py: -------------------------------------------------------------------------------- 1 | self.description = "package name with invalid characters cannot be installed" 2 | 3 | sp = pmpkg("-foo") 4 | self.addpkg2db("sync", sp) 5 | 6 | self.args = "-S -- %s" % sp.name 7 | 8 | self.addrule("!PACMAN_RETCODE=0") 9 | self.addrule("!PKG_EXIST=-foo") 10 | -------------------------------------------------------------------------------- /test/pacman/tests/provision001.py: -------------------------------------------------------------------------------- 1 | self.description = "-S provision" 2 | 3 | sp = pmpkg("pkg1") 4 | sp.provides = ["provision=1.0-1"] 5 | self.addpkg2db("sync", sp) 6 | 7 | self.args = "-S provision" 8 | 9 | self.addrule("PACMAN_RETCODE=0") 10 | self.addrule("PKG_EXIST=pkg1") 11 | -------------------------------------------------------------------------------- /test/pacman/tests/provision002.py: -------------------------------------------------------------------------------- 1 | self.description = "-S provision, multiple providers, one installed" 2 | 3 | sp = pmpkg("pkg1", "1.0-2") 4 | sp.provides = ["pkg-env"] 5 | self.addpkg2db("sync", sp) 6 | 7 | sp = pmpkg("pkg2", "1.0-2") 8 | sp.provides = ["pkg-env"] 9 | self.addpkg2db("sync", sp) 10 | 11 | lp = pmpkg("pkg2") 12 | lp.provides = ["pkg-env"] 13 | self.addpkg2db("local", lp) 14 | 15 | self.args = "-S pkg-env" 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("!PKG_EXIST=pkg1") 19 | self.addrule("PKG_EXIST=pkg2") 20 | self.addrule("PKG_VERSION=pkg2|1.0-2") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/provision003.py: -------------------------------------------------------------------------------- 1 | self.description = "-S provision, multiple providers, one installed, different repos" 2 | 3 | sp = pmpkg("pkg1", "1.0-2") 4 | sp.provides = ["pkg-env"] 5 | self.addpkg2db("sync", sp) 6 | 7 | sp = pmpkg("pkg2", "1.0-2") 8 | sp.provides = ["pkg-env"] 9 | # this repo will be sorted second alphabetically 10 | self.addpkg2db("sync2", sp) 11 | 12 | lp = pmpkg("pkg2") 13 | lp.provides = ["pkg-env"] 14 | self.addpkg2db("local", lp) 15 | 16 | self.args = "-S pkg-env" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("!PKG_EXIST=pkg1") 20 | self.addrule("PKG_EXIST=pkg2") 21 | self.addrule("PKG_VERSION=pkg2|1.0-2") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/provision004.py: -------------------------------------------------------------------------------- 1 | self.description = "-S literal with provision of same name installed" 2 | 3 | sp = pmpkg("provision", "1.0-2") 4 | sp.provides = ["literal"] 5 | sp.conflicts = ["literal"] 6 | self.addpkg2db("sync", sp) 7 | 8 | sp = pmpkg("literal", "1.0-2") 9 | self.addpkg2db("sync2", sp) 10 | 11 | lp = pmpkg("provision") 12 | lp.provides = ["literal"] 13 | lp.conflicts = ["literal"] 14 | self.addpkg2db("local", lp) 15 | 16 | self.args = "-S literal --ask=4" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("!PKG_EXIST=provision") 20 | self.addrule("PKG_EXIST=literal") 21 | self.addrule("PKG_VERSION=literal|1.0-2") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/provision010.py: -------------------------------------------------------------------------------- 1 | self.description = "provision>=1.0-2 dependency" 2 | 3 | p = pmpkg("pkg1", "1.0-2") 4 | p.depends = ["provision>=1.0-2"] 5 | self.addpkg(p) 6 | 7 | lp = pmpkg("pkg2", "1.0-2") 8 | lp.provides = ["provision"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/provision011.py: -------------------------------------------------------------------------------- 1 | self.description = "provision>=1.0-2 dependency (2)" 2 | 3 | p = pmpkg("pkg1", "1.0-2") 4 | p.depends = ["provision>=1.0-2"] 5 | self.addpkg(p) 6 | 7 | lp = pmpkg("pkg2", "1.0-2") 8 | lp.provides = ["provision=1.0-2"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/provision012.py: -------------------------------------------------------------------------------- 1 | self.description = "provision>=1.0-2 dependency (3)" 2 | 3 | p = pmpkg("pkg1", "1.0-2") 4 | p.depends = ["provision>=1.0-2"] 5 | self.addpkg(p) 6 | 7 | lp = pmpkg("pkg2", "1.0-2") 8 | lp.provides = ["provision=1.0-1"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/provision020.py: -------------------------------------------------------------------------------- 1 | self.description = "provision>=1.0-2 dependency" 2 | 3 | p = pmpkg("pkg1", "1.0-2") 4 | p.depends = ["provision>=1.0-2"] 5 | self.addpkg2db("sync", p) 6 | 7 | lp = pmpkg("pkg2", "1.0-2") 8 | lp.provides = ["provision"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-S %s" % p.name 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/provision021.py: -------------------------------------------------------------------------------- 1 | self.description = "provision>=1.0-2 dependency (2)" 2 | 3 | p = pmpkg("pkg1", "1.0-2") 4 | p.depends = ["provision>=1.0-2"] 5 | self.addpkg2db("sync", p) 6 | 7 | lp = pmpkg("pkg2", "1.0-2") 8 | lp.provides = ["provision=1.0-2"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-S %s" % p.name 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/provision022.py: -------------------------------------------------------------------------------- 1 | self.description = "provision>=1.0-2 dependency (3)" 2 | 3 | p = pmpkg("pkg1", "1.0-2") 4 | p.depends = ["provision>=1.0-2"] 5 | self.addpkg2db("sync", p) 6 | 7 | lp = pmpkg("pkg2", "1.0-2") 8 | lp.provides = ["provision=1.0-1"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-S %s" % p.name 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/query001.py: -------------------------------------------------------------------------------- 1 | self.description = "Query a package" 2 | 3 | p = pmpkg("foobar") 4 | p.files = ["bin/foobar"] 5 | self.addpkg2db("local", p) 6 | 7 | self.args = "-Q %s" % p.name 8 | 9 | self.addrule("PACMAN_RETCODE=0") 10 | self.addrule("PACMAN_OUTPUT=^%s" % p.name) 11 | -------------------------------------------------------------------------------- /test/pacman/tests/query002.py: -------------------------------------------------------------------------------- 1 | self.description = "Query info on a package" 2 | 3 | p = pmpkg("foobar") 4 | p.files = ["bin/foobar"] 5 | p.desc = "test description" 6 | p.groups = ["foo"] 7 | p.url = "http://www.archlinux.org" 8 | p.license = "GPL2" 9 | p.arch = "i686" 10 | p.packager = "Arch Linux" 11 | 12 | self.addpkg2db("local", p) 13 | 14 | self.args = "-Qi %s" % p.name 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PACMAN_OUTPUT=^Name.*%s" % p.name) 18 | self.addrule("PACMAN_OUTPUT=^Description.*%s" % p.desc) 19 | -------------------------------------------------------------------------------- /test/pacman/tests/query003.py: -------------------------------------------------------------------------------- 1 | self.description = "Query search for a package" 2 | 3 | p = pmpkg("foobar") 4 | p.files = ["bin/foobar"] 5 | p.groups = ["group1", "group2"] 6 | self.addpkg2db("local", p) 7 | 8 | self.args = "-Qs %s" % p.name 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("PACMAN_OUTPUT=^local/%s" % p.name) 12 | -------------------------------------------------------------------------------- /test/pacman/tests/query004.py: -------------------------------------------------------------------------------- 1 | self.description = "Query a package" 2 | 3 | p = pmpkg("foobar") 4 | p.files = ["bin/foobar"] 5 | self.addpkg2db("local", p) 6 | 7 | self.args = "-Q %s" % p.name 8 | 9 | self.addrule("PACMAN_RETCODE=0") 10 | self.addrule("PACMAN_OUTPUT=^%s" % p.name) 11 | -------------------------------------------------------------------------------- /test/pacman/tests/query005.py: -------------------------------------------------------------------------------- 1 | self.description = "Query info on a package (new date)" 2 | 3 | p = pmpkg("foobar") 4 | p.files = ["bin/foobar"] 5 | p.desc = "test description" 6 | p.groups = ["foo"] 7 | p.url = "http://www.archlinux.org" 8 | p.license = "GPL2" 9 | p.arch = "i686" 10 | # test new style date 11 | p.builddate = "1196640127" 12 | p.packager = "Arch Linux" 13 | 14 | self.addpkg2db("local", p) 15 | 16 | self.args = "-Qi %s" % p.name 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("PACMAN_OUTPUT=^Name.*%s" % p.name) 20 | self.addrule("PACMAN_OUTPUT=^Description.*%s" % p.desc) 21 | self.addrule("PACMAN_OUTPUT=^Build Date.* 2007") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/query007.py: -------------------------------------------------------------------------------- 1 | self.description = "Query ownership of file in root" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["etc/config"] 5 | self.addpkg2db("local", sp) 6 | 7 | self.filesystem = ["config"] 8 | 9 | self.args = "-Qo /config" 10 | 11 | self.addrule("PACMAN_RETCODE=1") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/query010.py: -------------------------------------------------------------------------------- 1 | self.description = "Query info on a package (optdep install status [uninstalled])" 2 | 3 | optstr = "dep: for foobar" 4 | 5 | pkg = pmpkg("dummy", "1.0-2") 6 | pkg.optdepends = [optstr] 7 | self.addpkg2db("local", pkg) 8 | 9 | self.args = "-Qi %s" % pkg.name 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PACMAN_OUTPUT=^Optional Deps.*%s$" % optstr) 13 | -------------------------------------------------------------------------------- /test/pacman/tests/query011.py: -------------------------------------------------------------------------------- 1 | self.description = "Query info on a package (optdep install status [installed])" 2 | 3 | optstr = "dep: for foobar" 4 | 5 | pkg = pmpkg("dummy", "1.0-2") 6 | pkg.optdepends = [optstr] 7 | self.addpkg2db("local", pkg) 8 | 9 | dep = pmpkg("dep") 10 | self.addpkg2db("local", dep) 11 | 12 | self.args = "-Qi %s" % pkg.name 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("PACMAN_OUTPUT=^Optional Deps.*%s \[installed\]$" % optstr) 16 | -------------------------------------------------------------------------------- /test/pacman/tests/query012.py: -------------------------------------------------------------------------------- 1 | self.description = "Query info on a package (reverse optdeps)" 2 | 3 | pkg = pmpkg("dummy", "1.0-2") 4 | pkg.optdepends = ["dep: for foobar"] 5 | self.addpkg2db("local", pkg) 6 | 7 | dep = pmpkg("dep") 8 | self.addpkg2db("local", dep) 9 | 10 | self.args = "-Qi %s" % dep.name 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("PACMAN_OUTPUT=^Optional For.*%s" % pkg.name) 14 | -------------------------------------------------------------------------------- /test/pacman/tests/querycheck001.py: -------------------------------------------------------------------------------- 1 | self.description = "Query--check files, all there" 2 | 3 | pkg = pmpkg("dummy") 4 | pkg.files = [ 5 | "usr/lib/libdummy.so.0", 6 | "usr/lib/libdummy.so -> libdummy.so.0", 7 | "usr/share/dummy/C/", 8 | "usr/share/dummy/C/msgs", 9 | "usr/share/dummy/en -> C"] 10 | self.addpkg2db("local",pkg) 11 | 12 | self.args = "-Qk" 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("!PACMAN_OUTPUT=warning.*(No such file or directory)") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/querycheck002.py: -------------------------------------------------------------------------------- 1 | self.description = "Query--check mtree, no mtree" 2 | 3 | pkg = pmpkg("dummy") 4 | pkg.files = [ 5 | "usr/lib/libdummy.so.0", 6 | "usr/lib/libdummy.so -> libdummy.so.0", 7 | "usr/share/dummy/C/", 8 | "usr/share/dummy/C/msgs", 9 | "usr/share/dummy/en -> C"] 10 | self.addpkg2db("local",pkg) 11 | 12 | self.args = "-Qkk" 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("PACMAN_OUTPUT=dummy: no mtree file") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/querycheck_fast_file_type.py: -------------------------------------------------------------------------------- 1 | self.description = "check file type without mtree" 2 | 3 | self.filesystem = [ "bar/", "foo -> bar/" ] 4 | 5 | pkg = pmpkg("dummy") 6 | pkg.files = [ "foo/" ] 7 | self.addpkg2db("local",pkg) 8 | 9 | self.args = "-Qk" 10 | 11 | self.addrule("PACMAN_RETCODE=1") 12 | self.addrule("PACMAN_OUTPUT=warning.*(File type mismatch)") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/reason001.py: -------------------------------------------------------------------------------- 1 | self.description = "Copy reason (to-be-replaced -> replacement)" 2 | 3 | sp = pmpkg("libfoo-ng") 4 | sp.replaces = [ "libfoo" ] 5 | self.addpkg2db("sync", sp) 6 | 7 | lp = pmpkg("libfoo") 8 | lp.reason = 1 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-Su" 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("!PKG_EXIST=libfoo") 15 | self.addrule("PKG_EXIST=libfoo-ng") 16 | self.addrule("PKG_REASON=libfoo-ng|1") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/remove-assumeinstalled.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package using --assume-installed" 2 | 3 | lp1 = pmpkg("pkg1", "1.0-1") 4 | 5 | lp2 = pmpkg("pkg2", "1.0-1") 6 | lp2.depends = ["pkg1=1.0"] 7 | for p in lp1, lp2: 8 | self.addpkg2db("local", p); 9 | 10 | self.args = "-R pkg1 --assume-installed pkg1=1.0" 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("PKG_EXIST=pkg2") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | -------------------------------------------------------------------------------- /test/pacman/tests/remove-directory-replaced-with-symlink.py: -------------------------------------------------------------------------------- 1 | self.description = "remove a package with a directory that has been replaced with a symlink" 2 | 3 | self.filesystem = [ "var/", "srv -> var/" ] 4 | 5 | lpkg = pmpkg("pkg1") 6 | lpkg.files = ["srv/"] 7 | self.addpkg2db("local", lpkg) 8 | 9 | self.args = "-R %s" % (lpkg.name) 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("DIR_EXIST=var/") 13 | self.addrule("!LINK_EXIST=srv") 14 | self.addrule("!FILE_EXIST=srv") 15 | self.addrule("!DIR_EXIST=srv") 16 | self.addrule("!PACMAN_OUTPUT=cannot remove") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/remove-optdepend-of-installed-package.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove packages which is an optdepend of another package" 2 | 3 | p1 = pmpkg("dep") 4 | self.addpkg2db("local", p1) 5 | 6 | p2 = pmpkg("pkg") 7 | p2.optdepends = ["dep: for foobar"] 8 | self.addpkg2db("local", p2) 9 | 10 | self.args = "-R %s" % p1.name 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("!PKG_EXIST=%s" % p1.name) 14 | self.addrule("PKG_EXIST=%s" % p2.name) 15 | self.addrule("PACMAN_OUTPUT=%s optionally requires %s" % (p2.name, p1.name)) 16 | -------------------------------------------------------------------------------- /test/pacman/tests/remove001.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package listed 5 times" 2 | 3 | p = pmpkg("foo") 4 | self.addpkg2db("local", p) 5 | 6 | self.args = "-R " + "foo "*5 7 | 8 | self.addrule("PACMAN_RETCODE=0") 9 | self.addrule("!PKG_EXIST=foo") 10 | -------------------------------------------------------------------------------- /test/pacman/tests/remove002.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package with several files" 2 | 3 | p = pmpkg("foo") 4 | p.files = ["usr/share/file_%d" % n for n in range(1000)] 5 | self.addpkg2db("local", p) 6 | 7 | self.args = "-R %s" % p.name 8 | 9 | self.addrule("PACMAN_RETCODE=0") 10 | self.addrule("!PKG_EXIST=foo") 11 | self.addrule("!FILE_EXIST=usr/share/file_0") 12 | self.addrule("!FILE_EXIST=usr/share/file_999") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/remove010.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package with an unchanged file marked for backup" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.files = ["etc/dummy.conf"] 5 | p1.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", p1) 7 | 8 | self.args = "-R %s" % p1.name 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("!PKG_EXIST=dummy") 12 | self.addrule("!FILE_EXIST=etc/dummy.conf") 13 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/remove011.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package with a modified file marked for backup" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.files = ["etc/dummy.conf*"] 5 | p1.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", p1) 7 | 8 | self.args = "-R %s" % p1.name 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("!PKG_EXIST=dummy") 12 | self.addrule("!FILE_EXIST=etc/dummy.conf") 13 | self.addrule("FILE_PACSAVE=etc/dummy.conf") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/remove020.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package with a file marked for backup (--nosave)" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.files = ["etc/dummy.conf"] 5 | p1.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", p1) 7 | 8 | self.args = "-Rn %s" % p1.name 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("!PKG_EXIST=dummy") 12 | self.addrule("!FILE_EXIST=etc/dummy.conf") 13 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/remove021.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package with a modified file marked for backup (--nosave)" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.files = ["etc/dummy.conf*"] 5 | p1.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", p1) 7 | 8 | self.args = "-Rn %s" % p1.name 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("!PKG_EXIST=dummy") 12 | self.addrule("!FILE_EXIST=etc/dummy.conf") 13 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/remove030.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package in HoldPkg" 2 | 3 | p1 = pmpkg("dummy") 4 | self.addpkg2db("local", p1) 5 | 6 | self.option["HoldPkg"] = ["dummy"] 7 | 8 | self.args = "-R %s" % p1.name 9 | 10 | self.addrule("PACMAN_RETCODE=1") 11 | self.addrule("PKG_EXIST=dummy") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/remove031.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package in HoldPkg" 2 | 3 | p1 = pmpkg("foopkg") 4 | self.addpkg2db("local", p1) 5 | 6 | self.option["HoldPkg"] = ["???pkg"] 7 | 8 | self.args = "-R %s" % p1.name 9 | 10 | self.addrule("PACMAN_RETCODE=1") 11 | self.addrule("PKG_EXIST=foopkg") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/remove040.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package that requires another package" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imaginary"] 9 | self.addpkg2db("local", lp2) 10 | 11 | self.args = "-R %s" % lp1.name 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/remove041.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a no longer needed package (multiple provision)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.provides = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imaginary"] 9 | self.addpkg2db("local", lp2) 10 | 11 | lp3 = pmpkg("pkg3") 12 | lp3.depends = ["imaginary"] 13 | self.addpkg2db("local", lp3) 14 | 15 | self.args = "-R %s" % lp1.name 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("!PKG_EXIST=pkg1") 19 | self.addrule("PKG_EXIST=pkg2") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/remove042.py: -------------------------------------------------------------------------------- 1 | self.description = "Cascade remove a package required by another package" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imaginary"] 9 | self.addpkg2db("local", lp2) 10 | 11 | self.args = "-Rc %s" % lp2.name 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("!PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/remove043.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package required by another package" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imaginary"] 9 | self.addpkg2db("local", lp2) 10 | 11 | self.args = "-R %s" % lp2.name 12 | 13 | self.addrule("!PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/remove044.py: -------------------------------------------------------------------------------- 1 | self.description = "-Rs test" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["pkg2=1.1-1"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2", "1.0-1") 8 | lp2.reason = 1 9 | self.addpkg2db("local", lp2) 10 | 11 | 12 | self.args = "-Rs %s" % lp1.name 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("!PKG_EXIST=pkg1") 16 | self.addrule("PKG_EXIST=pkg2") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/remove045.py: -------------------------------------------------------------------------------- 1 | self.description = "-Rs advanced test" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["pkg2" , "pkg3"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.reason = 1 9 | lp2.depends = ["pkg4"] 10 | self.addpkg2db("local", lp2) 11 | 12 | lp3 = pmpkg("pkg3") 13 | lp3.reason = 1 14 | self.addpkg2db("local", lp3) 15 | 16 | lp4 = pmpkg("pkg4") 17 | lp4.reason = 1 18 | lp4.depends = ["pkg3"] 19 | self.addpkg2db("local", lp4) 20 | 21 | self.args = "-Rs %s" % lp1.name 22 | 23 | self.addrule("PACMAN_RETCODE=0") 24 | self.addrule("!PKG_EXIST=pkg1") 25 | self.addrule("!PKG_EXIST=pkg2") 26 | self.addrule("!PKG_EXIST=pkg3") 27 | self.addrule("!PKG_EXIST=pkg4") 28 | -------------------------------------------------------------------------------- /test/pacman/tests/remove047.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a package required by other packages" 2 | 3 | lp1 = pmpkg("pkg1") 4 | self.addpkg2db("local", lp1) 5 | 6 | lp2 = pmpkg("pkg2") 7 | lp2.depends = ["pkg1"] 8 | self.addpkg2db("local", lp2) 9 | 10 | lp3 = pmpkg("pkg3") 11 | lp3.depends = ["pkg1"] 12 | self.addpkg2db("local", lp3) 13 | 14 | lp4 = pmpkg("pkg4") 15 | lp4.depends = ["pkg1"] 16 | self.addpkg2db("local", lp4) 17 | 18 | self.args = "-R pkg1 pkg2" 19 | 20 | self.addrule("!PACMAN_RETCODE=0") 21 | self.addrule("PKG_EXIST=pkg1") 22 | self.addrule("PKG_EXIST=pkg2") 23 | self.addrule("PKG_EXIST=pkg3") 24 | self.addrule("PKG_EXIST=pkg4") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/remove049.py: -------------------------------------------------------------------------------- 1 | self.description = "-Ru test" 2 | 3 | lp1 = pmpkg("pkg1") 4 | self.addpkg2db("local", lp1) 5 | 6 | lp2 = pmpkg("pkg2") 7 | self.addpkg2db("local", lp2) 8 | 9 | lp3 = pmpkg("pkg3") 10 | lp3.depends = [ "pkg1" ] 11 | self.addpkg2db("local", lp3) 12 | 13 | self.args = "-Ru pkg1 pkg2" 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_EXIST=pkg1") 17 | self.addrule("!PKG_EXIST=pkg2") 18 | self.addrule("PKG_EXIST=pkg3") -------------------------------------------------------------------------------- /test/pacman/tests/remove050.py: -------------------------------------------------------------------------------- 1 | self.description = "-Rs test (exclude explicit)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["pkg2" , "pkg3"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.reason = 1 9 | self.addpkg2db("local", lp2) 10 | 11 | lp3 = pmpkg("pkg3") 12 | lp3.reason = 0 13 | self.addpkg2db("local", lp3) 14 | 15 | self.args = "-Rs %s" % lp1.name 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("!PKG_EXIST=pkg1") 19 | self.addrule("!PKG_EXIST=pkg2") 20 | self.addrule("PKG_EXIST=pkg3") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/remove051.py: -------------------------------------------------------------------------------- 1 | self.description = "-Rss test (include explicit)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["pkg2" , "pkg3"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.reason = 1 9 | self.addpkg2db("local", lp2) 10 | 11 | lp3 = pmpkg("pkg3") 12 | lp3.reason = 0 13 | self.addpkg2db("local", lp3) 14 | 15 | self.args = "-Rss %s" % lp1.name 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("!PKG_EXIST=pkg1") 19 | self.addrule("!PKG_EXIST=pkg2") 20 | self.addrule("!PKG_EXIST=pkg3") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/remove052.py: -------------------------------------------------------------------------------- 1 | self.description = "-Rs test (dependency chain)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["pkg2"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.depends = ["pkg3"] 9 | lp2.reason = 1 10 | self.addpkg2db("local", lp2) 11 | 12 | lp3 = pmpkg("pkg3") 13 | lp3.reason = 1 14 | self.addpkg2db("local", lp3) 15 | 16 | self.args = "-Rs %s" % " ".join([p.name for p in (lp1, lp3)]) 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("!PKG_EXIST=pkg1") 20 | self.addrule("!PKG_EXIST=pkg2") 21 | self.addrule("!PKG_EXIST=pkg3") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/remove060.py: -------------------------------------------------------------------------------- 1 | self.description = "Remove a group" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.groups = ["grp"] 5 | 6 | lp2 = pmpkg("pkg2") 7 | 8 | lp3 = pmpkg("pkg3") 9 | lp3.groups = ["grp"] 10 | 11 | for p in lp1, lp2, lp3: 12 | self.addpkg2db("local", p); 13 | 14 | self.args = "-R grp" 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("!PKG_EXIST=pkg1") 18 | self.addrule("PKG_EXIST=pkg2") 19 | self.addrule("!PKG_EXIST=pkg3") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/replace101.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a versioned replacement, original disappears" 2 | 3 | sp1 = pmpkg("python2-yaml", "5-1") 4 | sp1.replaces = ["python-yaml<5"] 5 | sp1.conflicts = ["python-yaml<5"] 6 | sp1.files = ["lib/python2/file"] 7 | self.addpkg2db("sync", sp1) 8 | 9 | lp1 = pmpkg("python-yaml", "4-1") 10 | lp1.files = ["lib/python2/file"] 11 | self.addpkg2db("local", lp1) 12 | 13 | self.args = "-Su" 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("!PKG_EXIST=python-yaml") 17 | self.addrule("PKG_VERSION=python2-yaml|5-1") 18 | self.addrule("FILE_EXIST=lib/python2/file") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/replace103.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a replace on a provider" 2 | 3 | sp1 = pmpkg("util-linux", "2.19.1-2") 4 | sp1.provides = ["util-linux-ng=2.19.1"] 5 | sp1.conflicts = ["util-linux-ng"] 6 | sp1.replaces = ["util-linux-ng"] 7 | self.addpkg2db("sync", sp1) 8 | 9 | sp2 = pmpkg("util-linux-git", "20110811-1") 10 | sp2.replaces = ["util-linux-ng"] 11 | sp2.conflicts = ["util-linux-ng", "util-linux"] 12 | sp2.provides = ["util-linux", "util-linux-ng"] 13 | self.addpkg2db("local", sp2) 14 | 15 | self.args = "-Su" 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_EXIST=util-linux-git") 19 | self.addrule("!PKG_EXIST=util-linux") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/replace104.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with multiple replaces" 2 | 3 | sdep = pmpkg("common-dep", "1.1-1") 4 | self.addpkg2db("sync", sdep) 5 | 6 | for i in range(3): 7 | sp = pmpkg("split%d" % i, "2.0-1") 8 | sp.depends = ["common-dep"] 9 | sp.replaces = ["notsplit"] 10 | self.addpkg2db("sync", sp) 11 | 12 | ldep = pmpkg("common-dep") 13 | self.addpkg2db("local", ldep) 14 | 15 | lp = pmpkg("notsplit") 16 | lp.depends = ["common-dep"] 17 | self.addpkg2db("local", lp) 18 | 19 | self.args = "-Su" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PKG_VERSION=common-dep|1.1-1") 23 | self.addrule("!PKG_EXIST=notsplit") 24 | for i in range(3): 25 | self.addrule("PKG_VERSION=split%d|2.0-1" % i) 26 | -------------------------------------------------------------------------------- /test/pacman/tests/scriptlet-signal-handling.py: -------------------------------------------------------------------------------- 1 | self.description = "Handle signal interrupts while running scriptlets/hooks" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.install['post_install'] = """ 5 | kill -INT $PPID # send an arbitrary signal that pacman catches 6 | sleep 1 # give alpm time to close the socket if EINTR was not handled 7 | echo to-parent # if the interrupt is not handled this will die with SIGPIPE 8 | echo success > interrupt_was_handled 9 | """ 10 | self.addpkg(p1) 11 | 12 | self.args = "-U %s" % p1.filename() 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("FILE_EXIST=interrupt_was_handled") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/scriptlet-signal-reset.py: -------------------------------------------------------------------------------- 1 | self.description = "Reset signals before running scriptlets/hooks" 2 | 3 | p1 = pmpkg("dummy") 4 | # check if SIGPIPE is ignored, it should be fatal, but GPGME ignores it 5 | p1.install['post_install'] = "kill -PIPE $$; echo fail > sigpipe_was_ignored" 6 | self.addpkg(p1) 7 | 8 | self.args = "-U %s" % p1.filename() 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("!FILE_EXIST=sigpipe_was_ignored") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/scriptlet001.py: -------------------------------------------------------------------------------- 1 | self.description = "Scriptlet test (pre/post install)" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.files = ['etc/dummy.conf'] 5 | p1.install['pre_install'] = "echo foobar > pre_install" 6 | p1.install['post_install'] = "echo foobar > post_install" 7 | self.addpkg(p1) 8 | 9 | self.args = "-U %s" % p1.filename() 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("FILE_EXIST=pre_install") 13 | self.addrule("FILE_EXIST=post_install") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/scriptlet002.py: -------------------------------------------------------------------------------- 1 | self.description = "Scriptlet test (pre/post remove)" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.files = ['etc/dummy.conf'] 5 | p1.install['pre_remove'] = "echo foobar > pre_remove" 6 | p1.install['post_remove'] = "echo foobar > post_remove" 7 | self.addpkg2db("local", p1) 8 | 9 | self.args = "-R %s" % p1.name 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("FILE_EXIST=pre_remove") 13 | self.addrule("FILE_EXIST=post_remove") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/sign001.py: -------------------------------------------------------------------------------- 1 | self.description = "Add a bogus signature to a package DB" 2 | self.require_capability("gpg") 3 | 4 | sp = pmpkg("pkg1") 5 | sp.pgpsig = "asdfasdfsdfasdfsdafasdfsdfasd" 6 | self.addpkg2db("sync+Optional", sp) 7 | 8 | self.args = "-Ss" 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | -------------------------------------------------------------------------------- /test/pacman/tests/sign002.py: -------------------------------------------------------------------------------- 1 | self.description = "Verify a signature in a sync DB (failure)" 2 | 3 | sp = pmpkg("pkg1") 4 | sp.pgpsig = "iEYEABECAAYFAkhMOggACgkQXC5GoPU6du2WVQCffVxF8GKXJIY4juJBIw/ljLrQxygAnj2QlvsUd7MdFekLX18+Ov/xzgZ1" 5 | self.addpkg2db("sync+Required", sp) 6 | 7 | self.args = "-S %s" % sp.name 8 | 9 | self.addrule("PACMAN_RETCODE=1") 10 | self.addrule("!PKG_EXIST=pkg1") 11 | -------------------------------------------------------------------------------- /test/pacman/tests/skip-remove-with-glob-chars.py: -------------------------------------------------------------------------------- 1 | self.description = "transferred file with glob characters that match a removed file" 2 | 3 | lp = pmpkg("foo") 4 | lp.files = ["foo/b*r", "foo/bar"] 5 | self.addpkg2db("local", lp) 6 | 7 | sp1 = pmpkg("foo", "1.0-2") 8 | self.addpkg(sp1) 9 | 10 | sp2 = pmpkg("bar", "1.0-2") 11 | sp2.files = ["foo/b*r"] 12 | self.addpkg(sp2) 13 | 14 | self.args = "-U %s %s" % (sp1.filename(), sp2.filename()) 15 | 16 | self.addrule("PKG_VERSION=foo|1.0-2") 17 | self.addrule("PKG_VERSION=bar|1.0-2") 18 | self.addrule("FILE_EXIST=foo/b*r") 19 | self.addrule("!FILE_EXIST=foo/bar") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/smoke001.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a thousand packages in a single transaction" 2 | 3 | p = pmpkg("pkg1000") 4 | 5 | self.addpkg2db("local", p) 6 | 7 | for i in range(1000): 8 | p = pmpkg("pkg%03d" % i) 9 | p.depends = ["pkg%03d" % (i+1)] 10 | p.files = ["usr/share/pkg%03d" % i] 11 | self.addpkg(p) 12 | 13 | pkglist = [p.filename() for p in self.localpkgs] 14 | self.args = "-U %s" % " ".join(pkglist) 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | #for i in range(1000): 18 | # self.addrule("PKG_EXIST=pkg%03d" %i) 19 | # picked 3 random packages to test for, since the loop is too much to handle 20 | self.addrule("PKG_EXIST=pkg050") 21 | self.addrule("PKG_EXIST=pkg674") 22 | self.addrule("PKG_EXIST=pkg999") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/smoke002.py: -------------------------------------------------------------------------------- 1 | self.description = "Install packages with huge descriptions" 2 | 3 | p1 = pmpkg("pkg1") 4 | p1.desc = 'A' * 500 * 1024 5 | self.addpkg(p1) 6 | 7 | p2 = pmpkg("pkg2") 8 | p2.desc = 'A' * 600 * 1024 9 | self.addpkg(p2) 10 | 11 | self.args = "-U %s %s" % (p1.filename(), p2.filename()) 12 | 13 | # We error out when fed a package with an invalid description; the second one 14 | # fits the bill in this case as the desc is > 512K 15 | self.addrule("PACMAN_RETCODE=1") 16 | self.addrule("!PKG_EXIST=pkg1") 17 | self.addrule("!PKG_EXIST=pkg1") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/smoke004.py: -------------------------------------------------------------------------------- 1 | self.description = "Read a package DB with several PGP signatures" 2 | 3 | for i in range(1000): 4 | sp = pmpkg("pkg%03d" % i) 5 | sp.desc = "test description for package %d" % i 6 | sp.pgpsig = "asdfasdfsdfasdfsdafasdfsdfasd" 7 | self.addpkg2db("sync", sp) 8 | 9 | self.args = "-Ss" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/symlink-replace-with-dir.py: -------------------------------------------------------------------------------- 1 | self.description = "incoming package replaces symlink with directory" 2 | 3 | lp = pmpkg("pkg1") 4 | lp.files = ["usr/lib/foo", 5 | "lib -> usr/lib"] 6 | self.addpkg2db("local", lp) 7 | 8 | p1 = pmpkg("pkg2") 9 | p1.files = ["lib/foo"] 10 | p1.conflicts = ["pkg1"] 11 | self.addpkg2db("sync", p1) 12 | 13 | self.args = "-S pkg2 --ask=4" 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("!PKG_EXIST=pkg1") 17 | self.addrule("PKG_EXIST=pkg2") 18 | self.addrule("FILE_TYPE=lib|dir") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/symlink001.py: -------------------------------------------------------------------------------- 1 | self.description = "Dir symlinks overwritten on install (the perl/git bug)" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["dir/realdir/", 5 | "dir/symdir -> realdir"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("pkg1") 9 | p.files = ["dir/symdir/tmp"] 10 | self.addpkg(p) 11 | 12 | self.args = "-U %s" % p.filename() 13 | 14 | self.addrule("PACMAN_RETCODE=1") 15 | self.addrule("!PKG_EXIST=pkg1") 16 | self.addrule("!FILE_EXIST=dir/symdir/tmp") 17 | self.addrule("!FILE_EXIST=dir/realdir/tmp") 18 | self.addrule("FILE_TYPE=dir/symdir|link") 19 | self.addrule("FILE_TYPE=dir/realdir|dir") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/symlink020.py: -------------------------------------------------------------------------------- 1 | self.description = "symlink -> dir replacment" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.files = ["usr/lib/foo", 5 | "lib -> usr/lib/"] 6 | self.addpkg2db("local", lp1) 7 | 8 | lp1 = pmpkg("pkg2") 9 | lp1.files = ["usr/lib/bar"] 10 | self.addpkg2db("local", lp1) 11 | 12 | sp = pmpkg("pkg1", "1.0-2") 13 | sp.files = ["lib/bar"] 14 | self.addpkg2db("sync", sp) 15 | 16 | self.args = "-S %s" % sp.name 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("FILE_TYPE=lib|dir") 20 | self.addrule("FILE_TYPE=lib/bar|file") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-failover-404-with-body.py: -------------------------------------------------------------------------------- 1 | self.description = "server failover after 404" 2 | self.require_capability("curl") 3 | 4 | p1 = pmpkg('pkg') 5 | self.addpkg2db('sync', p1) 6 | 7 | url_broke = self.add_simple_http_server({ 8 | '/{}'.format(p1.filename()): { 9 | 'code': 404, 10 | 'body': 'a', 11 | } 12 | }) 13 | url_good = self.add_simple_http_server({ 14 | '/{}'.format(p1.filename()): p1.makepkg_bytes(), 15 | }) 16 | 17 | self.db['sync'].option['Server'] = [ url_broke, url_good ] 18 | self.db['sync'].syncdir = False 19 | self.cachepkgs = False 20 | 21 | self.args = '-S pkg' 22 | 23 | self.addrule("PACMAN_RETCODE=0") 24 | self.addrule("PKG_EXIST=pkg") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-install-assumeinstalled.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package using --assume-installed" 2 | 3 | sp1 = pmpkg("pkg2", "2.0-1") 4 | sp1.depends = ["pkg1"] 5 | 6 | self.addpkg2db("sync", sp1); 7 | 8 | self.args = "-S pkg2 --assume-installed pkg1" 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("PKG_EXIST=pkg2") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-nodepversion01.py: -------------------------------------------------------------------------------- 1 | self.description = "nodepversion: -Sd works" 2 | 3 | p1 = pmpkg("pkg1", "1.0-2") 4 | p1.depends = ["provision>1.0-1"] 5 | self.addpkg2db("sync", p1) 6 | 7 | p2 = pmpkg("pkg2", "1.0-2") 8 | p2.provides = ["provision=1.0-1"] 9 | self.addpkg2db("sync", p2) 10 | 11 | self.args = "-Sd %s" % p1.name 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | self.addrule("PKG_DEPENDS=pkg1|provision>1.0-1") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-nodepversion02.py: -------------------------------------------------------------------------------- 1 | self.description = "nodepversion: -S fails" 2 | 3 | p1 = pmpkg("pkg1", "1.0-2") 4 | p1.depends = ["provision>=1.0-2"] 5 | self.addpkg2db("sync", p1) 6 | 7 | p2 = pmpkg("pkg2", "1.0-2") 8 | p2.provides = ["provision=1.0-1"] 9 | self.addpkg2db("sync", p2) 10 | 11 | self.args = "-S %s" % p1.name 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("!PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-nodepversion03.py: -------------------------------------------------------------------------------- 1 | self.description = "nodepversion: -Sdd works but no deps" 2 | 3 | p1 = pmpkg("pkg1", "1.0-2") 4 | p1.depends = ["provision>=1.0-2"] 5 | self.addpkg2db("sync", p1) 6 | 7 | p2 = pmpkg("pkg2", "1.0-2") 8 | p2.provides = ["provision=1.0-1"] 9 | self.addpkg2db("sync", p2) 10 | 11 | self.args = "-Sdd %s" % p1.name 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=pkg1") 15 | self.addrule("!PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-nodepversion04.py: -------------------------------------------------------------------------------- 1 | self.description = "nodepversion: provision does not exist" 2 | 3 | p1 = pmpkg("pkg1", "1.0-2") 4 | p1.depends = ["invalid>=1.0-2"] 5 | self.addpkg2db("sync", p1) 6 | 7 | p2 = pmpkg("pkg2", "1.0-2") 8 | p2.provides = ["provision=1.0-1"] 9 | self.addpkg2db("sync", p2) 10 | 11 | self.args = "-Sd %s" % p1.name 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("!PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-nodepversion05.py: -------------------------------------------------------------------------------- 1 | self.description = "nodepversion: -Sud works" 2 | 3 | p1 = pmpkg("pkg1", "1.0-1") 4 | p1.depends = ["provision=1.0"] 5 | self.addpkg2db("local", p1) 6 | 7 | p2 = pmpkg("pkg2", "1.0-1") 8 | p2.provides = ["provision=1.0"] 9 | self.addpkg2db("local", p2) 10 | 11 | sp2 = pmpkg("pkg2", "1.1-1") 12 | sp2.provides = ["provision=1.1"] 13 | self.addpkg2db("sync", sp2) 14 | 15 | self.args = "-Sud" 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_VERSION=pkg1|1.0-1") 19 | self.addrule("PKG_VERSION=pkg2|1.1-1") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-nodepversion06.py: -------------------------------------------------------------------------------- 1 | self.description = "nodepversion: -Su fails" 2 | 3 | p1 = pmpkg("pkg1", "1.0-1") 4 | p1.depends = ["provision=1.0"] 5 | self.addpkg2db("local", p1) 6 | 7 | p2 = pmpkg("pkg2", "1.0-1") 8 | p2.provides = ["provision=1.0"] 9 | self.addpkg2db("local", p2) 10 | 11 | sp2 = pmpkg("pkg2", "1.1-1") 12 | sp2.provides = ["provision=1.1"] 13 | self.addpkg2db("sync", sp2) 14 | 15 | self.args = "-Su" 16 | 17 | self.addrule("PACMAN_RETCODE=1") 18 | self.addrule("PKG_VERSION=pkg1|1.0-1") 19 | self.addrule("PKG_VERSION=pkg2|1.0-1") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-sysupgrade-print-replaced-packages.py: -------------------------------------------------------------------------------- 1 | self.description = "Print replacements when using -Sup" 2 | 3 | 4 | lp = pmpkg("a", "1-1") 5 | self.addpkg2db("local", lp) 6 | 7 | sp = pmpkg("b", "2-2") 8 | sp.replaces = ["a"] 9 | self.addpkg2db("sync", sp) 10 | 11 | self.args = "-Sup" 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PACMAN_OUTPUT=%s-%s" % (sp.name, sp.version)) 15 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-update-assumeinstalled.py: -------------------------------------------------------------------------------- 1 | self.description = "Update a package using --assume-installed" 2 | 3 | lp1 = pmpkg("pkg1", "1.0-1") 4 | 5 | lp2 = pmpkg("pkg2", "1.0-1") 6 | lp2.depends = ["pkg1=1.0"] 7 | 8 | sp1 = pmpkg("pkg1", "2.0-1") 9 | 10 | for p in lp1, lp2: 11 | self.addpkg2db("local", p); 12 | 13 | self.addpkg2db("sync", sp1); 14 | 15 | self.args = "-Su --assume-installed pkg1=1.0" 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_VERSION=pkg1|2.0-1") 19 | self.addrule("PKG_EXIST=pkg2") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/sync-update-package-removing-required-provides.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package that loses a provides entry which moves to a dedicated package" 2 | 3 | lp1 = pmpkg("pkg1", "1-1") 4 | lp1.provides = ["feature=1"] 5 | lp2 = pmpkg("pkg2") 6 | lp2.depends = ["feature"] 7 | 8 | for p in lp1, lp2: 9 | self.addpkg2db("local", p) 10 | 11 | sp1 = pmpkg("pkg1", "2-1") 12 | # NOTE: no provides for feature anymore 13 | sp2 = pmpkg("feature", "2-1") 14 | 15 | for p in sp1, sp2: 16 | self.addpkg2db("sync", p) 17 | 18 | self.args = "-Su" 19 | 20 | self.addrule("PACMAN_RETCODE=0") 21 | self.addrule("PKG_VERSION=feature|2-1") 22 | self.addrule("PKG_VERSION=pkg1|2-1") 23 | self.expectfailure = True 24 | -------------------------------------------------------------------------------- /test/pacman/tests/sync001.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package from a sync db" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("sync", sp) 7 | 8 | self.args = "-S %s" % sp.name 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("PKG_EXIST=dummy") 12 | for f in sp.files: 13 | self.addrule("FILE_EXIST=%s" % f) 14 | -------------------------------------------------------------------------------- /test/pacman/tests/sync002.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package from a sync db" 2 | 3 | sp = pmpkg("dummy", "1.0-2") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("sync", sp) 7 | 8 | lp = pmpkg("dummy") 9 | lp.files = ["bin/dummy", 10 | "usr/man/man1/dummy.1"] 11 | self.addpkg2db("local", lp) 12 | 13 | self.args = "-S %s" % sp.name 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=dummy|1.0-2") 17 | for f in lp.files: 18 | self.addrule("FILE_MODIFIED=%s" % f) 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync003.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package from a sync db, with a filesystem conflict" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("sync", sp) 7 | 8 | self.filesystem = ["bin/dummy"] 9 | 10 | self.args = "-S %s" % sp.name 11 | 12 | self.addrule("PACMAN_RETCODE=1") 13 | self.addrule("!PKG_EXIST=dummy") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/sync009.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package from a sync db" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("sync", sp) 7 | 8 | self.args = "-S %s" % sp.name 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("PKG_EXIST=dummy") 12 | for f in sp.files: 13 | self.addrule("FILE_EXIST=%s" % f) 14 | -------------------------------------------------------------------------------- /test/pacman/tests/sync011.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package from a sync db with cascaded dependencies + provides" 2 | 3 | sp1 = pmpkg("dummy", "1.0-2") 4 | sp1.depends = ["dep1", "dep2=1.0-2"] 5 | 6 | sp2 = pmpkg("dep1") 7 | sp2.files = ["bin/dep1"] 8 | sp2.provides = ["dep2"] 9 | 10 | sp3 = pmpkg("dep2", "1.0-2") 11 | 12 | for p in sp1, sp2, sp3: 13 | self.addpkg2db("sync", p); 14 | 15 | self.args = "-S %s" % sp1.name 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_VERSION=dummy|1.0-2") 19 | self.addrule("PKG_EXIST=dep1") 20 | self.addrule("PKG_EXIST=dep2") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/sync012.py: -------------------------------------------------------------------------------- 1 | self.description = "Install packages from a sync db with circular dependencies" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.depends = ["pkg2"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | sp2.depends = ["pkg3"] 8 | 9 | sp3 = pmpkg("pkg3") 10 | sp3.depends = ["pkg1"] 11 | 12 | for p in sp1, sp2, sp3: 13 | self.addpkg2db("sync", p); 14 | 15 | self.args = "-S %s" % sp1.name 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_EXIST=pkg1") 19 | self.addrule("PKG_EXIST=pkg2") 20 | self.addrule("PKG_EXIST=pkg3") 21 | self.addrule("PACMAN_OUTPUT=dependency cycle detected") 22 | self.addrule("PACMAN_OUTPUT=pkg3 will be installed before its pkg1 dependency") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/sync020.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a group from a sync db" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.groups = ["grp"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | sp2.groups = ["grp"] 8 | 9 | sp3 = pmpkg("pkg3") 10 | sp3.groups = ["grp"] 11 | 12 | for p in sp1, sp2, sp3: 13 | self.addpkg2db("sync", p); 14 | 15 | self.args = "-S %s" % "grp" 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | for p in sp1, sp2, sp3: 19 | self.addrule("PKG_EXIST=%s" % p.name) 20 | -------------------------------------------------------------------------------- /test/pacman/tests/sync021.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a group from a sync db with a package in IgnorePkg" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.groups = ["grp"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | sp2.groups = ["grp"] 8 | 9 | sp3 = pmpkg("pkg3") 10 | sp3.groups = ["grp"] 11 | 12 | for p in sp1, sp2, sp3: 13 | self.addpkg2db("sync", p); 14 | 15 | self.option["IgnorePkg"] = ["pkg2"] 16 | 17 | self.args = "-S grp" 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | for p in sp1, sp2, sp3: 21 | self.addrule("PKG_EXIST=%s" % p.name) 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync022.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a group from a sync db using --needed" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp2 = pmpkg("pkg2") 5 | lp3 = pmpkg("pkg3") 6 | 7 | sp1 = pmpkg("pkg1", "1.1-1") 8 | sp2 = pmpkg("pkg2") 9 | sp3 = pmpkg("pkg3") 10 | 11 | for p in lp1, lp2, lp3, sp1, sp2, sp3: 12 | setattr(p, "groups", ["grp"]) 13 | 14 | for p in lp1, lp2, lp3: 15 | self.addpkg2db("local", p) 16 | 17 | for p in sp1, sp2, sp3: 18 | self.addpkg2db("sync", p); 19 | 20 | self.args = "-S --needed grp" 21 | 22 | self.addrule("PACMAN_RETCODE=0") 23 | for p in sp1, sp2, sp3: 24 | self.addrule("PKG_EXIST=%s" % p.name) 25 | self.addrule("PKG_VERSION=pkg1|1.1-1") 26 | -------------------------------------------------------------------------------- /test/pacman/tests/sync024.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a group from a sync db repo/group syntax" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp2 = pmpkg("pkg2") 5 | sp3 = pmpkg("pkg3") 6 | newp1 = pmpkg("pkg1", "1.2-1") 7 | 8 | for p in sp1, sp2, sp3, newp1: 9 | setattr(p, "groups", ["grp"]) 10 | 11 | self.addpkg2db("testing", newp1); 12 | 13 | for p in sp1, sp2, sp3: 14 | self.addpkg2db("sync", p); 15 | 16 | self.args = "-S testing/grp" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | for p in sp2, sp3: 20 | self.addrule("!PKG_EXIST=%s" % p.name) 21 | self.addrule("PKG_EXIST=%s" % newp1.name) 22 | # The newer version should still be installed 23 | self.addrule("PKG_VERSION=pkg1|1.2-1") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/sync030.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync packages non-explicitly" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.reason = 0 5 | self.addpkg2db("local", lp1) 6 | 7 | p1 = pmpkg("pkg1", "1.0-2") 8 | p2 = pmpkg("pkg2", "1.0-2") 9 | 10 | for p in p1, p2: 11 | self.addpkg2db("sync", p) 12 | 13 | self.args = "-S --asdeps %s" % " ".join([p.name for p in (p1, p2)]) 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=pkg1|1.0-2") 17 | self.addrule("PKG_VERSION=pkg2|1.0-2") 18 | self.addrule("PKG_REASON=pkg1|1") 19 | self.addrule("PKG_REASON=pkg2|1") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/sync031.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync packages explicitly" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.reason = 1 5 | self.addpkg2db("local", lp1) 6 | 7 | p1 = pmpkg("pkg1", "1.0-2") 8 | p2 = pmpkg("pkg2", "1.0-2") 9 | 10 | for p in p1, p2: 11 | self.addpkg2db("sync", p) 12 | 13 | self.args = "-S --asexplicit %s" % " ".join([p.name for p in (p1, p2)]) 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=pkg1|1.0-2") 17 | self.addrule("PKG_VERSION=pkg2|1.0-2") 18 | self.addrule("PKG_REASON=pkg1|0") 19 | self.addrule("PKG_REASON=pkg2|0") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/sync040.py: -------------------------------------------------------------------------------- 1 | self.description = "Install two targets from a sync db with a conflict" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.conflicts = ["pkg2"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | 8 | for p in sp1, sp2: 9 | self.addpkg2db("sync", p); 10 | 11 | self.args = "-S %s" % " ".join([p.name for p in (sp1, sp2)]) 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | for p in sp1, sp2: 15 | self.addrule("!PKG_EXIST=%s" % p.name) 16 | -------------------------------------------------------------------------------- /test/pacman/tests/sync041.py: -------------------------------------------------------------------------------- 1 | self.description = "Install two conflicting targets" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.conflicts = ["pkg2"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | sp2.conflicts = ["pkg1"] 8 | 9 | for p in sp1, sp2: 10 | self.addpkg2db("sync", p); 11 | 12 | self.args = "-S %s" % " ".join([p.name for p in (sp1, sp2)]) 13 | 14 | self.addrule("PACMAN_RETCODE=1") 15 | self.addrule("!PKG_EXIST=pkg1") 16 | self.addrule("!PKG_EXIST=pkg2") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/sync042.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a sync package conflicting with a local one" 2 | 3 | sp = pmpkg("pkg1") 4 | sp.conflicts = ["pkg2"] 5 | self.addpkg2db("sync", sp); 6 | 7 | lp = pmpkg("pkg2") 8 | self.addpkg2db("local", lp); 9 | 10 | self.args = "-S %s" % sp.name 11 | 12 | self.addrule("PACMAN_RETCODE=1") 13 | self.addrule("!PKG_EXIST=pkg1") 14 | self.addrule("PKG_EXIST=pkg2") 15 | -------------------------------------------------------------------------------- /test/pacman/tests/sync043.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a sync package conflicting with two local ones" 2 | 3 | sp = pmpkg("pkg1") 4 | sp.conflicts = ["pkg2", "pkg3"] 5 | self.addpkg2db("sync", sp); 6 | 7 | lp1 = pmpkg("pkg2") 8 | self.addpkg2db("local", lp1); 9 | 10 | lp2 = pmpkg("pkg3") 11 | self.addpkg2db("local", lp2); 12 | 13 | self.args = "-S %s --ask=4" % sp.name 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_EXIST=pkg1") 17 | self.addrule("!PKG_EXIST=pkg2") 18 | self.addrule("!PKG_EXIST=pkg3") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync044.py: -------------------------------------------------------------------------------- 1 | self.description = "A dependency induces a replacement" 2 | 3 | lp1 = pmpkg("pkg1") 4 | self.addpkg2db("local", lp1); 5 | 6 | sp2 = pmpkg("pkg2") 7 | sp2.depends = ["pkg3"] 8 | self.addpkg2db("sync", sp2); 9 | 10 | sp3 = pmpkg("pkg3") 11 | sp3.conflicts = ["pkg1"] 12 | self.addpkg2db("sync", sp3); 13 | 14 | self.args = "-S pkg2 --ask=4" 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("!PKG_EXIST=pkg1") 18 | self.addrule("PKG_EXIST=pkg2") 19 | self.addrule("PKG_EXIST=pkg3") 20 | self.addrule("PKG_REASON=pkg3|1") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/sync045.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a sync package conflicting with two local ones (-dd)" 2 | 3 | sp = pmpkg("pkg1") 4 | sp.conflicts = ["pkg2", "pkg3"] 5 | self.addpkg2db("sync", sp); 6 | 7 | lp1 = pmpkg("pkg2") 8 | self.addpkg2db("local", lp1); 9 | 10 | lp2 = pmpkg("pkg3") 11 | self.addpkg2db("local", lp2); 12 | 13 | self.args = "-Sdd %s --ask=4" % sp.name 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_EXIST=pkg1") 17 | self.addrule("!PKG_EXIST=pkg2") 18 | self.addrule("!PKG_EXIST=pkg3") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync050.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a virtual target (provided by a sync package)" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.provides = ["pkg2"] 5 | self.addpkg2db("sync", sp1); 6 | 7 | self.args = "-S %s" % sp1.name 8 | 9 | self.addrule("PACMAN_RETCODE=0") 10 | self.addrule("PKG_EXIST=pkg1") 11 | self.addrule("!PKG_EXIST=pkg2") 12 | -------------------------------------------------------------------------------- /test/pacman/tests/sync051.py: -------------------------------------------------------------------------------- 1 | self.description = "upgrade a package with a disabled repo" 2 | 3 | sp = pmpkg("dummy", "2.0-1") 4 | self.addpkg2db("syncdisabled", sp) 5 | 6 | sp = pmpkg("dummy", "1.0-2") 7 | self.addpkg2db("sync", sp) 8 | 9 | lp = pmpkg("dummy", "1.0-1") 10 | self.addpkg2db("local", lp) 11 | 12 | self.args = "-S %s" % sp.name 13 | 14 | self.db['syncdisabled'].option['Usage'] = ['Search'] 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_VERSION=dummy|1.0-2") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/sync052.py: -------------------------------------------------------------------------------- 1 | self.description = "sysupgrade with a disabled repo" 2 | 3 | sp = pmpkg("dummy", "1.0-2") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("dummy", "1.0-1") 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Syu" 10 | 11 | self.db['sync'].option['Usage'] = ['Search'] 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_VERSION=dummy|1.0-1") 15 | -------------------------------------------------------------------------------- /test/pacman/tests/sync100.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a newer sync package" 2 | 3 | sp = pmpkg("dummy", "1.0-2") 4 | lp = pmpkg("dummy") 5 | 6 | self.addpkg2db("sync", sp) 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Su" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_VERSION=dummy|1.0-2") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1000.py: -------------------------------------------------------------------------------- 1 | # If someone else can come up with a better name, please do so 2 | self.description = "stonecrest's problem" 3 | 4 | sp = pmpkg("dummy", "1.1-1") 5 | self.addpkg2db("sync", sp) 6 | 7 | lp1 = pmpkg("dummy", "1.0-1") 8 | self.addpkg2db("local", lp1) 9 | 10 | lp2 = pmpkg("pkg") 11 | lp2.depends = [ "dummy=1.0" ] 12 | self.addpkg2db("local", lp2) 13 | 14 | self.args = "-Su" 15 | 16 | self.addrule("!PACMAN_RETCODE=0") 17 | self.addrule("!PKG_VERSION=dummy|1.1-1") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1003.py: -------------------------------------------------------------------------------- 1 | self.description = "Induced removal would break dependency" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.replaces = [ "pkg2" ] 5 | self.addpkg2db("sync", sp1) 6 | 7 | lp2 = pmpkg("pkg2", "1.0-1") 8 | self.addpkg2db("local", lp2) 9 | 10 | lp3 = pmpkg("pkg3", "1.0-1") 11 | lp3.depends = [ "pkg2=1.0" ] 12 | self.addpkg2db("local", lp3) 13 | 14 | self.args = "-Su" 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("!PKG_EXIST=pkg1") 18 | self.addrule("PKG_EXIST=pkg2") 19 | self.addrule("PKG_EXIST=pkg3") 20 | self.addrule("PKG_VERSION=pkg2|1.0-1") 21 | self.addrule("PKG_VERSION=pkg3|1.0-1") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1004.py: -------------------------------------------------------------------------------- 1 | self.description = "Induced removal would break dependency (2)" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.conflicts = [ "depend" ] 5 | self.addpkg2db("sync", sp1) 6 | 7 | sp2 = pmpkg("pkg2") 8 | sp2.depends = ["depend"] 9 | self.addpkg2db("sync", sp2) 10 | 11 | lp = pmpkg("depend") 12 | self.addpkg2db("local", lp) 13 | 14 | self.args = "-S pkg1 pkg2 --ask=4" 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("PKG_EXIST=depend") 18 | 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1008.py: -------------------------------------------------------------------------------- 1 | self.description = "Conflicting package names in sync repos" 2 | 3 | sp1 = pmpkg("cpkg", "1.0-1") 4 | sp1.provides = [ "provision1" ] 5 | self.addpkg2db("sync1", sp1) 6 | 7 | sp2 = pmpkg("cpkg", "2.0-1") 8 | sp2.provides = [ "provision2" ] 9 | self.addpkg2db("sync2", sp2) 10 | 11 | sp3 = pmpkg("pkg") 12 | sp3.depends = [ "provision1" , "provision2" ] 13 | self.addpkg2db("sync1", sp3) 14 | 15 | self.args = "-S pkg" 16 | 17 | self.addrule("PACMAN_RETCODE=1") 18 | self.addrule("!PKG_EXIST=pkg") 19 | self.addrule("!PKG_EXIST=cpkg") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/sync101.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with same version for local and sync packages" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/foo"] 5 | lp = pmpkg("dummy") 6 | lp.files = ["bin/foo"] 7 | 8 | self.addpkg2db("sync", sp) 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-Su" 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_VERSION=dummy|1.0-1") 15 | self.addrule("!FILE_MODIFIED=bin/foo") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/sync102.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a newer local package" 2 | 3 | sp = pmpkg("dummy", "0.9-1") 4 | sp.files = ["bin/foo", "bin/bar"] 5 | lp = pmpkg("dummy") 6 | lp.files = ["bin/foo", "bin/baz"] 7 | 8 | self.addpkg2db("sync", sp) 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-Su" 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_VERSION=dummy|1.0-1") 15 | self.addrule("FILE_EXIST=bin/foo") 16 | self.addrule("FILE_EXIST=bin/baz") 17 | self.addrule("!FILE_EXIST=bin/bar") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/sync103.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a local package not existing in sync db" 2 | 3 | sp = pmpkg("spkg") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("lpkg") 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Su" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_EXIST=lpkg") 13 | self.addrule("!PKG_EXIST=spkg") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/sync104.py: -------------------------------------------------------------------------------- 1 | self.description = "-Suu" 2 | 3 | sp = pmpkg("dummy", "0.9-1") 4 | lp = pmpkg("dummy", "1.0-1") 5 | 6 | self.addpkg2db("sync", sp) 7 | self.addpkg2db("local", lp) 8 | 9 | self.args = "-Suu" 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_VERSION=dummy|0.9-1") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/sync110.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade of a package pulling new dependencies" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.depends = ["pkg2"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | sp2.depends = ["pkg3"] 8 | 9 | sp3 = pmpkg("pkg3") 10 | 11 | for p in sp1, sp2, sp3: 12 | self.addpkg2db("sync", p) 13 | 14 | lp1 = pmpkg("pkg1") 15 | self.addpkg2db("local", lp1) 16 | 17 | self.args = "-Su" 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | self.addrule("PKG_VERSION=pkg1|1.0-2") 21 | for p in sp2, sp3: 22 | self.addrule("PKG_REASON=%s|1" % p.name) 23 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1100.py: -------------------------------------------------------------------------------- 1 | self.description = "Get info on package from a sync db" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | sp.desc = "test description" 7 | sp.groups = ["foo"] 8 | sp.url = "http://www.archlinux.org" 9 | sp.license = "GPL2" 10 | sp.arch = "i686" 11 | sp.packager = "Arch Linux" 12 | sp.md5sum = "00000000000000000000000000000000" 13 | 14 | self.addpkg2db("sync", sp) 15 | 16 | self.args = "-Si %s" % sp.name 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("PACMAN_OUTPUT=^Name.*%s" % sp.name) 20 | self.addrule("PACMAN_OUTPUT=^Description.*%s" % sp.desc) 21 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1101.py: -------------------------------------------------------------------------------- 1 | self.description = "Search for package from a sync db" 2 | 3 | sp = pmpkg("dummy") 4 | sp.groups = ["group1", "group2"] 5 | sp.files = ["bin/dummy", 6 | "usr/man/man1/dummy.1"] 7 | self.addpkg2db("sync", sp) 8 | 9 | self.args = "-Ss %s" % sp.name 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PACMAN_OUTPUT=^sync/%s" % sp.name) 13 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1102.py: -------------------------------------------------------------------------------- 1 | self.description = "Get URL on package from a sync db" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("sync", sp) 7 | 8 | self.args = "-Sp %s" % sp.name 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("PACMAN_OUTPUT=%s" % sp.name) 12 | self.addrule("PACMAN_OUTPUT=file://") 13 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1103.py: -------------------------------------------------------------------------------- 1 | self.description = "Get package list from sync dbs" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("sync", sp) 7 | 8 | self.args = "-Sl" 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("PACMAN_OUTPUT=^sync %s" % sp.name) 12 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1104.py: -------------------------------------------------------------------------------- 1 | self.description = "Don't update (reinstall) a replaced package" 2 | 3 | lp = pmpkg("old", "1-1") 4 | self.addpkg2db("local", lp) 5 | 6 | p1 = pmpkg("new") 7 | p1.provides = ["old"] 8 | p1.replaces = ["old"] 9 | self.addpkg2db("sync1", p1) 10 | 11 | p2 = pmpkg("old", "1-2") 12 | self.addpkg2db("sync2", p2) 13 | 14 | self.args = "-Su" 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("!PKG_EXIST=old") 18 | self.addrule("PKG_EXIST=new") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync1105.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade with a replacement in a repo with lower prioriy" 2 | 3 | sp1 = pmpkg("pkg2") 4 | self.addpkg2db("sync1", sp1) 5 | 6 | sp2 = pmpkg("pkg1") 7 | sp2.replaces = ["pkg2"] 8 | self.addpkg2db("sync2", sp2) 9 | 10 | lp = pmpkg("pkg2") 11 | self.addpkg2db("local", lp) 12 | 13 | self.args = "-Su" 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("!PKG_EXIST=pkg1") 17 | self.addrule("PKG_EXIST=pkg2") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/sync120.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade of packages in 'IgnorePkg'" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp2 = pmpkg("pkg2", "1.0-2") 5 | 6 | for p in sp1, sp2: 7 | self.addpkg2db("sync", p) 8 | 9 | lp1 = pmpkg("pkg1") 10 | lp2 = pmpkg("pkg2") 11 | 12 | for p in lp1, lp2: 13 | self.addpkg2db("local", p) 14 | 15 | self.option["IgnorePkg"] = ["pkg2"] 16 | 17 | self.args = "-Su" 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | self.addrule("PKG_VERSION=pkg1|1.0-2") 21 | self.addrule("PKG_VERSION=pkg2|1.0-1") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync130.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a sync package replacing a local one" 2 | 3 | sp = pmpkg("pkg2") 4 | sp.replaces = ["pkg1"] 5 | 6 | self.addpkg2db("sync", sp) 7 | 8 | lp = pmpkg("pkg1") 9 | 10 | self.addpkg2db("local", lp) 11 | 12 | self.args = "-Su" 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("!PKG_EXIST=pkg1") 16 | self.addrule("PKG_EXIST=pkg2") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/sync131.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a sync package replacing a set of local ones" 2 | 3 | sp = pmpkg("pkg4") 4 | sp.replaces = ["pkg1", "pkg2", "pkg3"] 5 | self.addpkg2db("sync", sp) 6 | 7 | lp1 = pmpkg("pkg1") 8 | self.addpkg2db("local", lp1) 9 | 10 | lp2 = pmpkg("pkg2") 11 | self.addpkg2db("local", lp2) 12 | 13 | self.args = "-Su" 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_EXIST=pkg4") 17 | self.addrule("!PKG_EXIST=pkg1") 18 | self.addrule("!PKG_EXIST=pkg2") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync132.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a replacement for a local package out of date" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.replaces = ["pkg2"] 5 | sp2 = pmpkg("pkg2", "2.0-1") 6 | 7 | for p in sp1, sp2: 8 | self.addpkg2db("sync", p) 9 | 10 | lp = pmpkg("pkg2") 11 | 12 | self.addpkg2db("local", lp) 13 | 14 | self.args = "-Su" 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_EXIST=pkg1") 18 | self.addrule("!PKG_EXIST=pkg2") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync133.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a sync package replacing a local one in 'IgnorePkg'" 2 | 3 | sp = pmpkg("pkg2") 4 | sp.replaces = ["pkg1"] 5 | 6 | self.addpkg2db("sync", sp) 7 | 8 | lp = pmpkg("pkg1") 9 | 10 | self.addpkg2db("local", lp) 11 | 12 | self.option["IgnorePkg"] = ["pkg1"] 13 | 14 | self.args = "-Su" 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_EXIST=pkg1") 18 | self.addrule("!PKG_EXIST=pkg2") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync134.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a set of sync packages replacing a local one" 2 | 3 | sp1 = pmpkg("pkg2") 4 | sp1.replaces = ["pkg1"] 5 | 6 | sp2 = pmpkg("pkg3") 7 | sp2.replaces = ["pkg1"] 8 | 9 | for p in sp1, sp2: 10 | self.addpkg2db("sync", p) 11 | 12 | lp = pmpkg("pkg1") 13 | 14 | self.addpkg2db("local", lp) 15 | 16 | self.args = "-Su" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("!PKG_EXIST=pkg1") 20 | for p in sp1, sp2: 21 | self.addrule("PKG_EXIST=%s" % p.name) 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync136.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a sync package forcing a downgrade" 2 | 3 | sp = pmpkg("dummy", "1:1.0-1") 4 | 5 | self.addpkg2db("sync", sp) 6 | 7 | lp = pmpkg("dummy", "1.0-2") 8 | 9 | self.addpkg2db("local", lp) 10 | 11 | self.args = "-Su" 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_VERSION=dummy|1:1.0-1") 15 | -------------------------------------------------------------------------------- /test/pacman/tests/sync137.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade with a force and ignore on same package" 2 | 3 | lp = pmpkg("dummy", "1.0-1") 4 | 5 | self.addpkg2db("local", lp) 6 | 7 | sp = pmpkg("dummy", "1:1.0-2") 8 | self.addpkg2db("sync", sp) 9 | 10 | self.args = "-Su --ignore %s" % lp.name 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("PKG_VERSION=dummy|1.0-1") 14 | -------------------------------------------------------------------------------- /test/pacman/tests/sync138.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade of packages in 'IgnoreGroup'" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp2 = pmpkg("pkg2", "1.0-2") 5 | sp2.groups = ["grp"] 6 | 7 | for p in sp1, sp2: 8 | self.addpkg2db("sync", p) 9 | 10 | lp1 = pmpkg("pkg1") 11 | lp2 = pmpkg("pkg2") 12 | 13 | for p in lp1, lp2: 14 | self.addpkg2db("local", p) 15 | 16 | self.option["IgnoreGroup"] = ["grp"] 17 | 18 | self.args = "-Su" 19 | 20 | self.addrule("PACMAN_RETCODE=0") 21 | self.addrule("PKG_VERSION=pkg1|1.0-2") 22 | self.addrule("PKG_VERSION=pkg2|1.0-1") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/sync139.py: -------------------------------------------------------------------------------- 1 | self.description = "Sysupgrade of packages in fnmatch'd IgnoreGroup" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.groups = ["grp"] 5 | sp2 = pmpkg("pkg2", "1.0-2") 6 | sp2.groups = ["grp2"] 7 | 8 | for p in sp1, sp2: 9 | self.addpkg2db("sync", p) 10 | 11 | lp1 = pmpkg("pkg1", "1.0-1") 12 | lp2 = pmpkg("pkg2", "1.0-1") 13 | 14 | for p in lp1, lp2: 15 | self.addpkg2db("local", p) 16 | 17 | self.option["IgnoreGroup"] = ["grp"] 18 | 19 | self.args = "-Su" 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PKG_VERSION=pkg1|1.0-1") 23 | self.addrule("PKG_VERSION=pkg2|1.0-2") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/sync150.py: -------------------------------------------------------------------------------- 1 | self.description = "-Su foo" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.depends = ["pkg2"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | sp2.depends = ["pkg3"] 8 | 9 | sp3 = pmpkg("pkg3") 10 | 11 | sp4 = pmpkg("pkg4") 12 | 13 | for p in sp1, sp2, sp3, sp4: 14 | self.addpkg2db("sync", p) 15 | 16 | lp1 = pmpkg("pkg1") 17 | self.addpkg2db("local", lp1) 18 | 19 | self.args = "-Su %s" % sp4.name 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PKG_VERSION=pkg1|1.0-2") 23 | for p in sp2, sp3: 24 | self.addrule("PKG_REASON=%s|1" % p.name) 25 | self.addrule("PKG_REASON=%s|0" % sp4.name) 26 | -------------------------------------------------------------------------------- /test/pacman/tests/sync200.py: -------------------------------------------------------------------------------- 1 | self.description = "Synchronize the local database" 2 | 3 | self.option['XferCommand'] = ['/usr/bin/curl %u -o %o'] 4 | 5 | sp1 = pmpkg("spkg1", "1.0-1") 6 | sp1.depends = ["spkg2"] 7 | sp2 = pmpkg("spkg2", "2.0-1") 8 | sp2.depends = ["spkg3"] 9 | sp3 = pmpkg("spkg3", "3.0-1") 10 | sp3.depends = ["spkg1"] 11 | 12 | for sp in sp1, sp2, sp3: 13 | self.addpkg2db("sync", sp) 14 | 15 | self.args = "-Sy" 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/sync300.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync with corrupt database (broken deps)" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.depends = ["pkg2=1.1"] 5 | self.addpkg2db("sync", sp1) 6 | 7 | sp2 = pmpkg("pkg2", "1.0-1") 8 | self.addpkg2db("sync", sp2) 9 | 10 | self.args = "-S %s" % sp1.name 11 | 12 | self.addrule("PACMAN_RETCODE=1") 13 | self.addrule("!PKG_EXIST=pkg1") 14 | self.addrule("!PKG_EXIST=pkg2") 15 | -------------------------------------------------------------------------------- /test/pacman/tests/sync400.py: -------------------------------------------------------------------------------- 1 | self.description = "Install package with dep that conflicts with older version of package" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.depends = ["pkg2=1.0-2"] 5 | self.addpkg2db("sync", sp1) 6 | 7 | sp2 = pmpkg("pkg2", "1.0-2") 8 | sp2.conflicts = [ "pkg1=1.0-1" ] 9 | self.addpkg2db("sync", sp2) 10 | 11 | lp1 = pmpkg("pkg1", "1.0-1") 12 | lp1.depends = ["pkg2=1.0-1"] 13 | self.addpkg2db("local", lp1) 14 | 15 | lp2 = pmpkg("pkg2", "1.0-1") 16 | self.addpkg2db("local", lp2) 17 | 18 | self.args = "-S pkg1" 19 | 20 | self.addrule("PACMAN_RETCODE=0") 21 | self.addrule("PKG_EXIST=pkg1") 22 | self.addrule("PKG_VERSION=pkg1|1.0-2") 23 | self.addrule("PKG_EXIST=pkg2") 24 | self.addrule("PKG_VERSION=pkg2|1.0-2") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/sync401.py: -------------------------------------------------------------------------------- 1 | self.description = "Ensure we choose provider already in target list" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.depends = ["dep"] 5 | self.addpkg2db("sync", sp1) 6 | 7 | sp2 = pmpkg("pkg2") 8 | sp2.provides = ["dep"] 9 | self.addpkg2db("sync", sp2) 10 | 11 | sp3 = pmpkg("pkg3") 12 | sp3.conflicts = ["pkg2"] 13 | sp3.provides = ["dep"] 14 | self.addpkg2db("sync", sp3) 15 | 16 | self.args = "-S pkg1 pkg2" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("PKG_EXIST=pkg1") 20 | self.addrule("PKG_EXIST=pkg2") 21 | self.addrule("!PKG_EXIST=pkg3") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync402.py: -------------------------------------------------------------------------------- 1 | self.description = "Choice between two providers (1)" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.depends = ["dep"] 5 | self.addpkg2db("sync", sp1) 6 | 7 | sp2 = pmpkg("pkg2") 8 | sp2.provides = ["dep"] 9 | self.addpkg2db("sync", sp2) 10 | 11 | sp3 = pmpkg("pkg3") 12 | sp3.conflicts = ["pkg1"] 13 | sp3.provides = ["dep"] 14 | self.addpkg2db("sync", sp3) 15 | 16 | self.args = "-S pkg1" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("PKG_EXIST=pkg1") 20 | self.addrule("PKG_EXIST=pkg2") 21 | self.addrule("!PKG_EXIST=pkg3") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync403.py: -------------------------------------------------------------------------------- 1 | self.description = "Choice between two providers (2)" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.depends = ["dep"] 5 | self.addpkg2db("sync", sp1) 6 | 7 | sp2 = pmpkg("pkg2") 8 | sp2.conflicts = [ "pkg1" ] 9 | sp2.provides = [ "dep" ] 10 | self.addpkg2db("sync", sp2) 11 | 12 | sp3 = pmpkg("pkg3") 13 | sp3.provides = [ "dep" ] 14 | self.addpkg2db("sync", sp3) 15 | 16 | self.args = "-S pkg1" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("PKG_EXIST=pkg1") 20 | self.addrule("!PKG_EXIST=pkg2") 21 | self.addrule("PKG_EXIST=pkg3") 22 | 23 | self.expectfailure = True 24 | -------------------------------------------------------------------------------- /test/pacman/tests/sync404.py: -------------------------------------------------------------------------------- 1 | self.description = "FS#9024" 2 | 3 | sp = pmpkg("xorg-server") 4 | sp.depends = [ "libgl" ] 5 | self.addpkg2db("sync", sp) 6 | 7 | sp1 = pmpkg("nvidia-utils") 8 | sp1.provides = [ "libgl" ] 9 | sp1.conflicts = [ "libgl", "libgl-dri" ] 10 | self.addpkg2db("sync", sp1) 11 | 12 | sp2 = pmpkg("libgl") 13 | sp2.provides = [ "libgl-dri" ] 14 | self.addpkg2db("sync", sp2) 15 | 16 | sp3 = pmpkg("nvidia") 17 | sp3.depends = [ "nvidia-utils" ] 18 | self.addpkg2db("sync", sp3) 19 | 20 | self.args = "-S xorg-server nvidia" 21 | 22 | self.addrule("PACMAN_RETCODE=0") 23 | self.addrule("PKG_EXIST=xorg-server") 24 | self.addrule("PKG_EXIST=nvidia") 25 | self.addrule("PKG_EXIST=nvidia-utils") 26 | self.addrule("!PKG_EXIST=libgl") 27 | -------------------------------------------------------------------------------- /test/pacman/tests/sync405.py: -------------------------------------------------------------------------------- 1 | self.description = "phonon/qt issue" 2 | 3 | sp1 = pmpkg("kdelibs") 4 | sp1.depends = ["phonon"] 5 | self.addpkg2db("sync", sp1); 6 | 7 | sp2 = pmpkg("qt", "4.6.1-1") 8 | self.addpkg2db("sync", sp2) 9 | 10 | sp3 = pmpkg("phonon") 11 | self.addpkg2db("sync", sp3) 12 | 13 | lp = pmpkg("qt", "4.5.3-1") 14 | lp.provides = ["phonon"] 15 | lp.conflicts = ["phonon"] 16 | self.addpkg2db("local", lp) 17 | 18 | self.args = "-S %s" % " ".join([p.name for p in (sp1, sp2)]) 19 | 20 | self.addrule("PACMAN_RETCODE=0") 21 | self.addrule("PKG_EXIST=kdelibs") 22 | self.addrule("PKG_EXIST=qt") 23 | self.addrule("PKG_EXIST=phonon") 24 | self.addrule("PKG_VERSION=qt|4.6.1-1") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/sync500.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package from a sync db with NoExtract" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("sync", sp) 7 | 8 | self.option["NoExtract"] = ["usr/man/man1/dummy.1"] 9 | 10 | self.args = "-S %s" % sp.name 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("PKG_EXIST=dummy") 14 | self.addrule("FILE_EXIST=bin/dummy") 15 | self.addrule("!FILE_EXIST=usr/man/man1/dummy.1") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/sync501.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file in NoUpgrade" 2 | 3 | sp = pmpkg("dummy", "1.0-2") 4 | sp.files = ["etc/dummy.conf"] 5 | self.addpkg2db("sync", sp) 6 | 7 | lp = pmpkg("dummy") 8 | lp.files = ["etc/dummy.conf"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.option["NoUpgrade"] = ["etc/dummy.conf"] 12 | 13 | self.args = "-S %s" % sp.name 14 | 15 | self.addrule("PKG_VERSION=dummy|1.0-2") 16 | self.addrule("!FILE_MODIFIED=etc/dummy.conf") 17 | self.addrule("FILE_PACNEW=etc/dummy.conf") 18 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync502.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package from a sync db with fnmatch'ed NoExtract" 2 | 3 | sp = pmpkg("dummy") 4 | sp.files = ["bin/dummy", 5 | "usr/share/man/man8", 6 | "usr/share/man/man1/dummy.1"] 7 | self.addpkg2db("sync", sp) 8 | 9 | self.option["NoExtract"] = ["usr/share/man/*"] 10 | 11 | self.args = "-S %s" % sp.name 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=dummy") 15 | self.addrule("FILE_EXIST=bin/dummy") 16 | self.addrule("!FILE_EXIST=usr/share/man/man8") 17 | self.addrule("!FILE_EXIST=usr/share/man/man1/dummy.1") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/sync503.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a fnmatch in NoUpgrade" 2 | 3 | sp = pmpkg("dummy", "1.0-2") 4 | sp.files = ["etc/dummy.conf"] 5 | self.addpkg2db("sync", sp) 6 | 7 | lp = pmpkg("dummy") 8 | lp.files = ["etc/dummy.conf"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.option["NoUpgrade"] = ["etc/dummy.*"] 12 | 13 | self.args = "-S %s" % sp.name 14 | 15 | self.addrule("PKG_VERSION=dummy|1.0-2") 16 | self.addrule("!FILE_MODIFIED=etc/dummy.conf") 17 | self.addrule("FILE_PACNEW=etc/dummy.conf") 18 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync700.py: -------------------------------------------------------------------------------- 1 | self.description = "removal of directory symlink when another package has file in its path" 2 | # Note: this situation means that the filesystem and local db are out of sync 3 | 4 | lp1 = pmpkg("pkg1") 5 | lp1.files = ["usr/lib/foo", 6 | "lib -> usr/lib"] 7 | self.addpkg2db("local", lp1) 8 | 9 | lp2 = pmpkg("pkg2") 10 | lp2.files = ["lib/bar"] 11 | self.addpkg2db("local", lp2) 12 | 13 | p = pmpkg("pkg1", "1.0-2") 14 | p.files = ["usr/lib/foo"] 15 | self.addpkg2db("sync", p) 16 | 17 | self.args = "-S pkg1" 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | self.addrule("PKG_VERSION=pkg1|1.0-2") 21 | self.addrule("FILE_EXIST=usr/lib/bar") 22 | self.addrule("!FILE_EXIST=lib/bar") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/sync701.py: -------------------------------------------------------------------------------- 1 | self.description = "incoming package replaces symlink with directory (order 1)" 2 | 3 | lp = pmpkg("pkg1") 4 | lp.files = ["usr/lib/foo", 5 | "lib -> usr/lib"] 6 | self.addpkg2db("local", lp) 7 | 8 | p1 = pmpkg("pkg1", "1.0-2") 9 | p1.files = ["usr/lib/foo"] 10 | self.addpkg2db("sync", p1) 11 | 12 | p2 = pmpkg("pkg2") 13 | p2.files = ["lib/bar"] 14 | self.addpkg2db("sync", p2) 15 | 16 | self.args = "-S pkg1 pkg2" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("PKG_VERSION=pkg1|1.0-2") 20 | self.addrule("PKG_EXIST=pkg2") 21 | self.addrule("FILE_TYPE=lib|dir") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync702.py: -------------------------------------------------------------------------------- 1 | self.description = "incoming package replaces symlink with directory (order 2)" 2 | 3 | lp = pmpkg("pkg2") 4 | lp.files = ["usr/lib/foo", 5 | "lib -> usr/lib"] 6 | self.addpkg2db("local", lp) 7 | 8 | p1 = pmpkg("pkg1") 9 | p1.files = ["lib/bar"] 10 | self.addpkg2db("sync", p1) 11 | 12 | p2 = pmpkg("pkg2", "1.0-2") 13 | p2.files = ["usr/lib/foo"] 14 | self.addpkg2db("sync", p2) 15 | 16 | self.args = "-S pkg1 pkg2" 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("PKG_VERSION=pkg2|1.0-2") 20 | self.addrule("PKG_EXIST=pkg1") 21 | self.addrule("FILE_TYPE=lib|dir") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync890.py: -------------------------------------------------------------------------------- 1 | self.description = "conflict 'db vs targ'" 2 | 3 | sp = pmpkg("pkg3") 4 | 5 | self.addpkg2db("sync", sp) 6 | 7 | lp1 = pmpkg("pkg1") 8 | 9 | lp2 = pmpkg("pkg2") 10 | lp2.conflicts = ["pkg3"] 11 | 12 | for p in lp1, lp2: 13 | self.addpkg2db("local", p) 14 | 15 | self.args = "-S %s --ask=4" % sp.name 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_EXIST=pkg1") 19 | self.addrule("!PKG_EXIST=pkg2") 20 | self.addrule("PKG_EXIST=pkg3") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/sync891.py: -------------------------------------------------------------------------------- 1 | self.description = "conflict 'db vs targ'" 2 | 3 | sp1 = pmpkg("pkg2") 4 | sp2 = pmpkg("pkg3") 5 | 6 | for p in sp1, sp2: 7 | self.addpkg2db("sync", p) 8 | 9 | lp1 = pmpkg("pkg1") 10 | 11 | lp2 = pmpkg("pkg2") 12 | lp2.conflicts = ["pkg3"] 13 | 14 | for p in lp1, lp2: 15 | self.addpkg2db("local", p) 16 | 17 | self.args = "-S %s" % " ".join([p.name for p in (sp1, sp2)]) 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | self.addrule("PKG_EXIST=pkg1") 21 | self.addrule("PKG_EXIST=pkg2") 22 | self.addrule("PKG_EXIST=pkg3") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/sync892.py: -------------------------------------------------------------------------------- 1 | self.description = "conflict 'targ vs targ' and 'db vs targ'" 2 | 3 | sp1 = pmpkg("pkg2") 4 | sp1.conflicts = ["pkg1"] 5 | 6 | sp2 = pmpkg("pkg3") 7 | 8 | for p in sp1, sp2: 9 | self.addpkg2db("sync", p) 10 | 11 | lp1 = pmpkg("pkg1") 12 | 13 | lp2 = pmpkg("pkg2") 14 | lp2.conflicts = ["pkg3"] 15 | 16 | for p in lp1, lp2: 17 | self.addpkg2db("local", p) 18 | 19 | self.args = "-S %s --ask=4" % " ".join([p.name for p in (sp1, sp2)]) 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("!PKG_EXIST=pkg1") 23 | self.addrule("PKG_EXIST=pkg2") 24 | self.addrule("PKG_EXIST=pkg3") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/sync893.py: -------------------------------------------------------------------------------- 1 | self.description = "conflict 'db vs db'" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.conflicts = ["pkg2"] 5 | self.addpkg2db("sync", sp1); 6 | 7 | sp2 = pmpkg("pkg2", "1.0-2") 8 | self.addpkg2db("sync", sp2) 9 | 10 | lp1 = pmpkg("pkg1") 11 | self.addpkg2db("local", lp1) 12 | 13 | lp2 = pmpkg("pkg2") 14 | self.addpkg2db("local", lp2) 15 | 16 | self.args = "-S %s --ask=4" % " ".join([p.name for p in (sp1, sp2)]) 17 | 18 | self.addrule("PACMAN_RETCODE=1") 19 | self.addrule("PKG_EXIST=pkg1") 20 | self.addrule("PKG_EXIST=pkg2") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/sync895.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync causes single package removal of a provide (failure)" 2 | 3 | sp = pmpkg("pkg3") 4 | sp.conflicts = ["pkg1"] 5 | self.addpkg2db("sync", sp) 6 | 7 | lp1 = pmpkg("pkg1") 8 | lp1.provides = ["foo"] 9 | self.addpkg2db("local", lp1) 10 | 11 | lp2 = pmpkg("pkg2") 12 | lp2.depends = ["foo"] 13 | self.addpkg2db("local", lp2) 14 | 15 | self.args = "-S %s --ask=4" % sp.name 16 | 17 | self.addrule("PACMAN_RETCODE=1") 18 | self.addrule("PKG_EXIST=pkg1") 19 | self.addrule("PKG_EXIST=pkg2") 20 | self.addrule("!PKG_EXIST=pkg3") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/sync896.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync causes single package removal of a provide (success)" 2 | 3 | sp = pmpkg("pkg3") 4 | sp.conflicts = ["pkg1"] 5 | sp.provides = ["foo"] 6 | self.addpkg2db("sync", sp) 7 | 8 | lp1 = pmpkg("pkg1") 9 | lp1.provides = ["foo"] 10 | self.addpkg2db("local", lp1) 11 | 12 | lp2 = pmpkg("pkg2") 13 | lp2.depends = ["foo"] 14 | self.addpkg2db("local", lp2) 15 | 16 | self.args = "-S %s --ask=4" % sp.name 17 | 18 | self.addrule("PACMAN_RETCODE=0") 19 | self.addrule("!PKG_EXIST=pkg1") 20 | self.addrule("PKG_EXIST=pkg2") 21 | self.addrule("PKG_EXIST=pkg3") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/sync897.py: -------------------------------------------------------------------------------- 1 | self.description = "System upgrade with package conflicts" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.conflicts = ["pkg2", "pkg3"] 5 | self.addpkg2db("sync", sp1); 6 | 7 | sp2 = pmpkg("pkg2", "1.0-2") 8 | self.addpkg2db("sync", sp2) 9 | 10 | lp1 = pmpkg("pkg1") 11 | self.addpkg2db("local", lp1) 12 | 13 | lp2 = pmpkg("pkg2") 14 | self.addpkg2db("local", lp2) 15 | 16 | lp3 = pmpkg("pkg3") 17 | self.addpkg2db("local", lp3) 18 | 19 | self.args = "-Su --ask=4" 20 | 21 | self.addrule("PACMAN_RETCODE=1") 22 | self.addrule("PKG_EXIST=pkg1") 23 | self.addrule("PKG_EXIST=pkg2") 24 | self.addrule("PKG_EXIST=pkg3") 25 | -------------------------------------------------------------------------------- /test/pacman/tests/sync898.py: -------------------------------------------------------------------------------- 1 | self.description = "System upgrade with conflicts and provides" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.conflicts = ["pkg2"] 5 | sp1.provides = ["pkg2"] 6 | self.addpkg2db("sync", sp1); 7 | 8 | sp2 = pmpkg("pkg2", "1.0-2") 9 | self.addpkg2db("sync", sp2) 10 | 11 | lp1 = pmpkg("pkg1") 12 | self.addpkg2db("local", lp1) 13 | 14 | self.args = "-S %s" % " ".join([p.name for p in (sp1, sp2)]) 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_VERSION=pkg1|1.0-2") 18 | self.addrule("!PKG_EXIST=pkg2") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync899.py: -------------------------------------------------------------------------------- 1 | self.description = "System upgrade - conflict/provide with an installed package" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.conflicts = ["pkg2"] 5 | sp1.provides = ["pkg2"] 6 | self.addpkg2db("sync", sp1); 7 | 8 | lp1 = pmpkg("pkg1") 9 | self.addpkg2db("local", lp1) 10 | 11 | lp2 = pmpkg("pkg2") 12 | self.addpkg2db("local", lp2) 13 | 14 | self.args = "-Su --ask=4" 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_EXIST=pkg1") 18 | self.addrule("!PKG_EXIST=pkg2") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/sync900.py: -------------------------------------------------------------------------------- 1 | self.description = "Replace one package with another providing it" 2 | 3 | sp = pmpkg("bar") 4 | sp.provides = ["foo"] 5 | sp.conflicts = ["foo"] 6 | self.addpkg2db("sync", sp) 7 | 8 | lp = pmpkg("foo") 9 | self.addpkg2db("local", lp) 10 | 11 | lp1 = pmpkg("pkg1") 12 | lp1.depends = ["foo"] 13 | self.addpkg2db("local", lp1) 14 | 15 | lp2 = pmpkg("pkg2") 16 | lp2.depends = ["foo"] 17 | self.addpkg2db("local", lp2) 18 | 19 | self.args = "-S %s --ask=4" % sp.name 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("!PKG_EXIST=foo") 23 | self.addrule("PKG_EXIST=bar") 24 | self.addrule("PKG_EXIST=pkg1") 25 | self.addrule("PKG_EXIST=pkg2") 26 | -------------------------------------------------------------------------------- /test/pacman/tests/sync901.py: -------------------------------------------------------------------------------- 1 | self.description = "Replace a package providing package with actual package" 2 | 3 | sp = pmpkg("foo") 4 | self.addpkg2db("sync", sp) 5 | 6 | lp = pmpkg("bar") 7 | lp.provides = ["foo"] 8 | lp.conflicts = ["foo"] 9 | self.addpkg2db("local", lp) 10 | 11 | lp1 = pmpkg("pkg1") 12 | lp1.depends = ["foo"] 13 | self.addpkg2db("local", lp1) 14 | 15 | lp2 = pmpkg("pkg2") 16 | lp2.depends = ["foo"] 17 | self.addpkg2db("local", lp2) 18 | 19 | self.args = "-S %s --ask=4" % sp.name 20 | 21 | self.addrule("PACMAN_RETCODE=0") 22 | self.addrule("PKG_EXIST=foo") 23 | self.addrule("!PKG_EXIST=bar") 24 | self.addrule("PKG_EXIST=pkg1") 25 | self.addrule("PKG_EXIST=pkg2") 26 | -------------------------------------------------------------------------------- /test/pacman/tests/sync990.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync a package pulling a dependency conflicting with a target" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.depends = ["pkg3"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | 8 | sp3 = pmpkg("pkg3") 9 | sp3.conflicts = ["pkg2"] 10 | 11 | for p in sp1, sp2, sp3: 12 | self.addpkg2db("sync", p) 13 | 14 | self.args = "-S %s" % " ".join([p.name for p in (sp1, sp2)]) 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("!PKG_EXIST=pkg1") 18 | self.addrule("!PKG_EXIST=pkg2") 19 | self.addrule("!PKG_EXIST=pkg3") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/sync992.py: -------------------------------------------------------------------------------- 1 | self.description = "Sync a package pulling a conflicting dependency" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.depends = ["pkg3"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | 8 | sp3 = pmpkg("pkg3") 9 | sp3.conflicts = ["pkg2"] 10 | sp3.provides = ["pkg2"] 11 | 12 | for p in sp1, sp2, sp3: 13 | self.addpkg2db("sync", p) 14 | 15 | lp1 = pmpkg("pkg2", "0.1-1") 16 | self.addpkg2db("local", lp1) 17 | 18 | self.args = "-S %s --ask=4" % " ".join([p.name for p in (sp1, sp2)]) 19 | 20 | self.addrule("PACMAN_RETCODE=0") 21 | self.addrule("PKG_EXIST=pkg1") 22 | self.addrule("!PKG_EXIST=pkg2") 23 | self.addrule("PKG_EXIST=pkg3") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/sync993.py: -------------------------------------------------------------------------------- 1 | self.description = "Choose a dependency satisfier (target-list vs. database)" 2 | 3 | sp1 = pmpkg("pkg1") 4 | sp1.depends = ["dep"] 5 | 6 | sp2 = pmpkg("pkg2") 7 | sp2.provides = ["dep"] 8 | 9 | sp3 = pmpkg("pkg3") 10 | sp3.provides = ["dep"] 11 | 12 | for p in sp1, sp2, sp3: 13 | self.addpkg2db("sync", p) 14 | 15 | self.args = "-S pkg1 pkg3" 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_EXIST=pkg1") 19 | self.addrule("!PKG_EXIST=pkg2") 20 | self.addrule("PKG_EXIST=pkg3") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/sync999.py: -------------------------------------------------------------------------------- 1 | self.description = "System upgrade" 2 | 3 | sp1 = pmpkg("pkg1", "1.0-2") 4 | sp1.conflicts = ["pkg2"] 5 | sp1.provides = ["pkg2"] 6 | self.addpkg2db("sync", sp1); 7 | 8 | sp2 = pmpkg("pkg2", "1.0-2") 9 | self.addpkg2db("sync", sp2) 10 | 11 | lp1 = pmpkg("pkg1") 12 | self.addpkg2db("local", lp1) 13 | 14 | lp2 = pmpkg("pkg2") 15 | self.addpkg2db("local", lp2) 16 | 17 | self.args = "-Su --ask=4" 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | self.addrule("PKG_EXIST=pkg1") 21 | self.addrule("!PKG_EXIST=pkg2") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/trans001.py: -------------------------------------------------------------------------------- 1 | self.description = "fileconflict error cancels the sync transaction after the removal part" 2 | 3 | sp = pmpkg("pkg1") 4 | sp.replaces = ["pkg3"] 5 | sp.files = ["dir/file"] 6 | self.addpkg2db("sync", sp) 7 | 8 | lp1 = pmpkg("pkg3") 9 | self.addpkg2db("local", lp1) 10 | 11 | lp2 = pmpkg("pkg2") 12 | lp2.files = ["dir/file"] 13 | self.addpkg2db("local", lp2) 14 | 15 | self.args = "-Su" 16 | 17 | self.addrule("PACMAN_RETCODE=1") 18 | self.addrule("!PKG_EXIST=pkg1") 19 | self.addrule("PKG_EXIST=pkg2") 20 | self.addrule("PKG_EXIST=pkg3") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/type001.py: -------------------------------------------------------------------------------- 1 | self.description = "Check the types of default files in a package" 2 | 3 | p = pmpkg("pkg1") 4 | p.files = ["foo/file1", 5 | "foo/file2", 6 | "foo/dir/", 7 | "foo/symdir -> dir"] 8 | self.addpkg(p) 9 | 10 | self.args = "-U %s" % p.filename() 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("FILE_TYPE=foo/|dir") 14 | self.addrule("FILE_TYPE=foo/file1|file") 15 | self.addrule("FILE_TYPE=foo/file2|file") 16 | self.addrule("FILE_TYPE=foo/dir|dir") 17 | self.addrule("FILE_TYPE=foo/symdir|link") 18 | -------------------------------------------------------------------------------- /test/pacman/tests/unresolvable001.py: -------------------------------------------------------------------------------- 1 | self.description = "An unresolvable dependency" 2 | 3 | packageA1 = pmpkg("dep") 4 | self.addpkg2db("local", packageA1) 5 | 6 | packageA1up = pmpkg("dep", "2.0-1") 7 | packageA1up.depends = ["fake"]; 8 | self.addpkg2db("sync", packageA1up) 9 | 10 | packageA2up = pmpkg("package") 11 | packageA2up.depends = ["dep"]; 12 | self.addpkg2db("sync", packageA2up) 13 | 14 | self.args = "-S package dep --ask=16" 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_EXIST=package") 18 | self.addrule("PKG_EXIST=dep") 19 | self.addrule("PKG_VERSION=dep|1.0-1") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade-download-404.py: -------------------------------------------------------------------------------- 1 | self.description = 'download a remote package with -U' 2 | self.require_capability("curl") 3 | 4 | url = self.add_simple_http_server({}) 5 | 6 | self.args = '-Uw {url}/foo.pkg'.format(url=url) 7 | 8 | self.addrule('!PACMAN_RETCODE=0') 9 | self.addrule('!CACHE_FEXISTS=foo.pkg') 10 | self.addrule('!CACHE_FEXISTS=foo.pkg.sig') 11 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade001.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package (newer version)" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy", "1.0-2") 9 | p.files = ["bin/dummy", 10 | "usr/man/man1/dummy.1"] 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=dummy|1.0-2") 17 | for f in lp.files: 18 | self.addrule("FILE_MODIFIED=%s" % f) 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade002.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package (same version)" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy") 9 | p.files = ["bin/dummy", 10 | "usr/man/man1/dummy.1"] 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=dummy|1.0-1") 17 | for f in lp.files: 18 | self.addrule("FILE_MODIFIED=%s" % f) 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade003.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package (older version)" 2 | 3 | lp = pmpkg("dummy", "1.0-2") 4 | lp.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy") 9 | p.files = ["bin/dummy", 10 | "usr/man/man1/dummy.1"] 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=dummy|1.0-1") 17 | for f in lp.files: 18 | self.addrule("FILE_MODIFIED=%s" % f) 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade004.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package (not installed)" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg(p) 7 | 8 | self.args = "-U %s" % p.filename() 9 | 10 | self.addrule("PACMAN_RETCODE=0") 11 | self.addrule("PKG_EXIST=dummy") 12 | for f in p.files: 13 | self.addrule("FILE_EXIST=%s" % f) 14 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade005.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a set of three packages" 2 | 3 | p1 = pmpkg("pkg1") 4 | p1.files = ["bin/pkg1", 5 | "usr/man/man1/pkg1.1"] 6 | 7 | p2 = pmpkg("pkg2", "2.0-1") 8 | p2.files = ["bin/pkg2", 9 | "usr/man/man1/pkg2.1"] 10 | 11 | p3 = pmpkg("pkg3", "3.0-1") 12 | p3.files = ["bin/pkg3", "usr/man/man1/pkg3.1"] 13 | 14 | for p in p1, p2, p3: 15 | self.addpkg(p) 16 | 17 | self.args = "-U %s" % " ".join([p.filename() for p in (p1, p2, p3)]) 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | for p in p1, p2, p3: 21 | self.addrule("PKG_EXIST=%s" % p.name) 22 | for f in p.files: 23 | self.addrule("FILE_EXIST=%s" % f) 24 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade006.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package with several files" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["usr/share/file_%d" % n for n in range(250, 750)] 5 | self.addpkg2db("local", lp) 6 | 7 | p = pmpkg("dummy", "1.1-1") 8 | p.files = ["usr/share/file_%d" % n for n in range(600, 1000)] 9 | self.addpkg(p) 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_VERSION=dummy|1.1-1") 15 | self.addrule("!FILE_EXIST=usr/share/file_250") 16 | self.addrule("!FILE_EXIST=usr/share/file_599") 17 | self.addrule("FILE_EXIST=usr/share/file_600") 18 | self.addrule("FILE_EXIST=usr/share/file_999") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade010.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file in NoUpgrade" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["etc/dummy.conf"] 5 | self.addpkg2db("local", lp) 6 | 7 | p = pmpkg("dummy", "1.0-2") 8 | p.files = ["etc/dummy.conf"] 9 | self.addpkg(p) 10 | 11 | self.option["NoUpgrade"] = ["etc/dummy.conf"] 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PKG_VERSION=dummy|1.0-2") 16 | self.addrule("!FILE_MODIFIED=etc/dummy.conf") 17 | self.addrule("FILE_PACNEW=etc/dummy.conf") 18 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade011.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package with a filesystem conflict" 2 | 3 | p = pmpkg("dummy", "2.0-1") 4 | p.files = ["bin/dummy", "usr/share/file"] 5 | self.addpkg(p) 6 | 7 | lp = pmpkg("dummy", "1.0-1") 8 | lp.files = ["bin/dummy"] 9 | self.addpkg2db("local", lp) 10 | 11 | self.filesystem = ["usr/share/file"] 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=1") 16 | self.addrule("PKG_VERSION=dummy|1.0-1") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade013.py: -------------------------------------------------------------------------------- 1 | self.description = "Install two packages with a conflicting file" 2 | 3 | p1 = pmpkg("dummy") 4 | p1.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1", 6 | "usr/common"] 7 | 8 | p2 = pmpkg("foobar") 9 | p2.files = ["bin/foobar", 10 | "usr/man/man1/foobar.1", 11 | "usr/common"] 12 | 13 | for p in p1, p2: 14 | self.addpkg(p) 15 | 16 | self.args = "-U %s" % " ".join([p.filename() for p in (p1, p2)]) 17 | 18 | self.addrule("PACMAN_RETCODE=1") 19 | self.addrule("!PKG_EXIST=dummy") 20 | self.addrule("!PKG_EXIST=foobar") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade020.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file in 'backup' (local unchanged, new modified)" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["etc/dummy.conf"] 5 | lp.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy", "1.0-2") 9 | p.files = ["etc/dummy.conf*"] 10 | p.backup = ["etc/dummy.conf"] 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=dummy|1.0-2") 17 | self.addrule("FILE_MODIFIED=etc/dummy.conf") 18 | self.addrule("!FILE_PACNEW=etc/dummy.conf") 19 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade021.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file in 'backup' (local modified, new unchanged)" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["etc/dummy.conf*"] 5 | lp.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy", "1.0-2") 9 | p.files = ["etc/dummy.conf"] 10 | p.backup = ["etc/dummy.conf"] 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=dummy|1.0-2") 17 | self.addrule("!FILE_MODIFIED=etc/dummy.conf") 18 | self.addrule("!FILE_PACNEW=etc/dummy.conf") 19 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade022.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file in 'backup' (local and new modified)" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["etc/dummy.conf"] 5 | lp.backup = ["etc/dummy.conf*"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy", "1.0-2") 9 | p.files = ["etc/dummy.conf**"] 10 | p.backup = ["etc/dummy.conf"] 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=dummy|1.0-2") 17 | self.addrule("!FILE_MODIFIED=etc/dummy.conf") 18 | self.addrule("FILE_PACNEW=etc/dummy.conf") 19 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade023.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a backup file in the NEW package only" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["etc/dummy.conf*"] 5 | self.addpkg2db("local", lp) 6 | 7 | p = pmpkg("dummy", "1.1-1") 8 | p.files = ["etc/dummy.conf"] 9 | p.backup = ["etc/dummy.conf"] 10 | self.addpkg(p) 11 | 12 | self.args = "-U %s" % p.filename() 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("PKG_VERSION=dummy|1.1-1") 16 | self.addrule("!FILE_MODIFIED=etc/dummy.conf") 17 | # Do we want this pacnew or not? 18 | self.addrule("FILE_PACNEW=etc/dummy.conf") 19 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade024.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file leaving 'backup'" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["etc/dummy.conf*"] 5 | lp.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy", "1.0-2") 9 | self.addpkg(p) 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_VERSION=dummy|1.0-2") 15 | self.addrule("FILE_PACSAVE=etc/dummy.conf") 16 | self.addrule("!FILE_EXIST=etc/dummy.conf") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade025.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file leaving 'backup' but staying in the pkg" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["etc/dummy.conf*"] 5 | lp.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy", "1.0-2") 9 | p.files = ["etc/dummy.conf"] 10 | self.addpkg(p) 11 | 12 | self.args = "-U %s" % p.filename() 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("PKG_VERSION=dummy|1.0-2") 16 | self.addrule("FILE_PACSAVE=etc/dummy.conf") 17 | self.addrule("!FILE_PACNEW=etc/dummy.conf") 18 | self.addrule("FILE_EXIST=etc/dummy.conf") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade026.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file leaving the pkg but staying in 'backup'" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["etc/dummy.conf*"] 5 | lp.backup = ["etc/dummy.conf"] 6 | self.addpkg2db("local", lp) 7 | 8 | p = pmpkg("dummy", "1.0-2") 9 | p.backup = ["etc/dummy.conf"] 10 | self.addpkg(p) 11 | 12 | self.args = "-U %s" % p.filename() 13 | 14 | self.addrule("PACMAN_RETCODE=0") 15 | self.addrule("PKG_VERSION=dummy|1.0-2") 16 | self.addrule("FILE_PACSAVE=etc/dummy.conf") 17 | self.addrule("!FILE_PACNEW=etc/dummy.conf") 18 | self.addrule("!FILE_EXIST=etc/dummy.conf") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade027.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file entering the pkg in 'backup' (changed)" 2 | 3 | self.filesystem = ["etc/dummy.conf"] 4 | 5 | lp = pmpkg("dummy") 6 | lp.files = ["usr/bin/dummy"] 7 | self.addpkg2db("local", lp) 8 | 9 | p = pmpkg("dummy", "1.0-2") 10 | p.files = ["usr/bin/dummy", 11 | "etc/dummy.conf*"] 12 | p.backup = ["etc/dummy.conf"] 13 | self.addpkg(p) 14 | 15 | self.args = "-U %s" % p.filename() 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_VERSION=dummy|1.0-2") 19 | self.addrule("FILE_PACNEW=etc/dummy.conf") 20 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 21 | self.addrule("FILE_EXIST=etc/dummy.conf") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade028.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with a file entering the pkg in 'backup' (unchanged)" 2 | 3 | self.filesystem = ["etc/dummy.conf"] 4 | 5 | lp = pmpkg("dummy") 6 | lp.files = ["usr/bin/dummy"] 7 | self.addpkg2db("local", lp) 8 | 9 | p = pmpkg("dummy", "1.0-2") 10 | p.files = ["usr/bin/dummy", 11 | "etc/dummy.conf"] 12 | p.backup = ["etc/dummy.conf"] 13 | self.addpkg(p) 14 | 15 | self.args = "-U %s" % p.filename() 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_VERSION=dummy|1.0-2") 19 | self.addrule("!FILE_PACNEW=etc/dummy.conf") 20 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 21 | self.addrule("FILE_EXIST=etc/dummy.conf") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade029.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package, with an owned file entering the pkg in 'backup'" 2 | 3 | lp = pmpkg("dummy") 4 | lp.files = ["usr/bin/dummy"] 5 | self.addpkg2db("local", lp) 6 | 7 | lp2 = pmpkg("dummy2") 8 | lp2.files = ["etc/dummy.conf"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p = pmpkg("dummy", "1.0-2") 12 | p.files = ["usr/bin/dummy", 13 | "etc/dummy.conf*"] 14 | p.backup = ["etc/dummy.conf"] 15 | self.addpkg(p) 16 | 17 | self.args = "-U %s" % p.filename() 18 | 19 | self.addrule("PACMAN_RETCODE=1") 20 | self.addrule("PKG_VERSION=dummy|1.0-1") 21 | self.addrule("!FILE_PACNEW=etc/dummy.conf") 22 | self.addrule("!FILE_PACSAVE=etc/dummy.conf") 23 | self.addrule("FILE_EXIST=etc/dummy.conf") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade030.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade packages with various reasons" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.reason = 0 5 | lp2 = pmpkg("pkg2") 6 | lp2.reason = 1 7 | 8 | for p in lp1, lp2: 9 | self.addpkg2db("local", p) 10 | 11 | p1 = pmpkg("pkg1", "1.0-2") 12 | p2 = pmpkg("pkg2", "1.0-2") 13 | 14 | for p in p1, p2: 15 | self.addpkg(p) 16 | 17 | self.args = "-U %s" % " ".join([p.filename() for p in (p1, p2)]) 18 | 19 | self.addrule("PACMAN_RETCODE=0") 20 | self.addrule("PKG_REASON=pkg1|0") 21 | self.addrule("PKG_REASON=pkg2|1") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade031.py: -------------------------------------------------------------------------------- 1 | self.description = "Install packages non-explicitly" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.reason = 0 5 | self.addpkg2db("local", lp1) 6 | 7 | p1 = pmpkg("pkg1", "1.0-2") 8 | p2 = pmpkg("pkg2", "1.0-2") 9 | 10 | for p in p1, p2: 11 | self.addpkg(p) 12 | 13 | self.args = "-U --asdeps %s" % " ".join([p.filename() for p in (p1, p2)]) 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=pkg1|1.0-2") 17 | self.addrule("PKG_VERSION=pkg2|1.0-2") 18 | self.addrule("PKG_REASON=pkg1|1") 19 | self.addrule("PKG_REASON=pkg2|1") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade032.py: -------------------------------------------------------------------------------- 1 | self.description = "Install packages explicitly" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.reason = 1 5 | self.addpkg2db("local", lp1) 6 | 7 | p1 = pmpkg("pkg1", "1.0-2") 8 | p2 = pmpkg("pkg2", "1.0-2") 9 | 10 | for p in p1, p2: 11 | self.addpkg(p) 12 | 13 | self.args = "-U --asexplicit %s" % " ".join([p.filename() for p in (p1, p2)]) 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=pkg1|1.0-2") 17 | self.addrule("PKG_VERSION=pkg2|1.0-2") 18 | self.addrule("PKG_REASON=pkg1|0") 19 | self.addrule("PKG_REASON=pkg2|0") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade045.py: -------------------------------------------------------------------------------- 1 | self.description = "FS#9235, backup file is broken symlink" 2 | 3 | lp = pmpkg("foo") 4 | lp.files = ["etc/foo.cfg -> etc/foo.cfg"] 5 | lp.backup = ["etc/foo.cfg"] 6 | self.addpkg2db("local", lp) 7 | 8 | p1 = pmpkg("foo", "1.0-2") 9 | p1.files = ["etc/foo.cfg*"] 10 | p1.backup = ["etc/foo.cfg"] 11 | self.addpkg(p1) 12 | 13 | self.args = "-U %s" % p1.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=0") 16 | self.addrule("PKG_VERSION=foo|1.0-2") 17 | self.addrule("LINK_EXIST=etc/foo.cfg") 18 | self.addrule("FILE_EXIST=etc/foo.cfg.pacnew") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade050.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade package with a conflict == depend (not installed)" 2 | 3 | p1 = pmpkg("pkg1") 4 | p1.conflicts = ["pkg2"] 5 | p1.depends = ["pkg2"] 6 | self.addpkg(p1) 7 | 8 | p2 = pmpkg("pkg2") 9 | self.addpkg(p2) 10 | 11 | self.args = "-U %s" % " ".join([p.filename() for p in (p1, p2)]) 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("!PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade051.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade to a package that provides another package" 2 | 3 | lp = pmpkg("pkg1") 4 | self.addpkg2db("local", lp) 5 | 6 | p = pmpkg("pkg2") 7 | p.conflicts = ["pkg1"] 8 | p.provides = ["pkg1"] 9 | self.addpkg(p) 10 | 11 | self.args = "-U %s --ask=4" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("!PKG_EXIST=pkg1") 15 | self.addrule("PKG_EXIST=pkg2") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade052.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade to a package that provides less than before" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imaginary", "real"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p = pmpkg("pkg2", "1.0-2") 12 | p.provides = ["real"] 13 | self.addpkg(p) 14 | 15 | self.args = "-U %s" % p.filename() 16 | 17 | self.addrule("PACMAN_RETCODE=1") 18 | self.addrule("PKG_EXIST=pkg1") 19 | self.addrule("PKG_VERSION=pkg2|1.0-1") 20 | self.addrule("PKG_PROVIDES=pkg2|imaginary") 21 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade053.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package with dependency on provided package (same)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imaginary", "real"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p = pmpkg("pkg1", "1.0-2") 12 | p.depends = ["imaginary"] 13 | self.addpkg(p) 14 | 15 | self.args = "-U %s" % p.filename() 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_VERSION=pkg1|1.0-2") 19 | self.addrule("PKG_EXIST=pkg2") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade054.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package with dependency on provided package (different)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imaginary", "real"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p = pmpkg("pkg1", "1.0-2") 12 | p.depends = ["real"] 13 | self.addpkg(p) 14 | 15 | self.args = "-U %s" % p.filename() 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_VERSION=pkg1|1.0-2") 19 | self.addrule("PKG_EXIST=pkg2") 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade056.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package that removes a provide but another package still provides it" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imaginary"] 9 | self.addpkg2db("local", lp2) 10 | 11 | lp3 = pmpkg("pkg3") 12 | lp3.provides = ["imaginary"] 13 | self.addpkg2db("local", lp3) 14 | 15 | p = pmpkg("pkg2", "1.0-2") 16 | self.addpkg(p) 17 | 18 | self.args = "-U %s" % p.filename() 19 | 20 | self.addrule("PACMAN_RETCODE=0") 21 | self.addrule("PKG_EXIST=pkg1") 22 | self.addrule("PKG_VERSION=pkg2|1.0-2") 23 | self.addrule("PKG_EXIST=pkg3") 24 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade057.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package that both provides and is a dependency" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["pkg2", "imag3"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2") 8 | lp2.provides = ["imag3"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p = pmpkg("pkg2", "1.0-2") 12 | p.provides = ["imag3"] 13 | self.addpkg(p) 14 | 15 | self.args = "-U %s" % p.filename() 16 | 17 | self.addrule("PACMAN_RETCODE=0") 18 | self.addrule("PKG_EXIST=pkg1") 19 | self.addrule("PKG_VERSION=pkg2|1.0-2") 20 | self.addrule("PKG_DEPENDS=pkg1|pkg2") 21 | self.addrule("PKG_DEPENDS=pkg1|imag3") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade058.py: -------------------------------------------------------------------------------- 1 | self.description = "Upgrade a package that's older version is required by another package." 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = [ "pkg2=1.0" ] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2", "1.0-1") 8 | self.addpkg2db("local", lp2) 9 | 10 | p = pmpkg("pkg2", "1.1-1") 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=1") 16 | self.addrule("!PKG_VERSION=pkg2|1.1-1") 17 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade060.py: -------------------------------------------------------------------------------- 1 | self.description = "Try to upgrade two packages which would break deps" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["pkg2=1.0"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2", "1.0-1") 8 | self.addpkg2db("local", lp2) 9 | 10 | p1 = pmpkg("pkg1", "1.1-1") 11 | p1.depends = ["pkg2=1.0-1"] 12 | self.addpkg(p1) 13 | 14 | p2 = pmpkg("pkg2", "1.1-1") 15 | self.addpkg(p2) 16 | 17 | self.args = "-U %s" % " ".join([p.filename() for p in (p1, p2)]) 18 | 19 | self.addrule("PACMAN_RETCODE=1") 20 | self.addrule("PKG_VERSION=pkg1|1.0-1") 21 | self.addrule("PKG_VERSION=pkg2|1.0-1") 22 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade061.py: -------------------------------------------------------------------------------- 1 | self.description = "Try to upgrade two packages which would break deps" 2 | 3 | lp1 = pmpkg("pkg1", "1.0-1") 4 | lp1.depends = ["imaginary"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2", "1.0-1") 8 | lp2.provides = ["imaginary"] 9 | self.addpkg2db("local", lp2) 10 | 11 | p1 = pmpkg("pkg1", "1.0-2") 12 | p1.depends = ["imaginary"] 13 | self.addpkg(p1) 14 | 15 | p2 = pmpkg("pkg2", "1.0-2") 16 | self.addpkg(p2) 17 | 18 | self.args = "-U %s" % " ".join([p.filename() for p in (p1, p2)]) 19 | 20 | self.addrule("PACMAN_RETCODE=1") 21 | self.addrule("PKG_VERSION=pkg1|1.0-1") 22 | self.addrule("PKG_VERSION=pkg2|1.0-1") 23 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade070.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package with a file in NoExtract" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | self.addpkg(p) 7 | 8 | self.option["NoExtract"] = ["usr/man/man1/dummy.1"] 9 | 10 | self.args = "-U %s" % p.filename() 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("PKG_EXIST=dummy") 14 | self.addrule("FILE_EXIST=bin/dummy") 15 | self.addrule("!FILE_EXIST=usr/man/man1/dummy.1") 16 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade071.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package with a missing dependency" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | p.depends = ["dep1"] 7 | self.addpkg(p) 8 | 9 | self.args = "-U %s" % p.filename() 10 | 11 | self.addrule("PACMAN_RETCODE=1") 12 | self.addrule("!PKG_EXIST=dummy") 13 | for f in p.files: 14 | self.addrule("!FILE_EXIST=%s" % f) 15 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade072.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package with a missing dependency (nodeps)" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | p.depends = ["dep1"] 7 | self.addpkg(p) 8 | 9 | self.args = "-Udd %s" % p.filename() 10 | 11 | self.addrule("PACMAN_RETCODE=0") 12 | self.addrule("PKG_EXIST=dummy") 13 | self.addrule("PKG_DEPENDS=dummy|dep1") 14 | for f in p.files: 15 | self.addrule("FILE_EXIST=%s" % f) 16 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade074.py: -------------------------------------------------------------------------------- 1 | self.description = "pkg2<2.0 dependency (satisfy)" 2 | 3 | p = pmpkg("pkg1") 4 | p.depends = ["pkg2<2.0"] 5 | self.addpkg(p) 6 | 7 | lp = pmpkg("pkg2", "1.9b-3") 8 | self.addpkg2db("local", lp) 9 | 10 | self.args = "-U %s" % p.filename() 11 | 12 | self.addrule("PACMAN_RETCODE=0") 13 | self.addrule("PKG_EXIST=pkg1") 14 | self.addrule("PKG_EXIST=pkg2") 15 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade075.py: -------------------------------------------------------------------------------- 1 | self.description = "pkg2<2.0 dependency (not satisfy)" 2 | 3 | p = pmpkg("pkg1") 4 | p.depends = ["pkg2<2.0"] 5 | self.addpkg(p) 6 | 7 | lp = pmpkg("pkg2", "2.0-3") 8 | self.addpkg2db("local", lp) 9 | 10 | self.args = "-U %s" % p.filename() 11 | 12 | self.addrule("PACMAN_RETCODE=1") 13 | self.addrule("!PKG_EXIST=pkg1") 14 | self.addrule("PKG_EXIST=pkg2") 15 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade076.py: -------------------------------------------------------------------------------- 1 | self.description = "Package downgrade (failure)" 2 | 3 | lp1 = pmpkg("pkg1") 4 | lp1.depends = ["pkg2=1.1"] 5 | self.addpkg2db("local", lp1) 6 | 7 | lp2 = pmpkg("pkg2", "1.1-1") 8 | self.addpkg2db("local", lp2) 9 | 10 | p = pmpkg("pkg2", "1.0-1") 11 | self.addpkg(p) 12 | 13 | self.args = "-U %s" % p.filename() 14 | 15 | self.addrule("PACMAN_RETCODE=1") 16 | self.addrule("PKG_EXIST=pkg1") 17 | self.addrule("PKG_EXIST=pkg2") 18 | self.addrule("PKG_VERSION=pkg2|1.1-1") 19 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade077.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package with multiple missing dependencies" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | p.depends = ["dep1", "dep2", "dep3"] 7 | self.addpkg(p) 8 | 9 | p2 = pmpkg("dep2") 10 | self.addpkg(p2) 11 | 12 | self.args = "-U %s %s" % (p.filename(), p2.filename()) 13 | 14 | self.addrule("PACMAN_RETCODE=1") 15 | self.addrule("!PKG_EXIST=dummy") 16 | for f in p.files: 17 | self.addrule("!FILE_EXIST=%s" % f) 18 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade080.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package (correct architecture)" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | p.arch = 'testarch' 7 | self.addpkg(p) 8 | 9 | self.option["Architecture"] = ['testarch'] 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=dummy") 15 | for f in p.files: 16 | self.addrule("FILE_EXIST=%s" % f) 17 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade081.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package (wrong architecture)" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | p.arch = 'testarch' 7 | self.addpkg(p) 8 | 9 | self.option["Architecture"] = ['nottestarch'] 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=1") 14 | self.addrule("!PKG_EXIST=dummy") 15 | for f in p.files: 16 | self.addrule("!FILE_EXIST=%s" % f) 17 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade082.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package (correct architecture, auto)" 2 | 3 | import os 4 | machine = os.uname()[4] 5 | 6 | p = pmpkg("dummy") 7 | p.files = ["bin/dummy", 8 | "usr/man/man1/dummy.1"] 9 | p.arch = machine 10 | self.addpkg(p) 11 | 12 | self.option["Architecture"] = ['auto'] 13 | 14 | self.args = "-U %s" % p.filename() 15 | 16 | self.addrule("PACMAN_RETCODE=0") 17 | self.addrule("PKG_EXIST=dummy") 18 | for f in p.files: 19 | self.addrule("FILE_EXIST=%s" % f) 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade083.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package (wrong architecture, auto)" 2 | 3 | import os 4 | machine = os.uname()[4] 5 | 6 | p = pmpkg("dummy") 7 | p.files = ["bin/dummy", 8 | "usr/man/man1/dummy.1"] 9 | p.arch = machine + 'wrong' 10 | self.addpkg(p) 11 | 12 | self.option["Architecture"] = ['auto'] 13 | 14 | self.args = "-U %s" % p.filename() 15 | 16 | self.addrule("PACMAN_RETCODE=1") 17 | self.addrule("!PKG_EXIST=dummy") 18 | for f in p.files: 19 | self.addrule("!FILE_EXIST=%s" % f) 20 | -------------------------------------------------------------------------------- /test/pacman/tests/upgrade084.py: -------------------------------------------------------------------------------- 1 | self.description = "Install a package ('any' architecture)" 2 | 3 | p = pmpkg("dummy") 4 | p.files = ["bin/dummy", 5 | "usr/man/man1/dummy.1"] 6 | p.arch = 'any' 7 | self.addpkg(p) 8 | 9 | self.option["Architecture"] = ['auto'] 10 | 11 | self.args = "-U %s" % p.filename() 12 | 13 | self.addrule("PACMAN_RETCODE=0") 14 | self.addrule("PKG_EXIST=dummy") 15 | for f in p.files: 16 | self.addrule("FILE_EXIST=%s" % f) 17 | -------------------------------------------------------------------------------- /test/pacman/tests/xfercommand001.py: -------------------------------------------------------------------------------- 1 | self.description = "Quick check for using XferCommand" 2 | 3 | # this setting forces us to download packages 4 | self.cachepkgs = False 5 | #wget doesn't support file:// urls. curl does 6 | self.option['XferCommand'] = ['/usr/bin/curl %u -o %o'] 7 | 8 | numpkgs = 10 9 | pkgnames = [] 10 | for i in range(numpkgs): 11 | name = "pkg_%s" % i 12 | pkgnames.append(name) 13 | p = pmpkg(name) 14 | p.files = ["usr/bin/foo-%s" % i] 15 | self.addpkg2db("sync", p) 16 | 17 | self.args = "-S %s" % ' '.join(pkgnames) 18 | 19 | for name in pkgnames: 20 | self.addrule("PKG_EXIST=%s" % name) 21 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/compose-multiple-template-dirs/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | # template input; name=build; version=1; 5 | # template input; name=package; version=1; 6 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/compose-multiple-template-dirs/templates/build/build-1.template: -------------------------------------------------------------------------------- 1 | build() {} 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/compose-multiple-template-dirs/templates/package/package-1.template: -------------------------------------------------------------------------------- 1 | package() {} 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/compose-multiple-template-dirs/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=(--template-dir $testdir/$testcase/templates/build) 2 | arguments+=(--template-dir $testdir/$testcase/templates/package) 3 | expected_exitcode=0 4 | 5 | IFS="" read -d '' expected_output <<'EOF' 6 | EOF 7 | 8 | IFS="" read -d '' expected_result <<'EOF' 9 | pkgname=foo 10 | pkgver=1 11 | 12 | # template start; name=build; version=1; 13 | build() {} 14 | # template end; 15 | # template start; name=package; version=1; 16 | package() {} 17 | # template end; 18 | EOF 19 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/invalid-key/PKGBUILD: -------------------------------------------------------------------------------- 1 | # template input; []³|>=bar; 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/invalid-key/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=255 3 | 4 | # set IFS="" if you want trailing new lines, otherwise remove it 5 | IFS="" read -d '' expected_output <<'EOF' 6 | invalid key/value pair 7 | ./makepkg-template-tests/invalid-key/PKGBUILD:1: # template input; []³|>=bar; 8 | EOF 9 | 10 | IFS="" read -d '' expected_result <<'EOF' 11 | EOF 12 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/invalid-template-line-missing-name/PKGBUILD: -------------------------------------------------------------------------------- 1 | # template input; 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/invalid-template-line-missing-name/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=255 3 | 4 | # set IFS="" if you want trailing new lines, otherwise remove it 5 | IFS="" read -d '' expected_output <<'EOF' 6 | invalid template line: can't find template name 7 | ./makepkg-template-tests/invalid-template-line-missing-name/PKGBUILD:1: # template input; 8 | EOF 9 | 10 | IFS="" read -d '' expected_result <<'EOF' 11 | EOF 12 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/invalid-template-line-unknown-marker/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | build() { 5 | # template boom; name=test 6 | perl Makefile.pl 7 | make 8 | # template end; 9 | } 10 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/invalid-template-line-unknown-marker/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=255 3 | 4 | # set IFS="" if you want trailing new lines, otherwise remove it 5 | IFS="" read -d '' expected_output <<'EOF' 6 | Unknown template marker 'boom' 7 | ./makepkg-template-tests/invalid-template-line-unknown-marker/PKGBUILD:5: # template boom; name=test 8 | EOF 9 | 10 | IFS="" read -d '' expected_result <<'EOF' 11 | EOF 12 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/keep-old-version/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | build() { 5 | # template start; name=perl-module; version=1.0; 6 | echo "before bla template" 7 | # template start; name=perl-bla; version=1.2; 8 | bla bla 9 | # template end; 10 | echo "after bla template" 11 | perl Makefile.pl 12 | make 13 | make install 14 | # template end; 15 | } 16 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/keep-old-version/templates/perl-bla-1.2.template: -------------------------------------------------------------------------------- 1 | bla bla 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/keep-old-version/templates/perl-module-1.0.template: -------------------------------------------------------------------------------- 1 | echo "before bla template" 2 | # template input; name=perl-bla 3 | echo "after bla template" 4 | perl Makefile.pl 5 | make 6 | make install 7 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/keep-old-version/templates/perl-module-1.1.template: -------------------------------------------------------------------------------- 1 | echo "perl-module version 1.1" 2 | echo "before bla template" 3 | # template input; name=perl-bla 4 | echo "after bla template" 5 | perl Makefile.pl 6 | make 7 | make install 8 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/last-template-dir-has-precedece/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | # template input; name=perl-module; version=1.0; 5 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/last-template-dir-has-precedece/PKGBUILD.expanded: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | # template start; name=perl-module; version=1.0; 5 | this should be included 6 | # template end; 7 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/last-template-dir-has-precedece/templates/first/perl-module-1.0.template: -------------------------------------------------------------------------------- 1 | this should be overwritten 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/last-template-dir-has-precedece/templates/last/perl-module-1.0.template: -------------------------------------------------------------------------------- 1 | this should be included 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/last-template-dir-has-precedece/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=(--template-dir $testdir/$testcase/templates/first) 2 | arguments+=(--template-dir $testdir/$testcase/templates/last) 3 | expected_exitcode=0 4 | 5 | IFS="" read -d '' expected_output <<'EOF' 6 | EOF 7 | 8 | IFS="" read -d '' expected_result <<'EOF' 9 | pkgname=foo 10 | pkgver=1 11 | 12 | # template start; name=perl-module; version=1.0; 13 | this should be included 14 | # template end; 15 | EOF 16 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/missing-template-file/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | build() { 5 | # template start; name=perl-module; version=1.0; 6 | # template end; 7 | } 8 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/missing-template-file/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=2 3 | 4 | _setup_testcase() { 5 | ln -sr "templates/"{perl-module-1.0.template,perl-module.template} 6 | } 7 | 8 | # set IFS="" if you want trailing new lines, otherwise remove it 9 | IFS="" read -d '' expected_output <<'EOF' 10 | Failed to find template file matching 'perl-module-1.0.template' 11 | EOF 12 | 13 | IFS="" read -d '' expected_result <<'EOF' 14 | EOF 15 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/missing-template-symlink/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | build() { 5 | # template start; name=perl-module; 6 | # template end; 7 | } 8 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/missing-template-symlink/templates/perl-module-1.0.template: -------------------------------------------------------------------------------- 1 | this should not be included 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/missing-template-symlink/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=2 3 | 4 | IFS="" read -d '' expected_output <<'EOF' 5 | Failed to find template file matching 'perl-module.template' 6 | EOF 7 | 8 | IFS="" read -d '' expected_result <<'EOF' 9 | EOF 10 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/name-charset-invalid/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | build() { 5 | # template start; name=foo/ 6 | make install 7 | # template end; 8 | } 9 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/name-charset-invalid/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=255 3 | 4 | IFS="" read -d '' expected_output <<'EOF' 5 | invalid chars used in name 'foo/'. allowed: [:alnum:]+_.@- 6 | ./makepkg-template-tests/name-charset-invalid/PKGBUILD:5: # template start; name=foo/ 7 | EOF 8 | 9 | IFS="" read -d '' expected_result <<'EOF' 10 | EOF 11 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/name-charset-valid/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | build() { 5 | # template start; name=foo@-_.+a 6 | make install 7 | # template end; 8 | } 9 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/name-charset-valid/templates/foo@-_.+a-1.template: -------------------------------------------------------------------------------- 1 | 42 cookies 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/name-charset-valid/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=0 3 | 4 | _setup_testcase() { 5 | ln -sr "templates/"{foo\@-_.+a-1.template,foo\@-_.+a.template} 6 | } 7 | IFS="" read -d '' expected_output <<'EOF' 8 | EOF 9 | 10 | IFS="" read -d '' expected_result <<'EOF' 11 | pkgname=foo 12 | pkgver=1 13 | 14 | build() { 15 | # template start; name=foo@-_.+a; version=1; 16 | 42 cookies 17 | # template end; 18 | } 19 | EOF 20 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/template-without-version/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | build() { 5 | # template start; name=template-without_version 6 | make install 7 | # template end; 8 | } 9 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/template-without-version/templates/template-without_version.template: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msys2/msys2-pacman/2eabe53cc265d1a8c86e6621b40ca7250747d7bb/test/scripts/makepkg-template-tests/template-without-version/templates/template-without_version.template -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/template-without-version/testcase-config: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=255 3 | 4 | IFS="" read -d '' expected_output <<'EOF' 5 | Couldn't detect version for template './makepkg-template-tests/template-without-version/templates/template-without_version.template' 6 | EOF 7 | 8 | IFS="" read -d '' expected_result <<'EOF' 9 | EOF 10 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/testcase-config-template: -------------------------------------------------------------------------------- 1 | arguments+=() 2 | expected_exitcode=0 3 | 4 | # set IFS="" if you want trailing new line(s), otherwise remove it 5 | IFS="" read -d '' expected_output <<'EOF' 6 | EOF 7 | 8 | IFS="" read -d '' expected_result <<'EOF' 9 | EOF 10 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/update-version-with-newest-option/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=foo 2 | pkgver=1 3 | 4 | build() { 5 | # template start; name=perl-module; version=1.0 6 | # template end; 7 | } 8 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/update-version-with-newest-option/templates/perl-bla-1.2.template: -------------------------------------------------------------------------------- 1 | bla bla 2 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/update-version-with-newest-option/templates/perl-module-1.0.template: -------------------------------------------------------------------------------- 1 | echo "before bla template" 2 | # template input; name=perl-bla 3 | echo "after bla template" 4 | perl Makefile.pl 5 | make 6 | make install 7 | -------------------------------------------------------------------------------- /test/scripts/makepkg-template-tests/update-version-with-newest-option/templates/perl-module-1.1.template: -------------------------------------------------------------------------------- 1 | echo "perl-module version 1.1" 2 | echo "before bla template" 3 | # template input; name=perl-bla 4 | echo "after bla template" 5 | perl Makefile.pl 6 | make 7 | make install 8 | -------------------------------------------------------------------------------- /test/scripts/meson.build: -------------------------------------------------------------------------------- 1 | tests = [ 2 | 'parseopts_test.sh', 3 | 'makepkg-template_test.sh', 4 | ] 5 | 6 | foreach tst : tests 7 | test(tst, 8 | BASH, 9 | protocol : 'tap', 10 | env : TEST_ENV, 11 | args : [ 12 | join_paths(meson.current_source_dir(), tst), 13 | ]) 14 | endforeach 15 | -------------------------------------------------------------------------------- /test/util/meson.build: -------------------------------------------------------------------------------- 1 | test('vercmptest', 2 | BASH, 3 | env : TEST_ENV, 4 | protocol : 'tap', 5 | args : [ 6 | join_paths(meson.current_source_dir(), 'vercmptest.sh') 7 | ]) 8 | --------------------------------------------------------------------------------