CHANGES 122 KB
Newer Older
erwin's avatar
erwin committed
1
2
Updating Information for FreeBSD ports developers

3
4
This file is maintained by portmgr@FreeBSD.org and copyrighted by the
FreeBSD Foundation.
erwin's avatar
erwin committed
5
6
7
8

This file contains major changes to ports and the ports infrastructure.
Intended audience are ports committers, maintainers and other
developers. User oriented changes should be submitted for inclusion
9
in the release notes and/or placed into UPDATING.
erwin's avatar
erwin committed
10
11

All ports committers are allowed to commit to this file.
amdmi3's avatar
amdmi3 committed
12

13
14
15
16
17
18
20181225:
AUTHOR: kde@FreeBSD.org

  cmake.mk now defaults to out-of-sourcetree builds. The option 'outsource'
  has been removed. Ports that need an intree build now can pass 'insource'.

19
20
21
22
23
20181110:
AUTHOR: bapt@FreeBSD.org

  texinfo files are now installed in ${PREFIX}/share/info

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
20180630:
AUTHOR: kde@FreeBSD.org

  bsd.qt.mk has been replaced by qt.mk. This changes the way ports have to
  depend on Qt slightly.

  Previously one would have written
  	USE_QT4=foo bar
  or
  	USE_QT5=foo bar
  while now one has to write
  	USES=qt:4
  	USE_QT=foo bar
  respectively
  	USES=qt:5
  	USE_QT=foo bar

  Further qmake.mk no longer respects QT_NONSTANDARD. Ports that don't want to
  get the configure environment provided by qmake.mk should add the argument
  no_env, ports that don't want the configure target should specify no_configure.

45
46
47
48
49
50
51
52
53
20180506:
AUTHOR: brnrd@FreeBSD.org

  All USE_ and WANT_ variables for PHP have been removed and marked
  UNSUPPORTED. Use USES= php:<feature> as a replacement.

  USE_PHPIZE, USE_PHPEXT, USE_ZENDEXT, USE_PHP_BUILD,
  WANT_PHP_CLI, WANT_PHP_CGI, WANT_PHP_MOD, WANT_PHP_WEB, WANT_PHP_EMB

54
55
56
57
58
20180311:
AUTHOR: brnrd@FreeBSD.org

  USE_APACHE has been replaced by USES=apache.

mat's avatar
mat committed
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
20180308:
AUTHOR: mat@FreeBSD.org

  Ports using USES=php:phpize, php:ext, php:zend, and php:pecl are now
  flavored.  They will automatically get flavors (php56, php70, php71, php72)
  depending of the versions they support (set with IGNORE_WITH_PHP).  As a
  consequence, ports using USES=pear and USES=horde are also flavored.

  As all packages must have different package names, the following variables
  must be used in PKGNAMEPREFIX/SUFFIX:

    Variable                     + Values                +
    --------------------------------------------------------------------------------------
    PHP_PKGNAMEPREFIX            | php56- php72-         | PHP Extensions
                                 |                       | and modules
    --------------------------------------------------------------------------------------
    PHP_PKGNAMESUFFIX            | -php56 -php72         | PHP Applications
    --------------------------------------------------------------------------------------
    PECL_PKGNAMEPREFIX           | php56-pecl-           | PECL extensions
                                 |                       | automatic
    --------------------------------------------------------------------------------------
    PEAR_PKGNAMEPREFIX           | php56-pear-           | PEAR modules
                                 |                       | without PEAR_CHANNEL
    PEAR_<channel>_PKGNAMEPREFIX | php56-pear-channel-   | with PEAR_CHANNEL
                                 |                       | automatic

  In all the ports with PHP dependencies, the *_DEPENDS entries MUST end with
  the flavor so that the framework knows which to build/use.  This is done by
  appending '@${PHP_FLAVOR}' after the origin.  For example:

    RUN_DEPENDS=  ${PEAR_PKGNAMEPREFIX}Validate>=0.5.0:devel/pear-Validate@${PHP_FLAVOR} \
                  ${PECL_PKGNAMEPREFIX}smbclient>=0.8.0:net/pecl-smbclient@${PHP_FLAVOR} \

  PHP applications (for example, www/wordpress) can also get flavors, add the
  flavors keyword to USES=php, for example: USES=php:flavors, and add
  ${PHP_PKGNAMESUFFIX} to its PKGNAMESUFFIX.

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
20180125:
AUTHOR: mat@FreeBSD.org

  Add support to passing directories to EXTRA_PATCHES.

  Instead of:

    EXTRA_PATCHES=        ${PATCHDIR}/feat-foo-patch-file.c \
                          ${PATCHDIR}/feat-foo-patch-file.h \
                          ${PATCHDIR}/feat-foo-patch-file2.c

  Move those files to ${PATCHDIR}/feat-foo/, name them patch-*, and set:

    EXTRA_PATCHES=        ${PATCHDIR}/feat-foo

mat's avatar
mat committed
111
112
113
114
115
116
20180116:
AUTHOR: mat@FreeBSD.org

  The deprecated PYTHON_DEFAULT_VERSION, PYTHON2_DEFAULT_VERSION, and
  PYTHON3_DEFAULT_VERSION have been removed.

