Commit Graph

177 Commits

Author SHA1 Message Date
Martin Wilke
97cab7d439 - Whitespace cleanup 2014-01-29 08:26:47 +00:00
Mathieu Arnold
b765405ad0 Add two new options helpers:
${OPT}_${TYPE}_DEPENDS_OFF=<something> will automatically add:
${TYPE_DEPENDS}+=<something> in case OPT is 'off'

${OPT}_${FLAG}_OFF=<something> will automatically add:
${FLAG}+=<something> in case OPT is 'off'

With hat:	portmgr
Sponsored by:	Absolight
2014-01-27 22:53:24 +00:00
Marcus von Appen
78b8b9e4ba New USES=uniquefiles to make files or directories unique
by adding a prefix or suffix to them.

Files listed in UNIQUE_PREFIX_FILES will receive the prefix
set via UNIQUE_PREFIX. The same applies to UNIQUE_SUFFIX_FILES,
but with the chosen UNIQUE_SUFFIX. UNIQUE_PREFIX and
UNIQUE_SUFFIX are set to PKGNAMEPREFIX and PKGNAMESUFFIX by
default.
The uniquefiles USES enables ports to name files in special
ways, e.g. by outlining that the port does not support X11
(-nox11). A binary named bin/foo thus can be easily renamed
to bin/foo-featureA via

USES=                 uniquefiles
UNIQUE_SUFFIX=        -featureA
UNIQUE_SUFFIX_FILES=  bin/foo

The uniquefiles USES automatically adjusts the plist at
installation time. There is no need to consider the prefix
or suffix in the pkg-plist file itself. If the original name
of the renamed file is bin/foo, this exact name should be put
into pkg-plist.

The dirs argument to USES=uniquefiles will cause certain
standard directories, such as DOCSDIR or EXAMPLESDIR to be
prepended with the UNIQUE_PREFIX. The change to the directories
will hapen prior to configuring or building the port, so that
the port Makefile as well as the port's build logic are aware
of the changed name.

Since the uniquefiles USES effectively manipulates the port's
installation and file layout, it will only be available for
stagedir-aware ports. Ports with NO_STAGE=yes will be unable
to use the uniquefiles USES.

Reviewed by:	portmgr@
Approved by:	portmgr@
2014-01-11 16:52:34 +00:00
Marcus von Appen
f002f3a384 - Remove lang/python as implicit build and run dependency from
bsd.python.mk

  Ports need to use a designated python interpreter, whether this
  is the default one chosen by the user (or provided by the system)
  and pulled in via USE_PYTHON[_BUILD|_RUN]=yes or an explicit version
  or version range pulled in via USE_PYTHON[_BUILD|_RUN]=X.Y does not
  matter.

  Ports should however not rely on 'python' at build or installation
  time, whenever possible to avoid problems with building packages for
  different python versions.

  This change tries to raise the barrier for misbehaving ports and eases
  package builds for different python versions.

Tested with:	exp-run (ports/184591)
Reviewed by:	wg@, koobs@
Supported by:	wg@
With hat on:	python@
2013-12-18 17:21:49 +00:00
Tijl Coosemans
7365cece2c New USES=fortran to replace USE_FORTRAN.
USE_FORTRAN=yes can be replaced with USES=fortran or USES=fortran:gcc.
USE_FORTRAN=ifort can be replaced with USES=fortran:ifort.
USE_FORTRAN=f77 is deprecated and the version of gcc it depends
on (lang/gcc34) is scheduled to be removed.

Note that USE_FORTRAN=yes also makes GCC the C/C++ compiler while
USES=fortran only sets the Fortran compiler and can be used together
with Clang as C/C++ compiler.
2013-12-13 13:22:32 +00:00
Marcus von Appen
885b528f02 New USES=twisted, to replace the old USE_TWISTED knob.
twisted can be configured with the arguments run or build to replace
the previous USE_TWISTED_RUN and USE_TWISTED_BUILD knobs. The twisted
components can be added as comma-separated arguments. If you previously
wrote
    USE_TWISTED=        yes
    USE_TWISTED=        conch names
    USE_TWISTED_RUN=    yes
you now would write
    USES=       twisted
    USES=       twisted:conch,names
    USES=       twisted:run
