From owner-freebsd-questions@FreeBSD.ORG Fri May 25 01:51:17 2012 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 71492106566C for ; Fri, 25 May 2012 01:51:17 +0000 (UTC) (envelope-from freebsd@edvax.de) Received: from mx02.qsc.de (mx02.qsc.de [213.148.130.14]) by mx1.freebsd.org (Postfix) with ESMTP id F365C8FC1C for ; Fri, 25 May 2012 01:51:16 +0000 (UTC) Received: from r56.edvax.de (port-92-195-20-192.dynamic.qsc.de [92.195.20.192]) by mx02.qsc.de (Postfix) with ESMTP id 980A827785; Fri, 25 May 2012 03:51:09 +0200 (CEST) Received: from r56.edvax.de (localhost [127.0.0.1]) by r56.edvax.de (8.14.5/8.14.5) with SMTP id q4P1p8C4006898; Fri, 25 May 2012 03:51:08 +0200 (CEST) (envelope-from freebsd@edvax.de) Date: Fri, 25 May 2012 03:51:08 +0200 From: Polytropon To: freebsd@dreamchaser.org Message-Id: <20120525035108.a3af81c1.freebsd@edvax.de> In-Reply-To: <4FBEE05A.6000909@dreamchaser.org> References: <4FBBF32D.9070505@dreamchaser.org> <20120522234510.a406941d.goksin.akdeniz@gmail.com> <4FBD7BA0.7070502@dreamchaser.org> <4FBEE05A.6000909@dreamchaser.org> Organization: EDVAX X-Mailer: Sylpheed 3.1.1 (GTK+ 2.24.5; i386-portbld-freebsd8.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org Subject: Re: automating menu options in ports (and other ports build questions) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Polytropon List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 May 2012 01:51:17 -0000 On Thu, 24 May 2012 19:28:58 -0600, Gary Aitken wrote: > 1. When building a port, the system uses sysinstall to set options for > the build. No. The default options are set by the port maintainer, usually in the port's Makefile. > How does one configure those options so make can be run > unattended? You can use two approaches: a) Use "make config" or "make config-recursive" to to select all choices "in one rush", then start building. b) Use a port management tool to do what the commands under a) would do. For example, "portmaster --force-config" would do so. You can also use the port mangement tool's configuration file to store port-specific selections in a file. There's support for this "batch operation" style of working to avoid interaction. > I didn't see anything in the ports documentation, but maybe > I'm blind. Check "man 7 ports". > In particular, how does one configure a dependent port for > the options you want whenever it is built as part of a higher-level build? The "-recursive" targets ("make config-recursive et al.) do this. > 2. Do port builds deal with concurrency? > i.e. can I safely do a make install in two different ports subtrees > simultaneously? I think this highly depends. As soon as you _know_ there will be no "same dependency" occuring, it should be no problem. To avoid this, each port (and the dependencies it needs) could be build in a separate tree, but that could also mean doubled builds; it would also not fully solve the problem of concurrent installations. See the meaning of "building dependencies" and "run dependencies" which both tend to be installed to the (same!) system in order to be usable by the successive port building. > 3. Do the package builds use the defaults set in the ports tree? If > not, how are the options for packages chosen, and how does one determine > what the package options are? They use the default options. > 4. Is there a discussion anywhere of whether or not one should turn on > various optimizations? Depends. For example, if you want to make mplayer run on older systems, you will surely use some optimization and customization. You will also do so if you want all the codecs. Maybe some of the reasons why some options aren't set by default (and therefore not present in the automatically built packages) is patent-lawyer-intellectual-property-blah-pirate-blah stuff, especially because it's illegal to listen to MP3 in the U. S. :-) > If these aren't turned on by default, but are > safe, why aren't they the default? Maybe because there is no "general use benefit" in them? Not sure. See also explaination above. > Is this a cross-platform build > issue, and the default is to build for cross-platform? The ports tree is, if I interpret that correctly, platform-independent. So the selected options should be "best choice" for all supported platforms (and there's some selective logic in the port building infrastructure itself as well as in some of the Makefiles). > 5. It looks like the options which show up using sysinstall are from the > OPTIONS variable in the Makefile. Excuse me, where exactly do you see compile-time options in the sysinstall program? I know it can select and install packages, but PORTS? > Is there any convention for where to > find out more about the option other than the often useless text hint > provided in the menu? > e.g. gvfs has an option called > FUSE Enable fuse > which doesn't say which of the several software systems called FUSE this > refers to > e.g. OPENGL Use OpenGL graphics > doesn't say much about why you would want to do that, > what the opengl option actually does, ramifications, > whether it will help only if your graphics card / driver supports it, > etc. Ha, good question! :-) If you deal with ports, it's often useful to have a second system / terminal / computer / ... with a web browser so you can try to look up the meaning of options. If you don't have that, making a selection can be hard: +--------------------------------------------------------------------+ | Options for stupido 19.84 | | +----------------------------------------------------------------+ | | | [ ] CUPS Enable support for printing (requires CUPS) | | | | [ ] GTK Use GTK backend | | | | [ ] KDE4 Use KDE4 backend in room 101 | | | | [ ] FUSE Enable FUSE | | | | [ ] OPENGL Use OpenGL graphics | | | | [ ] KLOMPATSH Use Klompatsh | | | | [ ] RHUMBOIRE Use RHUMBOIRE backend | | | | [ ] QUEEKNARG Enable QUEEKNARG support | | | | [ ] ECK'N'POOT Build with COM-POO-TAIR module | | | | [ ] SHMEER Build bindings for Shmeer and Shmeerlappen | | | | [ ] SHLORTS Enable support for SHLORTS (requires GNOOLFS) | | | | [x] Use nothing, go away. | | +-+----------------------------------------------------------------+-+ | [ OK ] Cancel | +--------------------------------------------------------------------+ I soon expect the mentioned "programs" to pop up in reality. :-) > Or is this a documentation project in the offing? I would welcome a kind of text file that lists all the strange names with a short description of what they are and what you need them for, being more informative than the short "one liners" in the options dialog. -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...