rakuco's avatar
rakuco committed
117
118
119
120
121
122
123
124
125
126
127
128
129
130
20180106:
AUTHOR: kde@FreeBSD.org

  USES=qmake now accepts a new variable, QMAKE_CONFIGURE_ARGS.

  Starting with Qt 5.8.0, qmake can use configure.json files to help define
  configuration options and configuration time checks. These options are
  generally in the form '-foo -no-bar', and must be passed after "--" at the
  end of qmake's command line.

  The QMAKE_CONFIGURE_ARGS variable allows one to set those options, and
  USES=qmake takes care of passing them at the right position when invoking
  qmake.

tcberner's avatar
tcberner committed
131
132
20180102:
AUTHOR: kde@FreeBSD.org
miwi's avatar
miwi committed
133

tcberner's avatar
tcberner committed
134
  There is a new USES=eigen to depend on math/eigen[23].
miwi's avatar
miwi committed
135
136

  Usage:
tcberner's avatar
tcberner committed
137
138
139
140
141
142
143
144
    USES=eigen:<version>[,<type>]

    version: 2 or 3 (required)
    type:    build (default), run

  For example:
    USES=eigen:2,build,run
  will add a BUILD- and RUN_DEPENDS on math/eigen2, and
miwi's avatar
miwi committed
145
    USES=eigen:3
tcberner's avatar
tcberner committed
146
147
  will add a BUILD_DEPENDS on math/eigen3.

148
149
150
20171231:
AUTHOR: kde@FreeBSD.org

miwi's avatar
miwi committed
151
  USES=cmake now supports two additional list variables:
152
153
154
155
    * CMAKE_ON  : List of variables to turn on
    * CMAKE_OFF : List of variables to turn off
  This can be used as a shortcut to append these to CMAKE_ARGS.

miwi's avatar
miwi committed
156
  For example ports that previously set
157
158
159
160
161
    CMAKE_ARGS=		-DVAR1:BOOL=TRUE -DVAR2:BOOL=TRUE -DVAR3:BOOL=FALSE
  can now set this as
    CMAKE_ON=		VAR1 VAR2
    CMAKE_OFF=		VAR3

mat's avatar
mat committed
162
163
164
165
166
167
168
169
170
171
20171130:
AUTHOR: mat@FreeBSD.org

  Ports using USE_PYTHON=distutils are now flavored.  They will automatically
  get flavors (py27, py34, py35, py36) depending on what versions they support.

  There is also a USE_PYTHON=flavors for ports that do not use distutils but
  need FLAVORS to be set.  A USE_PYTHON=noflavors can be set if the port is
  using distutils but flavors are not wanted.

sunpoet's avatar
sunpoet committed
172
  A new USE_PYTHON=optsuffix that will add PYTHON_PKGNAMESUFFIX has been added
mat's avatar
mat committed
173
174
175
176
177
178
179
180
181
182
183
184
185
186
  to cope with Python ports that did not have the Python PKGNAMEPREFIX but are
  flavored.

  USES=python now also exports a PY_FLAVOR variable that contains the current
  python flavor.  It can be used in dependency lines when the port itself is
  not python flavored, for example, deskutils/calibre.

  By default it will only generate flavors for the versions in PYTHON2_DEFAULT
  and PYTHON3_DEFAULT.  Define BUILD_ALL_PYTHON_FLAVORS in your make.conf to
  generate all possible flavors.  A port can set USE_PYTHON=allflavors to have
  all the flavors and not simply the default ones.

  In all the ports with Python dependencies, the *_DEPENDS entries MUST end
  with the flavor so that the framework knows which to build/use.  This is done
187
  by appending '@${PY_FLAVOR}' after the origin.  For example:
mat's avatar
mat committed
188
189
190

    RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}

mat's avatar
mat committed
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
20171130:
AUTHOR: mat@FreeBSD.org

  To help with flavored ports, helpers are available.  In these, replace <*>
  with the flavor name.

  *_PKGNAMEPREFIX *_PKGNAMESUFFIX *_PLIST *_DESCR will overwrite the variable.

  *_CONFLICTS *_CONFLICTS_BUILD *_CONFLICTS_INSTALL *_PKG_DEPENDS
  *_EXTRACT_DEPENDS *_PATCH_DEPENDS *_FETCH_DEPENDS *_BUILD_DEPENDS
  *_LIB_DEPENDS *_RUN_DEPENDS *_TEST_DEPENDS will append to the variable.

  For example:

    flavor2_PKGNAMESUFFIX=	-foo

  can replace:

    .if ${FLAVOR:U} == flavor2
    PKGNAMESUFFIX=	-foo
    .endif

mat's avatar
mat committed
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
20171130:
AUTHOR: mat@FreeBSD.org

  Flavors are a way to have multiple variations of a port.  The port is built
  multiple times, with the variations.  To declare flavors, set the FLAVORS
  variable to the flavors you want defined.  The first flavor will be the
  default:

    FLAVORS=   flavor1 flavor2

  The flavors MUST be lowercase, and can contain [[:lower:][:digit:]_].

  Then, when building the port, pass the FLAVOR as an argument after make to
  select the flavor.

    $ make install FLAVOR=flavor2

  In the port, you can then change the behavior depending on the value of the
  FLAVOR variable.  Note that the different flavors MUST have different
  PKGNAMEs.  Be sure to guard against an empty FLAVOR variable by using
  ${FLAVOR:U}:

    .if ${FLAVOR:U} == flavor2
    PKGNAMESUFFIX=	-foo
    OPTIONS_DEFAULT+=   FOO
    .endif

