diff options
Diffstat (limited to 'community/cdfs')
-rw-r--r-- | community/cdfs/PKGBUILD | 14 | ||||
-rw-r--r-- | community/cdfs/cdfs-3.0.patch | 274 | ||||
-rw-r--r-- | community/cdfs/cdfs-3.2.patch | 12 | ||||
-rw-r--r-- | community/cdfs/cdfs.install | 9 |
4 files changed, 301 insertions, 8 deletions
diff --git a/community/cdfs/PKGBUILD b/community/cdfs/PKGBUILD index e231f2f09..73f977cb2 100644 --- a/community/cdfs/PKGBUILD +++ b/community/cdfs/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 58212 2011-11-08 22:41:05Z ibiru $ +# $Id: PKGBUILD 62253 2012-01-18 19:54:16Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: J. Santiago Hirschfeld <jsantiagoh@yahoo.com.ar> pkgname=cdfs pkgver=2.6.27 -pkgrel=17 +pkgrel=19 pkgdesc="File system module that 'exports' all tracks and boot images on a CD as normal files." arch=(i686 x86_64 'mips64el') url="http://www.elis.UGent.be/~ronsse/cdfs/" @@ -12,9 +12,11 @@ license=('GPL') makedepends=('linux-headers') install=cdfs.install source=("http://www.elis.UGent.be/~ronsse/cdfs/download/$pkgname-$pkgver.tar.bz2" - "cdfs-3.0.0.patch") + "cdfs-3.0.patch" + "cdfs-3.2.patch") md5sums=('ac64c014a90e3c488394832ea29605b3' - 'aba7da94a9dcbb8a93ea423cb6958fef') + 'aba7da94a9dcbb8a93ea423cb6958fef' + 'e934407b3460257a301822ffc4ab3933') build() { _kernver=`pacman -Q linux | cut -d . -f 2 | cut -f 1 -d -` @@ -22,7 +24,9 @@ build() { _kernverfull=`cat /lib/modules/extramodules-3.${_kernver}-ARCH/version` cd $srcdir/$pkgname-$pkgver - patch -p1 <$srcdir/cdfs-3.0.0.patch + patch -p1 <$srcdir/cdfs-3.0.patch + patch -p1 <$srcdir/cdfs-3.2.patch make KDIR=/lib/modules/${_kernverfull}/build install -Dm0644 cdfs.ko $pkgdir/lib/modules/extramodules-3.${_kernver}-ARCH/cdfs.ko + sed -i "s|extramodules-.*-ARCH|extramodules-3.${_kernver}-ARCH|" $startdir/cdfs.install } diff --git a/community/cdfs/cdfs-3.0.patch b/community/cdfs/cdfs-3.0.patch new file mode 100644 index 000000000..20194b848 --- /dev/null +++ b/community/cdfs/cdfs-3.0.patch @@ -0,0 +1,274 @@ +diff -wbBur cdfs-2.6.27/cddata.c cdfs-2.6.27.my/cddata.c +--- cdfs-2.6.27/cddata.c 2009-12-21 17:04:03.000000000 +0300 ++++ cdfs-2.6.27.my/cddata.c 2011-07-24 21:18:44.000000000 +0400 +@@ -83,7 +83,7 @@ + #else + .mmap = generic_file_readonly_mmap, + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) +- .sendfile = generic_file_sendfile ++// .sendfile = generic_file_sendfile + #else + .splice_read = generic_file_splice_read + #endif +diff -wbBur cdfs-2.6.27/root.c cdfs-2.6.27.my/root.c +--- cdfs-2.6.27/root.c 2009-12-21 16:38:31.000000000 +0300 ++++ cdfs-2.6.27.my/root.c 2011-07-25 13:16:59.000000000 +0400 +@@ -32,19 +30,14 @@ + * Added code to transform /proc/cdfs into a sequential synthetic file. * + *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ + +- + #include <linux/seq_file.h> +- +-#ifndef OLD_KERNEL + #include <linux/statfs.h> +-#endif ++#include <linux/sched.h> + + extern struct seq_operations cdfs_operations; + extern struct _track_info *dummy_track_p; + +-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24) + struct inode *cdfs_iget(struct super_block *sp, unsigned long ino); +-#endif + /*============================================================================* + * cdfs_open() * + * Description: * +@@ -115,15 +108,8 @@ + + /********************************************************************/ + +-#ifdef OLD_KERNEL +-static struct super_block * cdfs_mount(struct super_block *sb, void *data, int silent){ +- kdev_t dev = sb->s_dev; +- int i, j, t; +- struct cdrom_tochdr hdr; +-#else + static int cdfs_fill_super(struct super_block *sb, void *data, int silent){ + int i, t; +-#endif + struct cdrom_tocentry entry; + int no_audio=0, no_data=0; + cd * this_cd; +@@ -131,24 +117,13 @@ + + PRINT("cdfs_mount\n"); + +-#ifdef OLD_KERNEL +- MOD_INC_USE_COUNT; +- +- set_blocksize(dev, CD_FRAMESIZE); // voor bread met ide-cd +-#else + sb_set_blocksize(sb, CD_FRAMESIZE); // voor bread met ide-cd +-#endif + + sb->s_blocksize = CD_FRAMESIZE; + sb->s_blocksize_bits = 11; + + if (!(this_cd = cdfs_info(sb) = kmalloc(sizeof(cd), GFP_KERNEL))){ +-#ifdef OLD_KERNEL +- MOD_DEC_USE_COUNT; +- return NULL; +-#else + return -ENOMEM; +-#endif + } + + this_cd->mode = MODE; +@@ -160,13 +135,8 @@ + + // Initialize cache for maximum sector size + if (!(this_cd->cache = kmalloc(CD_FRAMESIZE_RAWER*CACHE_SIZE, GFP_KERNEL))) { +-#ifdef OLD_KERNEL +- MOD_DEC_USE_COUNT; +- return NULL; +-#else + kfree(cdfs_info(sb)); + return -ENOMEM; +-#endif + } + + // Cache is still invalid +@@ -183,23 +153,13 @@ + if (this_cd->toc_scsi){ + if (cdfs_toc_read_full(sb)){ + printk("TOC read failed\n"); +-#ifdef OLD_KERNEL +- MOD_DEC_USE_COUNT; +- return NULL; +-#else + goto invalid; +-#endif + } + } else { + //if (cdfs_ioctl(sb, CDROMREADTOCHDR, (unsigned long)&hdr)){ + if (cdfs_toc_read(sb)){ + printk("cdfs_toc_read failed\n"); +-#ifdef OLD_KERNEL +- MOD_DEC_USE_COUNT; +- return NULL; +-#else + goto invalid; +-#endif + } + } + +@@ -365,11 +325,7 @@ + sb->s_flags |= MS_RDONLY; + sb->s_op = &cdfs_ops; + /* always get inode status */ +-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24) + retinode=cdfs_iget(sb, 0); +-#else +- retinode=iget(sb, 0); +-#endif + if ( IS_ERR(retinode) ) + return PTR_ERR(retinode); + +@@ -379,16 +335,12 @@ + + cdfs_proc_cd = this_cd; + +-#ifdef OLD_KERNEL +- return sb; +-#else + return 0; + + invalid: + kfree(this_cd->cache); + kfree(cdfs_info(sb)); + return -EINVAL; +-#endif + } + + /************************************************************************/ +@@ -410,27 +362,12 @@ + // Remove /proc entry + cdfs_proc_cd = NULL; + kfree(cdfs_info(sb)); +- +-#ifdef OLD_KERNEL +- MOD_DEC_USE_COUNT; +-#endif +- + } + + /************************************************************************/ + +-#ifdef OLD_KERNEL +-static int cdfs_statfs(struct super_block *sb, struct statfs *buf) { +- cd * this_cd = cdfs_info(sb); +-#else +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + static int cdfs_statfs(struct dentry *d, struct kstatfs *buf) { + cd * this_cd = cdfs_info(d->d_sb); +-#else +-static int cdfs_statfs(struct super_block *sb, struct kstatfs *buf) { +- cd * this_cd = cdfs_info(sb); +-#endif +-#endif + PRINT("rmfs_statfs\n"); + + buf->f_type = CDFS_MAGIC; +@@ -460,11 +397,7 @@ + + /************************************************************************/ + +-#ifdef OLD_KERNEL +-static struct dentry * cdfs_lookup(struct inode *dir, struct dentry *dentry){ +-#else + static struct dentry * cdfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd){ +-#endif + struct inode * inode; + int i; + cd * this_cd = cdfs_info(dir->i_sb); +@@ -480,15 +413,9 @@ + /* Use goto and read inode with iget()/cdfs_iget() */ + /* Thanks to David Howells for patch and Master class in his mail */ + found: +-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24) + inode = cdfs_iget(dir->i_sb, i); + if (IS_ERR(inode)) + return ERR_CAST(inode); +-#else +- inode = iget(dir->i_sb, i); +- if (!inode) +- return ERR_PTR(-ENOMEM); +-#endif + d_add(dentry, inode); + return NULL; + } +@@ -529,12 +456,8 @@ + i->i_fop = &cdfs_dir_operations; + } else { /* file */ + i->i_size = this_cd->track[i->i_ino].size; +-#ifdef OLD_KERNEL +- i->i_mtime = i->i_atime = i->i_ctime = this_cd->track[i->i_ino].time; +-#else + i->i_mtime.tv_sec = i->i_atime.tv_sec = i->i_ctime.tv_sec = this_cd->track[i->i_ino].time; + i->i_mtime.tv_nsec = i->i_atime.tv_nsec = i->i_ctime.tv_nsec = 0; +-#endif + i->i_mode = this_cd->mode; + if ((this_cd->track[i->i_ino].type==DATA) && this_cd->track[i->i_ino].iso_size) { + i->i_fop = &cdfs_cddata_file_operations; +@@ -587,33 +510,21 @@ + /******************************************************************/ + + static struct super_operations cdfs_ops = { +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) +- .read_inode = cdfs_read_inode, +-#endif + .put_super = cdfs_umount, + .statfs = cdfs_statfs + }; + +-#ifdef OLD_KERNEL +-static DECLARE_FSTYPE_DEV(cdfs_fs_type, FSNAME, cdfs_mount); +-#else +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) +-static int cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) { +- return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super, mnt); +-#else +-static struct super_block *cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) { +- return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super); +-#endif +-} ++//static int cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) { ++// return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super, mnt); ++//} + + static struct file_system_type cdfs_fs_type = { + .owner = THIS_MODULE, + .name = "cdfs", +- .get_sb = cdfs_get_sb, ++// .get_sb = cdfs_get_sb, + .kill_sb = kill_block_super, + .fs_flags = FS_REQUIRES_DEV + }; +-#endif + + /******************************************************/ + +@@ -621,10 +532,6 @@ + MODULE_DESCRIPTION("CDfs: a CD filesystem"); + MODULE_LICENSE("GPL"); + +-#ifdef OLD_KERNEL +-EXPORT_NO_SYMBOLS; +-#endif +- + /******************************************************************/ + + static int __init cdfs_init(void) { +@@ -676,11 +583,7 @@ + + if (!options) return; + +-#ifdef OLD_KERNEL +- for (this_char = strtok(options,","); this_char; this_char = strtok(NULL,",")) { +-#else + while ((this_char = strsep(&options,",")) != NULL) { +-#endif + + if (!strcmp(this_char,"single")) + this_cd->single=TRUE; diff --git a/community/cdfs/cdfs-3.2.patch b/community/cdfs/cdfs-3.2.patch new file mode 100644 index 000000000..d3300bdbc --- /dev/null +++ b/community/cdfs/cdfs-3.2.patch @@ -0,0 +1,12 @@ +diff -wbBur cdfs-2.6.27/root.c cdfs-2.6.27.my/root.c +--- cdfs-2.6.27/root.c 2009-12-21 16:38:31.000000000 +0300 ++++ cdfs-2.6.27.my/root.c 2012-01-18 11:23:03.000000000 +0400 +@@ -517,7 +517,7 @@ + + i->i_uid = this_cd->uid; + i->i_gid = this_cd->gid; +- i->i_nlink = 1; ++ i->__i_nlink = 1; + i->i_op = &cdfs_inode_operations; + i->i_fop = NULL; + i->i_data.a_ops = NULL; diff --git a/community/cdfs/cdfs.install b/community/cdfs/cdfs.install index 3693d60ed..d24929157 100644 --- a/community/cdfs/cdfs.install +++ b/community/cdfs/cdfs.install @@ -1,11 +1,14 @@ post_install() { - /sbin/depmod -a + EXTRAMODULES='extramodules-3.2-ARCH' + depmod $(cat /lib/modules/$EXTRAMODULES/version) } post_upgrade() { - /sbin/depmod -a + EXTRAMODULES='extramodules-3.2-ARCH' + depmod $(cat /lib/modules/$EXTRAMODULES/version) } post_remove() { - /sbin/depmod -a + EXTRAMODULES='extramodules-3.2-ARCH' + depmod $(cat /lib/modules/$EXTRAMODULES/version) } |