Page MenuHomeFreeBSD

Create emulators/linux-c7 metaport

Authored by tijl on Sep 13 2016, 9:02 PM.
Referenced Files
Unknown Object (File)
Tue, Jul 16, 12:57 PM
Unknown Object (File)
Fri, Jul 12, 10:20 PM
Unknown Object (File)
Fri, Jul 12, 7:43 PM
Unknown Object (File)
Sun, Jul 7, 4:20 AM
Unknown Object (File)
Sat, Jul 6, 12:31 PM
Unknown Object (File)
Sat, Jul 6, 5:12 AM
Unknown Object (File)
Thu, Jul 4, 2:11 PM
Unknown Object (File)
Thu, Jul 4, 11:01 AM
"Like" token, awarded by xmj.



This patch contains all the ports from emulators/linux-c6 port in their respective versions from CentOS 7, using emulators/linux_base-c7 base. If a said package is available in CentOS 6, but not available in CentOS 7, it's not included (even if a said package is available from e.g. EPEL). I plan on making new ports for those packages (mainly SDL) and entirely new ports (for e.g. Steam) once this patch is committed.

Test Plan

The patch has been tested on Poudriere with FreeBSD 10.3/amd64 for both c7 and c7_64 variations.

Diff Detail

Lint Skipped
Tests Skipped

Event Timeline

pkubaj retitled this revision from to Create emulators/linux-c7 metaport.
pkubaj updated this object.
pkubaj edited the test plan for this revision. (Show Details)
pkubaj added reviewers: emulation, Linux Emulation, xmj, tijl.
pkubaj set the repository for this revision to rP FreeBSD ports repository.
pkubaj edited edge metadata.

Remove DEFAULT group from EPEL7 source repo.

pkubaj edited edge metadata.


pkubaj edited edge metadata.

Remove leftover Makefile.orig from emulators/linux_base-c7.

pkubaj edited edge metadata.
pkubaj updated this object.

:I got info from xmj that the patch doesn't apply cleanly because of missing files. They should obviously be created but they aren't. This patch should apply just fine.

I suggest you create c7 ports as svn cp of c6 ports. The diff will be much smaller and easier to review. Because there are so many ports it's easiest to create a shell script for that like this:

svn cp accessibility/linux-c6-atk accessibility/linux-c7-atk
svn cp audio/linux-c6-alsa-lib audio/linux-c7-alsa-lib
# and so on

You can derive an initial script from your current patch like this:

awk '/^---.*-c7/{sub("/[^/]*$","",$2);c6=$2;sub("-c7","-c6",c6);print "svn cp",c6,$2}' D7886.diff | sort -u

Then replace these c7 files with your c7 files and upload the script and output of svn diff to phabricator or bugzilla.

pkubaj edited edge metadata.

Patch made using svn cp.

Please, do not change the maintainer of all the ports, emulation@ is the right one.

pkubaj edited edge metadata.

Corrected MAINTAINER to

pkubaj edited edge metadata.

There are pkg-plist-related problems in the previous patch. Probably some pkg-plists (somehow) weren't copied. I've verified building in Poudriere and modified so that it build properly (again).

pkubaj edited edge metadata.

Removing some duplicate pkg-plist listings.

pkubaj edited edge metadata.

Couple more pkg-plist- and pkg-descr-related non-critical fixes.


All the alsa ports seem to go backward, is this intended ?


Yes, it's because some packages in CentOS 6.8 are actually newer than in 7.2 because 6.8 itself was released more recently.

I suppose 7.3 will contain new ALSA packages.

pkubaj edited edge metadata.

Some ports that have linux-c6-* versions (namely jasper and pixman) weren't ported to linux-c7-* because they don't exist in emulators/linux-c6 metaport. I've added them to linux-c7. Also, I've added linux-c7-sdl20 port.

pkubaj updated this object.
pkubaj edited edge metadata.

I've added linux-c7-qt-webkit, which now makes linux-c7 contain all the packages that linux-c6 has, apart from those removed from CentOS 7 and also not available in EPEL (unless I missed something). This patch also has updated linux-c7-devtools for new kernel-headers RPM.

I am still going to add ports for Steam and maybe Powershell (along with their dependencies), but they won't be a part of linux-c7 (although the dependencies may be).

This helps with applying the patch...:

for i in */linux-c6-*; do 
 svn cp $i $(echo $i | sed -e 's/c6/c7/');
tijl edited reviewers, added: pkubaj; removed: tijl.

