Port review of pure-ftpd

View: New views
14 Messages — Rating Filter:   Alert me  

Port review of pure-ftpd

by shdjsahwkjq ehwq kehwkq h :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I ran into an issue with a new configure arg that the devloper added,  
aside from that, things are going well, and wanted a review of my work  
if anyone has time.

Is there any way, or any desire, to pretty up the long description?  
for example, the below, I would rather it be:

        foo has the following features:
                1) anti-warez system
                2) throttling
                3) ratios

I suspect you get the idea.  I have a hard time getting it to all line  
up.  Is this not even something that the I should be caring about?

use_bzip2           yes
That was there before I took this portfile over, there is a tgz file,  
if I just remove that line, would I default to the tgz?

distname            pure-ftpd-${version}
Do I need distname at all in this portfile?

My second livecheck, how did I do?

I am copying in a sample plist in the post-destroot, any comments on  
this?

All the ui_msg in the port-install, is that the right place?

The software only allows one language to be compiled in, but I suspect  
that MP would allow as many + variants as were listed, is there a way  
to solve this?

Is there any way to order the variants as shown by `port info`, and if  
not, is it a bad idea to prefix the language variants with a "z" so  
they do not get in the way of letting people know there is myqsl and  
tls available for this?

I guess I can remove the readme debian and windows files.

Thanks for any suggestions.

# $Id$

PortSystem          1.0

name                pure-ftpd
version             1.0.24
categories          net
platforms           darwin
maintainers         hostwizard.com:scott
license             BSD

homepage            http://pureftpd.org/
description         Pure-FTPd is a fast, production-quality, standard-
conformant FTP (SSL/TLS)
                    server, based upon Troll-FTPd.

long_description    ${name} has been designed to be secure in default  
configuration, it has no\
                     known vulnerabilities. Features Include: virtual  
domains, built-in 'ls', \
                     anti-warez system, configurable ports for passive  
downloads, FXP protocol, \
                     bandwidth throttling, ratios, LDAP / MySQL /  
PostgreSQL-based authentication,\
                     fortune files, Apache-like log files, text /  
HTML / XML real-time status report,\
                     virtual users, virtual quotas, privilege  
separation, SSL/TLS and more.

master_sites        ftp://ftp.pureftpd.org/pure-ftpd/releases/ \
                     ftp://ftp.fr.pureftpd.org/pure-ftpd/releases/

distname            pure-ftpd-${version}
use_bzip2           yes

checksums           md5     2f0869166ddb3a9cbe5e4887eae6e74d \
                     sha1    bf8d04d19a83d2bec214eaa38095a070d549d978 \
                     rmd160  a320048289f22161c370e12a9253f314877903ba

livecheck.type      regex
livecheck.url       http://download.pureftpd.org/pub/${name}/releases/
livecheck.regex     ${name}-(${version})${extract.suffix}

configure.args      --with-cookie \
                     --with-everything \
                     --with-virtualchroot \
                     --with-paranoidmsg \
                     --without-inetd \
                     --without-capabilities \
                     --mandir=${prefix}/share/man \
                     --infodir=${prefix}/share/info \
                     --with-localstatedir=${prefix}

destroot.destdir    prefix=${destroot}${prefix} \
                     mandir=${destroot}${prefix}/share/man

post-destroot {
      file mkdir ${prefix}/etc/${name}/ssl
      file mkdir ${prefix}/etc/${name}/mysql
      file mkdir ${prefix}/var/log/${name}
      file mkdir ${destroot}${prefix}/share/doc/${name}

      # Install the notes and readme files
      xinstall -m 644 -v -W ${worksrcpath} \
      AUTHORS ChangeLog CONTACT COPYING FAQ HISTORY INSTALL NEWS  
README \
      README.Authentication-Modules README.Windows  
README.Configuration-File \
      README.Contrib README.Debian README.Donations README.LDAP  
README.MacOS-X \
      README.MySQL README.PGSQL README.TLS README.Virtual-Users THANKS \
           ${destroot}${prefix}/share/doc/${name}

      # Copy in the sample launchd plist item
      file copy ${filespath}/org.pure-ftpd.ftpd.plist.sample $
{destroot}${prefix}/share/doc/${name}/org.pure-ftpd.ftpd.plist.sample
}

