Compare commits

..

45 Commits

Author SHA1 Message Date
clrbuilder e00c76846b Update packages file for version 22010
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-20 18:32:15 +00:00
clrbuilder af2c0bea72 Update packages file for version 21970
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-18 19:02:08 +00:00
clrbuilder b99b7e8c25 Update packages file for version 21960
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-18 12:47:49 +00:00
clrbuilder 359d2a8379 Update packages file for version 21860
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-16 02:52:02 +00:00
clrbuilder d828f3a3ce Update packages file for version 21850
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-14 20:29:27 +00:00
clrbuilder 330876d190 Update packages file for version 21830
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-13 13:01:54 +00: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
clrbuilder ded920ccb3 Update packages file for version 21810
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-12 13:01:47 +00:00
clrbuilder cc16065a09 Update packages file for version 21790
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-11 13:01:37 +00:00
clrbuilder 45f2185a25 Update packages file for version 21780
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-10 19:05:07 +00:00
clrbuilder 9ffc0b9640 Update packages file for version 21770
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-10 13:03:01 +00:00
clrbuilder 98c5937801 Update packages file for version 21760
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-09 20:56:43 +00:00
clrbuilder a50450212c Update packages file for version 21720
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-08 13:28:18 +00:00
clrbuilder ab77a99a47 Update packages file for version 21710
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-07 17:41:19 +00:00
clrbuilder 090bb77f92 Update packages file for version 21690
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-06 15:50:48 +00:00
clrbuilder f2b7a30d12 Update packages file for version 21670
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-05 13:07:37 +00:00
clrbuilder c26e27ce65 Update packages file for version 21640
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-03 20:07:19 +00:00
clrbuilder 6fa010e10b Update packages file for version 21610
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-03 13:25:42 +00:00
clrbuilder 173673b5c6 Update packages file for version 21600
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-02 19:07:05 +00:00
clrbuilder eea34ccd7f Update packages file for version 21590
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-04-02 13:49:46 +00:00
clrbuilder fa58b00fb7 Update packages file for version 21580
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-03-30 19:24:39 +00:00
Patrick McCarty cd9b9c1319 user-setup: remove suggestion to run 'newgrp kvm'
If you run `newgrp kvm` after the user-setup script completes, and then
proceed to run `make build`, `make autospec`, etc. within a package
repo, mock will fail because it tries to `groupadd mockbuild` in the
package chroot with the wrong group ID. Logging out and logging back in
results in correct behavior, so leave that as the sole recommendation.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-29 10:52:16 -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
clrbuilder eb58950c17 Update packages file for version 21540
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2018-03-28 16:51:30 +00: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 05634010e9 Disable recipe echo and set -x for 'pullrebase'
The echo commands at key points of the pullrebase should be sufficient
for users to know what action pullrebase performed.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-23 16:42:20 -07:00
Patrick McCarty f6442a0e7f Improve behavior of 'make autospec' for new repos
If a new package repo is created with make autospecnew, and then make
autospec is run immediately afterward, a git fetch is performed, but
the remote repo is not likely to exist yet.

Address this issue by only running the git fetch if the remote origin is
initialized locally via a git push, git pull, etc.

