diff options
Diffstat (limited to 'org.archlinux.pacman')
-rw-r--r-- | org.archlinux.pacman/README.md | 9 | ||||
-rw-r--r-- | org.archlinux.pacman/mirrorlist | 15 | ||||
-rw-r--r-- | org.archlinux.pacman/org.archlinux.pacman.yml | 64 | ||||
-rw-r--r-- | org.archlinux.pacman/pacman.conf | 107 | ||||
-rwxr-xr-x | org.archlinux.pacman/run | 5 |
5 files changed, 200 insertions, 0 deletions
diff --git a/org.archlinux.pacman/README.md b/org.archlinux.pacman/README.md new file mode 100644 index 0000000..3b511ee --- /dev/null +++ b/org.archlinux.pacman/README.md @@ -0,0 +1,9 @@ +# [Pacman](https://archlinux.org/) + +arch linux's pacman running directly in a flatpak, no chroot or extra container involved. + +Runs fine, everything gets stored in `~/.var/app/org.archlinux.pacman/.pacroot/root`. + +Issues: + - pacman will give some warnings about being able to change ownership, that can be ignored + - due to errors with gpg, any form of package verification had to be disabled diff --git a/org.archlinux.pacman/mirrorlist b/org.archlinux.pacman/mirrorlist new file mode 100644 index 0000000..36eec0e --- /dev/null +++ b/org.archlinux.pacman/mirrorlist @@ -0,0 +1,15 @@ +################################################################################ +################# Arch Linux mirrorlist generated by Reflector ################# +################################################################################ + +# With: reflector --save ./mirrorlist --country France,Germany --protocol https --latest 5 --sort rate +# When: 2023-04-16 17:11:26 UTC +# From: https://archlinux.org/mirrors/status/json/ +# Retrieved: 2023-04-16 17:11:19 UTC +# Last Check: 2023-04-16 16:56:01 UTC + +Server = https://mirror.sunred.org/archlinux/$repo/os/$arch +Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = https://mirror.f4st.host/archlinux/$repo/os/$arch +Server = https://archlinux.thaller.ws/$repo/os/$arch +Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch diff --git a/org.archlinux.pacman/org.archlinux.pacman.yml b/org.archlinux.pacman/org.archlinux.pacman.yml new file mode 100644 index 0000000..ba90d17 --- /dev/null +++ b/org.archlinux.pacman/org.archlinux.pacman.yml @@ -0,0 +1,64 @@ +app-id: org.archlinux.pacman +runtime: org.freedesktop.Platform +runtime-version: '22.08' +sdk: org.freedesktop.Sdk +command: run +finish-args: + - --persist=.pacroot + - --share=network + +modules: + - name: fakeroot + buildsystem: simple + sources: + - type: archive + url: https://deb.debian.org/debian/pool/main/f/fakeroot/fakeroot_1.31.orig.tar.gz + sha256: 63886d41e11c56c7170b9d9331cca086421b350d257338ef14daad98f77e202f + build-commands: + - ./configure --prefix=/app --disable-static --with-ipc=sysv + - make + - make install + + - name: fakechroot + buildsystem: simple + sources: + - type: git + url: https://github.com/dex4er/fakechroot.git + commit: 693a3597ea7fccfb62f357503ff177bd3e3d5a89 + build-commands: + - ./autogen.sh + - ./configure --prefix=/app --sbindir=/app/bin --sysconfdir=/app/etc + - make + - make install + + + - name: pacman + buildsystem: meson + sources: + - type: archive + url: https://sources.archlinux.org/other/pacman/pacman-6.0.2.tar.xz + sha256: 7d8e3e8c5121aec0965df71f59bedf46052c6cf14f96365c4411ec3de0a4c1a5 + +# - name: pacstrap +# buildsystem: simple +# sources: +# - type: archive +# url: https://github.com/archlinux/arch-install-scripts/archive/refs/tags/v28.tar.gz +# sha256: 9951748e738417b721bafa70306ac05cbf77a805cf4750ce79133b2b5b9a8b03 +# build-commands: +# - make PREFIX="/app" install + + - name: compat + buildsystem: simple + build-commands: + - mkdir -p /app/root/var/lib + - install -Dm744 run /app/bin/run + - install -Dm744 pacman.conf /app/pacman.conf + - install -Dm744 mirrorlist /app/mirrorlist + sources: + - type: file + path: ./pacman.conf + - type: file + path: ./mirrorlist + - type: file + path: ./run diff --git a/org.archlinux.pacman/pacman.conf b/org.archlinux.pacman/pacman.conf new file mode 100644 index 0000000..38e82ac --- /dev/null +++ b/org.archlinux.pacman/pacman.conf @@ -0,0 +1,107 @@ +# +# /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 = +# + +# Misc options +#UseSyslog +Color +ILoveCandy +# +#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 = Never +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. + +#[crystal-x86_64] +#Include = ./crystal-mirrorlist + +#[crystal-any] +#Include = ./crystal-mirrorlist + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /app/mirrorlist + +[extra] +Include = /app/mirrorlist + +#[community-testing] +#Include = /etc/pacman.d/mirrorlist + +[community] +Include = /app/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +#[multilib] +#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/custompkgs diff --git a/org.archlinux.pacman/run b/org.archlinux.pacman/run new file mode 100755 index 0000000..d46ae31 --- /dev/null +++ b/org.archlinux.pacman/run @@ -0,0 +1,5 @@ +#!/usr/bin/bash +mkdir -p ~/.pacroot/root/var/lib +cp /app/pacman.conf ~/.pacroot/pacman.conf +cp /app/mirrorlist ~/.pacroot/mirrorlist +fakechroot fakeroot pacman --root ~/.pacroot/root --dbpath ~/.pacroot/root/var/lib --config ~/.pacroot/pacman.conf "$@" |