PR# 36773 opened by David A. Holland.
While we're here look for settings with no values in audit-packages.conf
and ignore them.
Tighten up processing of audit-packages.conf for the situation where
settings are specified multiple times. (report from joerg@).
a subfunction.
Bail out if the package name doesn't have a version name.
Bail out if the internal rename failed (it was an assert before).
Invert some of the branches to cut off three levels of indirection.
the functionality offered by findmatchingname and findbestmatching
name. They optionally strip the suffix from the filename before
matching it, instead of modifying the pattern directly.
Drop the old functions.
- Fix a bug in pkg_order where the version strings where inverted
- Make pkg_admin lsbest and lsall use the new functions.
- Make ftpio use pkg_order directly.
Bump version to 20070812.
Reported by Greg Troxel on tech-pkg@
* Add -q which operates the same as 'pkg_info -q' and only displays
the package name of any vulnerable/eol packages found.
Suggestion by joerg@
* man page updates for -q
* Document the required permissions for audit-packages and
download-vulnerability-list in the man page.
possible cause of inconsistencies. Remove comment about make replace,
since it does not, absent pkgsrc/mk bugs, result in incorrect
dependency records.
packages (see pkg_info -e). Restore this behaviour. Still print a
warning when the pkgdb can't be processed.
Reported by Daniel Horecki and pointed to the option by tnn@.
mark_as_automatic_installed to take a package name and not a full path.
Add assertions to test for this.
Drop a few islinktodir checks.
Change pkg_info to use iterate_pkg_db instead of scanning the directory
by hand. As a side effect don't try to check for the pkgdb dir first,
let pkgdb_dump and iterate_pkg_db handle that.
Make pkgdb_dump return failure if it can't open the package db.
users of findbestmatchingname and findmatching name with more
descriptive and easier to use iterator functions. This functions
are a first step to abstract away pkgdb layout from most parts of
the code. It also helps to reduce side effects and point out potential
bugs in this code.
Fix a potential, but practically irrelevant buffer overflow.
No longer allow symbolic links directly in pkgdb to store the meta
data of individual packages outside. E.g. /var/db/pkg/atk-1.18.0
must be a directory and not point to it. This is not yet enforced in
all parts of the code, more changes will follow.
Bump version to 20070808.
- Abort if any of rebuild, unsafe_depends, unsafe_depends_strict are still
set after "make replace".
- Following changes in pkgsrc, does not replace by default if the
dependencies' ABI is still compatible.
- Add option -s that retains the old behaviour of always replacing.
- Add option -r for "replace only", this supresses creation of binary pkgs.
- The -n option has not been fully updated for these changes.
- versions 0.[7-9] were skipped to avoid any ambiguity from the 0.04 -> 0.5
transition.
- Explicitly unset 'unsafe_depends' and 'rebuild' tags after replacing.
Needed after changes in pkgsrc/mk/flavor/pkg/replace.mk, fixes PR 36738.
- Introduce ${PKG_ADMIN}, ${PKG_INFO}, ${PKG_CHK} variables instead of
calling the tools directly by name.
substitution (and any substitution warnings) run before the build starts,
rather than after building libnbcompat. The reason for this is that
libnbcompat is _built_ in the pre-configure stage when in inplace mode.
- for pkg_create, split-off the package creation from the plist
processing. package creation is disabled for --enable-bootstrap
- change package creation to use libarchive
- add two options (-u and -g) to override file system ownership
- pkg_create now creates files in the tarball with correct owner/group
based on -u/-g or @owner/@group
- add a function to compute the +CONTENTS file in memory
Bump version to 20070802.
Review of a slightly older version by jlam@
Redirecting output to /dev/stderr is not portable and will create a
regular file "stderr" if the device does not exist. Instead use the
portable 1>&2 redirection syntax. PKGREVISION was at nb9; get rid of it
and bump minor version number.
- Implement a simple framework for automated header testing and generation
using the c preprocessor.
- Make it installable on all platforms. On most platforms it will not install
any files however.
- Bump revision to 0.5.
The changes should make it easier to add Interix support to this package.
Note that the package is still far from complete; for example the replacement
stdint.h does not yet provide fallback definitions for int_*t and friends
but relies on inttypes.h to provide them, which turns out to work for HPUX.
instead of environment. This allows mk/flavor/pkg/resolve-dependencies
to execute '${PKG_ADMIN}': you can encounter this problem
on platforms in need of pkgtools/pkg_install because their native
pkg_* tools are older than PKGTOOLS_REQD, id est NetBSD 2.x and earlier.
Ok'ed joerg@.
- phase one builds the essential tools in the bare minimal version
needed by the infrastructure to run "make install".
- phase two runs "make install" for all the bootstrap packages.
Set WRKOBJDIR for the second phase, we never want to leave garbage
around.
This increases the time for running bootstrap, but gives more
deterministic results. It also means that e.g. configuration files
in pkg_install can be handled normally. It is a prerequirement to
sanely allow pkg_install some more extended work like building
its own libarchive without having to worry too much about limitations
on some platforms.
This fixes the expansion of @gzcat@ in the download-vulnerability-list
script.
Tested by tnn@ on Interix and myself on DragonFly.
- lintpkgsrc.pl - less brokenly parse the contents of make conditionals
like "if empty(FOO)". Specifically handle the case where FOO
contains a :M modifier or a variable expansion.
Fixes 'lintpkgsrc -r' incorrectly deleting ruby18-base-1.8.6nb1 each time
Mmm... lintpkgsrc.pl needs to die
- pkg_create bails out with -m
- pkg_add ignores mtree specs in packages and prints a warning.
It does not remove the file like before.
- remove now obsolete documentation.
pkg_info still prints the information and pkg_admin ignores the files.
Make the dependency on the tools a runtime dependency.
Take maintainership of pkg_install and bump version to 20070725.
Update to autoconf 2.61
Add checks for AC_TYPE_UINT{8,16,32,64}_T
Add checks for stdint.h
Change how config file notification works
If no IGNORE_URLS directive is found then just say that
Check that pkg-vulnerabilities exists before we try any operations on it
Use st_ctime as opposed to st_ctimespec.tv_sec as the former is SUSv3
This update should fix PR #36655 and go part way to fixing PR #36662
Thanks to tnn@ and joerg@ for suggested fixes and Yakovetsky Vladimir and
Stuart Shelton for testing and patches.
Rename pmatch to pkg_match and add new function pkg_order that
implements the order logic used by pkg_add internally.
Change the interface of findmatchingname's callback to take the pattern
used for the matching as first argument. The new pkg_order function
takes it and it doesn't hurt in other cases. Adjust callers and
corresponding callbacks accordingly.
Remove an unused matchfn typedef in dewey.c.
Bump to 20070720. OK jlam@
Don't depend on date to implement %s or even %F and %R or support -r,
compute dates as one comment and split. This works even with the very
special HP-UX date. Requested and tested by tnn@
Bump to pbulk-0.7.
sense of pkg_tools_prefix and prefix in the sense of LOCALBASE.
This allows individual overriding for NetBSD.
Add the forgotten part to allow DESTDIR builds and the pkgsrc.7 man
page.
page. Fix build on !NetBSD. Rebuild man pages with nroff -mandoc on
NetBSD current for consistency. Make it DESTDIR safe. Remove the note
that src/usr.sbin/pkg_install is the authoritive version, it won't be
any longer.
When fixing vsftpd, other FTP server were broken as they return
different error codes for unmatching glob patterns. Basically ignore the
error code and just try the other pattern. chdir errors are still
considered fatal.
Bump version to 20070715.
Merge of audit-packages with various improvements:
* Version 20070714
Initial release of re-write in C
Add support for notfication of eol packages (-e)
Multiple levels of verbosity (e.g. -v -v)
Specify a custom config file to use (-c)
Query running config values (-Q)
Default to download .gz compress pkg-vulnerabilities file
Support for .bz2 compress pkg-vulnerabilities file
Verify signature on downloaded files (-s)
Thanks to tron@, jschauma@, agc@, joerg@ and pkgsrc-security@ for feedback
and testing.
portability somewhat:
- consistently use POSIX uint{8,16,32,64}_t throughout the code.
- asssume for now that the compiler supports ULL as suffix
- use AC_TYPE_UINT{8,16,32,64}_T instead of bits.c to compute
possible replacement types.
Bump to 20070703. Tested by Thorsten Glaser on Interix and tnn@ on
Solaris.
even if standard input is the empty string. Install a wrapper script
bundled with pkgtools/bootstrap-extras to deal with this. This is an
attempt at a permanent workaround for the problem described in PR pkg/25777
which has regressed since it was initially fixed.
We can now bootstrap again on Interix 3.5.
Add vsnprintf prototype as the function is implemented and used.
Add all the macros from NetBSD's sys/queue.h defined for the types
implemented.
Bump version to libnbcompat-20070622.
Tested by dmcmahill@NetBSD.org on Solaris.
OK jlam@, agc@
Discussion of various parts of the design with jlam@, wiz@, tls@
and many other developers. Special thanks to David Maxwell for
testing the initial prototype and finding some bugs with
Coverity Prevent.
Supported by Google's Summer of Code 2007 project.
OK for import during the freeze: jlam@
From DESCR:
pbulk is the modular bulk build framework for pkgsrc.
This package contains:
- pbulk-scan, a program to scan the entire pkgsrc tree
or a list of directories therein for packages and
dependencies. Distributed operation using a master/client
mode is supported.
- pbulk-resolve, a program to resolve the dependencies
from the output of pbulk-scan
- pbulk-build, the build scheduler. Distributed builds via TCP
are supported.
- bulkbuild and related scripts to implement full and limited
bulk builds on top of those programs.
The pbulk framework is considered experimental.
Changes since 20070507:
Completely rewrote the fgetln implementation, since the previous version
couldn't handle files that don't end with a '\n' character. Tested on IRIX,
NetBSD and Solaris.
after the last hyphen is the version, not everything after the first
occurence of '-[0-9]'. This allows pkg_rolling-replace users to upgrade
packages such as font-bitstream-100dpi.
- Use INSTALL_MAN, not INSTALL_SCRIPT. Manpages are not executable.
- Bump PKGREVISION.
preprocessor to find out the absolute path of the system header, so that
we may include it before we add our customizations.
This is especially important when using gcc, due to it's "fixincludes".
For example, <math.h> might not be /usr/include/math.h, but instead
something like /path/to/gcc/lib/gcc/${MACHINE_GNU_PLATFORM}/include/math.h.
This package attempts to resolve deficiencies in system headers.
These deficiencies are commonly found on older operating system releases.
When use of posix_headers has been enabled on a platform, this package will
become a compile-time dependency for every package. It will provide customized
header files that take preference over some system provided ones (that may
not even exist). This happens transparently through use of buildlink3.
Add a missing FAIL= to the start of pkg_install(), the absence
of which would cause a package which had been "previously
installed" to pick up the last value of FAIL (and sometimes be
incorrectly marked as failed). Thanks to Martin Weber for the
diagnosis.
Some FTP server don't expand [] in NLIST, most noticable is vsftpd.
Avoid this by splitting the wildcard search pattern into two commands.
Sync some other minor changes.
Bump to 20070416.
various packages, pass down PKG_PRESERVE. Remove the default setting of
PKG_PRESERVE, it makes perfect sense to install e.g. pkgtools/mtree
and be able to remove it again, if it is not an essientiel tool.
OK jlam@
definitely cannot run pkg_select, they should be added via
NOT_FOR_PLATFORM.
Made PKGTOOLS_PATH configurable. It is now set to the value of
PKG_TOOLS_BIN.
Moved the SUBST block further up in the package Makefile.
PKGREVISION++
- obsolete support for require scripts
- nuke support for the following options of pkg_create:
-X (excludefile)
-r (require script)
-h (Force follow symlink)
- add option for pkg_create to specify additional @blddep packages.
This brings us to version 20070308.
Changes since 2.3:
- When more than one directory exists in WRKDIR after extracting the
distfile, a helpful comment is added to the generated Makefile.
Rewrote the shell parser to handle backticks recursively. This would
have found the recent quoting bug in mk/flavor/pkg/depends.mk.
The RUN make(1) variable is correctly identified.
clear that these variables are completely unrelated to
BUILDLINK_TRANSFORM.
Added a legacy check that catches appearances of BUILDLINK_TRANSFORM.*.
XXX: Where should incompatible changes in pkgsrc be documented?
Changes since 2.2:
- Detect more sourceforge download URLs.
- wrksrc_files and wrksrc_dirs are looked for in WRKSRC, not in WRKDIR.
- When the URL is being read in and an EOF occurs, the program exits.
INSTALLATION_DIRS, as well as all occurrences of ${PREFIX}/man with
${PREFIX}/${PKGMANDIR}.
Fixes PR 35265, although I did not use the patch provided therein.
packages with the modular Xorg equivalent. Those are falling back
to the old location by default, so this commmit doesn't change
dependencies.
graphics/xpm ==> x11/libXpm
fonts/Xft2 ==> x11/libXft
x11/Xfixes ==> x11/libXfixes
x11/xcursor ==> x11/libXcursor
x11/Xrender ==> x11/libXrender
x11/Xrandr ==> libXrandr
Following existing practice, the variable PKG_BUILD_OPTIONS.* may be
queried in buildlink3.mk files in the .include section, and no warning
is generated anymore.
logic to all platforms:
Some packages (such as math/gap) create wrappers based on the name of
the compiler, so ${CC} should not contain any flags. Move flags into
CFLAGS.
Do *not* use "TMPDIR" variable. If the user has already set an environment
variable "TMPDIR" it well be overwritten my the path to the directory
created by the script and passed to "make". As a result it will get
compiled into certain packages (e.g. "sysutils/dbus") which will no
longer work after the directory has been removed.
If a plist contains @owner or @group entries and first rename failed,
pushout was called with NULL argument. This has the semantic of using a
working directory of "/", even though already read plist entries are
relative to prefix. The calls to chown and chgrp therefore end up with
the wrong arguments for the current directory. To compensate for this,
don't pushout the first time. As plists are not supposed to have
multiple @cwd entries anymore, this could most likely be simplified, but
that is outside the scope of this commit.
Merge lib/plist.c, rev 1.51:
When processing symlinks in pkg_delete and the call to readlink failed,
it often helps to know why, so use warn instead of warnx.
Bump version to 20061103.
The WRKSRC variable (among others) is checked to consist of ony one
word. The url2pkg tool had created lines like
WRKSRC= ${WRKDIR}/Makefile PLIST distinfo
in the past, which happened to work in most cases up to now, but really
shouldn't.
Changes since 2.0:
- Made the dependency detection for Perl modules work again. The code
does not assume to be run in a special directory anymore.
- Perl modules that use the prompt() function to query the user
interactively can be handled. All questions are assumed to be answered
by just pressing <enter>.
- Made url2pkg more robust when interpreting the output of MakeMaker.pm.
Many Perl modules write additional things to stdout during the
generation of the Makefile.
- The language for the *.f files is "fortran", not "f".
- Fixed the regular expression for prdownloads.sourceforge.net links, so
that the distfile name is properly extracted.
- Handle 'badly named' patch files
- In the event of a distint checksum mismatch, report the affected file
as well as package
- If we need to call out to make to parse a makefile and it returns any
errors, ensure we prefix the error output with the Makefile path
- run through perltidy. Ugly, but consistent
Rewrote url2pkg in Perl, enhancing it in several ways:
- Packages for Perl modules using MakeMaker can be generated almost
completely. The only thing that usually needs to be filled out after
running url2pkg is the DESCR file.
- USE_LANGUAGES is filled automatically.
- After generating the initial Makefile, the editor is run to let the
user edit the Makefile. These changes are preserved as much as
possible. (This had not been the case before.)
- Extending url2pkg has been made much easier by splitting the tasks that
do the "magic" into small subroutines and by adding a detailed
description of what these routines are supposed to do.
Set the version number to 2.0.
This avoids problem where the plist-man.awk script sees the empty
value for MANINSTALL and sets it to the default of 'maninstall catinstall'.
Fixes install/packaging problems on solaris.
Since many package fail to build in exotic environments because of that,
it is worth having this check even though we are currently in a freeze.
Improved the detection of absolute pathnames once more.
took about 300 MB of memory. Now it takes 27 MB, which is still much,
but quite better.
The cause for the memory leak was that I wrote
my ($result) = @_;
instead of
my ($result) = ($1);
after successfully matching a regular expression. That way, pkglint
created some cyclic data structures, and since Perl does not have
garbage collection, these didn't get cleaned up.
Added some checks so that this cannot easily happen again. Also fixed
some other instances where @_ appeared in the source code.
Changes since 4.68:
- Improved the checks for BUILD_DEFS.
- Improved the shell word parser.
- Improved the heuristics for detecting absolute pathnames.
- The :M* operator is only required with GNU configure scripts.
Committed during the freeze to have a unique version number that includes
the features from the last days.