1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
|
* Thu Nov 30 2023 Xu Huayong <huayong.xu@samsung.com> tizen/0.9.28-20231130
- Fix git-buildpackage issue to adapt the librpm-tizen 4.14 version
* Wed Nov 01 2023 Biao Wang <biao716.wang@samsung.com> tizen/0.9.27-20231101
- Port code from python2.x to python3.x
- Support openSUSE 15.2 build
- Fix some defects during runtime
* Fri May 14 2021 Biao Wang <biao716.wang@samsung.com> tizen/0.9.21-20210514
- Fix export submodule source code error.
* Fri May 22 2020 Yan Meng <yan11.meng@samsung.com> tizen/0.9.20-20200522
- Adapt Ubuntu 20.04 to upgrade the version.
* Wed Sep 12 2018 Biao Wang <biao716.wang@samsung.com> tizen/0.9.9-20180912
- Adapt Ubuntu 18.04 to upgrade the version.
* Sat Dec 31 2016 SoonKyu Park <sk7.park@samsung.com> tizen/0.7.5-20161231
- Fix diff_status() for renames and copies
- Adapt git-merge option when git version greater then 2.9
- Disable test_pristine_tar unittest case
* Sat May 14 2016 Jun Wang <junbill.wang@samsung.com> tizen/0.7.4-20160514
- Upgrade version to 0.7.4
* Wed Mar 02 2016 Jun Wang <junbill.wang@samsung.com> tizen/0.6.27-20160302
- Upgrade version to 0.6.27
* Fri Feb 06 2015 Markus Lehtonen <markus.lehtonen@linux.intel.com> tizen/0.6.22-20150206
- Rebase on top of upstream version 0.6.22
- Experimental support for BitBake
* Introduce import-bb tool.
This is the first tool in an effort of enabling gbp in the BitBake build
environment. Gbp-import-bb is a tool for importing packages from a
BitBake-based "combined" distro repository into individual per-package
Git repositories.
* Introduce pq-bb tool.
This is a tool for managing patch-queues for packages maintained in the
BitBake packaging format (.bb recipes).
* Introduce buildpackage-bb tool.
Initial version of the tool for building BitBake packages from Git.
NOTE: The buildpackage-bb tool itself is able to operate even without an
initialized BitBake build environment although the build likely fails in
this case. However, this makes it possible to export the packaging meta
data, for example.
* Introcude clone-bb tool.
This is a new tool for helping to clone remote per-package Git
repositories when working in BitBake-based "full distro" build
environment. This is useful in the case that individual packages are
actually maintained in per-package Git repositories (like Tizen). That
is, the full distro repository that the developer operates in is
composed of the packaging meta data from the individual per-package
repositories. When willing to contribute to a package the developer
would use clone-bb to clone the correct per-package repository and make
his changes there.
NOTE: clone-bb uses GBP_PACKAGING_REPO variable to determine the remote
repository URI. This variable should be defined in the package recipes
in order to make clone-bb usable.
* Introduce submit-bb tool.
This is a Tizen-specific tool for creating and pushing special submit
tags.
- pq-rpm: better error message
- buildpackage-rpm: look for remote upstream branches.
Consider remote branches, too, while looking for the upstream branch
when trying to guess if a package is native or not.
- rpm packaging changes
* enable CentOS 7.
* include python egg-info in -common.
- rpm: suppress stderr when unpacking src.rpm
- UpstreamSource: suppress stderr from tar in _determine_prefix()
- patchseries: strip numbering when guessing subject from filename
- Changes in logging
* don't propagate to ancestor loggers
* don't initialize handlers in GbpLogger init.
Better compatibility with 3rd party modules that have their own logging
initializations.
- Features/fixes in GitRepository
* GitRepository/__git_inout: correctly handle input error
* GitRepository.create_tag: add 'annotate' argument.
For forcing the creation of annotated tags. Causes the an editor to be
spawned if no message is given.
* Thu Aug 28 2014 Markus Lehtonen <markus.lehtonen@linux.intel.com> tizen/0.6.15-20140828
- Rebase on top of upstream version 0.6.15
- Changes in buildpackage-rpm
* new 'commitish' keyword for spec vcs tag
* notify: catch RuntimeError when importing pynotify
* fix exit code in case of GitRepositoryError
* always create tarball for native packages
* check submodules from the exported treeish
* fix crash when running prebuild hook
* always run cleaner hook
* add --git-no-build option
* don't crash on invalid vcs format strings
* add '--git-native' option
* remove some outdated/unnecessary exception handling
* get rid of prepare_export_dir()
* handle invalid keys in orig prefix
* internal refactoring and fixes
- Changes in rpm-ch
* implement --commit option
* implement --commit-msg option
* rpm-ch: implement --meta-bts option
* rpm.policy: don't allow leading whitespace in bts meta tags
- docs: manpages for the rpm tools
- Misc. fixes and features
* buildpackage: refactor tarball compression
* gbp-dch: fix handling of the '--meta' option
* import-orig-rpm: download tarball into parent directory
* GitRepository/has_submodules: add treeish argument
* tristate: implement __nonzero__() method
- Logging:
* don't automatically setup gbp-specific logger
* fix auto colorizing for custom streams
- Tests
* multiple fixes and additions in ComponentTestBase class
* testutils: add directories arg to ls_* functions
* add unit tests for buildpackage-rpm
- Packaging
* rpm-packaging: recommend/require unzip
* recommend/require zipmerge
* depend/recommend rpmbuild
* [ Junchun Guan ] Add PKGBUILD to support arch linux
* [ Li Jinjing ] rpm packaging: use macro for python binary
* Wed May 21 2014 Markus Lehtonen <markus.lehtonen@linux.intel.com> tizen/0.6.12-20140521
- Rebase on top of upstream version 0.6.12
- Changes in rpm-ch
* add --message cmdline option
For giving the text for new changelog entry/entries, skipping git commit
messages entirely.
* implement '--all' option
If defined, git-rpm-ch uses all commits in the Git history. Also,
'--since' option is omitted.
* implement --color-scheme option
* use name (string) as the entry author
* internal refactoring
* fix crash in guessing the start commit
- Changes in pq-rpm
* implement --retain-history option
With this option defined gbp tries to preserve the history when
converting. That is, for each commit in the old branch create one
corresponding commit in the new orphan packaging branch. This works by
dumping packaging files and updating patches for each commit. However,
empty commits are not generated - these are caused e.g. by changes in
files that are ignored by patch-generation.
NOTE! Only valid for the 'convert' action.
* convert: don't try to commit empty set of patches
* make sure we always get a sane author
* slight unification of log messages
* decrease (default) verbosity a bit
* don't create pq branch when switching
- Changes in buildpackage-rpm
* buildpackage-rpm: fix desktop notifications
* buildpackage-rpm: remove --purge option
* guess/parse spec as early as possible
- Documentation
* Include man pages in RPM packages
* Add -doc subpackage to RPM packaging
* Build deb and rpm html docs in one docbook
* A multitude of small cosmetic fixes
- Other misc. internal changes
* GitRepository: implement create_tree() method
* rpm: suppress some verbosity when updating patches in spec file
* [ Li Jinjing ] Fix missing return value in get_current_branch method
* Thu Mar 06 2014 Markus Lehtonen <markus.lehtonen@linux.intel.com> tizen/0.6.8-20140306
- Rebase on top of upstream version 0.6.8
- Introduce git-rpm-ch tool.
Initial version of the git-rpm-ch tool which is intended for maintaining
RPM changelogs. Supports both spec files and separate "OBS style"
changelog files.
Implement '--tag' command line option (and other related options for
signing) for creating and tagging a release. These correspond the
tagging options in git-buildpackage-rpm.
The git-buildpackage-rpm tool does not commit anything to git. However,
in rpm-ch the '--tag' option causes the changelog modifications (and,
all other staged changes) to be committed to git before creating the
tag. This makes it possible to create a release and document the
packaging/release tag name in the rpm changelog.
- Changes to gbp-pq-rpm:
* implement 'convert' subcommand.
The new subcommand is intended to be a one-time-callable command for
converting a package to use the "orphan-packaging" development model and
git layout (where packaging files are maintained in a separate branch
and code development in another branch).
* implement '--import-files' command line option.
For defining the packaging file(s) that will be imported into the
development/patch-queue branch.
By default, the local gbp conf files are imported (so that gbp sees the
same settings on the development/pq branc as on the packaging branch).
Files defined with this option will appear as one monolithic commit in
the development/patch-queue branch.
* implement --new-packaging-dir cmdline option.
Used for setting the packaging directory to be used in the new orphan
packaging branch. Defaults to --packaging-dir so that the gbp.conf files
are more likely to work without modification.
* fail gracefully on invalid config files
* support '%(upstreamversion)s' as a replacable string in the pq branch
name.
- Changes to git-buildpackage-rpm
* patch-export from development branch.
Adds git-buildpackage-rpm --patch-export support for the 'orphan
packaging' development model (where packaging files and development sources are kept in separate
branches).
New functionality:
1. If patch-export is enabled and gbp detects that the current branch
has a development/patch-queue branch it exports the patches from there,
instead of the tip of the packaging branch.
2. If gbp detects that the current (or exported) branch is a
development/patch-queue branch it automatically enables patch-export
and exports packaging files from the base branch (instead of the
development/patch-queue branch.
Also, add a new '--git-patch-export-rev' command line option with which
the user can explicitly set the treeish from which patches are generated
(i.e. HEAD..<patch-export-rev>)
* fix spec file vcs update when doing git-tag-only
* change default export directory.
So that the git working directory is not dirtied, by default.
- Changes ti git-import-orig-rpm:
* disable --merge by default.
Merging upstream to packaging does not usually make sense with rpm
packages. Merely, it can create confusion cause unapplicable patches to
be generated.
* implement --create-missing-branches option.
* implement automatic downloading.
Automatically try to download the archive if the archive filename points
to a remote location.
* get archive from spec file.
Try to get archive path/filename from spec file if no file name is given
on the command line. This should make version bumps more
straightforward: just update version number in the spec file and run
'git-import-orig-rpm'.
- git-import-orig: implement --create-missing-branches option.
- Fixes and new features in GitRepository class
* GitRepository/get_commit_info: correctly handle file renames/copies.
* GitRepository.create_branch: add 'force' option
* GitRepository.archive: add 'paths' option
* GitRepository/git_command: strip stderr output in case of error.
* GitRepository/add_remote_repo: fix the 'tags' argument.
* GitRepository: allow interactive commands.
* GitRepository: fix the 'edit' mode in commit methods.
* GitRepository.commit_files: add committer_info and edit arguments.
* GitRepository.commit_all: add committer_info argument.
- Fixes and new features in internal rpm/spec support
* rpm.SpecFile: add 'specpath' attribute
* rpm: correctly handle 'NoSource' and 'NoPatch' tags in spec.
* rpm: Implement spec_from_repo() helper function
* rpm: track all "section" directives in spec file.
* rpm: add gbp.rpm.changelog module.
This new module contains basic containers and functionality for parsing
and updating rpm changelogs. It is coupled with the rpm packaging policy
class which now has definitions for rpm changelog formatting.
* rpm: support for getting/setting changelog in spec.
SpecFile objects now support reading and writing of the %changelog
section.
* rpm: store full path of spec file sources
- Fix detection of prefix directory in tarballs
gbs import failed to import tarball properly if paths in the archive
were prefixed with "./".
* Tue Jan 07 2014 Markus Lehtonen <markus.lehtonen@linux.intel.com> 0.6.8
- Rebase on top of upstream version 0.6.8
* Mon Dec 02 2013 Markus Lehtonen <markus.lehtonen@linux.intel.com> 0.6.6
- Rebase on top of upstream version 0.6.6
- UpstreamSource: fix archive prefix guessing
- pq-rpm: create diff up to the last merge commit
Before, merge commits broke patch generation, or, (most probably) caused
the generated patches to be unapplicable (similar to how
git-format-patch behaves).
Now, changes up to the last merge commit are squashed into one diff if
merge commits are found in the revision list from which patches are to
be generated. Individual patches (one per commit) are generated from the
last merge commit up to the exported revision.
- pq-rpm: magic word HEAD for patch-squashing
When given as the squash-point, 'HEAD' translates to the end-commit.
This allows one to configure gbp to always squash all commits into one
monolithic diff.
* Thu Oct 17 2013 Markus Lehtonen <markus.lehtonen@linux.intel.com> 0.6.3
- buildpackage: support 'commit' variable for VCS tags
- Clone a repository to a specific directory
- Fix gbs clone failure if repo url is like host:repo.git
- SpecFile.set_tag: change the default place for new tags
- remove 'repo' param to adapt to changes of write_patch_file
- pq: pass commit_info to format_patch()
- pq: pass commit_info to format_patch()
- pq.write_patch_file: drop unused argument
- pq: fix generation of series file
- common/pq: fix length of patch filenames
- buildpackage: refactor prefix handling
- tests: remove unused import in submodule tests
- tests: upper case global variables in submodule tests
- tests: add some docstrings to git submodule tests
- tests: use eq_ and ok_ from nose tools in submodule tests
- tests: use sanitize some submodule tests
- pq-rpm: don't overwrite patches in the same series
- pq: don't overwrite patches in the same series
- rpm: support guessing spec file from git treeish
- rpm.SpecFile: support parsing spec as raw text data
- rpm: minor docstring fixes
- rpm: change guess_spec() to return SpecFile object
- GitRepository.list_tree: add 'paths' option
- common/pq: support more flexible pq-branch naming
- pq-rpm: drop unused 'tries' option
- GitRepository: deprecate the get_remote_repos method
- GitRepository.has_remote_repo: use get_remotes method
- git: new class and method for remote repositories
- debian packaging: change to 1.0 source package format
- Version bump, rebase on top of 0.6.3
* Disable cover-min-percentage setting of nose
* docs: minor sgml syntax fix
- rpm tests: slight modificatin of import-srpm tests
- ComponentTestBase: use eq_() ok_() from nose.tools
- tests: add tests for git-import-orig-rpm
- ComponentTestBase: keep tmpdir if GBP_TESTS_NOCLEAN is in env
- ComponentTestBase: fix env restore in teardown
- config: restore mangled env in doctests
- import-orig-rpm: remove unneeded try-except
- import-orig-rpm: don't crash on invalid gbp.conf
- ComponentTestBase: more verbose output in case of branch mismatch
- rpm tests: test --filter option of git-import-srpm
- tests.testutils: add ls_zip() helper
- import-orig: rework sourcecode preparation and filtering
- import-orig: new function for filtering/re-packing sources
- buildpackage: fix handling of empty tarball prefix
- rpm: import orig: import readline in the common module
- import orig: import readline in the common module
- UpstreamSource.unpack: return UpstreamSource instance
- UpstreamSource.pack: reuse unpacked dir if no filter is used
- rpm: UpstreamSource: implement prefix guessing
- UpstreamSource: implement prefix guessing
- UpstreamSource: check that the sources exist
- UpstreamSource: store the absolute path
- rpm: UpstreamSource: move version guessing logic to PkgPolicy
- UpstreamSource: move version guessing logic to PkgPolicy
- UpstreamSource.guess_version: don't check for directories
- Fix `fatal: fetch --all does not take a repository argument`
* Thu Aug 22 2013 Markus Lehtonen <markus.lehtonen@linux.intel.com> 0.6.0git20130530
- rpm: Improve logging in case of rpmlib error
- Add clean method to GitRepository class
- Add all_remotes option in git fetch command
- Add tags option in git push command
- rpm: print a warning if importing gbp-specific librpm fails
- rpm: implement a wrapper module for rpm lib
- rpm: simplify SpecFile._parse_filtered_spec()
- Fix pylint warnings, follow Markus' sugesstion
- rpm: enhance spec parsing error messages
- GitRepository/add_files: consistently update all tracked files
- GitRepository: Add refspec option to fetch method
- GitRepository: Add all option to pull method
- GitRepository: Add force option to push method
|