aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraxtloss <axtlos@getcryst.al>2023-04-16 20:37:43 +0200
committeraxtloss <axtlos@getcryst.al>2023-04-16 20:37:43 +0200
commitd72e975c08d0f19c6d81f2128af7c2704fc2e09e (patch)
treef31d06bcd601e4a831e33bed20b0ef924a0a8fe0
parente74f0478d6e6fff2af06a3a15d1f6867e621d20c (diff)
downloadflatpaks-d72e975c08d0f19c6d81f2128af7c2704fc2e09e.tar.gz
flatpaks-d72e975c08d0f19c6d81f2128af7c2704fc2e09e.tar.bz2
Add org.archlinux.pacman
Diffstat (limited to '')
-rw-r--r--org.archlinux.pacman/README.md9
-rw-r--r--org.archlinux.pacman/mirrorlist15
-rw-r--r--org.archlinux.pacman/org.archlinux.pacman.yml64
-rw-r--r--org.archlinux.pacman/pacman.conf107
-rwxr-xr-xorg.archlinux.pacman/run5
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 "$@"