bdrewery's avatar
bdrewery committed
240
241
242
243
244
  A tools guide is available at:
        https://wiki.freebsd.org/Ports/FlavorsTools
  A port migration guide is available at:
        https://wiki.freebsd.org/Ports/FlavorsMigration

245
246
247
248
249
250
251
20171020:
AUTHOR: ak@FreeBSD.org

  The USES=fmake has been removed. It was created to help migration from
  old FreeBSD make (pmake) and there are no more users of it left in
  the ports tree.

mat's avatar
mat committed
252
253
254
255
256
257
20171012:
AUTHOR: mat@FreeBSD.org

  Remove WANT_GNOME and HAVE_GNOME, they were in disuse, and made useless by
  options.

bapt's avatar
bapt committed
258
259
260
261
262
263
264
265
266
267
268
269
270
271
20171011:
AUTHOR: bapt@FreeBSD.org

  New BINARY_ALIAS variable has been added, when defined it will create symlinks
  of some given binaries in a directory which will be prepended to the PATH.

  The syntax is the following:
  BINARY_ALIAS=   target1=source1  target2=source2

  For example to have a "swig" binary in the path which will be pointing at
  swig3.0 and a "sed" pointing at GNU sed: gsed

  BINARY_ALIAS=  swig=swig3.0 sed=gsed

tcberner's avatar
tcberner committed
272
273
274
275
276
277
278
279
280
281
282
283
284
20170625:
AUTHOR: kde@FreeBSD.org

  The default generator for USES=cmake ports has been switched to ninja.

  Previously it was possible to opt-in to using ninja instead of make(1)
  by setting CMAKE_NINJA, now ports need to opt-out.

  Ports that do not build with ninja must switch from
      USES=cmake:<args>
  to
      USES=cmake:<args>,noninja

kwm's avatar
kwm committed
285
286
287
288
20170417:
AUTHOR:	kwm@FreeBSD.org

  New USES: meson, to handle properly the meson building system.
miwi's avatar
miwi committed
289

290
291
292
293
294
295
296
297
298
299
300
301
20170313:
AUTHOR: tijl@FreeBSD.org

  HTTPS certificates are now verified when "make makesum" fetches distfiles.
  If this fails make sure you have a CA certificate bundle installed such as
  security/ca_root_nss.  If it still fails and there are other HTTPS sites
  with a valid certificate consider removing the site from MASTER_SITES.
  If the site cannot be removed you can disable certificate verification by
  adding the following line to the port Makefile:

  FETCH_ENV=	SSL_NO_VERIFY_PEER=1 SSL_NO_VERIFY_HOSTNAME=1

302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
20170218:
AUTHOR: kde@FreeBSD.org

  * Qt 4's binaries have been moved to lib/qt4/bin to match what is already done
    to Qt 5's binaries. Since these binaries are no longer in ${LOCALBASE}/bin,
    they also do not have the -qt4 suffix in their names any more.

  * Consequently, there are no Qt 4 or Qt 5 binaries in the default $PATH, and
    misc/qtchooser is now used to select the actual Qt binaries. In other
    words, calling "qmake" or "moc" now goes through qtchooser, which prefers
    Qt 5 binaries by default.

    The ports framework handles this automatically. The UPDATING entry covers
    this in more detail.

  * Qt 5.7.1 requires a C++11-capable compiler to be used. qmake and CMake pass
    the appropriate flags to the compiler (such as -std=c++11) automatically,
    but if your port fetches Qt's build flags via pkg-config (which can be the
    case for autotools-based ports), you might need to take care of this
    manually by setting USE_CXXSTD in your Makefile:

      USE_CXXSTD=	c++11

mat's avatar
mat committed
325
326
327
328
329
330
331
332
333
334
335
336
20160116:
AUTHOR: mat@FreeBSD.org

  A new EXTRA_PATCH_TREE has been added.  Points to a directory hierarchy with
  the same layout as the ports tree, where local patches can be found.  This
  allows a third party to keep their patches in some other source control
  system if needed.

  For example, if you have EXTRA_PATCH_TREE=/patches, when building
  lang/perl5.24, any file named patch-* in /patches/lang/perl5.24/ will be used
  to patch the Perl distribution.

mat's avatar
mat committed
337
338
339
340
341
342
343
344
345
346
347
348
349
350
20160116:
AUTHOR: mat@FreeBSD.org

  During extraction of the do-patch target into a separate script, the "-d
  PATCH_WRKSRC" had to be removed from the PATCH_ARGS and PATCH_DIST_ARGS
  variables.  If using these variables directly, you will need to adapt the
  Makefile. For example:

    ${PATCH} ${PATCH_ARGS} < ${FILESDIR}/extra-patch

    needs to be changed to:

    ${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} < ${FILESDIR}/extra-patch

351
352
353
354
355
20161218:
AUTHOR: tcberner@FreeBSD.org

  QT_PREFIX has been dropped, in favour of using PREFIX directly.

amdmi3's avatar
amdmi3 committed
356
357
358
359
360
361
362
20160911:
AUTHOR: amdmi3@FreeBSD.org

  Support has been added for complete set of Creative Commons licenses

  CC-(BY|BY-ND|BY-NC|BY-NC-ND|BY-NC-SA|BY-SA)-(1.0|2.0|2.5|3.0|4.0)

