Manjaro Difference between revisions of "Buildiso with AUR packages: Using buildpkg"

Difference between revisions of "Buildiso with AUR packages: Using buildpkg"

From Manjaro
imported>Excalibur1234
(Marked this version for translation)
 
(32 intermediate revisions by 8 users not shown)
Line 1: Line 1:
<languages/>
__TOC__
__TOC__


<translate>
<!--T:1-->
This tutorial is about creating your own online repository and building a custom package(set) with the help of ''buildpkg''. Later, you can install those packages to your customized Manjaro ISO using '''buildiso'''.


This tutorial is about creating your own local repository. This repository can be used to download (with the help of ''yaourt'') and build (with the help of ''buildpkg'') packages. Later, you can install those packages to your customized Manjaro ISO using ''buildiso''.
<!--T:2-->
 
 
Before you start with this tutorial make sure you have completed the prerequisite steps in [[Build Manjaro ISOs with buildiso]].
Before you start with this tutorial make sure you have completed the prerequisite steps in [[Build Manjaro ISOs with buildiso]].


<!--T:3-->
The same XFCE ISO profile will be used as example on this Wiki page.
The same XFCE ISO profile will be used as example on this Wiki page.


==Tools to install== <!--T:4-->
Sync your system with the latest packages and ensure you have the following packages installed.


==1. Create directories==
<!--T:5-->
 
* git
The first thing you should probably do is create a directory for your local repository. The local repository is called <code>local-repo</code> throughout this entire tutorial. This'll help keep things organized.
* manjaro-tools-{base|base-git}
 
* manjaro-tools-{pkg|pkg-git}
  mkdir -p ~/local-repo/
 
This local repository is created in your home folder, but you can create it anywhere you want.
 
 
Next, you need to create a build directory. During the course of this tutorial you will need it as a temporary directory for files from the AUR:
 
  mkdir -p ~/local-build/
 
This temporary build directory is created in your home folder, but you can create it anywhere you want.
 
 
==2. Download package files from AUR using yaourt==
 
Now, go to your local repository:
 
cd ~/local-build
 
Next do
 
yaourt -G <package name>
 
in order to download package files from the AUR to your build directory. You will see a new directory with the package name. In it are various files, including a <code>PKGBUILD</code> file.
 
===Example:===
You want to add the package <code>pcmanfm-qt-git</code> to your ISO. Therefore, you need to download it to your local repository first. You download and unpack it using
 
yaourt -G pcmanfm-qt-git
 
You see a new <code>PKGBUILD</code> file in your local repository:
 
~/local-repo/pcmanfm-qt-git/PKGBUILD
 
 
==3. Building with buildpkg==
 
Up to this point, you have only downloaded and unpacked files from the AUR. Next, you need to build those files into proper packages:
 
cd ~/local-build
 
buildpkg -p <package name>
 
 
If you want to build 32bit packages on a 64bit system, you can do this by specifying the architecture:
 
buildpkg -a i686 -p <package name>


<!--T:6-->
It is important that you match your tools packages - don't mix the default and git packages.