# Notify the user how to launch the ftpd
post-install {
      ui_msg ""
      ui_msg "PureFTPd documentation is located in: ${prefix}/share/
doc/${name}"
      ui_msg ""
      ui_msg "You can start PureFTPd from the command line with:"
      ui_msg "     sudo ${prefix}/sbin/${name} &"
      ui_msg ""
      ui_msg "The next release of PureFTPd (1.0.25) will no longer  
support"
      ui_msg "xinetd, and has been removed from this version.  If you"
      ui_msg "are using that method to start PureFTPd now, please  
switch"
      ui_msg "to using launcd(8)."
      ui_msg ""
      ui_msg "A sample launchd plist has been made to get your started,"
      ui_msg "to enable it, issue the following commands:"
      ui_msg "     sudo cp ${prefix}/share/doc/${name}/org.pure-
ftpd.ftpd.plist.sample /Library/LaunchDaemons/org.pure-ftpd.ftpd.plist"
      ui_msg "     sudo launchctl load -w /Library/LaunchDaemons/
org.pure-ftpd.ftpd.plist"
}

variant mysql5 description "Use native MySQL support for privelages  
database." {
      depends_lib-append path:bin/mysql_config5:mysql5
      configure.args-append --with-mysql
      configure.cflags-append "-I${prefix}/include/mysql5/mysql"
      configure.ldflags-append "-L${prefix}/lib/mysql5/mysql"
}

variant tls description "Encryption of the control channel using SSL/
TLS" {
      depends_lib             lib:libssl.dylib:openssl
      configure.args-append    --with-tls \
                               --with-certfile=${prefix}/etc/${name}/
ssl/pure-ftpd.pem
}

# Langugage variants, should only be able to choose one.
variant lang_brazilian        description "Use Bazilian language for  
server messages" { configure.args-append --with-language=brazilian }
variant lang_czech            description "Use Czech language for  
server messages" { configure.args-append --with-language=czech }
variant lang_danish           description "Use Danish language for  
server messages" { configure.args-append --with-language=danish }
variant lang_dutch            description "Use Dutch language for  
server messages" { configure.args-append --with-language=dutch }
variant lang_french           description "Use French language for  
server messages" { configure.args-append --with-language=french }
variant lang_french_funny     description "Use French funny language  
for server messages" { configure.args-append --with-language=french-
funny }
variant lang_german           description "Use German language for  
server messages" { configure.args-append --with-language=german }
variant lang_italian          description "Use Italian language for  
server messages" { configure.args-append --with-language=italian }
variant lang_korean           description "Use Korean language for  
server messages" { configure.args-append --with-language=korean }
variant lang_norwegian        description "Use Norwegian language for  
server messages" { configure.args-append --with-language=norwegian }
variant lang_polish           description "Use Polish language for  
server messages" { configure.args-append --with-language=polish }
variant lang_romanian         description "Use Romanian language for  
server messages" { configure.args-append --with-language=romanian }
variant lang_russian          description "Use Russian language for  
server messages" { configure.args-append --with-language=russian }
variant lang_simpple_chinese  description "Use simplified Chinese for  
server messages" { configure.args-append --with-language=simplified-
chinese }
variant lang_slovak           description "Use Slovak language for  
server messages" { configure.args-append --with-language=slovak }
variant lang_spanish          description "Use Spanish language for  
server messages" { configure.args-append --with-language=spanish }
variant lang_swedish          description "Use Swedish language for  
server messages" { configure.args-append --with-language=swedish }
variant lang_trad_chinese     description "Use traditional Chinese  
language for server messages" { configure.args-append --with-
language=traditional-chinese }

--
Scott * If you contact me off list replace talklists@ with scott@ *

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by Ryan Schmidt-24 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Oct 27, 2009, at 01:19, Scott Haneda wrote:

> I ran into an issue with a new configure arg that the devloper  
> added, aside from that, things are going well, and wanted a review  
> of my work if anyone has time.
>
> Is there any way, or any desire, to pretty up the long description?  
> for example, the below, I would rather it be:
>
> foo has the following features:
> 1) anti-warez system
> 2) throttling
> 3) ratios
>
> I suspect you get the idea.  I have a hard time getting it to all  
> line up.  Is this not even something that the I should be caring  
> about?

I am not aware of any way to insert newlines into the long  
description, or any other way for it to be anything other than a  
single long block of text.


