Pkgsrc driven by pkg(8) and synth. As of 31 August 2018, the scheduled sync with pkgsrc trunk has been stopped due to lack of interest.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Keywords
archivers
audio
benchmarks
biology
bootstrap
cad
chat
comms
converters
cross
databases
devel
doc
editors
emulators
filesystems
finance
fonts
games
geography
graphics
ham
inputmethod
lang
licenses
mail
math
mbone
meta-pkgs
misc
mk
multimedia
net
news
parallel
pkgtools
print
regress
security
shells
sysutils
templates
textproc
time
wm
www
x11
Makefile
README
pkglocate

README

PKGSRC-SYNTH
============

This is a systematically modified version of pkgsrc (https://www.pkgsrc.org).
It is constructed by applying an overlay to stock version and generated every
six hours.  The modification allows pkgsrc to create binary packages suitable
for use by FreeBSD's pkg(8) binary package management tool
(https://github.com/freebsd/pkg) rather than the older pkg_* tools.  This in
turn allows John Marino's local repository builder known as Synth
(https://github.com/jrmarino/synth) to be adapted to pkgsrc.

Differences between pkgsrc-synth and vanilla pkgsrc:
  1. Adds pkgng format (Initial work by Pierre Pronchery)
  2. Removes pkg_install dependency
  3. Adds a very small pkgng_admin dependency for licenses and matching
  4. Adds a very small indexindo dependency to handle GNU INFO pages
  5. Contains several patches to support new pkgng format
  6. Stores overlay sources at bootstrap/overlay
  7. Omits the unreliable (and thus extra useless) docs/CHANGES-* and
     docs/TODO* files
  8. Contains synth source (planned)

------------------------------------------------
 Instructions to switch pkgsrc driver to pkg(8)
------------------------------------------------

Note 1: pkg(8) only works on ELF-based platforms.
Note 2: pkg(8) is heavily tested on FreeBSD and DragonFly
Note 3: pkg(8) is lightly tested on NetBSD
Note 4: pkg(8) is untested on Linux but was designed for its use
Note 5: pkg(8) is untested on SunOS.  It would be amazing if it worked.  SunOS support TODO
Note 6: pkg(8) is untested on OpenBSD, MirBSD, Bitrig but may work
Note 7: This framework does not currently support any OPSYS not mentioned above

Non-NetBSD systems
------------------
Start with a pristine system with only native tools installed.  Obtain a copy of this
repository, e.g.

 1. cd ~/
 2. fetch https://github.com/jrmarino/pkgsrc-synth/archive/master.zip
 3. cd /usr
 4. unzip ~/master.zip

Use the provided bootstrap tool.  After it completes, the system will have pkg(8)
installed along with some fundamental packages.  Example:

/usr/pkgsrc-synth-master/bootstrap/bootstrap \
  --prefix=/usr/pkg \
  --pkgdbdir=/var/db/pkgsrc \
  --workdir=/tmp/pkgsrc-bootstrap \
  --make-jobs=6 \
  --format=pkgng

Note that all of those parameters are optional.  The format defaults to pkgng and
sane defaults exist for pkgdbdir, sysconfdir, varbase, etc.

NetBSD systems
------------------
Start with a pristine system with only native tools installed.  Obtain a copy of
this repository (see the example above).

In order to obtain a registered version of pkg(8) from source, we will have to
build a few packages twice: The first version of pkg(8) and its fundamental 
dependencies will be installed to a temporary location using the old package
tools, and then they will be rebuilt and reinstalled using the new format to
the intended localbase.

1.  mkdir -p /tmp/pkgngboot
2.  use vi to add/change the following lines to mk.conf
    PKG_FORMAT= pkg
    LOCALBASE=  /tmp/pkgngboot/
    PKG_DBDIR=  /tmp/pkgngboot/pkgdb
    PKGNG_DBDIR= /usr/pkg/pkgng-db
3.  cd /usr/pkgsrc-synth-master/pkgtools/pkg
3.  make install
4.  make clean clean-depends
5.  use vi to change the following line to mk.conf
    PKG_FORMAT= pkgng
    LOCALBASE=  /usr/pkg          # default; can remove line
    PKG_DBDIR=  /usr/pkg/pkgng-db
    #PKGNG_DBDIR= /usr/pkg/pkgng-db
6.  make PKG_CMD=/tmp/pkgngboot/sbin/pkg-static PKG_ADMIN=/tmp/pkgngboot/sbin/pkgng_admin install
7.  rm -rf /tmp/pkgngboot

If you've done everything correctly, "pkg info" should show that pkg has
registered intself.  Now use pkgsrc and pkg(8) normally.

# pkg info
cwrappers-20160908             pkgsrc compiler wrappers
digest-20160304                Message digest wrapper utility
pkg-1.9.99.2                   Package management tool for FreeBSD