Compare commits

..

274 Commits

Author SHA1 Message Date
clrbuilder 16a09f7fa6 Update packages file for version 31070
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-20 05:06:44 +00:00
clrbuilder 5a438328f2 Update packages file for version 31060
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-19 05:10:42 +00:00
clrbuilder 9ffb55be69 Update packages file for version 31050
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-18 05:03:03 +00:00
Patrick McCarty af3c84505d toplevel: set autospec pushurl to ssh instead of https
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-09-17 14:34:16 -07:00
clrbuilder a865a99283 Update packages file for version 31020
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-14 05:28:57 +00:00
clrbuilder 9e8f0a6ff0 Update packages file for version 31010
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-13 05:02:30 +00:00
clrbuilder 76301d4b78 Update packages file for version 31000
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-12 05:02:38 +00:00
clrbuilder 08bef91443 Update packages file for version 30990
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-11 05:03:26 +00:00
clrbuilder 93202eb3b5 Update packages file for version 30970
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-09 05:02:59 +00:00
clrbuilder 14977f527c Update packages file for version 30960
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-06 05:06:16 +00:00
clrbuilder fa93c354e1 Update packages file for version 30950
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-09-05 05:03:15 +00:00
Patrick McCarty 6a54f15cb6 Add new package: R-systemfonts
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-09-03 21:14:03 -07:00
clrbuilder fa42020aa9 Update packages file for version 30910
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-31 23:58:25 +00:00
clrbuilder a727fe3722 Update packages file for version 30900
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-30 05:03:46 +00:00
clrbuilder c41eeea37a Update packages file for version 30890
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-29 05:03:31 +00:00
clrbuilder a07f64294f Update packages file for version 30870
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-27 05:03:19 +00:00
clrbuilder 59a3a29c4c Update packages file for version 30840
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-22 05:02:48 +00:00
clrbuilder cba91e5044 Update packages file for version 30830
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-21 05:02:27 +00:00
Patrick McCarty a5d39507cc Merge tag 'refs/tags/30820' into master 2019-08-20 21:09:12 -07:00
clrbuilder dc644c29a0 Update packages file for version 30820
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-20 05:02:31 +00:00
clrbuilder f5febd9cd6 Update packages file for version 30810
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-17 05:02:00 +00:00
clrbuilder 33911b18e5 Update packages file for version 30800
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-16 05:02:20 +00:00
Patrick McCarty 13e5e26cbf Move manual setup steps to a separate file
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-08-14 17:57:18 -07:00
clrbuilder 4845303ae6 Update packages file for version 30780
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-14 05:03:31 +00:00
clrbuilder 6fdc492121 Update packages file for version 30740
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-10 05:02:49 +00:00
clrbuilder 7614474aba Update packages file for version 30720
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-08 18:20:52 +00:00
clrbuilder 5bee2e96d2 Update packages file for version 30710
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-08 05:02:42 +00:00
clrbuilder 6cc08f74e7 Update packages file for version 30700
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-07 05:03:04 +00:00
clrbuilder 5b64c9b888 Update packages file for version 30690
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-06 14:03:17 +00:00
clrbuilder 88c420528d Update packages file for version 30680
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-06 05:02:55 +00:00
clrbuilder 98c7c4cb76 Update packages file for version 30670
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-05 14:12:19 +00:00
clrbuilder e2ce4353b6 Update packages file for version 30660
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-03 05:03:25 +00:00
clrbuilder 08512d3f2b Update packages file for version 30620
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-08-01 05:06:06 +00:00
Patrick McCarty f6be3f440a Unzap the addition of GCC_IGNORE_WERROR lines
Once this line is added to a package spec, it is likely to never show up
again, and its initial appearance may have a significant impact on the
build, so it is good to keep to not lose context.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-07-31 20:55:30 -07:00
clrbuilder 1a79ab1700 Update packages file for version 30600
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-31 05:04:26 +00:00
clrbuilder a6fa6599bb Update packages file for version 30580
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-30 05:23:32 +00:00
Patrick McCarty 9d6c5e6677 Fix call to the go-builder wrapper script
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-07-29 17:44:24 -07:00
William Douglas 460ce05217 Add go-builder.py and autospecnewgo target
This change enables recurive dependency resolution and packaging when
creating new go packages. To do so the 'autospecnewgo' target is
created and the autospecnew target is slightly modified to align
make target exit code expectations for failure handling.
2019-07-29 17:44:24 -07:00
William Douglas 8a2da3412d Add repostage target
When building large numbers of packages that are interdependent,
recreating the rpm repository for each package can create a large
overhead during processing. 'repostage' is intended to provide an
intermediate target for adding a package to a repository that can
later be built using localrepocreate.
2019-07-29 17:44:24 -07:00
clrbuilder 94624262ae Update packages file for version 30570
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-29 14:07:14 +00:00
clrbuilder 15a220803f Update packages file for version 30550
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-26 22:33:53 +00:00
Patrick McCarty 4130c1c97d Add new package R-mvnfast
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-07-25 12:18:01 -07:00
Patrick McCarty 7c28f0608d Add new package R-linprog
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-07-25 11:37:50 -07:00
clrbuilder 1b0945c33d Update packages file for version 30530
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-25 18:04:39 +00:00
Patrick McCarty 1300eba2b4 Refresh SPDX license list
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-07-23 15:53:16 -07:00
clrbuilder 91a900675e Update packages file for version 30490
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-23 16:02:12 +00:00
clrbuilder b137543491 Update packages file for version 30480
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-23 08:02:29 +00:00
clrbuilder bb27567407 Update packages file for version 30470
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-22 17:05:41 +00:00
clrbuilder 2973364b2e Update packages file for version 30460
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-20 16:36:42 +00:00
clrbuilder 865997ad69 Update packages file for version 30450
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-19 08:02:20 +00:00
clrbuilder 70bfbe8c17 Update packages file for version 30440
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-18 08:02:19 +00:00
Patrick McCarty 3b1e4e5558 pullrebase: skip rebase if current branch is up-to-date
Any attempt at rebasing is unnecessary when the current branch is
up-to-date with the remote, so skip the rebase in this case.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-07-17 12:54:04 -07:00
clrbuilder 2465219907 Update packages file for version 30420
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-17 16:15:58 +00:00
clrbuilder 77775f060c Update packages file for version 30410
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-16 18:03:37 +00:00
clrbuilder 67406f7be2 Update packages file for version 30400
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-16 10:01:43 +00:00
clrbuilder 9bece241c0 Update packages file for version 30380
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-15 10:02:02 +00:00
clrbuilder 602cc9563f Update packages file for version 30360
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-13 17:54:20 +00:00
George T Kramer 02b5ad93e3 Place koji user configuration in user folder
Avoid placing koji.conf in a system-level directory

Signed-off-by: George T Kramer <george.t.kramer@intel.com>
2019-07-11 17:10:09 -07:00
clrbuilder fb40533923 Update packages file for version 30320
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-11 12:02:13 +00:00
clrbuilder 06dd86a3b9 Update packages file for version 30290
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-10 00:47:12 +00:00
clrbuilder 9db26c3041 Update packages file for version 30280
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-09 18:12:07 +00:00
clrbuilder ade6194a0c Update packages file for version 30270
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-09 12:02:10 +00:00
clrbuilder a8d18b2f92 Update packages file for version 30260
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-07 17:52:48 +00:00
Arjan van de Ven c2d637b438 don't shhow version changes in the 32 bit / avx copies 2019-07-05 13:02:00 +00:00
clrbuilder 48d06e458d Update packages file for version 30230
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-05 05:53:08 +00:00
clrbuilder 0ba3b95dad Update packages file for version 30200
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-04 08:19:58 +00:00
Miguel Bernal Marin 9749d00c56 update OVMF* files
Clear Linux edk2 package was updated to stable201905

https://github.com/clearlinux-pkgs/edk2/commit/7b191c6ae982a550f2a335cd4cd4cf2857d94b49

Let's update OVMF.fd and OVMF_CODE.fd

Note:  OVMF_VARS.fd has the same hash and is not updated.

Note2: that these version of OVMF* are a copy from /usr/share/qemu
       in Clear Linux OS 30170.

$ sha512sum /usr/share/qemu/OVMF*
c6630296e4a82dc4a24b20522e815171fd9c1689403a36abf7ec070c7fce85af63b88b328721a94c415f513ffd2423f71e591ae9713e65850b5a29ebd1edac89  /usr/share/qemu/OVMF_CODE.fd
f48de15ce6dbc19c6a0770677a874f289a69df813f31add873d30324df6b96ae0a0756af52fef3101f5077280851f095120663ec68bb6d19b12a6b0937f86df8  /usr/share/qemu/OVMF.fd
448412fd7ba267b4180db8ade6edb67af467e5b9b3e3ff8dfd583a2fded4070f6951667297e6896ce8bd9f4d2ec3dd8a5a70b6e9a2f686efec9a57124fec512a  /usr/share/qemu/OVMF_VARS.fd
2019-07-03 14:22:51 -05:00
clrbuilder 7841d4dd5c Update packages file for version 30190
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-03 18:04:39 +00:00
clrbuilder 91c89fe47d Update packages file for version 30180
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-03 12:02:25 +00:00
Patrick McCarty 9d696fee5a Add R-R2jags and R-R2WinBUGS packages
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-07-02 11:48:05 -07:00
clrbuilder 54aea8a696 Update packages file for version 30160
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-02 12:02:28 +00:00
clrbuilder a4545eb4b0 Update packages file for version 30140
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-07-01 12:02:28 +00:00
clrbuilder 35d4f2c00f Update packages file for version 30130
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-28 18:01:41 +00:00
clrbuilder 15c22ac4eb Update packages file for version 30110
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-26 18:08:11 +00:00
clrbuilder 1c672f7638 Update packages file for version 30100
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-26 12:02:25 +00:00
clrbuilder d0832c89f4 Update packages file for version 30090
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-25 18:03:08 +00:00
clrbuilder 3a87e928c5 Update packages file for version 30080
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-25 12:02:17 +00:00
clrbuilder 5ba1a7e1e3 Update packages file for version 30070
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-24 18:03:08 +00:00
clrbuilder ba02bc2a4f Update packages file for version 30060
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-24 12:02:30 +00:00
clrbuilder 0ef90a4704 Update packages file for version 30050
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-23 15:45:31 +00:00
clrbuilder 0b39553aa6 Update packages file for version 30040
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-21 18:03:19 +00:00
Tan, Yew Wayne 7cd52ed2fd ltsutils: Fix PackageRepo.getNVR for package names that contain '-'
Refactor unit tests, add test case for MySQL-python package
2019-06-21 09:12:15 -07:00
Tan, Yew Wayne a379bdd1e5 ltsutils: prompt: Timeout after 60 seconds
Signed-off-by: Tan, Yew Wayne <yew.wayne.tan@intel.com>
2019-06-21 09:12:15 -07:00
Tan, Yew Wayne b8eaa3c103 ltsutils: make lts-koji: Modify koji target for building on LTS infrastructure
Differences:
- Restrict to submit from an active branch instead of master branch
- git pull --rebase from matching remote LTS branch if available
- Add "-lts" suffix to git tag
- Assume koji buildtag name is identical to branch name