363
364
365
366
367
368
369
20160909:
AUTHOR: amdmi3@FreeBSD.org

  Verbose build logs are now preferred and enabled by default for cmake,
  ninja and GNU configure.  Ports which still produce quiet build logs
  (hiding actual commands) are strongly advised to switch to verbose logs.

370
371
372
373
374
375
376
377
378
20160908:
AUTHOR: amdmi3@FreeBSD.org

  Support has been added for NONE license, use it when the port doesn't
  have cleanly defined licensing terms.  Note that without clean license
  allowing you to use and distribute the code it would be be illegal to do
  so in many jurisdictions, so for ports with NONE license no distfiles or
  packages are distributed.

379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
20160824:
AUTHOR: mat@FreeBSD.org

  To complete the USE_GITHUB framework, a GH_SUBDIR variable has been added.
  It automatically moves a secondary distfile to the right place inside WRKSRC.
  It also extends the GH_TUPLE variable to make it as easy to use as possible.

  Before:

    GH_TUPLE=   Regaddi:Chart.js:f13f99b:chart_js \
                FVANCOP:ChartNew.js:77e7f87:chartnew_js
    post-extract:
            @${RMDIR} ${WRKSRC}/database ${WRKSRC}/3rd/Chart.js
            @${MV} ${WRKSRC_database} ${WRKSRC}/database
            @${MV} ${WRKSRC_chart_js} ${WRKSRC}/3rd/Chart.js

  After:

    GH_TUPLE=   Regaddi:Chart.js:f13f99b:chart_js/3rd/Chart.js \
                FVANCOP:ChartNew.js:77e7f87:chartnew_js/3rd/ChartNew.js

  It also works if not using GH_TUPLE but the regular
  GH_ACCOUNT/PROJECT/TAGNAME variables:

    GH_SUBDIR=  3rd/Chart.js:chart_js 3rd/ChartNew.js:chartnew_js

405
406
20160824:
AUTHOR: kde@FreeBSD.org
407

408
409
410
411
412
  A new USES file has been introduced: USES=kde:4, which replaces the old
  bsd.kde4.mk file in preparation for upcoming KDE Frameworks and Plasma5
  ports.

  Ports depending on KDE4 have to switch from
413
     USE_KDE4=foo bar
414
  to
415
416
     USES=kde:4
     USE_KDE=foo bar
417
  and make sure to switch from using KDE4_PREFIX to the new name KDE_PREFIX
418
419
  in the Makefiles as well as plists.

420
421
422
423
424
425
426
427
428
20160821:
AUTHOR: kde@FreeBSD.org

  A new USES file has been introduced: USES=grantlee:[4,5], which introduces a
  LIB_DEPENDS on either devel/grantlee (Qt4) or devel/grantlee5 (Qt5).

  Uses/grantlee.mk also exports the GRANTLEE_VERSION variable to users, and the
  GRANTLEE_VERSION_FULL and GRANTLEE_VERSION_SHORT pkg-plist substitutions.

429
20160817:
mat's avatar
mat committed
430
431
432
433
434
435
436
437
AUTHOR: mat@FreeBSD.org

  This adds the possibility to use regular expressions for the makeplist stage
  of the PLIST_SUB life.

  From time to time, the values are too generic, and they get in the way of
  other stuff.

438
439
  This adds the possibility to have a VAR_regex=regex that will be used
  instead of the VAR=string to search for possible replacements.
mat's avatar
mat committed
440
441
442
443
444
445
446

  For example, in lang/perl5*, there is PERL_ARCH=mach, which will get replaced
  in paths if a file is called, say "machine", will end up being
  "%%PERL_ARCH%%ine".  Adding PERL_ARCH_regex="\bmach\b" will ensure only full
  words are replaced, so machine will stay machine, but "lib/mach/foo "will
  still be replaced by "lib/%%PERL_ARCH%%/foo".

447
448
449
450
451
452
453
454
455
456
20160803:
AUTHOR: mat@FreeBSD.org

  Every PHP (or Zend) extension now installs its own .ini file in
  /usr/local/etc/php.  A PHP extension will be automatically activated when
  installed.  The order into which extensions are loaded is automatically
  guessed.  In some very rare cases, the guess will be wrong, and PHP_MOD_PRIO
  will need to be set.  Refer to the USES=php section of the Porter's Handbook
  for more information.

mat's avatar
mat committed
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
20160628:
AUTHOR: mat@FreeBSD.org

  USEify USES=php.

  The following variables have been folded into arguments:

  - USE_PHPIZE -> USES=php:phpize
  - USE_PHPEXT -> USES=php:ext
  - USE_ZENDEXT -> USES=php:zend
  - USE_PHP_BUILD -> USES=php:build
  - WANT_PHP_CLI -> USES=php:cli
  - WANT_PHP_CGI -> USES=php:cgi
  - WANT_PHP_MOD -> USES=php:mod
  - WANT_PHP_WEB -> USES=php:web
  - WANT_PHP_EMB -> USES=php:embed

mat's avatar
mat committed
474
475
476
477
478
20160627:
AUTHOR: mat@FreeBSD.org

  USE_OPENSSL has been replaced by USES=ssl.

