osc/osc.spec

398 lines
16 KiB
RPMSpec

#
# spec file for package osc (Version 0.96)
#
# 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.96
Release: 27
Group: Development/Tools/Other
License: GNU General Public License (GPL)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
URL: https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/clientlib/python/osc/
# v=0.96; 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
%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
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-,root,root)
%{_bindir}/osc*
%{python_sitelib}/*
%doc README TODO NEWS
%changelog
* 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)