The MASTER_SITE_GNU still uses http:// for downloading the distfiles.
Since typical URLs today use https://, ignore the protocol when matching
the given URL against the MASTER_SITE_* variables from mk/fetch/sites.mk.
The previous version of the code was largely work in progress. Now the code
has been grouped and sorted. A few bugs have been fixed on the way:
* If a PKGNAME had been added in the interactive editor session, it had
been overwritten before. This was because of a typo.
* The whole code has been grouped into classes, to clearly show the
dependencies between the parts.
* Generation of the initial Makefile has been split into smaller methods,
to make them individually testable and to reduce the scope of the local
variables.
* When creating a package in a directory pkgsrc/local/*, "local" is not
used as the primary category of the package.
* GNU configure and other configure scripts are also detected if they are
not placed directly in WRKSRC.
* Packages that contain *.po files will have USE_PKGLOCALEDIR=yes in the
package Makefile. Previously, only *.mo or *.gmo files triggered this
variable.
* When PKGNAME is based on DISTNAME, it is only written to the package
Makefile if there is an actual prefix or transformation.
The files DESCR and PLIST are no longer overwritten. They are only
created if they don't exist.
The GConf schemas detection had written the include line too often, once
for every schema file.
Changes since 19.3.0:
* Added an alternative url2pkg implementation in Python that will
eventually replace the Perl implementation. Reasons are:
* Perl is cumbersome to type with all the special characters
* Perl does not even have a Boolean type, after all the years
* Perl cannot check the number of arguments passed to subs
* Python does not suffer from the above limitations
* Python is available on as many platforms as Perl
* The two implementations will be kept in sync until all the features
have made it into the Python implementation, and everything has
automatic tests.
* Added the -v or --verbose command line option.
Changes since 5.7.24:
* There is no need to ask the dummy MAINTAINER from url2pkg whether
committing changes is ok.
* When autofixing a condition like !empty(PKGPATH:Mliteral), don't
generate unnecessary parentheses around ${PKGPATH} == literal.
* In a _VARGROUPS section, the public variables should be listed
before the private variables, to put important things first.
* When pkglint suggests to be run again with the -e, -fs or -F options,
repeat the whole command line, to allow for copy-and-paste.
* The checks for PKGPATH are fixed and enhanced. It is not a relative
path like in ../../category/package, but relative to the pkgsrc root.
* Unintended file globbing in sed commands such as s,.*,any, gets a
warning.
* MASTER_SITES should normally end with a slash, in rare cases an
equals sign or a colon are correct, too.
* Detect redundant directories in INSTALLATION_DIRS.
Changes since 2.37:
* Test dependencies in Perl MakeMaker modules are copied to the
package Makefile.
* Unknown dependencies in Perl MakeMaker modules no longer abort url2pkg
but instead are added as "# TODO" dependencies to the package Makefile.
* The license from Perl MakeMaker and Python modules is copied to the
package Makefile.
* The build dependencies, COMMENT and HOMEPAGE from Python setuptools
modules are copied to the package Makefile.
* No more "undefined $url" when running url2pkg in a directory that
already has a package Makefile and is extracted.
Changes since 2.36:
* Fixed generation of the package Makefile. Due to a typo, the line that
included bsd.pkg.mk had been omitted, making any generated package fail.
## Version 0.13.0 (2019-09-24)
* "pkgin upgrade" now upgrades all packages instead of only keep packages, and
essentially replaces "pkgin full-upgrade". Selective upgrades have always
been risky and provide no benefit, especially in light of refresh support.
"pkgin full-upgrade" is retained for compatibility but marked as deprecated.
* Refresh the local package repository when a forced update is requested, so
that a failed update can be repaired easily.
* Switch NetBSD default repository from ftp.netbsd.org to cdn.netbsd.org.
Changes since 5.7.23:
* Improved the _VARGROUPS check for ignored variables
* Removed wrong warnings for variable expressions like ${VAR:Dyes:Uno}
* Used correct terminology for the :Q modifier (it's not an operator)
Changes since 2.33:
* code cleanup in MakeMaker.pm
* don't create a PLIST for Perl packages
* allow Python dependencies from setup.py to use spaces around >=
* properly indented Python code according to PEP 8
* added mock for setuptools.find_package
* only try to migrate a package from GitHub to PyPI if it is really
a Python package on GitHub
Changes since 5.7.22:
* Added a warning for lines that look empty but are actually follow-up
lines from a previous line.
* Added notes for unusual placement of the continuation backslash. It
should always be preceded by a single space or tab, or be in column
73.
* Improved check for needlessly complicated !empty(PKGPATH:Mcat/pkg)
that is transformed into the simpler ${PKGPATH} == cat/pkg, even if
the package name contains hyphens, dots, plus or slashes.
* Added check for the _VARGROUPS section since that section contains
many redundancies that can easily be checked. For example, in
mk/compiler/gcc.mk the _VARGROUPS section is 67 lines long and
contains far more than 100 variables. It's tedious to manually check
this file for internal consistency. That's better left to pkglint.
* The empty variable is no longer flagged as "used but not defined".
It appears in expressions like ${:Ustring}.
* When --source is combined with --explain, don't unnecessarily
repeat the source code for a single line if there are several
diagnostics. Instead, even omit the empty line between the diagnostics
for the same line.
Start building FreeGLUT with GLUT compatibility on.
- GLUT's maintainance state is much worse than FreeGLUT's, with no
substanital commits since 2011.
- GLUT can no longer be consider a core component of Mesa or X11.
- Nobody except us seems to be using it...
Other vendors still shipping GLUT:
- GoboLinux, T2 SDE, PLD Linux
Revbump packages using GLUT or freeglut by default.
Be more tolerant of not finding PKGPATH, and basically attempt to skip
the package rather than treating it as a fatal error. (This was a
stray edit that I've been running with for a while.)
Changes since 5.7.21:
* The files from wip/mk do not belong to the main pkgsrc infrastructure.
Therefore, when loading the package Makefile to look for defined but
unused variables, parsing doesn't stop in these files.
Changes since 5.7.21:
* The files from wip/mk do not belong to the main pkgsrc infrastructure.
Therefore, when loading the package Makefile to look for defined but
unused variables, parsing doesn't stop in these files.