2013-12-08 12:04:07 +00:00
Koop Mast
5d020c831f Remove ltverhack's hard depend on USE_AUTOTOOLS=libtool.
The problem with the old method is that the libtool is configured to look
first in LOCALBASE for libraries to link to. Normaly this wouldn't cause
a problem. However if a port that builds a library with new API also builds
introspection files or say gtk bindings, then libtool will look first into
LOCALBASE and find the old library version for linking the introspection
files or gtk bindings. Due to the missing new API in old library the build
will fail with unresolved symbols.
The new ltverhack will patch the ltmain.sh and/or libtool files that where
bundled with the port. This libtool is correctly configured to first look
in for the just build libraries.

If the port bundled version of ltmain.sh and/or libtool aren't in ${WRKSRC}
then ltverhack_PATCH_FILES can be overwritten with there location in ${WRKSRC}.

As a bonus when using the new ltverhack configure will honor --disable-static
again. So please check your plist after converting.

While here shorten the number of tabs in the lthacks, ltverhack and
ltasneededhack PRE_PATCH components so they are just over 80 chars long.

Exp-run by:	bdrewery@
PR:		ports/183936
Obtained from:	gnome dev repo
2013-11-19 19:54:16 +00:00
Koop Mast
109cedef51 Indent 20131031 entry like the rest of the file. 2013-11-19 19:38:45 +00:00
Rene Ladan
a505e35050 Add a description of USES=kmod 2013-10-31 11:44:12 +00:00
Dmitry Marakasov
73b7596b94 - Remove manual creation and removal of share/applications, as it's now in the mtree (remaining categories)
- Add note on mtree change to CHANGES

Approved by:	portmgr (bdrewery)
2013-10-22 14:04:01 +00:00
Sunpoet Po-Chuan Hsieh
035ec19c96 - Fix typo 2013-10-19 19:26:58 +00:00
Baptiste Daroussin
91bfd4296d New USES=compiler
Supported arguments are:
  - c++11-lang: the port needs a c++11 aware compiler what ever standard
  library it uses, implies features
  - c++11-lib: the port needs a c++11 standard library, implies features
  - c11: the ports needs a c11 aware compiler implies features
  - features: this will create a COMPILER_FEATURES variable which contains
  the list of features ${CC} do support, implies env.
  - env: the COMPILER_TYPE will be set to either gcc or clang.

  By default the uses will try to use clang33 from ports when nothing in
  base is relevant except if the user explicitly defines
  FAVORITE_COMPILER=gcc in his make.conf

Please note that testing tinderbox prior to version: 4.0.1_1 is not able to
properly figure out the dependencies implied by this USES.
2013-10-08 18:55:37 +00:00
Max Brazhnikov
364f20a0c0 - Add new USES= qmake (with staging support)
Approved by:	portmgr (bapt)
2013-10-08 16:02:21 +00:00
Bryan Drewery
07933b2444 - PATCHFILES now support an optional :-pX flag that notes which patch strip
level to use. This allows multiple patches in 1 port to use different
  PATCH_DIST_STRIP values without changing PATCH_DIST_STRIP.

  Syntax: PATCHFILES= patch[:-pX][:distgroup]

PR:		ports/168222
Submitted by:	knu
With hat:	portmgr
2013-10-05 10:20:15 +00:00
Baptiste Daroussin
d7f9cdb38e Introduce the new "scons" USES. The goal is to replace the old bsd.scons.mk
Instead of redifining the building target, let's just reuse the existing ones.
Bonus, MAKE_JOBS is now respected
2013-10-03 06:25:13 +00:00
Baptiste Daroussin
816c63b01c Add an entry about "create packages as a user" 2013-09-24 14:34:59 +00:00
Ruslan Makhmatkhanov
dc659a215b - add new USES target: zope, and convert the tree to it
- old USE_ZOPE knob support was removed from bsd.python.mk
- update CHANGES and bsd.sanity.mk accordingly
- add ZOPE options knob and use it in lang/py-mx-base

The work is done by Marcus von Appen, but any problems are mine.

Submitted by:	mva (python ML)
2013-09-23 13:42:48 +00:00
Baptiste Daroussin
cf099c77fa Add support for staging area in the ports tree
The ports tree is now staged by default. With pkgng the sequence hasn't
changed, the main difference is that creating package is now independent
from installing it. With pkg_install, the package is now created first
and make install, do install the package.

New macros:
- STAGEDIR: PATH to the directory where the port will be staged.
- NO_STAGE: Keep the old behaviour of the ports tree (aka no staging area)

