Changes since 5.4.18:
* Added generated Go yacc source files to CVS, since starting with Go 1.8
the yacc tool is no longer part of the core distribution. The dependency
on yacc would pull in all the Go tools, which are quite a few, and some
of these do not currently build since they depend on go-crypto. See
https://mail-index.netbsd.org/tech-pkg/2017/03/17/msg017900.html
This package sets up periodic builds of binary packages using the
pkgtools/pkg_comp utility given minimal configuration. All that is
needed from the user is to determine which packages to build
automatically.
If you are on NetBSD, see also sysutils/sysbuild-user, which is the
perfect companion to this package to periodically build the base system.
**Released on 2017-02-17.**
This is the first release of the pkg_comp project as a standalone
package. This new release shares no code with previous versions and is
not compatible with them.
The following are the major differences between pkg_comp 2.0 and all
previous releases, which incidentally are the reasons that triggered
this rewrite:
* Support for multiple platforms.
* Use of pbulk to (re)build packages within the sandbox. This results
in more reliable incremental builds after pkgsrc updates.
* Support for bootstrap, generating binary kits as part of the builds.
* Better scriptability to allow running from cron(8) trivially.
This is to make room for pkg_comp 2.0, which is coming soon. The new release
is significantly different from the 1.x series in features (supports multiple
platforms, bootstrap, and pbulk) but also comes with a different configuration
syntax.
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
Changes since 5.4.15:
* updated vardefs from mk/defaults/mk.conf from v1.118 (2006) to v1.269
Gone:
* PKG_SUFX
* USETBL
* PKGSRC_SHOW_PATCH_ERRORMSG
* USE_XPKGWEDGE
* PKGVULNDIR
Adjusted:
* USE_GAMESGROUP
* BIN_INSTALL_FLAG -> BIN_INSTALL_FLAGS
* fixed license parsing to be more realistic
(the previous version didn't handle parentheses correctly)
* lots of housekeeping
* moved some code to separate packages, allowing re-use
* separated Line checks into LineChecker type
* separated MkLine checks into MkLineChecker type
* made Line an interface, for further refactorings
The getopt and pkgver code have been extracted to separate packages to make
them reusable.
Several other functions have been moved to make the structure easier to
understand:
* dir.go and main.go have been moved to pkglint.go
* utility functions from pkglint.go have been moved to mkline.go
Now pkglint.go contains only high-level code.
Introduce a separate client-prepare script. The default configuration
runs the renamed client_prepare_action for each scan/build client once,
dropping duplicates in the list. Clients are prepared in parallel, but
the master waits for all before starting the actual scan. Make
bulkbuild-restart re-prepare the clients, i.e. in case they have a
pkgsrc tree in a local tmpfs.
Changes since 5.4.12:
* Added check for unintended # comments, especially in HOMEPAGE
* Added check for quotes in COMMENT
* Fixed hardcoded package versions for PHP, Python, Lua, etc.
* Code cleanup in the tests
Many of these definitely do not depend on readline.
So there must be a different underlying problem, and that
should be tracked down instead of papering over it.
Changes since 5.4.11:
* warn when PKGSRC_COMPILER is compared with "==", since it may be a chain
of compilers
* warn about listing Python .egg-info files directly in PLIST files, since
lang/python/egg.mk takes care of this
* code cleanup: unify Error{0,1,2,3} into Errorf to make understanding the
code easier; use interface{} for MkLine data; use regular expression
instead of handwritten matching code, since one line is easier to read
than 50
Solves:
/usr/libexec/binutils225/elf/ld.gold: error: cannot find -lreadline
The missing specification is obvious on DragonFly because there's
no publically accessible version of readline in base.
- Add progress when fetching (number of files to fetch)
- Improved messages about locked packages
- Return 1 when a user rejects the proposed plan
- When dealing with configuration files '@config' never overwrites
untracked files
- Warn everyone about deprecation of @dirrm and @exec
- Deduplicate metadata loading code
- pkg register now understands context aware messages
The default for PKG_DBDIR changed from /var/db/pkg to ${LOCALBASE}/pkgdb
Accordingly, the pkgng location is changing from /var/db/pkgng to
${LOCALBASE}/pkgng-db
Several updates in pkgsrc-synth work are applicable to pkgtools/pkg so
let's bring them in. Some changes:
1) fetching segfault fixed
2) change VULNXML URL from FreeBSD ports to pkgsrc version
3) Fix vulnerability report URLs (404) to valid ones (DragonFlyBSD.org)
4) Add ability to build debuggable version
5) Fix PKG_DBDIR default setting for pkg (honor mk.conf)
6) Fix another segfault on NetBSD when pkg(8) attempts to read elfhints.
This is only valid on FreeBSD and DragonFly, so bring in upstream
fix to block on other platforms.
7) Set as BOOTSTRAP_PKG and block USE_CWRAPPERS for bootstrap reasons
8) realign SUBST* definitions
Changes since 5.4.10:
* Replaced regular expression with hand-written matching code, since
it is 30 times as fast.
* Reduced number of syscalls by remembering os.Lstat results and
CVS/Entries.
* Reduced number of syscalls by querying the current user only once.
* Added warning for comparing ${PKGSRC_COMPILER} == "clang", which
should rather be ${PKGSRC_COMPILER:Mclang}.
* Added variable definitions for NOT_PAX_ASLR_SAFE and NOT_PAX_MPROTECT_SAFE.
Changes since 5.4.9:
* Check for mismatch between conditional and unconditional includes
of other files (mostly depending on PKG_OPTIONS or OPSYS)
* Check that PLIST files contain "man" instead of "${PKGMANDIR}"
The CONF_FILES are never installed if their target directories don't
already exist due to other previous installation. This adds several
@pkgdir entries to ensure the CONF_FILES installation can always succeed.
While here, simplify the post-install target.
Rather than defaulting to /var/db/pkgng, use the variable that exists
already for this purpose. Similarly, change cache directory definition
from /var/cache/pkgng to ${VARBASE}/cache/pkgng
As pointed out by jperkins, defaulting to builder's setting for PKGSRCDIR
for the sources isn't aways correct for the binary package consumers.
This is not a problem unique to pkgtools/pkg and really requires a system-
wide solution. Until there is such a global variable, rename the PORTSDIR
variable to PKG.portsdir and allow it to be modified by e.g. make.conf.
In the case of pkg, PORTSDIR just refers to a default configuration
location which is overridable by a configuration file.
This:
- fixes the "/usr/ports" paths in code and man pages to
${PKGSRCDIR} (normal) or hardcoded to "/usr/pkgsrc" (future, its for
builders like Synth and poudriere)
- changes default DB path from "/var/db/pkg" to "/var/db/pkgng". It
seems the original default was too ambiguous as "pkg" is used
everywhere in pkgsrc and it's the default format (not pkgng format)
- similarly, changes default CACHE patch from "/var/cache/pkg" to
"/var/cache/pkgng"
- bumps PKGREVISION again
Another relevant comment from John and reworded by myself for context:
(all misquotings mine)
« Importantly, FreeBSD, NetBSD, and DragonFly all provide libarchive
in base. Therefore, this changes the port to use the base version when
available because the libarchive requirement is considered heavy. The
OpenSSL dependency brings a lot with, including perl. When trying to
update the bootstrap to build pkgng instead of pkg_* tools, it is
critical that the dependencies remain low. Other platforms will have
to suffer with the libarchive requirement if they want to use pkgng.
Following this, special linking code is needed for DragonFly since the
SSL libraries are now private. In fact, the only userland program
allowed to link with them is pkg(8) for bootstrapping reasons listed
above. »
Thanks again!
This does:
- remove the requirement for C++ (there is no C++ code there)
- properly substitute $PKGSRCDIR for PORTSDIR
- remove sbin/pkg2ng as it is inapplicable for pkgsrc
- bump PKGREVISION accordingly
More changes pending...
This also adds two patches, to fix the "major OS upgrade detected" error
in NetBSD. A file missing from the original archive was imported too.
Bump package revision as the upstream was changed. The archive downloaded
has a different filename, so there should be no conflict in the
"distfiles" folder.
From John Marino, thanks!
- Handle /run/resolvconf/resolv.conf explicitly rather than mounting all of
/run. If /run exists then systemd will dynamically create /run/user/uid
tmpfs mounts inside the chroot which mksandbox is unable to unmount.
The plist-utils suite aims to facilitate management of PLIST entries.
It handles PLIST options and variables, and is especially useful for
keeping PLISTs of packages with quickly changing file-lists, such
as those closely tracking upstream development branch, up to date.
Import approved by <wiz>.
That package was removedi and caused pkglint errors like:
ERROR: ../../lang/php/ext.mk:25: Cannot read
"./../../lang/php55/Makefile.common".
So update to later php56.
I don't understand why the ChecklinesDistinfo function in distinfo.go
has an exception for the php patches directory but changed there too.
I received an okay on packages@ list.
Note that the make check for the pkglint package failed for me
but the pkglint worked for me in my tests of some php using packages.
Increase version of pkglint.
Changes since 5.4.8:
* Disallow lib/charset.alias in PLIST. This file may only be installed
by converters/libiconv. (That package is currently broken, since
it only touches that file when installing from source, not from a
binary package. But pkglint is prepared for it to be fixed.)
For 1.8.0:
New features:
- new vital flag that prevent from removing a package with pkg delete when not specifying -f
- upgrade process now has atomicity per packages meaning now we can safely check the return of the pre* scripts
- handle ctrl-c during upgrade/install/update
- solver improvements
- pkg clean now runs in a capsicum sandbox on supported plateforms
Changes:
- pkg delete now fails if one tries to delete it (the pkg package) without -f. Before it was just warning and skipping it
- pkg install --from-root has been renamed pkg install --recursive to avoir confusion
Fixes:
- correctly handle hardlinked setuid files
- better handling of setuid
- fix elf analysis when some bad libraries have SONAME specified by empty
- fix elf analysis when a binary provides elf_notes but not the expected ones and are still valid freebsd binaries
(this fixes the case when libgdk_pixbuf was not found as a provided lib on i386)
- NAMESERVER option is now working again and inputs are better checked
- lots of bug fixes: potential leaks mostly
For 1.7.0:
Changes:
- Support new "vital" notion: prevent from implicit deletion
- Improved support for OpenBSD/bitrig (still lacks some functions in libc)
- Improved ZSH completion
- Updated libucl
- Lots of fixes in error messages
- Fixed "pkg lock" handling
- Allow to specify "inline" respositories in pkg.conf
- ipv6 fixes
- Allow to restrict the accepted url schemes
- More commands supports "-q"
- Multiple bug fixes
- As usual multiple new bugs
- Improved support for shlibs dependency generation when packaging base via ALLOW_BASE_SHLIBES
For 1.6.0:
- Lots of improvements in the solver (in particular fixes the case like the
recent jpeg upgrade)
- Lots of fixes in the 3 way merge code
- pkg add can now work without a version specified in the dependency line
- pkg check -d now also check the required libraries
- Improved support for partial upgrades
- Improved zsh completion support
- Improved linux support (now all regression tests passes on linux)
- Messages can now be context aware: (only print a given message during
installation, upgrade - version aware -, removal, or always)
- @keywords now accepts new entries to add context aware messages
- Add the ability to generate graphiz's dot format representation of the
solver's problem
- pkg search now default on showing the comments of of the matched packages
- Lots of bug fixes and code cleanup
- Plenty of new bugs
From the commit log, since 1.5.4:
- More fixes to pkg-check.8
- Important improvements in the pkg check manpage
- HBSD: fix format specifier in libpkg's pkg_vets(...)
- Fix libexpat buffer overflow: CVE-2015-1283
- Always use sqlite3_column_int64 for reading integers from the db
- Add a new configuration item to define custom HTTP User-Agent
- Don't attempt to set file ownership when INSTALL_AS_USER is set
- zsh-completion: updated all of the currently handled subcommands
- Fix typo s/conpact/compact/
- Fix two typos in pkg_vset(), to correspond to pkg_vget()'s code
- Implement AUTOCLEAN
- Clean up some grammar and formatting in pkg.conf(5).
- Update zsh completion
- Do not distribute generated source files
- Add a random delay to pkg-audit when invoked without a TTY
- Fix display of <root directory>
Changes since 5.4.6:
* Allow conditionals of the form "${var1}" == "${var2}"
* Check for indentation of .include directives
* Check arbitrarily complex license conditions
* General code cleanup
Changes since 5.4.5:
* Fixed shell command parser to correctly parse redirections
* Added type definitions for several variables
* Allowed version numbers to be single digits
Changes since 5.4.4:
* Removed autofix for variables in BUILDLINK_TREE, since that change
affects multiple variables in the file and therefore cannot be done
automatically
* Fixed PLIST sorting to not lose lines
Changes since 5.4.3:
* Improved detection for undocumented patches from Git
* Added warning about unnecessary space after variable names
* Lots of internal housekeeping
Changes since 5.4.2:
* Variables like ${VAR_${OTHER_VAR}} are no longer checked for
use/define mismatch
* The check for plural variable names has been removed
* The type of variables called *DESTDIR is no longer guessed to be a
directory name
* The check for unknown shell commands is disabled in Makefile
sections that depend on OPSYS
* The experimental hand-written shell parser has been replaced with
a Yacc-generated one
* Meta packages don't need a LICENSE
* When PKGNAME is defined in terms of ${DISTNAME:S/from/to/:tl}, more
modifiers (like :tl) are handled properly
* When the MAINTAINER or OWNER of a package is not the current user,
a warning is printed for modified files
* The check for share/applications/*.desktop has been disabled, since
pkglint would need to inspect the file's actual contents to see
whether desktopdb.mk must be included or not
* SUBST_CLASSES may also be SUBST_CLASSES.NetBSD
* Loosened the usage restrictions for several variables, e.g. many
variables that may be appended in a Makefile may also be set
unconditionally
* PKG_OPTIONS_VAR must be of the form PKG_OPTIONS.*
Move the tree iteration logic from the master to the client. This
matters primarily when using the additional package list in the top
level makefile and ensures that the client configuration is used
consistently.
whose libdb is not the db-1.85 that's in the libc of 4.4 derivates.
Since this program reads the package database it must use the same
libdb as pkg_install, and that's the one in libnbcompat rather than
the one you get from bdb.buildlink3.mk.
Bump PKGREVISION to 5.
Changes since 0.2:
* provide usage message when called with invalid options
* moved do_test_default() from public API section in the source
* renamed private variables to not be in uppercase
* indented consistently
* replaced unnecessary ${VAR} with simple $VAR
* moved actual test execution into its own function
* when invoked with the -v option, announce which test will be run
Changes since 5.4.0:
* PKG_SKIP_REASON is no longer marked as deprecated, since it still
has its value
* When PKG_SKIP_REASON is defined depending on OPSYS, suggest to
use NOT_FOR_PLATFORM instead.
* Check for ROOT_USER/ROOT_GROUP being used in special file
permissions; using REAL_ROOT_USER/REAL_ROOT_GROUP is better.
Changes since 5.3.7:
* Replaced the -D... debug options with a single -d
* Omitted duplicate diagnostics
* Marked the :Q operator unnecessary for some variables
* Improved detection of whether bsd.prefs.mk has been included,
which fixed unwarranted warnings about load time evaluation of
some variables like ${ECHO} and ${SED}
* Improved detection for $(VAR) with round parentheses
* Fixed allowed locations for several variables
* Improved detection for used variables (still not perfect)
* Added warning that MASTER_SITES should not be used in HOMEPAGE
* Fixed warning about manual patches not being in distinfo
* Added a check for missing MASTER_SITE_* variables
* Added a check for unfinished url2pkg work
* Fixed several wrong warnings
(Surely more systems should be using pkgint4, as it's obvious that
being i386 and no SunOS is not sufficient. However, this is a
~minimal fix for NetBSD 5.)
Changes since 5.3.5:
* Warn about !empty(${VARNAME}), which should be !empty(VARNAME)
* Distinguish ${VARNAME} == "value" and ${VARNAME:Mpattern}
* Corrected isQuotingNecessary for some variable types
* Generally, parse files from mk/, since they define variables
used by packages. This avoids wrong warnings about possible
spelling mistakes.
* Warn about $(VARNAME) (with parentheses instead of braces)
* Warn about missing final @ in ${VAR:@var@...@}
* Updated list of hardware architectures
* Enabled CPU profiling on NetBSD
Changes since previous version:
+ add Taylor Campbell's implementation of SHA3 digests. This includes
code to calculate 224, 256, 384 and 512bit length digests.
+ change the license on all the code I wrote to be 2-clause BSD
+ modify license years for things that have been changed
+ add self-test command line option to digest(1) via the -t switch
pkgsrc changes
+ derive version number for the package automatically from the source
code
Changes since 5.3.4:
* Added parser for Makefile conditionals
* Variables that are matched using the :M modifier are checked whether
the matched value is sensible
* Reworded and explained warning for variable ordering in packages
* Fixed bug in Tree.String
* Fixed a few variable types
Changes since 5.3.3:
* Added some unit tests
* Fixed the Makefile parser to recognize seldomly-used variable modifiers
like :S///S/// without intermediate colon or :ts\n
* Cleaned up some unit tests
* Combined diagnostics that span multiple lines into single-line ones
Changes since 5.3.2:
* The -e, -fs, -F options are advertised even when no warnings and errors
occurred. In such a case, there were only notes, and some of these can
also be autofixed.
* Special handling for autoconf{,213} tools, since mentioning these in
USE_TOOLS makes available more than just one tool command.
* Downgrades from 1.0nb17 to 1.0 are no longer flagged as warnings.
* Files in /wip/mk/ are scanned like all other files, to prevent warnings
about undefined or unused variables.
Changes since 5.3.1:
Alignment of variable values is no longer checked by single line, but by
the complete block (e.g. SUBST_*). Pkglint now checks that all variables
belonging to a block are indented consistently, so that their values are
aligned nicely.
Since pkglint does not report warnings, but only notes, and since it can
fix them automatically, the burden on the package developers will be very
low. Especially, since these notes are only printed when pkglint is called
with the -Wspace or -Wall options.
Also, pkglint supports running its unit tests now.
Changes since 5.2.2.2:
* Makefile variables
The warnings about missing permissions sound more natural than before
and give a hint for alternative operators (e.g. set-default instead
of append), or an alternative file where setting this variable is
allowed instead (e.g. PKGREVISION may not be set in Makefile.common,
but in Makefile it is ok).
Warnings about "unknown" allowed permissions are not shown anymore,
since they didn't provide any benefit. To see them again, pkglint must
be run with the -Dunchecked option.
User-defined variables may be used by builtin.mk. They may also be
used during load time, not only during run time, under the assumption
that in most cases the bsd.prefs.mk has already been loaded.
Some individual variables may be defined or used in places where this
was not allowed before. CHECK_BUILTIN.*, BUILDLINK_TARGETS,
TOOLS_DEPENDS.*, BUILDLINK_DEPMETHOD.*, SUBST_CLASSES.
A new parser for Makefile expressions detects and reports more
mistakes than bmake itself. Currently it is only used to check the
basic syntax; more applications are possible.
* PLIST
In PLIST files, conditionals of the form ${PLIST.*} are recognized and
are not part of the pathname. This allows pkglint to better check for
missing manual pages and correctly sorted PLIST files.
In --autofix mode, pkglint can sort PLIST files, which makes these
rather annoying warnings easy to fix.
No more warnings for man pages whose filename doesn't match exactly
the section, e.g. man/man3/exit.3c.
* Patches
The code for checking patch files has been completely rewritten, so
that it is easier understandable and well-structured. As an additional
benefit, it also became faster. Support for context diffs has been
dropped to a minimum, since they are not popular anymore.
Pkglint no longer warns about missing trailing whitespace in a line,
since all patch programs can handle these lines. It also doesn't
request empty lines between multiple diffs in a single file, since
that is simply not necessary.
Pkglint is picky when a patch file continues after the diff with some
text that still looks like a diff, since that means the patch doesn't
do what it looks like on first sight
(example: audio/faad2/patches/patch-au).
* Distinfo
When a patch file listed in distinfo cannot be found in the
filesystem, this is reported clearly instead of complaining about
missing SHA512 hashes (example: audio/libopus).
The inter-package distinfo check that verifies whether a distfile has
different hashes has been enabled. It had been disabled before, but
unintentionally so.
* Misc
- The check for COMMENT has been updated to reflect the changed
default value from url2pkg.
- BUILDLINK_API_DEPENDS.* may be set in buildlink3.mk, even if the
package is not the current one. (The other variables may be only set
for the current package.)
- In shell commands, the escape sequence \. (and similar ones, which
are often seen in sed(1) commands) no longer produces a warning,
since the different shells handle these escape sequences
consistently. (It is the echo(1) implementations that actually
differ, therefore this warning was superfluous.)
- Compiler flags in backticks (typically `pkg-config --cflags`) are
properly recognized.
- Internal pkglint errors when parsing shell commands have been fixed.
- No more warnings about PKGCONFIG_FILE.* being defined but unused.
- Dependencies of the form pkgbase>=1.0<5.0 are recognized.
- Diagnostics use quotes more often to indicate the placeholders.
- The type of GENERATE_PLIST has been changed from List of ShellWord
to ShellCommands, since that is what the variable is really about.
- The type ShellCommand used to mean "a shell command line in a
Makefile", which was confusing. Now it means what the name says,
which reduces the wrong warnings for variables like CC (example:
x11/kdebase3/options.mk).
- Improved buildlink3.mk checks to generate more helpful diagnostics.
- Fixed the parsing of dependency patterns, so that all but the most
exotic ones are properly recognized.
- Fixed the parsing of shell variables of the form ${var%.c}.
- Updated the check for the default COMMENT from url2pkg.
- Many more small improvements.
- Performance has improved again, though only a little bit.
- Unit test coverage has increased from 64.2 % to 78.9 %.
This fixes most of the points mentioned in PR pkg/46570.
Makefile lines are now distinguished from ordinary lines.
Running "pkglint -r -Wall -Call" on the whole pkgsrc tree produces
the same result as before, except for the reporting of internal
pkglint errors, where pkglint doesn't know how to parse certain shell
commands. Therefore no version change.
Changes since 5.2:
* Fixed wrong warning about patches/CVS being an unrecorded patch
* pkgsrc-wip also needs NetBSD as RCS Id, instead of Id
* Code cleanup: grouped the checklineMk functions into one file
Changes since 5.0:
* Fixed --autofix mode (it hadn't been enabled before)
* The --autofix mode now advertises itself when it can do something
* The --autofix mode now adds missing empty lines to patch files
(only in the leading text section, not in the actual patch content)
* Made --autofix code simpler ({prepend,append}{Before,After} was not
really needed)
* Fixed unit tests to report invalid command lines
* Added some more unit tests
The Perl version of pkglint (pkglint<5.0) runs on all platforms that
are supported by pkgsrc. Not so the Go version (pkglint>=5.0).
To support development of packages on all platforms, this version is
provided, and it will be supported equally. Its output differs a bit
from pkglint>=5.0, but the basic checks are the same.
Notable changes include:
* The whole code has been rewritten in Go
* It is much faster, especially in recursive mode
* The code has unit tests, providing examples of use
* Some new explanations for existing warnings
* Some adjustments to previous warnings
The find-prefix infrastructure was required in a pkgviews world where
packages installed from pkgsrc could have different installation
prefixes, and this was a way for a dependency prefix to be determined.
Now that pkgviews has been removed there is no longer any need for the
overhead of this infrastructure. Instead we use BUILDLINK_PREFIX.pkg
for dependencies pulled in via buildlink, or LOCALBASE/PREFIX where the
dependency is coming from pkgsrc.
Provides a reasonable performance win due to the reduction of `pkg_info
-qp` calls, some of which were redundant anyway as they were duplicating
the same information provided by BUILDLINK_PREFIX.pkg.
packages collection.
Sometimes there's a need to just build a package without any of the
installed pre-requisites being used. Or building a one-off package
which can then be used elsewhere.
This package helps to produce other binary packages, using pkg_comp to
build them in a chroot. The chroot is populated either by cloning the
current operating system, or by using pre-existing binary sets. As an
example:
# gimme -c vip
will clone the current operating system on this host, and use it to
make a chroot in which the sysutils/vip package will be built.
Similarly, to build packages and all their pre-requisites afresh,
something like
# gimme -c mercurial git-base
would be used.
pkgsrc uses the "BUILD_TARGET" definition internally as the primary
target for building in a package's WRKDIR. It defaults to "all".
So pkgsrc cd's to ${WRKDIR} and does a "make ${BUILD_TARGET}"
pkg_comp also wants to use the same "BUILD_TARGET" definition
internally for itself to guide the builds for making binary packages.
It's done at a higher level than the pkgsrc definition. It defaults
to "package".
The use of the same name for two different purposes can cause
pkg_comp to fail to build packages. This commit renames the pkg_comp
definition to be "BUILD_PKG_COMP_TARGET".
With this change in place, my pkg_comp builds now complete successfully.
Bump PKGREVISION for the BUILD_PKG_COMP_TARGET fix
All messages shown to user are sent to stderr
nih:
- CACHEDIR is initialized in nih.default.conf (thanks to wiz@).
- IPv4-only for download is not the default anymore (thanks to gdt@).
- Binary package checksums are kept in pkg_summary.txt.
- Preliminary support for multiple repositories.
- Clean-ups for function "fetch".
It just runs either fetch_wget or fetch_ftp and does nothing else.
- Atomic update for pkg_inst_summary.txt was implemented
(thanks to wiz@ for pointing out!).
nih history:
- Option -p was introduced.
nih list:
- Fix: bug in -f (unexpected line: `Updating pkg_inst_summary...`).
nih remove:
- "nih remove" without arguments uninstalls leaf packages.
This is correct according to the documentation.
"nih install" works the same way (thanks to wiz@ for the report).
nih install:
- Missing dependencies are fixed in a different way.
When nih finds the missing dependency it tries to install
the dependency and then update the installed package.
This is more correct way to fix consequences of 'pkg_delete -f'.
- Fix: the rule "do not change PKGPATHs of installed packages"
was broken in 0.13.0 (thanks to wiz@ for the report!).
- Fix: packages are no longer installed as a dependency by mistake.
- Fix: flag "automatic" is unset correctly
("pkg_add -UD" does not change it).
- Fix: "fake" package creation.
- New option -w was added for ignoring non-existing package.
- New option -f was added for getting package list from a file.
- If "package could not be found", nih exits with non-zero status.
- Configuration variables yes_install and yes_remove_pkgs were removed.
New option -Y was added as a replacement (See NIH_OPTS for details).
- Unnecessary variable "cksums" was removed.
- Better explanation for update plan build failures.
pkg_update_plan:
- New option -w was added for the same purpose as in "nih install".
- Man page was updated.
nih.1:
- A number of typos were fixed (thanks to wiz@).
- All configuration variables were documented.
Existing SHA1 digests verified and found to be the same on the machine
holding the existing distfiles (morden). All existing SHA1 digests
retained for now as an audit trail.
Up to now, all files whose names started with "patch-" were considered
patch files. This was wrong, since e.g. devel/patch also has distfiles
with the same naming pattern.
When shutting down the master after all jobs are done, send a zero
length request to the clients and wait a second for them to shutdown the
connection. Calling shutdown on the server side doesn't avoid TIME_WAIT
as originally intended.
overrides our attempt to set it to "x86_64" and ensure consistency across
platforms. Work around this by setting it using PKGSRC_MACHINE_ARCH.
Confirmed to fix the issue and not break a variety of other platforms by
Sevan, and approved under duress by Joerg.
This resolves issues on platforms which MACHINE & MACHINE_ARCH is explicitly
defined, such as OpenBSD/amd64 & Bitrig/amd64 where we would like to build with
MACHINE_ARCH=x86_64 but can't as a platform check fails when installing
packages after bootstrap
pkg_add: Warning: package `digest-20121220' was built for a platform:
pkg_add: OpenBSD/x86_64 5.8 (pkg) vs. OpenBSD/amd64 5.8 (this host)
Tested on
Mac OS X Tiger/PowerPC
OpenBSD
Bitrig
Solaris 10/SPARC
FreeBSD 10.2-RELEASE & 11-CURRENT
DragonFlyBSD
Debian 8
OmniOS
Reviewed by joerg@
The warning that "return undef" is bad must be taken with great care.
Although perlcritic explains it a lot and warns to think before simply
fixing it, it doesn't mention that in some cases a simple "return" means
"return '0'", which had happened here.
* Removed needless check for MD5; all packages have been migrated already
* Made the code simpler by not relying on state transitions
* Allowed the newly introduced SHA512 to be mentioned in distinfo
The pkglint.pl file has grown pretty large, which makes it hard to under-
stand. Therefore it is useful to split it into reasonable parts.
The code for checking patch files is such a part since it is independent
of the rest of pkglint, and its specialized routines take quite a bit
of space.
Using regular expressions provides more uniform code, but at the cost of
higher runtime, since Perl doesn't optimize them away, even if they are
very simple, like those emulating the startswith() or endswith() functions
that other languages provide.