summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Grapentin <andreas@grapentin.org>2021-06-30 10:31:01 +0200
committerAndreas Grapentin <andreas@grapentin.org>2021-06-30 10:31:01 +0200
commitb087c44a4ca6a59e6f57659b017bb0455f556695 (patch)
treecb574de389a3555a2ecaee0d9011c13cbfc22430
parent986d88127cbcdbc7a79e9d28d0ee6e9fb47ca9cb (diff)
updated pacman for riscv64
-rw-r--r--libre/pacman/PKGBUILD65
-rw-r--r--libre/pacman/makepkg-riscv64-updguess.patch27
-rw-r--r--libre/pacman/makepkg.conf-riscv64-updguess.patch22
-rw-r--r--libre/pacman/makepkg.conf.in2
-rw-r--r--libre/pacman/pacman.conf.riscv64184
5 files changed, 277 insertions, 23 deletions
diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD
index dc261b9aa..0f2f3f95c 100644
--- a/libre/pacman/PKGBUILD
+++ b/libre/pacman/PKGBUILD
@@ -12,7 +12,7 @@ pkgrel=3
pkgrel+=.parabola1
pkgdesc="A library-based package manager with dependency support"
arch=('x86_64')
-arch+=('i686' 'armv7h')
+arch+=('i686' 'armv7h' 'riscv64')
url="https://www.archlinux.org/pacman/"
license=('GPL')
groups=('base-devel')
@@ -28,7 +28,7 @@ conflicts=('pacman-parabola')
replaces=('pacman-parabola')
backup=(etc/pacman.conf
etc/makepkg.conf)
-options=('strip' 'debug')
+options=('strip')
validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae <allan@archlinux.org>
'B8151B117037781095514CA7BBDFFC92306B1121') # Andrew Gregory (pacman) <andrew@archlinux.org>
source=(https://sources.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig}
@@ -41,12 +41,15 @@ source=(https://sources.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig
source_armv7h=(0001-Sychronize-filesystem.patch
0002-Revert-close-stdin-before-running-install-scripts.patch
0003-Revert-alpm_run_chroot-always-connect-parent2child-p.patch)
+source_riscv64=(makepkg.conf-riscv64-updguess.patch
+ makepkg-riscv64-updguess.patch)
sha256sums=('bb201a9f2fb53c28d011f661d50028efce6eef2c1d2a36728bdd0130189349a0'
'SKIP'
- 'fdc78b55947d41d08d9a0404b4fbb37e409517733ab11cbe336f5aaa24dcfffd'
- 'e5632e1581a4283cf8b93f0d32618fc7a35480c9caaf2d256c95f77645ae4265'
- 'd9bed26a58377b726ebadabd9729008e484f8719632b9c3e76c9320c2fcaa22c'
- 'ee4121a3a94fa0a0709be215e450b3c5b604bc03ffc32be8969d7461526dcc6b'
+ '4d5477620ff652b16bca12f149ad79112fcc7d1f2ed8e66248e6e4773a61933c'
+ '989951ad742283c01cb5d05bb76166d1300e737f7ee792e9849937a3ea08e0e5'
+ '759a16419d16aa6c4e5bbbec362f9652c80047398a1e517dbf86ad2dd7186ad9'
+ '989951ad742283c01cb5d05bb76166d1300e737f7ee792e9849937a3ea08e0e5'
+ 'be567e9dba55fe916bac61d0ea9bb857daba392ab65a0cf9435cbd5d80c98243'
'871fd97b3f13f1718358e4b8e046a56c0262c9042b5e3b5d60835606735798bd'
'220f1b25a64727041dc6fa3fd486b0a043f735a3f6cecedc4e2f7c47ec6ce66d'
'2a857061f032ff5485f5c75ab74e6f6532621e08963ef48640a792cca16cacd6'
@@ -54,6 +57,8 @@ sha256sums=('bb201a9f2fb53c28d011f661d50028efce6eef2c1d2a36728bdd0130189349a0'
sha256sums_armv7h=('8d70fb5094f58aad98b601bbc42be354c2014b9fe734a1ee0b1e14bb041cc9cc'
'0e771370da68c855bfb4eaad4c2ae137883a474886a049b934dac2e775574cb9'
'2f586f72c34150330389854575a21be1d3ef3637c4f94bec2e948c2717a5aecb')
+sha256sums_riscv64=('85ddd7e212e5268c44facebffe949ceb2085986bd1ec1f08930c0978dd454964'
+ '7d8014f263ec54068f519f6c7a0fd99a63fc54a0b437349305db8a4a11b384dd')
prepare() {
cd "$pkgname-$pkgver"
@@ -68,6 +73,10 @@ prepare() {
# From Parabola
patch -p1 -i ../0004-makepkg-Treat-pkgrel-more-similarly-to-pkgver.patch
+
+ if [ "${CARCH}" = "riscv64" ]; then
+ patch -p1 -i ../makepkg-riscv64-updguess.patch
+ fi
}
build() {
@@ -80,42 +89,54 @@ build() {
make V=1
# Generate the architecture-specific makepkg.conf files
- local carch mycarch mychost myflags myldflags
+ local carch mycarch mychost myflags=() myldflags=()
for carch in "${arch[@]}"; do
case $carch in
i686)
mycarch="i686"
mychost="i686-pc-linux-gnu"
- myflags="-march=i686 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
- -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS \
- -Wformat -Werror=format-security \
- -fstack-clash-protection -fcf-protection"
+ myflags=(-march=i686 -mtune=generic -O2 -pipe -fno-plt -fexceptions
+ -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS
+ -Wformat -Werror=format-security
+ -fstack-clash-protection -fcf-protection)
;;
x86_64)
mycarch="x86_64"
mychost="x86_64-pc-linux-gnu"
- myflags="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
- -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS \
- -Wformat -Werror=format-security \
- -fstack-clash-protection -fcf-protection"
+ myflags=(-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
+ -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS
+ -Wformat -Werror=format-security
+ -fstack-clash-protection -fcf-protection)
;;
armv7h)
mycarch="armv7h"
mychost="armv7l-unknown-linux-gnueabihf"
- myflags="-march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fno-plt -fexceptions \
- -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS \
- -Wformat -Werror=format-security \
- -fstack-clash-protection"
+ myflags=(-march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fno-plt -fexceptions
+ -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS
+ -Wformat -Werror=format-security
+ -fstack-clash-protection)
+ ;;
+ riscv64)
+ mycarch="riscv64"
+ mychost="riscv64-unknown-linux-gnu"
+ myflags=(-march=rv64gc -mabi=lp64d -O2 -pipe -fno-plt -fexceptions
+ -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS
+ -Wformat -Werror=format-security
+ -fstack-clash-protection)
;;
esac
- myldflags="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+ myldflags=(-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now)
# set things correctly in the default conf file
sed < "$srcdir/makepkg.conf.in" > "$srcdir/makepkg.conf.$carch" \
-e "s|@CARCH[@]|$mycarch|g" \
-e "s|@CHOST[@]|$mychost|g" \
- -e "s|@CARCHFLAGS[@]|$myflags|g" \
- -e "s|@LDFLAGS[@]|$myldflags|g"
+ -e "s|@CARCHFLAGS[@]|${myflags[*]}|g" \
+ -e "s|@LDFLAGS[@]|${myldflags[*]}|g"
+
+ if [ "${mycarch}" = "riscv64" ]; then
+ patch -d "$srcdir" -i ../makepkg.conf-riscv64-updguess.patch
+ fi
done
}
diff --git a/libre/pacman/makepkg-riscv64-updguess.patch b/libre/pacman/makepkg-riscv64-updguess.patch
new file mode 100644
index 000000000..82710b4e9
--- /dev/null
+++ b/libre/pacman/makepkg-riscv64-updguess.patch
@@ -0,0 +1,27 @@
+diff -rupN pacman-5.2.2.orig/scripts/libmakepkg/source.sh.in pacman-5.2.2/scripts/libmakepkg/source.sh.in
+--- pacman-5.2.2.orig/scripts/libmakepkg/source.sh.in 2021-06-30 09:33:32.625058631 +0200
++++ pacman-5.2.2/scripts/libmakepkg/source.sh.in 2021-06-30 09:35:24.985964363 +0200
+@@ -83,3 +83,10 @@ extract_sources() {
+ fi
+ done
+ }
++
++update_config_guess() {
++ msg "$(gettext "Updating config.guess and config.sub in source tree...")"
++
++ find . -iname 'config.guess' -print -exec cp -a /usr/share/autoconf/build-aux/config.guess {} \;
++ find . -iname 'config.sub' -print -exec cp -a /usr/share/autoconf/build-aux/config.sub {} \;
++}
+diff -rupN pacman-5.2.2.orig/scripts/makepkg.sh.in pacman-5.2.2/scripts/makepkg.sh.in
+--- pacman-5.2.2.orig/scripts/makepkg.sh.in 2021-06-30 09:33:32.609057933 +0200
++++ pacman-5.2.2/scripts/makepkg.sh.in 2021-06-30 09:34:45.840255242 +0200
+@@ -1418,6 +1418,9 @@ if (( !REPKG )); then
+ fi
+
+ extract_sources
++ if check_option "updguess" "y"; then
++ update_config_guess
++ fi
+ if (( PREPAREFUNC )); then
+ run_prepare
+ fi
diff --git a/libre/pacman/makepkg.conf-riscv64-updguess.patch b/libre/pacman/makepkg.conf-riscv64-updguess.patch
new file mode 100644
index 000000000..e918aa0ff
--- /dev/null
+++ b/libre/pacman/makepkg.conf-riscv64-updguess.patch
@@ -0,0 +1,22 @@
+--- makepkg.conf.riscv64.orig 2021-06-30 09:36:21.928450500 +0200
++++ makepkg.conf.riscv64 2021-06-30 09:37:07.854455651 +0200
+@@ -75,7 +75,7 @@ BUILDENV=(!distcc color !ccache check !s
+ # These are default values for the options=() settings
+ #########################################################################
+ #
+-# Default: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge debug)
++# Default: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge debug !updguess)
+ # A negated option will do the opposite of the comments below.
+ #
+ #-- strip: Strip symbols from binaries/libraries
+@@ -86,8 +86,9 @@ BUILDENV=(!distcc color !ccache check !s
+ #-- 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
++#-- updguess: Update config.guess and config.sub in the source tree
+ #
+-OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug)
++OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !updguess)
+
+ #-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
+ INTEGRITY_CHECK=(md5)
diff --git a/libre/pacman/makepkg.conf.in b/libre/pacman/makepkg.conf.in
index 5690b1561..fe434f309 100644
--- a/libre/pacman/makepkg.conf.in
+++ b/libre/pacman/makepkg.conf.in
@@ -87,7 +87,7 @@ BUILDENV=(!distcc color !ccache check !sign)
#-- purge: Remove files specified by PURGE_TARGETS
#-- debug: Add debugging flags as specified in DEBUG_* variables
#
-OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge debug)
+OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug)
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(md5)
diff --git a/libre/pacman/pacman.conf.riscv64 b/libre/pacman/pacman.conf.riscv64
new file mode 100644
index 000000000..27a76e393
--- /dev/null
+++ b/libre/pacman/pacman.conf.riscv64
@@ -0,0 +1,184 @@
+#
+# /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 = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#TotalDownload
+CheckSpace
+#VerbosePkgLists
+
+# 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 trusted packagers with:
+# `pacman-key --populate archlinux archlinux32 archlinuxarm parabola`.
+
+#
+# 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
+# un-commented to enable the repo.
+#
+# Some repositories are disabled by default. To enable them, un-comment the
+# repo name header (e.g. '[nonprism]') and the following 'Include' line.
+# You can add preferred servers for each repo between the header and "Include" line,
+# according to the format in /etc/pacman.d/mirrorlist,
+# and those will be preferred over the standard mirrors for that repo.
+#
+# The order in which these entries appear in this file is critical.
+# Much of the Parabola magic that supports advanced features such as
+# multiple init-systems and multiple layers of freedom and privacy,
+# depends on the order in which these repos are defined.
+# Moving or adding repos out of the expected order can make your system insane.
+
+# Notes on special repositories:
+#
+# Non-prism is a repository for enhanced privacy, beyond the FSDG requirements.
+# It contains specially patched versions of certain software from the standard repos,
+# that are known to include privacy-sensative features that some people may want to use,
+# but that others may consider to be undesirable anti-features.
+# For more info see: https://wiki.parabola.nu/Nonprism
+#
+# The non-systemd repository contains packages that are important and relevant only to
+# Parabola systems using an init-system other than systemd.
+# Parabola systems using systemd SHOULD NOT have [nonsystemd] enabled.
+# Parabola systems using any other init-system SHOULD have [nonsystemd] enabled.
+#
+# The kernels repository contains additional special kernels for particular use-cases,
+# such as maximal security hardening and real-time systems.
+#
+# The PCR (Parabola Community Repository) contains additional packages,
+# most often requested by Parabola users, that are not considered to be
+# part of the standard Parabola/Arch system, but are nonetheless useful or fun.
+#
+# Multi-lib repositories allow 32-bit applications to run on x86_64 systems.
+#
+# The Parabola system also supports custom, user-defined, repositories;
+# but be aware that the Parabola team can not recommend nor support their use.
+# The Parabola team can only support the use of software that is published by Parabola.
+# The use of third-party software is discouraged with a "use at your own risk" warning.
+# These may be community-maintained or maintained privately by the local user or sysadmin.
+# They may be hosted on the internet, on the local network, or only on the local computer.
+# An example of a custom package repository is given below
+# in the "User-defined repos" section
+# See the pacman manpage for details on creating your own repositories.
+
+
+###########################
+# Parabola standard repos #
+###########################
+
+#[nonprism-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[nonprism]
+#Include = /etc/pacman.d/mirrorlist
+
+#[nonsystemd-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[nonsystemd]
+#Include = /etc/pacman.d/mirrorlist
+
+#[libre-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[libre]
+Include = /etc/pacman.d/mirrorlist
+
+#[kernels-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+#[kernels]
+#Include = /etc/pacman.d/mirrorlist
+
+
+#######################
+# Arch standard repos #
+#######################
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+
+######################
+# Supplemental repos #
+######################
+
+#[pcr-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[pcr]
+Include = /etc/pacman.d/mirrorlist
+
+
+######################
+# User-defined repos #
+######################
+
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
+
+
+##############
+# Over-rides #
+##############
+
+Include = /etc/pacman.d/*.conf