For more examples how to use ''buildpkg'', look [https://wiki.manjaro.org/index.php?title=Manjaro-tools#buildpkg here].
==Create directories== <!--T:7-->


===Example:===
<!--T:8-->
As instructed above, try to build <code>pcmanfm-qt-git</code>:
The first thing you should probably do is create a directory for your online repository. The online repository is called '''online-repo''' throughout this tutorial and it is located in your home-folder. You however are free to choose name location to your liking. This'll help keep things organized. Your repository consist of only this folder:


buildpkg -p pcmanfm-qt-git
<!--T:9-->
{{UserCmd|command=mkdir ~/online-repo/x86_64}}


The build get aborted with the following error message:
<!--T:10-->
This online repository is created in your home folder, but you can create it anywhere you want.


==> Installing missing dependencies...
==Create your custom package tree== <!--T:11-->
error: target not found: liblxqt-git
==> ERROR: 'pacman' failed to install missing dependencies.


This means <code>liblxqt-git</code> is a dependency of <code>pcmanfm-qt-git</code>. You need to download and build <code>liblxqt-git</code> before you can build <code>pcmanfm-qt-git</code> successfully.
<!--T:12-->
Therefore, do the same (with one slight difference) as you did with <code>pcmanfm-qt-git</code>:
Create a folder for the packages you want to build. The name is arbitrary decriptor - you can call it anything you think suitable.


yaourt -G liblxqt-git
<!--T:13-->
buildpkg '''-n''' -p liblxqt-git
{{UserCmd|command=mkdir ~/pkgbuild}}


Please note the additional <code>-n</code> argument. This argument installs <code>liblxqt-git</code> in your build environment (<code>pcmanfm-qt-git</code> needs <code>liblxqt-git</code> installed in order to utilize it).
<!--T:14-->
Clone the relevant package(s) from AUR or from Github. Later you might create them yourself! You can select any package to build but as example we build the package <code>kickshaw</code>. Kickshaw is modern menu editor for among others openbox. First you add it to your pkgubild repo. Do this using git


Again, you receive an error:
<!--T:15-->
{{UserCmd|command=cd ~/pkgbuild}}


==> Installing missing dependencies...
<!--T:16-->
error: target not found: libqtxdg-git
Clone the example package from AUR
==> ERROR: 'pacman' failed to install missing dependencies.


So, <code>liblxqt-git</code> has another dependency: <code>libqtxdg-git</code>
<!--T:17-->
Repeat the whole process with <code>libqtxdg-git</code>:
{{UserCmd|command=git clone <nowiki>https://aur.archlinux.org/kickshaw</nowiki>}}


yaourt -G libqtxdg-git
<!--T:18-->
buildpkg -n -p libqtxdg-git
Now you have a folder with a <code>PKGBUILD</code> file in your pkgbuild repository.


Finally, a package gets build (and installed in your build environment) successfully!
<!--T:19-->
{{UserCmd|command=ls -R ~/pkgbuild}}


Now, build the other packages (in reverse order):
<!--T:20-->
It is best practice to always familarize yourself with the content of the package to ensure everything is as expected.


buildpkg -n -p liblxqt-git
==Building with buildpkg== <!--T:21-->
buildpkg -p pcmanfm-qt-git


<!--T:22-->
The '''buildpkg''' has some options you need to familiarize yourself with.


==4. Copy package files to local repository==
<!--T:23-->
{{File|file=buildpkg -h|content=<pre>
Usage: buildpkg [options]
  -p <pkg>          Build list or pkg [default: default]
  -a <arch>          Arch [default: x86_64]
  -b <branch>        Branch [default: unstable]
  -r <dir>          Chroots directory
                      [default: /var/cache/manjaro-tools]
  -i <pkgs>          Install packages into the working copy of the chroot
  -c                Recreate chroot
  -w                Clean up cache and sources
  -n                Install and run namcap check
  -s                Sign packages
  -u                Udev base-devel group (no systemd)
  -q                Query settings and pretend build
  -h                This help
</pre>}}


In the last chapter you build packages. These packages were created in this directory on your system:
<!--T:24-->
Next thing to do is build the package. Please note that you must be located one level above your actual PKGBUILD. Understand this as the <code>-p</code> argument is '''the name of the folder''' holding the PKGBUILD instructionset.


/var/cache/manjaro-tools/
<!--T:25-->
{{UserCmd|command=buildpkg -p kickchaw}}


On a 64bit system using the unstable branch the exact path is
<!--T:26-->
For more examples how to use '''buildpkg''', look [https://wiki.manjaro.org/index.php?title=Manjaro-tools#buildpkg here].


/var/cache/manjaro-tools/unstable/x86_64
<!--T:27-->
The buildpkg script creates a closed environment for building the package. This is done, so not to pollute your system with build artifacts.


You should see compressed package files. The file name should end with <code>.pkg.tar.xz</code>.
==Copy package files to online repository== <!--T:28-->


<!--T:29-->
The resulting package is saved in the location defined in your manjaro-tools.conf on your system (default is the cache folder)


Move all package files to your local repository:
<!--T:30-->
{{UserCmd|command=ls /var/cache/manjaro-tools/pkg/stable/x86_64}}


~/local-repo/
<!--T:31-->
You should see compressed package files. The file name should end with <code>.pkg.tar.zst</code>.


===Example:===
<!--T:32-->
Your local repository should now look like this:
Copy or move your package files to your online repository:


liblxqt-git-0.8.0.23.g079768e-1-x86_64.pkg.tar.xz 
<!--T:33-->
libqtxdg-git-1.0.0.7.g0503cf7-1-x86_64.pkg.tar.xz 
{{UserCmd|command=mv /var/cache/manjaro-tools/pkg/stable/x86_64 ~/online-repo}}
pcmanfm-qt-git-0.8.0.4.g99987af-1-x86_64.pkg.tar.xz


==Build a .db file== <!--T:34-->


==5. Build a .db file==
<!--T:35-->
To keep track of available packages the ''pacman'' package manager uses database files which is downloaded and kept on your computer. You need to create such a database file for your repo. It is crucial that your database filename is the same as your repo name. If your repo is named '''online-repo''' then your database name must be '''online-repo.db.tar.gz'''.


Use the command <code>repo-add</code> to build a database file. Run the following commands in a terminal:
<!--T:36-->
Use the command <code>repo-add</code> to build a database file inside your designated repo folder


cd ~/local-repo/
<!--T:37-->
repo-add local-repo.db.tar.gz *.pkg.tar.*
{{UserCmd|command=cd ~/online-repo/x86_64}}
sudo pacman -Syy
{{UserCmd|command=repo-add online-repo.db.tar.gz *.pkg.tar.*}}
{{File|file=~/online-repo/x86_64|content=<pre>
kickshaw-0.5-2-x86_64.pkg.tar.zst
online-repo.db
online-repo.db.tar.gz
online-repo.files
online-repo.files.tar.gz
</pre>}}


Every time you add packages to your local repositories, these commands need to be executed again! Otherwise, ''buildiso'' will complain later about missing packages in your local repository.
<!--T:38-->
Every time you change the content of your online repository, the database must be rebuild! Otherwise, ''buildiso'' will complain later about missing packages in your online repository.


===Example:===
<!--T:39-->
After running those commands, your local repository looks like this:
Two of the files are symlinks which may or may not work on your chosen host so they can be left out.


local-repo.db.tar
==Upload online-repo to Host Server== <!--T:40-->
local-repo.db
liblxqt-git-0.8.0.23.g079768e-1-x86_64.pkg.tar.xz 
libqtxdg-git-1.0.0.7.g0503cf7-1-x86_64.pkg.tar.xz 
pcmanfm-qt-git-0.8.0.4.g99987af-1-x86_64.pkg.tar.xz


<!--T:41-->
Now you need to upload online-repo to your Host Server. Upload everything from online-repo to your Host Server. Your web address as to match the name of the directory folder you created. This is what your web address should look like after upload online-repo to your Host Server.


==6. Add local-repo to pacman-XXXXX.conf file==
<!--T:42-->
<nowiki>http://www.myserver.com/repository/online-repo/x86_64/</nowiki>


Open your <code>/etc/pacman.conf</code> file. Attention: This file is different for 32bit and 64bit systems: On 64bit systems the <code>[multilib]</code> repository is included.
==Add online-repo to your iso-profile== <!--T:43-->
Copy and save the entire content of <code>/etc/pacman.conf</code> to


manjaro-tools-iso-profiles/xfce/'''pacman-XXXXX.conf'''
<!--T:44-->
Create a file
{{File|file=${profile_dir}/user-repos.conf|content=<pre>
[online-repo]
SigLevel = Never
Server = <nowiki>http://www.myserver.com/repository/online-repo/$repo/$arch</nowiki></pre>}}


Replace <code>pacman-XXXXX.conf</code> with
<!--T:45-->
* <code>pacman-default.conf</code> if you have only 32bit packages in your local repository: Remove the <code>[multilib]</code> repository
Custom online repositories will be added to the resulting '''pacman.conf'''. This means AUR packages cannot be installed unless you are using webserver to provide <code>[online-repo]</code> as shown this article).
from this file.
* <code>pacman-multilib.conf</code> if you have only 64bit packages in your local repository: This file needs a <code>[multilib]</code> repository


At the bottom of the just created <code>pacman-XXXXX.conf</code> file, add:
<!--T:56-->
NB: '''${profile_dir}''' is not the '''iso-profiles''' directory but the specific sub-directory for a build, e.g. '''iso-profiles/manjaro/kde'''. Put your file '''user-repos.conf''' there to be found during the build process.


[local-repo]
==Add package names to ISO profile== <!--T:46-->
SigLevel = Never
Server = file:///home/'''<username>'''/local-repo/


Replace <code><username></code> with your username.
<!--T:47-->
Now you add <code>kickshaw</code> to your package list for your ISO profile. This means your '''Packages-Desktop''' file should look something like this:


Delete or add the <code>[multilib]</code> repository:
<!--T:48-->
[multilib]
{{File|file=~/iso-profiles/manjaro/xfce/Packages-Desktop|content=<pre>
SigLevel = PackageRequired
ffmpegthumbnailer
Include = /etc/pacman.d/mirrorlist
gconf # fix qt-theme
gnome-keyring # fix wlan segfault
gufw # firewall
accountsservice
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
light-locker
manjaro-settings-manager
menulibre


===Example:===
<!--T:49-->
Your customized XFCE ISO profile should now look like this (for building 64bit ISOs):
## AUR packages
kickshaw</pre>}}


xfce-overlay
==Cleaning build environment== <!--T:50-->
isolinux -> ../shared/isolinux/
mkinitcpio.conf -> ../shared/mkinitcpio.conf
overlay -> ../shared/overlay/
overlay-livecd -> ../shared/overlay-livecd/
Packages -> ../shared/Packages-Systemd
Packages-Livecd -> ../shared/Packages-Livecd-Systemd
Packages-Xfce
Packages-Xorg -> ../shared/Packages-Xorg
'''pacman-multilib.conf'''
profile.conf
 
You can have both <code>pacman-multilib.conf</code> and <code>pacman-default.conf</code> files in your profile directory. The <code>pacman-default.conf</code> file will get used by ''buildiso'' to build 32bit ISOs and <code>pacman-multilib.conf</code> will get used for 64bit ISOs.
 
Your new <code>pacman-multilib.conf</code> file looks like this:
 
#
# /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/
HoldPkg      = pacman glibc manjaro-system
# If upgrades are available for these packages they will be asked for first
SyncFirst    = manjaro-system
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta    = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg  =
#IgnoreGroup =
#NoUpgrade  =
#NoExtract  =
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
# 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    = Required DatabaseOptional
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 Manjaro Linux
# packagers with `pacman-key --populate archlinux manjaro`.
#
# 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.
#
[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
#[infinality-bundle]
#SigLevel = Never
#Server = http://bohoomil.com/repo/$arch
# 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
[local-repo]
SigLevel = Never
Server = file:///home/excalibur/local-repo/
 
As you can see, there is also another custom repository in this <code>pacman-multilib.conf</code> file: <code>[infinality-bundle]</code>. But it is commented out. This illustrates nicely the way to add a custom non-local repository.
 
Custom local repositories will get removed automatically from this file before it gets copied over to the installed system, whereas custom non-local repositories will be kept. This means AUR packages are best installed from a custom local repository (as demonstrated by <code>[local-repo]</code> in this tutorial). Packages neither available in the Manjaro repositories nor in the AUR are best installed from a custom non-local repository (see <code>[infinality-bundle]</code> as example).
 
 
==7. Add package names to ISO profile==
 
Using the example mentioned in [https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso#Packages-Xfce here], you can now add the AUR package names to your <code>Packages-Xfce</code> file.
 
Attention: You need to add all dependency names '''before''' the package name (only for dependencies from the AUR).
 
===Example:===
You can now add <code>pcmanfm-qt-git</code> to your package list for your ISO profile. This means your <code>manjaro-tools-iso-profiles/xfce/Packages-Xfce</code> file should look exactly like this:
 
### Manjaro Packages
## XFCE Main Packages
ffmpegthumbnailer
gconf                    # fix qt-theme
gnome-keyring            # fix wlan segfault
gufw                    # firewall
# mdm-themes
accountsservice
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
light-locker
manjaro-settings-manager
>i686 gcc
>x86_64 gcc-multilib
...
## AUR packages
'''local-repo/libqtxdg-git'''
'''local-repo/liblxqt-git'''
'''local-repo/pcmanfm-qt-git'''
 
The order of package installations to your ISO is from top to bottom. Please note the '''exact''' order of the last 3 packages. <code>pcmanfm-qt-git</code> depends on <code>liblxqt-git</code>, which depends on <code>libqtxdg-git</code> (see chapter 4.1). Therefore, <code>liblxqt-git</code> needs to be the first package, which gets installed!
 
 
=Cleaning build environment=


<!--T:51-->
For removing your build environment from your hard drive, execute:
For removing your build environment from your hard drive, execute:


sudo rm -r /opt/buildpkg
<!--T:52-->
 
{{UserCmd|command=sudo rm -r /var/lib/manjaro-tools/buildpkg}}
 
=More=
 
Just to be sure, let's do another
 
sudo pacman -Syy
 
You should see your new ''local-repo'' in the list of repositories getting synchronized (next to these repositories: ''core'', ''extra'', ''community'', and ''multilib'' - only on 64bit systems).


==NOTE== <!--T:53-->


<!--T:54-->
Now, you can continue to [https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso#manjaro-tools.conf adjust your manjaro-tools.conf] or [https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso#Build_your_ISO build your ISO].
Now, you can continue to [https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso#manjaro-tools.conf adjust your manjaro-tools.conf] or [https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso#Build_your_ISO build your ISO].


 
<!--T:55-->
Please remember to install <code>yaourt</code>, <code>octopi</code>, or <code>pamac</code> on your ISO, too. Only these Programs can update packages from the AUR.
Creating an online repo requires you to keep the repo up-to-date when changes are made upstream.
 
</translate>
 
[[Category:Contents Page{{#translation:}}]]
[[Category:Contents Page]]
[[Category:ISO{{#translation:}}]]
[[Category:Development{{#translation:}}]]

Latest revision as of 06:46, 13 May 2024

Other languages:
English • ‎русский

This tutorial is about creating your own online repository and building a custom package(set) with the help of buildpkg. Later, you can install those packages to your customized Manjaro ISO using buildiso.

Before you start with this tutorial make sure you have completed the prerequisite steps in Build Manjaro ISOs with buildiso.

The same XFCE ISO profile will be used as example on this Wiki page.

Tools to install

Sync your system with the latest packages and ensure you have the following packages installed.

  • git
  • manjaro-tools-{base|base-git}
  • manjaro-tools-{pkg|pkg-git}

It is important that you match your tools packages - don't mix the default and git packages.

Create directories

The first thing you should probably do is create a directory for your online repository. The online repository is called online-repo throughout this tutorial and it is located in your home-folder. You however are free to choose name location to your liking. This'll help keep things organized. Your repository consist of only this folder:

user $ mkdir ~/online-repo/x86_64 COPY TO CLIPBOARD


This online repository is created in your home folder, but you can create it anywhere you want.

Create your custom package tree

Create a folder for the packages you want to build. The name is arbitrary decriptor - you can call it anything you think suitable.

user $ mkdir ~/pkgbuild COPY TO CLIPBOARD


Clone the relevant package(s) from AUR or from Github. Later you might create them yourself! You can select any package to build but as example we build the package kickshaw. Kickshaw is modern menu editor for among others openbox. First you add it to your pkgubild repo. Do this using git

user $ cd ~/pkgbuild COPY TO CLIPBOARD


Clone the example package from AUR

user $ git clone https://aur.archlinux.org/kickshaw COPY TO CLIPBOARD


Now you have a folder with a PKGBUILD file in your pkgbuild repository.

user $ ls -R ~/pkgbuild COPY TO CLIPBOARD


It is best practice to always familarize yourself with the content of the package to ensure everything is as expected.

Building with buildpkg

The buildpkg has some options you need to familiarize yourself with.

buildpkg -h
Usage: buildpkg [options]
   -p <pkg>           Build list or pkg [default: default]
   -a <arch>          Arch [default: x86_64]
   -b <branch>        Branch [default: unstable]
   -r <dir>           Chroots directory
                      [default: /var/cache/manjaro-tools]
   -i <pkgs>          Install packages into the working copy of the chroot
   -c                 Recreate chroot
   -w                 Clean up cache and sources
   -n                 Install and run namcap check
   -s                 Sign packages
   -u                 Udev base-devel group (no systemd)
   -q                 Query settings and pretend build
   -h                 This help

Next thing to do is build the package. Please note that you must be located one level above your actual PKGBUILD. Understand this as the -p argument is the name of the folder holding the PKGBUILD instructionset.

user $ buildpkg -p kickchaw COPY TO CLIPBOARD


For more examples how to use buildpkg, look here.

The buildpkg script creates a closed environment for building the package. This is done, so not to pollute your system with build artifacts.

Copy package files to online repository

The resulting package is saved in the location defined in your manjaro-tools.conf on your system (default is the cache folder)

user $ ls /var/cache/manjaro-tools/pkg/stable/x86_64 COPY TO CLIPBOARD


You should see compressed package files. The file name should end with .pkg.tar.zst.

Copy or move your package files to your online repository:

user $ mv /var/cache/manjaro-tools/pkg/stable/x86_64 ~/online-repo COPY TO CLIPBOARD


Build a .db file

To keep track of available packages the pacman package manager uses database files which is downloaded and kept on your computer. You need to create such a database file for your repo. It is crucial that your database filename is the same as your repo name. If your repo is named online-repo then your database name must be online-repo.db.tar.gz.

Use the command repo-add to build a database file inside your designated repo folder

user $ cd ~/online-repo/x86_64 COPY TO CLIPBOARD


user $ repo-add online-repo.db.tar.gz *.pkg.tar.* COPY TO CLIPBOARD


~/online-repo/x86_64
kickshaw-0.5-2-x86_64.pkg.tar.zst
online-repo.db
online-repo.db.tar.gz
online-repo.files
online-repo.files.tar.gz

Every time you change the content of your online repository, the database must be rebuild! Otherwise, buildiso will complain later about missing packages in your online repository.

Two of the files are symlinks which may or may not work on your chosen host so they can be left out.

Upload online-repo to Host Server

Now you need to upload online-repo to your Host Server. Upload everything from online-repo to your Host Server. Your web address as to match the name of the directory folder you created. This is what your web address should look like after upload online-repo to your Host Server.

http://www.myserver.com/repository/online-repo/x86_64/

Add online-repo to your iso-profile

Create a file

${profile_dir}/user-repos.conf
[online-repo]
SigLevel = Never
Server = http://www.myserver.com/repository/online-repo/$repo/$arch

Custom online repositories will be added to the resulting pacman.conf. This means AUR packages cannot be installed unless you are using webserver to provide [online-repo] as shown this article).

NB: ${profile_dir} is not the iso-profiles directory but the specific sub-directory for a build, e.g. iso-profiles/manjaro/kde. Put your file user-repos.conf there to be found during the build process.

Add package names to ISO profile

Now you add kickshaw to your package list for your ISO profile. This means your Packages-Desktop file should look something like this:

~/iso-profiles/manjaro/xfce/Packages-Desktop
ffmpegthumbnailer
gconf # fix qt-theme
gnome-keyring # fix wlan segfault
gufw # firewall
accountsservice
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
light-locker
manjaro-settings-manager
menulibre

## AUR packages
kickshaw

Cleaning build environment

For removing your build environment from your hard drive, execute:

user $ sudo rm -r /var/lib/manjaro-tools/buildpkg COPY TO CLIPBOARD


NOTE

Now, you can continue to adjust your manjaro-tools.conf or build your ISO.

Creating an online repo requires you to keep the repo up-to-date when changes are made upstream.

Cookies help us deliver our services. By using our services, you agree to our use of cookies.