Skip to Content.
Sympa Menu

devel - Re: [sympa-developpers] Layout of sources

Subject: Developers of Sympa

List archive

Chronological Thread  
  • From: IKEDA Soji <address@concealed>
  • To: address@concealed
  • Subject: Re: [sympa-developpers] Layout of sources
  • Date: Sat, 11 Jan 2014 00:55:29 +0900

Hi,

On Thu, 02 Jan 2014 18:04:27 +0100
Guillaume Rousse <address@concealed> wrote:

> Le 11/11/2013 07:47, IKEDA Soji a écrit :
> > Hi all,
> >
> > I compiled David's advice and subsequent comments into single tree.
> >
> > * Paths indicated by strike-through are proposed/suggested to be
> > removed or moved to other place. These changes are not necessarily
> > agreed by now.
> > * See notes at bottom for details.
> > (I added more notes: [0.1], [1], [5].)
> >
> > TOP
> > |-- several files to be read: AUTHORS, COPYING, ChangeLog, INSTALL,
> > NEWS, README, README.charset, sympa.generic, sympa.in^*[note 0 SI]
> > <#note_0_SI>* , <#note_0_SI>^** logrotate <#note_0.1_SI>^*[note 0.1 SI]
> > <#note_0.1_SI>* , README.postfix <#note_0.1_SI>*^[note 1 SI] <#note_1_SI>
> > *
> > |-- some scripts: important_changes.pl, sympa.spec.in, tap-driver.sh
> > |-- *doc/*: doc
> > |-- *ext/*: external modules
> > |-- *t**/*: tests
> > |-- *po/*: localization
> > | |-- *user_interface**/***->*sympa**/*: uesr interface
> > localization.*^[note 2 SI] <#note_2_SI> *
> > | `-- *web_help**/*: web help localization
> > |-- *default**/* -> *default_src/*: configuration and templates defaults
> > | |-- create_list_templates/
> > | |-- families/^*[note 3 DV] <#note_3_DV>*
> > | |-- global_task_models/
> > | |-- list_task_models/
> > | |-- scenari/
> > | |-- *templates/*: mail templates
> > | | |-- *mail/*: mail templates
> > | | `-- *web/*: web templates
> > | |-- auth.conf
> > | |-- ca-bundle.crt
> > | |-- charset.conf
> > | |-- crawlers_detection.conf
> > | |-- create_list.conf
> > | |-- edit_list.conf
> > | |-- ldap_alias_entry.tt2
> > | |-- ldap_alias_manager.conf
> > | |-- list_aliases.tt2.in
> > | |-- mime.types
> > | |-- mhonarc-ressources.tt2
> > | |-- nrcpt_by_domain.conf
> > | |-- sympa.wsdl
> > | `-- topics.conf
> > |-- *www**/*: static files needed for the web
> > | |-- Makefile.am
> > | |-- icons*/*
> > | `-- js*/*
> > |-- *samples**/*: static files needed for the web
> > | |-- *families**/*
> > | `-- sampleClient.php
> > `-- *src**/*: source code. ^*[note 4 SI] <#note_4_SI>*
> > |-- README.postfix ^*[note 1 SI] <#note_1_SI>*
> > |-- *script**/*: ponctual usage scripts
> > | |-- arc2webarc.pl.in
> > | |-- arcrepair.pl
> > | |-- create_db.Oracle
> > | |-- create_db.Pg
> > | |-- create_db.SQLite
> > | |-- create_db.Sybase
> > | |-- create_db.mysql
> > | |-- crypt_passwd.pl.in
> > | |-- find_missing_messages.pl
> > | |-- init_comment.pl.in
> > | |-- ldap_alias_manager.pl.in ^*[note 7 SI] <#note_7_SI>*
> > | |-- logrotate ^*[note 0.1 SI] <#note_0.1_SI>*
> > | |-- mod2html.pl.in
> > | |-- mysql_alias_manager.pl.in ^*[note 7 SI] <#note_7_SI>*
> > | |-- p12topem.pl.in
> > | |-- sympa.generic ^*[note 0 SI] <#note_0_SI>*
> > | |-- sympa.in ^*[note 0 SI] <#note_0_SI>*
> > | |-- sympa_soap_client.pl.in
> > | |-- testldap.pl.in
> > | |-- testlogs.pl.in
> > | `-- tpl2tt2.pl.in
> > |-- *cgi/*: daemons that run under a web server
> > | |-- *web**/*: web daemon and associated files. ^*[note 6 SI]
> > <#note_6_SI>*
> > | | |-- INSTALL^*[note 5 SI] <#note_5_SI>* /
> > / | | |-- Makefile.am
> > | | |-- README ^*[note 5 SI] <#note_5_SI>*
> > | | |-- wwsympa-wrapper.fcgi.c
> > | | `-- wwsympa.fcgi.in
> > | `-- *soap/*: the SOAP server and associated files. ^*[note 6 SI]
> > <#note_6_SI>*
> > | |-- Makefile.am/
> > / | |-- sympa_soap_server-wrapper.fcgi.c
> > | `-- sympa_soap_server.fcgi.in
> > |-- *lib/*: all modules (.pm files) in the Sympa namespace
> > | |-- Makefile.am
> > | `-- Sympa
> > `-- *sbin/*: all excutable files needed for daily Sympa
> > functionning (daemons and queue programs).
> > |-- Makefile.am
> > |-- alias_manager.pl.in ^*[note 7 SI] <#note_7_SI>*
> > |-- aliaswrapper.c ^*[note 7 SI] <#note_7_SI>*
> > |-- archived.pl.in
> > |-- bounced.pl.in
> > |-- bouncequeue.c ^*[note 7 SI] <#note_7_SI>*
> > |-- bulk.pl.in
> > |-- familyqueue.c ^*[note 7 SI] <#note_7_SI>*
> > |-- queue.c ^*[note 7 SI] <#note_7_SI>*
> > |-- sympa.pl.in
> > |-- sympa_wizard.pl.in ^*[note 8 DV] <#note_8_DV>*
> > |-- task_manager.pl.in
> > `-- virtualwrapper.c ^*[note 7 SI]
> > <#note_7_SI>* *
> > libexec/ <#note_7_SI>**[note 7 SI] <#note_7_SI>*^*
> > * |-- alias_manager.pl.in
> > |-- ldap_alias_manager.pl.in
> > |-- mysql_alias_manager.pl.in
> > |-- aliaswrapper.c
> > |-- bouncequeue.c
> > |-- familyqueue.c
> > |-- queue.c
> > `-- virtualwrapper.c
> Hello list.
>
> I just implemented this proposal under trunk, with a few modifications.
>
> 1) I used 'src/bin' instead of 'src/script' for consistency with
> 'src/sbin' and 'src/libexec'.
>
> 2) I moved samples files into already-existing doc/samples subdirectory
> instead of creating a new top-level one
>
> 3) I had to use default/mail_tt2 and default/web_tt2 instead of
> default/templates/mail and default/templates/web, to simplify Makefile
> readability (same distribution and installation layout). I just noticed
> we also have a 'default/create_list_templates' directory, there is still
> room for better naming consistency here.
>
> 4) I kept logrotate and init script in src/etc, as I don't see any
> better place for them right now. I think we should rename the 'ext'
> top-level subdirectory to a more generic 'misc' or 'contrib' directory,
> and put this kind of content here:
> - contrib/ext: the current ext subdirectory
> - contrib/redhat: spec file, logrotate, init script, and other sysadmin
> stuff
> - contrib/bin: misc scripts that don't match our coding standard

I feel the same as Guillaume about logrotate and init scripts.

- Such files seem occasionally placed at top of the source tree of
numerous source packages, probably because of similar reason
described by Guillaume.

- sympa.in, sympa.spec.in and logrotate seem intended to be used
on Linux, especially on RHEL/CentOS. But sympa.generic can also
be used on Solaris, *BSD and so on. All of those files might be
placed under the same place (contrib/ looks less appropriate: they
are not always specially contributed).

We might make some considerations on things under ext/ where
currently Markov's work is held.

- Files under ext/Plugin/ add plugin framework to Sympa (it is
promising, I guess). So they would be integraded into Sympa.
In short, they would be moved into src/lib/.

- Others are abstract implementations of plugins. Where to place
them may depend on where to these plugins will be maintained.
I'd like to hear Markov's inension.


> 5) I moved the various README.* files under doc subdirectory. I think
> one should quickly review them, and eventually delete them: that's not
> worth duplicating content already present in the sympa manual.

Former src/etc/README_etc and src/etc/README both seem intended to
be installed at top of $confdir so that they will indicate that
directory will be used for the purpose of customization. I guess
they may not be required.

I'll make comment to remainder of your post in other days.

Regards,

--- Soji


> 6) the various scripts under src/bin, as well as
> src/libexec/{mail,ldap}_alias_manager.pl ought to be reviewed, as many
> of them seems to be either of dubious utility, or old user
> contributions. We already have enough work to clean up Sympa main code
> without bothering to maintain useless bitrotten stuff.
>
> For instance, test-ldap.pl doesn't offer any advantage over standard
> ldapsearch command. And mysql_alias_manager.pl requires hardcoded
> configuration parameters...
>
> Next week, I'll try to enforce consistent file encodings and headers.
> --
> Guillaume Rousse
> INRIA, Direction des systèmes d'information
> Domaine de Voluceau
> Rocquencourt - BP 105
> 78153 Le Chesnay
> Tel: 01 39 63 58 31
>


--
株式会社 コンバージョン セキュリティ&OSSソリューション部 池田荘児
〒231-0004 神奈川県横浜市中区元浜町3-21-2 ヘリオス関内ビル7F
e-mail address@concealed TEL 045-640-3550
http://www.conversion.co.jp/




Archive powered by MHonArc 2.6.19+.

Top of Page