Compare commits

..

50 Commits

Author SHA1 Message Date
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
Patrick McCarty 128799fa02 local repo: unhide local repo conf files
To make sure the conf files are more visible in the local repo
directory, unhide them by installing them without a leading dot
character.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-06 16:56:47 -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 8bf6c59e96 Enable local repo support for 'make build'
With this change, 'make build' will automatically use the local repo, if
enabled. A notice is printed in case the user didn't want to use the
local repo and wishes to disable it with 'make repodisable'.

Another functional change here is that 'make build' will use the in-tree
mock config (clear.cfg) instead of the /etc/mock/clear.cfg. If this
behavior is not desired, then MOCK_CONF can be modified in
Makefile.config, or overridden by a Makefile.config.site_local.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-03-06 16:56:47 -08:00
Patrick McCarty ac3f1898f6 local repo: forcibly remove RPMs from the local dir
In case the user runs 'make repoclean' followed by 'make repoadd' in a
package repo dir, 'rm' will complain. Add the -f option to silence those
warnings.

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 ab142ead38 local repo: run createrepo after 'repodel' removes RPMs
To ensure that RPM repo metadata is always up-to-date for the local
repo, make sure createrepo is run after removing the RPMs.

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
clrbuilder 9f8869fdff Update packages file for version 21150
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-03-06 06:01:44 -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
clrbuilder 100ad5965e Update packages file for version 20920
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-22 12:01:34 -08:00
clrbuilder 61db58c057 Update packages file for version 20910
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-22 06:01:30 -08:00
clrbuilder abe044ee0c Update packages file for version 20890
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-21 06:01:43 -08:00
clrbuilder 8997c889f8 Update packages file for version 20870
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-20 06:28:36 -08:00
clrbuilder f2dd86b50c Update packages file for version 20850
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-16 13:38:18 -08:00
clrbuilder fa6fa080d6 Update packages file for version 20840
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-16 06:01:40 -08:00
clrbuilder a20775675d Update packages file for version 20830
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-15 13:06:50 -08:00
clrbuilder 9dfe2ba937 Update packages file for version 20820
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-15 07:51:46 -08:00
clrbuilder 744cf78eb1 Update packages file for version 20810
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-14 21:51:54 -08:00
clrbuilder 97e7ab937a Update packages file for version 20790
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-14 06:43:32 -08:00
clrbuilder 4fb96cadcc Update packages file for version 20780
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-13 15:08:36 -08:00
clrbuilder 670a01fc25 Update packages file for version 20770
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-13 10:59:59 -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
clrbuilder 6935953ee7 Update packages file for version 20760
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-12 11:46:31 -08:00
clrbuilder f210130e38 Update packages file for version 20730
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-08 16:53:40 -08:00
Patrick McCarty 8df7f9dd6b Update autospec.conf template
Expand the autospec.conf template to document missing options. Also,
autospec just gained the ability to understand relative paths for these
two options, so document this too.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-02-06 13:23:41 -08:00
clrbuilder c424e9cd89 Update packages file for version 20700
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-06 05:45:22 -08:00
Patrick McCarty c247096be4 Provide an example for running user-setup.sh
The README was not very clear on how to actually download the script and
run it, so provide an example.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-02-05 13:14:36 -08:00
clrbuilder 42e2edaf6b Update packages file for version 20690
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-02-05 09:37:54 -08:00
William Douglas 5c4004f6d8 Update mock clear.cfg to use dnf 2018-02-02 04:17:10 +00:00
clrbuilder 374f9dd581 Update packages file for version 20600
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-30 06:00:59 -08:00
clrbuilder 68c06960c9 Update packages file for version 20580
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-29 06:00:57 -08:00
clrbuilder a52f147734 Update packages file for version 20530
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-25 06:00:56 -08:00
clrbuilder 3e7fad9b4b Update packages file for version 20520
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-24 12:02:05 -08:00
clrbuilder ac7cf82607 Update packages file for version 20510
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-24 06:00:45 -08:00
clrbuilder 458f5c71d0 Update packages file for version 20500
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-23 12:00:54 -08:00
clrbuilder f8ac700994 Update packages file for version 20490
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-23 06:00:47 -08:00
clrbuilder 794b93a8a4 Update packages file for version 20480
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-22 12:00:56 -08:00
Patrick McCarty e7d54e5528 Sort packages file with "C" locale
For consistent sorting regardless of locale, specify C locale when
refreshing the packages file.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2018-01-22 10:36:33 -08:00
clrbuilder b656b478ff Update packages file for version 20470
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-22 06:01:01 -08:00
clrbuilder 0fd03748cb Update packages file for version 20460
Signed-off-by: clrbuilder <david.j.klimesh@intel.com>
2018-01-19 12:29:34 -08:00
9 changed files with 276 additions and 29 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ endif
update:
curl -f -o packages ${BASE_URL}/source/package-sources
cut -f1 packages | LC_ALL=en_US.utf8 sort > packages.new && mv packages.new packages
cut -f1 packages | LC_ALL=C sort > packages.new && mv packages.new packages
spdx:
curl -s spdx.org/licenses/ | sed '0,/<tbody>/d;/<\/tbody>/q;s/<tr>/\f/g;s/$$/,/g;s/<[^>]*>//g' | awk 'BEGIN{RS="\f";FS=","} {print $$4}' | sed '/^$$/d;s/^[ ]*//' > spdx
+28 -12
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,7 +19,9 @@ RPMS ?= $(LATEST_RPMS)
WITH_SUDO = $(shell cmp /usr/bin/mock /usr/sbin/mock &> /dev/null && echo sudo )
MOCK ?= $(WITH_SUDO) /usr/bin/mock -r clear
# 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)))
@@ -113,7 +115,7 @@ shell:
# Always rebuild the source rpm
.PHONY: $(SRPMFILE)
$(SRPMFILE): $(SPECFILE) $(__allsources)
$(SRPMFILE): $(SPECFILE) $(__allsources) localreponotice
@$(MAKE) spdxcheck
$(MOCK) --buildsrpm --source=./ --spec=$(SPECFILE) --result=results/ --no-cleanup-after --uniqueext=$(PKG_NAME)
@@ -142,7 +144,7 @@ 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."; \
@@ -152,7 +154,8 @@ autospec: pullrebase
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)
$${SETVERSION:+ -v $${SETVERSION}} -a $(ARCHIVES) \
-m $(MOCK_CONFIG_VAL)
@$(MAKE) spdxcheck
@$(MAKE) checkblacklist
@if [ -e update_changelog.sh ] && [ -z "$$SKIP_GIT" ] ; then \
@@ -275,8 +278,11 @@ logcheck:
$(TOPLVL)/repo:
@echo "Creating local RPM repository $(TOPLVL)/repo"
mkdir $(TOPLVL)/repo
$(MAKE) localrepocreate
#help repoadd: Creates a local Yum repository in the $(TOPLVL)/repo directory.
#help repoadd: Adds locally-built RPMs for this package to the local RPM
#help repository. If this repository does not yet exist, it is created and
#help enabled.
repoadd: results/build.log $(TOPLVL)/repo
@if [ -z "`grep '^Wrote: .*$(shell basename $(SRPMFILE))$$' results/build.log`" ]; then \
echo "You have not yet succesfully built this release yet"; exit 1; \
@@ -285,17 +291,16 @@ repoadd: results/build.log $(TOPLVL)/repo
echo "Cleaning old rpms:"; \
for r in `cat .repo-index`; do \
echo "-$$r"; \
rm $(TOPLVL)/repo/$$r; \
rm -f $(TOPLVL)/repo/$$r; \
done; \
rm .repo-index; \
fi
for r in $(LATEST_RPMS); do echo "+$$r"; echo $$(basename $$r) >> .repo-index; cp $$r $(TOPLVL)/repo; done
( cd $(TOPLVL)/repo ; if type createrepo_c 1>/dev/null 2>&1; then createrepo_c .; else createrepo .; fi );
@cp $(TOPLVL)/projects/common/image-creator/yum.conf $(TOPLVL)/repo/.yum.conf
@printf "\n\n[local]\nname=Local\nfailovermethod=priority\nenabled=1\ngpgcheck=0\n" >> $(TOPLVL)/repo/.yum.conf
@printf "baseurl=file://$$(realpath $(TOPLVL))/repo/\n\n" >> $(TOPLVL)/repo/.yum.conf
$(MAKE) localrepocreate
$(call localrepoenable,${PM_CONF},${MOCK_CONF})
#help repodel: Removes package from local Yum repository.
#help repodel: Removes RPMs from the local RPM repository that were
#help previously added by 'make repoadd' for this package.
repodel:
@if [ -f .repo-index ]; then \
echo "Cleaning old rpms:"; \
@@ -304,8 +309,19 @@ repodel:
rm -f $(TOPLVL)/repo/$$r; \
done; \
rm .repo-index; \
$(MAKE) localrepocreate; \
fi
#help repoenable: Enables the local RPM repository for use with Yum/DNF and
#help Mock. If this repository does not yet exist, it is created.
repoenable: $(TOPLVL)/repo ; $(call localrepoenable,${PM_CONF},${MOCK_CONF})
#help repodisable: Disables the local RPM repository.
repodisable: localrepodisable ;
#help repostatus: Summarizes the local RPM repository status.
repostatus: localrepostatus ;
loop-up:
$(loopup)
+7
View File
@@ -54,6 +54,13 @@ AUTOSPEC_CONF = $(TOPLVL)/projects/common/autospec.conf
# in "pkg-mapping" for cloning/pulling package repos.
USE_PACKAGE_MAPPING = yes
# Package manager config file. Default to the in-tree copy.
PM_CONF = $(TOPLVL)/projects/common/image-creator/yum.conf
# Mock configuration file. Default to the in-tree copy.
MOCK_CONF = $(TOPLVL)/projects/common/koji-client-files/clear.cfg
# Include any site local configuration variables. These variables may override
# the definitions given above.
-include $(TOPLVL)/projects/common/Makefile.config.site_local
+76
View File
@@ -62,6 +62,82 @@ define remotepkgname
$(if $(USE_PACKAGE_MAPPING),$$(awk -v P="$(1)" '$$1 == P { res=$$2 } END { print res ? res : P }' $(TOPLVL)/projects/common/pkg-mapping),$(1))
endef
# Enables the local RPM repo by installing package manager and Mock configs.
# First argument is the path to the package manager config, and the second
# argument is the path to the mock config. Each of these config files is
# augmented for local repo support.
define localrepoenable
@cp $(1) $(TOPLVL)/repo/yum.conf
@printf "\n\n[local]\nname=Local\nfailovermethod=priority\nenabled=1\ngpgcheck=0\n" >> $(TOPLVL)/repo/yum.conf
@printf "baseurl=file://$$(realpath $(TOPLVL))/repo/\n\n" >> $(TOPLVL)/repo/yum.conf
@cp $(2) $(TOPLVL)/repo/clear.cfg
@printf "\n\n[localrepo]\nname=Local repo\nfailovermethod=priority\nenabled=1\ngpgcheck=0\n" >> $(TOPLVL)/repo/clear.cfg
@printf "baseurl=file://$$(realpath $(TOPLVL))/repo/\n\n" >> $(TOPLVL)/repo/clear.cfg
@sed -i '/^"""/d; $$a"""' $(TOPLVL)/repo/clear.cfg
endef
# Disables the local RPM repo by removing the installed package manager and
# Mock configuration files.
localrepodisable:
@rm -f $(TOPLVL)/repo/yum.conf
@rm -f $(TOPLVL)/repo/clear.cfg
# Runs createrepo_c (or createrepo) for the local RPM repo
localrepocreate:
( cd $(TOPLVL)/repo ; if type createrepo_c 1>/dev/null 2>&1; then createrepo_c .; else createrepo .; fi );
# Remove all RPMs from the local RPM repo
localrepoclean:
@find $(TOPLVL)/repo -maxdepth 1 -name '*.rpm' -delete
# Summarizes the local RPM repo status
localrepostatus:
@if [ ! -d $(TOPLVL)/repo ]; then \
echo '** Local repo not found'; \
exit 0; \
fi; \
if [ -f $(TOPLVL)/repo/yum.conf ]; then \
echo '** Local repo enabled for Yum/DNF.'; \
else \
echo '** Local repo not enabled for Yum/DNF.'; \
fi; \
if [ -f $(TOPLVL)/repo/clear.cfg ]; then \
echo '** Local repo enabled for Mock.'; \
else \
echo '** Local repo not enabled for Mock.'; \
fi; \
echo -n '** Local repo package list: '; \
( \
cd "$(TOPLVL)/repo"; \
LC_COLLATE="C"; \
shopt -s nullglob; \
set -- *.rpm; \
if [ -n "$$1" ]; then \
printf '\n'; printf '%q\n' "$$@"; \
else \
printf 'none found\n'; \
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
# Make sure that HELPSPACE has exactly HELPLEN spaces in it
+36 -6
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 ; \
@@ -148,6 +152,7 @@ proper: $(proper_PKGS)
.PHONY: $(proper_PKGS)
$(clean_PKGS):
@echo "cleaning $(patsubst clean_%,%,$@)"
-@$(MAKE) -s -j -C $(addprefix packages/,$(patsubst clean_%,%,$@)) clean
$(proper_PKGS):
@@ -157,7 +162,7 @@ $(proper_PKGS):
#help and unstaged files in addition to staged files.
status: $(PACKAGES_FILE) $(addprefix packages/,$(PKGS))
@for p in projects/common $(addprefix packages/,$(PKGS)); do \
(cd $$p ; git status | grep -q 'nothing to commit, working [^ ]* clean' || (echo "Uncommitted changes in $$p:"; git status)) ;\
if [ -d "$$p/.git" ] && [ -n "$$(git -C $$p status -uno --porcelain)" ]; then echo "Uncommitted changes in $$p:"; git -C "$$p" status --short; fi ;\
done
#help diff: Runs git diff for all package repos and displays the output using
@@ -187,22 +192,47 @@ 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; \
fi
@git clone $(PKG_BASE_URL)/$(NAME) $(TOPLVL)/packages/$(NAME) &> /dev/null || true
@if [ ! -d $(TOPLVL)/packages/$(NAME)/.git ]; then \
echo "no remote repository found, creating new package repository and running autospec"; \
mkdir -p $(TOPLVL)/packages/$(NAME); \
( \
cd $(TOPLVL)/packages/$(NAME); \
git init; \
git remote add origin $(PKG_BASE_URL)/$(NAME); \
$(call gitoliteurl,packages/$(NAME)); \
$(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 --integrity -t packages/$(NAME) --config $(AUTOSPEC_CONF) $(URL) --name $(NAME) -m $(MOCK_CONFIG_VAL); \
$(TOPLVL)/projects/common/checkblacklist.sh $(TOPLVL)/projects/common/blacklist $(TOPLVL)/packages/${NAME}/results/*.rpm; \
else \
echo "$(NAME) already exists at $(TOPLVL)/packages/$(NAME)"; \
exit 1; \
fi
$(TOPLVL)/repo:
@echo "Creating local RPM repository $(TOPLVL)/repo"
mkdir $(TOPLVL)/repo
$(MAKE) localrepocreate
#help repoenable: Enables the local RPM repository for use with Yum/DNF and
#help Mock. If this repository does not yet exist, it is created.
repoenable: $(TOPLVL)/repo ; $(call localrepoenable,${PM_CONF},${MOCK_CONF})
#help repodisable: Disables the local RPM repository.
repodisable: localrepodisable ;
#help repoclean: Removes all RPMs from the local RPM repository.
repoclean: localrepoclean localrepocreate ;
#help repostatus: Summarizes the local RPM repository status.
repostatus: localrepostatus ;
# Define site local toplevel targets in a separate makefile
-include $(TOPLVL)/projects/common/Makefile.toplevel.site_local
+10 -2
View File
@@ -20,8 +20,16 @@ building Clear Linux packages.
### Automated setup
Download the [user setup](user-setup.sh) script and run it on your Clear Linux
system as an unprivileged user. After the script completes, make sure to logout
and login again to complete the setup process.
system as an unprivileged user.
```
$ curl -O https://raw.githubusercontent.com/clearlinux/common/master/user-setup.sh
$ chmod +x user-setup.sh
$ ./user-setup.sh
```
After the script completes, make sure to logout and login again to complete the
setup process.
The script either accepts no options, or all (3) options in case you are
configuring the Koji CLI for remote building on a Koji server. The options are
+8
View File
@@ -13,3 +13,11 @@
# String to replace with "localhost" in upstream tarball URLs
#urlban =
# Path to packages file, a list of current packages in Clear Linux. It can be
# an absolute path or a path relative to this autospec.conf.
#packages_file =
# Path to yum config, used for generating whatrequires. It can be an absolute
# path or a path relative to this autospec.conf.
#yum_conf =
+3 -1
View File
@@ -4,8 +4,10 @@ config_opts['legal_host_arches'] = ('x86_64',)
config_opts['chroot_setup_cmd'] = 'groupinstall build srpm-build'
config_opts['dist'] = 'clear' # only useful for --resultdir variable subst
config_opts['extra_chroot_dirs'] = [ '/run/lock', ]
config_opts['useradd'] = '/usr/sbin/useradd -m -u %(uid)s -g %(gid)s -d %(home)s %(user)s'
config_opts['useradd'] = '/usr/sbin/useradd -m -u %(uid)s -g %(gid)s -d %(home)s %(user)s'
config_opts['plugin_conf']['ccache_enable'] = False
config_opts['releasever'] = 'clear'
config_opts['package_manager'] = 'dnf'
config_opts['yum.conf'] = """
+107 -7
View File
@@ -9,6 +9,7 @@ Jinja2
Keras
LS_COLORS
LVM2
LibRaw
LibVNCServer
Linux-PAM
LuaJIT
@@ -24,7 +25,6 @@ OpenSP
Paste
PasteDeploy
Pillow
PyQt5
PyWavelets
PyYAML
Pygments
@@ -48,6 +48,7 @@ R-TTR
R-XML
R-assertthat
R-backports
R-base64enc
R-bitops
R-brew
R-car
@@ -73,6 +74,7 @@ R-gtable
R-gtools
R-highr
R-hms
R-htmltools
R-httpuv
R-httr
R-iterators
@@ -117,12 +119,15 @@ R-randomForest
R-repr
R-reshape2
R-rlang
R-rmarkdown
R-roxygen2
R-rprojroot
R-rstudioapi
R-rversions
R-sandwich
R-scales
R-shiny
R-sourcetools
R-sp
R-statmod
R-stringi
@@ -140,6 +145,7 @@ R-viridisLite
R-whisker
R-withr
R-xml2
R-xtable
R-xts
R-yaml
R-zoo
@@ -156,6 +162,7 @@ SDL_mixer
SDL_net
SDL_ttf
SQLAlchemy
Send2Trash
SocksiPy-branch
Sphinx
SuiteSparse
@@ -170,10 +177,13 @@ WebTest
Werkzeug
Whoosh
abireport
absl-py
accountsservice
acl
acme
acpica-unix2
acrn-devicemodel
acrn-hypervisor
adwaita-icon-theme
aeon
alabaster
@@ -196,6 +206,7 @@ arc-theme
argcomplete
argparse
asciidoc
asio
asn1crypto
aspell
aspell-en
@@ -219,10 +230,12 @@ autogen
automake
awscli
azure-configs
babeltrace
babl
backports.functools_lru_cache
backports.ssl_match_hostname
backports.weakref
baobab
bash
bash-completion
bash_kernel
@@ -245,6 +258,7 @@ bluez
bndl-lamp-basic
bokeh
boost
borgbackup
boto
boto3
botocore
@@ -259,10 +273,13 @@ c_rehash
ca-certs
ca-certs-static
cabextract
cached-property
cairo
cairomm
cantarell-fonts
cargo
caribou
catch2
catkin
catkin_pkg
ccache
@@ -272,12 +289,15 @@ certbot
certifi
cffi
cgdb
cgit
chardet
check
cheese
chrome-gnome-shell
chrony
chrpath
cifs-utils
clamav
clear-config-management
clear-containers-agent
clear-containers-image
@@ -293,6 +313,7 @@ clr-boot-manager
clr-debug-info
clr-desktop-defaults
clr-hardware-files
clr-init
clr-man-pages
clr-power-tweaks
clr-python-timestamp
@@ -319,7 +340,7 @@ comedilib
compat-SDL2-soname1
compat-efivar-soname0
compat-fuse-soname2
compat-gc-soname1
compat-gegl
compat-glew-soname1
compat-guile-soname20
compat-libical-soname2
@@ -375,6 +396,7 @@ dbus-glib
dconf
deap
decorator
defusedxml
dejagnu
desktop-file-utils
dfc
@@ -395,6 +417,7 @@ docbook-xml
docker
docker-py
docutils
dogtail
dos2unix
dosfstools
double-conversion
@@ -410,6 +433,7 @@ ecdsa
ed
edk2
efibootmgr
efitools
efivar
eigen
elasticsearch
@@ -438,6 +462,7 @@ extras
faba-icon-theme
fann
farstream
fasteners
fcgi
fftw
file
@@ -457,6 +482,7 @@ flex
flmsg
flnet
fltk
folks
font-adobe-100dpi
font-adobe-75dpi
font-bitstream-type1
@@ -479,11 +505,13 @@ gcab
gcc
gcr
gcs-oauth2-boto-plugin
gdal
gdb
gdbm
gdk-pixbuf
gdm
geany
geany-plugins
gedit
gegl
gensim
@@ -491,6 +519,8 @@ geoclue
geocode-glib
gettext
gevent
gexiv2
gfbgraph
gflags
ghostscript
gimp
@@ -519,6 +549,7 @@ gnome-bluetooth
gnome-calculator
gnome-calendar
gnome-characters
gnome-color-manager
gnome-common
gnome-control-center
gnome-desktop
@@ -527,17 +558,26 @@ gnome-font-viewer
gnome-icon-theme
gnome-initial-setup
gnome-keyring
gnome-logs
gnome-maps
gnome-menus
gnome-music
gnome-online-accounts
gnome-panel
gnome-photos
gnome-screenshot
gnome-session
gnome-settings-daemon
gnome-shell
gnome-shell-extensions
gnome-system-monitor
gnome-terminal
gnome-themes-standard
gnome-todo
gnome-tweak-tool
gnome-user-docs
gnome-video-effects
gnome-weather
gnu-efi
gnupg
gnuplot
@@ -545,6 +585,7 @@ gnutls
go
gobject-introspection
golang-github-cpuguy83-go-md2man
gom
goocanvas
google-api-python-client
google-apitools
@@ -557,6 +598,7 @@ gpredict
gptfdisk
gradle
gradle-dep
graphene
graphviz
greenlet
grep
@@ -567,6 +609,7 @@ groff
grub
gsettings-desktop-schemas
gsl
gsound
gspell
gst-plugins-bad
gst-plugins-base
@@ -610,6 +653,7 @@ hunspell
hwloc
hyperstart
hypothesis
i2c-tools
ibus
icalendar
icdiff
@@ -625,6 +669,7 @@ init-rdahead
inotify-tools
inputproto
intltool
invm-frameworks
ioping
iotop
ipaddr
@@ -648,11 +693,12 @@ irssi
isa-l
iso-codes
iso8601
isodate
isort
ister
itstool
iw
javapackages-tools
ixpdimm_sw
jedi
jedi-vim
jemalloc
@@ -730,6 +776,7 @@ libcap
libcap-ng
libcdio
libcgroup
libchamplain
libcomps
libconfig
libcroco
@@ -748,6 +795,7 @@ libgcrypt
libgd
libgdata
libgee
libgepub
libgfortran-avx
libgfortran-compat-soname3
libgit2
@@ -835,8 +883,10 @@ libxkbcommon
libxkbfile
libxklavier
libxml2
libxml2-legacy
libxshmfence
libxslt
libyami
libzip
linecache2
links
@@ -851,6 +901,7 @@ linux-hyperv-mini
linux-kvm
linux-libc-headers
linux-lts
linux-pk414
linux-steam-integration
linux-tools
llvm
@@ -895,6 +946,7 @@ mistune
mixer-tools
mkfontdir
mkfontscale
mkosi
mock
mod_wsgi
moka-icon-theme
@@ -906,11 +958,13 @@ mozjs38
mpc
mpfr
mpg123
msgpack-python
msmtp
msr-tools
mstflint
mtdev
multimon-ng
multipath-tools
murrine
musl
mutt
@@ -922,10 +976,12 @@ nasm
nautilus
nbconvert
nbformat
nbsphinx
ncurses
ncurses-compat
ndctl
ndg_httpsclient
neofetch
neon
net-snmp
net-tools
@@ -980,6 +1036,7 @@ openconnect
opencv
openjade
openjdk
openjdk9
openldap
openmpi
opensm
@@ -992,15 +1049,18 @@ opusfile
orc
ordereddict
ostree
ovirt-guest-agent
p11-kit
p7zip
packaging
pacrunner
pandas
pandoc
pandocfilters
pango
pangomm
parallel
parameter-framework
paramiko
parsedatetime
parso
@@ -1039,6 +1099,7 @@ perl-Eval-Closure
perl-Exception-Class
perl-Exporter-Tiny
perl-File-Listing
perl-File-Slurp
perl-HTML-Parser
perl-HTML-Tagset
perl-HTTP-Cookies
@@ -1153,11 +1214,12 @@ ptyprocess
pugixml
pulseaudio
py
py2cairo
pyOpenSSL
pyaml
pyasn1
pyasn1-modules
pyatspi
pycairo
pycodestyle
pycparser
pycrypto
@@ -1170,8 +1232,8 @@ pygobject
pyliblzma
pylint
pynacl
pypandoc
pyparsing
pypy
pyquery
pyrfc3339
pyserial
@@ -1201,6 +1263,7 @@ python-systemd
python-tappy
python-toml
python-urwid
python-zeep
python3
pytz
pyudev
@@ -1210,8 +1273,33 @@ pyzmq
qemu
qemu-lite
qpdf
qt-everywhere-opensource-src
qt3d
qtbase
qtcanvas3d
qtcharts
qtconnectivity
qtconsole
qtdeclarative
qtgraphicaleffects
qtimageformats
qtlocation
qtmultimedia
qtquickcontrols
qtquickcontrols2
qtremoteobjects
qtscript
qtscxml
qtsensors
qtserialbus
qtserialport
qtsvg
qttools
qttranslations
qtvirtualkeyboard
qtwebchannel
qtwebsockets
qtx11extras
qtxmlpatterns
quagga
quilt
randrproto
@@ -1256,6 +1344,7 @@ screen
scripttest
scrnsaverproto
seaborn
seahorse
secretstorage
sed
setproctitle
@@ -1285,12 +1374,13 @@ sox
spark-dep
speex
speexdsp
sphinx_rtd_theme
sphinxcontrib-newsfeed
sphinxcontrib-websupport
spi-tools
spice
spice-gtk
spice-protocol
spyder
spyder-notebook
sqlite-autoconf
sqlparse
@@ -1347,6 +1437,7 @@ tiptop
tk
tmux
tokyocabinet
toolbelt
tornado
totem
totem-pl-parser
@@ -1355,6 +1446,7 @@ tqdm
traceback2
traceroute
tracker
tracker-miners
traitlets
tree
typed-ast
@@ -1371,6 +1463,7 @@ upower
uritemplate
urlgrabber
urllib3
usbredir
usbutils
usermode
userspace-rcu
@@ -1385,11 +1478,13 @@ videoproto
vim
vim-go
vinagre
vino
virt-manager
virt-viewer
virtualenv
vlc
volume_key
vsqlite
vte
vulkan-sdk
waitress
@@ -1401,6 +1496,7 @@ webencodings
webkitgtk
websocket_client
websockify
weechat
weston
wget
wheel
@@ -1417,7 +1513,9 @@ xauth
xbitmaps
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-wm
xclip
xcmiscproto
xcursor-themes
@@ -1462,6 +1560,7 @@ xkbcomp
xkeyboard-config
xlog
xmlsec1
xmlstarlet
xmlto
xorg-server
xorriso
@@ -1477,6 +1576,7 @@ xz
yajl
yaml
yasm
yelp
yelp-tools
yelp-xsl
yum