> use_bzip2           yes
> That was there before I took this portfile over, there is a tgz  
> file, if I just remove that line, would I default to the tgz?

Yes, the default extract settings assume the extension is ".tar.gz"  
and that the file should be treated as a gzipped tarball. Since there  
continues to be a bzip2 distfile available for pureftpd, though, you  
should prefer that to the tar.gz version, since the bzip2 is smaller.


> distname            pure-ftpd-${version}
> Do I need distname at all in this portfile?

The default is ${name}-${version}, so I don't think so.


> My second livecheck, how did I do?

You cannot use the variable ${version} in the livecheck.regex,  
otherwise the regex will only match the current version of the port,  
and will never inform you of newer versions.

You want my standard livecheck.regex, which is ${name}-(\[0-9.\]+)\\.tar


> I am copying in a sample plist in the post-destroot, any comments on  
> this?

Looks ok.


> All the ui_msg in the port-install, is that the right place?

You might want the instructions to be post-activate.


> The software only allows one language to be compiled in, but I  
> suspect that MP would allow as many + variants as were listed, is  
> there a way to solve this?

MacPorts has been a bit English-centric so far. In my minivmac  
portfile, I didn't even attempt to offer options to compile for  
different languages. I could have offered variants, but nobody has  
requested it so far, so I haven't worried about it.


> Is there any way to order the variants as shown by `port info`, and  
> if not, is it a bad idea to prefix the language variants with a "z"  
> so they do not get in the way of letting people know there is myqsl  
> and tls available for this?

The variants used to be listed in the order specified in the portfile.  
MacPorts 1.8.0 changed this to alphabetical order. I would not  
recommend using a "z" prefix or anything like that. Prefixing them  
with "lang_" like you've done is what I would do.

As your comment says, you still need to make them conflict with one  
another. You could construct the variants dynamically, like the swig  
port does. The below seems to work. Unfortunately it makes the output  
of "port variants" rather hard to read.


#   Language name           Configure arg
set languages {
     {Brazilian}             brazilian
     {Czech}                 czech
     {Danish}                danish
     {Dutch}                 dutch
     {French}                french
     {funny French}          french-funny
     {German}                german
     {Italian}               italian
     {Korean}                korean
     {Norwegian}             norwegian
     {Polish}                polish
     {Romanian}              romanian
     {Russian}               russian
     {simplified Chinese}    simplified-chinese
     {Slovak}                slovak
     {Spanish}               spanish
     {Swedish}               swedish
     {traditional Chinese}   traditional-chinese
}

# Add langugage variants
foreach {language arg} ${languages} {
     set variant lang_[strsed ${arg} {g/-/_/}]
     set conflicts {}
     foreach {ignore conflicting_arg} ${languages} {
         if {${conflicting_arg} != ${arg}} {
             set conflicting_variant lang_[strsed ${conflicting_arg}  
{g/-/_/}]
             lappend conflicts ${conflicting_variant}
         }
     }
     eval [subst {
         variant ${variant} conflicts ${conflicts} description "Use $
{language} language for server messages" {
             configure.args-append   --with-language=${arg}
         }
     }]
}





> I guess I can remove the readme debian and windows files.

Please. :)


> Thanks for any suggestions.
>
> # $Id$
>
> PortSystem          1.0
>
> name                pure-ftpd
> version             1.0.24
> categories          net
> platforms           darwin
> maintainers         hostwizard.com:scott
> license             BSD
>
> homepage            http://pureftpd.org/
> description         Pure-FTPd is a fast, production-quality,  
> standard-conformant FTP (SSL/TLS)

Missing backslash at end of the above line.