adamw's avatar
adamw committed
479
480
481
482
483
484
485
486
487
488
489
490
20160625:
AUTHOR: adamw@FreeBSD.org

  A new ${opt}_CMAKE_BOOL OPTIONS helper has been added. Instead of:

    FOO_CMAKE_ON=	-DWITH_FOO:BOOL=YES -DWITH_BAR:BOOL=YES
    FOO_CMAKE_OFF=	-DWITH_FOO:BOOL=NO  -DWITH_BAR:BOOL=NO

  you can use this shortcut:

    SOMEOPT_CMAKE_BOOL=	WITH_FOO WITH_BAR

491
492
493
494
495
496
497
498
499
500
501
502
503
504
20160525:
AUTHOR: mat@FreeBSD.org

  A new stage-qa test has been added, it reports all shared libraries
  dependencies that are not part of the port list of dependencies.  It help
  finds what is called proxy dependencies.

  A is needed by B, and B is needed by C.  If C also needs A, then it needs to
  be registered, and this check will tell you to do so.

  Right now, it is only reporting the problems, but if you add
  PROXYDEPS_FATAL=yes to your environment, it will give an error and will force
  you to fix the dependencies.

bapt's avatar
bapt committed
505
506
507
508
509
510
511
512
513
20160525:
AUTHOR: bapt@FreeBSD.org

  New keyword @xmlcatmgr has been added, to handle the XML and SGML catalog
  maintainance, in order to improve consistency and correctness of the
  generation of the catalog.
  If the catalog file has an extension being '.xml' it will be automatically
  added to the XML catalog, otherwise it will be added to the SGML catalog

514
515
516
517
518
519
520
521
522
523
20160512:
AUTHOR: emaste@FreeBSD.org

  "make makesum" now writes the current timestamp to distinfo when it is run.
  This is done to support development and prototyping efforts for reproducible
  package builds, which require some concept of a "last updated" time.

  The TIMESTAMP can currently be ignored for ports that have no distinfo, and
  for updates done without using "make makesum."

mat's avatar
mat committed
524
525
526
527
528
20160428
AUTHOR: mat@FreeBSD.org

  USE_RUBYGEMS has been replaced by USES=gem.

mat's avatar
mat committed
529
530
531
532
533
534
535
20160426:
AUTHOR: mat@FreeBSD.org

  USE_MYSQL and USE_BDB have been replaced by USES=mysql and USES=bdb.

  WANT_BDB_VER=XX should be replaced by USES=bdb:XX.

536
537
538
539
540
541
20160414:
AUTHOR: mat@FreeBSD.org

  USE_RC_SUBR=yes has not done anything for a long time, it will now give an error.

20160413:
jbeich's avatar
jbeich committed
542
543
544
545
546
547
548
549
550
551
552
AUTHOR: jbeich@FreeBSD.org

  Introducing CONFIGURE_OUTSOURCE. It changes HAS_CONFIGURE and GNU_CONFIGURE
  by invoking configure, build and install stage outside of source tree e.g.,

    $ mkdir ../.build
    $ cd ../.build
    $ ${OLDPWD}/configure
    $ gmake
    $ gmake install

553
554
555
556
557
558
559
560
561
562
563
564
565
566
20160402:
AUTHOR: bapt@FreeBSD.org

  Adding ${PORTSDIR} in dependency lines is no longer necessary meaning

  RUN_DEPENDS=  foo:${PORTSDIR}/bar/foo

  can now be written

  RUN_DEPENDS=  foo:bar/foo

  if the path after ':' is not absolute the framework will automatically
  prepend ${PORTSDIR}/

mat's avatar
mat committed
567
568
569
570
571
572
573
574
575
20160301:
AUTHOR: mat@FreeBSD.org

  Introduce GH_TUPLE.

  GH_TUPLE allows one to put all the GH_{ACCOUNT,PROJECT,TAGNAME} into one
  variable, in the form of account:project:tagname[:group].  It is helpful when
  there are many submodules.

576
577
578
579
580
581
582
583
584
585
586
587
20160207:
AUTHOR: kwm@FreeBSD.org

  The GNOME and MATE framework activation changed. To use the frameworks
  now either gnome or mate needs to be added USES.

  The usage of USE_GNOME, USE_MATE, INSTALLS_ICONS and for example
  GLIB_SCHEMAS stays the same.

  Like with USES, the use of USE_GNOME and so after bsd.port.pre.mk
  is now forbidden.

amdmi3's avatar
amdmi3 committed
588
589
590
591
592
593
594
595
596
597
20160112:
AUTHOR: amdmi3@FreeBSD.org

  Support has been added for "or later" variants of GNU licenses
  (e.g. LICENSE=GPLv2+) and for Public Domain (LICENSE=PD).

  Complete list of new LICENSE values:

  AGPLv3+ GPLv1+ GPLv2+ GPLv3+ GPLv3RLE+ LGPL20+ LGPL21+ LGPL3+ PD

bapt's avatar
bapt committed
598
20160110:
599
600
601
602
603
AUTHOR: bapt@FreeBSD.org

  USE_FIREBIRD and USE_SQLITE has been replaced by USES=firebird and
  USES=sqlite

604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
20151105:
AUTHOR: mat@FreeBSD.org

  Change the meaning of NO_WRKSUBDIR to force a WRKDIR != WRKSRC.

  Right now, NO_WRKSUBDIR means that the extraction does not produce a
  subdirectory, and that everything goes straight into WRKDIR.  It is
  problematic, because during the build of a port, quite a few files
  are created in there, and then, a stage directory, where everything
  is installed, and then a pkg directory where the package is created,
  and those often conflict, or get in the way, of the building
  process.

  With this, NO_WRKSUBDIR will extract the distfiles directly into
  WRKSRC instead of WRKDIR.  In this case, WRKSRC is artificial and is
  based on PKGNAME and not DISTNAME, mitigate conflicts with rc files.

