27 Commits
Author SHA1 Message Date
Patrick McCarty e545190de3 Fixups for autospecnew
- Run git commands within the newly created package repo
- Only run these commands if autospec succeeds

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-04-25 15:24:24 -07:00
Arjan van de Ven 9921115897 git diff not git show 2019-04-25 21:59:43 +00:00
Arjan van de Ven 6bc5718c25 Add patchfilter to autsopecnew 2019-04-25 18:21:11 +00:00
Patrick McCarty 012a1a3767 Support pre-checks for autospec and autospecnew too
For some commands, it is useful to be able to add custom prerequisites.
We already support this for `make koji` and `make build`, and there was
just a request to add it for `make autospec` and `make autospecnew`.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-09-21 12:12:23 -07:00
Patrick McCarty 806a1f5593 Fix several commands to use PKGS_LOCAL
Several commands should be using PKGS_LOCAL, which is the list of all
package repos that are present on the system, since the user might not
have all repos from PKGS cloned.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-08-27 14:40:57 -07:00
Patrick McCarty b82d61d686 clean/proper: honor toplevel --jobs value
This fixes integration with the GNU Make jobserver such that the
-j/--jobs value passed to make is actually honored.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-08-27 14:28:58 -07:00
Patrick McCarty f43a186a78 Store copies of binary RPMs in "rpms" dir
To improve visibility of which RPMs a user may want to install after a
build, copy (hardlink) them to a separate "rpms" directory.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-08-01 09:38:27 -07:00
Patrick McCarty 916ce142bb pull: skip repos that do not exist locally
Since the user-setup script does not clone package repos by default
anymore, 'make pull' can be made more user-friendly by not printing
warnings if some/all/most of the package repos are not already present
in the packages/ directory.

Instead, only populate the package "pull" list with names from the
packages file that are currently present in the packages/ directory.

Package repos that are not present can be cloned as before: 'make clone'
to clone all missing package repos, or 'make clone_PKG' to clone a
selected package repo.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-06-08 12:01:18 -07:00
Patrick McCarty 1bb7b0c471 autospecnew: try to clone repo first
If the user tries to create a new package with 'make autospecnew', a
package repo will be created from scratch, even if a repo exists with
the same name at PKG_BASE_URL.

This problem stems from 'make autospecnew' assuming that all tracked
package repos are cloned already, but is a bad assumption, given the
recent change of behavior for user-setup.sh (not cloning package repos
by default).

Resolve it by first trying to clone the repo with "make clone_PKGNAME";
clone_PKGNAME targets are automatically defined for all packages listed
in the projects/common/packages file. As long as users have an
up-to-date packages file (i.e. are running 'make pull' regularly), then
this solution works well. The case not covered is when packages are
added, then later removed; package repos will already exist remotely in
this case. However, this is a relatively rare case, so I opted to only
handle the common case where a package is added and never removed from
the distro at a later point.

(Side note: I originally wanted to 'git ls-remote REPO' to check remote
repo existence, but this does not work well with Github, as Github
prompts for username/password for remotes that appear to not exist,
since they might be private repos. Prompting a Github username/password
in this case is not very user-friendly. Using the Github API looks
viable, but I would rather not special case the handling of Github repos
in the common tooling.)

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-05-11 11:21:41 -07:00
Leandro Dorileo 51dc7a7c24 autospec: use MOCK_OPTS
Also make autospec use MOCK_OPTS to pass down arbitrary mock options.

Signed-off-by: Leandro Dorileo <leandro.maciel.dorileo@intel.com>
2018-05-10 15:48:26 -07:00
Patrick McCarty 3bf5f39687 Revert "autospecnew: master branch should track origin/master"
The 'git branch' command fails at this stage because the master branch
is not initialized locally, but because the remote is also not
initialized, additional special incantations are needed to make this
work. Revert it for now so that users do not see an error message from
the 'git branch' command. A proper fix will follow later.

