summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorXeonacid2023-01-26 14:59:04 +0800
committerXeonacid2023-01-26 14:59:04 +0800
commit40b4888f5028686ee3a46989adaeb4c0cb003633 (patch)
tree470a1f244a3ba7193b63a0a17720e56e6e9ad5e9
parent7cdf606b38e0fa21e71c13139604ceb679f44fa9 (diff)
downloadaur-40b4888f5028686ee3a46989adaeb4c0cb003633.tar.gz
use patch instead of fork; use binfmt conf from Arch
-rw-r--r--.SRCINFO13
-rw-r--r--PKGBUILD19
-rw-r--r--makepkg-riscv64.conf159
-rw-r--r--makepkg-riscv64.patch21
-rw-r--r--pacman-extra-riscv64.conf92
-rw-r--r--pacman-extra-riscv64.patch27
-rw-r--r--z-archriscv-qemu-riscv64.conf1
7 files changed, 62 insertions, 270 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a3fccefd459b..86376eca9480 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,20 +1,19 @@
pkgbase = devtools-riscv64
pkgdesc = Tools for Arch Linux RISC-V package maintainers
- pkgver = 1.2.0
+ pkgver = 1.4.0
pkgrel = 1
url = https://github.com/felixonmars/archriscv-packages
arch = x86_64
arch = riscv64
license = GPL
depends = devtools
- source = makepkg-riscv64.conf
- source = pacman-extra-riscv64.conf
+ source = makepkg-riscv64.patch
+ source = pacman-extra-riscv64.patch
source = sogrep-riscv64
- sha256sums = c8842d83460d44b873ff56c9ee0c982963ff76e5ed13897e5d7b8d7f0ea7c206
- sha256sums = fc933f164d21774e7a1435d9fccf87cb05f7b601e89a2ba54b899b2ce1e809df
+ sha256sums = 2abae300509c2fbae0246f195fb7ffa17c4ad240052f1e60b0bc504de6149685
+ sha256sums = 1c79f2817f81e18060a37b237bd1ec619af5447d0884d525aa87aa2165df16b2
sha256sums = 3721d7ca08eae58ef2a9de6d8f9ccf2fae1f330949bbf5f566db4c2efbd06105
- source_x86_64 = z-archriscv-qemu-riscv64.conf
depends_x86_64 = qemu-user-static
- sha256sums_x86_64 = c59273c423e815e4c27e8486632d80a768adddd172119035d48f7c2fac98a87a
+ depends_x86_64 = qemu-user-static-binfmt
pkgname = devtools-riscv64
diff --git a/PKGBUILD b/PKGBUILD
index 09f9f16a69e7..f0e113427f44 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,35 +1,32 @@
# Maintainer: Xeonacid <h.dwwwwww at gmail dot com>
pkgname=devtools-riscv64
-pkgver=1.2.0
+pkgver=1.4.0
pkgrel=1
pkgdesc='Tools for Arch Linux RISC-V package maintainers'
arch=('x86_64' 'riscv64')
license=('GPL')
url='https://github.com/felixonmars/archriscv-packages'
depends=('devtools')
-depends_x86_64=('qemu-user-static')
-source=(makepkg-riscv64.conf
- pacman-extra-riscv64.conf
+depends_x86_64=('qemu-user-static' 'qemu-user-static-binfmt')
+source=(makepkg-riscv64.patch
+ pacman-extra-riscv64.patch
sogrep-riscv64)
-source_x86_64=('z-archriscv-qemu-riscv64.conf')
-sha256sums=('c8842d83460d44b873ff56c9ee0c982963ff76e5ed13897e5d7b8d7f0ea7c206'
- 'fc933f164d21774e7a1435d9fccf87cb05f7b601e89a2ba54b899b2ce1e809df'
+sha256sums=('2abae300509c2fbae0246f195fb7ffa17c4ad240052f1e60b0bc504de6149685'
+ '1c79f2817f81e18060a37b237bd1ec619af5447d0884d525aa87aa2165df16b2'
'3721d7ca08eae58ef2a9de6d8f9ccf2fae1f330949bbf5f566db4c2efbd06105')
-sha256sums_x86_64=('c59273c423e815e4c27e8486632d80a768adddd172119035d48f7c2fac98a87a')
package() {
install -Dm755 sogrep-riscv64 -t "$pkgdir"/usr/bin/
ln -s /usr/bin/archbuild "$pkgdir"/usr/bin/extra-riscv64-build
+ patch /usr/share/devtools/makepkg-x86_64.conf -i makepkg-riscv64.patch -o makepkg-riscv64.conf
+ patch /usr/share/devtools/pacman-extra.conf -i pacman-extra-riscv64.patch -o pacman-extra-riscv64.conf
install -Dm644 makepkg-riscv64.conf pacman-extra-riscv64.conf -t "$pkgdir"/usr/share/devtools/
if [[ ! "$CARCH" =~ riscv ]]; then
install -dm755 "$pkgdir"/usr/share/devtools/setarch-aliases.d
echo "$CARCH" > "$pkgdir"/usr/share/devtools/setarch-aliases.d/riscv64
-
- # binfmt-qemu-static, but with P flag
- install -Dm644 z-archriscv-qemu-riscv64.conf -t "$pkgdir"/usr/lib/binfmt.d/
fi
}
diff --git a/makepkg-riscv64.conf b/makepkg-riscv64.conf
deleted file mode 100644
index c2b86af7bcb1..000000000000
--- a/makepkg-riscv64.conf
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/hint/bash
-#
-# /etc/makepkg.conf
-#
-
-#########################################################################
-# SOURCE ACQUISITION
-#########################################################################
-#
-#-- The download utilities that makepkg should use to acquire sources
-# Format: 'protocol::agent'
-DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
- 'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
- 'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
- 'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
- 'rsync::/usr/bin/rsync --no-motd -z %u %o'
- 'scp::/usr/bin/scp -C %u %o')
-
-# Other common tools:
-# /usr/bin/snarf
-# /usr/bin/lftpget -c
-# /usr/bin/wget
-
-#-- The package required by makepkg to download VCS sources
-# Format: 'protocol::package'
-VCSCLIENTS=('bzr::bzr'
- 'fossil::fossil'
- 'git::git'
- 'hg::mercurial'
- 'svn::subversion')
-
-#########################################################################
-# ARCHITECTURE, COMPILE FLAGS
-#########################################################################
-#
-CARCH="riscv64"
-CHOST="riscv64-unknown-linux-gnu"
-
-#-- Compiler and Linker Flags
-#CPPFLAGS=""
-CFLAGS="-march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions \
- -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
- -fstack-clash-protection"
-CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
-LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
-LTOFLAGS="-flto=auto"
-#RUSTFLAGS="-C opt-level=2"
-#-- Make Flags: change this for DistCC/SMP systems
-#MAKEFLAGS="-j2"
-#-- Debugging flags
-DEBUG_CFLAGS="-g"
-DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
-#DEBUG_RUSTFLAGS="-C debuginfo=2"
-
-#########################################################################
-# BUILD ENVIRONMENT
-#########################################################################
-#
-# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
-# A negated environment option will do the opposite of the comments below.
-#
-#-- distcc: Use the Distributed C/C++/ObjC compiler
-#-- color: Colorize output messages
-#-- ccache: Use ccache to cache compilation
-#-- check: Run the check() function if present in the PKGBUILD
-#-- sign: Generate PGP signature file
-#
-BUILDENV=(!distcc color !ccache check !sign)
-#
-#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
-#-- specify a space-delimited list of hosts running in the DistCC cluster.
-#DISTCC_HOSTS=""
-#
-#-- Specify a directory for package building.
-#BUILDDIR=/tmp/makepkg
-
-#########################################################################
-# GLOBAL PACKAGE OPTIONS
-# These are default values for the options=() settings
-#########################################################################
-#
-# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
-# A negated option will do the opposite of the comments below.
-#
-#-- strip: Strip symbols from binaries/libraries
-#-- docs: Save doc directories specified by DOC_DIRS
-#-- libtool: Leave libtool (.la) files in packages
-#-- staticlibs: Leave static library (.a) files in packages
-#-- emptydirs: Leave empty directories in packages
-#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
-#-- purge: Remove files specified by PURGE_TARGETS
-#-- debug: Add debugging flags as specified in DEBUG_* variables
-#-- lto: Add compile flags for building with link time optimization
-#
-OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)
-
-#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
-INTEGRITY_CHECK=(sha256)
-#-- Options to be used when stripping binaries. See `man strip' for details.
-STRIP_BINARIES="--strip-all"
-#-- Options to be used when stripping shared libraries. See `man strip' for details.
-STRIP_SHARED="--strip-unneeded"
-#-- Options to be used when stripping static libraries. See `man strip' for details.
-STRIP_STATIC="--strip-debug"
-#-- Manual (man and info) directories to compress (if zipman is specified)
-MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
-#-- Doc directories to remove (if !docs is specified)
-DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
-#-- Files to be removed from all packages (if purge is specified)
-PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
-#-- Directory to store source code in for debug packages
-DBGSRCDIR="/usr/src/debug"
-
-#########################################################################
-# PACKAGE OUTPUT
-#########################################################################
-#
-# Default: put built package and cached source in build directory
-#
-#-- Destination: specify a fixed directory where all packages will be placed
-#PKGDEST=/home/packages
-#-- Source cache: specify a fixed directory where source files will be cached
-#SRCDEST=/home/sources
-#-- Source packages: specify a fixed directory where all src packages will be placed
-#SRCPKGDEST=/home/srcpackages
-#-- Log files: specify a fixed directory where all log files will be placed
-#LOGDEST=/home/makepkglogs
-#-- Packager: name/email of the person or organization building packages
-#PACKAGER="John Doe <john@doe.com>"
-#-- Specify a key to use for package signing
-#GPGKEY=""
-
-#########################################################################
-# COMPRESSION DEFAULTS
-#########################################################################
-#
-COMPRESSGZ=(gzip -c -f -n)
-COMPRESSBZ2=(bzip2 -c -f)
-COMPRESSXZ=(xz -c -z -)
-COMPRESSZST=(zstd -c -T0 --ultra -20 -)
-COMPRESSLRZ=(lrzip -q)
-COMPRESSLZO=(lzop -q)
-COMPRESSZ=(compress -c -f)
-COMPRESSLZ4=(lz4 -q)
-COMPRESSLZ=(lzip -c -f)
-
-#########################################################################
-# EXTENSION DEFAULTS
-#########################################################################
-#
-PKGEXT='.pkg.tar.zst'
-SRCEXT='.src.tar.gz'
-
-#########################################################################
-# OTHER
-#########################################################################
-#
-#-- Command used to run pacman as root, instead of trying sudo and su
-#PACMAN_AUTH=()
diff --git a/makepkg-riscv64.patch b/makepkg-riscv64.patch
new file mode 100644
index 000000000000..1567ce3834ba
--- /dev/null
+++ b/makepkg-riscv64.patch
@@ -0,0 +1,21 @@
+--- /usr/share/devtools/makepkg-x86_64.conf 2023-01-06 03:00:58.000000000 +0800
++++ makepkg-riscv64.conf 2023-01-16 23:30:46.599890442 +0800
+@@ -35,14 +35,14 @@
+ # ARCHITECTURE, COMPILE FLAGS
+ #########################################################################
+ #
+-CARCH="x86_64"
+-CHOST="x86_64-pc-linux-gnu"
++CARCH="riscv64"
++CHOST="riscv64-unknown-linux-gnu"
+
+ #-- Compiler and Linker Flags
+ #CPPFLAGS=""
+-CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
++CFLAGS="-march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions \
+ -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
+- -fstack-clash-protection -fcf-protection"
++ -fstack-clash-protection"
+ CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
+ LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+ LTOFLAGS="-flto=auto"
diff --git a/pacman-extra-riscv64.conf b/pacman-extra-riscv64.conf
deleted file mode 100644
index f8c3a13467d8..000000000000
--- a/pacman-extra-riscv64.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-#
-# /etc/pacman.conf
-#
-# See the pacman.conf(5) manpage for option and repository directives
-
-#
-# GENERAL OPTIONS
-#
-[options]
-# The following paths are commented out with their default values listed.
-# If you wish to use different paths, uncomment and update the paths.
-#RootDir = /
-#DBPath = /var/lib/pacman/
-#CacheDir = /var/cache/pacman/pkg/
-#LogFile = /var/log/pacman.log
-#GPGDir = /etc/pacman.d/gnupg/
-#HookDir = /etc/pacman.d/hooks/
-HoldPkg = pacman glibc
-#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
-#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
-#CleanMethod = KeepInstalled
-Architecture = riscv64
-
-# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
-#IgnorePkg =
-#IgnoreGroup =
-
-#NoUpgrade =
-#NoExtract =
-
-# Misc options
-#UseSyslog
-#Color
-NoProgressBar
-# We cannot check disk space from within a chroot environment
-#CheckSpace
-VerbosePkgLists
-ParallelDownloads = 5
-
-# By default, pacman accepts packages signed by keys that its local keyring
-# trusts (see pacman-key and its man page), as well as unsigned packages.
-SigLevel = Required DatabaseOptional
-LocalFileSigLevel = Optional
-#RemoteFileSigLevel = Required
-
-# NOTE: You must run `pacman-key --init` before first using pacman; the local
-# keyring can then be populated with the keys of all official Arch Linux
-# packagers with `pacman-key --populate archlinux`.
-
-#
-# REPOSITORIES
-# - can be defined here or included from another file
-# - pacman will search repositories in the order defined here
-# - local/custom mirrors can be added here or in separate files
-# - repositories listed first will take precedence when packages
-# have identical names, regardless of version number
-# - URLs will have $repo replaced by the name of the current repo
-# - URLs will have $arch replaced by the name of the architecture
-#
-# Repository entries are of the format:
-# [repo-name]
-# Server = ServerName
-# Include = IncludePath
-#
-# The header [repo-name] is crucial - it must be present and
-# uncommented to enable the repo.
-#
-
-# The testing repositories are disabled by default. To enable, uncomment the
-# repo name header and Include lines. You can add preferred servers immediately
-# after the header, and they will be used before the default mirrors.
-
-#[testing]
-#Server = https://archriscv.felixc.at/repo/$repo
-
-[core]
-Server = https://archriscv.felixc.at/repo/$repo
-
-[extra]
-Server = https://archriscv.felixc.at/repo/$repo
-
-#[community-testing]
-#Server = https://archriscv.felixc.at/repo/$repo
-
-[community]
-Server = https://archriscv.felixc.at/repo/$repo
-
-# An example of a custom package repository. See the pacman manpage for
-# tips on creating your own repositories.
-#[custom]
-#SigLevel = Optional TrustAll
-#Server = file:///home/custompkgs
diff --git a/pacman-extra-riscv64.patch b/pacman-extra-riscv64.patch
new file mode 100644
index 000000000000..5385b0226f1f
--- /dev/null
+++ b/pacman-extra-riscv64.patch
@@ -0,0 +1,27 @@
+--- /usr/share/devtools/pacman-extra.conf 2023-01-06 03:00:58.000000000 +0800
++++ pacman-extra-riscv64.conf 2023-01-24 22:31:14.871571646 +0800
+@@ -71,19 +71,19 @@
+ # after the header, and they will be used before the default mirrors.
+
+ #[testing]
+-#Include = /etc/pacman.d/mirrorlist
++#Server = https://archriscv.felixc.at/repo/$repo
+
+ [core]
+-Include = /etc/pacman.d/mirrorlist
++Server = https://archriscv.felixc.at/repo/$repo
+
+ [extra]
+-Include = /etc/pacman.d/mirrorlist
++Server = https://archriscv.felixc.at/repo/$repo
+
+ #[community-testing]
+-#Include = /etc/pacman.d/mirrorlist
++#Server = https://archriscv.felixc.at/repo/$repo
+
+ [community]
+-Include = /etc/pacman.d/mirrorlist
++Server = https://archriscv.felixc.at/repo/$repo
+
+ # An example of a custom package repository. See the pacman manpage for
+ # tips on creating your own repositories.
diff --git a/z-archriscv-qemu-riscv64.conf b/z-archriscv-qemu-riscv64.conf
deleted file mode 100644
index be4ec39ccad2..000000000000
--- a/z-archriscv-qemu-riscv64.conf
+++ /dev/null
@@ -1 +0,0 @@
-:qemu-riscv64:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-riscv64-static:PCF