Unsupported macro if NO_STAGE is not set:
- MAN* with staging man page compression and handling of hardlinks and
symlinks is automatically done in the stage. the manpages becomes then a
"normal" plist files and should be tracked in pkg-plist.
- MANCOMPRESSED the compress-man target is able to only compress when it
needed.

New target:
- stage: this installs everything into the stage directory
- makeplist: this will create a pkg-plist and print it to stdout. This is
a sample plist and it should always be _reviewed_ not directly used.

NOTE: with staging only what is in the plist will be installed, nothing more,
meaning a port staged cannot have leftovers exect directories left. It is
really important to double check the pkg-plist to make sure all the files
the maintainer want to package are in! make makeplist can help in that area.

The goal is to handle as quickly as possible a full removal of the NO_STAGE
support.

More features can be added once the full ports tree is converted to using the
staging area

Conversion notes:
- Remove NO_STAGE
- in {pre,do,post}-install
  * Before any usage of ${PREFIX}, ${ETCDIR}, ${PORTSDIR}, ${PORTEXAMPLES}
    prepend ${STAGEDIR}
  * Remove any thing that is done by @exec or +INSTALL script it will be
    done automatically when syncing packages
  * Remove any code to show PKG-MESSAGE it will be done automatically when
    syncing packages
  * Directory creation should remain in post-install (in particular because
    pkgng doesn't work like pkg_install in that area and pkgng ignores the
    @exec mkdir but directly pack the directory even if empty)
- PORTDOCS/PORTEXAMPELS
  To support PORTDOCS, PORTEXAMPLES most of the time there is no more need
  for hacks. just add the right %%PORTDOCS%% or %%PORTEXAMPLES%% in your
  plist then the given files from the stagedir will or will not sync
  according to NOPORTDOCS and NOPORTEXAMPLES.

With hat:	portmgr
Reviewed by:	bdrewery
2013-09-23 05:56:35 +00:00
Bryan Drewery
c6dc82531e - Rename public name of SSP support to WITH_SSP_PORTS as /usr/src
has issues with 'installworld' when WITH_SSP is defined. [1]
  Keep WITH_SSP support for now since it has been announced as that
  already.
- Remove redundant wording in UPDATING [2]

Suggested by:	bapt [1]
Reported by:	blakkheim on EFNet
With hat:	portmgr
2013-09-22 00:26:05 +00:00
Bryan Drewery
c93dfc2e9f SSP support has been added to ports with WITH_SSP for i386 and amd64
on FreeBSD 10, and amd64 on earlier versions.

SSP_UNSAFE is added to disable in a port if it fails to build, but
this should only be used in rare circumstances such as kernel modules.
Otherwise, the port may just be failing due to lack of respecting
LDFLAGS.

On FreeBSD 10, this uses an ldscript in /usr/lib/libc.so to pull in
libssp_nonshared.a to address issues linking on i386 [1].

On earlier FreeBSD versions the WITH_SSP knob will add -lssp_nonshared
to LDFLAGS on i386. This is not needed on amd64. However, several hundred
ports do not currently respect LDFLAGS, so this support is disabled currently
as it causes build failures if a dependency is looking for the stack_chk
symbols.

Many thanks to jlh@ for this as he had many years of patience in getting
all of the necessary pieces [1][2] in.

[1] http://svnweb.freebsd.org/base/head/lib/libc/libc.ldscript?revision=251668&view=markup

PR:		ports/138228 [2]
Submitted by:	jlh (bsd.ssp.mk based on)
Reviewed by:	bapt
With hat:	portmgr
exp-runs done:	37 over a month on 91i386,91amd64,10i386,10amd64
2013-09-20 12:54:54 +00:00
Pietro Cerutti
a14c9ac6b8 - Document the addition of tcl/tk to the USES and DEFAULT_VERSIONS framework. 2013-09-19 09:58:42 +00:00
Baptiste Daroussin
3911a83860 Remove the old perl framework, that also means all the perl code is not loaded inconditionnaly anymore
Huge thanks for az@ for his hard work on the subject!

PR:		ports/172608
Submitted by:	az
2013-09-18 08:44:21 +00:00
Andrej Zverev
0f01418344 - proper formating
Noticed by:	avg@
2013-09-07 08:07:10 +00:00
Guido Falsi
642be1b81d - Make ports use the libc provided iconv implementation on 10-CURRENT
after r254273
- Fix a bunch of ports to properly work after this
- Mark converters/libiconv as IGNORE for systems with iconv in libc