>    server, based upon Troll-FTPd.
>
> long_description    ${name} has been designed to be secure in  
> default configuration, it has no\
>                    known vulnerabilities. Features Include: virtual  
> domains, built-in 'ls', \
>                    anti-warez system, configurable ports for passive  
> downloads, FXP protocol, \
>                    bandwidth throttling, ratios, LDAP / MySQL /  
> PostgreSQL-based authentication,\
>                    fortune files, Apache-like log files, text /  
> HTML / XML real-time status report,\
>                    virtual users, virtual quotas, privilege  
> separation, SSL/TLS and more.
>
> master_sites        ftp://ftp.pureftpd.org/pure-ftpd/releases/ \
>                    ftp://ftp.fr.pureftpd.org/pure-ftpd/releases/
>
> distname            pure-ftpd-${version}
> use_bzip2           yes
>
> checksums           md5     2f0869166ddb3a9cbe5e4887eae6e74d \
>                    sha1    bf8d04d19a83d2bec214eaa38095a070d549d978 \
>                    rmd160  a320048289f22161c370e12a9253f314877903ba
>
> livecheck.type      regex
> livecheck.url       http://download.pureftpd.org/pub/${name}/releases/
> livecheck.regex     ${name}-(${version})${extract.suffix}
>
> configure.args      --with-cookie \
>                    --with-everything \
>                    --with-virtualchroot \
>                    --with-paranoidmsg \
>                    --without-inetd \
>                    --without-capabilities \
>                    --mandir=${prefix}/share/man \
>                    --infodir=${prefix}/share/info \
>                    --with-localstatedir=${prefix}
>
> destroot.destdir    prefix=${destroot}${prefix} \
>                    mandir=${destroot}${prefix}/share/man
>
> post-destroot {
>     file mkdir ${prefix}/etc/${name}/ssl
>     file mkdir ${prefix}/etc/${name}/mysql
>     file mkdir ${prefix}/var/log/${name}
>     file mkdir ${destroot}${prefix}/share/doc/${name}
>
>     # Install the notes and readme files
>     xinstall -m 644 -v -W ${worksrcpath} \
>     AUTHORS ChangeLog CONTACT COPYING FAQ HISTORY INSTALL NEWS  
> README \
>     README.Authentication-Modules README.Windows  
> README.Configuration-File \
>     README.Contrib README.Debian README.Donations README.LDAP  
> README.MacOS-X \
>     README.MySQL README.PGSQL README.TLS README.Virtual-Users THANKS \
>          ${destroot}${prefix}/share/doc/${name}
>
>     # Copy in the sample launchd plist item
>     file copy ${filespath}/org.pure-ftpd.ftpd.plist.sample $
> {destroot}${prefix}/share/doc/${name}/org.pure-ftpd.ftpd.plist.sample
> }
>
> # Notify the user how to launch the ftpd
> post-install {
>     ui_msg ""
>     ui_msg "PureFTPd documentation is located in: ${prefix}/share/
> doc/${name}"
>     ui_msg ""
>     ui_msg "You can start PureFTPd from the command line with:"
>     ui_msg "     sudo ${prefix}/sbin/${name} &"
>     ui_msg ""
>     ui_msg "The next release of PureFTPd (1.0.25) will no longer  
> support"
>     ui_msg "xinetd, and has been removed from this version.  If you"
>     ui_msg "are using that method to start PureFTPd now, please  
> switch"
>     ui_msg "to using launcd(8)."
>     ui_msg ""
>     ui_msg "A sample launchd plist has been made to get your started,"
>     ui_msg "to enable it, issue the following commands:"
>     ui_msg "     sudo cp ${prefix}/share/doc/${name}/org.pure-
> ftpd.ftpd.plist.sample /Library/LaunchDaemons/org.pure-
> ftpd.ftpd.plist"
>     ui_msg "     sudo launchctl load -w /Library/LaunchDaemons/
> org.pure-ftpd.ftpd.plist"
> }
>
> variant mysql5 description "Use native MySQL support for privelages  
> database." {
>     depends_lib-append path:bin/mysql_config5:mysql5
>     configure.args-append --with-mysql
>     configure.cflags-append "-I${prefix}/include/mysql5/mysql"
>     configure.ldflags-append "-L${prefix}/lib/mysql5/mysql"
> }
>
> variant tls description "Encryption of the control channel using SSL/
> TLS" {
>     depends_lib             lib:libssl.dylib:openssl
>     configure.args-append    --with-tls \
>                              --with-certfile=${prefix}/etc/${name}/
> ssl/pure-ftpd.pem
> }
>
> # Langugage variants, should only be able to choose one.
> variant lang_brazilian        description "Use Bazilian language for  
> server messages" { configure.args-append --with-language=brazilian }
> variant lang_czech            description "Use Czech language for  
> server messages" { configure.args-append --with-language=czech }
> variant lang_danish           description "Use Danish language for  
> server messages" { configure.args-append --with-language=danish }
> variant lang_dutch            description "Use Dutch language for  
> server messages" { configure.args-append --with-language=dutch }
> variant lang_french           description "Use French language for  
> server messages" { configure.args-append --with-language=french }
> variant lang_french_funny     description "Use French funny language  
> for server messages" { configure.args-append --with-language=french-
> funny }
> variant lang_german           description "Use German language for  
> server messages" { configure.args-append --with-language=german }
> variant lang_italian          description "Use Italian language for  
> server messages" { configure.args-append --with-language=italian }
> variant lang_korean           description "Use Korean language for  
> server messages" { configure.args-append --with-language=korean }
> variant lang_norwegian        description "Use Norwegian language  
> for server messages" { configure.args-append --with-
> language=norwegian }
> variant lang_polish           description "Use Polish language for  
> server messages" { configure.args-append --with-language=polish }
> variant lang_romanian         description "Use Romanian language for  
> server messages" { configure.args-append --with-language=romanian }
> variant lang_russian          description "Use Russian language for  
> server messages" { configure.args-append --with-language=russian }
> variant lang_simpple_chinese  description "Use simplified Chinese  
> for server messages" { configure.args-append --with-
> language=simplified-chinese }
> variant lang_slovak           description "Use Slovak language for  
> server messages" { configure.args-append --with-language=slovak }
> variant lang_spanish          description "Use Spanish language for  
> server messages" { configure.args-append --with-language=spanish }
> variant lang_swedish          description "Use Swedish language for  
> server messages" { configure.args-append --with-language=swedish }
> variant lang_trad_chinese     description "Use traditional Chinese  
> language for server messages" { configure.args-append --with-
> language=traditional-chinese }


