diff options
author | Xeonacid | 2023-01-26 14:59:04 +0800 |
---|---|---|
committer | Xeonacid | 2023-01-26 14:59:04 +0800 |
commit | 40b4888f5028686ee3a46989adaeb4c0cb003633 (patch) | |
tree | 470a1f244a3ba7193b63a0a17720e56e6e9ad5e9 | |
parent | 7cdf606b38e0fa21e71c13139604ceb679f44fa9 (diff) | |
download | aur-40b4888f5028686ee3a46989adaeb4c0cb003633.tar.gz |
use patch instead of fork; use binfmt conf from Arch
-rw-r--r-- | .SRCINFO | 13 | ||||
-rw-r--r-- | PKGBUILD | 19 | ||||
-rw-r--r-- | makepkg-riscv64.conf | 159 | ||||
-rw-r--r-- | makepkg-riscv64.patch | 21 | ||||
-rw-r--r-- | pacman-extra-riscv64.conf | 92 | ||||
-rw-r--r-- | pacman-extra-riscv64.patch | 27 | ||||
-rw-r--r-- | z-archriscv-qemu-riscv64.conf | 1 |
7 files changed, 62 insertions, 270 deletions
@@ -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 @@ -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 |