From owner-freebsd-ports@FreeBSD.ORG Tue Apr 10 18:11:36 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 01BF4106566C for ; Tue, 10 Apr 2012 18:11:36 +0000 (UTC) (envelope-from nanoman@nanoman.ca) Received: from mail.nanoman.ca (mail.nanoman.ca [76.10.173.222]) by mx1.freebsd.org (Postfix) with ESMTP id 71AAD8FC08 for ; Tue, 10 Apr 2012 18:11:35 +0000 (UTC) Received: from nanocomputer.nanoman.ca (nanocomputer.nanoman.ca [192.168.1.9]) by mail.nanoman.ca (Postfix) with ESMTP id DAD7A115FB; Tue, 10 Apr 2012 14:04:19 -0400 (EDT) Received: by nanocomputer.nanoman.ca (Postfix, from userid 62661) id 19DC817258; Tue, 10 Apr 2012 14:04:05 -0400 (EDT) Date: Tue, 10 Apr 2012 14:04:05 -0400 From: "A.J. Kehoe IV (Nanoman)" To: Stephen Montgomery-Smith Message-ID: <20120410180405.GD19377@nanocomputer.nanoman.ca> References: <4F839499.8050103@missouri.edu> MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="Hf61M2y+wYpnELGG" Content-Disposition: inline In-Reply-To: <4F839499.8050103@missouri.edu> Organization: Nanoman's Company User-Agent: Mutt (FreeBSD) Cc: freebsd-ports@freebsd.org Subject: Re: autodetecting dependencies X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: nanoman@nanoman.ca List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Apr 2012 18:11:36 -0000 --Hf61M2y+wYpnELGG Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Stephen Montgomery-Smith wrote: >So suppose we are building port A. It turns out that the configure in >port A autodetects whether package B is present or not. It will build >either way. But if built with package B, it will not operate without it. > >So suppose I build port A on machine X which has package B installed. >Then I create a package from A, and copy the package to machine Y. >Machine Y does not have package B installed, and so when package A is >installed, it doesn't work on machine Y. > >What are the accepted ways of handling this? > >1. Don't worry about it. tinderbox builds will never build port A in >the presence of package B. > >2. Have the Makefile of port A detect whether package B is installed, >and if it is then add B as a dependency of A. > >3. Cripple the configure in port A so that it doesn't autodetect for >package B. (Sometimes this can be done using a suitable CONFIGURE_ARGS, >but not in my particular situation.) > >I prefer the answer (1). But I am interested in other people's >opinions. One problem with (2) or (3) is that the creator of the port >might never find out which packages could be autodetected by port A's >configure without performing an exhaustive search of the source code of A. > >Thanks, Stephen In my opinion, it's best to use the OPTIONS framework and to avoid automati= c detection entirely. Consider this problem: http://docs.freebsd.org/cgi/mid.cgi?20120304190922.GA58789 For your example, I would add this line to port A's Makefile: OPTIONS=3D PORT_B "Enable Port B" off I would then replace the automatic detection part of port A's Makefile with= something like this: =2Eif defined(WITH_PORT_B) && !defined(WITHOUT_PORT_B) RUN_DEPENDS+=3D portb-1.0:${PORTSDIR}/category/portb =2Eendif So, if you don't want port A built with package B as a dependency, you'd us= e the default on port A's OPTIONS "dialog" screen, otherwise, you'd put a c= heck beside "PORT_B". --=20 A.J. Kehoe IV (Nanoman) | /"\ ASCII Ribbon Campaign Nanoman's Company | \ / - No HTML/RTF in E-mail E-mail: nanoman@nanoman.ca | X - No proprietary attachments WWW: http://www.nanoman.ca/ | / \ - Respect for open standards --Hf61M2y+wYpnELGG Content-Type: application/x-pkcs7-signature Content-Disposition: attachment; filename="smime.p7s" Content-Transfer-Encoding: base64 MIIPCwYJKoZIhvcNAQcCoIIO/DCCDvgCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC DHcwggUyMIIDGqADAgECAgMLj20wDQYJKoZIhvcNAQEFBQAweTEQMA4GA1UEChMHUm9vdCBD QTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNp Z25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcwHhcN MTIwNDAzMTkwNjMwWhcNMTIwOTMwMTkwNjMwWjA9MRgwFgYDVQQDEw9DQWNlcnQgV29UIFVz ZXIxITAfBgkqhkiG9w0BCQEWEm5hbm9tYW5AbmFub21hbi5jYTCCASIwDQYJKoZIhvcNAQEB BQADggEPADCCAQoCggEBAK9WRGqRDUDjWwNIfZTBp4FL5bI0kY3ZqvM6tEO+Sqp5YxATre8F a+BYbeNp/8MKfuPrRgE2jRzlePAx7kpvZUhRTGAZpncmHC7Z3FDl8Ugid4193ReCfPypb9Gs 3ZgPfzJyNuDeCM3amz/cDXC/makJLpmLzu95D91hD+V30iActE5j1tNewMq9qJRoEdr5Tqus bUjjDm8kiK5sz9JzQjFoufuaWIR57w2Sm1gDVZ0MH46fxZ/SwLDDzt4VC2u+1oS4KSmVUm6X Wv1/Fmdf2sOOu9Ro2xVjJHW+j16lsFPPj+lkDv5tb0G7I2vBoKEQg/s+h8J4F+l/xPL3O5xB c68CAwEAAaOB/jCB+zAMBgNVHRMBAf8EAjAAMFYGCWCGSAGG+EIBDQRJFkdUbyBnZXQgeW91 ciBvd24gY2VydGlmaWNhdGUgZm9yIEZSRUUgaGVhZCBvdmVyIHRvIGh0dHA6Ly93d3cuQ0Fj ZXJ0Lm9yZzBABgNVHSUEOTA3BggrBgEFBQcDBAYIKwYBBQUHAwIGCisGAQQBgjcKAwQGCisG AQQBgjcKAwMGCWCGSAGG+EIEATAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6 Ly9vY3NwLmNhY2VydC5vcmcwHQYDVR0RBBYwFIESbmFub21hbkBuYW5vbWFuLmNhMA0GCSqG SIb3DQEBBQUAA4ICAQAQUEMT2uupQXvmCVOcJWoZOZR6WielH7H4ewoCjQxCqEkqtrn4P4GV DyV9v9suQ1uLu6uZFZAlmkDa0hKdpaz01rgLARMwR9XGBBnRuq17HoNkt9kBFWWCjwegfw5M kXdCkXu/cQ0TVA1guhJz6tJ/LHg8deUGu5FGbw/+Om6haUX1udId3XtaqdONEOpqv2SPsVvg qeu5SyxJVJJvAXp9iA1W6yk3JAatO4X9LjntzNsFcFkVGGssbsqQdnp6rPCXD3MqYI7TSSn9 nUvHe9lxcxAbeP/6jU033NSFqSIjrcliB1VLeElbCE1vhZF1bAUMzxR4Fpa670O3Q9bycnDI SUjzJVKYEg2AtD2GVrN9NjE9+N+xvJ4ixweumoFy3Ojp85OcAP5gb7oLYDJaHERwrz6psyQa LWrCEqY+lwZVq/Mw+gOQkFhq/zu+hK4xYw5NpexYB+Qf/OKi2/CGNKj8xi+8XMTdNBzW1JOy 8b8XYoTCb0BBuyBWpgibnm6E2EMuDWFtTX9V1hx7NG1nC5qsc1aLGdaXm1W48TL1cOqOMwuf 6RO/AZKdCikqoswCz7Fl1kRIeAjN1jv5EIR60hxfWrcOFzA44Er7oQ23S+t2Xl77QenuTa5B RJOEBfs34ll8vanK3ltorR5rwAYyjYIkrknaxf1+JFeR9/cAcbWy1jCCBz0wggUloAMCAQIC AQAwDQYJKoZIhvcNAQEEBQAweTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDov L3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEw HwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcwHhcNMDMwMzMwMTIyOTQ5WhcNMzMw MzI5MTIyOTQ5WjB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNh Y2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG 9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC ggIBAM4iwOJGfew2KAdQlvKgM0CMS/E7Zj8x5WsCNtvWfPbxiI9OdzYFQZX5CfASz0aGc2C3 bn7owFhkrs2wrUUXDGP6Zwro1tK/PueYxPBM+uADuzVdbCHeniDZus1mMjdy+vcI9cfNWMmO 5w5e6j7+HKEUChVshoRbZGYqeqlLU3n1iKJ77i8KYSuNsn5NVqUT7Orakp6sREEeWGBlBWb4 wES9y5T3Qn4L92VomFEF8PMFkQQdGxeC7MhXu8NreojxsHLMJVsgkewWAhKPMukXGEjQxwUu AjBCuCWcBWs/qjqn61NI9+jStgeY3BvGNH9/yRyCegVYKwhb8ziiqxddZsmY154Qi6LS3XSa 93EMcmDfzW+YM52WNHY+JHqSsA6VHm/moEU4R6rXQe1KtxL21xuDig8u2Am2WdeqBP/Sk31o Lt2LS6tYui+N6pWnoMNUiaX724tRIp2yw74RviyRhouWeK0g04ovGj/G0FFlhyGxGQFlf0Uc h/V80EFMTymYIf0zH3UMBFH6GXfb1BQc7oHDHfWYt2kGkSLdAFDMgTGsEgd7ONpoW+Yr1H7J X63o63JM8wHlSyC/mqZXypEAAYuhdSE3tWMNZz5GT3AgZ87F1lnbAuDw0svNumK3kEHo3SDk KbxkKULIItx4mv9D7JgbCVFLWlrCcfHEy3Op5aELAgMBAAGjggHOMIIByjAdBgNVHQ4EFgQU FrUyG9TH8+DmjvO90rA67rI5GNEwgaMGA1UdIwSBmzCBmIAUFrUyG9TH8+DmjvO90rA67rI5 GNGhfaR7MHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0 Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ ARYSc3VwcG9ydEBjYWNlcnQub3JnggEAMA8GA1UdEwEB/wQFMAMBAf8wMgYDVR0fBCswKTAn oCWgI4YhaHR0cHM6Ly93d3cuY2FjZXJ0Lm9yZy9yZXZva2UuY3JsMDAGCWCGSAGG+EIBBAQj FiFodHRwczovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwNAYJYIZIAYb4QgEIBCcWJWh0 dHA6Ly93d3cuY2FjZXJ0Lm9yZy9pbmRleC5waHA/aWQ9MTAwVgYJYIZIAYb4QgENBEkWR1Rv IGdldCB5b3VyIG93biBjZXJ0aWZpY2F0ZSBmb3IgRlJFRSBoZWFkIG92ZXIgdG8gaHR0cDov L3d3dy5jYWNlcnQub3JnMA0GCSqGSIb3DQEBBAUAA4ICAQAox+6cggK6XIASyjUKHYFviWqZ zPJoD3+n4Y1YlT698gbDkFqstWD2mUMBo4hwnJ1inaSHr2dYDTA2O+atSNPLdAKGcT7iKwNo 8TRiQEY7U+oo9Kz7ZpVTik1d/TvZYNfKeWk7sWWSpsaBglyczetNAYql3xFVqhXKHzfAgphw YdtqfJajji5UPk8hqZDv3IK/3OhFrU2Qcwg8lGWwBJl2f+K8wmoVqpcENyTYHpRObQ5RvtbE j8qWbfdD3+gwZSc7e7tDQ2PEQ/ey7GjM4RmOIvuY4XtaPgE3O4sIsKLzlU4ay5vNmrHbsnDw LUrb2LDjb0VIMxL//jwyKlT3xPeK8Igjwkf+ZHpxwNEepmOwB36kL9MBj9yfK7bGCKkPk0gl /BL9n0Lc88Q+9lew191p0QZ3NApL0sqg/xzGjMkWvsTMMjdoc18I+1H3SVM2BQqVAkzyeRoQ 9tg6dZzzHfGiDXBnhhuzFvUv5aTreYb5PQvCcwulmaxv/Ge45S8LphgkjXvRSDUpGECsk2Dh loZQtHpZ2I8hC5/PgpHGO79r3AeRuZdWI6q2bJTGSAY85M5OquT2LwncU28u/HTrOmOZwqas ibynskSgDYoQ42zyJMv6m59wRy7eFIvUsiAJlqJk8SQc3KE1nBWy1LxVLn0G9ZwOVfRa1pPa dq0lc0zFQzGCAlwwggJYAgEBMIGAMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0 dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0 eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnAgMLj20wCQYFKw4DAhoFAKCB sTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMjA0MTAxODA0 MDVaMCMGCSqGSIb3DQEJBDEWBBRXFfDw+hm25enqExK/V37swSizgjBSBgkqhkiG9w0BCQ8x RTBDMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMC BzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAQBSgfBIXvCloLCsH8LpM9TU5Ir+ gchiPuwD2wtcuS1FuFVkRhn2DUj3SJ2iG8ZTxJeut2sc4ONL+Fukb73CfmhROcKtrC74MwZv qFp/y2tOq3gqT95X8tjYB9vn/fDnwgwLO9BWGPOnEiJl+3Co7W05aobLJdB02yH8rbOOOZuW Vdrp/UfC8GwUwPZgMZMKeJDgrrQas0MkBdE59H1UDJIhT8MlDW8KwBxQAazVBLrndQbHGWz/ J3zJuJvDfLhpv0sgsohMUl6pWywFRwE+ABUuFjfyR8PWUaRHRQ5DafVGaCf7XKqNYpPgrmdh RKoQdBSV065UpYDomzwo580ylshL --Hf61M2y+wYpnELGG--