Reviewed by:	bapt
Approved by:	portmgr (bapt)
Discussed with:	bapt, bsam (who both contributed ideas and code)
2013-09-04 18:06:07 +00:00
Baptiste Daroussin
a82e6804c6 Back to the present
Reported by:	madpilot
2013-09-04 13:45:38 +00:00
Baptiste Daroussin
e04cbe160f Document the removal of USE_GNOME=pkgconfig 2013-09-02 10:52:58 +00:00
Bryan Drewery
954b650462 - Add USE_PACKAGE_DEPENDS_ONLY which will try installing dependencies
from existing packages and not fallback on building from source.

  This is useful for package building tools such as poudriere and tinderbox
  to avoid building from source and confusing the build log, if a dependency
  failed to build for some reason.

  NOTE: USE_PACKAGE_DEPENDS has not changed here. It has always
        reverted to source if the package was not present.

PR:		ports/180725
Submitted by:	crees
With hat:	portmgr
2013-08-31 13:56:08 +00:00
Baptiste Daroussin
50cfc86752 Back to the present
Reported by:	feld
2013-07-31 14:31:35 +00:00
Baptiste Daroussin
bbc08b34be Typo 2013-07-31 07:19:05 +00:00
Baptiste Daroussin
ad51948917 Document the new USE=perl5 2013-07-31 06:39:05 +00:00
Rene Ladan
66fee90926 KDE3 and QT3 expired on 2013-07-01, remove these ports.
Unfortunately, this also affects some ports using QT3 as a GUI toolkit.

Changes to infrastructure files:
- bsd.kde.mk : obsolete, remove
- bsd.qt.mk : note that a CONFLICTS_BUILD line can probably go after a while
- CHANGES : document the removals from bsd.port.mk
- KNOBS : remove KDE and QT (KDE4 and QT4 should be used instead)
- MOVED : add the removed ports

PR:		ports/180745
Submitted by:	rene
Approved by:	portmgr (bapt)
Exp-run by:	bapt
2013-07-26 19:19:20 +00:00
Baptiste Daroussin
932db7c46c New USES imake to handle the dependency on imake.
This uses accept 'env' as an argument for ports that do use their own or a different do-configure target.