The "update diff" link on the left lets me upload and review a new patch and then at the end it doesn't actually allow me to update the diff. I can only create a new review. So now I'm trying this commandeer thingy to see if "update diff" works then. This is the last time I use phabricator. I didn't like it from the start but I gave it a fair chance. Now I've had enough of it. I don't understand its terminology, I don't like its interface with some actions up left and others way at the bottom and comments above the patch instead of below, icons that don't make sense and above all it violates "tools not policy". This thing is making me jump through hoops and I'm all fck you I'm not a circus animal.

tijl edited edge metadata.
tijl removed rP FreeBSD ports repository as the repository for this revision.

Bring over some recent changes to c6 ports.
Add support for USE_LINUX_RPM=noarch.
Set IGNORE when ONLY_FOR_ARCHS=amd64 and not using 64-bit linux.
Never install 32-bit files with ONLY_FOR_ARCHS=amd64.
Add libffi to linux_base-c7 for glib.
Add graphics/linux-c7-jbigkit for tiff.

pkubaj requested changes to this revision.Oct 7 2016, 10:05 AM
pkubaj edited edge metadata.

A few comments.

Basically some .include <> were removed, and two ports were reverted to their c6 versions.

I guess you wanted to rename linux-c7-libaudiofile to linux-c7-audiofile, the same with linux-c7-qt-webkit and linux-c7-qtwebkit, but forgot to remove the old ports from the diff.


Why do you create linux-c7-audiofile port? I've already sent linux-c7-libaudiofile in the previous patches.

