4
4
5
5
* oscfs* is a FUSE based user space file system that allows to access open
6
6
build service (OBS) instances. It is based on the * osc* (openSUSE Commander)
7
- python package for interfacing with OBS. At the moment it provides read-only
7
+ Python package for interfacing with OBS. At the moment it provides read-only
8
8
access for inspecting packages and their metadata.
9
9
10
10
# Dependencies
11
11
12
- * oscfs* itself is implemented in python and uses the * fusepy* module to
13
- implement the file system portion. There is another python fuse package called
12
+ * oscfs* itself is implemented in Python and uses the * fusepy* module to
13
+ implement the file system portion. There is another Python Fuse package called
14
14
* python-fuse* which ** is not compatible** with * oscfs* .
15
15
16
- For accessing OBS instances the python * osc* module is required.
17
-
18
- Currently * oscfs* only works with python2, because the * osc* module is not
19
- available for python3 at the moment.
16
+ For accessing OBS instances the Python * osc* module is required. The * osc*
17
+ module by now is working with Python3, therefore * oscfs* is no longer
18
+ supporting Python2 since version 0.8.0.
20
19
21
20
## Features
22
21
@@ -29,37 +28,39 @@ available for python3 at the moment.
29
28
30
29
## Usage
31
30
32
- * oscfs* ships one main script called ` oscfs ` . It supports a couple of command
31
+ * oscfs* ships a main script called ` oscfs ` . It supports a couple of command
33
32
line parameters to influence its behaviour. It should only be called by a
34
33
regular user and never by the ` root ` user.
35
34
36
35
For mounting the file system simply provide the * mountpoint* argument to the
37
36
` oscfs ` main script. By default the openSUSE build service is accessed. For
38
37
authentication at the OBS instance, the configuration file in the home
39
- directory in ` ~/.oscrc ` needs to be setup. This file is part of the * osc*
40
- python module for which you can find more documentation in the [ openSUSE
38
+ directory in ` ~/.config/osc/oscrc ` (or ` ~/.oscrc ` on older installations)
39
+ needs to be setup. This file is part of the * osc* Python module for which you
40
+ can find more documentation in the [ openSUSE
41
41
wiki] ( https://en.opensuse.org/openSUSE:OSC ) .
42
42
43
- To specify a different OBS instance, provide the URL via the ` --apiurl `
43
+ To access a different OBS instance, provide the URL via the ` --apiurl `
44
44
parameter. For example to mount the SUSE internal build service (IBS) under
45
- the home directory in a directory ` ibs ` use the following command line:
45
+ use a command line like this :
46
46
47
47
``` sh
48
48
$ oscfs --apiurl https://api.suse.de ~ /ibs
49
49
```
50
50
51
- By default ` oscfs ` detaches and runs in the background. For testing purposes
52
- it can be run in the foreground by passing the ` -f ` parameter.
51
+ By default ` oscfs ` detaches and runs in the background as a daemon. For
52
+ testing purposes it can be run in the foreground by passing the ` -f `
53
+ parameter.
53
54
54
55
Certain special OBS projects are excluded by default like the users' * home:*
55
56
projects, maintenance incident projects or PTF (Program Temporary Fix)
56
57
projects. This is the case, because a lot of these projects can exist in an
57
- OBS which would clutter the file system contents.
58
+ OBS instance which would clutter the file system contents.
58
59
59
60
If you want to include these types of projects you can pass the according
60
- command line parameter like ` --homes ` , ` --maintenance ` or ` --ptf ` . Your own
61
- home projects will always be included in the file system independently of the
62
- ` --homes ` switch.
61
+ command line parameter like ` --homes ` , ` --maintenance ` or ` --ptf `
62
+ respectively. Your user account's own home projects will always be included in
63
+ the file system independently of the ` --homes ` switch.
63
64
64
65
Content that has been fetched from the OBS instance will be cached locally for
65
66
a certain time to improve response times. The time before content will be
@@ -68,7 +69,7 @@ refreshed can be tuned via the `--cache-time` parameter.
68
69
## File System Structure
69
70
70
71
On the first level of the file system, a directory for each OBS project is
71
- found. When working against the openSUSE OBS you can find the
72
+ found. When accessing the openSUSE OBS instance you can find the
72
73
` openSUSE:Factory ` directory, for example. On the second level the packages
73
74
within a project are found. Within ` openSUSE:Factory ` all packages that make
74
75
up the openSUSE Tumbleweed rolling release codebase are found. For example you
@@ -111,7 +112,7 @@ directory:
111
112
- ` bugowners ` : the same as for projects above.
112
113
- ` maintainers ` : the same as for projects above.
113
114
- ` description ` : contains the human readable description of the package.
114
- - ` log ` : contains the changelog of the package.
115
+ - ` log ` : contains the commit changelog of the package.
115
116
- ` meta ` : returns the complete XML metadata for the package as provided by the
116
117
OBS instance.
117
118
- ` num_revisions ` : returns an integer denoting the number of commit revisions
@@ -171,6 +172,9 @@ lot amount of data from the remote server should be avoided (e.g. don't call
171
172
` find ` for the complete file system). This would be a kind of denial of
172
173
service attack on the remote server.
173
174
175
+ In a future version of ` oscfs ` evaluation of remote server modification times
176
+ could be used to transparently update cached data when necessary.
177
+
174
178
### Sorting of Directory Contents
175
179
176
180
Listing directories with ` ls ` can feel a bit on the slow side, even if data is
@@ -198,7 +202,7 @@ it was last seen by `oscfs`.
198
202
### Finding Packages
199
203
200
204
You can find packages by using tools like ` find ` or shell wildcards expansion.
201
- To find all fuse related packages you do this for example:
205
+ To find all Fuse related packages you do this for example:
202
206
203
207
``` sh
204
208
$ cd openSUSE:Factory
@@ -209,7 +213,7 @@ enblend-enfuse fuse fuse-exfat fuseiso fusepod fusesmb ifuse ldapfuse li
209
213
### Matching Lines from RPM Specs
210
214
211
215
You can query for packages containing certain RPM spec statements. For example
212
- to find packages that require some perl package by using grep like this:
216
+ to find packages that require some Perl package by using grep like this:
213
217
214
218
``` sh
215
219
$ cd openSUSE:Factory
0 commit comments