deb_libnfs.git
12 years agoNLM: initial support for NLM
Ronnie Sahlberg [Sat, 10 Mar 2012 09:46:03 +0000 (20:46 +1100)] 
NLM: initial support for NLM

12 years agoMerge branch 'master' of github.com:sahlberg/libnfs
Ronnie Sahlberg [Thu, 8 Mar 2012 22:25:02 +0000 (09:25 +1100)] 
Merge branch 'master' of github.com:sahlberg/libnfs

12 years agoGETACL: change the signature for the raw getacl3 function to take GETACL3args pointer...
Ronnie Sahlberg [Thu, 8 Mar 2012 11:52:20 +0000 (22:52 +1100)] 
GETACL: change the signature for the raw getacl3 function to take GETACL3args pointer instead of a discrete arguments

12 years agoNFSACL: Add support for SETACL3
Ronnie Sahlberg [Thu, 8 Mar 2012 10:25:21 +0000 (21:25 +1100)] 
NFSACL: Add support for SETACL3

12 years agoREADME, document where the mailinglist is and where release tarballs can be downloaded
Ronnie Sahlberg [Mon, 5 Mar 2012 02:29:31 +0000 (13:29 +1100)] 
README, document where the mailinglist is and where release tarballs can be downloaded

12 years agoupdate the licence text and proide an explicit copy of LGPL2.1 and GPL3
Ronnie Sahlberg [Sun, 4 Mar 2012 06:13:08 +0000 (17:13 +1100)] 
update the licence text and proide an explicit copy of LGPL2.1 and GPL3

12 years agonew version 1.3
Ronnie Sahlberg [Sat, 3 Mar 2012 08:04:58 +0000 (19:04 +1100)] 
new version 1.3

12 years agochange rpc_nfs_symlink_async to take a full SYMLINK3args as parameter
Ronnie Sahlberg [Fri, 13 Jan 2012 21:18:19 +0000 (08:18 +1100)] 
change rpc_nfs_symlink_async to take a full SYMLINK3args as parameter

12 years agomake low level readlink_async function take READLINK3args as argument
Ronnie Sahlberg [Fri, 13 Jan 2012 21:11:09 +0000 (08:11 +1100)] 
make low level readlink_async function take READLINK3args as argument

12 years agomake mkdir_async take a full MKDIR3args argument
Ronnie Sahlberg [Thu, 12 Jan 2012 05:02:32 +0000 (16:02 +1100)] 
make mkdir_async take a full MKDIR3args argument

12 years agorpc_nfs_create_async, args is now a pointer, not a structur
Ronnie Sahlberg [Thu, 12 Jan 2012 04:56:02 +0000 (15:56 +1100)] 
rpc_nfs_create_async,   args is now a pointer, not a structur
so we shouldnt take the address of it

12 years agochange crate_async low level function to take a full RATE3args structure as argument...
Ronnie Sahlberg [Thu, 12 Jan 2012 04:31:49 +0000 (15:31 +1100)] 
change crate_async low level function to take a full RATE3args structure as argument instead of just name and mode

12 years agoread returns a READ3res, not a ACCESS3res
Ronnie Sahlberg [Thu, 12 Jan 2012 04:19:45 +0000 (15:19 +1100)] 
read returns a READ3res, not a ACCESS3res

12 years agoAdd function to get root filehandle from a nfs context
Ronnie Sahlberg [Tue, 10 Jan 2012 20:04:01 +0000 (07:04 +1100)] 
Add function to get root filehandle from a nfs context

12 years agoTry to rotate the ports we assign when root better so we dont reuse
Ronnie Sahlberg [Mon, 2 Jan 2012 20:25:25 +0000 (07:25 +1100)] 
Try to rotate the ports we assign when root better so we dont reuse
a port htat is in time-wait too frequently

12 years agoImprove an error message to show the errno value
Ronnie Sahlberg [Mon, 2 Jan 2012 20:18:56 +0000 (07:18 +1100)] 
Improve an error message to show the errno value

12 years agoMOUNT: describe mount version 1
Ronnie Sahlberg [Sat, 31 Dec 2011 23:37:54 +0000 (10:37 +1100)] 
MOUNT: describe mount version 1

