summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml28
-rw-r--r--Makefile24
-rw-r--r--arch-nspawn.in3
-rw-r--r--archbuild.in10
-rw-r--r--doc/asciidoc.conf37
-rw-r--r--doc/checkpkg.1.asciidoc27
-rw-r--r--doc/find-libprovides.1.asciidoc24
-rw-r--r--doc/footer.asciidoc28
-rw-r--r--doc/lddd.1.asciidoc25
-rw-r--r--find-libdeps.in2
-rw-r--r--makepkg-i486.conf9
-rw-r--r--mkarchroot.in2
13 files changed, 212 insertions, 8 deletions
diff --git a/.gitignore b/.gitignore
index 4559ca2..c3f3408 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,4 @@ zsh_completion
find-libdeps
crossrepomove
arch-nspawn
+doc/*.1
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..8fced6c
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,28 @@
+language: shell
+sudo: required
+
+services:
+- docker
+
+arch:
+ packages:
+ - openssh
+ - subversion
+ - rsync
+ - arch-install-scripts
+ - git
+ - bzr
+ - mercurial
+ - diffutils
+ - asciidoc
+ - shellcheck
+ script:
+ - sudo pacman -Syu --noconfirm --needed "${CONFIG_PACKAGES[@]}"
+ - make PREFIX=/usr
+ - make PREFIX=/usr DESTDIR="$(mktemp -d)" install
+ - make check || true
+ - SHELLCHECK_OPTS="-S error" make check
+
+script: 'curl -s https://raw.githubusercontent.com/mikkeloscar/arch-travis/master/arch-travis.sh | bash'
+
+# vim: ft=yaml ts=2 sw=2 et:
diff --git a/Makefile b/Makefile
index 46373ab..babdbf1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
V=$(shell git describe --exact-match)
PREFIX = /usr/local
+MANDIR = $(PREFIX)/share/man
BINPROGS = \
checkpkg \
@@ -28,6 +29,7 @@ CONFIGFILES = \
pacman-testing.conf \
pacman-staging-32.conf \
pacman-staging.conf \
+ pacman-staging-with-build-support-32.conf \
pacman-multilib.conf \
pacman-multilib-testing.conf \
pacman-multilib-staging.conf \
@@ -79,7 +81,14 @@ BASHCOMPLETION_LINKS = \
archco \
communityco
-all: $(BINPROGS) bash_completion zsh_completion
+
+MANS = \
+ doc/lddd.1 \
+ doc/checkpkg.1
+
+
+all: $(BINPROGS) bash_completion zsh_completion man
+man: $(MANS)
edit = sed -e "s|@pkgdatadir[@]|$(DESTDIR)$(PREFIX)/share/devtools|g"
@@ -91,8 +100,13 @@ edit = sed -e "s|@pkgdatadir[@]|$(DESTDIR)$(PREFIX)/share/devtools|g"
@chmod +x "$@"
@bash -O extglob -n "$@"
+$(MANS): doc/asciidoc.conf doc/footer.asciidoc
+
+doc/%: doc/%.asciidoc
+ a2x --no-xmllint --asciidoc-opts="-f doc/asciidoc.conf" -d manpage -f manpage -D doc $<
+
clean:
- rm -f $(BINPROGS) bash_completion zsh_completion
+ rm -f $(BINPROGS) bash_completion zsh_completion $(MANS)
install:
install -dm0755 $(DESTDIR)$(PREFIX)/bin
@@ -107,6 +121,9 @@ install:
for l in ${BASHCOMPLETION_LINKS}; do ln -sf devtools $(DESTDIR)/usr/share/bash-completion/completions/$$l; done
install -Dm0644 zsh_completion $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_devtools
ln -sf archco $(DESTDIR)$(PREFIX)/bin/communityco
+ for manfile in $(MANS); do \
+ install -Dm644 $$manfile -t $(DESTDIR)$(MANDIR)/man$${manfile##*.}; \
+ done;
uninstall:
for f in ${BINPROGS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
@@ -118,6 +135,9 @@ uninstall:
rm $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_devtools
rm -f $(DESTDIR)$(PREFIX)/bin/communityco
rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides
+ for manfile in $(MANS); do \
+ rm -f $(DESTDIR)$(MANDIR)/man$${manfile##*.}/$${manfile#doc/}; \
+ done;
dist:
git archive --format=tar --prefix=devtools32-$(V)/ $(V) | gzip -9 > devtools32-$(V).tar.gz
diff --git a/arch-nspawn.in b/arch-nspawn.in
index 79cff1a..7132885 100644
--- a/arch-nspawn.in
+++ b/arch-nspawn.in
@@ -103,7 +103,8 @@ build_mount_args() {
}
copy_hostconf () {
- cp -a /etc/pacman.d/gnupg "$working_dir/etc/pacman.d"
+ gpg --homedir "$working_dir"/etc/pacman.d/gnupg/ --no-permission-warning --quiet --batch --import --import-options import-local-sigs "$(pacman-conf GpgDir)"/pubring.gpg >/dev/null 2>&1
+ pacman-key --gpgdir "$working_dir"/etc/pacman.d/gnupg/ --import-trustdb "$(pacman-conf GpgDir)" >/dev/null 2>&1
echo "Server = $host_mirror" | \
tee "$working_dir/etc/pacman.d/mirrorlist" > \
"$working_dir/etc/pacman.d/mirrorlist32"
diff --git a/archbuild.in b/archbuild.in
index 3dda51d..7ce0804 100644
--- a/archbuild.in
+++ b/archbuild.in
@@ -45,7 +45,15 @@ while getopts 'hcr:' arg; do
esac
done
-check_root SOURCE_DATE_EPOCH
+check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAGER,GNUPGHOME
+
+if [ "${arch}" = "x86_64" ]; then
+ cache_dir=''
+else
+ mkdir -p '/var/cache/archbuild32'
+ cache_dir='-c/var/cache/archbuild32'
+ makechrootpkg_args+=('-d/var/cache/archbuild32:/var/cache/pacman/pkg')
+fi
if [ "${arch}" = "x86_64" ]; then
cache_dir=''
diff --git a/doc/asciidoc.conf b/doc/asciidoc.conf
new file mode 100644
index 0000000..c675a20
--- /dev/null
+++ b/doc/asciidoc.conf
@@ -0,0 +1,37 @@
+## linkman: macro
+# Inspired by/borrowed from the GIT source tree at Documentation/asciidoc.conf
+#
+# Usage: linkman:command[manpage-section]
+#
+# Note, {0} is the manpage section, while {target} is the command.
+#
+# Show man link as: <command>(<section>); if section is defined, else just show
+# the command.
+
+[macros]
+(?su)[\\]?(?P<name>linkman):(?P<target>\S*?)\[(?P<attrlist>.*?)\]=
+
+[attributes]
+asterisk=&#42;
+plus=&#43;
+caret=&#94;
+startsb=&#91;
+endsb=&#93;
+backslash=&#92;
+tilde=&#126;
+apostrophe=&#39;
+backtick=&#96;
+litdd=&#45;&#45;
+
+ifdef::backend-docbook[]
+[linkman-inlinemacro]
+{0%{target}}
+{0#<citerefentry>}
+{0#<refentrytitle>{target}</refentrytitle><manvolnum>{0}</manvolnum>}
+{0#</citerefentry>}
+endif::backend-docbook[]
+
+ifdef::backend-xhtml11[]
+[linkman-inlinemacro]
+<a href="{target}.{0}.html">{target}{0?({0})}</a>
+endif::backend-xhtml11[]
diff --git a/doc/checkpkg.1.asciidoc b/doc/checkpkg.1.asciidoc
new file mode 100644
index 0000000..96ec645
--- /dev/null
+++ b/doc/checkpkg.1.asciidoc
@@ -0,0 +1,27 @@
+checkpkg(1)
+===========
+
+Name
+----
+checkpkg - Compare the current build package with the repository version
+
+Synopsis
+--------
+checkpkg
+
+Description
+-----------
+
+Searches for a locally built package corresponding to the PKGBUILD, and
+downloads the last version of that package from the Pacman repositories. It
+then compares the list of .so files provided by each version of the package and
+outputs if there are soname differences for the new package. A directory is
+also created using mktemp with files containing a file list for both packages
+and a library list for both packages.
+
+See Also
+--------
+
+linkman:find-libprovides[1]
+
+include::footer.asciidoc[]
diff --git a/doc/find-libprovides.1.asciidoc b/doc/find-libprovides.1.asciidoc
new file mode 100644
index 0000000..c6d527d
--- /dev/null
+++ b/doc/find-libprovides.1.asciidoc
@@ -0,0 +1,24 @@
+find-libdeps(1)
+===============
+
+Name
+----
+find-libdeps - Find soname dependencies for a package
+
+Synopsis
+--------
+find-libdeps [options] [package]
+
+Description
+-----------
+
+Finds soname dependencies of a package and prints out a list in the following
+format '<soname>=<soversion>-<soarch>'.
+
+Options
+-------
+
+*--ignore-internal*::
+ Ignore internal libraries
+
+include::footer.asciidoc[]
diff --git a/doc/footer.asciidoc b/doc/footer.asciidoc
new file mode 100644
index 0000000..a092447
--- /dev/null
+++ b/doc/footer.asciidoc
@@ -0,0 +1,28 @@
+
+Bugs
+----
+Bugs can be reported on the bug tracker 'https://bugs.archlinux.org' in the Arch
+Linux category and title prefixed with [devtools] or via
+mailto:arch-projects@archlinux.org[].
+
+
+Authors
+-------
+
+Maintainers:
+
+* Aaron Griffin <aaronmgriffin@gmail.com>
+* Allan McRae <allan@archlinux.org>
+* Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+* Dan McGee <dan@archlinux.org>
+* Dave Reisner <dreisner@archlinux.org>
+* Evangelos Foutras <evangelos@foutrelis.com>
+* Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+* Levente Polyak <anthraxx@archlinux.org>
+* Pierre Schmitz <pierre@archlinux.de>
+* Sébastien Luttringer <seblu@seblu.net>
+* Sven-Hendrik Haase <svenstaro@gmail.com>
+* Thomas Bächler <thomas@archlinux.org>
+
+For additional contributors, use `git shortlog -s` on the devtools.git
+repository.
diff --git a/doc/lddd.1.asciidoc b/doc/lddd.1.asciidoc
new file mode 100644
index 0000000..3a015d2
--- /dev/null
+++ b/doc/lddd.1.asciidoc
@@ -0,0 +1,25 @@
+lddd(1)
+=======
+
+Name
+----
+lddd - Find broken library links on your system
+
+Synopsis
+--------
+lddd
+
+Description
+-----------
+
+Scans '$PATH', '/lib', '/usr/lib', '/usr/local/lib' and
+'/etc/ld.so.conf.d/*.conf' directories for ELF files with references to missing
+shared libraries, and suggests which packages might need to be rebuilt. The
+collected data is written to a temporary directory created by mktemp.
+
+See Also
+--------
+
+linkman:ldd[1]
+
+include::footer.asciidoc[]
diff --git a/find-libdeps.in b/find-libdeps.in
index 921e7af..7a3e6f5 100644
--- a/find-libdeps.in
+++ b/find-libdeps.in
@@ -46,7 +46,7 @@ process_sofile() {
# extract the major version: 1
soversion="${sofile##*\.so\.}"
if [[ "$soversion" = "$sofile" ]] && ((IGNORE_INTERNAL)); then
- continue
+ return
fi
if ! in_array "${soname}=${soversion}-${soarch}" "${soobjects[@]}"; then
# libfoo.so=1-64
diff --git a/makepkg-i486.conf b/makepkg-i486.conf
index 9407ec5..acc8683 100644
--- a/makepkg-i486.conf
+++ b/makepkg-i486.conf
@@ -1,3 +1,6 @@
+#!/hint/bash
+# shellcheck disable=2034
+
#
# /etc/makepkg.conf
#
@@ -37,9 +40,9 @@ CHOST="i486-pc-linux-gnu"
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CPPFLAGS="-D_FORTIFY_SOURCE=2"
-CFLAGS="-march=i486 -mtune=generic -O2 -pipe -fstack-protector-strong"
-CXXFLAGS="-march=i486 -mtune=generic -O2 -pipe -fstack-protector-strong"
-LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro"
+CFLAGS="-march=i486 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
+CXXFLAGS="-march=i486 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
+LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
diff --git a/mkarchroot.in b/mkarchroot.in
index a916f2a..df995a8 100644
--- a/mkarchroot.in
+++ b/mkarchroot.in
@@ -93,6 +93,8 @@ echo "$CHROOT_VERSION" > "$working_dir/.arch-chroot"
systemd-machine-id-setup --root="$working_dir"
+pacman-key --gpgdir "$working_dir"/etc/pacman.d/gnupg --init
+
exec arch-nspawn \
${nosetarch:+-s} \
${pac_conf:+-C "$pac_conf"} \