diff options
author | Andreas Grapentin <andreas@grapentin.org> | 2021-06-30 10:31:01 +0200 |
---|---|---|
committer | Andreas Grapentin <andreas@grapentin.org> | 2021-06-30 10:31:01 +0200 |
commit | b087c44a4ca6a59e6f57659b017bb0455f556695 (patch) | |
tree | cb574de389a3555a2ecaee0d9011c13cbfc22430 | |
parent | 986d88127cbcdbc7a79e9d28d0ee6e9fb47ca9cb (diff) |
updated pacman for riscv64
-rw-r--r-- | libre/pacman/PKGBUILD | 65 | ||||
-rw-r--r-- | libre/pacman/makepkg-riscv64-updguess.patch | 27 | ||||
-rw-r--r-- | libre/pacman/makepkg.conf-riscv64-updguess.patch | 22 | ||||
-rw-r--r-- | libre/pacman/makepkg.conf.in | 2 | ||||
-rw-r--r-- | libre/pacman/pacman.conf.riscv64 | 184 |
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 |