about a year now. In celebration of this, remove the check and error message
when ensuring a case- sensitive filesystem on Mac OS X.
Keep the check for Interix.
from archivers/pax and net/tnftp, respectively. In the past, the
pkgtools version of these packages installed into ${PKG_TOOLS_BIN},
but this was changed in:
pkgtools/pax/Makefile:1.15
pkgtools/tnftp/Makefile:1.3
+ Get rid of archivers/pax/Makefile.common and net/tnftp/Makefile.common
by merging them into their respective Makefiles. The Makefile.common
files existed solely for inclusion by the pkgtools versions of these
packages, but with the removal of those packages, these files are
now unnecessary.
+ Add full DESTDIR support to archivers/pax and net/tnftp.
+ Modify the bootstrap to build archivers/pax and net/tnftp instead of
the pkgtools versions of these packages.
- /var as varbase is only used for privileged builds without prefix
or when prefix is explicitly set to /usr/pkg
- if prefix is set to a non-standard value, derive varbase from it
- derive pkgdbdir from varbase
Based on the discussion in PR 37796 and with jlam@.
and nothing else. This prevents bootstrap from exiting just because
there is a subdirectory named "awk" (or another tool) in one of the PATH
directories.
Fixes PR 37806.
code should have been here since the very beginning of bootstrap.
Additionally, the paths are checked that they only contain characters
from the "Portable Filename Character Set" (IEEE 2003.1, definition 3.276).
Motivated by http://mail-index.netbsd.org/pkgsrc-users/2007/10/17/0000.html
expect full path names. Use the default locations in /bin unless
overriden explicitly. Bump revision of bmake.
On Solaris, use /usr/xpg4/bin/sh if it exists.
bootstrap time these variables are already set as shell variables. As a
result, they were doubled for bootstrap compiling.
An alternative solution to that issue would be to explicitly empty those
shell variables once they have been added to BOOTSTRAP_MKCONF, but that
approach would use more lines of shell code :-)
- 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.
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.
search order means that the system libedit gets found first. This
hasn't been much of a problem until now, but the system libedit
lacks support for Apple's 64-bit architectures, which breaks the
Universal build. Therefore, force linking with tnftp's internal
libedit by replacing "-ledit" in ${LIBS} with "../libedit/libedit.a".
Workaround suggested by tls.
with /Developer/Applications/Utilities/PackageMaker.app, then
converted from blob to the equivalent XML with:
$ plutil -convert xml1 macpkg.pmproj
mkbinarykit will run this file through a bit of sed, then use the
result to generate a double-clickable Mac package.
use inplace libnbcompat like the direct build from bootstrap
does. Fix a long-standing bug in mkbinarykit. The default work
directory was "work" (relative) and therefore MAKECONF=work/...
was passed down, effectively making it a nop. That resulted in
digest being incorrectly installed during the bootstrap.
Tested on DragonFly by myself and on OSF by tnn@, discussed with jlam@
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@
the example mk.conf.
The explanation for setting DBG to the empty value is written to the
mk.conf file to inform the uninitiated pkgsrc user about its purpose.
* support environment variables CP, GREP, ID, MKDIR, TEST, TOUCH, XARGS to
allow specification on non-standard tools (needed on IRIX 5)
* preserve compiler/linker flags if set
compiler detection. This is needed for Solaris with SunPro at least,
since bootstrap tried to install gcc>=2.95.3 during the registration of
the bootstrap packages.
script. It was lost in revision 1.55. This fixes the path to the
various pax, mtree, ftp commands used by pkg_install. Bump the version
number of the bootstrap script.
explicitly setting CC=cc, so override it on the bmake command line.
We use the CC taken from the environment first, and default to "gcc"
if CC is not set.
into a separate package pkgtools/bootstrap-extras. Teach the bootstrap
script to look for those scripts from the bootstrap-extras package.
* When registering the installed software, set WRKOBJDIR to the bootstrap
work directory to protect against a read-only pkgsrc tree.
the bootstrap process and which may be needed by pkg_install. This
is distinct from the net/tnftp package that is now a "normal" package.
Modify the bootstrap script to use pkgtools/tnftp instead, and clean up
some of the registration code.
package database.
XXX There are still some files not registered, e.g. share/mk and any
XXX mkdir/install/strip/ldd replacements needed by some platforms.
XXX These will probably get moved into pkgsrc proper.
in the example mk.conf file.
* Don't install digest anymore. It's not needed by binary package users
and it's handled within pkgsrc/mk now via BOOTSTRAP_DEPENDS.
for both bootstrap and mkbinarykit. When this is done or the
platform fragment of bootstrap specifies an explicit fetch_cmd,
tnftp is not built.
Use /usr/bin/ftp by default on DragonFly 1.4 and later.
avoid conflicts with FreeBSD ports. Later versions use pkgsrc by default,
so use the more natural /var/db/pkg location and match the install CD
thereby.
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
problem with building on systems that don't have the
/usr/lib/libc.a (LIBC).
This is the log entry from mk-files 20051104:
* prog.mk: remove all the LIBC?= junk, use
.-include libnames.mk instead (none by default).
Note this is not an exact copy of the mk-files 20051104 prog.mk.
(Todo: compare and test all the mk files with sjg's version.)
Including e.g. /usr/share/mk results in sys.mk read from there
as well. On DragonFly this adds X11BASE and results in obscure
breakages. Since the mk files are supposed to be self-contained,
it doesn't make much sense to look in other directories anyway.
Bump revision to annotate this.
Discussed-with: reed@.
Reported-by: Aggelos Economopoulos <aoiko AT cc DOT ece DOT ntua DOT gr>
for "bmake".
Remove all of bmake source from this bootstrap.
Keep bootstrap/bmake/mk -- copy to files-mk (so the
bmake "boot-strap" doesn't notice the mk*).
This was tested on DragonFly, NetBSD and some on Linux.
Hopefully all the fixes to boostrap's bmake are included in
devel/bmake/files.
Note that the "mk" files is still not using devel/mk-files.
default installation paths to be inside ~/pkg and define UNPRIVILEGED=yes
in the generated mk.conf. This lets regular users to simply bootstrap by
doing './bootstrap --ignore-user-check'.
parsing code. For maximum portability it uses the expr(1) command
instead of sed(1), the same way as it is done in the core of the latest
GNU configure scripts.
(1) rework how command-line arguments are parsed:
instead of --command=<arg>, use --command <arg>
This allows us to not rely on certain commands for which we first need
to figure out where they are to parse the arguments, which in turn
allows us to
(2) add the command-line option
--preserve-path
to prevent bootstrap from munging the PATH (as it does on some platforms)
and look in places that are not currently in the PATH
Finally,
(3) add a check to see if we're using gcc, and set and add the
PKGSRC_COMPILER=<compiler>
flag to the sample mk.conf. This is particularly useful (and actually
necessary) under IRIX.
Bump BOOTSTRAP_VERSION.
PKGSRC_COMPILER=mipspro
if this compiler is used. Otherwise, wrong CFLAGS might be passed.
XXX: we probably want to add a check for the proper compiler into the
bootstrap process and add this line automatically, if necessary.
Fix the override logic for $opsys.bsd.{lib,man}.mk to install the files
in the correct place -- this was previously all kinds of b0rken. Now it's
possible to build shlibs properly on Interix using <bsd.lib.mk>, and may
be possible on Darwin as well.
what files exist in the fs.
This works around a problem that crops up when using a nfs-mounted pkgsrc
repository under Interix. (When going to "su" during the install phase,
bmake sees "makefile" for a moment in lieu of "Makefile", and all hell
breaks loose.)
Remove some code which makes file lookup rely on the fact that
the first two directory entries are "." and "..".
This behaviour is not required by applicable standards, and
actually not provided by "coda".
Now we get the "." and ".." into the per-directiry hash tables,
but this should not hurt.
fixes bmake build on Fedora Core 2, PR pkg/26140 from Shoichi Miyake.
There's one place where you absolutely *must* use bmake: when building
pkg_install. Otherwise its Makefiles will attempt to get $(MACHINE_ARCH)
from the system make, which is not likely to be correct on several
platforms.
exists.
* nbsed-20040821 requires libnbcompat, so make the appropriate
adjustments to the build to use it.
* If nbsed is built during bootstrap, then use it as the sed for
pkg_install so that the correct program is embedded into the pkg_view
and linkfarm scripts.
* We don't need bmake to build any of the bootstrap packages, so just
call out to the system make.
README.MacOSX. Update the developer tools notes for 10.3. Mention that
XFree86 has X packages for older versions of OS X that Apple doesn't
provide X for.
so that Interix can set the default mode to 0775. Then add "install_sh"
to CONFIGURE_ENV so it uses ${INSTALL}, not the package-supplied
install script (as is done for autoconf $INSTALL).
splitting of PATH on a separate line.
Use 'uname -v' instead of 'uname -r' on Unixware. The release number of
UNIX SYSV (ie, R5) is less important to us than the version (7.x.y).
configuration files.
From now on, mk.conf is first searched under the value passed to the
sysconfdir argument (which defaults to ${prefix}/etc, to match pkgsrc's
PKG_SYSCONFDIR default value). If not found, /etc/mk.conf is tried, to
not break existing installations which have the file in that location.
This is done to help with non-root installations of pkgsrc.
Also change pkgsrc's PKG_SYSCONFBASE value to match what is given to
sysconfdir, for consistency.
While doing this, rename $opsys.own.mk files to $opsys.own.mk.in for clarity,
as they now need sed replacements to work (i.e., the SYSCONFDIR stuff).
difference on some platforms is an exercise left to the reader, but
the current pkgsrc convention is #!<program> without the space, so
this is if nothing else, a consistency fix.
Add a new flag to mkbinarykit that circumvents building a kit -- this
allows you to first run ./bootstrap and then just ./mkbinarykit so
you don't have to rebuild it again.
Minor cleanup (sort OPSYS)
- mention which bits of SunPro 8 are required, mention 64-bit pkgs
- mention SUNWlibm, SUNWlibC
- mention PKGSRC_COMPILER=sunpro
- also tested on Solaris 10
- mention crle(1)