12 years agoPORTMAPPER: Add set/unset functions
Ronnie Sahlberg [Sat, 31 Dec 2011 04:01:38 +0000 (15:01 +1100)] 
PORTMAPPER: Add set/unset functions

12 years agoPMAP: allow to ask for tcp/udp port, dont assume users only ever want the tcp port
Ronnie Sahlberg [Sat, 31 Dec 2011 03:24:20 +0000 (14:24 +1100)] 
PMAP: allow to ask for tcp/udp port, dont assume users only ever want the tcp port

12 years agoNew version 1.2
Ronnie Sahlberg [Tue, 6 Dec 2011 07:02:34 +0000 (18:02 +1100)] 
New version 1.2

12 years agoSet IFREG from file type, dont assume mode bits contain it
Ronnie Sahlberg [Mon, 5 Dec 2011 02:54:21 +0000 (13:54 +1100)] 
Set IFREG from file type, dont assume mode bits contain it

Needed for HaneWin which does not set S_IFMT in the modebits returned

12 years agoRemove all [s]size_t / off_t and replace with [u]int64_t making libnfs 64-bit pure
Ronnie Sahlberg [Sun, 27 Nov 2011 03:49:08 +0000 (14:49 +1100)] 
Remove all [s]size_t / off_t and replace with [u]int64_t making libnfs 64-bit pure

12 years agoAdd MKNOD command support
Ronnie Sahlberg [Sun, 27 Nov 2011 03:08:24 +0000 (14:08 +1100)] 
Add MKNOD command support

Add support for raw nfs3 mknod  and sync and async posixlike api

12 years agoNew version 1.1
Ronnie Sahlberg [Sun, 27 Nov 2011 00:19:18 +0000 (11:19 +1100)] 
New version 1.1

12 years agoMake _FILE_OFFSET_BITS=64 always
Ronnie Sahlberg [Sun, 27 Nov 2011 00:09:09 +0000 (11:09 +1100)] 
Make _FILE_OFFSET_BITS=64 always

12 years agoEverytime we use rpc_connect_async() internally, make sure we clear the ->connect_cb...
Ronnie Sahlberg [Sun, 9 Oct 2011 08:47:07 +0000 (19:47 +1100)] 
Everytime we use rpc_connect_async() internally, make sure we clear the ->connect_cb so that we dont have a callback function and "private data" being invoked long after the "private data" structure has been free()d.

12 years agoSync API: Once the sync nfs_mount() functions is finished we have to clear rpc->conne...
Ronnie Sahlberg [Sun, 9 Oct 2011 08:10:18 +0000 (19:10 +1100)] 
Sync API: Once the sync nfs_mount() functions is finished we have to clear rpc->connect_cb.

Otherwise we get a crash once the connect_cb callback is invoked the second time.

12 years agoOnly call the "connect callback" if the callback is set to non-NULL
Ronnie Sahlberg [Sun, 9 Oct 2011 08:00:24 +0000 (19:00 +1100)] 
Only call the "connect callback" if the callback is set to non-NULL

12 years agoChange remaining "struct AUTH *" to "AUTH *"
Ronnie Sahlberg [Sun, 9 Oct 2011 04:22:05 +0000 (15:22 +1100)] 
Change remaining "struct AUTH *" to "AUTH *"

12 years agoMerge pull request #19 from Memphiz/auth2
Ronnie Sahlberg [Sat, 8 Oct 2011 23:31:20 +0000 (16:31 -0700)] 
Merge pull request #19 from Memphiz/auth2

