- Mtree module, shared with check-common-dirs
- update list of `known' directories to match actual OpenBSD, so
that stuff outside of /usr/local will work.
- drop dead if destdir does not exist (e.g., fake got a problem)
- if a file is found in a fragment, and as a comment in the original
file, then that was a limitation of the old make-plist: don't look at
the comment.
- copy modes for @sample
- do fragments for multi-packages too.
- pass existing files around for more accurate @exec tests.
- don't copy install-info/mkdir if files/dir have been found.
- register dirrm dir as dir/, but using original object, so that it will
need to be found once to be accounted for.
- don't register extra as `files', otherwise we end up with bogus
${SYSCONFDIR}/file entries.
- classify directories and files in a unified way.
- more thorough tests for info files, more names, look at two lines context.
- ibid dir file.
- ibid subinfo.
- provide a way to erase a directory that only holds one file.
- use for .packlist, perllocal.pod.
- use perl Config to look for those in the right location.
- don't look at file dates, we always use fake.
- special case /etc/X11/app-defaults becomes /usr/local/lib/X11/app-defaults
- use plist state info to avoid extraneous mode/owner/group entries.
- sort comments that are not accounted for.
- warn about .orig files.
- man pages for linux.
- don't backsubst SYSCONFDIR except at start of line.
- handle @comment @dir like @comment @dirrm.
- respect fragment locations
- put %%SHARED%% at top by default.
- handle recursive fragments correctly (simpler code, needs pkg_add support)
- mark genuine fragments, and don't try to write empty ones, assuming
the chosen flavor doesn't hold the required information.
first output all PLISTs in a tmp dir, then compare with
original set, and report all differences.
Then check that original can be moved to orig, and do the move.
That way, make plist on a set of unchanged lists will be silent,
and can be used irregardless of the presence of P*.orig files.
The new version uses the pkg_* infrastructure to read existing plists
and produced new plists.
Lots and lots of improvements:
- copy most stuff over from original lists correctly. For instance,
attach @exec/@unexec/@sample to other files and copy them in the right
location.
- generic post-treatment of @commnent, using stringize(), so that most
things can be commented out and will stay commented out.
- parse all packing-lists using relevant PREFIXes. Grab PFRAG.xx if %xx%
is seen.
- walk through all of fake, and distpatch files according to PREFIXes
if nothing else works.
- identifies man, libraries, info, handling symlink correctly.
As a result, this recognition must happen when we know the files
exist, e.g., at find time.
Adjust the auto-migration of shared objects to PFRAG.shared so that
it doesn't migrate subpackage files to the main package.
Simplify info handling slightly by just writing @info thingy.info.
XXX note that some info files will have to be patched to have proper
category/direntry tags.
okay naddy@
by ports have to have a leading '_' and a fixed id. They have also to
be added to db/user.list.
user.db and createuser are not used and are superfluous now.
RUN_DEPENDS) to create a more accurate list of @dirrm.
Minor negative side-effect: up-to-date dependent packages must be present
for this to work. Not a problem, since this is only used by maintainers.
This improves the quality of generated plists for large packages with lots
of dependencies by a large amount (e.g., kde)
reviewed by pval@
- back substitute VAR_SUBST (hence swap ARCH/MACHINE_ARCH)
- pass PKGDIR to make-plist.
- don't create PLIST-auto/PFRAG.shared-auto. Move originals around, and
create new ones directly (guard against accidentally deleting old ones).
Todo: add regexp to dispatch stuff to fragments automatically, based on
MULTI_PACKAGES.
if a new directory was found, it is always marked for @dirrm.
But, if the directory is empty, nothing pertaining to it is recorded in
the PLIST... and thanks to pkg_*, we can't record directories in the PLIST.
So, just add an @exec mkdir -p right in front of the @dirrm, up to
the port maintainer to decide whether the @exec mkdir/@dirrm pair is
justified or not (for the port at hand).
if a port sets FAKE=Yes, this means it can be `pre'-installed elsewhere,
with DESTDIR set to WRKINST (=work/fake-${ARCH} by default).
the infrastructure takes care of pre-install/do-install/post-install targets,
assuming those install stuff under PREFIX.
To help ports to cope with DESTDIR, you can set FAKE_FLAGS and FAKE_TARGET
(used for the fake installation).
Ports with FAKE=Yes are the way to go: they can be packaged directly without
a real installation, and the installation proceeds from the package, thus
forcing porters to check the package.