Initial Version thanks to Matthias R. <spinebuster@gmx.net> and Vaclav Slavik <vaclav...
authorStefan Schweizer <genstef@gentoo.org>
Sun, 14 Nov 2004 15:17:07 +0000 (15:17 +0000)
committerStefan Schweizer <genstef@gentoo.org>
Sun, 14 Nov 2004 15:17:07 +0000 (15:17 +0000)
sys-fs/lufis/ChangeLog [new file with mode: 0644]
sys-fs/lufis/Manifest [new file with mode: 0644]
sys-fs/lufis/files/digest-lufis-0.2 [new file with mode: 0644]
sys-fs/lufis/files/lufis-0.2-lufs.patch [new file with mode: 0644]
sys-fs/lufis/lufis-0.2.ebuild [new file with mode: 0644]
sys-fs/lufis/metadata.xml [new file with mode: 0644]

diff --git a/sys-fs/lufis/ChangeLog b/sys-fs/lufis/ChangeLog
new file mode 100644 (file)
index 0000000..2074adb
--- /dev/null
@@ -0,0 +1,11 @@
+# ChangeLog for sys-fs/lufis
+# Copyright 1999-2004 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/lufis/ChangeLog,v 1.1 2004/11/14 15:17:07 genstef Exp $
+
+*lufis-0.2 (14 Nov 2004)
+
+  14 Nov 2004; Stefan Schweizer <genstef@gentoo.org> +metadata.xml,
+  +files/lufis-0.2-lufs.patch, +lufis-0.2.ebuild:
+  Initial Version thanks to Matthias R. <spinebuster@gmx.net> and Vaclav
+  Slavik <vaclav.slavik@matfyz.cz>
+
diff --git a/sys-fs/lufis/Manifest b/sys-fs/lufis/Manifest
new file mode 100644 (file)
index 0000000..a9df26f
--- /dev/null
@@ -0,0 +1,5 @@
+MD5 e6dcd3f6d0cc167c0f9a675bbffc871b lufis-0.2.ebuild 729
+MD5 8209a97d76225cd2fab6d1765700ebd4 ChangeLog 451
+MD5 6e89ba8198764bfd079a0cfa18dca593 metadata.xml 264
+MD5 72aac7b0ee66b5856972dede7083743b files/lufis-0.2-lufs.patch 6874
+MD5 140fd91ee9a56aef00af8066becabbc8 files/digest-lufis-0.2 60
diff --git a/sys-fs/lufis/files/digest-lufis-0.2 b/sys-fs/lufis/files/digest-lufis-0.2
new file mode 100644 (file)
index 0000000..1ecac6c
--- /dev/null
@@ -0,0 +1 @@
+MD5 3324523d2e9a10e24c0c5d7ddf76497b lufis-0.2.tar.gz 17072
diff --git a/sys-fs/lufis/files/lufis-0.2-lufs.patch b/sys-fs/lufis/files/lufis-0.2-lufs.patch
new file mode 100644 (file)
index 0000000..00edacb
--- /dev/null
@@ -0,0 +1,250 @@
+This patch makes it possible to compile lufis without the lufs package.
+It has been merged to the lufis cvs tree.
+We would like to remove lufs soon in favour of the newer system fuse.
+
+diff -Naur lufis-0.2.orig/lufs/fs.h lufis-0.2/lufs/fs.h
+--- lufis-0.2.orig/lufs/fs.h   1970-01-01 01:00:00.000000000 +0100
++++ lufis-0.2/lufs/fs.h        2004-11-12 21:07:45.714978800 +0100
+@@ -0,0 +1,112 @@
++/*
++ * lufs.h
++ * Copyright (C) 2002 Florin Malita <mali@go.ro>
++ *
++ * This file is part of LUFS, a free userspace filesystem implementation.
++ * See http://lufs.sourceforge.net/ for updates.
++ *
++ * LUFS is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * LUFS is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
++ */
++
++#ifndef _LUFS_FS_H_
++#define _LUFS_FS_H_
++
++#include <sys/types.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++struct dir_cache;
++struct directory;
++struct lufs_fattr;
++struct file_system;
++struct list_head;
++struct dir_cache;
++
++#define MAX_LEN               64
++
++struct credentials{
++    char      user[MAX_LEN];
++    char      group[MAX_LEN];
++    uid_t     uid;
++    gid_t     gid;
++};
++
++
++struct directory* lu_cache_mkdir(char*);
++int lu_cache_add2dir(struct directory*, char*, char*, struct lufs_fattr*);
++int lu_cache_lookup(struct dir_cache*, char*, char*, struct lufs_fattr*, char*, int);
++void lu_cache_add_dir(struct dir_cache*, struct directory*);
++void lu_cache_killdir(struct directory*);
++
++int lu_check_to(int, int, int);
++int lu_atomic_read(int, char*, int, int);
++int lu_atomic_write(int, char*, int, int);
++
++int lu_opt_loadcfg(struct list_head*, char*);
++int lu_opt_parse(struct list_head*, char*, char*);
++int lu_opt_getint(struct list_head*, char*, char*, long int*, int);
++const char* lu_opt_getchar(struct list_head*, char*, char*);
++
++
++#ifdef __cplusplus
++} /* end of extern "C" { */
++#endif
++
++#ifdef TRACE
++#undef TRACE
++#endif
++#ifdef WARN
++#undef WARN
++#endif
++#ifdef ERROR
++#undef ERROR
++#endif
++
++#ifdef __cplusplus
++
++#include <iostream>
++
++#ifdef DEBUG
++#define TRACE(x)      cout<<std::hex<<"["<<getpid()<<"]("<<__func__<<")"<<x<<"\n"
++#define WARN(x)               cerr<<std::hex<<"["<<getpid()<<"]("<<__func__<<")"<<x<<"\n"
++#define ERROR(x)      cerr<<std::hex<<"["<<getpid()<<"]("<<__func__<<")"<<x<<"\n"
++#else
++#define TRACE(x...)   do{}while(0)
++#define WARN(x...)    do{}while(0)
++#define ERROR(x...)   cerr<<x<<"\n"
++#endif
++
++#else
++
++#include <stdio.h>
++
++#ifdef DEBUG
++#define TRACE(x...)   do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0)
++#define WARN(x...)    do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0)
++#define ERROR(x...)   do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0)
++#else
++#define TRACE(x...)   do{}while(0)
++#define WARN(x...)    do{}while(0)
++#define ERROR(x...)   do{fprintf(stderr, x); fprintf(stderr, "\n");}while(0)
++#endif
++
++#endif
++
++
++
++#endif
++
+diff -Naur lufis-0.2.orig/lufs/proto.h lufis-0.2/lufs/proto.h
+--- lufis-0.2.orig/lufs/proto.h        1970-01-01 01:00:00.000000000 +0100
++++ lufis-0.2/lufs/proto.h     2004-11-12 21:07:45.715978648 +0100
+@@ -0,0 +1,116 @@
++/*
++ * proto.h
++ * Copyright (C) 2002 Florin Malita <mali@go.ro>
++ *
++ * This file is part of LUFS, a free userspace filesystem implementation.
++ * See http://lufs.sourceforge.net/ for updates.
++ *
++ * LUFS is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * LUFS is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
++ */
++
++#ifndef _LU_PROTO_H_
++#define _LU_PROTO_H_
++
++#define LU_MAXDATA    4096
++
++#define PVERSION      0x02
++
++#define PTYPE_OK      0x00
++#define PTYPE_MOUNT   0x01
++#define PTYPE_READ    0x02
++#define PTYPE_WRITE   0x03
++#define PTYPE_READDIR 0x04
++#define PTYPE_STAT    0x05
++#define PTYPE_UMOUNT  0x06
++#define PTYPE_SETATTR 0x07
++#define PTYPE_MKDIR   0x08
++#define PTYPE_RMDIR   0x09
++#define PTYPE_CREATE  0x0A
++#define PTYPE_UNLINK  0x0B
++#define PTYPE_RENAME  0x0C
++#define PTYPE_OPEN    0x0D
++#define PTYPE_RELEASE 0x0E
++#define PTYPE_READLINK        0x0F
++#define PTYPE_LINK    0x10
++#define PTYPE_SYMLINK 0x11
++#define PTYPE_STATFS  0x12
++
++#define PTYPE_MAX     0x12
++
++
++#define PTYPE_ERROR   0x100
++
++#define PERROR(x)     (-(x & (PTYPE_ERROR - 1)) - 1)
++#define PIS_ERROR(x)  (x & PTYPE_ERROR)
++
++struct lu_msg {
++    unsigned short    msg_version;
++    unsigned short    msg_type;
++    unsigned short    msg_datalen;
++    unsigned short    msg_pid;
++};
++
++
++struct lufs_fattr{
++    unsigned long     f_ino;
++    unsigned long     f_mode;
++    unsigned long     f_nlink;
++    unsigned long     f_uid;
++    unsigned long     f_gid;
++    long long         f_size;
++    unsigned long     f_atime;
++    unsigned long     f_mtime;
++    unsigned long     f_ctime;
++    unsigned long     f_blksize;
++    unsigned long     f_blocks;
++};
++
++
++struct lufs_sbattr{   /* struct statfs64 */
++    unsigned long long sb_bytes;
++    unsigned long long sb_bytes_free;
++    unsigned long long sb_bytes_available;
++    unsigned long long sb_files;
++    unsigned long long sb_ffree;
++};
++
++
++struct lufs_req_readdir{
++    unsigned short    offset;
++    char              dirname[0];
++};
++
++struct lufs_req_mkdir{
++    int               mode;
++    char      dirname[0];
++};
++
++struct lufs_req_rw{
++    long long         offset;
++    unsigned long     count;
++    char              name[0];
++};
++
++struct lufs_req_open{
++    unsigned  mode;
++    char      name[0];
++};
++
++struct lufs_req_setattr{
++    struct lufs_fattr         fattr;
++    char              name[0];
++};
++
++#endif
+diff -Naur lufis-0.2.orig/Makefile lufis-0.2/Makefile
+--- lufis-0.2.orig/Makefile    2004-11-12 21:07:36.138434656 +0100
++++ lufis-0.2/Makefile 2004-11-12 21:10:04.342904152 +0100
+@@ -1,5 +1,5 @@
+ CC = gcc
+-CFLAGS = -Wall -W -g
++CFLAGS += -Wall -W -g -I.
+ LDLIBS = -lfuse -lpthread -ldl -rdynamic
+ CPPFLAGS := -D_FILE_OFFSET_BITS=64
+ #CPPFLAGS += -DDEBUG
diff --git a/sys-fs/lufis/lufis-0.2.ebuild b/sys-fs/lufis/lufis-0.2.ebuild
new file mode 100644 (file)
index 0000000..b2d679a
--- /dev/null
@@ -0,0 +1,34 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/lufis/lufis-0.2.ebuild,v 1.1 2004/11/14 15:17:07 genstef Exp $
+
+inherit eutils
+
+DESCRIPTION="Wrapper to use lufs modules with fuse kernel support"
+SRC_URI="mirror://sourceforge/avf/${P}.tar.gz"
+HOMEPAGE="http://avf.sourceforge.net/"
+LICENSE="GPL-2"
+DEPEND="!sys-fs/lufs
+               >=sys-fs/fuse-1.3"
+KEYWORDS="~x86"
+SLOT="0"
+IUSE=""
+
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+       epatch ${FILESDIR}/${P}-lufs.patch
+}
+
+src_compile () {
+       emake || die "emake failed"
+}
+
+src_install () {
+       dobin lufis
+       dodoc README COPYING ChangeLog
+
+       insinto /usr/include/lufs/
+       doins lufs/fs.h
+       doins lufs/proto.h
+}
diff --git a/sys-fs/lufis/metadata.xml b/sys-fs/lufis/metadata.xml
new file mode 100644 (file)
index 0000000..c8f81b3
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <herd>kernel</herd>
+  <maintainer>
+    <email>genstef@gentoo.org</email>
+    <name>Stefan Schweizer</name>
+  </maintainer>
+</pkgmetadata>