From 8a635e708315bcd362c1d72a181214fe9dcd8c6b Mon Sep 17 00:00:00 2001 From: xhaa123 Date: Sat, 7 Sep 2024 23:18:11 +0800 Subject: [PATCH] pacman 7.0.0-1 --- pacman/PKGBUILD | 53 +++++++++++++ pacman/build.conf | 25 ++++++ pacman/makepkg.conf | 187 ++++++++++++++++++++++++++++++++++++++++++++ pacman/pacman.conf | 79 +++++++++++++++++++ 4 files changed, 344 insertions(+) create mode 100644 pacman/PKGBUILD create mode 100644 pacman/build.conf create mode 100644 pacman/makepkg.conf create mode 100644 pacman/pacman.conf diff --git a/pacman/PKGBUILD b/pacman/PKGBUILD new file mode 100644 index 0000000..e0e2aff --- /dev/null +++ b/pacman/PKGBUILD @@ -0,0 +1,53 @@ +# This is an example PKGBUILD file. Use this as a start to creating your own, +# and remove these comments. For more information, see 'man PKGBUILD'. +# NOTE: Please fill out the license field for your package! If it is unknown, +# then please put 'unknown'. + +# Maintainer: Future Linux Team +pkgname=pacman +pkgver=7.0.0 +pkgrel=1 +pkgdesc="A library-based package manager with dependency support" +arch=('x86_64') +url="https://www.archlinux.org/pacman/" +license=('GPL-2.0-or-later') +groups=('base' 'base-devel') +depends=('bash' 'glibc' 'libarchive' 'curl' 'gettext' 'gawk' 'grep' 'zstd') +makedepends=('meson') +backup=(etc/pacman.conf + etc/makepkg.conf + etc/makepkg.conf.d/build.conf + etc/makepkg.conf.d/rust.conf) +source=(https://gitlab.archlinux.org/pacman/pacman/-/releases/v${pkgver}/downloads/${pkgname}-${pkgver}.tar.xz + makepkg.conf + pacman.conf + build.conf) +sha256sums=(61cbd445d1381b4b184bc7c4e2791f07a79f0f2807b7c600399d0d08e8cd28cf + 7139fad46389fca2db0341db44220c502093696e129639a961eb3517e85ba584 + 9d71272f1d6c032d8ef90e75305065fccba2cfed258b822a9439f79048d3921a + 0fcc51da34000993b8fe8fbd0694e6ef64afea8cc94c14c707720ebb58415b69) + +build() { + cd ${pkgname}-${pkgver} + + future-meson build \ + --prefix=/usr \ + -Dbuildtype=release \ + -Dlibdir=/usr/lib64 \ + -Dcrypto=openssl \ + -Ddoc=disabled \ + -Dscriptlet-shell=/usr/bin/bash \ + -Dldconfig=/usr/sbin/ldconfig + + meson compile -C build +} + +package() { + cd ${pkgname}-${pkgver} + + meson install -C build --destdir ${pkgdir} + + install -m644 ${srcdir}/makepkg.conf ${pkgdir}/etc +# install -m644 ${srcdir}/pacman.conf ${pkgdir}/etc + install -vDm644 ${srcdir}/build.conf ${pkgdir}/etc/makepkg.conf.d/build.conf +} diff --git a/pacman/build.conf b/pacman/build.conf new file mode 100644 index 0000000..c1ddcf0 --- /dev/null +++ b/pacman/build.conf @@ -0,0 +1,25 @@ +######################################################################### +# BUILD CONFIGURE +BUILD_CONFIGURE="\ +../configure --build=${CHOST} \ + --host=${CHOST} \ + --prefix=/usr \ + --libdir=/usr/lib64" + +CONFIGURE="\ +./configure --build=${CHOST} \ + --host=${CHOST} \ + --prefix=/usr \ + --libdir=/usr/lib64" + +######################################################################### +# PICK +_pick() { + local p=${1} f d; shift + for f; do + d=${srcdir}/${p}/${f#${pkgdir}/} + mkdir -p $(dirname ${d}) + mv ${f} ${d} + rmdir -p --ignore-fail-on-non-empty $(dirname ${f}) + done +} diff --git a/pacman/makepkg.conf b/pacman/makepkg.conf new file mode 100644 index 0000000..a368bf9 --- /dev/null +++ b/pacman/makepkg.conf @@ -0,0 +1,187 @@ +#!/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::breezy' + 'fossil::fossil' + 'git::git' + 'hg::mercurial' + 'svn::subversion') + +######################################################################### +# ARCHITECTURE, COMPILE FLAGS +######################################################################### +# +CARCH="x86_64" +CHOST="x86_64-future-linux-gnu" +CHOST32="i686-future-linux-gnu" + +#-- Compiler and Linker Flags +#CPPFLAGS="" +#CFLAGS="-O2 -pipe" +CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \ + -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security \ + -fstack-clash-protection -fcf-protection \ + -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" +#CXXFLAGS="-O2 -pipe" +CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS" +#LDFLAGS="" +LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \ + -Wl,-z,pack-relative-relocs" +#LTOFLAGS="-flto" +LTOFLAGS="-flto=auto" +#-- Make Flags: change this for DistCC/SMP systems +#MAKEFLAGS="-j2" +MAKEFLAGS="-j$(nproc)" +#-- Debugging flags +#DEBUG_CFLAGS="-g" +#DEBUG_CXXFLAGS="-g" + +######################################################################### +# 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 !autodeps) +# 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 +#-- autodeps: Automatically add depends/provides +# +OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto !autodeps) + +#-- File integrity checks to use. Valid: ck, 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" +#-- Prefix and directories for library autodeps +LIB_DIRS=('lib64:usr/lib64' 'lib32:usr/lib32') + +######################################################################### +# 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 +PKGDEST=/home/builder/packages +#-- Source cache: specify a fixed directory where source files will be cached +#SRCDEST=/home/sources +SRCDEST=/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 " +PACKAGER="Future Linux Team " +#-- 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 -z -q -) +COMPRESSLRZ=(lrzip -q) +COMPRESSLZO=(lzop -q) +COMPRESSZ=(compress -c -f) +COMPRESSLZ4=(lz4 -q) +COMPRESSLZ=(lzip -c -f) + +######################################################################### +# EXTENSION DEFAULTS +######################################################################### +# +PKGEXT='.pkg.tar.gz' +SRCEXT='.src.tar.gz' + +######################################################################### +# OTHER +######################################################################### +# +#-- Command used to run pacman as root, instead of trying sudo and su +#PACMAN_AUTH=() + +######################################################################### +# BUILD CONFIGURE +#BUILD_CONFIGURE="\ +#../configure --build=${CHOST} \ +# --host=${CHOST} \ +# --prefix=/usr \ +# --libdir=/usr/lib64" +# +#CONFIGURE="\ +#./configure --build=${CHOST} \ +# --host=${CHOST} \ +# --prefix=/usr \ +# --libdir=/usr/lib64" + diff --git a/pacman/pacman.conf b/pacman/pacman.conf new file mode 100644 index 0000000..febbf5f --- /dev/null +++ b/pacman/pacman.conf @@ -0,0 +1,79 @@ +# +# /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 +#NoProgressBar +CheckSpace +#VerbosePkgLists +ParallelDownloads = 5 +#DownloadUser = alpm +#DisableSandbox + +# PGP signature checking +#SigLevel = Optional +#LocalFileSigLevel = Optional +#RemoteFileSigLevel = Optional + +# +# 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. +# + +# An example of a disabled remote package repository with multiple servers +# available. To enable, uncomment the following lines. You can add preferred +# servers immediately after the header and they will be used before the +# default mirrors. +#[core] +#SigLevel = Required +#Server = ftp://ftp.example.com/foobar/$repo/os/$arch/ +# The file referenced here should contain a list of 'Server = ' lines. +#Include = /etc/pacman.d/mirrorlist + +# 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/packages