amdmi3's avatar
amdmi3 committed
621
622
623
624
625
626
627
628
629
630
631
632
633
634
20151022:
AUTHOR: amdmi3@FreeBSD.org

  Improved support for USES=shebangfix

  - We now support multiple values for *_OLD_CMD
  - We replace more variants by default (/bin/${lang}, /usr/bin/${lang},
    /usr/bin/env ${lang}).
  - shebangfix now also supports lua if USES=lua is specified
  - Pattern matching has been improved: we now only match whole worlds,
    e.g. "/usr/bin/perl5.005" is no longer erroneously replaced with
    "${perl_CMD}5.005".

  Note that *_OLD_CMD entries which contain spaces must now be quoted.
635

636
637
638
639
640
641
642
20150928:
AUTHOR: amdmi3@FreeBSD.org

  Implemented complete support for test target.

  You can now `make test' on any port to run test sequence, no-op by default.
  If a port defines TEST_TARGET, it'll run sub-make with specified target,
amdmi3's avatar
amdmi3 committed
643
644
  usually `check' or `test', useful if upstream supports that. The port may
  instead define custom do-test target, as well as usual satellite targets:
645
646
647
648
649
650
651
652
653
654
655

    {pre,do,post}-test, {pre,do,post}-test-OPT, {pre,do,post}-test-OPT-off

  `make test' builds and stages port first, so test may use both WRKDIR and
  STAGEDIR, and both BUILD and RUN depends are available for test target.
  Additionally, TEST_DEPENDS is now properly supported and may be used to
  define additional depends specifically for testing.

  Framework may define default tests for specific cases. For instance,
  perl5.mk and cran.mk provide default test target on their own.

bapt's avatar
bapt committed
656
657
658
659
660
661
662
663
664
665
20150926:
AUTHOR: bapt@FreeBSD.org

  @sample now accept arguments, so it can now be used the following way:

  @sample afile.sample
  or
  @sample path/to/example etc/target

20150926:
bapt's avatar
bapt committed
666
667
668
669
670
671
672
673
674
675
676
AUTHOR: bapt@FreeBSD.org

  New keywords are supported in pkg since 1.5.x:
  @preexec <command>: execute the <command> during pre-install scripts
  @postexec <command>: execute the <command> during post-install scripts
  @preunexec <command>: execute the <command> during pre-deinstall scripts
  @postunexec <command>: execute the <command> during post-deinstall scripts

  @exec does not specify when if should be executed and is now considered as
  deprecated.

677
678
679
680
681
682
20150914:
AUTHOR: mat@FreeBSD.org

  Introducing the %%PERL5_MAN1%% PLIST_SUB entry, as Perl now installs man1
  pages in the same prefix as man3 pages.

mat's avatar
mat committed
683
684
685
686
687
688
689
690
691
692
693
20150828:
AUTHOR: mat@FreeBSD.org

  <opt>_VARS and <opt>_VARS_OFF have been introduced to allow for a generic way
  to set/append to variables.

  OPT1_VARS=  foo=bar baz+=bam

  will set FOO to bar and append bam to BAZ if OPT1 is enabled.  <opt>_VARS_OFF
  works the same way, if the option is disabled.

rakuco's avatar
rakuco committed
694
695
696
697
698
699
20150818:
AUTHOR: kde@FreeBSD.org

  The CMAKE_ENV option has been deprecated. It no longer has any effect, and
  the CONFIGURE_ENV variable should be used instead.

700
701
702
703
704
705
706
707
708
709
710
711
712
713
20150818:
AUTHOR: mat@FreeBSD.org

  <opt>_IMPLIES and <opt>_PREVENTS have been introduced to register dependency,
  or conflicts between options.

    OPTIONS_DEFINE= FOO BAR BAZ

    FOO_IMPLIES=	BAR
    BAZ_PREVENTS= BAR

  If the FOO option is selected, the BAR option will be enabled as well.  If
  the BAZ and BAR options are both enabled, an error will be given.

mat's avatar
mat committed
714
715
716
717
718
719
720
721
20150817:
AUTHOR: mat@FreeBSD.org

  UNIQUENAME and LATEST_LINK have been removed. LATEST_LINK was only used by
  ports-mgmt/pkg{,-devel} and PKGBASE can be used in its stead.  UNIQUENAME was
  used by USE_LDCONFIG where it was not unique enough, and as old compat shims
  with options.

722
723
724
725
726
727
728
20150716:
AUTHOR:	kwm@FreeBSD.org

  USE_GHOSTSCRIPT was replaced by USES=ghostscript. The ghostscript USES
  accepts version, build, run, nox11 and for version 9 the agpl argument.
  If no version is specified, the default 9 for GHOSTSCRIPT_DEFAULT is honored.

mat's avatar
mat committed
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
20150701:
AUTHOR: mat@FreeBSD.org

  Make option target helpers have been added, it allows replacing:

    .include <bsd.port.options.mk>

    post-patch:
      ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
	${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh
    .if ${PORT_OPTIONS:MPTHREAD}
      ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|-lpthread|g;' \
	${WRKSRC}/hints/freebsd.sh
    .else
      ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%||g;' \
	${WRKSRC}/hints/freebsd.sh
    .endif

  with:

    post-patch:
      ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
	${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh

    post-patch-PTHREAD-on:
      ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|-lpthread|g;' \
	${WRKSRC}/hints/freebsd.sh

    post-patch-PTHREAD-off:
      ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%||g;' \
	${WRKSRC}/hints/freebsd.sh

bapt's avatar
bapt committed
761
762
763
764
765
766
20150622:
AUTHOR: bapt@FreeBSD.org

  Remove USE_RCORDER, USE_RC_SUBR has been modified to support PREFIX=/usr
  automatically

767
768
769
770
771
772
773
20150529:
AUTHOR: mat@FreeBSD.org

  Extend the multiple distfiles USE_GITHUB framework by allowing it to fetch
  only additional distfiles, but not the main one.  Set USE_GITHUB=nodefault
  and use the GH_* variables with groups as usual.

774
775
20150528:
AUTHOR: mat@FreeBSD.org
amdmi3's avatar
amdmi3 committed
776

777
778
  USE_GITHUB can now fetch multiple distfiles.  It uses a grouping feature
  similar to MASTER_SITES/PATCH_SITES.
amdmi3's avatar
amdmi3 committed
779

780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
  Some helpful variables are provided: WRKSRC_<group> for putting things in the
  right place in post-extract, and DISTNAME_<group>/DISTFILE_<group> for use
  with EXTRACT_ONLY.

  A simple example:

    PORTNAME=     bar
    PORTVERSION=  1.0
    USE_GITHUB= yes
    GH_ACCOUNT= foo
    GH_PROJECT= ${PORTNAME}-images:images

    post-extract:
	    @${MV} ${WRKSRC_images} ${WRKSRC}/images

  It will fetch those two distfiles:

    $ make fetch-urlall-list
    https://codeload.github.com/foo/bar/tar.gz/1.0?dummy=/foo-bar-1.0_GH0.tar.gz
    https://codeload.github.com/foo/bar-images/tar.gz/1.0?dummy=/foo-bar-images-1.0-1.0.tar.gz

  It will then extract them to ${WRKDIR} in their respectives directories.

803
804
805
806
807
808
809
810
20150526:
AUTHOR: antoine@FreeBSD.org

  PYTHON_REL has been switched from a 3 digits number to a 4 digits number to
  handle python 2.7.10.  Ports checking for python 2.7.9 should compare
  PYTHON_REL against 2709 and ports checking for python 2.7.10 should compare
  PYTHON_REL against 2710.

mat's avatar
mat committed
811
812
813
814
815
20150521:
AUTHOR: mat@FreeBSD.org

  GH_COMMIT support has been removed, see the 20150319 for more informations.

816
817
818
819
820
821
822
823
824
20150419:
AUTHOR: tijl@FreeBSD.org

  USE_AUTOTOOLS has been deprecated.  It can be replaced with USES=autoreconf
  and GNU_CONFIGURE=yes.

  Support for USE_AUTOTOOLS=libtoolize has been removed.  It can be replaced
  with "USES=autoreconf libtool".

bapt's avatar
bapt committed
825
826
827
828
829
830
831
832
833
834
835
20150409:
AUTHOR: bapt@FreeBSD.org

  Add a new USES=gnustep to handle the GNUstep ports. Now the dependencies on
  GNUstep libraries is done via the regular LIB_DEPENDS

  USE_GNUSTEP is now a macro that accept many arguments: back, build, gui, back
  Depending on the feature needed for a given port

  Reuse USES=objc to avoid duplicating code

bapt's avatar
bapt committed
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
20150408:
AUTHOR: bapt@FreeBSD.org

  Add a new USES=waf to handle the waf building system, allowing to factorise
  code. Plug waf into MAKE_CMD and CONFIGURE_CMD so the regular defined targets
  can be reused.

  Always define _MAKE_JOBS so that when bsd.port.mk will stop overwritting
  _MAKE_JOBS when parallel jobs are disabled we can enforce -j1 (which is needed
  to really disable parallelisation with waf

  WAF_CMD has been created to allow one to override the location of the waf
  script relatively to WRKSRC

  CONFIGURE_TARGET is by default defined to "configure"
  ALL_TARGET is by default defined to "build"
  INSTALL_TARGET is by default defined to "install"

  USES=waf is by default stagedir safe

856
857
858
859
860
861
20150407:
AUTHOR: bapt@FreeBSD.org

  USE_XZ and USE_BZIP2 are not supported anymore, they have been replaced by
  USES=tar:bzip2 and tar:xz

bapt's avatar
bapt committed
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
20150328:
AUTHOR: bapt@FreeBSD.org

  New "metaport" USES to take care of predefining correctly the needed
  macros as expected by meta ports.

20150323:
AUTHOR: bapt@FreeBSD.org

  Remove "@fc" and "@fontsdir". All fonts should always use @fcfontsdir which
  Properly takes care of the fonts.dir and fonts.scale cache files as well
  as ensure to properly update the fontconfig cache

  New "fonts" USES. It defines the default variables needed for fonts and also
  takes care of the run time dependencies

878
879
880
20150326:
AUTHOR: bdrewery@FreeBSD.org

thierry's avatar
thierry committed
881
  PTHREAD_CFLAGS and PTHREAD_LIBS have been removed.  Please see entry
882
883
  20130207 for more information.

884
885
886
887
888
889
890
891
20150319:
  AUTHOR: bdrewery@FreeBSD.org

  MASTER_SITE GHR (GITHUB_RELEASE) has been removed.  The same functionality
  can be achieved with just USE_GITHUB/GH_ACCOUNT/GH_PROJECT. GH_TAGNAME
  defaults to DISTVERSION. If the tag needs to be adjusted then change
  GH_TAGNAME. No GH_COMMIT is needed.

892
893
894
895
896
897
898
899
900
20150319:
  AUTHOR: bdrewery@FreeBSD.org

  USE_GITHUB has been updated to make GH_COMMIT optional.  Using this new
  scheme allows only setting the _tag_ or _commit hash_ in GH_TAGNAME and
  not having to know the hash for a tag.  This scheme will download a tarball
  that has a different checksum than before due to a changed directory name
  for extraction.

901
902
903
  GH_TAGNAME can now be any length of the hash as long as it is unique.  There
  is no longer a 7-character requirement.

904
905
906
907
908
  The following MASTER_SITES are provided to retain the old checksum and
  directory structure (that require GH_COMMIT):
    GH -> GHL
    GITHUB -> GITHUB_LEGACY

909
910
911
912
913
914
20150305:
  AUTHOR: olivierd@FreeBSD.org

  Dependencies on the Xfce ports have been migrated to USES. Instead
  of USE_XFCE= configenv, you should use USES= xfce.

915
916
917
918
919
920
921
922
923
20150224:
  AUTHOR: makc@FreeBSD.org

  New USE_QT4 component has been introduced to reduce buildtime
  dependencies for Qt 4 ports that use localization support. Instead
  of USE_QT4=linguist you should now use USE_QT4=linguisttools_build.
  Conversion of existing ports may require USE_QT4 adjustment for
  missing components.

924
925
926
927
928
929
930
931
932
20141217:
  AFFECTS: users of lang/perl5.*
  AUTHOR: mat@FreeBSD.org

  Perl now links libperl.so with all .so it builds.  The stage-qa checks have
  been extended to check that libperl.so is in fact linked with .so in
  SITE_ARCH and errors out if none of the .so build by a port are linked with
  it.  It also checks that the rpath and runpath elf attributes are present.

933
934
935
936
937
938
939
940
941
942
943
944
945
20141130:
AUTHOR: tijl@FreeBSD.org

  The devel/gettext port has been split up in devel/gettext-runtime which
  contains runtime libraries such as libintl, and devel/gettext-tools which
  contains build tools such as msgfmt.  You can use USES=gettext-runtime to
  set a LIB/BUILD/RUN_DEPENDS on devel/gettext-runtime and USES=gettext-tools
  to set a BUILD/RUN_DEPENDS on devel/gettext-tools.

  USES=gettext is now the same as "USES=gettext-runtime gettext-tools",
  meaning a LIB_DEPENDS on devel/gettext-runtime and a BUILD_DEPENDS on
  devel/gettext-tools.

946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
20141126:
AUTHOR: mat@FreeBSD.org

  The way Perl modules are installed has changed.  Before, we had

    site_perl :           lib/perl5/site_perl/5.18
    site_perl/perl_arch : lib/perl5/site_perl/5.18/mach
    perl_man3 :           lib/perl5/5.18/man/man3

  Now we have :

    site_perl : lib/perl5/site_perl
    site_arch : lib/perl5/site_perl/mach/5.18
    perl_man3 : lib/perl5/site_perl/man/man3

  Modules without any .so will be installed at the same place regardless of the
  Perl version, minimizing the upgrade when the major Perl version is changed.
  It uses a version dependent directory for modules with compiled bits.

  As PERL_ARCH is no longer needed in plists, it has been removed from
  PLIST_SUB.

  The USE_PERL5=fixpacklist keyword is removed, the .packlist file is now
  always removed, as is perllocal.pod.

  The old site_perl and site_perl/arch directories have been kept in the
  default Perl @INC for all Perl ports, and will be phased out as these old
  Perl versions expire.

crees's avatar
crees committed
975
976
977
978
979
980
981
982
983
984
20141122:
AUTHOR: crees@FreeBSD.org

  Dependencies on the PostgreSQL ports have been migrated
  to USES. Instead of USE_PGSQL, please use USES=pgsql instead.

    USE_PGSQL=yes becomes USES=pgsql
    WANT_PGSQL_VER=91+ becomes USES=pgsql:9.1+
    USE_PGSQL=server becomes USES=pgsql and WANT_PGSQL=server

985
986
987
988
989
990
20141118:
AUTHOR: mat@FreeBSD.org

  To ease future work, a new SITE_ARCH variable and PLIST_SUB replacement
  containing SITE_PERL/PERL_ARCH has been added.

bdrewery's avatar
bdrewery committed
991
992
993
994
995
996
997
998
20141102:
AUTHOR: bdrewery@FreeBSD.org

  SSP is now default. This can be disabled with WITHOUT_SSP.
  SSP_CFLAGS defaults to -fstack-protector.
  SSP will be used on all amd64 releases. It will only be used on i386
  releases over 10.0.

mat's avatar
mat committed
999
1000
20141007:
AUTHOR: mat@FreeBSD.org