osc/osc.spec

498 lines
21 KiB
RPMSpec

#
# spec file for package osc (Version 0.97)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: osc
BuildRequires: python-devel
Version: 0.97
Release: 13
Group: Development/Tools/Other
License: GPL v2 or later
BuildRoot: %{_tmppath}/%{name}-%{version}-build
URL: https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/clientlib/python/osc/
# v=0.97; svn export https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/clientlib/python/osc osc-$v; tar czf osc-$v.tar.gz osc-$v
Source: osc-%{version}.tar.gz
Summary: openSUSE (build service) commander
Requires: python-urlgrabber
#
%if 0%{?suse_version}
%if %suse_version < 1020
Requires: python-elementtree
%else
Requires: python-xml
%endif
%if %suse_version > 1000
Recommends: rpm-python
%endif
%endif
#
%if 0%{?fedora_version}
%if %fedora_version < 7
Requires: python-elementtree
%endif
%endif
#
%{!?python_sitelib: %define python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%description
Commandline client for the openSUSE build service.
See http://en.opensuse.org/Build_Service/CLI , as well as
http://en.opensuse.org/Build_Service_Tutorial for a general
introduction.
Authors:
--------
Peter Poeml <poeml@suse.de>
%prep
%setup -q -n osc-%{version}
%build
CFLAGS="%{optflags}" \
%{__python} setup.py build
%install
%{__python} setup.py install --prefix=%{_prefix} --root %{buildroot}
ln -s osc-wrapper.py %{buildroot}/%{_bindir}/osc
mkdir -p %{buildroot}/var/lib/osc-plugins
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-,root,root)
%{_bindir}/osc*
%{python_sitelib}/*
%dir /var/lib/osc-plugins
%doc README TODO NEWS
%changelog
* Thu Aug 09 2007 - poeml@suse.de
- update to r1947:
- commit: fixed possible "UnboundLocalError" with -m. Thanks to
judas_iscariote for spotting this issue, and Marcus for fixing
it.
* Wed Aug 08 2007 - poeml@suse.de
- update to r1946:
- avoid warning/error with unsupported HTTPS_PROXY [#214983][#298378]
- importsrcpkg:
* changed default behaviour - the files will not be committed by
default. To commit them use the --commit switch.
* added --delete-old-files option switch to delete old files from
the server.
* allow to import source rpms by specifying an URL
* use rpm-python
- fix for "osc prjconf <project> -e".
- add Recommends: rpm-python
* Wed Jul 25 2007 - poeml@suse.de
- update to r1884:
- added new importfromsrcpkg command, to import a package src.rpm
(we owe this to Marcus)
- added new req command, to issue arbitrary requests to the API
- append missing newline if do_commits=False [#293672]
- make delete_package() and delete_project() more userfriendly
(added trivial exception handling..)
- expand ~ to users home for packagecachedir in .oscrc [#293675]
* Thu Jul 19 2007 - poeml@suse.de
- update to r1871:
- meta: allow for editing patterns
- small fixes:
- fix error message which osc issues if build package is too old
- results: result code can be empty when package has just been created
- fix name of 10.2 product in the template for new projects
* Wed Jul 18 2007 - poeml@suse.de
- update to r1861:
- commit (using the currently documented way):
- do DELETEs _before_ generating an "upload" revision with
PUTs. The DELETEs would be invalidated by the commit.
- switch to new commit mode also if the -F switch is used
- flush stdout, so that the progress dots are seen directly
when being written
* Mon Jul 16 2007 - poeml@suse.de
- update to r1846:
- added initial search support (some ideas are taken from the webclient):
* when searching a package/project it
is also possible to search for the search term
in the <title /> and <description /> elements of
a package/project.
* show only exact matches
- new meta command, replacing editmeta, editprj, createprj,
editpac, createpac, edituser. Can either show existing meta, or
edit it (--edit), or upload content (--file). Fix metadata
change detection, which no longer relies on the timestamp of
the temporary file.
- log:
- renamed previous "log" command to "buildlog" (short: bl)
- implementing a log command to review the commit log
- commit:
- commit: implemented -m and -F option for the commit message.
NOTE: if -m is used, osc uses a different mode of uploading
files and commit them, namely the way which is currently
documented in the api. So far, osc was uploading each file
separately through the old backward compatible way. This way
of committing can also be forced with do_commits = 1 in
.oscrc.
- other changes:
- api now sends HTTP/1.1 400 Bad Request for invalid xml. Thus,
show the reply body because it contains helpful info.
- if PUT on metadata fails with a 500, and http_debug is True,
print out the body of the server reply
- improved exception handling in some places
- updatepacmetafromspec: read spec files in utf-8, or whatever
the preferred encoding is in the locale
* Wed Jul 11 2007 - poeml@suse.de
- update to r1825:
- version 0.97
- added initial revision handling:
- extended "osc co prj pac" to checkout a specific revision of pac
- extended "osc up" to update to a specific revision
- extended "osc diff" to diff the working copy against a
specific revision on the server. NOTE: comparing two
server-side revisions (osc diff -r 11:12) is currently
not supported!
- addremove: ignore foo.rXX, foo.mine for files which are in 'C' state
- wipebinaries: allow to wipe all binaries of packages for which
the build is disabled
- updatepacmetafromspec scans for spec files automatically; also,
added a --specfile option.
- load subcommands from /var/lib/osc-plugins/ or ~/.osc-plugins/
* Fri Jun 29 2007 - poeml@suse.de
- add /var/lib/osc-plugins to the filelist
* Fri Jun 29 2007 - poeml@suse.de
- update to r1794:
- rm: don't allow to mark files as deleted which are not under
version control
* Thu Jun 28 2007 - poeml@suse.de
- update to r1792:
- linkpac: make this osc subcommand work again: sync metadata if
edit_meta() is called with change_is_required=False.
- log: fail gracefully if logfile can't be found
- handle empty prjresults (e.g. when no repositories are defined)
* Tue Jun 26 2007 - poeml@suse.de
- update to r1783:
- build: don't stumble over an empty list of packages when trying to verify packages
- ls: add verbose option to print extra information for packages
- for ls, co, meta, editmeta, linkpac, copypac, rebuildpac, and wipebinaries
(basically all the server-side commands), allow arguments "foo/bar" instead
of "foo bar"
* Fri Jun 22 2007 - poeml@suse.de
- update to r1769:
fix return values in metafile.sync() which I broke whey I applied
Marcus Huewe's patch...
* Thu Jun 21 2007 - poeml@suse.de
- update to r1763:
- set correct Content-Type header on PUT requests
(application/octet-stream). Rails 1.2 seems to be more strict
in this regard. Patch from Marcus Rueckert.
- init: make usage (and usage info) info more precise
* Thu Jun 14 2007 - poeml@suse.de
- update to r1733:
New features kindly implemented by Marcus Huewe:
- added wipebinaries command
- added abortbuild command
- improved handling of metadata editing if the server doesn't accept it
* Thu Jun 14 2007 - poeml@suse.de
- update to r1731:
- adjust for change in build.rpm, where /usr/lib/build/debsort
was removed. Look for debtransform program instead in order to
determine if build.rpm is new enough.
- update cmdln.py to planned 1.0 version. The main changes are
related to points that were raised during employment in osc:
[#] v0.8.3
- Fix a bug where errors with passing an incorrect number of args to
functions in do_foo() implementations would be masked.
[#] v1.0.0
- [backward incompat] `Cmdln.main()` no longer takes an `optparser`
argument. Top-level option parsing has been changed so that top-level
options for a `Cmdln` subclass can more naturally be defined and
handled on the class definition. Changes:
- `Cmdln.main()` calls `self.get_optparser` to get an option handler.
Subclasses should overload this method for custom top-level options.
- After option parsing, but before sub-command handling, the
`self.postoptparse()` hook is called.
- Add a `version` attribute on `Cmdln` subclasses. If set, the default
top-level option parser will have a `--version` attribute.
- [backward incompat] Simplify the StopProcessing/opts.stop handling for
option handling in subcommands. The "opts" argument to "do_*"
sub-command functions will no longer have a "stop" value.
StopProcessing is now called StopOptionProcessing. This shouldn't
affect simple usage of cmdln.py.
- adjust osc.commandline for these changes.
- make startdir a module global
- add info about usage with the 'nosetests' test discovery tool
- add tests for commandline options
- results: remove obsolete code handling commandline arguments
* Mon May 14 2007 - poeml@suse.de
- update to r1657:
- rebuildpac: fix mistyped repository parameter
- build: add --userootforbuild option
* Sat May 12 2007 - poeml@suse.de
- update to r1655:
- build: fix bug introduced with r1652: for the buildinfo, POST
the specfile's content, not its name...
* Thu May 10 2007 - poeml@suse.de
- update to r1652:
- build: implement -x/--extra-pkgs option (passed to backend and
included in buildinfo result)
- make filling out of username in templates work again
* Tue May 08 2007 - poeml@suse.de
- update to r1644:
- don't allow to delete projects, as long it is not implemented in
the backend
- use new API route for downloading binaries also in configured URLs
- make deletepac work again
* Sat May 05 2007 - poeml@suse.de
- update to r1635:
- version 0.96
- following suggestions by Christian Boltz and Michal Marek, osc
now memorizes where a working copy was checked out from, saving
the api server url to .osc/_apiurl.
- implement 'info' subcommand
- buildhistory works again
- copypac: implement package copy from one buildservice instance to another
(--to-apiurl option)
- build:
- rename --prefer-pacs option to --prefer-pkgs
- implement --keep-pkgs option
- call rpm command for preferred rpms with --nosignature --nodigest
- improve key import instructions after suggestion by Michael Wolf
- the results subcommand now handles multiple <working copy> arguments
- use the new api routes in all places
* Wed May 02 2007 - poeml@suse.de
- update to r1626:
- build: implement --prefer-pacs option
- apply patch from Michael Marek, fixing all places where error
messages were printed to stdout instead of stderr. [#239404]
* Wed Apr 25 2007 - poeml@suse.de
- update to r1608:
- version 0.95
- osc is now easier to work with when using alternative API servers. The
configured server can be overriden with -A <url> on the commandline.
"apisrv" in the config takes a URL now, so the variable "scheme" which was
needed in addition before becomes obsolete. For backward compatibility, a
hostname (and scheme variable) are accepted like before. Likewise, the auth
sections in the config take a URL now, or a hostname:port to keep old config
working. HTTP or HTTPS scheme is determined from the URL. Credentials must be
configured in .oscrc.
- build: use actual api server in urllist for downloading, instead of hardcoded
api.opensuse.org [#265211].
- finally, global option -H enables HTTP traffic debugging
- implement "rebuild all failed packages", via --failed option in rebuildpac
subcommand
- status -v shows all files, including unmodified ones
- suppress the legend in prjresults by default (show with -l)
- --version shows the program version number
- fix the commit subcommand's argument handling. The following works correctly
now: osc ci ../test/onlyinwc `pwd` fstab ../test/f2
- fix the download progress meter to work with small terminals [#266989]
* Fri Apr 20 2007 - poeml@suse.de
- update to r1594:
- save and reuse HTTP server cookies, speeding HTTP requests up
about 5 times (in our iChain setup anyway...)
- rewrite the HTTP handling
- adding http_GET/POST/PUT/DELETE() functions, which dispatch to
http_request(), and use them everywhere
- removing othermethods.py
- keeping urlopen(), in case it is used from externally, but have it print out
a "depracated" message
- finally, implementing a global HTTP debug mode
- if data to be sent is large, mmap it instead of reading at once
- build: remove debug print of tempfile name
- README: add info about dependencies of osc python module
- further the osc buildroot configuration example
* Fri Mar 30 2007 - poeml@suse.de
- update to r1551:
- update: when updating multiple packages, print each package name
- build:
- use <bdep> preinstall attribute instead of obsolete <pdep> element
- use <bdep> runscripts attribute and hand it over to build in the buildinfo
- results: quote parameter in the new URL
- prjresults: sort package names
- run build with --norootforbuild, thereby defaulting to build as
abuild user
- when updating, don't delete files with local modifications
- add testcase
- update osc tests for small api changes
- use new api ['build', prj, '_result'] for prjresults subcommand
* Tue Mar 13 2007 - poeml@suse.de
- update to r1427:
- apply fix from Christoph Thiel to use cElementTree from Python 2.5
- let the diff subcommand return 1 if differences were found
- make 'results' subcommand many times faster, by making only a
single request on _result?view=status&package=%%s (new api)
* Fri Mar 09 2007 - poeml@suse.de
- build the debian package in the new way
* Tue Jan 23 2007 - poeml@suse.de
- update to r1093:
- fix important bug, which could lead to overwriting local
modifications when upstream changes are merged in
- if a merge fails, the store copy must be updated neverthelesss
- sort output of 'status' (unknown files first, filenames
alphabetically)
* Tue Jan 23 2007 - poeml@suse.de
- remove unused (and possibly disturbing, because unfunctional) rpm
define of py_sitedir
* Fri Jan 12 2007 - poeml@suse.de
- update to r1047:
- core: added class "metadata" (merge from Susannes
/branches/froh/reponator/)
- added command alias 'stat' for 'status', like in svn
- improved documentation/examples (Lars + Susanne)
- print usage info if 'co' is called without arguments
* Fri Oct 13 2006 - poeml@suse.de
- set scheme=https in the default configuration, to work around
issue with new server
* Thu Oct 12 2006 - poeml@suse.de
- update to 0.9 (r761):
- "iChain-ready" (works with API server now using iChain
authentication)
- add runtime check for build.rpm version, so the rpm package
dependency is no longer required
- add 'edituser' command for editing the metadata of a user
account. It tries to create a user if it doesn't exist yet. A new
command 'usermeta' replaces 'id' respectively 'userid'.
- rewrite configuration handling. Now the API server can be set in
.oscrc
- ignore '.gitignore', '.pc', '*~' (now using filename matching
[#208969]
- fix 'status' to work with project directories as arguments
- fix 'status <filename>'
* Fri Sep 29 2006 - poeml@suse.de
- update to r753:
- 'rebuildpac' now accepts additional repo and arch argument. Note:
the syntax has changed.
- add 'prjresults' command to display aggregated build status over
an entire project
- add 'deleteprj' command (the API server doesn't seem to support
it yet, though)
- change 'buildhistory' to display human-readable text
- 'log': print usage info if called with missing arguments
- 'ci': handle upload errors
- fix filelist for python >= 2.5
* Thu Sep 21 2006 - poeml@suse.de
- update to r744:
- add 'copypac' subcommand, to copy a complete package to a new package,
possibly cross-project
- don't die if user tries to 'add' a file which is already versioned
- don't die if 'addremove' encounters directories
- urlopen(): for server return code 500, print out the reply body
- be fair, and also mention dsc files in some help texts
* Fri Sep 15 2006 - poeml@suse.de
- update to r735:
- build: use configuration from *local* specfile (e.g. BuildRequires)
- build: let envvars OSC_SU_WRAPPER and OSC_BUILD_ROOT override config
- build: allow 'dynamical' build-root setting by using %%(repo)s and %%(arch)s
- add 'createpac/editpac' and 'createprj/editprj' subcommands which
are similar to 'editmeta' but should be more logical to find
- added 'deletepac' subcommand
- added 'buildhistory' subcommand (formerly 'history'). This only
gives out raw xml at this time
- added ".git" to the excluded files
* Mon Aug 07 2006 - poeml@suse.de
- update to svn r635:
- added 'linkpac' subcommand
- adapt to API changes
* Thu Jul 20 2006 - poeml@suse.de
- fixed issue with uploading files when an intercepting web proxy
was in between osc and the api server
- fixed creation of new packages/projects
* Mon Jul 17 2006 - poeml@suse.de
- update to 0.7 (r599)
- initial support for local builds (subcommand 'build')
- new subcommands buildconfig, buildinfo, repos
- better error handling
* Mon Jun 26 2006 - poeml@suse.de
- update to svn r534
- fix 'rebuildpac' command to not show raw xml
- editmeta:
- add examples for <disable> tags to the package template
- add examples for build targets to the project template
- fix updatepacmetafromspec to cope with subpackages during parsing
- code cleanup
- remove requirement on pyxml package
* Thu Jun 22 2006 - poeml@suse.de
- update to svn r528:
- add support for streaming build log (thanks to Christoph Thiel)
- don't try to merge binary files
- set mtime on files that have been fetched during merge
* Thu Jun 08 2006 - poeml@suse.de
- update to svn r481:
- fix handling of filenames with '+' signs [#153725, #181593]
- before committing, make sure that the working copy is up to date
- don't diff binary files
- add 'rebuildpac' command, which triggers a rebuild for all
repositories/architectures of the package
- fix merge on 'update', if osc is called from another directory
- don't fail on 'resolve' when the working copy is in a newer rev already
- add 'commit' as command alias for 'ci/checkin'
* Tue Jun 06 2006 - poeml@suse.de
- update to svn r469:
- work around ruby on rails issue, which swallows '+' signs in filenames in PUT
requests [#153725, 181593]
- before committing, make sure that the working copy is up to date (added
show_rev() function)
- add 'commit' as subcommand alias for 'ci/checkin'
* Sat Jun 03 2006 - poeml@suse.de
- update to svn r466:
- add 'repourls' subcommand
- display reason for new build status is 'broken'
- add a tentative 'updatepacmetafromspec' subcommand, which takes package
metadata from a specfile
- handle some error conditions
- fix the profiling wrapper script
- make 'resolved' more robust
- set a User-agent
* Tue May 30 2006 - poeml@suse.de
- update to 0.6:
- diff bugfix: sometimes displayed diff against obsolete files
- update bugfixes: fix update of working copy when adding a file from upstream
which is missing locally; fix update in directory with unmodified files:
don't try to merge if upstream file wasn't changed at all
- add: make it faster
* Tue May 23 2006 - poeml@suse.de
- update to 0.5:
- help :-)
- fix status letter for files merged on update (in analogy to svn , it is
either G or U)
- if an old _files listing without any metadata is found, don't bother the user
with it
- make all subcommands properly importable functions
- bug in 'resolved' command fixed, which wouldn't clear the conflict state of a file
- fix update in directory with unmodified files: don't try to merge if upstream
file wasn't changed at all
* Mon May 22 2006 - poeml@suse.de
- don't fail on undeleting non-existing _to_be_deleted file
- update to 0.4:
- allow 'up' inside a project directory (will automatically pull in all new
packages). (For past checkouts, you may need to put the project name into
$prjdir/.osc/_project yourself).
- checkout: preserve mtimes
- add diff3 merge support. Locally modified files are merged with upstream changes
if possible, and go into Conflict state if that fails.
- add 'resolved' command to be used after manual merging.
* Fri May 19 2006 - poeml@suse.de
- update to 0.3:
- use the new file metadata, which provides checksum, size and mtime
- faster 'status', 'update', 'diff'
- improve argument handling, now e.g. 'osc up *' is possible
- on first usage, ask for username and password and store them in .oscrc
(.netrc can still be used)
* Mon May 15 2006 - poeml@suse.de
- this package is not noarch
* Fri May 12 2006 - poeml@suse.de
- don't use --record-rpm option on setup.py, only SUSE has it
- define py_sitelib macro
* Wed May 10 2006 - poeml@suse.de
- created package (version 0.2)