[fix] - fix improper definition of struct AUTH from osx (caution - API ch

12 years ago[fix] - fix improper definition of struct AUTH from osx (caution - API change - not...
Memphiz [Sat, 8 Oct 2011 16:10:06 +0000 (18:10 +0200)] 
[fix] - fix improper definition of struct AUTH from osx (caution - API change - not clear if typedef is there on all plattforms...)

12 years agoBump version to 1.0.0
Ronnie Sahlberg [Tue, 4 Oct 2011 07:25:05 +0000 (18:25 +1100)] 
Bump version to 1.0.0

12 years agoFragment reassembly. Add reassembly of fragmented RPC PDUs
Ronnie Sahlberg [Tue, 4 Oct 2011 01:31:56 +0000 (12:31 +1100)] 
Fragment reassembly. Add reassembly of fragmented RPC PDUs

12 years agoAutoreconnect: autoreconnect was completely broken. Reimplement it so that it reconne...
Ronnie Sahlberg [Tue, 4 Oct 2011 00:25:10 +0000 (11:25 +1100)] 
Autoreconnect: autoreconnect was completely broken. Reimplement it so that it reconnects properly on session failure.

12 years agoREADDIRPLUS emulation: Some embedded servers do not support READDIRPLUS,
Ronnie Sahlberg [Sun, 2 Oct 2011 23:55:42 +0000 (10:55 +1100)] 
READDIRPLUS emulation: Some embedded servers do not support READDIRPLUS,
so try to trap this and emulate it with READDIR + a LOOKUP loop to get the attributes.
Since we are fully async we can do all the lookups in concurrently so it should not be that very exopensive compared to the cheaper READDIRPLUS call.

12 years agoDonr declate AUTH as a struct in libnfs.h
Ronnie Sahlberg [Mon, 19 Sep 2011 10:23:45 +0000 (20:23 +1000)] 
Donr declate AUTH as a struct in libnfs.h
make it include rpc/auth.h properly instead

12 years agoignore generate libnfs.pc
Mike Frysinger [Sun, 18 Sep 2011 01:35:38 +0000 (11:35 +1000)] 
ignore generate libnfs.pc

12 years agotirpc: use pkg-config to find details
Mike Frysinger [Sun, 18 Sep 2011 01:35:40 +0000 (11:35 +1000)] 
tirpc: use pkg-config to find details

Hardcoding paths breaks cross-compiling, so use the pkg-config files
that libtirpc already provides.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
12 years agoMerge branch 'master' of github.com:sahlberg/libnfs
Ronnie Sahlberg [Mon, 19 Sep 2011 10:15:47 +0000 (20:15 +1000)] 
Merge branch 'master' of github.com:sahlberg/libnfs

12 years agoadd maintainer e-mail to AC_INIT
Mike Frysinger [Sun, 18 Sep 2011 01:35:39 +0000 (11:35 +1000)] 
add maintainer e-mail to AC_INIT

This way `./configure --help` and PACKAGE_BUGREPORT get the right values.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
12 years agoMerge pull request #15 from OpenELEC/libnfs-pkgconfig
Ronnie Sahlberg [Fri, 16 Sep 2011 09:01:11 +0000 (02:01 -0700)] 
Merge pull request #15 from OpenELEC/libnfs-pkgconfig

add support to create a pkgconfig file 'libnfs.pc' on build, and install

12 years agoadd support to create a pkgconfig file 'libnfs.pc' on build, and install this with...
Stephan Raue [Fri, 16 Sep 2011 06:23:23 +0000 (08:23 +0200)] 
add support to create a pkgconfig file 'libnfs.pc' on build, and install this with 'make install'

Signed-off-by: Stephan Raue <stephan@openelec.tv>
12 years agoupdate README with highly non-portable capability support on some linux kernels
Ronnie Sahlberg [Tue, 13 Sep 2011 05:17:21 +0000 (15:17 +1000)] 
update README with highly non-portable capability support on some linux kernels

12 years agoMerge remote branch 'memphiz/win32'
Ronnie Sahlberg [Tue, 13 Sep 2011 05:10:45 +0000 (15:10 +1000)] 
Merge remote branch 'memphiz/win32'

12 years agoMerge remote branch 'memphiz/listservers'
Ronnie Sahlberg [Tue, 13 Sep 2011 05:06:21 +0000 (15:06 +1000)] 
Merge remote branch 'memphiz/listservers'

12 years ago[add] - list nfs servers nfsclient-sync
unknown [Mon, 12 Sep 2011 17:58:23 +0000 (19:58 +0200)] 
[add] - list nfs servers nfsclient-sync

12 years ago[win32] - completed win32 port
Memphiz [Mon, 12 Sep 2011 17:22:00 +0000 (19:22 +0200)] 
[win32] - completed win32 port

12 years ago[fix] - vs2010 project for libnfs
Memphiz [Mon, 12 Sep 2011 17:21:02 +0000 (19:21 +0200)] 
[fix] - vs2010 project for libnfs

12 years ago[add/change] - win32 wrappers
Memphiz [Mon, 12 Sep 2011 16:58:28 +0000 (18:58 +0200)] 
[add/change] - win32 wrappers

12 years ago[fix] - fixed example - don't exit on read failure during dirent (it could be a direc...
Memphiz [Mon, 12 Sep 2011 16:46:57 +0000 (18:46 +0200)] 
[fix] - fixed example - don't exit on read failure during dirent (it could be a directory - non fatal if read fails on that)
- fixed sprintf pointer

12 years ago[fix] - fixed example - don't exit on read failure during dirent (it could be a direc...
Memphiz [Mon, 12 Sep 2011 16:46:57 +0000 (18:46 +0200)] 
[fix] - fixed example - don't exit on read failure during dirent (it could be a directory - non fatal if read fails on that)
- fixed sprintf pointer

12 years agoremove debug message
Ronnie Sahlberg [Mon, 12 Sep 2011 12:20:56 +0000 (22:20 +1000)] 
remove debug message

12 years agowhen creating a socket, spin over a number of low-numbered ports
Ronnie Sahlberg [Mon, 12 Sep 2011 12:14:26 +0000 (22:14 +1000)] 
when creating a socket, spin over a number of low-numbered ports
and try to bind to a system port in case the user is root or the
binary has the CAP_NET_BIND_SERVICE capability

this removes the need to use 'insecure' on the server

12 years agoLarge-Writes: just like for large-reads, chop large writes up into the smallest
Ronnie Sahlberg [Sun, 11 Sep 2011 12:13:28 +0000 (22:13 +1000)] 
Large-Writes: just like for large-reads, chop large writes up into the smallest
of 32kb and what the server responded as the max write size and send them out in parallell to the server.

32kb is a common limitation in XDR libraries so even if the server says IT can handle writes larget than that, our XDR library might not.

12 years agoAdd a call to find the queue-length so we can see how many I/O we have in flight...
Ronnie Sahlberg [Sun, 11 Sep 2011 11:32:48 +0000 (21:32 +1000)] 
Add a call to find the queue-length so we can see how many I/O we have in flight from the application layer.

12 years agoUpdate win32 readme to point to location for oncrpc library for windows
Ronnie Sahlberg [Sat, 3 Sep 2011 06:23:44 +0000 (16:23 +1000)] 
Update win32 readme to point to location for oncrpc library for windows

12 years agoAdd Windows as a supported platform
Ronnie Sahlberg [Sat, 3 Sep 2011 05:40:13 +0000 (15:40 +1000)] 
Add Windows as a supported platform

12 years ago[fix] - fix connect for win32 - return values are inverted
unknown [Fri, 2 Sep 2011 22:58:31 +0000 (00:58 +0200)] 
[fix] - fix connect for win32 - return values are inverted

12 years ago[add] - implement set_non_blocking for socket
unknown [Fri, 2 Sep 2011 22:27:02 +0000 (00:27 +0200)] 
[add]  - implement set_non_blocking for socket

12 years ago[fix] - fix win32_inet_pton
unknown [Fri, 2 Sep 2011 22:25:39 +0000 (00:25 +0200)] 
[fix] - fix win32_inet_pton

12 years ago[WIN32] added nfsclient-sync to the solution. still manually linked with libnfs becau...
WiSo [Fri, 2 Sep 2011 22:21:40 +0000 (00:21 +0200)] 
[WIN32] added nfsclient-sync to the solution. still manually linked with libnfs because the project dependency setting somehow didn't linked it.

12 years ago[WIN32] added project file for nfsclient-sync.exe
WiSo [Fri, 2 Sep 2011 22:13:28 +0000 (00:13 +0200)] 
[WIN32] added project file for nfsclient-sync.exe

12 years ago[WIN32] disable some warnings
WiSo [Fri, 2 Sep 2011 21:32:38 +0000 (23:32 +0200)] 
[WIN32] disable some warnings

12 years ago[WIN32] added visual studio project files to libnfs (oncrpc path still hardcoded...
WiSo [Fri, 2 Sep 2011 21:24:47 +0000 (23:24 +0200)] 
[WIN32] added visual studio project files to libnfs (oncrpc path still hardcoded at several places)

12 years ago[win32] - make it compile on win32
Memphiz [Thu, 1 Sep 2011 19:35:54 +0000 (21:35 +0200)] 
[win32] - make it compile on win32

12 years agoremove old libnfs.def and update the buildscript to the new name libnfs-win32.def
Ronnie Sahlberg [Sat, 3 Sep 2011 04:53:10 +0000 (14:53 +1000)] 
remove old libnfs.def and update the buildscript to the new name libnfs-win32.def

12 years ago[add] - win32 compat stuff
Memphiz [Thu, 1 Sep 2011 19:31:56 +0000 (21:31 +0200)] 
[add] - win32 compat stuff

12 years agoRevert "Rename libnfs.def to libnfs-win32.def"
Ronnie Sahlberg [Sat, 3 Sep 2011 04:51:48 +0000 (14:51 +1000)] 
Revert "Rename libnfs.def to libnfs-win32.def"

This reverts commit a3d6cf111ed6c756b4483eb02486c046a3d0195b.

12 years agomemset() is posix, bzero() is not change bzero into memset
Ronnie Sahlberg [Sat, 3 Sep 2011 04:11:22 +0000 (14:11 +1000)] 
memset() is posix, bzero() is not  change bzero into memset

12 years agoRename libnfs.def to libnfs-win32.def
Ronnie Sahlberg [Sat, 3 Sep 2011 03:28:37 +0000 (13:28 +1000)] 
Rename libnfs.def to libnfs-win32.def

12 years agoremove some includes that dont exist on windows
Ronnie Sahlberg [Sat, 3 Sep 2011 01:30:10 +0000 (11:30 +1000)] 
remove some includes that dont exist on windows

12 years agocast to char * to avoid compiler warnings for get/setsockopt
Ronnie Sahlberg [Sat, 3 Sep 2011 01:25:50 +0000 (11:25 +1000)] 
cast to char * to avoid compiler warnings for get/setsockopt

12 years agoMerge branch 'master' into win32-3
Ronnie Sahlberg [Sat, 3 Sep 2011 01:11:36 +0000 (11:11 +1000)] 
Merge branch 'master' into win32-3

12 years agocast the pointer to char * for all calls to bzero
Ronnie Sahlberg [Sat, 3 Sep 2011 01:08:58 +0000 (11:08 +1000)] 
cast the pointer to char * for all calls to bzero

12 years agoMerge branch 'win32' into win32-3
Ronnie Sahlberg [Sat, 3 Sep 2011 00:57:42 +0000 (10:57 +1000)] 
Merge branch 'win32' into win32-3

12 years agousing READDIRPLUS3 we get some extra fields for the direentry structure for free...
Ronnie Sahlberg [Fri, 2 Sep 2011 10:45:30 +0000 (20:45 +1000)] 
using READDIRPLUS3  we get some extra fields for the direentry structure for free, such as type, mode, size, timestamps

12 years agonfs_opendir() switch to using READDIRPLUS3 instead of READDIR3 when reading directo...
Ronnie Sahlberg [Fri, 2 Sep 2011 10:27:01 +0000 (20:27 +1000)] 
nfs_opendir()   switch to using READDIRPLUS3 instead of READDIR3 when reading directories.

12 years agonfs.x: some rpcgen's can not handle multiple union choices for the same arm.
Ronnie Sahlberg [Sun, 28 Aug 2011 09:05:46 +0000 (19:05 +1000)] 
nfs.x: some rpcgen's can not handle multiple union choices for the same arm.
Make sure each choice has a dedicated arm

12 years agoadd support for opensolaris
Ronnie Sahlberg [Thu, 1 Sep 2011 09:48:42 +0000 (19:48 +1000)] 
add support for opensolaris

12 years agowin32 add build script for visual studio
Ronnie Sahlberg [Tue, 30 Aug 2011 06:03:26 +0000 (16:03 +1000)] 
win32   add build script for visual studio

12 years agoWin32: make the sympols public in a dll
Ronnie Sahlberg [Tue, 30 Aug 2011 05:56:53 +0000 (15:56 +1000)] 
Win32: make the sympols public in a dll

12 years agoWin32: add a libnfs.def file so we can build libraries/dlls
Ronnie Sahlberg [Tue, 30 Aug 2011 05:54:29 +0000 (15:54 +1000)] 
Win32: add a libnfs.def file so we can build libraries/dlls

12 years agouse vsnprintf() on all platforms, dont special case win32 for vsnprintf and all other...
Ronnie Sahlberg [Mon, 29 Aug 2011 09:59:36 +0000 (19:59 +1000)] 
use vsnprintf() on all platforms, dont special case win32 for vsnprintf and all other platforms use vasprintf

12 years agoWin32: add workaround for lack of vasprintf() and use vsnprintf() on windows on a...
Ronnie Sahlberg [Mon, 29 Aug 2011 08:00:09 +0000 (18:00 +1000)] 
Win32: add workaround for lack of vasprintf() and use vsnprintf() on windows on a fixed size buffer

12 years agoWIN32: win32 does not have poll()
Ronnie Sahlberg [Sun, 28 Aug 2011 09:48:01 +0000 (19:48 +1000)] 
WIN32:  win32 does not have poll()
add trivial replacement function

12 years agowin32 oncrpc environment needx xdr.h before including auth.h
Ronnie Sahlberg [Sun, 28 Aug 2011 09:46:12 +0000 (19:46 +1000)] 
win32 oncrpc environment needx xdr.h before including auth.h

12 years agowondows dont have vasprintf()
Ronnie Sahlberg [Sun, 28 Aug 2011 09:45:00 +0000 (19:45 +1000)] 
wondows dont have vasprintf()

disable for now  and reimplement later

12 years agoWin32: more win32 adaptations
Ronnie Sahlberg [Sun, 28 Aug 2011 09:43:33 +0000 (19:43 +1000)] 
Win32: more win32 adaptations

12 years agoVC10 dont like ';;'
Ronnie Sahlberg [Sun, 28 Aug 2011 09:30:10 +0000 (19:30 +1000)] 
VC10 dont like ';;'

12 years agoWin32: the stat structure on win32 does not have blocks or blocksize
Ronnie Sahlberg [Sun, 28 Aug 2011 09:29:08 +0000 (19:29 +1000)] 
Win32: the stat structure on win32 does not have blocks or blocksize

12 years agoreplace index/rindex with modern equivalents
Ronnie Sahlberg [Sun, 28 Aug 2011 09:27:23 +0000 (19:27 +1000)] 
replace index/rindex with modern equivalents

12 years agoreplace index/rindex with modern equivalents
Ronnie Sahlberg [Sun, 28 Aug 2011 09:27:23 +0000 (19:27 +1000)] 
replace index/rindex with modern equivalents

12 years agonfs_set_auth() is a void and does not return anything
Ronnie Sahlberg [Sun, 28 Aug 2011 09:25:20 +0000 (19:25 +1000)] 
nfs_set_auth() is a void and does not return anything

12 years agonfs_set_auth() is a void and does not return anything
Ronnie Sahlberg [Sun, 28 Aug 2011 09:25:20 +0000 (19:25 +1000)] 
nfs_set_auth() is a void and does not return anything

12 years agoWin32 changes, include files we need when compiling under win32
Ronnie Sahlberg [Sun, 28 Aug 2011 09:24:18 +0000 (19:24 +1000)] 
Win32 changes,  include files we need when compiling under win32
and some socket ops are slightly different

12 years agonfs.x: some rpcgen's can not handle multiple union choices for the same arm.
Ronnie Sahlberg [Sun, 28 Aug 2011 09:05:46 +0000 (19:05 +1000)] 
nfs.x: some rpcgen's can not handle multiple union choices for the same arm.
Make sure each choice has a dedicated arm

12 years agocallit_cb() : dont return a value from avoid function
Ronnie Sahlberg [Sun, 28 Aug 2011 08:59:13 +0000 (18:59 +1000)] 
callit_cb() : dont return a value from avoid function

12 years agocallit_cb() : dont return a value from avoid function
Ronnie Sahlberg [Sun, 28 Aug 2011 08:59:13 +0000 (18:59 +1000)] 
callit_cb() : dont return a value from avoid function

12 years agobump the configure.ac version to 1.0
Ronnie Sahlberg [Sun, 31 Jul 2011 21:32:08 +0000 (07:32 +1000)] 
bump the configure.ac version to 1.0

12 years agoAdd packaging directory and script and specfile to build RPM packages
Ronnie Sahlberg [Sun, 31 Jul 2011 08:28:09 +0000 (18:28 +1000)] 
Add packaging directory and script and specfile to build RPM packages