Some typos:
privelages should be privileges
Langugage should be Language
Bazilian should be Brazilian
simpple_chinese should be simplified_chinese


_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by Daniel J. Luke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Oct 27, 2009, at 4:03 AM, Ryan Schmidt wrote:
>> All the ui_msg in the port-install, is that the right place?
>
> You might want the instructions to be post-activate.

... but any direct mode users won't see them then (and while there  
aren't many, I think there are still a few people who prefer it).

--
Daniel J. Luke
+========================================================+
| *---------------- dluke@... ----------------* |
| *-------------- http://www.geeklair.net -------------* |
+========================================================+
|   Opinions expressed are mine and do not necessarily   |
|          reflect the opinions of my employer.          |
+========================================================+



_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by shdjsahwkjq ehwq kehwkq h :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Oct 27, 2009, at 7:56 AM, "Daniel J. Luke" <dluke@...>  
wrote:

> On Oct 27, 2009, at 4:03 AM, Ryan Schmidt wrote:
>>> All the ui_msg in the port-install, is that the right place?
>>
>> You might want the instructions to be post-activate.
>
> ... but any direct mode users won't see them then (and while there  
> aren't many, I think there are still a few people who prefer it).

What is "direct mode"?

--
Scott
Iphone says hello.
_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by Daniel J. Luke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Oct 27, 2009, at 4:47 PM, Scott Haneda wrote:
>> ... but any direct mode users won't see them then (and while there  
>> aren't many, I think there are still a few people who prefer it).
>
> What is "direct mode"?

the way things worked prior to 'image mode' being made the default.  
(files are installed directly into ${prefix} instead of being linked  
there).

--
Daniel J. Luke
+========================================================+
| *---------------- dluke@... ----------------* |
| *-------------- http://www.geeklair.net -------------* |
+========================================================+
|   Opinions expressed are mine and do not necessarily   |
|          reflect the opinions of my employer.          |
+========================================================+



_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by shdjsahwkjq ehwq kehwkq h :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Oct 27, 2009, at 1:03 AM, Ryan Schmidt wrote:

> On Oct 27, 2009, at 01:19, Scott Haneda wrote:
>
>> All the ui_msg in the port-install, is that the right place?
>
> You might want the instructions to be post-activate.

I will look into this.

>> The software only allows one language to be compiled in, but I  
>> suspect that MP would allow as many + variants as were listed, is  
>> there a way to solve this?
>
> MacPorts has been a bit English-centric so far. In my minivmac  
> portfile, I didn't even attempt to offer options to compile for  
> different languages. I could have offered variants, but nobody has  
> requested it so far, so I haven't worried about it.