In addition to properly supporting the workflow described above, this
change also enables developers to build packages that are *not* intended
to be included in Clear Linux OS, thus not destined to appear in the
'packages' file. Package repos of this nature might have different,
manually configured remotes, or the remote may never be initialized at
all if builds are only run locally.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-23 11:59:56 -07:00
clrbuilder d6250a68cd Update packages file for version 21500
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-23 06:01:38 -07:00
clrbuilder a0208a0509 Update packages file for version 21490
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-22 12:48:08 -07:00
clrbuilder 7ff122463b Update packages file for version 21480
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-22 07:16:18 -07:00
clrbuilder 08498361a4 Update packages file for version 21470
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-22 06:01:51 -07:00
clrbuilder 1b8c8d250d Update packages file for version 21440
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-20 12:03:00 -07:00
clrbuilder 4eccb104d5 Update packages file for version 21420
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-19 12:04:45 -07:00
clrbuilder 4ac2b829d3 Update packages file for version 21410
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-19 06:51:50 -07:00
clrbuilder 052fa48e83 Update packages file for version 21400
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-16 15:00:30 -07:00
clrbuilder 382ed28176 Update packages file for version 21390
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-16 08:16:43 -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
clrbuilder f12e7e48ea Update packages file for version 21340
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-14 12:01:52 -07:00
clrbuilder f269683632 Update packages file for version 21310
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-13 15:52:23 -07:00
clrbuilder a2c4413083 Update packages file for version 21220
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-08 17:29:54 -08: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
clrbuilder 01e548b268 Update packages file for version 21180
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-07 12:02:02 -08:00
5 changed files with 514 additions and 34 deletions
+29 -25
View File
@@ -4,8 +4,8 @@ all: build
TOPLVL = ../..
include $(TOPLVL)/projects/common/Makefile.functions
include $(TOPLVL)/projects/common/Makefile.config
include $(TOPLVL)/projects/common/Makefile.shared
SHELL = /bin/bash
@@ -19,12 +19,9 @@ RPMS ?= $(LATEST_RPMS)
WITH_SUDO = $(shell cmp /usr/bin/mock /usr/sbin/mock &> /dev/null && echo sudo )
ifeq ($(wildcard $(TOPLVL)/repo/clear.cfg),)
MOCK ?= $(WITH_SUDO) /usr/bin/mock -r $(MOCK_CONF)
else
MOCK ?= $(WITH_SUDO) /usr/bin/mock -r $(TOPLVL)/repo/clear.cfg
USE_LOCAL_REPO = 1
endif
# MOCK_CONFIG_VAL is set in Makefile.shared
MOCK ?= $(WITH_SUDO) /usr/bin/mock -r $(MOCK_CONFIG_VAL)
ifneq ($(wildcard upstream),)
__allsources := $(notdir $(strip $(shell cat upstream)))
@@ -118,28 +115,29 @@ shell:
# Always rebuild the source rpm
.PHONY: $(SRPMFILE)
$(SRPMFILE): $(SPECFILE) $(__allsources)
$(SRPMFILE): $(SPECFILE) $(__allsources) localreponotice
@$(MAKE) spdxcheck
@if [ -n "${USE_LOCAL_REPO}" ]; then \
printf '\n\n** NOTICE: Using local repo for the build. Continuing after 3 seconds.\n'; \
printf '** If this is not desired, run `make repodisable`.\n'; \
printf '** The repo can be re-enabled later with `make repoenable`.\n'; \
printf '** Run `touch $(TOPLVL)/repo/opt-in-build` to prevent the 3 second delay.\n\n\n'; \
[ -f $(TOPLVL)/repo/opt-in-build ] || sleep 3; \
fi >&2
$(MOCK) --buildsrpm --source=./ --spec=$(SPECFILE) --result=results/ --no-cleanup-after --uniqueext=$(PKG_NAME)
# Do a git fetch and a git rebase rather than a git pull so aborting
# the git pull at a password prompt doesn't leave local changes stashed
# Do the the git status dance so we only apply a stash we create
# Do a git fetch and a git rebase to apply local commits on top of latest
# commits from the remote. A git fetch/rebase is used rather than a git pull so
# aborting the git pull at a password prompt doesn't leave local changes
# stashed. Do the git status dance so we only apply a stash we create. Note
# that a fetch/rebase is not attempted if the remote 'origin' is not
# initialized locally, or if the remote contains no commits.
pullrebase:
if [ -z "$$SKIP_GIT" ] && [ -e .git ]; then \
set -x ; \
@if [ -z "$$SKIP_GIT" ] && [ -e .git ]; then \
if ! git rev-parse --verify --quiet origin/master > /dev/null; then \
echo "Remote not yet initialized. Continuing."; \
exit 0; \
fi; \
echo "Fetching origin"; \
git fetch; \
if ! git rev-parse --verify --quiet FETCH_HEAD > /dev/null; then \
echo "No commits exist in remote. Continuing."; \
exit 0; \
fi; \
echo "Rebasing to origin/master"; \
if git status --porcelain | grep -q '^.[^?]'; \
then \
git stash save; \
@@ -154,17 +152,23 @@ pullrebase:
#help already a specfile, it will be overwritten. Several files used by
#help autospec will be created in the process. For more information, see
#help the project at https://github.com/clearlinux/autospec
autospec: pullrebase
autospec: pullrebase localreponotice
rm -f results/*src.rpm
@if [ -e $(SPECFILE) ] && ! grep -q "# Generated by: autospec.py" $(SPECFILE) ; then \
echo "Specfile already exists and was not created by autospec.py! Aborting."; \
exit 1; \
fi
@printf 'PKG_NAME := %s\nURL = %s\nARCHIVES = %s\n\ninclude ../common/Makefile.common\n' $(PKG_NAME) '$(firstword $(value NEWURL) $(value URL))' '$(value ARCHIVES)' > Makefile
python3 $(TOPLVL)/projects/autospec/autospec/autospec.py -t . --integrity \
${NON_INTERACTIVE} --config "$(AUTOSPEC_CONF)" ${SKIP_GIT} \
$(firstword $(NEWURL) $(URL)) --name $(PKG_NAME) ${CLEANUP} \
$${SETVERSION:+ -v $${SETVERSION}} -a $(ARCHIVES)
python3 $(TOPLVL)/projects/autospec/autospec/autospec.py \
--target . \
--integrity \
--config "$(AUTOSPEC_CONF)" \
--name $(PKG_NAME) \
--archives $(ARCHIVES) \
--mock-config $(MOCK_CONFIG_VAL) \
$${SETVERSION:+ --version $${SETVERSION}} \
${NON_INTERACTIVE} ${SKIP_GIT} ${CLEANUP} \
$(firstword $(NEWURL) $(URL));
@$(MAKE) spdxcheck
@$(MAKE) checkblacklist
@if [ -e update_changelog.sh ] && [ -z "$$SKIP_GIT" ] ; then \
+18
View File
@@ -119,6 +119,24 @@ localrepostatus:
fi; \
)
# Detection of whether to use the local RPM repo occurs on-the-fly. Normally,
# variable definitions appear in Makefile.config, but these variables are not
# intended to be user-modifiable.
ifeq ($(wildcard $(TOPLVL)/repo/clear.cfg),)
MOCK_CONFIG_VAL = $(realpath $(MOCK_CONF))
else
MOCK_CONFIG_VAL = $(realpath $(TOPLVL)/repo/clear.cfg)
USE_LOCAL_REPO = 1
endif
localreponotice:
@if [ -n "${USE_LOCAL_REPO}" ]; then \
printf '\n\n** NOTICE: Using local repo for the build. Continuing after 3 seconds.\n'; \
printf '** If this is not desired, run `make repodisable`.\n'; \
printf '** The repo can be re-enabled later with `make repoenable`.\n'; \
printf '** Run `touch $(TOPLVL)/repo/opt-in-build` to prevent the 3 second delay.\n\n\n'; \
[ -f $(TOPLVL)/repo/opt-in-build ] || sleep 3; \
fi >&2
.PHONY: help
##### Code
+17 -4
View File
@@ -4,8 +4,8 @@ all: clone
TOPLVL = .
include $(TOPLVL)/projects/common/Makefile.functions
include $(TOPLVL)/projects/common/Makefile.config
include $(TOPLVL)/projects/common/Makefile.shared
SHELL = /bin/bash
@@ -80,7 +80,11 @@ ${PULL_PKGS}:
fi ; \
git --no-pager log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit $$O..$$N; echo; \
fi ; \
$(call gitoliteurl,$$p); \
if [ "$$p" = "projects/autospec" ] ; then \
git remote set-url --push origin https://github.com/clearlinux/autospec.git; \
else \
$(call gitoliteurl,$$p); \
fi ; \
else \
echo "$$p: no such remote 'origin'"; \
fi ; \
@@ -188,7 +192,7 @@ provides:
#help autospecnew: Creates a new autospec package with for a given URL=$(URL)
#help with NAME=$(NAME). Several files used by autospec will be created in the
#help process. For more information about autospec, see the project page on Github https://github.com/clearlinux/autospec
autospecnew:
autospecnew: localreponotice
@if [ -z $(NAME) ] || [ -z $(URL) ]; then \
echo "Please specify NAME and URL. The ARCHIVES variable is optional."; \
exit 1; \
@@ -204,7 +208,16 @@ autospecnew:
$(call subjectprefix,$(NAME)); \
); \
printf 'PKG_NAME := %s\nURL = %s\nARCHIVES = %s\n\ninclude ../common/Makefile.common\n' $(NAME) '$(value URL)' '$(value ARCHIVES)' > $(TOPLVL)/packages/$(NAME)/Makefile; \
python3 $(TOPLVL)/projects/autospec/autospec/autospec.py --integrity -t packages/$(NAME) --config $(AUTOSPEC_CONF) $(URL) --name $(NAME); \
python3 $(TOPLVL)/projects/autospec/autospec/autospec.py \
--target packages/$(NAME) \
--integrity \
--config "$(AUTOSPEC_CONF)" \
--name $(NAME) \
--archives $(ARCHIVES) \
--mock-config $(MOCK_CONFIG_VAL) \
$${SETVERSION:+ --version $${SETVERSION}} \
${NON_INTERACTIVE} ${SKIP_GIT} ${CLEANUP} \
$(URL); \
$(TOPLVL)/projects/common/checkblacklist.sh $(TOPLVL)/projects/common/blacklist $(TOPLVL)/packages/${NAME}/results/*.rpm; \
else \
echo "$(NAME) already exists at $(TOPLVL)/packages/$(NAME)"; \
+449 -4
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -149,4 +149,4 @@ fi
echo -en "\n************************\n"
echo 'Workspace has been set up in the "clearlinux" directory'
echo 'NOTE: logout and log back in or run "newgrp kvm" to finalize the setup process'
echo 'NOTE: logout and log back in to finalize the setup process'