Simple questions, MAKE_ARGS in pkgtools.conf

Nikolas Britton freebsd at nbritton.org
Thu Feb 3 04:46:01 PST 2005


Michael C. Shultz wrote:

>On Thursday 27 January 2005 11:27 pm, Nikolas Britton wrote:
>  
>
>>Giorgos Keramidas wrote:
>>    
>>
>>>On 2005-01-27 21:36, Nikolas Britton <freebsd at nbritton.org> wrote:
>>>      
>>>
>>>>Giorgos Keramidas wrote:
>>>>        
>>>>
>>>>>On 2005-01-25 21:30, Nikolas Britton <freebsd at nbritton.org> wrote:
>>>>>          
>>>>>
>>>>>>If I do something like the following:
>>>>>>
>>>>>>MAKE_ARGS = {
>>>>>>	'www/firefox' => 'WITH_OPTIMIZED_CFLAGS=yes CPUTYPE=p4',
>>>>>>	'multimedia/gstreamer-*' => 'CPUTYPE=p2'
>>>>>>}
>>>>>>
>>>>>>Will portupgrade only build the port with what I put in MAKE_ARGS
>>>>>>or
>>>>>>            
>>>>>>
>>>>>Yes.
>>>>>
>>>>>          
>>>>>
>>>>>>will it just append it to the ports config?
>>>>>>            
>>>>>>
>>>>>Not sure about this.  AFAIK, MAKE_ARGS are passed as command line
>>>>>options to Make when the port is built.  So, if passing them on
>>>>>the command line works until now *and* saves them in the
>>>>>persistent port options cache, it will work with portupgrade too.
>>>>>          
>>>>>
>>>>what is the "persistent port options cache"?
>>>>        
>>>>
>>>The options that a port was built with are saved in /var/db/ports,
>>>in directories of the form "/var/db/ports/{portname}".  This is
>>>what I call the "persistent port options cache".  Persistent
>>>because it survives reboots, upgrades of the ports tree, etc. 
>>>Cache, because it will save you the typing and the popup dialog of
>>>the no-BATCH case.
>>>
>>>      
>>>
>>>>and I'm still confused as you said yes and no to my question.
>>>>        
>>>>
>>>Yes, portupgrade _will_ build the port with what you put in
>>>MAKE_ARGS.
>>>
>>>Yes, options on the command line (i.e. those passed by portupgrade)
>>>will affect the way make builds the port _and_ will be saved by the
>>>ports infrastructure in /var/db/ports.
>>>
>>>Hopefully, this was less confusing :)
>>>      
>>>
>>Yes it was, my question now is whats the point of MAKE_ARGS when
>>options are saved in /var/db/ports and are used when you upgrade a
>>port?....Arggg...
>>
>>I just looked in /var/db/ports and not all the options are there,
>>i.e. I look for horde (it not even in there) and php4 and it says
>>nothing about the options I built it with, WITHOUT_MYSQL=yes
>>WITH_POSTGRESQL=yes, nor are apache13, postgres74, openldap22-server
>>in there. What really scares me about this is if I run portupgrade it
>>will fsck my production server up by not building the ports with the
>>correct options, I'm starting to feel that the only way I can trust
>>the ports system is if I manually upgrade all the ports by hand, I
>>really need some advice and pointers to docs.
>>_______________________________________________
>>freebsd-questions at freebsd.org mailing list
>>http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>To unsubscribe, send any mail to
>>"freebsd-questions-unsubscribe at freebsd.org"
>>    
>>
>
>If you put the following in /etc/make.conf:
>
>      .if ${.CURDIR:M*/multimedia/mplayer}
>      WITH_OPTIMIZED_CFLAGS=yes WITHOUT_RUNTIME_CPUDETECTION=yes \
>      WITH_GTK1=yes WITH_RTC=yes WITH_LIBUNGIF=yes WITH_ARTS=yes \
>      WITH_FRIBIDI=yes WITH_CDPARANOIA=yes WITH_LIBDV=yes        \
>      WITH_MAD=yes WITH_SVGALIB=yes WITH_AALIB=yes WITH_THEORA=yes    \
>      WITH_SDL=yes WITH_ESOUND=yes WITH_VORBIS=yes WITH_XANIM=yes     \
>      WITH_LIVEMEDIA=yes WITH_MATROSKA=yes WITH_XVID=yes WITH_LZO=yes \
>      WITH_XMMS=yes WITH_LANG=en
>      .endif
>
>Then only mplayer will be built with the above options.  You can do the 
>same for any other port, then wether you run portmanager, portupgrade 
>or manually install mplayer it will always be built with the above 
>settings.
>
>
>  
>
Thanks Mike I think I'll use this but I'm still unsure if I need to list 
every option for a port, even if I don't care about them, or just leave 
them out and the options I want will just be appended to the other port 
build options, for example the options for www/horde:

.if ${.CURDIR:M*/www/horde}
WITH_APACHE2=no WITH_PHP5=no WITHOUT_SUPPORTED_DB=no WITHOUT_MYSQL=yes 
WITH_POSTGRESQL=yes \
WITHOUT_IMAP=no WITHOUT_LDAP=no WITHOUT_FTP=no WITHOUT_MCAL=yes 
WITH_IMSP=no \
WITHOUT_FILEINFO=no WITHOUT_GD=no WITHOUT_ZLIB=no WITH_MAGICK=no 
WITHOUT_ICONV=no \
WITHOUT_MBSTRING=no WITHOUT_WV=no WITHOUT_XL=no WITHOUT_GEOIP=no 
WITHOUT_SW=no \
 WITHOUT_WEBCPP=no WITH_SRCHIGH=no WITH_ENSCRIPT=no WITH_RPM=no WITH_DEB=no
.endif

The only options I care about are:

.if ${.CURDIR:M*/www/horde}
WITHOUT_MYSQL=yes WITH_POSTGRESQL=yes WITHOUT_MCAL=yes
.endif

Can I leave out all the crap I don't care about, just taking the 
defaults for them, and the options I want will be appended to the port? 
Is there something simple I'm just not getting? I spent most of the day 
reading the man pages for make, make.conf, ports, the make tutorial, and 
everything I could fine online about ports, portupgrade, etc. but 
nothing has help on how to automate port upgrading with only the options 
I care about. This has got to be something simple thats just not 
clicking in my head.



More information about the freebsd-questions mailing list