for the sake of port simplicity, I am tempted to remove them.  They  
only offer language of a few server messages.  I suppose it best to  
leave them in though.

>> Is there any way to order the variants as shown by `port info`, and  
>> if not, is it a bad idea to prefix the language variants with a "z"  
>> so they do not get in the way of letting people know there is myqsl  
>> and tls available for this?
>
> The variants used to be listed in the order specified in the  
> portfile. MacPorts 1.8.0 changed this to alphabetical order. I would  
> not recommend using a "z" prefix or anything like that. Prefixing  
> them with "lang_" like you've done is what I would do.

It is still a bummer, as the tls and mysql variants get lost.  I guess  
there is very little I can do about it.  It says they are available in  
the description, so I will leave it at that.

> As your comment says, you still need to make them conflict with one  
> another. You could construct the variants dynamically, like the swig  
> port does. The below seems to work. Unfortunately it makes the  
> output of "port variants" rather hard to read.

Yeah, not a huge fan of that, and if I can not readily grok it, I  
certainly do not want to maintain it :)

If one was to do this:
port install +foo +bar +baz

In any of the most initial of phases, which I am not sure that is, but  
before anything happens, how can I grab ahold of the variant names  
passed on the command line?

Here is what I am thinking, and I also need help with how to abort out  
of a port install, but I think the php5 port should show me that well.

Given this:
port install +foo +bar +baz I actually will have port install  
+lang_foo +lang_bar +lang_baz

repeat with aVariant in variantList
        if aVariant starts with lang_ then counter++
        if counter > 1 then abort with message
end repeat

That seems short and to the point to me.

> #   Language name           Configure arg
> set languages {
>    {Brazilian}             brazilian
>    {Czech}                 czech
>    {Danish}                danish
>    {Dutch}                 dutch
>    {French}                french
>    {funny French}          french-funny
>    {German}                german
>    {Italian}               italian
>    {Korean}                korean
>    {Norwegian}             norwegian
>    {Polish}                polish
>    {Romanian}              romanian
>    {Russian}               russian
>    {simplified Chinese}    simplified-chinese
>    {Slovak}                slovak
>    {Spanish}               spanish
>    {Swedish}               swedish
>    {traditional Chinese}   traditional-chinese
> }
>
> # Add langugage variants
> foreach {language arg} ${languages} {
>    set variant lang_[strsed ${arg} {g/-/_/}]
>    set conflicts {}
>    foreach {ignore conflicting_arg} ${languages} {
>        if {${conflicting_arg} != ${arg}} {
>            set conflicting_variant lang_[strsed ${conflicting_arg}  
> {g/-/_/}]
>            lappend conflicts ${conflicting_variant}
>        }
>    }
>    eval [subst {
>        variant ${variant} conflicts ${conflicts} description "Use $
> {language} language for server messages" {
>            configure.args-append   --with-language=${arg}
>        }
>    }]
> }


>> description         Pure-FTPd is a fast, production-quality,  
>> standard-conformant FTP (SSL/TLS)
>
> Missing backslash at end of the above line.

Do I need one after the last hash in the checksums also then?

> Some typos:
> privelages should be privileges
> Langugage should be Language
> Bazilian should be Brazilian
> simpple_chinese should be simplified_chinese

Thanks for those, good catches.
--
Scott * If you contact me off list replace talklists@ with scott@ *

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by Ryan Schmidt-24 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Oct 27, 2009, at 18:00, Scott Haneda wrote:

> If one was to do this:
> port install +foo +bar +baz
>
> In any of the most initial of phases, which I am not sure that is,  
> but before anything happens, how can I grab ahold of the variant  
> names passed on the command line?

I don't think you can do that, but you can use

if {[variant_isset foo]} {
...
}


> Here is what I am thinking, and I also need help with how to abort  
> out of a port install, but I think the php5 port should show me that  
> well.

To abort, use

return -code error "some error message"


> Given this:
> port install +foo +bar +baz I actually will have port install  
> +lang_foo +lang_bar +lang_baz

You're not suggesting that you have variant aliases now are you --  
where +foo becomes a synonym for +lang_foo?


> repeat with aVariant in variantList
> if aVariant starts with lang_ then counter++
> if counter > 1 then abort with message
> end repeat
>
> That seems short and to the point to me.