1 ↗(On Diff #20808)

Why do you revert my changes and use c6 version?


This should be included.

1 ↗(On Diff #20808)

Why did you revert the port to its c6 version?


Here you create a copy of c7 version of linux-c7-qt-webkit, it doesn't make sense.

This revision now requires changes to proceed.Oct 7 2016, 10:05 AM

I wish phabricator provided a more sensible way of downloading diffs.

When you've svn cp'd a thing - e.g. linux-c6-sdl12 to linux-c7-sdl20, it's painful to get this right at all.


Needs to be
as EPEL7 doesn't contain i686 archives.


I need


here to be able to extract gcc-4.8.5-7.el7 at all


I need


here to be able to extract ncurses-base at all

I did not remove .include <> anywhere.
I moved libaudiofile to audiofile and qt-webkit to qtwebkit to match the upstream names. I forgot to update the metaport though.
USE_LINUX_RPM=yes works for EPEL7 now because I changed to take into account ONLY_FOR_ARCHS.
I don't need USE_LINUX_RPM_BAD_PERMS. What version of FreeBSD are you running?
Here's the list svn cp commands needed to apply the patch:
svn cp accessibility/linux-c6-atk accessibility/linux-c7-atk
svn cp audio/linux-c6-alsa-lib audio/linux-c7-alsa-lib
svn cp audio/linux-c6-alsa-plugins-oss audio/linux-c7-alsa-plugins-oss
svn cp audio/linux-c6-alsa-plugins-pulseaudio audio/linux-c7-alsa-plugins-pulseaudio
svn cp audio/linux-c6-alsa-utils audio/linux-c7-alsa-utils
svn cp audio/linux-c6-esound audio/linux-c7-esound
svn cp audio/linux-c6-flac audio/linux-c7-flac
svn cp audio/linux-c6-libaudiofile audio/linux-c7-audiofile
svn cp audio/linux-c6-libogg audio/linux-c7-libogg
svn cp audio/linux-c6-libsndfile audio/linux-c7-libsndfile
svn cp audio/linux-c6-libvorbis audio/linux-c7-libvorbis
svn cp audio/linux-c6-openal-soft audio/linux-c7-openal-soft
svn cp audio/linux-c6-pulseaudio-libs audio/linux-c7-pulseaudio-libs
svn cp audio/linux-c6-pulseaudio-utils audio/linux-c7-pulseaudio-utils
svn cp audio/linux-c6-sdl_mixer audio/linux-c7-sdl_mixer
svn cp databases/linux-c6-sqlite3 databases/linux-c7-sqlite3
svn cp devel/linux-c6-dbus-glib devel/linux-c7-dbus-glib
svn cp devel/linux-c6-dbus-libs devel/linux-c7-dbus-libs
svn cp devel/linux-c6-devtools devel/linux-c7-devtools
svn cp devel/linux-c6-libgfortran devel/linux-c7-libgfortran
svn cp devel/linux-c6-libglade2 devel/linux-c7-libglade2
svn cp devel/linux-c6-libpciaccess devel/linux-c7-libpciaccess
svn cp devel/linux-c6-libsigc++20 devel/linux-c7-libsigc++20
svn cp devel/linux-c6-libthai devel/linux-c7-libthai
svn cp devel/linux-c6-ncurses-base devel/linux-c7-ncurses-base
svn cp devel/linux-c6-nspr devel/linux-c7-nspr
svn cp devel/linux-c6-qt47 devel/linux-c7-qt
svn cp devel/linux-c6-sdl12 devel/linux-c7-sdl12
svn cp devel/linux-c6-sdl12 devel/linux-c7-sdl20
svn cp dns/linux-c6-libasyncns dns/linux-c7-libasyncns
svn cp emulators/linux-c6 emulators/linux-c7
svn cp ftp/linux-c6-curl ftp/linux-c7-curl
svn cp graphics/linux-c6-cairo graphics/linux-c7-cairo
svn cp graphics/linux-c6-dri graphics/linux-c7-dri
svn cp graphics/linux-c6-gdk-pixbuf2 graphics/linux-c7-gdk-pixbuf2
svn cp graphics/linux-c6-glx-utils graphics/linux-c7-glx-utils
svn cp graphics/linux-c6-jasper graphics/linux-c7-jasper
svn cp graphics/linux-c6-jpeg graphics/linux-c7-jpeg
svn cp graphics/linux-c6-libGLU graphics/linux-c7-libGLU
svn cp graphics/linux-c6-png graphics/linux-c7-png
svn cp graphics/linux-c6-sdl_image graphics/linux-c7-sdl_image
svn cp graphics/linux-c6-sdl_ttf graphics/linux-c7-sdl_ttf
svn cp graphics/linux-c6-tiff graphics/linux-c7-tiff
svn cp lang/linux-c6-tcl85 lang/linux-c7-tcl85
svn cp multimedia/linux-c6-libtheora multimedia/linux-c7-libtheora
svn cp multimedia/linux-c6-libv4l multimedia/linux-c7-libv4l
svn cp net/linux-c6-avahi-libs net/linux-c7-avahi-libs
svn cp net/linux-c6-openldap net/linux-c7-openldap
svn cp net/linux-c6-tcp_wrappers-libs net/linux-c7-tcp_wrappers-libs
svn cp print/linux-c6-cups-libs print/linux-c7-cups-libs
svn cp security/linux-c6-cyrus-sasl2 security/linux-c7-cyrus-sasl2
svn cp security/linux-c6-gnutls security/linux-c7-gnutls
svn cp security/linux-c6-libgcrypt security/linux-c7-libgcrypt
svn cp security/linux-c6-libgpg-error security/linux-c7-libgpg-error
svn cp security/linux-c6-libssh2 security/linux-c7-libssh2
svn cp security/linux-c6-libtasn1 security/linux-c7-libtasn1
svn cp security/linux-c6-nss security/linux-c7-nss
svn cp security/linux-c6-openssl security/linux-c7-openssl
svn cp security/linux-c6-openssl-compat security/linux-c7-openssl-compat
svn cp textproc/linux-c6-aspell textproc/linux-c7-aspell
svn cp textproc/linux-c6-expat textproc/linux-c7-expat
svn cp textproc/linux-c6-libxml2 textproc/linux-c7-libxml2
svn cp www/linux-c6-qt47-webkit www/linux-c7-qtwebkit
svn cp x11-fonts/linux-c6-fontconfig x11-fonts/linux-c7-fontconfig
svn cp x11-themes/linux-c6-hicolor-icon-theme x11-themes/linux-c7-hicolor-icon-theme
svn cp x11-toolkits/linux-c6-gtk2 x11-toolkits/linux-c7-gtk2
svn cp x11-toolkits/linux-c6-openmotif x11-toolkits/linux-c7-openmotif
svn cp x11-toolkits/linux-c6-pango x11-toolkits/linux-c7-pango
svn cp x11-toolkits/linux-c6-qt47-x11 x11-toolkits/linux-c7-qt-x11
svn cp x11-toolkits/linux-c6-tk85 x11-toolkits/linux-c7-tk85
svn cp x11/linux-c6-pixman x11/linux-c7-pixman
svn cp x11/linux-c6-xorg-libs x11/linux-c7-xorg-libs

In D7886#169673, @tijl wrote:

I don't need USE_LINUX_RPM_BAD_PERMS. What version of FreeBSD are you running?

12.0-CURRENT as of today, but I've seen problems like this since I've tried out this patch (which was three weeks ago ish, with a then-recent build)

There were a few libarchive changes to head, maybe related.

This revision was automatically updated to reflect the committed changes.