diff --git a/.bzrignore b/.bzrignore index 5534d252..b583048d 100644 --- a/.bzrignore +++ b/.bzrignore @@ -6,3 +6,4 @@ xbps-pkgdb *.static *.so* *.a +*.8 diff --git a/bin/xbps-bin/xbps-bin.8.txt b/bin/xbps-bin/xbps-bin.8.txt new file mode 100644 index 00000000..66cff5a6 --- /dev/null +++ b/bin/xbps-bin/xbps-bin.8.txt @@ -0,0 +1,171 @@ +XBPS-BIN(8) +=========== + + +NAME +---- +xbps-bin - XBPS command for binary packages + + +SYNOPSYS +-------- +*xbps-bin* ['options'] 'target' ['pkgname'] + + +DESCRIPTION +----------- +The xbps-bin(1) command is used to handle binary packages created +for the *XBPS binary package system*. You can use it to install, remove, +list or show information about any binary package. Binary packages can +be installed from local ('directory') or remote repositories ('http', +'https' or 'ftp'), see xbps-repo(1) for information about repositories. + + +OPTIONS +------- +*-f*:: + By default while installing or removing packages, xbps-bin(1) + will ask you if you are sure about the task that will be done. + This option bypasses the question and executes the task immediately. + Use this option carefully. + +*-r* 'rootdir':: + Sets the 'root' directory. By default the root directory is + set to '/'. Please note that the database directory is always + set to '/var/db/xbps' independently of 'rootdir'. So if you + use a 'rootdir' of '/blah', metadata stuff will go into + '/blah/var/db/xbps'. + +*-v*:: + Shows verbose messages. Useful while installing and removing packages. + +*-V*:: + Shows the current XBPS release version (library and code). + + +TARGETS +------- +Please note that all targets are *case insensitive*. + +*autoremove*:: + Removes 'leaf' packages. These packages were installed as dependencies + and currently there is not any package depending on it, directly or + indirectly. Usually it is safe to always answer 'yes'. + +*autoupdate*:: + Updates all currently installed packages to the most newer version + available in repository pool. + +*check 'pkgname' | 'all'*:: + Checks for integrity errors in installed packages. The checks + are to found missing run-time dependencies, missing and modified + package files and metadata files. If the *all* keyword is used, + 'all' packages currently installed will be checked, otherwise only + *pkgname*. + +*install 'pkgname'*:: + Install binary package "*pkgname*". The package will be + 'downloaded' (if available in a 'remote repository'), + 'unpacked' and 'configured'. The 'unpack' stage will execute the + *pre-install* action on its *INSTALL* script, and unpack its files. + The 'configure' stage will run the *post-install* action set on its + *INSTALL* script and will change its state to *installed* in the + package database. + +*list*:: + Lists all currently installed packages. + +*purge 'pkgname' | 'all'*:: + Purge an installed package, *pkgname* or *all* packages. The 'purge' + stage runs the *post-remove* action set in the *REMOVE* script in its + metadata directory ( /var/db/xbps/metadata/'pkgname' ) and will + remove configuration (if they were not modified by the user) and + metadata files. The package will be fully removed from the system once + it has been *purged*. + +*reconfigure 'pkgname' | 'all'*:: + Reconfigure an *unpacked* package. Packages in this state are not + fully installed, because they were not configured for whatever reason. + The 'configure' stage will run the 'post-install' action set on its + *INSTALL* script and will change its state to *installed* in the + package database. The 'all' keyword can be used to reconfigure all + not configured packages. If *-f* option is used, the package will be + reconfigured even if its state is already *installed*. + +*remove 'pkgname'*:: + Removes the installed package 'pkgname'. Its files will be removed + and its state will be changed to *config-files* in the package + database. Configuration files, its metadata directory/files and + its information in the package database are preserved. To fully remove + a package in *config-files* state, it must be *purged* with the + *purge* command. + +*show 'pkgname'*:: + Shows information for installed package 'pkgname'. This will print + the size it takes in filesystem, description, maintainer, architecture + and other information. + +*show-deps 'pkgname'*:: + Shows the list of dependencies that 'pkgname' requires at run time. + +*show-files 'pkgname'*:: + Shows the list of files that 'pkgname' contains. + +*show-manual*:: + Shows the list of packages that were installed 'manually' by the + user, i.e not as dependencies of any other package. + +*show-revdeps 'pkgname'*:: + Shows the reverse dependencies for 'pkgname'. Reverse dependencies + are packages that are currently depending in 'pkgname' directly. + +*update 'pkgname'*:: + Updates 'pkgname' to the most newer version available in repository + pool. This can be used if only 'pkgname' needs to be updated, unlike + the *autoupdate* target that will update all currently installed + packages. + + +PACKAGE STATES +-------------- +A package can be in a different state while it is being installed, removed, +unpacked, configured or purged. The following states are available: + +*installed*:: + The package is fully installed, that means it was unpacked and + configured correctly. + +*unpacked*:: + The package has been unpacked in destination root directory, but + it is not fully installed because it was not yet configured. Please + note, that some packages will do not work if they are only unpacked. + +*config-files*:: + The package has been removed but configuration files and its metadata + directory are still available (and it is still registered + in the package database). You can 'purge' safely packages that are + in this state, modified configuration files will be preserved. + + +BUGS +---- +Probably, but I try to make this not happen. Use it under your own +responsability and enjoy your life. + +Report bugs in ''. + +SEE ALSO +-------- +*xbps-repo(8)*, *xbps-src(8)* + +XBPS utilities: '' + +To build binary packages, the xbps-src(8) shell script is the command +designed for this task. This must be retrieved from a GIT repository, +available at ''. + + +AUTHORS +------- +The *XBPS binary package system* has been designed and implemented by +Juan Romero Pardines . diff --git a/bin/xbps-cmpver/Makefile b/bin/xbps-cmpver/Makefile index ec40c569..975331cb 100644 --- a/bin/xbps-cmpver/Makefile +++ b/bin/xbps-cmpver/Makefile @@ -1,6 +1,7 @@ TOPDIR = ../.. include $(TOPDIR)/vars.mk -BIN = xbps-cmpver +BIN = xbps-cmpver +MAN = # empty include $(TOPDIR)/prog.mk diff --git a/bin/xbps-digest/Makefile b/bin/xbps-digest/Makefile index f50bbbc9..9fac7f2d 100644 --- a/bin/xbps-digest/Makefile +++ b/bin/xbps-digest/Makefile @@ -1,6 +1,7 @@ TOPDIR = ../.. include $(TOPDIR)/vars.mk -BIN = xbps-digest +BIN = xbps-digest +MAN = # empty include $(TOPDIR)/prog.mk diff --git a/bin/xbps-fetch/Makefile b/bin/xbps-fetch/Makefile index 890d2c86..551ada7e 100644 --- a/bin/xbps-fetch/Makefile +++ b/bin/xbps-fetch/Makefile @@ -2,5 +2,6 @@ TOPDIR = ../.. include $(TOPDIR)/vars.mk BIN = xbps-fetch +MAN = # empty include $(TOPDIR)/prog.mk diff --git a/bin/xbps-pkgdb/Makefile b/bin/xbps-pkgdb/Makefile index 1c515336..a3af8da2 100644 --- a/bin/xbps-pkgdb/Makefile +++ b/bin/xbps-pkgdb/Makefile @@ -1,6 +1,7 @@ TOPDIR = ../.. include $(TOPDIR)/vars.mk -BIN = xbps-pkgdb +BIN = xbps-pkgdb +MAN = # empty include $(TOPDIR)/prog.mk diff --git a/bin/xbps-repo/xbps-repo.8.txt b/bin/xbps-repo/xbps-repo.8.txt new file mode 100644 index 00000000..ca9fa2c4 --- /dev/null +++ b/bin/xbps-repo/xbps-repo.8.txt @@ -0,0 +1,96 @@ +XBPS-REPO(8) +=========== + + +NAME +---- +xbps-repo - XBPS command for binary package repositories + + +SYNOPSYS +-------- +*xbps-repo* ['options'] 'target' ['arguments'] + + +DESCRIPTION +----------- +The xbps-repo(1) command is used to handle local or remote binary +package repositories in the *XBPS binary package system*. +You can use it to create a package index for a local repository, +add or remove local and remote repositories, search for packages +and show information about a binary package in repository pool. + + +OPTIONS +------- +*-r* 'rootdir':: + Sets the 'root' directory. By default the root directory is + set to '/'. Please note that the database directory is always + set to '/var/db/xbps' independently of 'rootdir'. So if you + use a 'rootdir' of '/blah', metadata stuff will go into + '/blah/var/db/xbps'. + +*-V*:: + Shows the current XBPS release version (library and code). + + +TARGETS +------- +Please note that all targets are *case insensitive*. + +*add* 'URI':: + Adds a repository as specified in 'URI' to the repository pool. + Local (by specifying a *directory*) and remote (by specifiying an + *HTTP/HTTPS/FTP URL*) repositories can be specified. + +*add-pkgidx* '/path/to/local/repo' '/path/to/local/repo/arch/binpkg':: + Adds the binary package 'binpkg' as specified in the second argument + into the package index of a local repository as specified in the + first argument. Please note that 'binpkg' must also live in the same + local repository, you need to specify the full path to the file. + +*genindex* '/path/to/local/repo':: + Generates a package index for a local repository as specified in + its argument. The same argument should be used for the *add* + and *remove* targets. + +*list*:: + Lists all currently registered repositories in repository pool. + +*remove* 'URI':: + Removes a repository from repository pool as specified by the + 'URI' argument. You have to use the same 'URI' that was used + in the *add* target. + +*search* 'pattern':: + Search for packages containing the shell 'pattern' (see fnmatch(3)) in + its *pkgname* or *description* values. + +*show 'pkgname'*:: + Shows information about binary package 'pkgname'. This will print + the size it takes in filesystem, description, maintainer, architecture + and other information. + + +BUGS +---- +Probably, but I try to make this not happen. Use it under your own +responsability and enjoy your life. + +Report bugs in ''. + +SEE ALSO +-------- +*xbps-bin(8)*, *xbps-src(8)* + +XBPS utilities: '' + +To build binary packages, the xbps-src(8) shell script is the command +designed for this task. This must be retrieved from a GIT repository, +available at ''. + + +AUTHORS +------- +The *XBPS binary package system* has been designed and implemented by +Juan Romero Pardines . diff --git a/doc/README b/doc/README index d73d665c..5f6eb8c3 100644 --- a/doc/README +++ b/doc/README @@ -28,6 +28,7 @@ to install it into /usr/local to avoid issues with your distribution packages. To build the xbps utils, you'll need: + * asciidoc (to build the manpages) * acl (devel pkg with static lib) * zlib (devel pkg with static lib) * bzip2 (devel pkg with static lib) diff --git a/prog.mk b/prog.mk index 97212081..62fa5d88 100644 --- a/prog.mk +++ b/prog.mk @@ -1,9 +1,13 @@ BIN_STATIC ?= $(BIN).static OBJS ?= main.o +MAN ?= $(BIN).8 -all: $(BIN) $(BIN_STATIC) +all: $(BIN) $(BIN_STATIC) $(MAN) .PHONY: all +$(MAN): + a2x -f manpage $(MAN).txt + $(BIN_STATIC): $(OBJS) $(CC) -static $^ $(LDFLAGS) $(STATIC_LIBS) -o $@ @@ -11,19 +15,17 @@ $(BIN): $(OBJS) $(CC) $^ $(LDFLAGS) -o $@ .PHONY: clean -clean: clean-bins clean-objs - -clean-bins: - -rm -f $(BIN) $(BIN_STATIC) - -clean-objs: +clean: + -rm -f $(BIN) $(BIN_STATIC) $(MAN) -rm -f $(OBJS) .PHONY: install -install: $(BIN) $(BIN_STATIC) +install: $(BIN) $(BIN_STATIC) $(MAN) install -d $(SBINDIR) + install -d $(MANDIR) install $(INSTALL_STRIPPED) -m 755 $(BIN) $(SBINDIR) install $(INSTALL_STRIPPED) -m 755 $(BIN_STATIC) $(SBINDIR) + install -m 644 $(MAN) $(MANDIR) .PHONY: uninstall uninstall: diff --git a/vars.mk b/vars.mk index 11399623..8e1cb0d2 100644 --- a/vars.mk +++ b/vars.mk @@ -3,6 +3,7 @@ PREFIX ?= /usr/local SBINDIR ?= $(DESTDIR)$(PREFIX)/sbin LIBDIR ?= $(DESTDIR)$(PREFIX)/lib +MANDIR ?= $(DESTDIR)$(PREFIX)/share/man/man8 TOPDIR ?= .. INSTALL_STRIPPED ?= -s