It would work. This would basically be reimplementing the conflicts  
mechanism yourself, but hiding that fact in the output of "port  
variants". I'm not sure I agree with reimplementing existing MacPorts  
features in individual portfiles, but I will grant that the conflicts  
output from "port variants" is very ugly when there are many variants  
with many conflicts. Perhaps there is a way "port variants" could  
display this information in a more succinct and less cluttered way;  
that would solve the problem not just for you but all other ports that  
have many conflicting variants. (See "port variants minivmac".)


>>> description         Pure-FTPd is a fast, production-quality,  
>>> standard-conformant FTP (SSL/TLS)
>>
>> Missing backslash at end of the above line.
>
> Do I need one after the last hash in the checksums also then?

No, you don't put a backslash after the last line. The above  
description line is the first line of a two-line description. "port"  
experienced a syntax error until I added the backslash here.

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by shdjsahwkjq ehwq kehwkq h :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I am seeing this on occasion when testing the pure-ftpd port I am  
working on:

$sudo port install +mysql +tls
Warning: Skipping upgrade since openssl 0.9.8k_0 >= openssl 0.9.8k_0,  
even though installed variants "" do not match "+darwin". Use 'upgrade  
--enforce-variants' to switch to the requested variants.

--
Scott * If you contact me off list replace talklists@ with scott@ *

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by Ryan Schmidt-24 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Oct 27, 2009, at 18:17, Scott Haneda wrote:

> I am seeing this on occasion when testing the pure-ftpd port I am  
> working on:
>
> $sudo port install +mysql +tls
> Warning: Skipping upgrade since openssl 0.9.8k_0 >= openssl  
> 0.9.8k_0, even though installed variants "" do not match "+darwin".  
> Use 'upgrade --enforce-variants' to switch to the requested variants.

