(forw) [[email protected]: ruby-quota resurrection?]

E

Emiel van de Laar

--jI8keyz6grp/JLjh
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

This mail was intended for the original author of ruby-quota; Takaaki
Tateishi <[email protected]>. However my mail bounced at this address
and so I'll try ruby-talk.

----- Forwarded message from Emiel van de Laar <[email protected]> -----

Date: Mon, 28 Jun 2004 20:42:46 +0200
From: Emiel van de Laar <[email protected]>
To: (e-mail address removed)
User-Agent: Mutt/1.3.28i
Subject: ruby-quota resurrection?

Hi,

I've been writing scripts to manage our quotas on Linux. Instead of
parsing 'repquota' I went looking for something beter. ruby-quota! Yeah!
However it appears to not have been update in a while. I can't even get
it compiled on my Linux 2.4 or 2.6 systems w/ Ruby 1.8.

I've never written a Ruby extension, but have done some investigation.
It appears that quota.h isn't being included on either 2.4 or 2.6 such
that "struct dqblk" is undefined. linux/quota.h appears to have changed
a lot. Could you maybe look into this and get ruby-quota running again
with ruby 1.8.x? If you don't have the time right now, perhaps a couple
of hints. :)

BTW: The version number in quota.c doesn't match the packaged version
number.

My setup.
Debian(unstable) / Linux 2.6.7
Ruby ruby 1.8.2 (2004-06-19) [i386-linux]

Thanks in advance.

Cheers,

Emiel
--=20
Emiel van de Laar
PGP pubkey: %finger (e-mail address removed)

----- End forwarded message -----

--=20
Emiel van de Laar
PGP pubkey: %finger (e-mail address removed)

--jI8keyz6grp/JLjh
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="make.out"

gcc -fPIC -Wall -g -O2 -fPIC -I. -I/usr/lib/ruby/1.8/i386-linux -I/usr/lib/ruby/1.8/i386-linux -I. -DHAVE_LINUX_QUOTA_H -DHAVE_LINUX_TYPES_H -DHAVE_SYS_QUOTA_H -DHAVE_SYS_TYPES_H -c quota.c
quota.c:62: parse error before "qid_t"
quota.c:62: warning: no semicolon at end of struct or union
quota.c:63: warning: type defaults to `int' in declaration of `q_uid_data'
quota.c:63: warning: data definition has no type or storage class
quota.c:66: parse error before "rb_quota_uid"
quota.c:67: warning: return type defaults to `int'
quota.c: In function `rb_quota_uid':
quota.c:68: parse error before ')' token
quota.c:69: warning: control reaches end of non-void function
quota.c: At top level:
quota.c:72: parse error before '*' token
quota.c: In function `rb_quota_uid_free':
quota.c:74: `data' undeclared (first use in this function)
quota.c:74: (Each undeclared identifier is reported only once
quota.c:74: for each function it appears in.)
quota.c: At top level:
quota.c:78: parse error before "qid_t"
quota.c: In function `rb_quota_uid_new':
quota.c:80: `data' undeclared (first use in this function)
quota.c:83: parse error before ')' token
quota.c:83: `__s' undeclared (first use in this function)
quota.c:80: warning: statement with no effect
quota.c:83: warning: control reaches end of non-void function
quota.c: At top level:
quota.c:83: parse error before ')' token
quota.c:83: `__s' undeclared here (not in a function)
quota.c:83: parse error before "switch"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: conflicting types for `__u'
quota.c:83: previous declaration of `__u'
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before '->' token
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__u'
quota.c:83: redefinition of `__u'
quota.c:83: `__u' previously defined here
quota.c:83: warning: initialization makes integer from pointer without a cast
quota.c:83: initializer element is not constant
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before "case"
quota.c:83: warning: type defaults to `int' in declaration of `__s'
quota.c:83: `__s' used prior to declaration
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before '}' token
quota.c:83: parse error before '\x0'
quota.c:83: warning: type defaults to `int' in declaration of `__s'
quota.c:83: warning: data definition has no type or storage class
quota.c:83: parse error before '}' token
quota.c: In function `rb_quota_uid_to_i':
quota.c:111: parse error before ')' token
quota.c: At top level:
quota.c:115: parse error before "qid_t"
quota.c: In function `get_uid':
quota.c:117: `vuid' undeclared (first use in this function)
quota.c:118: `uid' undeclared (first use in this function)
quota.c:119: `is_gid' undeclared (first use in this function)
quota.c: In function `rb_quotactl':
quota.c:144: `qid_t' undeclared (first use in this function)
quota.c:144: parse error before "uid"
quota.c:146: `uid' undeclared (first use in this function)
quota.c:149: parse error before "uid"
quota.c:152: parse error before "uid"
quota.c:154: warning: control reaches end of non-void function
quota.c: At top level:
quota.c:229: warning: `struct disk_dqblk' declared inside parameter list
quota.c:229: warning: its scope is only this definition or declaration, which is probably not what you want.
quota.c: In function `rb_diskquota_get':
quota.c:236: dereferencing pointer to incomplete type
quota.c:237: dereferencing pointer to incomplete type
quota.c:241: dereferencing pointer to incomplete type
quota.c:242: dereferencing pointer to incomplete type
quota.c:243: dereferencing pointer to incomplete type
quota.c:244: dereferencing pointer to incomplete type
quota.c:245: dereferencing pointer to incomplete type
quota.c: At top level:
quota.c:269: warning: `struct disk_dqblk' declared inside parameter list
quota.c: In function `rb_diskquota_new':
quota.c:275: dereferencing pointer to incomplete type
quota.c:276: dereferencing pointer to incomplete type
quota.c:278: dereferencing pointer to incomplete type
quota.c:282: dereferencing pointer to incomplete type
quota.c:283: dereferencing pointer to incomplete type
quota.c:284: dereferencing pointer to incomplete type
quota.c:285: dereferencing pointer to incomplete type
quota.c:286: dereferencing pointer to incomplete type
quota.c: In function `rb_quota_getquota':
quota.c:318: storage size of `c_dqb' isn't known
quota.c:318: warning: unused variable `c_dqb'
quota.c: In function `rb_quota_setquota':
quota.c:359: storage size of `c_dqb' isn't known
quota.c:359: warning: unused variable `c_dqb'
quota.c: In function `rb_quota_setqlim':
quota.c:375: storage size of `c_dqb' isn't known
quota.c:375: warning: unused variable `c_dqb'
quota.c: At top level:
quota.c:73: warning: `rb_quota_uid_free' defined but not used
make: *** [quota.o] Error 1

--jI8keyz6grp/JLjh--
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top