diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Makefile | 1 | ||||
-rw-r--r-- | doc/createworkdir | 62 | ||||
-rw-r--r-- | doc/createworkdir.md | 41 | ||||
-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.md | 60 |
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. |