Right. openssl is recorded in your registry as having no variants  
selected, but if installed today, openssl's +darwin variant would be  
automatically selected. The warning did not exist before MacPorts  
1.8.0. Also, MacPorts before 1.8.0 had a bug where specifically the  
+darwin variant would not be recorded in the registry, even if it was  
selected. You can ignore the warning, or use "sudo port upgrade --
enforce-variants openssl" to rebuild openssl and record the correct  
variants in the registry.
_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by shdjsahwkjq ehwq kehwkq h :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>> repeat with aVariant in variantList
>> if aVariant starts with lang_ then counter++
>> if counter > 1 then abort with message
>> end repeat
>>
>> That seems short and to the point to me.
>
> It would work. This would basically be reimplementing the conflicts  
> mechanism yourself, but hiding that fact in the output of "port  
> variants". I'm not sure I agree with reimplementing existing  
> MacPorts features in individual portfiles, but I will grant that the  
> conflicts output from "port variants" is very ugly when there are  
> many variants with many conflicts. Perhaps there is a way "port  
> variants" could display this information in a more succinct and less  
> cluttered way; that would solve the problem not just for you but all  
> other ports that have many conflicting variants. (See "port variants  
> minivmac".)


I guess I am just going to leave it.  The chances that someone  
installs more than one language are slim.  If I use my method above, I  
have to maintain a list of language names, iterate them, and do other  
magic on them.

In addition, I am braking a convention.

I do not really understand the conflicting variants issue, and seem to  
be unable to find a lot of documentation on the matter.  In this case,  
I know I can not append more than one language to the configure.args,  
and wanted to solve that.  I suppose I am ok with this though.

If someone has a nice and clean way to do it, I am all ears, but the  
previous example posted here, I have looked at it a few times, and to  
be honest, that seems like a lot of stuff to put in a port file just  
to have languages not collide.

Thanks for all the advice on this one, I am going to submit it tonight  
I think.
--
Scott * If you contact me off list replace talklists@ with scott@ *

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by Ryan Schmidt-24 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Oct 27, 2009, at 21:58, Scott Haneda wrote:

> I do not really understand the conflicting variants issue, and seem  
> to be unable to find a lot of documentation on the matter.  In this  
> case, I know I can not append more than one language to the  
> configure.args, and wanted to solve that.  I suppose I am ok with  
> this though.

What questions do you have about conflicting variants? I'll certainly  
try to answer them.


> If someone has a nice and clean way to do it, I am all ears, but the  
> previous example posted here, I have looked at it a few times, and  
> to be honest, that seems like a lot of stuff to put in a port file  
> just to have languages not collide.

The example I submitted not only allows you to specify conflicting  
variants, but also allows the variants to be constructed  
programmatically, so that you don't have to repeat stuff in each  
variant, like you were doing, such as the description. Admittedly the  
variants themselves, from your previous portfile, are pretty simple;  
you don't gain as much by constructing them programmatically as the  
swig port did by doing so.



_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by shdjsahwkjq ehwq kehwkq h :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Oct 27, 2009, at 8:37 PM, Ryan Schmidt wrote:

> On Oct 27, 2009, at 21:58, Scott Haneda wrote:
>
>> I do not really understand the conflicting variants issue, and seem  
>> to be unable to find a lot of documentation on the matter.  In this  
>> case, I know I can not append more than one language to the  
>> configure.args, and wanted to solve that.  I suppose I am ok with  
>> this though.
>
> What questions do you have about conflicting variants? I'll  
> certainly try to answer them.

I get the impression there is a inbuilt mechanism for dealing with  
conflicting variants.  This is why my simple repeat loops to count up  
how many language variants were added was a bad idea, replication of  
tools.

The code you showed me for the swig port, is just barely something I  
can grok as to what it is up to, with the downside that `port variants  
swig` looks a little goofy.

I am mostly just looking for the docs on how to gain a better  
understanding on what is going on in that swig portfile.

>> If someone has a nice and clean way to do it, I am all ears, but  
>> the previous example posted here, I have looked at it a few times,  
>> and to be honest, that seems like a lot of stuff to put in a port  
>> file just to have languages not collide.
>
> The example I submitted not only allows you to specify conflicting  
> variants, but also allows the variants to be constructed  
> programmatically, so that you don't have to repeat stuff in each  
> variant, like you were doing, such as the description. Admittedly  
> the variants themselves, from your previous portfile, are pretty  
> simple; you don't gain as much by constructing them programmatically  
> as the swig port did by doing so.


I would need to adapt the swig code to my case, and get it so that it  
is just adding in the languages, and alerting for conflicts, there  
seems to be a lot more going on there. If you have shove me in the  
right direction, that would be great.

There is not a lot in the docs on "conflicts", all I really want to do  
is iterate a list to add them, and then look at how many are being  
requested to be installed, for the "lang*" ones, and abort if there is  
more than one.

I found other issues in the pure-ftpd port, so I am stalled waiting on  
developer feedback on that, which gives me time to be more ideal about  
this language issue.

Thanks
--
Scott * If you contact me off list replace talklists@ with scott@ *

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by shdjsahwkjq ehwq kehwkq h :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Oct 27, 2009, at 8:37 PM, Ryan Schmidt wrote:

> What questions do you have about conflicting variants? I'll  
> certainly try to answer them.


I am running port install pure-ftpd +mysql + postgresql
I see my error now, I missed the mysql5 in the variant, so the port  
went ahead and started installing pure-ftpd and postgresql.

If I issue a `port install something +nonexistant` I would expect that  
to fail, is that not the case?

# Variants
variant mysql5 conflicts postgresql description "Use native MySQL  
support for privileges database." {
      depends_lib-append path:bin/mysql_config5:mysql5
      configure.args-append --with-mysql
      configure.cflags-append "-I${prefix}/include/mysql5/mysql"
      configure.ldflags-append "-L${prefix}/lib/mysql5/mysql"
}

variant postgresql conflicts mysql5 description "Use native postgreSQL  
support for privileges database." {
      depends_lib-append port:postgresql83
      configure.args-append --with-pgsql
}

--
Scott * If you contact me off list replace talklists@ with scott@ *

_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Re: Port review of pure-ftpd

by Rainer Müller-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 2009-10-30 10:58 , Scott Haneda wrote:
> I am running port install pure-ftpd +mysql + postgresql
> I see my error now, I missed the mysql5 in the variant, so the port  
> went ahead and started installing pure-ftpd and postgresql.
>
> If I issue a `port install something +nonexistant` I would expect that  
> to fail, is that not the case?

No, you can specify non-existing variants without an error message. Note
that given variants are passed down to dependencies if they are not
installed yet. That way this variant could be meant for some other port
in the dependency tree. Also, variants from variants.conf are always
applied as if you had typed them on the command line.

Rainer
_______________________________________________
macports-dev mailing list
macports-dev@...
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev