Building imaptest and a port
Ryan Schmidt
ryandesign at macports.org
Fri May 29 14:01:27 PDT 2009
On May 29, 2009, at 15:10, Scott Haneda wrote:
> On May 29, 2009, at 12:46 PM, Ryan Schmidt wrote:
>
>> On May 29, 2009, at 13:34, Scott Haneda wrote:
>>
>>> Second, as per the install notes, imaptest also needs library
>>> functions for dovecot, but does not need make install, libs just
>>> need to be there. There is already a Dovecot port, but that will
>>> install the entire package. In this case, do I make a new
>>> Dovecot port that skips the make install part, or do I wrap this
>>> all into one?
>>
>> If you don't "make install" then nothing would be installed,
>> right? So that wouldn't help anything. You'd have a port that
>> spends a lot of time building things in the work directory, then
>> doesn't install them, then cleans up the work directory.
>
> Well, I would take what I needed. `make install` is going to
> actually install dovecot, which I wold not want to do, I just need
> some libraries.
>
> Here is what I want to do, though I think I will need advising on
> the best way:
> download a known stable of dovecot
> run configure
> run make
> download imaptest
> run configure with ./configure --with-dovecot=../path to above
> sources
> run make
> copy src/imaptest to an appropriate location in MacPorts
> clean whatever I need to
>
> This is what I did to test it locally and use it.
>
>>> Third, when a distro points to name-latest.tar.gz, am I to pick a
>>> version or just always stick with the latest, which is a moving
>>> target? I can not even guarantee that in that download path the
>>> older versions stick around much, it looks like they roll them
>>> out every now and then.
>>
>> You should not use a distfile name like name-latest.tar.gz
>> precisely because it might be something different later and
>> someone would then get a checksum error. So, if offered, you
>> should use a distfile name that contains the version number.
>
> Ok, I will pick the latest version.
>
>> In the case of dovecot-latest.tar.gz, it looks like that's not the
>> latest stable, but the latest nightly snapshot. Ports should be
>> for the latest stable version. If you need to make a port for a
>> development version, usually that's done by naming the port with
>> the "-devel" suffix (e.g. graphviz-devel, pango-devel, cairo-
>> devel, glib2-devel, etc.)
>
> Ok, I can call this one devel, no problem.
>
>> I see the problem in this case is that dovecot 1.1.15 is the
>> latest stable released version but imaptest needs dovecot 1.2
>> which is currently in release candidate 4 status. Maybe 1.2 final
>> will be released soon and the dovecot port can be updated to that
>> version and there is no problem. If you need dovecot 1.2
>> immediately, then you could make a dovecot-devel port for version
>> 1.2rc4 downloaded from
>
> I am fine with the devel idea, Dovecot is only needed in this case
> to get to some libs that imaptest needs. I am just not sure, since
> this is to clear separate installs, but at the smae time, they
> completely play off each other in this case.
>
> I need a little hand holding on this one, as I am not sure how to
> best do these, as two ports, or one, and if one, if it is even
> possible to download and build two items in the same port.
>
> I am also not entirely clear from the docs on how to alter
> configure to remove the install path, which I do not need, and how
> to skip make install. I think I can figure out the xinstall stuff,
> to move the files where I need to when done, or I guess just the
> one binary.
I think the reasonable options that exist are:
1. Use the libraries that were installed by the dovecot (or dovecot-
devel) port. I recommend this method, unless there's some strong
reason I don't know about why installing dovecot would be detrimental
to something.
2. Within the imaptest port, also download and build dovecot, and
then use those libraries.
> Actually, there is a helpful imap mbox file that is allowed to be
> downloaded as a test file. If I wanted to add that into this
> install, where is the best place to put that file, and how do I
> start the download of that within a port?
Perhaps some place under ${prefix}/share/${name} would be a good
place for the file.
Add any additional files you want downloaded to the distfiles
variable. MacPorts will download it for you.
If the additional file needs to be downloaded from a different place
than the main distfile, you need to add a second master_sites value
and put tags on both master_sites and distfiles values to tell
MacPorts which file to download from which site.
If the mbox file is not compressed and thus MacPorts should not try
to decompress it, define extract.only to contain only those items you
want MacPorts to decompress.
Example:
master_sites \
http://dovecot.org/nightly/imaptest/:main \
http://dir/where/mbox/is/:mbox
set main_distfile [suffix ${distname}]
set mbox_distfile test.mbox
distfiles \
${main_distfile}:main \
${mbox_distfile}:mbox
checksums \
${main_distfile} \
md5 ... \
sha1 ... \
rmd160 ... \
${mbox_distfile} \
md5 ... \
sha1 ... \
rmd160 ...
extract.only ${main_distfile}
More information about the macports-dev
mailing list