This reverts commit 71d9699bdd.
2018-04-12 18:05:45 -07:00
Patrick McCarty 71d9699bdd autospecnew: master branch should track origin/master
Because 'make koji' expects that master should track origin/master,
initialize the tracking branch during the autospecnew.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-04-12 17:46:01 -07:00
Patrick McCarty d22e4f985d Minor style fix in Makefile.toplevel
In my previous commit, one of the changed lines used a combination of
tabs and spaces, but it should have used tabs only.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-28 22:19:37 -07:00
Patrick McCarty 8ff80b0be2 Sync options for 'autospec' and 'autospecnew' commands
Over time, the autospec options used for 'autospec' and 'autospecnew'
commands have diverged. They are meant to be in sync, so do that here,
and format the recipe in a way that eases future changes.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-26 14:12:38 -07:00
Patrick McCarty e695db8c80 Fix 'make pull' to honor the autospec pushurl
A 'make clone' sets the proper git pushurl for autospec, but a
subsequent 'make pull' does not honor override. Fix by adding a special
condition for 'make pull'.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-14 17:30:10 -07:00
Patrick McCarty cc6e70bb29 Enable local repo notice for autospec commands
Similar to how a notice is printed for 'make build', enable the same
notice for 'make autospec' and 'make autospecnew'.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-08 14:01:48 -08:00
Patrick McCarty f3989c0d5a Enable local repo support for autospec
Local repo support was recently added for 'make build', so do the same
for 'make autospec' and 'make autospecnew'.

Note that to make mock invocations work at both package-level and
toplevel, I am resolving MOCK_CONFIG_VAL with the realpath function.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-07 16:36:41 -08:00
Patrick McCarty f697b227e8 Rename Makefile.functions to Makefile.shared
The name "shared" makes more sense at this point, since the makefile
does not contain only functions, and it is meant to be shared between
Makefile.common and Makefile.toplevel.

Also, reorder the makefile includes, since Makefile.shared should be
able to use variables defined in Makefile.config.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-07 16:00:24 -08:00
Patrick McCarty ad77e695dc local repo: instantiate repo after creating the directory
DNF seems to ignore an uninitialized repo, but Yum does not. To fix,
make sure to run createrepo immediately after creating the local repo
directory.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-06 16:56:47 -08:00
Patrick McCarty 905b1d1c06 local repo: add toplevel 'repoclean' command
In case the user wants to remove all RPMs from the local repo, they can
now run 'make repoclean' at toplevel.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-06 16:56:47 -08:00
Patrick McCarty e3b1adedd8 local repo: add 'repostatus' command
This new command displays a helpful summary of what packages exist in
the local RPM repo and whether it is enabled for Yum/DNF, Mock, or both.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-06 16:56:47 -08:00
Patrick McCarty a9982b4064 local repo: add Mock support and enable/disable commands
An interface for a local RPM repository already exists, so extend it by
adding Mock support and the ability to enable and disable the
repository, at package level and at toplevel.

Integration for commands that use Mock will be added in separate
commits.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-06 16:56:47 -08:00
Patrick McCarty 9892e87aec autospecnew: never clone the remote repo
With the assumption that developers will be keeping up-to-date by
running 'make pull; make clone', trying to clone the remote repo here is
not necessary.

If the package git repo already exists locally, no action is taken.
Otherwise, create a local package git repo, and then run autospec.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-02-26 13:34:52 -08:00
Leandro Dorileo 728e6ea221 make clean: show what's going on
Intead of waiting forever, show the user the package we're cleaning.

Signed-off-by: Leandro Dorileo <leandro.maciel.dorileo@intel.com>
2018-02-12 18:49:24 -08:00
Leandro Dorileo 240653c41d give status target a better output
Improve the output for "make status" by displaying only relevant
status parts (avoiding the git warning and instructions output).

Also make sure we don't run git status "non git package folders"
(i.e packages/common).

Signed-off-by: Leandro Dorileo <leandro.maciel.dorileo@intel.com>
2018-02-12 18:49:21 -08:00
Patrick McCarty 1cc337d5fa Fix support for ARCHIVES in autospec rules
PKG_NAME and URL were properly supported, but ARCHIVES needed to be
written back to the package repo makefile.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-01-16 13:22:57 -08:00
Patrick McCarty c18abdb9db Initial import
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2017-12-22 22:51:05 -08:00