Signed-off-by: Tan, Yew Wayne <yew.wayne.tan@intel.com>
2019-06-21 09:12:15 -07:00
Tan, Yew Wayne 0664274e0a ltsutils: make lts-build: Build RPM or reuse existing build
Todo: can-reuse-binary simply compares package versions to determine if
Koji builds can be shared between branches. Work is in progress to
implement ABI compatiblity testing.

Signed-off-by: Tan, Yew Wayne <yew.wayne.tan@intel.com>
2019-06-21 09:12:15 -07:00
Tan, Yew Wayne 69cee2fcd7 LTS package maintenance utility (ltsutils): initial commit
This tooling is designed to automate 2 main tasks that are part of
the package maintenance workflow of Clear Linux LTS. These tasks are:
- Back-porting of a patch (e.g. security fix) to older branches.
- (Not implemented yet) Building RPMs with the intent of sharing binaries of
  older LTS branches to newer branches whenever possible.

2 new targets are defined in Makefile.common.lts:
- lts-show: Show a summary of active LTS branches
- lts-backport: Attempt to fast-forward the previous active branch to the current branch

"Active" branches correspond to LTS releases that currently have support.
They are listed in a flat file "active-branches" in "lts" directory, from
oldest to newest. New entries are added by Clear Linux LTS developers as
new releases become available, and entries removed as releases become
obsolete.

Note: For CVE patching, the tool is not aware of CVE severity levels or
the minimum supported severity level of each LTS branch. For now it is
the user's responsibility to know when a CVE does not apply to older
branches and stop calling "make lts-backport".

