summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile1
-rw-r--r--doc/createworkdir62
-rw-r--r--doc/createworkdir.md41
-rw-r--r--doc/fullpkg.md (renamed from doc/fullpkg)0
-rw-r--r--doc/treepkg.md (renamed from doc/treepkg.markdown)0
-rw-r--r--doc/workflows.md60
6 files changed, 102 insertions, 62 deletions
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000..23f8a8f
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1 @@
+include ../common.mk
diff --git a/doc/createworkdir b/doc/createworkdir
deleted file mode 100644
index d74198a..0000000
--- a/doc/createworkdir
+++ /dev/null
@@ -1,62 +0,0 @@
-== CreateWorkDir
-
-This script recreates a proper dir tree for packaging. It's aim is to help
-you be organized with the work you do as a packager, and stablish a
-certain standard for packages' ubication, so you don't have to loose much
-time with them. Just package and upload!
-
-It will create a dir tree like this:
-workdir/
- abslibre/
- .git/
- libre/<PKGBUILDS>
- libre-testing/<PKGBUILDS>
- staging/
- libre/
- libre-testing/
- repos/
- libre/
- i686/
- x86_64/
- libre-testing/
- i686/
- x86_64/
-
-*Related Variables*
- - WORKDIR
-
-
-=== staging/
-
-This directory contains one dir for each repository, where the resulting
-packages are in moved for syncing against the main repository on
-Parabola's server. This dir is architecture independent.
-
-*Related Variables*
- - REPOS
-
-
-=== abslibre/
-
-This is the git repo for Parabola's PKGBUILDs. Here you can find the ABS
-tree for our packages, and also where you'll have to put new ones for
-commit.
-
-(You'll need push access to Parabola's main server, but pulling is
-public.)
-
-*Related Variables*
- - ABSLIBREGIT
-
-
-=== repos/
-
-Contains the repo dir structure. Probably not useful for uploading
-packages, but it will be for creating new repos for public access.
-
-It contains a dir for every repository, and inside them, a dir for every
-supported architecture.
-
-*Related Variables*
- - REPOS
- - ARCHES
diff --git a/doc/createworkdir.md b/doc/createworkdir.md
new file mode 100644
index 0000000..2539920
--- /dev/null
+++ b/doc/createworkdir.md
@@ -0,0 +1,41 @@
+# CreateWorkDir
+
+This script recreates a proper directory tree for packaging. It's aim is to
+help you be organized with the work you do as a packager, and establish a
+certain standard for packages' publication, so you don't have to loose much
+time with them. Just package and upload!
+
+It will create a directory tree like this:
+
+ $WORKDIR/
+ ├── abslibre/
+ │ ├── .git/
+ │ ├── libre/<PKGBUILDS>
+ │ └── libre-testing/<PKGBUILDS>
+ └── staging/
+ ├── libre/
+ └── libre-testing/
+
+*Related Variables*
+ - WORKDIR
+
+## staging/
+
+This directory contains one directory for each repository, where the
+resulting packages are in moved for syncing against the main repository on
+Parabola's server. This directory is architecture independent.
+
+*Related Variables*
+ - REPOS
+
+## abslibre/
+
+This is the git repo for Parabola's PKGBUILDs. Here you can find the ABS
+tree for our packages, and also where you'll have to put new ones for
+commit.
+
+(You'll need push access to Parabola's main server, but pulling is
+public.)
+
+*Related Variables*
+ - ABSLIBREGIT
diff --git a/doc/fullpkg b/doc/fullpkg.md
index 5645fae..5645fae 100644
--- a/doc/fullpkg
+++ b/doc/fullpkg.md
diff --git a/doc/treepkg.markdown b/doc/treepkg.md
index 7f7ece1..7f7ece1 100644
--- a/doc/treepkg.markdown
+++ b/doc/treepkg.md
diff --git a/doc/workflows.md b/doc/workflows.md
new file mode 100644
index 0000000..f55ae7e
--- /dev/null
+++ b/doc/workflows.md
@@ -0,0 +1,60 @@
+# Workflows
+
+Describe your packaging workflow here!
+
+
+## fauno's way
+
+During packaging, I don't usually restart a build from scratch if I have to
+make changes to the PKGBUILD. I use a lot of commenting out commands already
+ran, `makepkg -R`, etc. When I used `libremakepkg` I ended up using a lot more
+`librechroot` and working from inside the unconfigured chroot, because
+`makechrootpkg` (the underlying technology for `libremakepkg`) tries to be too
+smart.
+
+When I started writing `treepkg` I found that mounting what I need directly on
+the chroot and working from inside it was much more comfortable and simple than
+having a makepkg wrapper doing funny stuff (for instance, mangling makepkg.conf
+and breaking everything.)
+
+This is how the chroot is configured:
+
+* Create the same user (with same uid) on the chroot that the one I use regularly.
+
+* Give it password-less sudo on the chroot.
+
+* Bind mount /home to /chroot/home, where I have the abslibre-mips64el clone.
+
+* Bind mount /var/cache/pacman/pkg to /chroot/var/cache/pacman/pkg
+
+* Put these on system's fstab so I don't have to do it everytime
+
+* Configure makepkg.conf to PKGDEST=CacheDir and SRCDEST to something on my home.
+
+Workflow:
+
+* Enter the chroot with `systemd-nspawn -D/chroot` and `su - fauno`.
+
+* From another shell (I use tmux) edit the abslibre or search for updates with
+ `git log --no-merges --numstat`.
+
+* Pick a package and run `treepkg` from its dir on the chroot, or retake
+ a build with `treepkg /tmp/package-treepkg-xxxx`. (Refer to doc/treepkg
+ here).
+
+What this allows:
+
+* Not having to worry about the state of the chroot. `chcleanup` removes and
+ adds packages in a smart way so shared dependencies stay and others move
+ along (think of installing and removing qt for a complete kde rebuild).
+
+* Building many packages in a row without recreating a chroot for every one of
+ them.
+
+* Knowing that any change you made to the chroot stays as you want (no one
+ touches your makepkg.conf)
+
+* Hability to run regular commands, not through a chroot wrapper. I can `cd` to
+ a dir and use `makepkg -whatever` on it and nothing breaks.
+
+* No extra code spent on wrappers.