Modify xmkmf so it accept IMAKECPPFLAGS as default flags for imake and pass it to the called imake.
Modify xorg-cf-files (the FreeBSD.cf configuration file) to allow CppCmd to be overwritten.
Pass CppCmd CcCmd and CplusplusCmd via command line to each call of imake via IMAKECPPFLAGS
Pass IMAKE_DEFINE with the above arguments to MAKE_ARGS so that imake spawned from Makefile generated by a previous
imake also inherit the defined CppCmd CcCmd and CplusplusCmd.
Make imake use devel/tradcpp all the time, so that when buidling with clang we do not depend on gcc's cpp.
Make imake respect CC and CXX
Make imake respect USE_GCC (if set imake will use gcc's cpp).

While here:
- Remove a couple of indefinite articles from comments
- Trim headers
- Fix a couple of ports to build with clang or use: USE_GCC=any
- Fix a now useless redefinition of the extraction chain
- Fix a typo in japanese/Wnn7-lib bundled imake template definitions
- Fix some XMKMF execution with no env specified
- Use options helper in x11/xautolock to simplify the port
2013-06-28 11:51:05 +00:00
Baptiste Daroussin
bdcdc9cc0d Fix AUTHORS line in the last entry 2013-06-26 07:10:28 +00:00
Baptiste Daroussin
4698330b90 Add a new USES: fmake
This uses will allow to build ports using the legacy FreeBSD make, for ports
not compatible with bmake
2013-06-20 09:48:08 +00:00
Boris Samorodov
79218f19fd Fix two typos: add two trailing curly braces. 2013-06-19 16:25:32 +00:00
Baptiste Daroussin
2744ab655b Document the fact that _DEPENDS now also has per options helpers 2013-06-14 14:29:13 +00:00
Baptiste Daroussin
0e8027e93f Add a forgotten helper:
${OPT}_CMAKE_ON and ${OPT}_CMAKE_OFF
2013-06-14 14:18:45 +00:00
Baptiste Daroussin
67cfdf9034 New macros to help dealing with ports that have options:
OPTIONS_SUB=yes when set in a port, all the option names are automatically
added to the PLIST_SUB with "@comment " value in case the option is off and
empty value in case the options is on.

${OPT}_CONFIGURE_ENABLE=<aname> will automatically add:
CONFIGURE_ARGS+=--enable-<aname> in case OPT is activated
CONFIGURE_ARGS+=--disable-<aname> in case OPT is deactivated

${OPT}_CONFIGURE_ON=<something> will automatically add:
CONFIGURE_ARGS+=<something> in case OPT is activated

${OPT_CONFIGURE_OFF=<something> will automatically add:
CONFIGURE_ARGS+=<something> in case OPT is deactivated

${OPT}_CFLAGS will append the specified new flags to CFLAGS if OPT is 'on'
${OPT}_CXXFLAGS will append the specified new flags to CXXFLAGS if OPT is 'on'
${OPT}_LDFLAGS will append the specified new flags to LDFLAGS if OPT is 'on'

${OPT}_CONFIGURE_ENV will append the specified variables to CONFIGURE_ENV if
OPT is 'on'
${OPT}_MAKE_ENV will append the specified variables to MAKE_ENV if OPT is 'on'

${OPT}_USES will append the speficied uses to USES if OPT is 'on'

${OPT}_DISTFILES will append the specified distiles to DISTFILES if OPT in 'on'

Reviewed and tested by:	bdrewery
2013-06-14 13:41:37 +00:00
Baptiste Daroussin
e290dec1ca Add a USES display to replace USE_DISPLAY.
as USE_DISPLAY it will handle the dependencies needed for a display. But it will also start and stop the Xfvb process during the requested phase the display it needed.

it takes 'install' as an implicit argument, but may also accept 'build'
2013-06-14 12:47:19 +00:00
Bryan Drewery
f914b482f1 Fix ports using GH_TAGNAME=master to depend on a known hash
instead of a branch that changes.

With hat:	portmgr
2013-06-07 22:29:01 +00:00
Bryan Drewery
fb58afc3dd Add WRKSRC_SUBDIR to simplify overriding WRKSRC:
WRKSRC=		${WRKDIR}/${DISTNAME}/src
  This becomes:
	WRKSRC_SUBDIR=	src

Reviewed by:	bapt
With hat:	portmgr
2013-06-07 13:25:22 +00:00
Baptiste Daroussin
80d0f2c9c5 Wording
Submitted by:	remko
2013-06-06 06:32:21 +00:00
Baptiste Daroussin
5cb56c4f98 Remove support for parsing the old OPTIONS macro, the compatibility code to load the old optionsfile and compatibility with WITH_ and WITHOUT_ in make.conf remains for now; 2013-06-06 06:29:00 +00:00
Koop Mast
85315ecc01 Document new USES: desktop-file-utils and shared-mime-info. 2013-05-09 15:22:47 +00:00
Baptiste Daroussin
1e5ccf2bb9 USE_GETTEXT has totally been replaced by USES=gettext thanks, jgh and ak
USE_NCURSES has totally been replaced by USES=ncurses
USE_READLINE has totally been replaced by USES=readline
2013-05-07 08:01:46 +00:00
Baptiste Daroussin
358325c418 Add new USES: shebangfix
use it to fix shebang on files specified by SHEBANG_FILES macro, by default it
proposes default values for bash, perl, php, python, ruby, it can be customized
and extended
2013-05-06 22:23:09 +00:00
Baptiste Daroussin
71bf80b1e5 Add new USES: ncurses and readline 2013-05-06 15:31:45 +00:00
Marcus von Appen
67ef08ef8b Introduces USES= iconv to replace USE_ICONV.
It takes no arguments.

This deprecates USE_ICONV, please convert your ports.
USE_ICONV will be removed as soon as it is no more used in
the ports tree.

Approved by:	portmgr (bapt)
2013-04-26 20:44:59 +00:00
Baptiste Daroussin
dba80fffe4 Remove USE_CDRTOOLS from bsd.port.mk
This macros has been useless since cdrtools-cjk port has gone.
This macros also lead to badly handled dependencies assuming that the dependency
on cdrtools was most BUILD and RUN dependency. While most of the time it is
simply a RUN dependency and sometime a build one.

While here:
- Trim some headers
- Convert some ports to optionsng
- Convert some ports to USES= gettext
2013-04-26 12:35:50 +00:00
Baptiste Daroussin
982dc133e0 Remove USE_FREETYPE from bsd.port.mk
It added no really value and was used only by 8 ports
2013-04-26 09:27:26 +00:00