Signed-off-by: Tan, Yew Wayne <yew.wayne.tan@intel.com>
2019-06-21 09:12:15 -07:00
clrbuilder 19d7dfcc56 Update packages file for version 30030
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-21 12:02:15 +00:00
clrbuilder 25e60b8d7f Update packages file for version 30020
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-20 18:02:35 +00:00
clrbuilder c6749e0569 Update packages file for version 30010
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-19 20:21:46 +00:00
Geoffroy Van Cutsem 79b17335fa Really set 'latest_builds' to the latest value of the day
Consider the following scenario:
* System being set-up on day 0 (by running user-setup.sh script)
* The github.com/clearlinux/common repo is cloned under projects/common
* Fast-forward in the future
* Clone a package for which there is no reachable upstream URL
	(e.g. clr-power-tweaks or clr-systemd-config
* Run 'make sources'
That operation will fail because it will search for the src.rpm files starting
with the Clear Linux build determined by looking up the latest tag in the
project/common repo (and the latest is the one from day 0). So it will only find
older versions of those src.rpm, and will eventually fail.

This patch adds a line that fetches all the latest tags from the upstream
projects/common repo so the 'latest_builds' variable is *really* set to the
latest of the day.

Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2019-06-19 11:03:00 -07:00
clrbuilder 18503d7ff9 Update packages file for version 30000
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-19 15:32:37 +00:00
clrbuilder d4a14d4b51 Update packages file for version 29990
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-19 12:02:34 +00:00
Patrick McCarty 67f9a85781 toplevel: simplify clean-pkgs-dir command
Create a PKGS_ORPHANED list containing all orphaned package repos (i.e.
package repos for packages not listed in projects/common/packages,
excluding the local compatibility packages/common directory), and use
that list for the `clean-pkgs-dir` command.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-06-18 17:30:19 -07:00
clrbuilder 2ab93bc546 Update packages file for version 29980
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-18 18:06:21 +00:00
clrbuilder 0697a48265 Update packages file for version 29970
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-18 12:02:24 +00:00
clrbuilder 3488d9df0b Update packages file for version 29960
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-17 17:58:32 +00:00
clrbuilder 7eda6b13d5 Update packages file for version 29950
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-17 11:58:06 +00:00
clrbuilder 22cf4d9aaa Update packages file for version 29940
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-14 17:57:53 +00:00
Arjan van de Ven abf88fe302 add some more boilerplate patterns 2019-06-14 14:48:13 +00:00
Arjan van de Ven e7d86e5ace make it clear there's no point in submitting routine stuff for review
as it only slows things down
2019-06-14 14:41:28 +00:00
clrbuilder 0ca8a71a6a Update packages file for version 29930
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-14 11:57:34 +00:00
clrbuilder c594d50d97 Update packages file for version 29920
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-13 17:58:36 +00:00
clrbuilder 923b813833 Update packages file for version 29910
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-13 11:57:26 +00:00
Thiago Macieira facfc57d55 Update message for the for-review.txt on how to recreate
People SHOULD update commit messages if it's not a simple bump or
version update.

Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
2019-06-12 16:05:52 -07:00
clrbuilder 9e0d404e52 Update packages file for version 29900
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-12 17:58:01 +00:00
clrbuilder 9d954cb33a Update packages file for version 29890
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-12 11:57:25 +00:00
Patrick McCarty 158c743fde Rename typed-ast -> typed_ast
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-06-11 20:48:41 -07:00
clrbuilder c5969bbd83 Update packages file for version 29880
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-11 17:58:21 +00:00
clrbuilder cb01f2b9ef Update packages file for version 29850
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-10 11:58:23 +00:00
clrbuilder c58e39da50 Update packages file for version 29840
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-07 17:58:47 +00:00
clrbuilder 26dea91314 Update packages file for version 29830
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-07 12:01:05 +00:00
clrbuilder efa4e1bcf8 Update packages file for version 29820
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-06 17:59:00 +00:00
clrbuilder 9fba303a7b Update packages file for version 29800
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-05 20:28:24 +00:00
clrbuilder eefffcb4cd Update packages file for version 29780
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-05 04:24:22 +00:00
clrbuilder ae59dd4aa9 Update packages file for version 29770
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-06-04 21:01:00 +00:00
Patrick McCarty 9ed6cf64eb Add notice about for-review.txt; make compatible with git send-email
The for-review.txt files were being generated with `git show` and thus
not compatible with `git send-email`. Use `git format-patch` instead to
fix this issue.

Also add a more prominent notice about the existence of for-review.txt
and its intended purpose.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-06-03 15:17:49 -07:00
clrbuilder 1e1a52e948 Update packages file for version 29680
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-29 13:05:05 +00:00
clrbuilder b9d3725172 Update packages file for version 29660
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-28 13:41:13 +00:00
clrbuilder d2c0eea1d2 Update packages file for version 29620
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-24 11:58:40 +00:00
clrbuilder 038007f64a Update packages file for version 29600
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-23 11:58:43 +00:00
clrbuilder 930a8bd3f7 Update packages file for version 29590
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-22 19:40:13 +00:00
clrbuilder 33c27808a6 Update packages file for version 29570
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-22 11:59:13 +00:00
Patrick McCarty f9b7f544be scratch-wait: explicitly specify the wait option
We always want the koji CLI to wait for `make scratch-wait`, regardless
of the environment koji detects it is being run under.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-05-22 00:44:24 -07:00
clrbuilder 6fe60137f4 Update packages file for version 29530
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-21 11:58:35 +00:00
clrbuilder b32e466635 Update packages file for version 29520
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-20 17:59:07 +00:00
clrbuilder 755bd91716 Update packages file for version 29510
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-20 11:59:04 +00:00
clrbuilder d2b615d14b Update packages file for version 29500
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-18 19:01:47 +00:00
clrbuilder 71b5075a7b Update packages file for version 29480
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-17 18:36:33 +00:00
clrbuilder fd6bcb7b24 Update packages file for version 29410
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-14 12:00:16 +00:00
clrbuilder 771b704606 Update packages file for version 29400
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-13 18:00:17 +00:00
clrbuilder b3ea1cd421 Update packages file for version 29390
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-13 11:59:22 +00:00
clrbuilder 752274f532 Update packages file for version 29380
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-12 00:18:48 +00:00
clrbuilder 1addfd447d Update packages file for version 29360
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-10 12:02:05 +00:00
clrbuilder 8546a126bd Update packages file for version 29340
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-09 11:59:29 +00:00
clrbuilder 280d5471d7 Update packages file for version 29320
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-08 20:28:09 +00:00
clrbuilder 025c9a74f1 Update packages file for version 29310
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-08 16:33:20 +00:00
clrbuilder b03db840a6 Update packages file for version 29280
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-07 20:23:05 +00:00
Patrick McCarty 59dfc2236f install-debuginfo-local: fix installation with new lookaside locations
Debuginfo packages now install binary debuginfo to /usr/share/debug and
source debuginfo to /usr/share/debug/src.

The purpose for the migration is for these new locations to serve as
"lookaside" directories used by future versions of clr-debug-info,
enabling select debuginfo packages to be installed in bundles and safely
coexist with the FUSE mounts.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-05-07 10:58:47 -07:00
clrbuilder e61ebaafc6 Update packages file for version 29260
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-06 22:59:08 +00:00
clrbuilder 4bcceb402e Update packages file for version 29250
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-06 17:59:59 +00:00
clrbuilder 5e15b47efc Update packages file for version 29240
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-06 12:00:02 +00:00
clrbuilder 043265171f Update packages file for version 29220
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-05 19:41:10 +00:00
clrbuilder 982d58e0e6 Update packages file for version 29210
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-05 04:24:30 +00:00
clrbuilder accf578c02 Update packages file for version 29190
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-03 11:59:52 +00:00
clrbuilder efe2b2bccf Update packages file for version 29170
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-05-02 12:01:06 +00:00
clrbuilder 9f77cbb6e3 Update packages file for version 29110
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-29 15:52:05 +00:00
Arjan van de Ven bd6c14938b also zap ChangeLog 2019-04-29 15:11:11 +00:00
clrbuilder 32729558d9 Update packages file for version 29080
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-26 12:00:00 +00:00
Patrick McCarty b2ad8dbda8 patchreview: exclude whatrequires file
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-04-25 16:26:06 -07:00
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
clrbuilder 8d5f8e37c5 Update packages file for version 29070
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-25 18:25:09 +00:00
Arjan van de Ven 6bc5718c25 Add patchfilter to autsopecnew 2019-04-25 18:21:11 +00:00
clrbuilder a21156767e Update packages file for version 29040
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-24 11:59:52 +00:00
clrbuilder 9dd5bb895b Update packages file for version 29020
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-23 12:00:10 +00:00
clrbuilder 67b7ef2bf4 Update packages file for version 29000
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-22 17:39:28 +00:00
clrbuilder 6ad56934fd Update packages file for version 28990
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-21 22:26:53 +00:00
Arjan van de Ven 7b08135720 fix backtrace 2019-04-20 17:07:54 +00:00
Arjan van de Ven 168c9b8606 add a for-review filtered patch 2019-04-20 00:32:37 +00:00
clrbuilder 3ff4181689 Update packages file for version 28970
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-19 19:51:00 +00:00
clrbuilder a581ac8fbf Update packages file for version 28960
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-19 14:41:20 +00:00
clrbuilder 601ca9e0fc Update packages file for version 28910
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-17 11:58:00 +00:00
clrbuilder 8848658fcf Update packages file for version 28890
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-16 11:58:13 +00:00
clrbuilder b76a7bc7f8 Update packages file for version 28870
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-15 17:58:35 +00:00
clrbuilder f8f9619eec Update packages file for version 28860
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-15 11:58:14 +00:00
clrbuilder b7b8774581 Update packages file for version 28850
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-14 17:36:23 +00:00
clrbuilder b3618cc43c Update packages file for version 28840
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-14 01:54:03 +00:00
clrbuilder 921ac270fe Update packages file for version 28820
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-12 11:58:41 +00:00
clrbuilder f41acbdeb0 Update packages file for version 28810
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-11 19:36:11 +00:00
Patrick McCarty 83a461fe40 Print progress messages for install-local and install-debuginfo-local
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-04-11 10:59:21 -07:00
Patrick McCarty 6876f3d11e Skip debuginfo install if the required rpm does not exist
Some packages in the distro do not generate debuginfo subpackages, so
make sure to skip the debuginfo install in this situation.

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-04-11 10:46:49 -07:00
clrbuilder 5a4dd4451a Update packages file for version 28800
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-11 15:27:28 +00:00
clrbuilder d48889eb29 Update packages file for version 28770
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-10 17:58:50 +00:00
clrbuilder b402f2bbdf Update packages file for version 28760
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-10 11:58:29 +00:00
clrbuilder 1fcaa4aea6 Update packages file for version 28740
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-09 11:58:30 +00:00
clrbuilder 71b927321f Update packages file for version 28730
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-09 02:59:16 +00:00
clrbuilder 40f17091a6 Update packages file for version 28720
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-08 17:59:02 +00:00
clrbuilder 3b062e1b45 Update packages file for version 28700
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-07 02:22:41 +00:00
clrbuilder 3c3fc1a16c Update packages file for version 28690
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-05 22:27:02 +00:00
clrbuilder 3c7aac6a8e Update packages file for version 28670
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-05 11:58:38 +00:00
Patrick McCarty baf555428f Update license list for SPDX 3.5
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-04-05 00:23:35 -07:00
clrbuilder 262d005c62 Update packages file for version 28660
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-04 18:20:29 +00:00
clrbuilder ceff8301a1 Update packages file for version 28650
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-04 11:58:41 +00:00
clrbuilder 8eb7264597 Update packages file for version 28630
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-03 11:58:45 +00:00
clrbuilder c10d558ee6 Update packages file for version 28600
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-01 17:59:44 +00:00
clrbuilder bd75d90fc7 Update packages file for version 28590
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-04-01 12:01:36 +00:00
clrbuilder 081c620f82 Update packages file for version 28560
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-29 11:58:42 +00:00
clrbuilder 7e017ee247 Update packages file for version 28540
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-28 11:59:08 +00:00
clrbuilder 5b43360fe8 Update packages file for version 28520
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-27 11:59:02 +00:00
clrbuilder eb8879f0f0 Update packages file for version 28510
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-26 17:59:36 +00:00
clrbuilder f18ba9060d Update packages file for version 28470
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-25 02:40:10 +00:00
California Sullivan 9fc1471023 Makefile.common: mockproper: only remove the chroot
The caches are not package-specific, and --scrub=all will clean all
caches even with the --uniqueext option. For that, we have 'make
mockclean' instead.

Using both --clean and --scrub=chroot is also unnecessary, as --clean
already removes the chroot.

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
2019-03-22 16:39:29 -07:00
clrbuilder 9885cdbf9b Update packages file for version 28450
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-22 17:59:43 +00:00
clrbuilder ce12c754ba Update packages file for version 28440
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-22 12:00:33 +00:00
clrbuilder b363871adf Update packages file for version 28430
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-21 15:20:02 +00:00
clrbuilder c028ea0072 Update packages file for version 28420
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-20 18:58:37 +00:00
clrbuilder 7dc414433f Update packages file for version 28400
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-19 17:59:24 +00:00
clrbuilder 50f18a0146 Update packages file for version 28390
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-19 11:59:15 +00:00
clrbuilder 51c26d9a01 Update packages file for version 28380
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-18 19:27:37 +00:00
clrbuilder c143f7ee95 Update packages file for version 28360
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-18 11:59:34 +00:00
clrbuilder 81bd7f5e54 Update packages file for version 28350
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-17 01:59:21 +00:00
clrbuilder 5d8e976a2a Update packages file for version 28340
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-15 17:59:55 +00:00
clrbuilder 7d624ab7ae Update packages file for version 28330
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-15 11:59:48 +00:00
clrbuilder ba14c4e50f Update packages file for version 28310
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-14 11:59:44 +00:00
clrbuilder 34fb007895 Update packages file for version 28280
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-12 17:59:43 +00:00
clrbuilder 153c8cf8f7 Update packages file for version 28260
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-11 18:00:19 +00:00
clrbuilder be45cbcf9e Update packages file for version 28240
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-10 16:19:48 +00:00
clrbuilder 853cc64dff Update packages file for version 28230
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-08 19:27:45 +00:00
clrbuilder 7e81742862 Update packages file for version 28210
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-07 19:54:20 +00:00
clrbuilder a6eceb3613 Update packages file for version 28190
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-06 21:34:36 +00:00
clrbuilder 9956be75dc Update packages file for version 28170
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-06 12:59:53 +00:00
clrbuilder c99415521e Update packages file for version 28140
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-05 04:06:17 +00:00
clrbuilder 775d77c942 Update packages file for version 28130
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-04 12:59:50 +00:00
clrbuilder 0c80ea9b2d Update packages file for version 28100
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-01 19:29:11 +00:00
clrbuilder e75cdd1186 Update packages file for version 28090
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-03-01 13:00:44 +00:00
clrbuilder 90f2aab33a Update packages file for version 28080
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-28 19:00:50 +00:00
clrbuilder 64fa18b676 Update packages file for version 28070
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-28 13:00:11 +00:00
clrbuilder dc6677df7e Update packages file for version 28060
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-27 19:55:02 +00:00
clrbuilder 68d78be45d Update packages file for version 28050
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-27 13:00:21 +00:00
clrbuilder 47e3b379d9 Update packages file for version 28040
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-26 22:05:55 +00:00
clrbuilder b089c2eee1 Update packages file for version 28030
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-26 13:01:14 +00:00
clrbuilder b66637b940 Update packages file for version 28020
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-25 19:01:19 +00:00
Patrick McCarty 0802f3932b Update license list for SPDX 3.4
Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
2019-02-25 09:51:43 -08:00
clrbuilder 2507032cba Update packages file for version 28000
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-24 18:01:41 +00:00
clrbuilder 5a1d5567ca Update packages file for version 27990
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-23 14:56:58 +00:00
clrbuilder 05a7063d8e Update packages file for version 27980
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-22 19:01:06 +00:00
clrbuilder 11ebc1c8fc Update packages file for version 27970
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-22 12:59:34 +00:00
clrbuilder 463ae178c2 Update packages file for version 27960
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-21 21:03:32 +00:00
clrbuilder 1d4aba3f8f Update packages file for version 27930
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-20 19:01:37 +00:00
clrbuilder c7fc2c3961 Update packages file for version 27920
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-20 12:59:49 +00:00
clrbuilder 82cd0ecd3f Update packages file for version 27910
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-19 19:03:37 +00:00
clrbuilder f754a866c0 Update packages file for version 27900
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-19 13:00:16 +00:00
clrbuilder 5d17b16122 Update packages file for version 27890
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-18 19:02:02 +00:00
clrbuilder 51b040bccb Update packages file for version 27860
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-17 22:46:46 +00:00
clrbuilder ad94d692e1 Update packages file for version 27850
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-16 18:27:49 +00:00
clrbuilder 8f08161958 Update packages file for version 27840
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-15 19:02:21 +00:00
clrbuilder 490bd76041 Update packages file for version 27810
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-14 19:01:29 +00:00
clrbuilder 461918321b Update packages file for version 27800
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-14 13:00:32 +00:00
clrbuilder 836969dddf Update packages file for version 27770
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-13 01:58:55 +00:00
clrbuilder cabadbf7e3 Update packages file for version 27760
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-12 19:01:35 +00:00
clrbuilder 2e20586c58 Update packages file for version 27750
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-12 13:00:20 +00:00
clrbuilder bd721579a7 Update packages file for version 27730
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-11 13:00:37 +00:00
clrbuilder f75cf1807e Update packages file for version 27720
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-10 03:17:03 +00:00
clrbuilder 49f6d1b502 Update packages file for version 27710
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-08 19:03:40 +00:00
clrbuilder 284ad47e91 Update packages file for version 27700
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-08 13:00:28 +00:00
clrbuilder 7b3321fa58 Update packages file for version 27680
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-07 21:03:54 +00:00
clrbuilder b2c8135aad Update packages file for version 27670
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-07 13:55:21 +00:00
clrbuilder 8150769596 Update packages file for version 27650
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-05 19:01:52 +00:00
clrbuilder a093411597 Update packages file for version 27640
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-05 13:00:57 +00:00
clrbuilder e429dcaa45 Update packages file for version 27630
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-04 19:04:30 +00:00
clrbuilder 06d1a29dc1 Update packages file for version 27620
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-04 12:59:56 +00:00
clrbuilder 1548275e4b Update packages file for version 27610
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-02 21:51:59 +00:00
clrbuilder fd0963167b Update packages file for version 27600
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-02-01 19:02:32 +00:00
clrbuilder 517f5bc371 Update packages file for version 27570
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-31 19:01:33 +00:00
clrbuilder 284ccd9ce0 Update packages file for version 27550
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-30 22:55:46 +00:00
clrbuilder 43d436eec3 Update packages file for version 27530
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-30 12:59:52 +00:00
clrbuilder 2bb93912f6 Update packages file for version 27520
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-29 19:03:15 +00:00
Thiago Macieira 3a0c58c76f Add a target to install the RPMs in the image accessed via 'make shell'
Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
2019-01-29 09:35:04 -08:00
clrbuilder 5519d04178 Update packages file for version 27480
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-27 16:38:08 +00:00
clrbuilder e733b31a68 Update packages file for version 27470
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-26 16:47:20 +00:00
clrbuilder 46bb95d483 Update packages file for version 27450
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-25 13:00:30 +00:00
clrbuilder afafad1ed9 Update packages file for version 27440
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-24 19:01:22 +00:00
clrbuilder bd030b99fe Update packages file for version 27430
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-24 13:00:14 +00:00
clrbuilder 179cec491a Update packages file for version 27410
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-23 13:00:47 +00:00
clrbuilder 3f9a4421d4 Update packages file for version 27390
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-22 13:00:03 +00:00
clrbuilder 519fe3ef50 Update packages file for version 27360
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-21 13:00:14 +00:00
clrbuilder a95343b9d1 Update packages file for version 27350
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-20 17:42:37 +00:00
clrbuilder 4ffa3d7af0 Update packages file for version 27330
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-18 13:00:31 +00:00
clrbuilder 05115e1bc3 Update packages file for version 27320
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-17 20:49:59 +00:00
clrbuilder fff95669db Update packages file for version 27310
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-17 13:00:27 +00:00
clrbuilder 36d363d533 Update packages file for version 27270
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-15 21:20:30 +00:00
clrbuilder 74028d1094 Update packages file for version 27250
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-15 19:00:39 +00:00
clrbuilder e9baf282b5 Update packages file for version 27220
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-15 03:24:23 +00:00
clrbuilder fa36a19fe7 Update packages file for version 27190
Signed-off-by: clrbuilder <clrbuilder@intel.com>
2019-01-13 19:55:55 +00:00
21 changed files with 2683 additions and 126 deletions
+74 -11
View File
@@ -70,10 +70,9 @@ proper: repodel
mockclean:
$(MOCK) --clean --scrub=all
#help mockproper: Clean mock chroot and cache directories for this package.
#help mockproper: Clean mock chroot
mockproper:
$(MOCK) --clean --scrub=all --uniqueext=$(PKG_NAME)
$(MOCK) --clean --scrub=chroot --uniqueext=$(PKG_NAME)
$(MOCK) --clean --uniqueext=$(PKG_NAME)
configemail:
@test -d .git || git init
@@ -144,6 +143,10 @@ pullrebase:
echo "No commits exist in remote. Continuing."; \
exit 0; \
fi; \
if [ "$$(git rev-list FETCH_HEAD | head -n 1)" = "$$(git rev-list HEAD | head -n 1)" ]; then \
echo "Current branch up-to-date. Continuing."; \
exit 0; \
fi; \
echo "Rebasing to origin/master"; \
if git status --porcelain | grep -q '^.[^?]'; \
then \
@@ -187,6 +190,19 @@ autospec: preautospec-checks pullrebase localreponotice clean-old-content
bash update_changelog.sh ; \
git commit --amend --no-edit Change* ; \
fi
@$(MAKE) -s for-review.txt
diffstat for-review.txt
@printf "\n**\n"
@printf "** NOTICE: A patch with changes is available in the file for-review.txt\n"
@printf "** To recreate (e.g., after git commit --amend), run make for-review.txt\n"
@printf "** To submit for review: git send-email --to <recipient> for-review.txt\n"
@printf "**\n\n"
#help for-review.txt: Creates the for-review.txt file, which is
#help a minimized version of the Git commit, suitable for code review.
for-review.txt:
git diff | grep -q index || python3 $(TOPLVL)/projects/common/patchfilter.py > for-review.txt
.PHONY: for-review.txt
#help autospecnogit: Runs autospec, but does not create a commit
autospecnogit:
@@ -268,6 +284,7 @@ sources:
@$(MAKE) generateupstream; \
[ $$? -eq 0 ] && exit 0; \
nvr="$$(rpmspec --srpm -q --qf '%{NAME}\t%{VERSION}\t%{RELEASE}\n' $(SPECFILE))"; \
git -C $(TOPLVL)/projects/common fetch --tags >/dev/null 2>&1; \
latest_builds=$$(git -C $(TOPLVL)/projects/common tag -l | sort -rn); \
for b in $$latest_builds; do \
url="$(DOWNLOAD_MIRROR)/releases/$$b/clear/source/package-sources"; \
@@ -319,7 +336,7 @@ scratch: $(SPECFILE) upstream $(SRPMFILE) kojidef
#help scratch-wait: Performs scratch-build on package.
scratch-wait: $(SPECFILE) upstream $(SRPMFILE) kojidef
$(KOJI_CMD) build --scratch $(KOJI_TAG) $(SRPMFILE)
$(KOJI_CMD) build --scratch --wait $(KOJI_TAG) $(SRPMFILE)
#help koji-nowait: Same as 'make koji', but do not block
koji-nowait:
@@ -361,6 +378,28 @@ repoadd: $(TOPLVL)/repo
$(MAKE) localrepocreate
$(call localrepoenable,${PM_CONF},${MOCK_CONF})
#help repostage: Stages locally-built RPMs for this package to the local RPM
#help directory. If this directory does not yet exist, it is created and
#help enabled.
repostage: $(TOPLVL)/repo
@if [ -z "${LATEST_RPMS}" ]; then \
echo "No rpms found in rpms/ directory."; \
exit 1; \
fi; \
if [ -f .repo-index ]; then \
echo "Cleaning old rpms:"; \
for r in `cat .repo-index`; do \
echo "-$$r"; \
rm -f $(TOPLVL)/repo/$$r; \
done; \
rm .repo-index; \
fi; \
for r in ${LATEST_RPMS}; do \
echo "+$$r"; \
echo $$(basename $$r) >> .repo-index; \
ln -f $$r $(TOPLVL)/repo/; \
done
#help repodel: Removes RPMs from the local RPM repository that were
#help previously added by 'make repoadd' for this package.
repodel:
@@ -412,27 +451,48 @@ install:
#help install-debuginfo-local: Install locally built debuginfo RPM to
#help the automatic debuginfo cache location (/var/cache/debuginfo)
install-debuginfo-local:
@if [ -z "${DEBUGINFO_RPM}" ]; then \
echo "No debuginfo to install... skipping"; \
exit 0; \
fi; \
echo -n "Installing ${DEBUGINFO_RPM}... "; \
tmpdir=$$(mktemp -d); \
rpm2cpio ${DEBUGINFO_RPM} | ( cd $$tmpdir; cpio -i -d -u); \
rpm2cpio ${DEBUGINFO_RPM} | ( cd $$tmpdir; cpio -i -d -u 2> /dev/null); \
dest=/var/cache/debuginfo/lib; \
find $$tmpdir/usr/lib/debug/ -mindepth 1 -maxdepth 1 | while read -r d; do \
find $$tmpdir/usr/lib/debug/ -mindepth 1 -maxdepth 1 2> /dev/null | while read -r d; do \
sudo chown -R dbginfo:dbginfo "$$d"; \
sudo cp -a "$$d" $$dest/; \
done; \
find $$tmpdir/usr/share/debug/ -mindepth 1 -maxdepth 1 -regextype awk -regex '.*/(.build-id|boot|lib|sbin|usr)$$' 2> /dev/null | while read -r d; do \
sudo chown -R dbginfo:dbginfo "$$d"; \
sudo cp -a "$$d" $$dest/; \
done; \
dest=/var/cache/debuginfo/src; \
find $$tmpdir/usr/src/debug/ -mindepth 1 -maxdepth 1 | while read -r d; do \
find $$tmpdir/usr/src/debug/ -mindepth 1 -maxdepth 1 2> /dev/null | while read -r d; do \
sudo chown -R dbginfo:dbginfo "$$d"; \
sudo cp -a "$$d" $$dest/; \
done; \
sudo rm -rf $$tmpdir
find $$tmpdir/usr/share/debug/src/ -mindepth 1 -maxdepth 1 2> /dev/null | while read -r d; do \
sudo chown -R dbginfo:dbginfo "$$d"; \
sudo cp -a "$$d" $$dest/; \
done; \
sudo rm -rf $$tmpdir; \
echo "done"
#help install-local: Install locally built RPMs to the root filesystem. Note that the
#help debuginfo RPM installs to /var/cache/debuginfo
install-local:
for r in $(filter-out ${DEBUGINFO_RPM},${RPMS}); do \
rpm2cpio $$r | (cd /; sudo cpio -i -d -u); \
@for r in $(filter-out ${DEBUGINFO_RPM},${RPMS}); do \
echo -n "Installing $$r... "; \
rpm2cpio $$r | (cd /; sudo cpio -i -d -u 2> /dev/null); \
echo "done"; \
done
$(MAKE) install-debuginfo-local
@$(MAKE) -s install-debuginfo-local
#help install-mock: Install locally built RPMs to the mock rootcache
#help filesystem. This command is usually used with "make shell".
install-mock: repoadd
$(MOCK) --result=results/ --no-cleanup-after --uniqueext=$(PKG_NAME) -i $(filter-out ${DEBUGINFO_RPM},${RPMS})
#help generateupstream: Run this rule to create or update the 'upstream' file
#help by downloading the upstream source tarballs listed in the spec file and
@@ -470,6 +530,9 @@ cloc: $(SRPMFILE)
@$(MOCK) --clean --scrub=chroot --uniqueext=$(PKG_NAME)
cat results/cloc.txt
# Define LTS-specific targets in a separate makefile
-include $(TOPLVL)/projects/common/Makefile.common.lts
# Define site local common targets in a separate makefile
-include $(TOPLVL)/projects/common/Makefile.common.site_local
+90
View File
@@ -0,0 +1,90 @@
#-*-makefile-*-
LTSUTILS = python $(TOPLVL)/projects/common/lts/main.py $(PKG_NAME)
#help lts-show: Display a summary of active LTS branches.
lts-show:
@$(LTSUTILS) sanity-check
@while read b; do \
if git show-ref $$b > /dev/null; then \
echo $$b $$(git log --oneline -1 $$b); \
else \
echo $$b Not found; \
fi; \
done < $(TOPLVL)/projects/common/lts/active-branches
#help lts-backport: Fast-forward the previous active branch to the current
#help branch.
lts-backport:
@$(LTSUTILS) sanity-check
@newer=$$(git symbolic-ref HEAD); \
newer=$${newer#refs/heads/}; \
if ! $(LTSUTILS) prev-branch --checkout; then \
echo Could not check out previous active branch.; \
exit 0; \
fi; \
if $(LTSUTILS) is-same-version $$newer; then \
$(LTSUTILS) fast-forward $$newer; \
else \
echo Most likely a patch needs to be manually re-applied for this version.; \
echo Alternatively, use \"git merge --ff-only $$newer\" to upgrade the package version.; \
fi
#help lts-build: Build RPM in Koji, or reuse existing build from older LTS
#help branch.
lts-build:
@$(LTSUTILS) sanity-check
@tag=$$(git tag --points-at); \
if [[ -z $$tag ]]; then \
echo This commit does not have a tag.; \
echo Proceeding to run \"make lts-koji\".; \
$(LTSUTILS) prompt || exit; \
$(MAKE) lts-koji; \
exit; \
fi; \
older=$$($(LTSUTILS) prev-branch); \
if [[ -z $$older ]]; then \
echo Could not determine previous active branch.; \
exit 1; \
fi; \
current=$$($(LTSUTILS) current-branch); \
if [[ $$(git rev-parse $$older) != $$(git rev-parse $$current) ]]; then \
echo Previous branch and current branch have different commits.; \
for b in $$older $$current; do echo $$b $$(git log --oneline -1 $$b); done; \
echo Proceeding to run \"make lts-koji\".; \
$(LTSUTILS) prompt || exit; \
$(MAKE) lts-koji; \
exit; \
fi; \
if $(LTSUTILS) can-reuse-binary $$older; then \
echo Reusing binary from $$older.; \
$(KOJI_CMD) tag-build $$current $(SRPMVERS); \
else \
echo Could not reuse binary from $$older.; \
echo Proceeding to run \"make bump lts-koji\".; \
$(LTSUTILS) prompt || exit; \
$(MAKE) bump lts-koji; \
fi
@$(LTSUTILS) next-branch --checkout
#help lts-koji: Same as "koji" but for working on LTS branches. Should not
#help be called directly, use lts-build instead.
lts-koji: prekoji-checks kojidef
@$(LTSUTILS) sanity-check
@$(MAKE) spdxcheck
@$(MAKE) checkblacklist
@current=$$($(LTSUTILS) current-branch); \
if ! grep $$current $(TOPLVL)/projects/common/lts/active-branches; then \
echo "Error: Must be on an active branch to submit to koji" >&2; \
exit 1; \
fi; \
if ! git diff --quiet HEAD ${SPECFILE}; then \
echo "Error: All changes to ${SPECFILE} must be committed first" >&2; \
exit 1; \
fi; \
if git rev-parse --verify --quiet origin/$$current > /dev/null; then \
git pull --rebase; \
fi
git tag $(SRPMVERS)-lts
git push origin $$($(LTSUTILS) current-branch) refs/tags/$(SRPMVERS)-lts
$(KOJI_CMD) build $$KOJI_NOWAIT $$($(LTSUTILS) current-branch) $(PKG_BASE_URL)/$(PKG_NAME)?#$(SRPMVERS)-lts
+63 -9
View File
@@ -11,6 +11,7 @@ SHELL = /bin/bash
PKGS = $(shell cat $(PACKAGES_FILE))
PKGS_LOCAL = $(sort $(filter ${PKGS},$(subst packages/,,$(wildcard packages/*))))
PKGS_ORPHANED = $(sort $(filter-out common ${PKGS},$(subst packages/,,$(wildcard packages/*))))
proj_PKGS = $(addprefix proj_,$(PROJ_PKGS))
clone_PKGS = $(addprefix clone_,$(PKGS))
@@ -33,7 +34,7 @@ $(proj_PKGS):
git clone $(PRJ_BASE_URL)/$$proj projects/$$proj; \
cd projects/$$proj; \
if [ "$$proj" = "autospec" ] ; then \
git remote set-url --push origin https://github.com/clearlinux/autospec.git; \
git remote set-url --push origin git@github.com:clearlinux/autospec.git; \
else \
$(call gitoliteurl,projects/$$proj); \
fi; \
@@ -82,7 +83,7 @@ ${PULL_PKGS}:
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 ; \
if [ "$$p" = "projects/autospec" ] ; then \
git remote set-url --push origin https://github.com/clearlinux/autospec.git; \
git remote set-url --push origin git@github.com:clearlinux/autospec.git; \
else \
$(call gitoliteurl,$$p); \
fi ; \
@@ -128,11 +129,9 @@ pull: ${PULL_PKGS}
#help clean-pkgs-dir: For packages that are no longer present in the distro,
#help removes the associated package repos from the ./packages tree
clean-pkgs-dir: $(PACKAGES_FILE)
@for p in `ls packages`; do \
if ! grep -wq "^$$p$$" "$<" && [ "$$p" != common ]; then \
echo "Removing $$p from packages, it is no longer in common/packages."; \
rm -rf packages/$$p; \
fi \
@for p in ${PKGS_ORPHANED}; do \
echo "Removing $$p from packages, it is no longer in common/packages."; \
rm -rf packages/$$p; \
done
@echo "packages directory cleaned";
@@ -226,8 +225,63 @@ autospecnew: preautospecnew-checks localreponotice
$${SETVERSION:+ --version $${SETVERSION}} \
${NON_INTERACTIVE} ${SKIP_GIT} ${CLEANUP} \
$(URL); \
[ $$? -eq 0 ] && $(MAKE) link-new-rpms PKG_REPO_DIR="${TOPLVL}/packages/${NAME}"; \
$(TOPLVL)/projects/common/checkblacklist.sh $(TOPLVL)/projects/common/blacklist $(TOPLVL)/packages/${NAME}/results/*.rpm; \
if [ $$? -eq 0 ]; then \
$(MAKE) link-new-rpms PKG_REPO_DIR="${TOPLVL}/packages/${NAME}"; \
$(TOPLVL)/projects/common/checkblacklist.sh $(TOPLVL)/projects/common/blacklist $(TOPLVL)/packages/${NAME}/results/*.rpm; \
python3 $(TOPLVL)/projects/common/patchfilter.py <(git -C $(TOPLVL)/packages/$(NAME) format-patch -1 --stdout) > $(TOPLVL)/packages/$(NAME)/for-review.txt; \
printf "\n**\n"; \
printf "** NOTICE: A patch with changes is available in the file $(TOPLVL)/packages/$(NAME)/for-review.txt\n"; \
printf "** Please look through this file and if you are unsure, please submit for code review with git send-email\n"; \
printf "**\n\n"; \
else \
echo "Autospec of $(NAME) failed."; \
exit 1; \
fi; \
else \
echo "$(NAME) already exists at $(TOPLVL)/packages/$(NAME)"; \
exit 1; \
fi
#help autospecnewgo: Creates a new autospec package with (dependencies)
#help for a given URL=$(URL) with NAME=$(NAME). Several files used by
#help autospec will be created in the help process.
#help Use MOCK_OPTS environment varible to pass down arbitrary mock options
#help to autospec.
#help For more information about autospec, see the project page on Github https://github.com/clearlinux/autospec
autospecnewgo: preautospecnew-checks localreponotice
@if [ -z $(NAME) ] || [ -z $(URL) ]; then \
echo "Please specify NAME and URL. The ARCHIVES variable is optional."; \
exit 1; \
fi
-$(MAKE) clone_$(NAME)
@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/common/go-builder.py \
--target packages/$(NAME) \
--integrity \
--config "$(AUTOSPEC_CONF)" \
--name $(NAME) \
--archives $(ARCHIVES) \
--mock-config $(MOCK_CONFIG_VAL) \
--mock-opts "$(MOCK_OPTS)" \
$(URL); \
if [ $$? -eq 0 ]; then \
$(MAKE) link-new-rpms PKG_REPO_DIR="${TOPLVL}/packages/${NAME}"; \
$(TOPLVL)/projects/common/checkblacklist.sh $(TOPLVL)/projects/common/blacklist $(TOPLVL)/packages/${NAME}/results/*.rpm; \
python3 $(TOPLVL)/projects/common/patchfilter.py <(git -C $(TOPLVL)/packages/$(NAME) show) > $(TOPLVL)/packages/$(NAME)/for-review.txt; \
python3 $(TOPLVL)/projects/common/patchfilter.py <(git -C $(TOPLVL)/packages/$(NAME) show); \
else \
exit 1; \
fi; \
else \
echo "$(NAME) already exists at $(TOPLVL)/packages/$(NAME)"; \
exit 1; \
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+40
View File
@@ -0,0 +1,40 @@
## Advanced topics
### Manual setup
If you did not run the user-setup script (see "Automated setup" section in the
[main README](README.md), you will want to set up the developer tooling
workspace manually. This section provides general documentation for the manual
setup process, and it is not meant to be exhaustive.
On your Clear Linux system, create a workspace for Clear Linux development
work:
```
$ mkdir clearlinux
```
Clone this repo into a `projects` directory within the workspace:
```
$ cd clearlinux
$ mkdir projects
$ git clone https://github.com/clearlinux/common projects/common
```
Create the toplevel tooling Makefile:
```
$ ln -s projects/common/Makefile.toplevel Makefile
```
Clone all Clear Linux package and project repositories:
```
$ make clone
```
Note: You can clone the repos in parallel by using make's `-j` option.
At this point, the `packages` directory will contain all Clear Linux package
repos, and `projects` will contain common, clr-bundles, and autospec repos.
+1 -36
View File
@@ -152,39 +152,4 @@ If `Makefile.config.site_local` doesn't exist already, create it.
### Manual setup
If you did not run the user-setup script (see "Automated setup" section above),
you will want to set up the developer tooling workspace manually. This section
provides general documentation for the manual setup process, and it is not
meant to be exhaustive.
On your Clear Linux system, create a workspace for Clear Linux development
work:
```
$ mkdir clearlinux
```
Clone this repo into a `projects` directory within the workspace:
```
$ cd clearlinux
$ mkdir projects
$ git clone https://github.com/clearlinux/common projects/common
```
Create the toplevel tooling Makefile:
```
$ ln -s projects/common/Makefile.toplevel Makefile
```
Clone all Clear Linux package and project repositories:
```
$ make clone
```
Note: You can clone the repos in parallel by using make's `-j` option.
At this point, the `packages` directory will contain all Clear Linux package
repos, and `projects` will contain common, clr-bundles, and autospec repos.
See the [Manual setup](README-advanced.md#manual-setup) documentation.
Executable
+285
View File
@@ -0,0 +1,285 @@
#!/usr/bin/env python3
#
# gowrap.py - part of autospec
# Copyright (C) 2019 Intel Corporation
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import argparse
import os
import shutil
import subprocess
import sys
import tempfile
def parse_args():
"""Parse commandline arguments."""
parser = argparse.ArgumentParser()
parser.add_argument("url", help="Location of package archive")
parser.add_argument("-t", "--target", dest="target", action="store",
default=None,
help="Target location to create or reuse")
parser.add_argument("-c", "--config", dest="config", action="store",
default="/usr/share/defaults/autospec/autospec.conf",
help="Set configuration file to use")
parser.add_argument("-n", "--name", action="store", dest="name", default="",
help="Override the package name")
parser.add_argument("-i", "--integrity", action="store_true",
default=False,
help="Search for package signature from source URL and "
"attempt to verify package")
parser.add_argument("-m", "--mock-config", action="store", default="clear",
help="Value to pass with Mock's -r option. Defaults to "
"\"clear\", meaning that Mock will use "
"/etc/mock/clear.cfg.")
parser.add_argument("-o", "--mock-opts", action="store", default="",
help="Arbitrary options to pass down to mock when "
"building a package.")
parser.add_argument('-a', "--archives", action="store",
dest="archives", default=[], nargs='*',
help="tarball URLs for additional source archives and"
" a location for the sources to be extacted to (e.g."
" http://example.com/downloads/dependency.tar.gz"
" /directory/relative/to/extract/root )")
return parser.parse_args()
def missing_dependencies(name):
"""Check if the build failed due to missing dependencies."""
root_log = os.path.join("packages", name, "results", "root.log")
if not os.path.exists(root_log):
return False
with open(root_log, "r") as lfile:
for line in lfile.readlines():
if "No matching package to install" in line:
return True
return False
def already_built(name, version):
"""Check if the package and version are already built."""
if not os.path.exists(os.path.join("packages", name, "rpms")):
return False
vpath = os.path.join("packages", name, "versions")
if not os.path.exists(vpath):
return False
with open(vpath, "r") as vfile:
if version not in [x.strip() for x in vfile.readlines()]:
return False
return True
def build(path, args, name, url, version):
"""Try and build a package."""
if version:
ver_arg = ["-v", version]
else:
ver_arg = []
if already_built(name, version):
return True
print(f"Trying to autospec {name} - {version}")
proc = subprocess.run(["python3",
f"{path}/../autospec/autospec/autospec.py", url,
"-c", args.config, "-t", f"packages/{name}",
"-n", name, "-m", args.mock_config,
"-o", args.mock_opts, "-i"] + ver_arg, capture_output=True)
if proc.returncode == 0:
subprocess.run(["make", "link-new-rpms", f"PKG_REPO_DIR=packages/{name}"],
capture_output=True)
return proc.returncode == 0
def parse_go_mod(path):
"""Parse go.mod file for build requirements.
File content looks as follows:
module example.com/foo/bar
require (
github.com/BurntSushi/toml v0.3.1
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999
github.com/inconshreveable/mousetrap v1.0.0 // indirect
"github.com/spf13/cobra" v0.0.3
github.com/spf13/pflag v1.0.3 // indirect
)
Need to handle all require lines including //indirect.
Skip requires that use .git for now. May need to be handled
differently.
"""
reqs = []
with open(path, "r") as gfile:
dep_start = False
for line in gfile.readlines():
# Ideally the mod file is generated and the format is
# always correct but add a few defenses just in case
line = line.strip()
if line.startswith("//"):
# Skip comments
continue
if dep_start:
# End of the require section
if line.startswith(")"):
break
req = line.split()[:2]
req[0] = req[0].replace('"', '')
if req[0].endswith(".git"):
continue
reqs.append(req)
continue
if line.startswith("require ("):
dep_start = True
return reqs
def get_dependencies(name):
"""Return path to the go.mod file if it exists."""
command = None
path = None
pdir = os.path.join("packages", name)
reqs = []
for fname in os.listdir(pdir):
# Find the archive
if fname.endswith("zip"):
command = ["unzip", fname]
elif ".tar." in fname:
command = ["tar", "xf", fname]
else:
command = None
if command:
# Decompress archive
tdir = tempfile.mkdtemp()
tfile = os.path.join(tdir, fname)
shutil.copyfile(os.path.join(pdir, fname), tfile)
proc = subprocess.run(command, cwd=tdir, capture_output=True)
if not proc.returncode:
# inspect contents for a "go.sum" file
for root, _, files in os.walk(tdir):
if "go.mod" in files:
path = f"{name}.gomod"
shutil.copyfile(os.path.join(root, "go.mod"), path)
reqs += parse_go_mod(path)
os.unlink(path)
shutil.rmtree(tdir)
return reqs
def encode_requirements(requirement):
"""Encode the project's module and version."""
# Default dependency base proxy url
base_url = "https://proxy.golang.org/"
# Encoding based on
# https://tip.golang.org/cmd/go/#hdr-Module_proxy_protocol
encoded_module = ""
for char in requirement[0]:
if char.isupper():
encoded_module += "!" + char.lower()
else:
encoded_module += char
encoded_version = ""
for char in requirement[1]:
if char.isupper():
encoded_version += "!" + char.lower()
else:
encoded_version += char
return (encoded_module, encoded_version)
def initialize_package(name, url, version, path, args):
"""Setup package and try to build it."""
if already_built(name, version):
return True
print(f"Trying to autospecnew {name} - {version}")
proc = subprocess.run(["make", "autospecnew", f"URL={url}", f"NAME={name}", f"SETVERSION={version}"], capture_output=True)
if f"{name} already exists at" in proc.stdout.decode("utf-8"):
return build(path, args, name, url, version)
return proc.returncode == 0
def build_recursive(path, args, name, url, version=None, success=None):
"""Try and recursively build packages."""
if not success:
# First package being built, common utilities already run
# so just use autospec directly
success = {}
ret = build(path, args, name, url, version)
else:
ret = initialize_package(name, url, version, path, args)
if ret:
# Completed so we are done!
return True
if not missing_dependencies(name):
# Failed but not due to missing dependencies, bail
print(f"Unknown error building {name} - {version}")
return False
reqs = get_dependencies(name)
if not reqs:
# Didn't try and add anything so don't need to build again
print(f"Build failed with no missing requirements: {name} - {version}")
return False
print(f"First attempt to build failed due to missing dependencies {name} - {version}\n")
for req in reqs:
ereq = encode_requirements(req)
rname = "go-" + req[0].replace("/", "-")
rurl = f"https://proxy.golang.org/{ereq[0]}/@v/list"
if (rname, req[1]) in success:
# Rebuild detected, figure out if it is okay or not
if success[(rname, req[1])]:
# Already succeeded building req short circuit success
continue
else:
# Encountered a build loop, bail out as this likely
# requires manual fixing
print(f"Detected build loop when building {rname} - {req[1]}")
return True
success[(rname, req[1])] = False
if not build_recursive(path, args, rname, rurl, req[1], success):
print(f"Failed to build dependency {rname} - {req[1]}")
return False
success[(rname, req[1])] = True
subprocess.run(["make", "repodel"], cwd=f"packages/{rname}", capture_output=True)
subprocess.run(["make", "repostage"], cwd=f"packages/{rname}", capture_output=True)
# Create the repo with the new packages added
subprocess.run(["make", "localrepocreate"], capture_output=True)
# Retry previously failed build assuming dependencies got added
print(f"Rebuilding after resolving dependencies {name} - {version}")
ret = build(path, args, name, url, version)
print("")
return ret
def main():
"""Start program execution."""
args = parse_args()
path = os.path.dirname(os.path.realpath(__file__))
return build_recursive(path, args, args.name, args.url)
if __name__ == '__main__':
if not main():
sys.exit(-1)
print("\n\nBuild completed\n\n")
+20
View File
@@ -46,6 +46,7 @@ BSD-3-Clause-LBNL
BSD-3-Clause-No-Nuclear-License
BSD-3-Clause-No-Nuclear-License-2014
BSD-3-Clause-No-Nuclear-Warranty
BSD-3-Clause-Open-MPI
BSD-4-Clause
BSD-4-Clause-UC
BSD-Protection
@@ -56,6 +57,7 @@ Barr
Beerware
BitTorrent-1.0
BitTorrent-1.1
BlueOak-1.0.0
Borceux
CATOSL-1.1
CC-BY-1.0
@@ -88,6 +90,7 @@ CC-BY-SA-2.0
CC-BY-SA-2.5
CC-BY-SA-3.0
CC-BY-SA-4.0
CC-PDDC
CC0-1.0
CDDL-1.0
CDDL-1.1
@@ -99,6 +102,8 @@ CECILL-2.0
CECILL-2.1
CECILL-B
CECILL-C
CERN-OHL-1.1
CERN-OHL-1.2
CNRI-Jython
CNRI-Python
CNRI-Python-GPL-Compatible
@@ -169,6 +174,7 @@ Giftware
Glide
Glulxe
HPND
HPND-sell-variant
HaskellReport
IBM-pibs
ICU
@@ -182,6 +188,7 @@ Info-ZIP
Intel
Intel-ACPI
Interbase-1.0
JPNIC
JSON
JasPer-2.0
LAL-1.2
@@ -257,6 +264,9 @@ ODC-By-1.0
ODbL-1.0
OFL-1.0
OFL-1.1
OGL-UK-1.0
OGL-UK-2.0
OGL-UK-3.0
OGTSL
OLDAP-1.1
OLDAP-1.2
@@ -286,6 +296,7 @@ OpenSSL
PDDL-1.0
PHP-3.0
PHP-3.01
Parity-6.0.0
Plexus
PostgreSQL
Python-2.0
@@ -304,15 +315,19 @@ SCEA
SGI-B-1.0
SGI-B-1.1
SGI-B-2.0
SHL-0.5
SHL-0.51
SISSL
SISSL-1.2
SMLNJ
SMPPL
SNIA
SPL-1.0
SSPL-1.0
SWL
Saxpath
Sendmail
Sendmail-8.23
SimPL-2.0
Sleepycat
Spencer-86
@@ -320,6 +335,7 @@ Spencer-94
Spencer-99
StandardML-NJ
SugarCRM-1.1.3
TAPR-OHL-1.0
TCL
TCP-wrappers
TMate
@@ -356,8 +372,11 @@ Zend-2.0
Zimbra-1.3
Zimbra-1.4
Zlib
blessing
bzip2-1.0.5
bzip2-1.0.6
copyleft-next-0.3.0
copyleft-next-0.3.1
curl
diffmark
dvipdfm
@@ -366,6 +385,7 @@ eGenix
gSOAP-1.3b
gnuplot
iMatix
libpng-2.0
libtiff
mpich2
psfrag
+5
View File
@@ -0,0 +1,5 @@
TEST = test.test_ltsutils
.PHONY: test
test:
PYTHONPATH=. python -m unittest -v -k .Test $(TEST)
+19
View File
@@ -0,0 +1,19 @@
# LTS package maintenance utility
This tooling is designed to automate 2 main tasks that are part of
the package maintenance workflow of Clear Linux LTS. These tasks are:
- Back-porting of a patch (e.g. security fix) to older branches.
- Building RPMs with the intent of sharing binaries of older LTS branches to
newer branches whenever possible.
There should be no need to run this tool directly. Instead use the following
targets defined in Makefile.common.lts:
- lts-show: Show a summary of active LTS branches
- lts-backport: Attempt to fast-forward the previous active branch to the current branch
- lts-build: Build RPM in Koji, or reuse existing build from older branch
"Active" branches correspond to LTS releases that currently have support.
They are listed in a flat file "active-branches" in "lts" directory, from
oldest to newest. New entries are added by Clear Linux LTS developers as
new releases become available, and entries removed as releases become
obsolete.
View File
View File
+52
View File
@@ -0,0 +1,52 @@
import pathlib
from subprocess import PIPE, CalledProcessError
from .shell import Shell
class PackageRepo:
'''Represents a package repository. Most methods are wrappers of git commands.'''
class UnknownCurrentBranchException(Exception): pass
class InvalidBranchException(Exception): pass
def __init__(self, name, path):
self.name = name
self.path = pathlib.Path(path)
self.sh = Shell(self.path)
def getNVR(self, commit='HEAD'):
with self.sh.popen(['git', 'show', '{}:{}.spec'.format(commit, self.name)], stdout=PIPE) as specfile:
nvr = self.sh.run('rpmspec --srpm -q --queryformat %{NVR} /dev/stdin', stdin=specfile.stdout)
return tuple(nvr.stdout.strip().rsplit('-', maxsplit=2))
def checkoutBranch(self, branch, allow_remote=False):
# allow_remote=True allows checking out a new remote-tracking branch
if not allow_remote and not self.hasBranch(branch):
raise self.InvalidBranchException(branch)
self.sh.run_args(['git', 'checkout', branch], capture_output=False)
def fastForwardBranch(self, old, new):
self.checkoutBranch(old)
if not self.hasBranch(new):
raise self.InvalidBranchException(new)
self.sh.run_args(['git', 'merge', '--ff-only', new], capture_output=False)
def getActiveBranches(self):
toplvl = pathlib.Path(self.path) / '../..'
common = toplvl / 'projects/common'
active_branches = common / 'lts/active-branches'
with active_branches.open() as f:
return [line.rstrip() for line in f]
def getCurrentBranch(self):
try:
head = self.sh.run('git symbolic-ref HEAD').stdout.strip()
except CalledProcessError:
raise self.UnknownCurrentBranchException
refs_heads = 'refs/heads/'
assert head.startswith(refs_heads)
head = head[len(refs_heads):]
return head
def hasBranch(self, branch):
p = self.sh.run_args(['git', 'rev-parse', 'refs/heads/'+branch], check=False)
return p.returncode == 0
+27
View File
@@ -0,0 +1,27 @@
import subprocess, shlex
class Shell:
# Default options passed to subprocess.run. May be customized per-instance.
cwd = None
check = True
capture_output = True
text = True
def __init__(self, cwd=None):
if cwd: self.cwd = cwd
def run_args(self, args, **kwargs):
kwargs1 = {
'check': self.check,
'capture_output': self.capture_output,
'text': self.text,
'cwd': self.cwd
}
kwargs1.update(kwargs)
return subprocess.run(args, **kwargs1)
def run(self, cmd, **kwargs):
return self.run_args(shlex.split(cmd), **kwargs)
def popen(self, args, **kwargs):
return subprocess.Popen(args, cwd=self.cwd, **kwargs)
+161
View File
@@ -0,0 +1,161 @@
#!/usr/bin/python
import sys,argparse
from ltsutils.package_repo import PackageRepo
def log(msg, **kwargs):
print(msg, file=sys.stderr)
def init_parser():
main = argparse.ArgumentParser()
main.add_argument('package_name', nargs=1)
subparsers = main.add_subparsers(dest='command', metavar='command', required=True)
# Package maintenance commands
p = subparsers.add_parser('prev-branch',
help='show previous branch')
p.add_argument('--checkout', action='store_true', help='checkout the branch')
p = subparsers.add_parser('next-branch',
help='show next branch')
p.add_argument('--checkout', action='store_true', help='checkout the branch')
p = subparsers.add_parser('current-branch',
help='show current branch')
p = subparsers.add_parser('is-same-version',
help='return true if package version is the same as the given branch')
p.add_argument('branch', nargs=1)
p = subparsers.add_parser('fast-forward',
help='fast-forward current branch to a newer branch')
p.add_argument('branch', nargs=1)
# RPM build commands
p = subparsers.add_parser('can-reuse-binary',
help='check if binary from another branch can be used in current branch')
p.add_argument('branch', nargs=1)
# Other commands
p = subparsers.add_parser('prompt',
help='prompt user to continue and return appropriate exit code')
p = subparsers.add_parser('sanity-check',
help='run sanity checks for data consistency')
return main
def prev_branch(args, repo):
active_branches = repo.getActiveBranches()
current = repo.getCurrentBranch()
i = active_branches.index(current)
if i == 0:
log('Already on oldest active branch.')
return False
prev = active_branches[i-1]
print(prev)
if args.checkout:
repo.checkoutBranch(prev, allow_remote=True)
def next_branch(args, repo):
active_branches = repo.getActiveBranches()
current = repo.getCurrentBranch()
i = active_branches.index(current)
if i == len(active_branches)-1:
log('Already on newest active branch.')
return False
next_ = active_branches[i+1]
print(next_)
if args.checkout:
repo.checkoutBranch(next_, allow_remote=False)
def current_branch(args, repo):
current = repo.getCurrentBranch()
print(current)
def is_same_version(args, other):
current = repo.getCurrentBranch()
other = args.branch[0]
assert repo.hasBranch(other), 'Branch %s not found' % other
v1, v2 = [repo.getNVR('refs/heads/'+b)[1] for b in (current, other)]
if v1 != v2:
log('Current version {} does not match version {} on branch {}'.format(v1, v2, other))
return v1 == v2
def fast_forward(args, repo):
current = repo.getCurrentBranch()
newer = args.branch[0]
log('Fast-forwarding {} to {}'.format(current, newer))
repo.fastForwardBranch(current, newer)
def sanity_check(args, repo):
ok = True
# HEAD must point to a branch
try:
current = repo.getCurrentBranch()
except PackageRepo.UnknownCurrentBranchException:
log('Unknown current branch. Has a branch been checked out?')
current = None
ok = False
# active-branches file must not be empty
active_branches = repo.getActiveBranches()
if not len(active_branches):
log('No active branches defined. Is active-branches file empty?')
ok = False
# current branch must be an active branch
elif current and current not in active_branches:
log('%s is not an active LTS branch.' % current)
ok = False
return ok
def can_reuse_binary(args, repo):
# Just compare versions for now
# TODO: ABI compatibility testing
current = repo.getCurrentBranch()
older = args.branch[0]
v1, v2 = [repo.getNVR('refs/heads/'+b)[1] for b in (older, current)]
return v1 == v2
def prompt(args, repo):
import selectors
timeout = 60
while True:
print('Continue? (y/N): ', end='', flush=True)
with selectors.DefaultSelector() as sel:
sel.register(sys.stdin, selectors.EVENT_READ)
events = sel.select(timeout)
if not len(events):
print('Timed out after {}s.'.format(timeout))
return False
else:
s = sys.stdin.readline().rstrip('\n')
if s in ('Y', 'y', 'N', 'n', ''):
break
if s in ('Y', 'y'):
return True
else:
print('Cancelled.')
return False
if __name__=='__main__':
args = init_parser().parse_args()
repo = PackageRepo(args.package_name[0], '.')
commands = {
'prev-branch': prev_branch,
'next-branch': next_branch,
'current-branch': current_branch,
'is-same-version': is_same_version,
'fast-forward': fast_forward,
'can-reuse-binary': can_reuse_binary,
'prompt': prompt,
'sanity-check': sanity_check,
}
ret = commands[args.command](args, repo)
if ret is not None:
exit(0 if ret else 1)
View File
+97
View File
@@ -0,0 +1,97 @@
import unittest
import os, pathlib, tempfile, logging
import subprocess, functools
from ltsutils.package_repo import PackageRepo
import ltsutils.shell
run = functools.partial(subprocess.run, check=True)
class Package:
def __init__(self, name):
self.name = name
self.repo_url = 'https://github.com/clearlinux-pkgs/{}.git'.format(name)
class LTSUtilsTestCase(unittest.TestCase):
toplvl = pathlib.Path('../../..')
packages = toplvl / 'packages'
def cloneOrExtractRepo(self):
tmpdir = pathlib.Path('/var/tmp/common-lts-test')
tmpdir.mkdir(mode=0o700, exist_ok=True)
tarball = tmpdir / '{}.tar.gz'.format(self.package.name)
if tarball.exists():
run(['tar', 'xf', tarball, '-C', self.workdir])
else:
run(['git', 'clone', self.package.repo_url, self.workdir])
run(['tar', 'czf', tarball, '-C', self.workdir, '.'])
def setUp(self):
self._tmpdir = tempfile.TemporaryDirectory(prefix='test-{}-'.format(self.package.name), dir=self.packages)
self.workdir = pathlib.Path(self._tmpdir.name)
self.cloneOrExtractRepo()
self.repo = PackageRepo(self.package.name, self.workdir)
self._sh = ltsutils.shell.Shell(self.workdir)
self._sh.capture_output = False
def sh(self, cmd):
return self._sh.run(cmd)
def sh_stdout(self, cmd):
return self._sh.run(cmd, capture_output=True).stdout.rstrip()
def tearDown(self):
self._tmpdir.cleanup()
class PackageRepoTestCase(LTSUtilsTestCase):
def setUp(self):
super().setUp()
self.L1 = self.package.L1
self.L2 = self.package.L2
self.sh('git branch L1 %s' % self.L1)
self.sh('git branch L2 %s' % self.L2)
def testGetNVR(self):
raise NotImplementedError
def testHasBranch(self):
self.assertTrue(self.repo.hasBranch('L2'))
self.assertFalse(self.repo.hasBranch('L3'))
def testCheckoutBranch(self):
self.repo.checkoutBranch('L2')
self.assertEqual(self.sh_stdout('git rev-parse HEAD'), self.L2)
self.assertRaises(PackageRepo.InvalidBranchException, self.repo.checkoutBranch, 'L3')
def testFastForward(self):
self.repo.fastForwardBranch('L1', 'L2')
self.assertEqual(self.sh_stdout('git rev-parse L1'), self.L2)
self.assertEqual(self.sh_stdout('git rev-parse L2'), self.L2)
def testGetCurrentBranch(self):
self.repo.checkoutBranch('L2')
b = self.repo.getCurrentBranch()
self.assertEqual(b, 'L2')
self.sh('git checkout --detach L2')
self.assertRaises(PackageRepo.UnknownCurrentBranchException, self.repo.getCurrentBranch)
class TestNano(PackageRepoTestCase):
package = Package('nano')
package.L1 = '3dcfa09f5217eedf6ec7539af7e243655d3abdb6' # 3.2-54
package.L2 = 'b8243dd54e8feb16a11474f848b8735f5591cf12' # 3.2-55
def testGetNVR(self):
nvr = self.repo.getNVR(self.L2)
self.assertEqual(nvr, ('nano', '3.2', '55'))
class TestMySQL_Python(PackageRepoTestCase):
package = Package('MySQL-python')
package.L1 = '386163d8fc9c857c7194c4e958374af4c4f071ed' # 1.2.5-31
package.L2 = 'f85bc5ec2141384f45f224d4464a0a44a981a4d4' # 1.2.5-33
def testGetNVR(self):
nvr = self.repo.getNVR(self.L2)
self.assertEqual(nvr, ('MySQL-python', '1.2.5', '33'))
+1387 -68
View File
File diff suppressed because it is too large Load Diff
+360
View File
@@ -0,0 +1,360 @@
#!/usr/bin/python3
import sys
import tempfile
import subprocess
header = list()
files = list()
files_chunks = dict() # dict to list
files_header = dict() # dict to list
def push_chunk(file, chunk):
global files_chunks
if len(chunk) == 0:
return
if file not in files_chunks:
files_chunks[file] = list()
files_chunks[file].append(chunk)
def parse_patch(lines):
global header
global files
global files_chunks
global files_header
phase = 0
currentfile = ""
currentchunk = list()
for line in lines:
line = line.replace("\n","")
if line.startswith("diff --git"):
push_chunk(currentfile, currentchunk)
currentchunk = list()
filename = line.replace("diff --git","")
index= filename.find("b/")
if index >= 0:
filename = filename[index:].strip()
currentfile = filename
files.append(currentfile)
phase = 1
if line.startswith("@@"):
push_chunk(currentfile, currentchunk)
currentchunk = list()
phase = 2
if phase == 0:
header.append(line)
if phase == 1:
if currentfile not in files_header:
files_header[currentfile] = list()
files_header[currentfile].append(line)
if phase == 2:
currentchunk.append(line)
push_chunk(currentfile, currentchunk)
currentchunk = list()
def print_all():
global header
global files
global files_chunks
global files_header
for line in header:
print(line)
for file in files:
for line in files_header[file]:
print(line)
if file in files_chunks:
for chunk in files_chunks[file]:
for line in chunk:
print(line)
def zap_entire_file(filename):
global header
global files
global files_chunks
global files_header
if filename in files:
files.remove(filename)
def zap_entire_file_end(filename):
global header
global files
global files_chunks
global files_header
for file in files:
if file.endswith(filename):
files.remove(file)
def zap_line_in_file(filename, match):
global header
global files
global files_chunks
global files_header
for file in files:
if file.endswith(filename):
for chunk in files_chunks[filename]:
to_delete = list()
for line in chunk:
if line == ("+" + match):
to_delete.append(line)
if line == ("-" + match):
to_delete.append(line)
for line in to_delete:
chunk.remove(line)
def zap_line_in_file_start(filename, match):
global header
global files
global files_chunks
global files_header
for file in files:
if file.endswith(filename):
for chunk in files_chunks[file]:
to_remove = list()
for line in chunk:
if line.startswith("+" + match):
to_remove.append(line)
if line.startswith("-" + match):
to_remove.append(line)
for line in to_remove:
chunk.remove(line)
def zap_plus_line_in_file(filename):
global header
global files
global files_chunks
global files_header
for file in files:
if file.endswith(filename):
for chunk in files_chunks[file]:
to_remove = list()
for line in chunk:
if line.startswith("+"):
to_remove.append(line)
for line in to_remove:
chunk.remove(line)
def chunk_empty(chunk):
for line in chunk:
if len(line) > 0 and line[0] == '+':
return False
return True
def zap_empty_chunks():
global header
global files
global files_chunks
global files_header
files_to_remove = list()
for file in files:
if file not in files_chunks:
files.remove(file)
continue
to_remove = list()
for chunk in files_chunks[file]:
if chunk_empty(chunk):
to_remove.append(chunk)
for c in to_remove:
files_chunks[file].remove(c)
if len(files_chunks[file]) == 0:
files_to_remove.append(file)
for file in files_to_remove:
files.remove(file)
def main():
if len(sys.argv) > 1:
filename = sys.argv[1]
with open (filename, "r") as myfile:
lines = myfile.readlines()
else:
output = subprocess.check_output("git format-patch -1 --stdout", shell=True).decode("latin-1")
lines = output.split("\n")
parse_patch(lines)
zap_entire_file("b/release")
zap_entire_file("b/buildreq_cache")
zap_entire_file("b/.gitignore")
zap_entire_file("b/upstream")
zap_entire_file("b/NEWS")
zap_entire_file("b/ChangeLog")
zap_entire_file_end("xz.sig")
zap_entire_file_end("gz.sig")
zap_entire_file_end("bz2.sig")
zap_line_in_file("b/testresults", "Total : 0")
zap_line_in_file("b/testresults", "Pass : 0")
zap_line_in_file("b/testresults", "Fail : 0")
zap_line_in_file("b/testresults", "XFail : 0")
zap_line_in_file("b/testresults", "Skip : 0")
zap_line_in_file("b/requires_ban", "#FOO")
zap_line_in_file("b/Makefile", "ARCHIVES = ")
zap_line_in_file("b/Makefile", "include ../common/Makefile.common")
zap_line_in_file("b/Makefile", "")
zap_line_in_file_start(".spec", "Release :")
zap_line_in_file_start(".spec", "Source99 :")
zap_line_in_file_start(".spec", "Source0 :")
zap_line_in_file_start(".spec", "export SOURCE_DATE_EPOCH")
zap_line_in_file_start(".spec", "export AR=gcc-ar")
zap_line_in_file_start(".spec", "export RANLIB=gcc-ranlib")
zap_line_in_file_start(".spec", "export NM=gcc-nm")
zap_line_in_file_start(".spec", "export CFLAGS=\"$CFLAGS -O3 -ffat-lto-objects -flto=4 \"")
zap_line_in_file_start(".spec", "export FCFLAGS=\"$CFLAGS -O3 -ffat-lto-objects -flto=4 \"")
zap_line_in_file_start(".spec", "export FFLAGS=\"$CFLAGS -O3 -ffat-lto-objects -flto=4 \"")
zap_line_in_file_start(".spec", "export CXXFLAGS=\"$CXXFLAGS -O3 -ffat-lto-objects -flto=4 \"")
zap_line_in_file_start(".spec", "%setup -q -n ")
zap_line_in_file_start(".spec", "URL :")
zap_line_in_file_start(".spec", "Version :")
zap_line_in_file_start(".spec", "Group : Development/Tools")
zap_line_in_file_start(".spec", "No detailed description available")
zap_line_in_file_start(".spec", "bin components for the")
zap_line_in_file_start(".spec", "dev components for the")
zap_line_in_file_start(".spec", "lib components for the")
zap_line_in_file_start(".spec", "data components for the")
zap_line_in_file_start(".spec", "locales components for the")
zap_line_in_file_start(".spec", "license components for the")
zap_line_in_file_start(".spec", "doc components for the")
zap_line_in_file_start(".spec", "Group: Default")
zap_line_in_file_start(".spec", "export http_proxy=http://127.0.0.1:9/")
zap_line_in_file_start(".spec", "export https_proxy=http://127.0.0.1:9/")
zap_line_in_file_start(".spec", "export ftp_proxy=http://127.0.0.1:9/")
zap_line_in_file_start(".spec", "export no_proxy=localhost,127.0.0.1,0.0.0.0")
zap_line_in_file_start(".spec", "Summary:")
zap_line_in_file_start(".spec", "Group: Development")
zap_line_in_file_start(".spec", "Group: Binaries")
zap_line_in_file_start(".spec", "Group: Data")
zap_line_in_file_start(".spec", "Group: Libraries")
zap_line_in_file_start(".spec", "Group: Documentation")
zap_line_in_file_start(".spec", "export LANG=C")
zap_line_in_file_start(".spec", "%description lib")
zap_line_in_file_start(".spec", "%description bin")
zap_line_in_file_start(".spec", "%description data")
zap_line_in_file_start(".spec", "%description doc")
zap_line_in_file_start(".spec", "%description locales")
zap_line_in_file_start(".spec", "%description dev")
zap_line_in_file_start(".spec", "%description license")
zap_line_in_file_start(".spec", "%package doc")
zap_line_in_file_start(".spec", "cp -a ")
zap_line_in_file_start("b/Makefile", "URL =")
zap_line_in_file_start("b/Makefile", "PKG_NAME :=")
zap_line_in_file("b/options.conf", "archives = ")
zap_line_in_file("b/options.conf", "giturl = ")
zap_line_in_file("b/options.conf", "[package]")
zap_line_in_file("b/options.conf", "")
zap_line_in_file("b/options.conf", "[autospec]")
zap_line_in_file("b/options.conf", "# build 32 bit libraries")
zap_line_in_file("b/options.conf", "32bit = false")
zap_line_in_file("b/options.conf", "# allow package to build with test failures")
zap_line_in_file("b/options.conf", "allow_test_failures = false")
zap_line_in_file("b/options.conf", "# unset %build ld_as_needed variable")
zap_line_in_file("b/options.conf", "asneeded = false")
zap_line_in_file("b/options.conf", "# this package is trusted enough to automatically update (used by other tools)")
zap_line_in_file("b/options.conf", "autoupdate = false")
zap_line_in_file("b/options.conf", "# extend flags with '-std=gnu++98")
zap_line_in_file("b/options.conf", "broken_c++ = false")
zap_line_in_file("b/options.conf", "# disable parallelization during build")
zap_line_in_file("b/options.conf", "broken_parallel_build = false")
zap_line_in_file("b/options.conf", "# this package is a library compatability package and only ships versioned library files")
zap_line_in_file("b/options.conf", "compat = false")
zap_line_in_file("b/options.conf", "# set conservative build flags")
zap_line_in_file("b/options.conf", "conservative_flags = false")
zap_line_in_file("b/options.conf", "# dev package requires the extras to be installed")
zap_line_in_file("b/options.conf", "dev_requires_extras = false")
zap_line_in_file("b/options.conf", "# pass -ffast-math to compiler")
zap_line_in_file("b/options.conf", "fast-math = false")
zap_line_in_file("b/options.conf", "# optimize build for speed over size")
zap_line_in_file("b/options.conf", "funroll-loops = false")
zap_line_in_file("b/options.conf", "# set flags to smallest -02 flags possible")
zap_line_in_file("b/options.conf", "insecure_build = false")
zap_line_in_file("b/options.conf", "# do not remove static libraries")
zap_line_in_file("b/options.conf", "keepstatic = false")
zap_line_in_file("b/options.conf", "# do not require autostart subpackage")
zap_line_in_file("b/options.conf", "no_autostart = false")
zap_line_in_file("b/options.conf", "# disable stripping binaries")
zap_line_in_file("b/options.conf", "nostrip = false")
zap_line_in_file("b/options.conf", "# optimize build for size over speed")
zap_line_in_file("b/options.conf", "optimize_size = false")
zap_line_in_file("b/options.conf", "# set profile for pgo")
zap_line_in_file("b/options.conf", "pgo = false")
zap_line_in_file("b/options.conf", "# set flags for security-sensitive builds")
zap_line_in_file("b/options.conf", "security_sensitive = false")
zap_line_in_file("b/options.conf", "# do not run test suite")
zap_line_in_file("b/options.conf", "skip_tests = false")
zap_line_in_file("b/options.conf", "# add .so files to the lib package instead of dev")
zap_line_in_file("b/options.conf", "so_to_lib = false")
zap_line_in_file("b/options.conf", "# configure build for avx2")
zap_line_in_file("b/options.conf", "use_avx2 = false")
zap_line_in_file("b/options.conf", "# configure build for avx512")
zap_line_in_file("b/options.conf", "use_avx512 = false")
zap_line_in_file("b/options.conf", "# add clang flags")
zap_line_in_file("b/options.conf", "use_clang = false")
zap_line_in_file("b/options.conf", "# configure build for lto")
zap_line_in_file("b/options.conf", "use_lto = false")
zap_line_in_file("b/options.conf", "# require package verification for build")
zap_line_in_file("b/options.conf", "verify_required = true")
zap_line_in_file("b/buildreq_add", "# This file contains additional build requirements that did not get")
zap_line_in_file("b/buildreq_add", "# picked up automatically. One name per line, no whitespace.")
zap_line_in_file("b/buildreq_ban", "# This file contains build requirements that get picked up but are")
zap_line_in_file("b/buildreq_ban", "# undesirable. One entry per line, no whitespace.")
zap_line_in_file("b/excludes", "# This file contains the output files that need %exclude. Full path")
zap_line_in_file("b/excludes", "# names, one per line.")
zap_line_in_file("b/pkgconfig_add", "# This file contains additional pkgconfig build requirements that did")
zap_line_in_file("b/pkgconfig_add", "# not get picked up automatically. One name per line, no whitespace.")
zap_line_in_file("b/pkgconfig_ban", "# This file contains pkgconfig build requirements that get picked up")
zap_line_in_file("b/pkgconfig_ban", "# but are undesirable. One entry per line, no whitespace.")
zap_line_in_file("b/requires_add", "# This file contains additional runtime requirements that did not get")
zap_line_in_file("b/requires_add", "# picked up automatically. One name per line, no whitespace.")
zap_line_in_file("b/requires_ban", "# This file contains runtime requirements that get picked up but are")
zap_line_in_file("b/requires_ban", "# undesirable. One entry per line, no whitespace.")
zap_line_in_file_start(".spec", "Summary : No detailed summary available")
zap_plus_line_in_file("symbols")
zap_plus_line_in_file("symbols32")
zap_entire_file("b/whatrequires")
zap_empty_chunks()
print_all()
if __name__ == '__main__':
with tempfile.TemporaryDirectory() as workingdir:
main()
+2 -2
View File
@@ -145,9 +145,9 @@ if [ "$USE_KOJI" ]; then
cp "$CLIENTCA" ~/.koji/clientca.crt
cp "$SERVERCA" ~/.koji/serverca.crt
if [ ! -f /etc/koji.conf ]; then
if [ ! -f ~/.koji/config ]; then
echo "Setting up koji config . . ."
sudo cp projects/common/conf/koji.conf /etc
cp -f projects/common/conf/koji.conf ~/.koji/config
fi
fi