diff options
author | Zhang Qiang <qiang.z.zhang@intel.com> | 2014-05-08 13:53:52 +0800 |
---|---|---|
committer | Zhang Qiang <qiang.z.zhang@intel.com> | 2014-05-08 13:53:52 +0800 |
commit | 7a992acea612d6276baa29783b2ae9d5d938cc39 (patch) | |
tree | bc861fe6827391861816791d6f69e3d84a4c2ba0 /README | |
download | osc-7a992acea612d6276baa29783b2ae9d5d938cc39.tar.gz osc-7a992acea612d6276baa29783b2ae9d5d938cc39.tar.bz2 osc-7a992acea612d6276baa29783b2ae9d5d938cc39.zip |
Imported Upstream version 0.139.0
Diffstat (limited to 'README')
-rw-r--r-- | README | 271 |
1 files changed, 271 insertions, 0 deletions
@@ -0,0 +1,271 @@ +osc -- opensuse-commander with svn like handling + + +Patches can be submitted via + * mail to opensuse-buildservice@opensuse.org + * Bugzilla: https://bugzilla.novell.com/enter_bug.cgi?product=openSUSE.org&component=BuildService + * or the official Git repository on Github: + https://github.com/openSUSE/osc + + +INSTALLATION: + +RPM packages are here (rpm-md repository): +http://download.opensuse.org/repositories/openSUSE:/Tools/ + +To install from svn, do + + python setup.py build + python setup.py install + # create a symlink 'osc' in your path pointing to osc.py. + ln -s osc-wrapper.py /usr/bin/osc + +Alternatively, you can directly use osc-wrapper.py from the source dir +(which is easier if you develop on osc). + + +The program needs the cElementTree python module installed. On SUSE, the +respective package is called python-elementtree (before 10.2: python-xml). +For local building, you will need python-urlgrabber in addition. Those are +standard package on SUSE Linux since a while. If your version is too old, you +can find python-elementtree and python-urlgrabber here: +http://download.opensuse.org/repositories/devel:/languages:/python/ + + + +CONFIGURATION: + +When you use it for the first time, it will ask you for your username and +password, and store it in ~/.oscrc. + + +CONFIGURATION MIGRATION (only affects versions >= 0.114): + +Version 0.114 got some cleanups for the configfile handling and therefore some +options are now deprecated, namely: +* apisrv +* scheme + +One new option was added: +* apiurl = <protocol>://<somehost> # use this as the default apiurl. If this +option isn't specified the default (https://api.opensuse.org) is used. + +So far osc still has some backward compatibility for these options but it might +get removed in the future that's why it issues a deprecation warning in case +one of those options is still in use. + +The new configuration scheme looks like the following: + # entry for an apiurl + [<protocol>://<apiurl>] + user = <username> + password = <password> + ... + +'''Before starting the migration please save your ~/.oscrc file!''' + +If the migration doesn't work for whatever reason feel free to send me an email +or ask on the opensuse-buildservice mailinglist or in the #opensuse-buildservice +irc channel. + +=== Migration case I (apisrv only) === +The apisrv option is used to specify the default apihost. If apisrv isn't +specified at all the default ("api.opensuse.org") is used. +The current [general] section looks like this: + [general] + ... + apisrv = <somehost> + # or + apisrv = <protocol>://<somehost> + +apisrv got superseded by the new apiurl option which looks like this: + [general] + ... + apiurl = <protocol>://<somehost> + +If apisrv has no "<protocol>" https is used. Make sure all apiurl sections have +the new format which is described above. Afterwards apisrv can be removed. + +=== Migration case II (scheme only) === +The current [general] section looks like this: + [general] + ... + scheme = <protocol> + +This means every apiurl section which don't have the new format which is +described above for instance + [<somehost>] + user = <username> + password = <password> + ... + +has to be converted to + [<protocol>://<somehost>] + user = <username> + password = <password> + ... + +Afterwards the scheme option can be removed from the [general] section (it +might be the case that some sections already have the correct format). + +=== Migration case III (apisrv and scheme) === +The current [general] section looks like this: + [general] + ... + apisrv = <somehost> + scheme = <protocol> + +Both options can be removed if all apiurl sections have the new format which is +described above. So basically just adjust all apiurl sections (it might be the +case that some sections already have the correct format). + + +KEYRING USAGE + +Osc now can store passwords in keyrings instead of ~/.oscrc. To use it, +you need python-keyring and either python-keyring-kde or -gnome. + +If you want to switch to using a keyring you need to delete apiurl section +from ~/.oscrc and you will be asked for credentials again, which will be then +stored in the keyring application. + + +WORKING COPY INCONSISTENT (only affects version >= 0.130) + +osc's working copy handling was rewritten in 0.130. Thus some +consistency checks were added. As a result osc might complain +that some old working copies are in an inconsistent state: + Your working copy '.' is in an inconsistent state. + Please run 'osc repairwc .' (Note this might _remove_ + files from the .osc/ dir). Please check the state + of the working copy afterwards (via 'osc status .') +To fix this simply run "osc repairwc ." as suggested in the +error message. Note that "osc repairwc ." might need to contact +the api in order to fetch some missing files. Also it might remove +some files from the storedir (.osc/) but it won't touch any locally +modified files. +If it DOES NOT fix the problem please create a bug report and attach +your working copy to the bug (if possible). + + +USAGE EXAMPLES: +(online at http://en.opensuse.org/openSUSE:OSC ) + +To list existing content on the server + osc ls # list projects + osc ls Apache # list packages in a project + osc ls Apache subversion # list files of package of a project + +Check out content + osc co Apache # entire project + osc co Apache subversion # a package + osc co Apache subversion foo # single file + +Update a working copy + osc up + osc up [pac_dir] # update a single package by its path + osc up * # from within a project dir, update all packages + osc up # from within a project dir, update all packages + # AND check out all newly added packages + +If an update can't be merged automatically, a file is in 'C' (conflict) +state, and conflicts are marked with special <<<<<<< and >>>>>>> lines. +After manually resolving the problem, use + osc resolved foo + +Upload change content + osc ci # current dir + osc ci <dir> + osc ci file1 file2 ... + +Show the status (which files have been changed locally) + osc st + osc st <directory> + osc st file1 file2 ... + +Mark files to be added or removed on the next 'checkin' + osc add file1 file2 ... + osc rm file1 file2 ... + +Adds all new files in local copy and removes all disappeared files. + osc addremove + +Generates a diff, to view the changes + osc diff # current dir + osc diff file1 file2 ... + +Shows the build results of the package + osc results + osc results [repository] + +Shows the log file of a package (you need to be inside a package directory) + osc log <repository> <arch> + +Shows the URLs of .repo files which are packages sources for Yum/YaST/smart + osc repourls [dir] + +Triggers a package rebuild for all repositories/architectures of a package + osc rebuildpac [dir] + +Shows available repository/build targets + osc repository + +Shows the configured repository/build targets of a project + osc repository <project> + +Shows meta information + osc meta Apache + osc meta Apache subversion + osc id username + +Edit meta information +(Creates new package/project if it doesn't exist) + osc editmeta Apache + osc editmeta Apache subversion + +Update package meta data with metadata taken from spec file + osc updatepacmetafromspec <dir> + + +There are other commands, which you may not need (they may be useful in scripts): + osc repos + osc buildconfig + osc buildinfo + + +Locally build a package (see 'osc help build' for more info): + osc build <repo> <arch> specfile [--clean|--noinit] + + +Update a package to a different sources (directory foo_package_source): + cp -a foo_package_source foo; cd foo; osc init <prj> <pac>; osc addremove; osc ci; cd $OLDPWD; rm -r foo + + + +HINT FOR W3M USERS + +Putting the following in the file ~/.w3m/passwd will make +w3m know the credentials for the buildservice servers: + +""" +host api.opensuse.org + port 80 + realm Authentication required + login foo + password bar + +host build.opensuse.org + port 80 + realm openSUSE Build Service + login foo + password bar +""" + +chmod 0600 ~/.w3m/passwd + + +NOTES about the testsuite + +A new test suite has been created and should run via doing +# cd tests +# python suite.py + |