Bug 22239 - new ebuild: geneweb-4.10.ebuild
|
Bug#:
22239
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: enhancement
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: maintainer-wanted@gentoo.org
|
Reported By: davidgrant@gmail.com
|
|
Component: Ebuilds
|
|
|
URL:
|
|
Summary: new ebuild: geneweb-4.10.ebuild
|
|
Keywords: EBUILD, Inclusion
|
|
Status Whiteboard:
|
|
Opened: 2003-06-04 19:22 0000
|
I'm going to be submitting this in the next few days, as soon as I get the
ebuild finalized. I just wanted to post here to let people know, just in case
someone else decides to make one.
Created an attachment (id=12858) [details]
geneweb-4.09.ebuild
geneweb-4.09.ebuild
Geneweb is a family tree server. It has its own http server and can be used to
create/edit or just view a web page. A password can be set to allow the
database to be editable over the web. It has export and import support for
GEDCOM family tree databases.
I'll be making a few changes to this in the next week. So don't make any
changes or submit any patches without first checking with me. I may have
already fixed it.
Created an attachment (id=12859) [details]
geneweb-4.09.ebuild
geneweb-4.09.ebuild
Geneweb is a family tree server. It has its own http server and can be used to
create/edit or just view a web page. A password can be set to allow the
database to be editable over the web. It has export and import support for
GEDCOM family tree databases.
I'll be making a few changes to this in the next week. So don't make any
changes or submit any patches without first checking with me. I may have
already fixed it.
Can someone stick this ebuild into portage? It has the ~x86 flag, and in my
opinion works better than some of the other ~x86 ebuilds I've tried. Once it
gets into portage I think some people might notice it, and then hopefully I/we
can get some bugs reported about this ebuild.
I don't understand why this hasn't been added to portage yet? I wish I had CVS
access to do it myself, but I don't. If this package doesn't move to the tree
then it will never be tested and will never be stable. Thank you.
I'll take a look at this ebuild as soon as I have some spare time, but it's
somewhat complicated so it'll take some time.
OK, I've taken a look at the ebuild and here are some suggestions to make it
even better. :)
1. Is the src_unpack() function really necessary? It seems to work like the
base.eclass function without all the patching functionality.
2. Users and groups should be added by using the enewuser() and enewgroup()
functions provided by the eutils eclass. Removing them is as far as I know not
necessary (so you can remove the pkg_postrm() function).
3. It's better to use "sh ${FILESDIR}/geneweb.conf.d" rather than ".
${FILESDIR}/geneweb.conf.d" because it makes sure the right shell is used.
4. It'd be more flexible/less error prone to use "mkdir -p" to create
${GENEWEBDB}.
Thanks a lot for the help. Just one question, about removing the user/group in
postrm. Personally I like when packages remove as much as possible when they
are removed (except data and anything that the user might have changed).
Groups and users are one thing that I don't like lingering around. Is there
anything standard about doing this or not? Either gentoo policy, or "standard
linux" policy?
There'll soon be a new method for adding and removing users/groups, but since
it's not completely implemented yet I'd recommend to print a message via einfo
so the user gets informed that he may remove the entries (that's because most
other ebuilds like OpenSSH, Privoxy and all games using the games eclass don't
remove the users/groups they create).
Please submit your fixed ebuild :)
Created an attachment (id=13782) [details]
Updated geneweb ebuild
Only a couple changes really, the mkdir -p thing, and I no longer remove the
groups in post_rm().
1) I tried using "sh" instead of "." to source the environment variables and it
doesn't seem to work?
2) I didn't have much success with the enewgroup and enewuser commands. They
are commented out in this ebuild. If you know of a syntactical error let me
know. Otherwise I'll just wait until a new system is in place and replace it
with that.
I just thought of something... Should I stop and running geneweb processes in
the
pre_rm() function?
*** Bug 12420 has been marked as a duplicate of this bug. ***
Hi,
The web-apps herd is currently working on delivering some important changes
to the way that web-based applications are installed and managed on Gentoo
Linux. Until this work is complete, we're not commiting ebuilds for new
packages.
I've marked this bug as 'LATER'. As soon as we are able to, we will come
back to this bug and help you convert your ebuild to our new approach.
Many thanks for your patience,
Stu
One comment...this is not really a web-app... The program runs it's own
httpd server AFAIK, and on it's own port (default is 8319). It has not depend
on, nor does it have any association with apache, or any other free or commerical
"web" server. Thus it isn't really a "web"-app, IMHO, like php-nuke, phpgroupware,
etc... So it wouldn't rely on any new Gentoo eclass or system for these
apps.
Unless I am misunderstanding what the purpose of thes new "important changes
to the way that web-based applications are installed and managed on Gentoo",
then this ebuild is stable IMHO and can be committed to CVS now.
This ebuild is ready to be submitted. See my last comment.
seemant, are you sure this is a science related package? I mean I guess if
there is no other category to put it in, then I guess it is. I would prefer
app-misc or net-misc or something like that.
I have a bug in your ebuild.
If you try to build it it will fall over when it tries to change the permisions on the logfile. I suspect it was already created when you wrote that part of your ebuild.
My solution was to add this at around line 146 (just before it tries to do the chmod)
if [ ! -x $LOGFILE ]; then
einfo "Creating $LOGFILE ..."
touch $LOGFILE
fi
Also, in the info two of the variables are blank and produce this output
* You may safely remove the user and
* the group . See userdel and groupdel.
This is in the pkg_postrm function, perhaps these variables are not available there?
Can I ask why you are removing them when they are used for file permissions?
I would also change the last bit of einfo to include some info on starting geneweb, or start it as part of the ebuild.
Hope that helps you ...
Created an attachment (id=27056) [details]
Patch for ebuild
This patch replaces my last one, it creates the logfile, but it also creates
the files in the geneweb DB directory needed to run gwsetup, it also copies
gwsetup into the bin directory.
This should go in the new www-server category
If someone makes me developer, I could help maintain this package.
Please obsolete the patch, it is included in the geneweb-4.09-r1.ebuild I just
uploaded.
I renamed the geneweb-4.09-r1.ebuild to geneweb-4.10.ebuild for the "new"
version of geneweb. Everything works fine!
I haven't tested this in a while. I just set up my new server, I will probably
install geneweb from scratch on that machine, create a new geneweb database
(just as a test). Then delete it, and import my old geneweb database. Then the
next task it to test 4.10.
Created an attachment (id=77321) [details]
geneweb-4.10.ebuild
Tested and works.
To export your old database and try this one from scratch:
mv /home/geneweb /home/geneweb-backup
cd /home/geneweb-backup
gwu <dbname> -o <dbname>.gw
emerge -u geneweb
cp /home/geneweb-backup/<dbname>.gw /home/geneweb/
cd /home/geneweb
gwc <dbname>.gw -o <dbname>
cp /home/geneweb-backup/<dbname>.gwf .
BTW, it's just like dumping a mysql database and upgrading to a new version of
mysql
(From update of attachment 77321 [details])
The pkg_postinst() is rather broken.
- That DB setup should be moved to pkg_config(), most of it should be however
done in src_install() anyway.
- Don't use adduser etc. in ebuilds. That's what enewuser/enewgroup from
eutils.eclass is for!
- There's doconfd/doinitd for installing init scripts/conf.d files.
(From update of attachment 77321 [details])
The pkg_postinst() is rather broken.
- That DB setup should be moved to pkg_config(), most of it should be however
done in src_install() anyway.
- Don't use adduser etc. in ebuilds. That's what enewuser/enewgroup from
eutils.eclass is for!
- There's doconfd/doinitd for installing init scripts/conf.d files.
I've been meaning to submit this to sunrise. Thanks for the tips, I'll
incorporate those and then submit to the sunrise guys for review. I can't
believe that enewuser isn't being used yet...that was suggested to me a long
time ago. Actually I have enewuser in there, but it is commented out. Maybe it
didn't work properly at the time.
I've made a ton of changes to the ebuild. One of the remaining issues is this
executable stacks QA error.
QA Notice: the following files contain executable stacks
Files with executable stacks will not work properly (or at all!)
on some architectures/operating systems. A bug should be filed
at http://bugs.gentoo.org/ to make sure the file is fixed.
For more information, see http://hardened.gentoo.org/gnu-stack.xml
Please include this file in your report:
/var/tmp/portage/geneweb-4.10/temp/scanelf-execstack.log
"RWX --- --- usr/bin/gwc"
"RWX --- --- usr/bin/gwd"
"RWX --- --- usr/bin/gwu"
"RWX --- --- usr/bin/consang"
"RWX --- --- usr/bin/ged2gwb"
"RWX --- --- usr/bin/gwb2ged"
"RWX --- --- usr/bin/gwsetup"
I've tried changing the Makefile and using -ccopt --noexecstack to no avail...
I've also emailed the upstream author as well.
I have added it to portage. Thanks for input.
ps
I'm taking maintainership just because I use it. If someone is interested or
there is an herd to which it should belongs, feel free to add it